// DLG_Corp_LXR.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Corp_LXR.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_LXR dialog #include "DLG_Corp_LXR_Modify.h" #include "DLG_Corp_LXR_Print.h" #include "DLG_Corp_LXR_PrintHT.h" #include "DLG_Corp_LXR_SF.h" DLG_Corp_LXR::DLG_Corp_LXR(CWnd* pParent /*=NULL*/) : CDialog(DLG_Corp_LXR::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Corp_LXR) m_strCorpName = _T(""); m_strSMSNum = _T(""); //}}AFX_DATA_INIT m_lModifyCount = 0; m_lLXRCount = 0; memset( &m_LXRReq , 0 , sizeof(m_LXRReq) ); m_pLXRData = NULL; m_pLXR_YWYData = NULL; m_lCorpType = 0; m_pSFDlg = NULL; } void DLG_Corp_LXR::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Corp_LXR) DDX_Control(pDX, IDC_CORP_LXR_LIST, m_wndList); DDX_Text(pDX, IDC_CORP_LXR_CORPNAME, m_strCorpName); DDX_Text(pDX, IDC_CORP_LXR_SMSNUM, m_strSMSNum); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_Corp_LXR, CDialog) //{{AFX_MSG_MAP(DLG_Corp_LXR) ON_NOTIFY(NM_DBLCLK, IDC_CORP_LXR_LIST, OnDblclkCorpLxrList) ON_BN_CLICKED(IDC_CORP_LXR_MODIFY, OnCorpLxrModify) ON_BN_CLICKED(IDC_CORP_LXR_ADD, OnCorpLxrAdd) ON_BN_CLICKED(IDC_CORP_LXR_DEL, OnCorpLxrDel) ON_BN_CLICKED(IDC_CORP_LXR_PRINT, OnCorpLxrPrint) ON_BN_CLICKED(IDC_CORP_LXR_PRINTHT, OnCorpLxrPrintht) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_LXR message handlers void DLG_Corp_LXR::SetParam(ANS_Corp_LXR LXR , ANS_Corp_LXRData *pLXRData , long lCorpType, ANS_Corp_LXR_YWYData * pYWYData) { m_lLXRCount = LXR.lCount; m_LXRReq = LXR; m_pLXRData = pLXRData; m_pLXR_YWYData = pYWYData; m_lCorpType = lCorpType; } BOOL DLG_Corp_LXR::OnInitDialog() { CDialog::OnInitDialog(); m_strCorpName = m_LXRReq.szCorpName; m_strSMSNum = m_LXRReq.szSMSNum; this->UpdateData(false); //初始化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("序号,50; 姓名,80; 昵称,80; 部门,80; 电话,80; 手机,80;会员,60;总充值,90;总礼品,90;会员开始日期,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_LXRData * pData = new ANS_Corp_LXRData; *pData = m_pLXRData[i]; pos = m_LXR.AddTail( pData ); _stprintf( Buf , _T("%d") , i+1 ); m_wndList.InsertItem( i , Buf , 0 ); m_wndList.SetItemData( i , (DWORD_PTR)pos); int iTemp=1; m_wndList.SetItemText( i , iTemp++ , pData->szName ); m_wndList.SetItemText( i , iTemp++ , pData->szNickName ); m_wndList.SetItemText( i , iTemp++ , pData->szBranch ); m_wndList.SetItemText( i , iTemp++ , pData->szTel ); m_wndList.SetItemText( i , iTemp++ , pData->szMobile ); if ( pData->bMember ) m_wndList.SetItemText( i , iTemp++ , _T(" 是") ); else iTemp++; str.Format( _T("%.2f") ,pData->fTotalCJ ); m_wndList.SetItemText( i , iTemp++ , str ); str.Format( _T("%.2f") ,pData->fTotalLP ); m_wndList.SetItemText( i , iTemp++ , str ); str.Format( _T("%04d.%02d.%02d") ,pData->tMemberBegin.wYear,pData->tMemberBegin.wMonth,pData->tMemberBegin.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_LXR::OnDblclkCorpLxrList(NMHDR* pNMHDR, LRESULT* pResult) { OnCorpLxrModify(); *pResult = 0; } void DLG_Corp_LXR::OnCorpLxrModify() { long lItem = GetCurrentSelected(); if ( lItem < 0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_Corp_LXRData * pData = m_LXR.GetNext( pos ); if (pData) { DLG_Corp_LXR_Modify dlg(this); dlg.SetParam( *pData,pos2); if ( dlg.DoModal() == IDOK ) { *pData = dlg.GetParam(); //取得修改过后的值 m_wndList.SetItemText( lItem , 1 , pData->szName ); m_wndList.SetItemText( lItem , 2 , pData->szNickName ); m_wndList.SetItemText( lItem , 3 , pData->szBranch ); m_wndList.SetItemText( lItem , 4 , pData->szTel ); m_wndList.SetItemText( lItem , 5 , pData->szMobile ); if ( pData->ucStatus == 0 ) { pData->ucStatus = CORP_LXR_MODIFY; //需要修改 m_lModifyCount ++; //需要修改的记录增加 } } } } long DLG_Corp_LXR::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndList.GetNextSelectedItem(pos); } return -1; } BOOL DLG_Corp_LXR::FindLXRName(const TCHAR *pLXRName, POSITION exPos) { POSITION pos = m_LXR.GetHeadPosition(); POSITION pos2; while (pos) { pos2 = pos; ANS_Corp_LXRData * pData = m_LXR.GetNext( pos ); if ( pos2 != exPos ) { if ( !_tcscmp( pData->szName , pLXRName ) ) return true; } } return false; } void DLG_Corp_LXR::OnCorpLxrAdd() { ANS_Corp_LXRData LXRData={0}; DLG_Corp_LXR_Modify dlg(this); dlg.SetParam( LXRData,0); if ( dlg.DoModal() == IDOK ) { ANS_Corp_LXRData * pData = new ANS_Corp_LXRData; *pData = dlg.GetParam(); pData->ucStatus = CORP_LXR_ADD; pData->lCorpType = m_lCorpType; m_lModifyCount ++; //需要修改的记录增加 POSITION pos = m_LXR.AddTail( pData ); long lCount = m_wndList.GetItemCount(); TCHAR Buf[32]; _stprintf( Buf, _T("%d") , lCount +1 ); //设置新的数据 m_wndList.InsertItem( lCount , Buf , 0); m_wndList.SetItemData( lCount, (DWORD_PTR)pos ); m_wndList.SetItemText( lCount , 1 , pData->szName ); m_wndList.SetItemText( lCount , 2 , pData->szNickName ); m_wndList.SetItemText( lCount , 3 , pData->szBranch ); m_wndList.SetItemText( lCount , 4 , pData->szTel ); m_wndList.SetItemText( lCount , 5 , pData->szMobile ); } } void DLG_Corp_LXR::OnCorpLxrDel() { long lCount = m_wndList.GetSelectedCount(); if ( lCount <= 0 ) return ; long lRet = MessageBox( _T("此操作将会删除联系人,是否继续?") , _T("提问") , 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-- ) //倒转删除 { long lItem = lDel[i]; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); m_wndList.DeleteItem( lItem ); //删除 POSITION pos2 = pos; ANS_Corp_LXRData * pData = m_LXR.GetNext( pos ); if (pData) { if (pData->ucStatus == 0) { pData->ucStatus = CORP_LXR_DEL; m_lModifyCount ++; //需要修改的记录增加 } else { pData->ucStatus = 0; m_lModifyCount --; //因为修改增加时会加1 } } } delete lDel; } void DLG_Corp_LXR::OnCorpLxrPrint() { if (m_lModifyCount>0 ) { MessageBox( _T("你已对联系人做过修改,请确定后再重新打印!") , _T("提示") , MB_ICONINFORMATION ); return ; } DLG_Corp_LXR_Print dlg(this); dlg.m_strCorpName = m_LXRReq.szCorpName; dlg.m_strAddress = m_LXRReq.szAddress; dlg.m_strPostCode = m_LXRReq.szPostCode; long lItem = GetCurrentSelected(); if ( lItem >= 0 ) { POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_Corp_LXRData * pData = m_LXR.GetNext( pos ); if (pData) { dlg.m_strLXR = pData->szName; dlg.m_strTelNum=pData->szTel; if ( _tcslen(pData->szMobile)>0 ) { if ( dlg.m_strTelNum.GetLength()>0 ) dlg.m_strTelNum += _T(";"); dlg.m_strTelNum += CString(pData->szMobile); } } dlg.DoModal(); } else { MessageBox(_T("请先选中联系人,再开始打印!"), _T("提示"), MB_ICONINFORMATION); return; } } void DLG_Corp_LXR::OnCorpLxrPrintht() { if (m_lModifyCount>0 ) { MessageBox( _T("你已对联系人做过修改,请确定后再重新顺丰寄件!") , _T("提示") , MB_ICONINFORMATION ); return ; } long lItem = GetCurrentSelected(); if (lItem < 0) { MessageBox(_T("请先选中联系人,再开始顺丰寄件!"), _T("提示"), MB_ICONINFORMATION); return; } ANS_Corp_SFData sf = { 0 }; GetLocalTime(&sf.tCreate); //创建时间 sf.lStatus = 0; //状态,0-生成,1-已收件,2-已签收 sf.pay_method = 0; //付款方式:0:寄付月结,1:寄方付 2 : 收方付 3 : 第三方付 sf.express_type = 1; //顺丰特惠 sf.lCorpType = m_LXRReq.lCorpType; //企业类型,0-终端客户,1-代理商。 sf.lCorpID = m_LXRReq.lCorpID; //企业id或代理商ID sf.lPayType = m_LXRReq.lPayType; //支付类型,0-非充值,1-短信充值,2-彩信充值,3-代理商短信充值,4-代理商彩信充值,5-功能开通充值,6-月结帐单,7-酬金帐单 sf.lPayID = m_LXRReq.lPayID; //支付记录ID sf.fPrice = m_LXRReq.fPrice; //发票金额 _tcscpy(sf.d_company, m_LXRReq.szCorpName); _tcscpy(sf.d_address, m_LXRReq.szAddress); _tcscpy(sf.d_post_code, m_LXRReq.szPostCode); if (lItem >= 0) { POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_Corp_LXRData * pData = m_LXR.GetNext(pos); if (pData) { _tcscpy(sf.d_contact, pData->szName); _tcscpy(sf.d_tel, pData->szTel); _tcscpy(sf.d_mobile, pData->szMobile); } } //_tcscpy(sf.Cargo_name, _T("合同")); //从联系人发起的,默认是合同 sf.Cargo_count=1; //货物数量 DLG_Corp_LXR_SF dlg(this); m_pSFDlg = &dlg; dlg.SetParam(m_LXRReq.lYWYCount, m_LXRReq.lDefaultYWYID, m_pLXR_YWYData, sf,true); dlg.DoModal(); m_pSFDlg = NULL; /* #ifdef SMSCENTER_ADC DLG_Corp_LXR_PrintHT dlg(this); dlg.m_strAgentName = _T("广州首易信息技术有限公司"); dlg.m_strAgentNo = _T("S542487"); dlg.m_strCorpName = m_LXRReq.szCorpName; dlg.m_strCorpDB = m_LXRReq.szFDDB; dlg.m_strCorpYGS = m_LXRReq.szCorpRS; dlg.m_strCorpJS = m_LXRReq.szCorpSJS; dlg.m_strCorpHY = m_LXRReq.szHY; dlg.m_strCorpAddr = m_LXRReq.szAddress; dlg.m_strCorpPostCode = m_LXRReq.szPostCode; long lItem = GetCurrentSelected(); if ( lItem >= 0 ) { POSITION pos = (POSITION)m_wndList.GetItemData(lItem); POSITION pos2 = pos; ANS_Corp_LXRData * pData = m_LXR.GetNext( pos ); if (pData) { dlg.m_strCorpLXR = pData->szName; dlg.m_strCorpLXRJW=pData->szJob; dlg.m_strCorpLXDH=pData->szTel; if ( _tcslen(pData->szMobile)>0 ) { if ( dlg.m_strCorpLXDH.GetLength()>0 ) dlg.m_strCorpLXDH += _T(";"); dlg.m_strCorpLXDH += CString(pData->szMobile); } dlg.m_strCorpFax=pData->szFax; dlg.m_lCorpZJType=pData->lZJType; dlg.m_strCorpCFD=pData->szCFD; dlg.m_strCorpZJHM=pData->szZJH; dlg.m_strFuncAdmin = pData->szName; dlg.m_strFuncTel = pData->szTel; } } dlg.m_strFuncAgent = _T("广州首易"); dlg.m_strFuncCM = m_LXRReq.szCM; dlg.m_strFuncEmail= _T("adc@mobset.com"); dlg.m_strFuncMobile=_T("13922432209"); dlg.m_strFuncSmsCode=m_LXRReq.szADCSmsCode; dlg.m_bFuncType=true; dlg.m_bFuncCW = true; dlg.m_bFuncAdd = true; SYSTEMTIME t;::GetLocalTime(&t); dlg.m_lTC = 0; dlg.m_lTCYear = t.wYear-2000; dlg.m_lTCMon = t.wMonth-1; dlg.m_tDateSL = COleDateTime::GetCurrentTime(); dlg.m_tDateGJ.SetStatus(COleDateTime::null); dlg.DoModal(); #endif */ } BOOL DLG_Corp_LXR::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; }