SmsManager/DLG_Corp_FP.cpp

428 lines
11 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// DLG_Corp_FP.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_Corp_FP.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_FP dialog
#include "DLG_Corp_FP_Modify.h"
#include "DLG_Corp_LXR_SF.h"
DLG_Corp_FP::DLG_Corp_FP(CWnd* pParent /*=NULL*/)
: CDialog(DLG_Corp_FP::IDD, pParent)
, m_strCorpAddress(_T(""))
, m_strCorpPostCode(_T(""))
, m_strAgentName(_T(""))
, m_strYWYName(_T(""))
{
//{{AFX_DATA_INIT(DLG_Corp_FP)
m_strCorpName = _T("");
m_strSMSNum = _T("");
//}}AFX_DATA_INIT
m_lModifyCount = 0;
m_lLXRCount = 0;
memset( &m_FPReq , 0 , sizeof(m_FPReq) );
m_pLXRData = NULL;
m_pLXR_YWYData = NULL;
m_lCorpType = 0;
m_pSFDlg = NULL;
}
void DLG_Corp_FP::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_Corp_FP)
DDX_Control(pDX, IDC_CORP_FP_LIST, m_wndList);
DDX_Text(pDX, IDC_CORP_FP_CORPNAME, m_strCorpName);
DDX_Text(pDX, IDC_CORP_FP_SMSNUM, m_strSMSNum);
//}}AFX_DATA_MAP
DDX_Text(pDX, IDC_CORP_FP_CORPADDRESS, m_strCorpAddress);
DDX_Text(pDX, IDC_CORP_FP_CORPPOSTCODE, m_strCorpPostCode);
DDX_Text(pDX, IDC_CORP_FP_AGENTNAME, m_strAgentName);
DDX_Text(pDX, IDC_CORP_FP_YWYNAME, m_strYWYName);
}
BEGIN_MESSAGE_MAP(DLG_Corp_FP, CDialog)
//{{AFX_MSG_MAP(DLG_Corp_FP)
ON_NOTIFY(NM_DBLCLK, IDC_CORP_FP_LIST, OnDblclkCorpLxrList)
ON_BN_CLICKED(IDC_CORP_FP_MODIFY, OnCorpLxrModify)
ON_BN_CLICKED(IDC_CORP_FP_ADD, OnCorpLxrAdd)
ON_BN_CLICKED(IDC_CORP_FP_DEL, OnCorpLxrDel)
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDOK, &DLG_Corp_FP::OnBnClickedOk)
ON_BN_CLICKED(IDC_CORP_FP_SF, &DLG_Corp_FP::OnBnClickedCorpFpSf)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_FP message handlers
void DLG_Corp_FP::SetParam(ANS_Corp_FP LXR , ANS_Corp_FPData *pLXRData , long lCorpType, ANS_Corp_LXR_YWYData * pYWYData)
{
m_lLXRCount = LXR.lCount;
m_FPReq = LXR;
m_pLXRData = pLXRData;
m_pLXR_YWYData = pYWYData;
m_lCorpType = lCorpType;
}
BOOL DLG_Corp_FP::OnInitDialog()
{
CDialog::OnInitDialog();
m_strCorpName = m_FPReq.szCorpName;
m_strSMSNum = m_FPReq.szSMSNum;
m_strCorpAddress = m_FPReq.szAddress;
m_strCorpPostCode = m_FPReq.szPostCode;
m_strAgentName = m_FPReq.szAgentName;
m_strYWYName = m_FPReq.szYWYName;
this->UpdateData(false);
//<2F><>ʼ<EFBFBD><CABC>List
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CORP) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50; Ĭ<><C4AC>,60; <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>,90; <20><>Ʊ̧ͷ,250; <20><>˰<EFBFBD><CBB0>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>,100; <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>,200;¼<><C2BC><EFBFBD>û<EFBFBD>,80; ¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,90;"));
m_wndList.SetGridLines(true);
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
POSITION pos;
TCHAR Buf[32];
CString str;
for ( int i = 0 ; i< m_lLXRCount ; i++ )
{
ANS_Corp_FPData * pData = new ANS_Corp_FPData;
*pData = m_pLXRData[i];
pos = m_FP.AddTail( pData );
_stprintf( Buf , _T("%d") , i+1 );
m_wndList.InsertItem( i , Buf , 0 );
m_wndList.SetItemData( i , (DWORD_PTR)pos);
int iTemp=1;
if ( pData->bDefaultFP )
m_wndList.SetItemText( i , iTemp++ , _T(" <20><>") );
else
iTemp++;
m_wndList.SetItemText( i , iTemp++ , GetFPType(pData->lFPType) );
m_wndList.SetItemText( i , iTemp++ , pData->szCorpName );
m_wndList.SetItemText( i , iTemp++ , pData->szCorpTaxID );
m_wndList.SetItemText( i , iTemp++ , pData->szPostEmail);
m_wndList.SetItemText( i , iTemp++ , pData->szCreateUser );
str.Format( _T("%04d.%02d.%02d") ,pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay );
m_wndList.SetItemText( i , iTemp++ , str );
}
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DLG_Corp_FP::OnDblclkCorpLxrList(NMHDR* pNMHDR, LRESULT* pResult)
{
OnCorpLxrModify();
*pResult = 0;
}
void DLG_Corp_FP::OnCorpLxrModify()
{
long lItem = GetCurrentSelected();
if ( lItem < 0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_Corp_FPData * pData = m_FP.GetNext( pos );
if (pData)
{
DLG_Corp_FP_Modify dlg(this);
dlg.SetParam( *pData,pos2);
if ( dlg.DoModal() == IDOK )
{
*pData = dlg.GetParam(); //ȡ<><C8A1><EFBFBD>޸Ĺ<DEB8><C4B9><EFBFBD><EFBFBD><EFBFBD>ֵ
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50; Ĭ<><C4AC>,60; <20><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>,90; <20><>Ʊ̧ͷ,150; <20><>˰<EFBFBD><CBB0>ʶ<EFBFBD><CAB6><EFBFBD><EFBFBD>,100;¼<><C2BC><EFBFBD>û<EFBFBD>,80; ¼<><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,90;"));
CString str;
int iTemp=1;
if ( pData->bDefaultFP )
m_wndList.SetItemText( lItem , iTemp++ , _T(" <20><>") );
else
m_wndList.SetItemText( lItem , iTemp++ , _T("") );
m_wndList.SetItemText( lItem , iTemp++ , GetFPType(pData->lFPType) );
m_wndList.SetItemText( lItem , iTemp++ , pData->szCorpName );
m_wndList.SetItemText( lItem , iTemp++ , pData->szCorpTaxID );
m_wndList.SetItemText( lItem , iTemp++ , pData->szPostEmail);
m_wndList.SetItemText( lItem , iTemp++ , pData->szCreateUser );
str.Format( _T("%04d.%02d.%02d") ,pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay );
m_wndList.SetItemText( lItem , iTemp++ , str );
if ( pData->ucStatus == 0 )
{
pData->ucStatus = CORP_FP_MODIFY; //<2F><>Ҫ<EFBFBD>޸<EFBFBD>
m_lModifyCount ++; //<2F><>Ҫ<EFBFBD>޸ĵļ<C4B5>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
}
}
}
}
long DLG_Corp_FP::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void DLG_Corp_FP::OnCorpLxrAdd()
{
ANS_Corp_FPData LXRData={0};
LXRData.lCorpType = m_FPReq.lCorpType;
_tcscpy(LXRData.szCorpName , m_FPReq.szCorpName);
_tcscpy(LXRData.szCorpAddress,m_FPReq.szAddress);
DLG_Corp_FP_Modify dlg(this);
dlg.SetParam( LXRData,0);
if ( dlg.DoModal() == IDOK )
{
ANS_Corp_FPData * pData = new ANS_Corp_FPData;
*pData = dlg.GetParam();
pData->ucStatus = CORP_FP_ADD;
pData->lCorpType = m_lCorpType;
m_lModifyCount ++; //<2F><>Ҫ<EFBFBD>޸ĵļ<C4B5>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
POSITION pos = m_FP.AddTail( pData );
long lCount = m_wndList.GetItemCount();
TCHAR Buf[32];
_stprintf( Buf, _T("%d") , lCount +1 );
//<2F><><EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD><C2B5><EFBFBD><EFBFBD><EFBFBD>
m_wndList.InsertItem( lCount , Buf , 0);
m_wndList.SetItemData( lCount, (DWORD_PTR)pos );
CString str;
int iTemp=1;
if ( pData->bDefaultFP )
m_wndList.SetItemText( lCount , iTemp++ , _T(" <20><>") );
else
iTemp++;
m_wndList.SetItemText( lCount , iTemp++ , GetFPType(pData->lFPType) );
m_wndList.SetItemText( lCount , iTemp++ , pData->szCorpName );
m_wndList.SetItemText( lCount , iTemp++ , pData->szCorpTaxID);
m_wndList.SetItemText( lCount , iTemp++ , pData->szPostEmail);
m_wndList.SetItemText( lCount , iTemp++ , pData->szCreateUser );
m_wndList.SetItemText( lCount , iTemp++ , pData->szCorpTaxID );
str.Format( _T("%04d.%02d.%02d") ,pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay );
m_wndList.SetItemText( lCount , iTemp++ , str );
}
}
void DLG_Corp_FP::OnCorpLxrDel()
{
long lCount = m_wndList.GetSelectedCount();
if ( lCount <= 0 )
return ;
long lRet = MessageBox( _T("<EFBFBD>˲<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɾ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʊ<EFBFBD><EFBFBD>Ϣ<EFBFBD><EFBFBD><EFBFBD>Ƿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONQUESTION|MB_YESNOCANCEL|MB_DEFBUTTON2);
if ( lRet != IDYES )
return;
long * lDel = new long[lCount];
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
long i=0;
while ( pos )
{
lDel[i] = m_wndList.GetNextSelectedItem(pos);
i++;
}
for ( i = lCount-1 ; i>=0 ; i-- ) //<2F><>תɾ<D7AA><C9BE>
{
long lItem = lDel[i];
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
m_wndList.DeleteItem( lItem ); //ɾ<><C9BE>
POSITION pos2 = pos;
ANS_Corp_FPData * pData = m_FP.GetNext( pos );
if (pData)
{
if (pData->ucStatus == 0)
{
pData->ucStatus = CORP_FP_DEL;
m_lModifyCount ++; //<2F><>Ҫ<EFBFBD>޸ĵļ<C4B5>¼<EFBFBD><C2BC><EFBFBD><EFBFBD>
}
else
{
pData->ucStatus = 0;
m_lModifyCount --; //<2F><>Ϊ<EFBFBD>޸<EFBFBD><DEB8><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1><EFBFBD><EFBFBD>1
}
}
}
delete lDel;
}
CString DLG_Corp_FP::GetFPType(long lType)
{
CString str=_T("δ֪");
switch(lType)
{
case 0:
str = _T(" <20><><EFBFBD><EFBFBD>Ʊ");
break;
case 1:
str = _T(" <20><>˰Ʊ");
break;
case 2:
str = _T("<EFBFBD><EFBFBD>ֵ˰<EFBFBD><EFBFBD>Ʊ");
break;
case 3:
str = _T(" <20>ƶ<EFBFBD>Ʊ");
break;
case 4:
str = _T("<EFBFBD><EFBFBD>ֵ˰רƱ");
break;
case 5:
str = _T("<EFBFBD><EFBFBD><EFBFBD>跢Ʊ<EFBFBD>ѱ<EFBFBD>˰");
break;
case 6:
str = _T("ӯ<EFBFBD>׸<EFBFBD><EFBFBD><EFBFBD>Ʊ");
break;
case 7:
str = _T("ӯ<EFBFBD>׸<EFBFBD>רƱ");
break;
default:
str = _T(" δ֪");
break;
}
return str;
}
CString DLG_Corp_FP::GetFPType2(long lType)
{
CString str=_T("");
switch(lType)
{
case 0:
str = _T("");
break;
case 1:
str = _T("<EFBFBD><EFBFBD>˰Ʊ");
break;
case 2:
str = _T("<EFBFBD><EFBFBD>ֵ˰<EFBFBD><EFBFBD>Ʊ");
break;
case 3:
str = _T("<EFBFBD>ƶ<EFBFBD>Ʊ");
break;
case 4:
str = _T("<EFBFBD><EFBFBD>ֵ˰רƱ");
break;
case 5:
str = _T("<EFBFBD><EFBFBD><EFBFBD>跢Ʊ<EFBFBD>ѱ<EFBFBD>˰");
break;
case 6:
str = _T("ӯ<EFBFBD>׸<EFBFBD><EFBFBD><EFBFBD>Ʊ");
break;
case 7:
str = _T("ӯ<EFBFBD>׸<EFBFBD>רƱ");
break;
default:
str = _T("δ֪");
break;
}
return str;
}
void DLG_Corp_FP::OnBnClickedOk()
{
// TODO: <20>ڴ<EFBFBD><DAB4><EFBFBD><EFBFBD>ӿؼ<D3BF>֪ͨ<CDA8><D6AA><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
CDialog::OnOK();
}
BOOL DLG_Corp_FP::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
{
if (pHead->lFuncType == SMSFUNC_CORP_SF_ADD ||
pHead->lFuncType == SMSFUNC_CORP_SF_CANCEL ||
pHead->lFuncType == SMSFUNC_CORP_SF_ROUTE)
{
//ANS_Corp_SF_Add * pAdd = (ANS_Corp_SF_Add *)pFrame;
//ANS_Corp_SFData * pData = (ANS_Corp_SFData *)(pFrame + sizeof(ANS_Corp_SF_Add));
if (this->m_pSFDlg)
{
m_pSFDlg->ProcessSocket(pHead, pFrame);
}
return true;
}
return false;
}
void DLG_Corp_FP::OnBnClickedCorpFpSf()
{
if (m_lModifyCount>0)
{
MessageBox(_T("<EFBFBD><EFBFBD><EFBFBD>Ѷ<EFBFBD><EFBFBD><EFBFBD>ϵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>޸ģ<EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"), _T("<EFBFBD><EFBFBD>ʾ"), MB_ICONINFORMATION);
return;
}
long lItem = GetCurrentSelected();
if (lItem < 0)
{
MessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѡ<EFBFBD>з<EFBFBD>Ʊ̧ͷ<EFBFBD><EFBFBD><EFBFBD>ٿ<EFBFBD>ʼ˳<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD>"), _T("<EFBFBD><EFBFBD>ʾ"), MB_ICONINFORMATION);
return;
}
ANS_Corp_SFData sf = { 0 };
GetLocalTime(&sf.tCreate); //<2F><><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>
sf.lStatus = 0; //״̬<D7B4><CCAC>0-<2D><><EFBFBD>ɣ<EFBFBD>1-<2D><><EFBFBD>ռ<EFBFBD>,2-<2D><>ǩ<EFBFBD><C7A9>
sf.pay_method = 0; //<2F><><EFBFBD>ʽ<EEB7BD><CABD>0:<3A>ĸ<EFBFBD><C4B8>½ᣬ1:<3A>ķ<EFBFBD><C4B7><EFBFBD> 2 : <20>շ<EFBFBD><D5B7><EFBFBD> 3 : <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
sf.express_type = 1; //˳<><CBB3><EFBFBD>ػ<EFBFBD>
sf.lCorpType = m_FPReq.lCorpType; //<2F><>ҵ<EFBFBD><D2B5><EFBFBD>ͣ<EFBFBD>0-<2D>ն˿ͻ<CBBF><CDBB><EFBFBD>1-<2D><><EFBFBD><EFBFBD><EFBFBD>̡<EFBFBD>
sf.lCorpID = m_FPReq.lCorpID; //<2F><>ҵid<69><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
sf.lPayType = m_FPReq.lPayType; //֧<><D6A7><EFBFBD><EFBFBD><EFBFBD>ͣ<EFBFBD>0-<2D>dz<EFBFBD>ֵ<EFBFBD><D6B5>1-<2D><><EFBFBD>ų<EFBFBD>ֵ<EFBFBD><D6B5>2-<2D><><EFBFBD>ų<EFBFBD>ֵ<EFBFBD><D6B5>3-<2D><><EFBFBD><EFBFBD><EFBFBD>̶<EFBFBD><CCB6>ų<EFBFBD>ֵ<EFBFBD><D6B5>4-<2D><><EFBFBD><EFBFBD><EFBFBD>̲<EFBFBD><CCB2>ų<EFBFBD>ֵ<EFBFBD><D6B5>5-<2D><><EFBFBD>ܿ<EFBFBD>ͨ<EFBFBD><CDA8>ֵ<EFBFBD><D6B5>6-<2D>½<EFBFBD><C2BD>ʵ<EFBFBD><CAB5><EFBFBD>7-<2D><><EFBFBD><EFBFBD><EFBFBD>ʵ<EFBFBD>
sf.lPayID = m_FPReq.lPayID; //֧<><D6A7><EFBFBD><EFBFBD>¼ID
sf.fPrice = m_FPReq.fPrice; //<2F><>Ʊ<EFBFBD><C6B1><EFBFBD><EFBFBD>
_tcscpy(sf.d_company, m_FPReq.szCorpName);
_tcscpy(sf.d_address, m_FPReq.szAddress);
_tcscpy(sf.d_post_code, m_FPReq.szPostCode);
if (lItem >= 0)
{
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
POSITION pos2 = pos;
ANS_Corp_FPData * pData = m_FP.GetNext(pos);
if (pData)
{
_tcscpy(sf.d_contact, pData->szPostName);
_tcscpy(sf.d_tel, pData->szPostTel);
_tcscpy(sf.d_mobile, pData->szPostMobile);
_tcscpy(sf.d_address, pData->szPostAddress);
_tcscpy(sf.d_post_code, pData->szPostCode);
}
}
//_tcscpy(sf.Cargo_name, _T("<22><>ͬ")); //<2F><><EFBFBD><EFBFBD>ϵ<EFBFBD>˷<EFBFBD><CBB7><EFBFBD><EFBFBD>ģ<EFBFBD>Ĭ<EFBFBD><C4AC><EFBFBD>Ǻ<EFBFBD>ͬ
sf.Cargo_count = 1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
DLG_Corp_LXR_SF dlg(this);
m_pSFDlg = &dlg;
dlg.SetParam(m_FPReq.lYWYCount, m_FPReq.lDefaultYWYID, m_pLXR_YWYData, sf, true);
dlg.DoModal();
m_pSFDlg = NULL;
}