// C_YYSPay.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "C_YYSPay.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CC_YYSPay dialog #include "MainFrm.h" #include "ProcessSocket.h" #include "DLG_HZB_Export.h" #include "DLG_Pay_TC.h" #include "DLG_C_Pay_YS.h" #include "DLG_C_YYSPay_See.h" #include "DLG_Corp_FP.h" #include "DLG_Corp_LXR.h" CC_YYSPay::CC_YYSPay(CWnd* pParent /*=NULL*/) : CDialog(CC_YYSPay::IDD, pParent) { //{{AFX_DATA_INIT(CC_YYSPay) m_tBegin = COleDateTime::GetCurrentTime(); m_tEnd = COleDateTime::GetCurrentTime(); m_lCorp = -1; m_lFPType = -1; m_lPayType = -1; m_lArea = -1; m_lTimeType = -1; //}}AFX_DATA_INIT m_bInit = false; m_bRefresh = false; m_pLXRDlg = NULL; m_pFPDlg = NULL; } void CC_YYSPay::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CC_YYSPay) DDX_Control(pDX, IDC_C_PAY_CORPID, m_E_CorpID); DDX_Control(pDX, IDC_C_PAY_CORP, m_L_Corp); DDX_Control(pDX, IDC_C_AGENTPAY_S1, m_S_S1); DDX_Control(pDX, IDC_C_AGENTPAY_LIST, m_wndList); DDX_DateTimeCtrl(pDX, IDC_C_AGENTPAY_TBEGIN, m_tBegin); DDX_DateTimeCtrl(pDX, IDC_C_AGENTPAY_TEND, m_tEnd); DDX_CBIndex(pDX, IDC_C_PAY_CORP, m_lCorp); DDX_CBIndex(pDX, IDC_C_AGENTPAYPAY_FPTYPE, m_lFPType); DDX_CBIndex(pDX, IDC_C_AGENTPAYPAY_PAYTYPE, m_lPayType); DDX_CBIndex(pDX, IDC_C_AGENTPAYPAY_AREA, m_lArea); DDX_CBIndex(pDX, IDC_C_AGENTPAYPAY_TIME, m_lTimeType); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CC_YYSPay, CDialog) //{{AFX_MSG_MAP(CC_YYSPay) ON_WM_SIZE() ON_BN_CLICKED(IDC_C_AGENTPAY_QUERY, OnCAgentpayQuery) ON_NOTIFY(NM_DBLCLK, IDC_C_AGENTPAY_LIST, OnDblclkCAgentpayList) ON_NOTIFY(NM_RCLICK, IDC_C_AGENTPAY_LIST, OnRclickCAgentpayList) ON_BN_CLICKED(IDC_C_AGENTPAY_TC, OnCAgentpayTc) ON_BN_CLICKED(IDC_C_PAY_QUERY2, OnCPayQuery2) ON_CBN_SELCHANGE(IDC_C_PAY_CORP, OnSelchangeCPayCorp) //}}AFX_MSG_MAP ON_COMMAND(MENU_YYSPAY_SEE , On_User_See ) ON_COMMAND(MENU_YYSPAY_YS , On_User_YS ) ON_COMMAND(MENU_YYSPAY_EXPORT , On_User_Export ) ON_COMMAND(MENU_YYSPAY_FP , On_User_FP ) ON_COMMAND(MENU_YYSPAY_FP_YK , On_User_FP_YK ) ON_COMMAND(MENU_YYSPAY_FP_YJ , On_User_FP_YJ ) ON_COMMAND(MENU_YYSPAY_FP_PRINT , On_User_FP_PRINT ) ON_COMMAND(MENU_YYSPAY_TEST , On_User_Test ) ON_COMMAND_RANGE( MENU_PAY_FP_NO, MENU_PAY_FP_TYPE7, On_User_FP_Type ) ON_COMMAND(MENU_PAY_FPMANAGER , On_User_FPManager ) ON_COMMAND(MENU_PAY_LXRMANAGER , On_User_LXRManager ) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CC_YYSPay message handlers void CC_YYSPay::Close() { Close_Corp(); Close_PayData(); Close_YWY(); Close_Agent(); } BOOL CC_YYSPay::RefreshInfo() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return false; } #ifndef SMSMANAGER_KF m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0); #endif m_pMainFrame->SendFrame(SMSFUNC_AGENT_NAME, NULL, 0); //取代理信息 m_pMainFrame->SendFrame(SMSFUNC_YWY_NAME, NULL, 0); //取代理信息 return true; } BOOL CC_YYSPay::ReHide() { ShowWindow( SW_HIDE ); return true; } BOOL CC_YYSPay::ReShow(BOOL bRefresh) { ShowWindow( SW_SHOW ); if ( bRefresh || !m_bRefresh ) { RefreshInfo(); } return true; } BOOL CC_YYSPay::ProcessSocket(Socket_Head *pHead) { CString strTemp; //取过滤信息 if (pHead->lFuncType == SMSFUNC_CORP_NAME) { m_bRefresh = true; //已经刷新过 ANS_Corp_Name * pCorp = (ANS_Corp_Name *)pHead->pFrame; ANS_Corp_NameData * pData = (ANS_Corp_NameData *)(pHead->pFrame+sizeof(ANS_Corp_Name)); m_L_Corp.ResetContent(); //删除原已有的企业 m_L_Corp.AddString( _T("所有企业") ); this->Close_Corp(); //关闭原队列 for ( int i=0;ilCount;i++ ) { ANS_Corp_NameData * pNewData = new ANS_Corp_NameData; *pNewData = *pData; POSITION pos = m_Corp.AddTail(pNewData); strTemp.Format( _T("%d-%s"),pData->lCorpID,pData->szCorpName); long lItem = m_L_Corp.AddString( strTemp ); m_L_Corp.SetItemData( lItem , (DWORD_PTR)pos); pData ++; } m_L_Corp.SetCurSel(0); return true; } if(pHead->lFuncType == SMSFUNC_CORP_YYSPAY ) { ANS_Corp_YYSPAY * pPay = (ANS_Corp_YYSPAY *)pHead->pFrame; if ( pPay->ret.lReqType==0 ) //查询 { ANS_Corp_YYSPayData * pData= (ANS_Corp_YYSPayData *)(pHead->pFrame+sizeof(ANS_Corp_YYSPAY)); Close_PayData(); for ( int i=0 ; ilCount ; i++ ) { ANS_Corp_YYSPayData * pNewData = new ANS_Corp_YYSPayData; *pNewData = *pData; POSITION pos = m_PayData.AddTail(pNewData); pData ++; } RefreshMonPayData(); } if ( pPay->ret.lReqType==2 ) //修改 { ANS_Corp_YYSPayData * pData= (ANS_Corp_YYSPayData *)(pHead->pFrame+sizeof(ANS_Corp_YYSPAY)); if ( pPay->lCount>=0 ) { POSITION pos = (POSITION)m_wndList.GetItemData(pPay->lCount); ANS_Corp_YYSPayData * pData2 = m_PayData.GetNext( pos ); if ( pData2 ) { *pData2 = *pData; //取到新的数据 //设置新的数据 strTemp.Format( _T("%.2f") , pData->fXFPrice); //消费金额 long iTemp=4; m_wndList.SetItemText( pPay->lCount , iTemp++ , strTemp); strTemp.Format( _T("%.2f") , pData->fCJPrice); //酬金总额 m_wndList.SetItemText( pPay->lCount , iTemp++ , strTemp); strTemp.Format( _T("%.2f") , pData->fPayPer); //发放比例 m_wndList.SetItemText( pPay->lCount , iTemp++ , strTemp); strTemp.Format( _T("%.2f") , pData->fPrice); //应收酬金 m_wndList.SetItemText( pPay->lCount , iTemp++ , strTemp); } } else { MessageBox( _T("修改数据失败!") , _T("错误") , MB_ICONWARNING ); } } return true; } if ( pHead->lFuncType == SMSFUNC_CORP_PAY_YS ) { ANS_Corp_Pay_YS * pYS = (ANS_Corp_Pay_YS *)pHead->pFrame; if ( pYS->bOK ) { switch(pYS->lType) { case 14: { CString strType = DLG_Corp_FP::GetFPType2(pYS->bFP); m_wndList.SetItemText(pYS->lItem,11,strType); } break; case 24: m_wndList.SetItemText(pYS->lItem,12,_T("已开票")); break; case 34: m_wndList.SetItemText(pYS->lItem,12,_T("已寄出")); break; case 44: if ( pYS->bFP ) m_wndList.SetItemText(pYS->lItem,5,_T(" 是")); else m_wndList.SetItemText(pYS->lItem,5,_T("")); break; default: m_wndList.SetItemText(pYS->lItem,4,_T("")); break; } } return true; } //查看联系人 if (pHead->lFuncType == SMSFUNC_CORP_LXR) { ANS_Corp_LXR * pLXR = (ANS_Corp_LXR *)pHead->pFrame; if (pLXR->lCount < 0) //权限不足 return true; ANS_Corp_LXRData * pData= (ANS_Corp_LXRData *)(pHead->pFrame+sizeof(ANS_Corp_LXR)); ANS_Corp_LXR_YWYData * pYWYData = (ANS_Corp_LXR_YWYData *)(pHead->pFrame + sizeof(ANS_Corp_LXR) + sizeof(ANS_Corp_LXRData)*pLXR->lCount); DLG_Corp_LXR dlg(this); m_pLXRDlg = &dlg; dlg.SetParam( *pLXR , pData,0, pYWYData); //企业类型为:0(企业) if ( dlg.DoModal() == IDOK && dlg.m_lModifyCount>0) { long lSize = sizeof(REQ_Corp_LXRModify) + sizeof(ANS_Corp_LXRData)*dlg.m_lModifyCount; BYTE * pDataSend = new BYTE[lSize];memset( pDataSend , 0 , lSize ); REQ_Corp_LXRModify * pModifySend = (REQ_Corp_LXRModify*)pDataSend; ANS_Corp_LXRData * pLXRSend = (ANS_Corp_LXRData *)(pDataSend+sizeof(REQ_Corp_LXRModify)); pModifySend->lCorpID= pLXR->lCorpID; pModifySend->lCount = dlg.m_lModifyCount; //清除队列中的内容 ANS_Corp_LXRData * pLXRTemp; while (!dlg.m_LXR.IsEmpty()) { pLXRTemp = dlg.m_LXR.GetHead(); //pLXRTemp->lCorpType = 0; //强制设置企业类型为:0(企业) dlg.m_LXR.RemoveHead(); if (pLXRTemp->ucStatus != 0 ) //不为0,需要修改 { *pLXRSend = *pLXRTemp; pLXRSend ++; } delete pLXRTemp; } m_pMainFrame->SendFrame( SMSFUNC_CORP_LXRMODIFY , pDataSend , lSize ); } else { //清除队列中的内容 ANS_Corp_LXRData * pLXRTemp; while (!dlg.m_LXR.IsEmpty()) { pLXRTemp = dlg.m_LXR.GetHead(); dlg.m_LXR.RemoveHead(); delete pLXRTemp; } } m_pLXRDlg = NULL; return true; } //联系人修改 if (pHead->lFuncType == SMSFUNC_CORP_LXRMODIFY) { return true; } //取业务员名字 if (pHead->lFuncType == SMSFUNC_YWY_NAME) { ANS_YWY_Name * pYWY = (ANS_YWY_Name *)pHead->pFrame; ANS_YWY_NameData * pData = (ANS_YWY_NameData *)(pHead->pFrame + sizeof(ANS_YWY_Name)); this->Close_YWY(); for (int i = 0; i < pYWY->lCount; i++) { ANS_YWY_NameData * pNewData = new ANS_YWY_NameData; *pNewData = *pData; m_YWY.AddTail(pNewData); pData++; } return true; } //取代理商信息 if (pHead->lFuncType == SMSFUNC_AGENT_NAME) { ANS_Agent_Name * pAgent = (ANS_Agent_Name *)pHead->pFrame; ANS_Agent_NameData * pData = (ANS_Agent_NameData *)(pHead->pFrame + sizeof(ANS_Agent_Name)); this->Close_Agent(); for (int i = 0; i < pAgent->lCount; i++) { ANS_Agent_NameData * pNewData = new ANS_Agent_NameData; *pNewData = *pData; m_Agent.AddTail(pNewData); pData++; } return true; } return false; } BOOL CC_YYSPay::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame) { //查看联系人 if (pHead->lFuncType == SMSFUNC_CORP_FP) { ANS_Corp_FP * pFP = (ANS_Corp_FP *)pFrame; if (pFP->lCount < 0) //权限不足 return true; ANS_Corp_FPData * pData= (ANS_Corp_FPData *)(pFrame+sizeof(ANS_Corp_FP)); ANS_Corp_LXR_YWYData * pYWYData = (ANS_Corp_LXR_YWYData *)(pFrame + sizeof(ANS_Corp_FP) + sizeof(ANS_Corp_FPData)*pFP->lCount); DLG_Corp_FP dlg(this); m_pFPDlg = &dlg; dlg.SetParam( *pFP , pData,0, pYWYData); //企业类型为:0(企业) if ( dlg.DoModal() == IDOK && dlg.m_lModifyCount>0) { long lSize = sizeof(REQ_Corp_FPModify) + sizeof(ANS_Corp_FPData)*dlg.m_lModifyCount; BYTE * pDataSend = new BYTE[lSize];memset( pDataSend , 0 , lSize ); REQ_Corp_FPModify * pModifySend = (REQ_Corp_FPModify*)pDataSend; ANS_Corp_FPData * pFPSend = (ANS_Corp_FPData *)(pDataSend+sizeof(REQ_Corp_FPModify)); pModifySend->lCorpID= pFP->lCorpID; pModifySend->lCount = dlg.m_lModifyCount; //清除队列中的内容 ANS_Corp_FPData * pFPTemp; while (!dlg.m_FP.IsEmpty()) { pFPTemp = dlg.m_FP.GetHead(); //pFPTemp->lCorpType = 0; //强制设置企业类型为:0(企业) dlg.m_FP.RemoveHead(); if (pFPTemp->ucStatus != 0 ) //不为0,需要修改 { *pFPSend = *pFPTemp; pFPSend ++; } delete pFPTemp; } m_pMainFrame->SendFrame( SMSFUNC_CORP_FPMODIFY , pDataSend , lSize ); } else { //清除队列中的内容 ANS_Corp_FPData * pFPTemp; while (!dlg.m_FP.IsEmpty()) { pFPTemp = dlg.m_FP.GetHead(); dlg.m_FP.RemoveHead(); delete pFPTemp; } } m_pFPDlg = NULL; return true; } //联系人修改 if (pHead->lFuncType == SMSFUNC_CORP_FPMODIFY) { return true; } if (pHead->lFuncType == SMSFUNC_CORP_SF_ADD || pHead->lFuncType == SMSFUNC_CORP_SF_CANCEL || pHead->lFuncType == SMSFUNC_CORP_SF_ROUTE) { if (m_pLXRDlg) { m_pLXRDlg->ProcessSocket(pHead, pFrame); } if (m_pFPDlg) { m_pFPDlg->ProcessSocket(pHead, pFrame); } return true; } return false; } BOOL CC_YYSPay::OnInitDialog() { CDialog::OnInitDialog(); //取得共用参数 //CMainFrame * pFrame = static_cast ((CMainFrame *)AfxGetMainWnd()); this->GetParent()->GetParentFrame(); m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame(); m_pSocket = &m_pMainFrame->m_Socket; //初始化List m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5); m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LIST) ); m_wndList.SubClassWindow2(); m_wndList.SetHeadings(_T("序号,50; 企业名称,200;酬金类型,100;酬金月份,80;消费金额,80;总酬金,80;发放比例,80;应收酬金,80;应收,55;测试,55;收款时间,130; 发票,80;发票状态,80;开票时间,130;实收金额,80;实收单价,70;实收短信量,80; 备 注,130;客户经理,90; 代理商,130;")); m_wndList.SetGridLines(true); // m_wndList.SetImageList(&m_Image,LVSIL_SMALL); m_bInit = true; #ifdef SMSMANAGER_KF GetDlgItem(IDC_C_AGENTPAY_S1)->ShowWindow(SW_HIDE); GetDlgItem(IDC_C_PAY_CORP)->ShowWindow(SW_HIDE); GetDlgItem(IDC_C_PAY_CORPID)->ShowWindow(SW_HIDE); GetDlgItem(IDC_C_PAY_QUERY2)->ShowWindow(SW_HIDE); GetDlgItem(IDC_C_AGENTPAYPAY_PAYTYPE)->ShowWindow(SW_HIDE); #endif SYSTEMTIME t; ::GetLocalTime(&t); long lMon = t.wMonth; lMon--; if ( lMon<=0 ) { lMon = 12; t.wYear --; } t.wMonth = lMon; m_tBegin.SetDate( t.wYear,t.wMonth,1 ); //起始 m_tEnd.SetDate( t.wYear,t.wMonth,1 );//结束 m_lPayType = 0; //默认查看所有手机类型 m_lFPType = 0; //默认查看所有手机类型 m_lArea = 0; m_lTimeType = 0; UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void CC_YYSPay::OnSize(UINT nType, int cx, int cy) { CDialog::OnSize(nType, cx, cy); if ( m_bInit ) { CRect rect; m_S_S1.GetWindowRect(&rect); m_wndList.MoveWindow( 0 , 0+rect.Height()+5 , cx,cy-rect.Height()-5); } } BOOL CC_YYSPay::PreTranslateMessage(MSG* pMsg) { if ( pMsg->hwnd == m_E_CorpID && pMsg->message == WM_KEYDOWN ) { if ( pMsg->wParam == 13 ) //回车键 { this->OnCPayQuery2(); return true; } } return CDialog::PreTranslateMessage(pMsg); } void CC_YYSPay::OnCAgentpayQuery() { UpdateData(true); if ( m_tEnd < m_tBegin ) { MessageBox( _T("查询结束日期不能小于起始日期,请改正!") , _T("错误") , MB_ICONWARNING ); return ; } REQ_Corp_YYSPAY * pPay = new REQ_Corp_YYSPAY;memset(pPay,0,sizeof(REQ_Corp_YYSPAY)); pPay->lReqType = 0; //查询帐单 //企业 if ( m_lCorp <= 0 ) //选了所有企业 { pPay->lCorpID = -1; } else { POSITION pos = (POSITION)m_L_Corp.GetItemData(m_lCorp); POSITION pos2 = pos; ANS_Corp_NameData * pData = m_Corp.GetNext( pos ); if (pData) { pPay->lCorpID = pData->lCorpID; } else { return; } } m_tBegin.GetAsSystemTime( pPay->tBegin ); m_tEnd.GetAsSystemTime( pPay->tEnd ); pPay->lPayType = m_lPayType; pPay->lArea = m_lArea; pPay->lTimeType= m_lTimeType; #ifdef SMSMANAGER_KF pPay->lFPType = m_lFPType; #else pPay->lFPType = m_lFPType-1; #endif m_pMainFrame->SendFrame(SMSFUNC_CORP_YYSPAY,(BYTE*)pPay,sizeof(REQ_Corp_YYSPAY)); } void CC_YYSPay::RefreshMonPayData() { long lAgentID = -10; //显示所有的 m_wndList.ShowWindow(SW_HIDE); m_wndList.DeleteAllItems(); //删除原有的内容 POSITION pos = m_PayData.GetHeadPosition(); POSITION pos2=0; int i=0; TCHAR Buf[128]={0}; double fXFTotal=0; double fCJTotal=0; double fYSTotal=0; double fTotal=0; long lXFItem=0; long lCJItem=0; long lYSItem=0; long lTotalItem=0; CString str; while ( pos ) { pos2 = pos; ANS_Corp_YYSPayData * pData = m_PayData.GetNext(pos); if ( pData ) { if ( true ) { //m_wndList.SetHeadings(_T("序号,50; 企业名称,200;酬金类型,80;酬金月份,80;消费金额,80;酬金总额,80;应收酬金,80;应收,55;测试,55;收款时间,130; 发票,80;发票状态,80;开票时间,130;实收金额,80;实收单价,70;实收短信量,80; 备 注,130;")); //m_wndList.SetHeadings(_T("序号,50; 企业名称,200;酬金类型,100;酬金月份,80;消费金额,80;总酬金,80;发放比例,80;应收酬金,80;应收,55;测试,55;收款时间,130; 发票,80;发票状态,80;开票时间,130;实收金额,80;实收单价,70;实收短信量,80; 备 注,130;")); long iTemp=1; _stprintf( Buf , _T("%d") , i+1 ); m_wndList.InsertItem( i , Buf , 0 ); str.Format( _T("%d-%s"),pData->lCorpID,pData->szCorpName); m_wndList.SetItemText( i , iTemp++ , str); if ( pData->lPayType==0 ) m_wndList.SetItemText( i , iTemp++ , _T("企信通酬金90%" )); if ( pData->lPayType==1 ) m_wndList.SetItemText( i , iTemp++ , _T("MAS酬金90%" )); if ( pData->lPayType==2 ) m_wndList.SetItemText( i , iTemp++ , _T("企信通酬金10%" )); if ( pData->lPayType==3 ) m_wndList.SetItemText( i , iTemp++ , _T("MAS酬金10%" )); str.Format( _T("%04d.%02d") , pData->tPayTime.wYear , pData->tPayTime.wMonth); m_wndList.SetItemText( i , iTemp++ , str); str.Format( _T("%.2f") , pData->fXFPrice); //消费金额 lXFItem = iTemp; m_wndList.SetItemText( i , iTemp++ , str); str.Format( _T("%.2f") , pData->fCJPrice); //酬金总额 lCJItem = iTemp; m_wndList.SetItemText( i , iTemp++ , str); str.Format( _T("%.2f") , pData->fPayPer); //发放比例 m_wndList.SetItemText( i , iTemp++ , str); str.Format( _T("%.2f") , pData->fPrice); //应收酬金 lTotalItem = iTemp; m_wndList.SetItemText( i , iTemp++ , str); if ( pData->bYS ) m_wndList.SetItemText( i , iTemp++ , _T(" 是") ); else m_wndList.SetItemText( i , iTemp++ , _T("") ); if ( pData->bTest ) m_wndList.SetItemText( i , iTemp++ , _T(" 是") ); else m_wndList.SetItemText( i , iTemp++ , _T("") ); str.Format( _T("%04d.%02d.%02d %02d:%02d") , pData->tYSTime.wYear,pData->tYSTime.wMonth,pData->tYSTime.wDay,pData->tYSTime.wHour,pData->tYSTime.wMinute ); m_wndList.SetItemText( i , iTemp++ , str ); if ( pData->bFP>0 ) { CString strType = DLG_Corp_FP::GetFPType2(pData->bFP); m_wndList.SetItemText( i , iTemp++ , strType ); switch(pData->lFPStatus) { case 0: default: m_wndList.SetItemText( i , iTemp++ , _T("未开票") ); break; case 1: m_wndList.SetItemText( i , iTemp++ , _T("已开票") ); break; case 2: m_wndList.SetItemText( i , iTemp++ , _T("已寄出") ); break; } if ( pData->lFPStatus>0 ) { str.Format( _T("%04d.%02d.%02d %02d:%02d") , pData->tFPTime.wYear,pData->tFPTime.wMonth,pData->tFPTime.wDay,pData->tFPTime.wHour,pData->tFPTime.wMinute ); m_wndList.SetItemText( i , iTemp++ , str); } } else { iTemp++; iTemp++; iTemp++; } str.Format( _T("%.2f") , pData->fYSPrice); //帐单金额 lYSItem = iTemp; m_wndList.SetItemText( i , iTemp++ , str); str.Format( _T("%.4f") , pData->fYSPriceOne); //单价 m_wndList.SetItemText( i , iTemp++ , str); str.Format( _T("%d") , pData->lYSSMSCount); //短信量 m_wndList.SetItemText( i , iTemp++ , str); m_wndList.SetItemText( i , iTemp++ , pData->szBZ); m_wndList.SetItemText(i, iTemp++, GetName_YWY(pData->lYWYID)); m_wndList.SetItemText(i, iTemp++, GetName_Agent(pData->lAgentID)); m_wndList.SetItemData( i , (DWORD_PTR)pos2 ); //存Pos fXFTotal += pData->fXFPrice; fCJTotal += pData->fCJPrice; fTotal += pData->fPrice; fYSTotal += pData->fYSPrice; i++; } } } m_wndList.InsertItem(i,_T(""),0 ); i++; m_wndList.InsertItem(i,_T("合计"),0 ); str.Format( _T("%.2f") , fXFTotal ); m_wndList.SetItemText( i , lXFItem , str ); str.Format( _T("%.2f") , fCJTotal ); m_wndList.SetItemText( i , lCJItem , str ); str.Format( _T("%.2f") , fYSTotal ); m_wndList.SetItemText( i , lYSItem , str ); str.Format( _T("%.2f") , fTotal ); m_wndList.SetItemText( i , lTotalItem , str ); m_wndList.ShowWindow(SW_SHOW); } void CC_YYSPay::OnDblclkCAgentpayList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; On_User_See(); } void CC_YYSPay::OnRclickCAgentpayList(NMHDR* pNMHDR, LRESULT* pResult) { *pResult = 0; ShowRMenu(); } void CC_YYSPay::ShowRMenu() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return ; } CMenu menu; menu.CreatePopupMenu(); BOOL bLock = false; long lItem = this->GetCurrentSelected(); ANS_Corp_YYSPayData * pData = NULL; if ( lItem>=0 && lItem=0 ) { pData = m_PayData.GetNext( pos ); } } if ( !pData ) return ; #ifndef SMSMANAGER_KF //添加 if ( lItem>=0 ) { menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_YYSPAY_SEE , _T(" 修 改(已集成到综合查询) ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_YYSPAY_SEE , _T(" 修 改(已集成到综合查询) ") ); } menu.AppendMenu(MF_SEPARATOR ); if ( m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD,false) ) //只有黄小姐有这权限 { if ( lItem>=0 && pData && pData->bYS ) { menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_YYSPAY_YS , _T(" 置为款项已收(已集成到综合查询) ") ); } else { menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_YYSPAY_YS , _T(" 置为款项已收(已集成到综合查询) ") ); } } if ( lItem>=0 && pData && pData->bTest ) { menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_YYSPAY_TEST , _T(" 置为非测试帐单(已集成到综合查询) ") ); } else { if ( lItem>=0 ) { menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_YYSPAY_TEST , _T(" 置为测试帐单(已集成到综合查询) ") ); } } if ( lItem>=0 && pData && pData->lFPStatus==0 ) { CMenu MenuFP; MenuFP.CreatePopupMenu(); MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_NO , _T(" 无需发票 ") ); MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE1 , _T(" 地税票 ") ); MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE2 , _T(" 增值税普票 ") ); MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE3 , _T(" 移动票 ") ); MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE4 , _T(" 增值税专票 ") ); MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE5 , _T(" 无需发票已报税 ") ); MenuFP.AppendMenu(MF_STRING, MENU_PAY_FP_TYPE6, _T(" 盈易付普票 ")); MenuFP.AppendMenu(MF_STRING, MENU_PAY_FP_TYPE7, _T(" 盈易付专票 ")); menu.AppendMenu(MF_STRING|MF_POPUP | MF_DISABLED | MF_GRAYED,(UINT)MenuFP.GetSafeHmenu(), _T(" 发票选择(已集成到综合查询) ") ); } #endif if ( lItem>=0 && pData && pData->bFP && pData->lFPStatus==0 ) { menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_YYSPAY_FP_YK , _T(" 置为已开发票(已集成到综合查询) ") ); } if ( lItem>=0 && pData && pData->bFP && pData->lFPStatus==1 ) { menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_YYSPAY_FP_YJ , _T(" 置为已寄发票(已集成到综合查询) ") ); } // if ( lItem>=0 ) // { // menu.AppendMenu(MF_SEPARATOR ); // menu.AppendMenu(MF_STRING , MENU_YYSPAY_FP_PRINT , _T(" 打印信封 ") ); // } if ( lItem>=0 && pData ) //是预充短信,可以置成已充及作废 { menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_PAY_FPMANAGER , _T(" 发票抬头... ") ); menu.AppendMenu(MF_STRING , MENU_PAY_LXRMANAGER , _T(" 联系人... ") ); } #ifndef SMSMANAGER_KF menu.AppendMenu(MF_SEPARATOR ); menu.AppendMenu(MF_STRING , MENU_YYSPAY_EXPORT , _T(" 复制数据 ") ); #endif //显示菜单 POINT pt ; ::GetCursorPos( &pt ); //this->ClientToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL); menu.DestroyMenu(); } long CC_YYSPay::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndList.GetNextSelectedItem(pos); } return -1; } void CC_YYSPay::On_User_See() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return ; } long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; ANS_Corp_YYSPayData * pData = NULL; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos>=0 ) { pData = m_PayData.GetNext( pos ); } if ( pData && pData->bYS) { DLG_C_YYSPay_See dlg( this ); dlg.SetParam(*pData); if ( dlg.DoModal() == IDOK ) { ANS_Corp_YYSPayData data = dlg.GetParam(); if ( data.fPrice != pData->fPrice || data.fXFPrice != pData->fXFPrice || data.fCJPrice != pData->fCJPrice || data.fPayPer != pData->fPayPer ) { long lSize=sizeof(REQ_Corp_YYSPAY) + sizeof(ANS_Corp_YYSPayData); BYTE * pData2 = new BYTE[lSize]; memset(pData2 , 0 , lSize); REQ_Corp_YYSPAY * pPay = (REQ_Corp_YYSPAY*)pData2; ANS_Corp_YYSPayData * pDataSend = (ANS_Corp_YYSPayData*)(pData2+sizeof(REQ_Corp_YYSPAY)); pPay->lReqType = 2; //修改 pPay->lCorpID = pData->lCorpID; pPay->lPayType = lItem; *pDataSend = data; m_pMainFrame->SendFrame(SMSFUNC_CORP_YYSPAY,pData2,lSize); } } } } void CC_YYSPay::On_User_YS() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return ; } long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; ANS_Corp_YYSPayData * pData = NULL; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos>=0 ) { pData = m_PayData.GetNext( pos ); } if ( !pData->bYS ) { return ; } int iRet = MessageBox( _T("真的要将此笔款项置成已收?状态改变后将不能恢复!") , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return ; ANS_Corp_MonPayData mon={0}; mon.lCorpID = pData->lCorpID; mon.lAgentID = pData->lAgentID; mon.bTest = pData->bTest; mon.fPrice = pData->fPrice; mon.fPriceOne = pData->fPriceOne; mon.lSMSCount = pData->lSMSCount; DLG_C_Pay_YS dlg(this); if ( pData->lPayType == 0 ) //只有是月结帐单才有实收款项 dlg.SetParam( &mon ); if ( dlg.DoModal() != IDOK ) return ; REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS; memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS)); pYS->lPayID = pData->lPayID; pYS->lItem = lItem; pYS->lType = 4; pYS->bAddMonPay = false; pYS->fYSPrice = dlg.m_Pay.fYSPrice; pYS->fYSPriceOne = dlg.m_Pay.fYSPriceOne; pYS->lYSSMSCount = dlg.m_Pay.lYSSMSCount; _tcscpy(pYS->szPayMode , dlg.m_strPayMode ); _tcscpy(pYS->szBZ , dlg.m_strBZ ); dlg.m_tPayTime.GetAsSystemTime(pYS->tPayTime); m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS)); } void CC_YYSPay::On_User_FPManager() { long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos<0 ) return ; POSITION pos2 = pos; ANS_Corp_YYSPayData * pData = m_PayData.GetNext( pos ); if ( !pData ) return ; REQ_Corp_FP * pFP = new REQ_Corp_FP; memset( pFP , 0 , sizeof(REQ_Corp_FP)); _tcscpy( pFP->szCorpName , pData->szCorpName ); pFP->lCorpID = pData->lCorpID; pFP->lCorpType=0; //查终端企业 pFP->lPayType = 7;//酬金帐单 pFP->lPayID = pData->lPayID; //充值ID pFP->fPrice = pData->fPrice; //充值金额 m_pMainFrame->SendFrame( SMSFUNC_CORP_FP , (BYTE*)pFP , sizeof(REQ_Corp_FP) ); //取联系人信息 } void CC_YYSPay::On_User_LXRManager() { long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos<0 ) return ; POSITION pos2 = pos; ANS_Corp_YYSPayData * pData = m_PayData.GetNext( pos ); if ( !pData ) return ; REQ_Corp_LXR * pLXR = new REQ_Corp_LXR; memset( pLXR , 0 , sizeof(REQ_Corp_LXR)); _tcscpy( pLXR->szCorpName , pData->szCorpName ); pLXR->lCorpID = pData->lCorpID; pLXR->lCorpType=0; //查终端企业 pLXR->lPayType = 7;//酬金帐单 pLXR->lPayID = pData->lPayID; //充值ID pLXR->fPrice = pData->fPrice; //充值金额 m_pMainFrame->SendFrame( SMSFUNC_CORP_LXR , (BYTE*)pLXR , sizeof(REQ_Corp_LXR) ); //取联系人信息 } void CC_YYSPay::On_User_Test() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return ; } long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; BOOL bTest=true; ANS_Corp_YYSPayData * pData = NULL; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos>=0 ) { pData = m_PayData.GetNext( pos ); if ( pData->bTest ) //原来是测试的变为不是测试 bTest = false; } CString str; str.Format( _T("确认需要更改测试转换状态为:%s?") , bTest?_T("是"):_T("否")); int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return ; REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS; memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS)); pYS->lPayID = pData->lPayID; pYS->lItem = lItem; pYS->lType = 44; pYS->bFP = bTest; m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS)); } void CC_YYSPay::On_User_FP_Type(UINT nID) { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return ; } long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; BOOL bOK=false; BOOL bKP=true; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos<0 ) return ; POSITION pos2 = pos; ANS_Corp_YYSPayData * pData = m_PayData.GetNext( pos ); if ( pData->lFPStatus!=0 ) return ; CString strType=_T("未知"); UINT ll=MENU_PAY_FP_NO; long lType=nID - ll; switch(lType) { case 0: strType = _T("无需发票"); break; case 1: strType = _T("地税发票"); break; case 2: strType = _T("增值税普票"); break; case 3: strType = _T("移动发票"); break; case 4: strType = _T("增值税专票"); break; case 5: strType = _T("无需发票已报税"); break; case 6: strType = _T("盈易付普票"); break; case 7: strType = _T("盈易付专票"); break; } CString str; str.Format( _T("确认需要更改发票状态为:%s?") , strType); int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return ; REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS; memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS)); pYS->lPayID = pData->lPayID; pYS->lItem = lItem; pYS->lType = 14; pYS->bFP = lType; m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS)); } void CC_YYSPay::On_User_FP() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return ; } long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; BOOL bOK=false; BOOL bKP=true; ANS_Corp_YYSPayData * pData = NULL; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos>=0 ) { pData = m_PayData.GetNext( pos ); } if ( pData->bFP && pData->lFPStatus == 0 ) { bOK = true; bKP = false; } if ( !pData->bFP ) { bOK = true; bKP = true; } if ( !bOK ) return ; CString str; str.Format( _T("确认需要更改发票状态为:%s?") , bKP?_T("是"):_T("否")); int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return ; REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS; memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS)); pYS->lPayID = pData->lPayID; pYS->lItem = lItem; pYS->lType = 14; pYS->bFP = bKP; m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS)); } void CC_YYSPay::On_User_FP_YK() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return ; } long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; ANS_Corp_YYSPayData * pData = NULL; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos>=0 ) { pData = m_PayData.GetNext( pos ); } if ( !pData->bFP || pData->lFPStatus!=0 ) { return ; } CString str; str= _T("确认需要更改发票状态为:已开票?"); int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return ; REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS; memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS)); pYS->lPayID = pData->lPayID; pYS->lItem = lItem; pYS->lType = 24; m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS)); } void CC_YYSPay::On_User_FP_YJ() { if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) ) { return ; } long lItem = this->GetCurrentSelected(); if ( lItem <0 ) return ; ANS_Corp_YYSPayData * pData = NULL; POSITION pos = (POSITION)m_wndList.GetItemData(lItem); if ( (DWORD_PTR)pos>=0 ) { pData = m_PayData.GetNext( pos ); } if ( !pData->bFP || pData->lFPStatus!=1 ) { return ; } CString str; str= _T("确认需要更改发票状态为:已寄出?"); int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return ; REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS; memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS)); pYS->lPayID = pData->lPayID; pYS->lItem = lItem; pYS->lType = 34; m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS)); } void CC_YYSPay::On_User_FP_PRINT() { } void CC_YYSPay::On_User_Export() { m_wndList.CopyToClipboard(); /* // m_wndList.SetHeadings(_T("序号,50; 代理名称,200; 出单人,80;充值方式,80;充值金额,80;可用金额,80;充值时间,130;备 注,130; 业务员,70")); SortItem item[32]={0}; _tcscpy(item[0].szItem,_T("代理名称")); _tcscpy(item[1].szItem,_T("出单人")); _tcscpy(item[2].szItem,_T("充值方式")); _tcscpy(item[3].szItem,_T("充值金额")); _tcscpy(item[4].szItem,_T("可用金额")); _tcscpy(item[5].szItem,_T("充值时间")); _tcscpy(item[6].szItem,_T("备注")); _tcscpy(item[7].szItem,_T("业务员")); DLG_HZB_Export dlg(this); dlg.SetParam( &m_wndList ); dlg.SetListItem(item,8,-3); dlg.DoModal(); */ } void CC_YYSPay::OnCAgentpayTc() { /* long lAgentID=m_L_Agent.GetItemData(m_L_Agent.GetCurSel()); if ( lAgentID==0 || lAgentID==-1 ) lAgentID=-10; DLG_Pay_TC dlg ( this ); dlg.SetParam( NULL,&m_PayData,NULL,lAgentID ); dlg.DoModal(); */ } void CC_YYSPay::Close_PayData() { //清除队列中的内容 while (!m_PayData.IsEmpty()) { ANS_Corp_YYSPayData * pData = m_PayData.GetHead(); m_PayData.RemoveHead(); delete pData; } } void CC_YYSPay::Close_Corp() { //清除队列中的内容 while (!m_Corp.IsEmpty()) { ANS_Corp_NameData * pData = m_Corp.GetHead(); m_Corp.RemoveHead(); delete pData; } } void CC_YYSPay::OnCPayQuery2() { CString strTemp; CString strFind; m_E_CorpID.GetWindowText(strFind); if ( strFind.GetLength()<=0 ) return ; long lSel = m_L_Corp.GetCurSel(); long lCount = m_L_Corp.GetCount(); for ( int i=lSel+1 ; i=0 ) { m_L_Corp.SetCurSel(i); OnSelchangeCPayCorp(); return ; } } for ( i=0 ; i=0 ) { m_L_Corp.SetCurSel(i); OnSelchangeCPayCorp(); return ; } } } void CC_YYSPay::OnSelchangeCPayCorp() { } void CC_YYSPay::Close_YWY() { //清除队列中的内容 while (!m_YWY.IsEmpty()) { ANS_YWY_NameData * pData = m_YWY.GetHead(); m_YWY.RemoveHead(); delete pData; } } void CC_YYSPay::Close_Agent() { //清除队列中的内容 while (!m_Agent.IsEmpty()) { ANS_Agent_NameData * pAgent = m_Agent.GetHead(); m_Agent.RemoveHead(); delete pAgent; } } CString CC_YYSPay::GetName_Agent(long lAgentID) { //代理商 CString strTemp = _T("");//无代理商 POSITION pos = m_Agent.GetHeadPosition(); POSITION pos2; while (pos) { pos2 = pos; ANS_Agent_NameData * pAgent = m_Agent.GetNext(pos); if (pAgent->lAgentID == lAgentID) { strTemp = pAgent->szAgentName; break; } } return strTemp; } CString CC_YYSPay::GetName_YWY(long lYWYID) { //代理商 CString strTemp = _T("");//无业务员 POSITION pos = m_YWY.GetHeadPosition(); POSITION pos2; while (pos) { pos2 = pos; ANS_YWY_NameData * pYWY = m_YWY.GetNext(pos); if (pYWY->lYWYID == lYWYID) { strTemp = pYWY->szYWYName; break; } } return strTemp; }