// DLG_Corp_Pay.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Corp_Pay.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_Pay dialog #include "DLG_Corp_Pay_Modify.h" DLG_Corp_Pay::DLG_Corp_Pay(CWnd* pParent /*=NULL*/) : CDialog(DLG_Corp_Pay::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Corp_Pay) m_strSMSNum = _T(""); m_strCorpName = _T(""); m_strSMSUsed = _T(""); m_strTotal = _T(""); //}}AFX_DATA_INIT m_lModifyCount = 0; memset( &m_PayReq , 0 , sizeof(m_PayReq) ); m_pPayData = NULL; m_bModify = true; m_fUsed = 0.0f; m_fAdd = 0.0f; m_lType = 0; //默认为短信易代理 m_lAgentID = 0; //代理产ID m_fPriceOne = 0.10f; //默认单价 } void DLG_Corp_Pay::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Corp_Pay) DDX_Control(pDX, IDC_CORP_PAY_LIST, m_wndList); DDX_Text(pDX, IDC_CORP_PAY_SMSNUM, m_strSMSNum); DDX_Text(pDX, IDC_CORP_PAY_CORPNAME, m_strCorpName); DDX_Text(pDX, IDC_CORP_PAY_SMSUSED, m_strSMSUsed); DDX_Text(pDX, IDC_CORP_PAY_TOTAL, m_strTotal); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_Corp_Pay, CDialog) //{{AFX_MSG_MAP(DLG_Corp_Pay) ON_BN_CLICKED(IDC_CORP_PAY_ADD, OnCorpPayAdd) ON_NOTIFY(NM_DBLCLK, IDC_CORP_PAY_LIST, OnDblclkCorpPayList) ON_BN_CLICKED(IDC_CORP_PAY_SEE, OnCorpPaySee) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_Pay message handlers BOOL DLG_Corp_Pay::OnInitDialog() { CDialog::OnInitDialog(); m_strCorpName = m_PayReq.szCorpName; m_strSMSNum = m_PayReq.szSMSNum; m_strSMSUsed.Format( _T("%d") , m_PayReq.lSmsUsed ); m_strTotal.Format( _T("%.2f") , m_PayReq.fTotal ); 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(); #ifdef MANAGER_VER_YWY #ifdef SMSCENTER_ADC m_wndList.SetHeadings(_T("序号,50; 出单人,80;充值类型,80;ADC状态,80;缴费金额,80; 单价,80; 小计,70; 赠送,70; 短信量,70;充值费时间,130;预开票,55;应收,55;测试,55;收款时间,130;发票,55;发票状态,80;发票时间,130; 备注,200;")); #else m_wndList.SetHeadings(_T("序号,50; 出单人,80;缴费方式,80;缴费金额,80; 单价,80; 小计,70; 赠送,70; 短信量,70;充值时间,130;过期时间,130;预开票,55;应收,55;测试,55;收款时间,130;发票,55;发票状态,80;发票时间,130; 备注,200;")); #endif #else #ifdef SMSCENTER_ADC m_wndList.SetHeadings(_T("序号,50; 出单人,80;充值类型,80;ADC状态,80;缴费金额,80; 单价,80; 小计,70; 赠送,70; 短信量,70;缴费时间,130; 备注,200;")); #else m_wndList.SetHeadings(_T("序号,50; 出单人,80;缴费方式,80;缴费金额,80; 单价,80; 小计,70; 赠送,70; 短信量,70;缴费时间,130;过期时间,130; 备注,200;")); #endif #endif m_wndList.SetGridLines(true); m_wndList.SetImageList(&m_Image,LVSIL_SMALL); BOOL bFirst = true; POSITION pos; TCHAR Buf[32]; for ( int i = 0 ; i< m_PayReq.lCount ; i++ ) { ANS_Corp_PayData * pData = new ANS_Corp_PayData; *pData = m_pPayData[i]; pos = m_Pay.AddTail( pData ); _stprintf( Buf , _T("%d") , i+1 ); m_wndList.InsertItem( i , Buf , 0 ); //Item为0的原因是倒转显示 m_wndList.SetItemData( i , (DWORD)pos); int iIndex=1; m_wndList.SetItemText( i , iIndex++ , pData->szCreateUser ); #ifndef SMSCENTER_ADC m_wndList.SetItemText( i , iIndex++ , pData->szPayMode ); #endif #ifdef SMSCENTER_ADC if ( pData->lPayType ==1 ) m_wndList.SetItemText( i , iIndex++ , _T("ADC充值") ); else m_wndList.SetItemText( i , iIndex++ , _T("短信易充值") ); if ( pData->lPayType ==1 ) { switch( pData->lAdcStatus ) { case 1: m_wndList.SetItemText( i , iIndex++ , _T("处理中") ); break; case 2: m_wndList.SetItemText( i , iIndex++ , _T("已充值") ); break; case 3: m_wndList.SetItemText( i , iIndex++ , _T("已注销") ); break; default: m_wndList.SetItemText( i , iIndex++ , _T("未处理") ); } } else { iIndex++; } #endif _stprintf( Buf , _T("%8.2f") , pData->fPrice ); m_wndList.SetItemText( i , iIndex++ , Buf ); _stprintf( Buf , _T("%8.4f") , pData->fPriceOne); m_wndList.SetItemText( i , iIndex++ , Buf ); if (bFirst && pData->fPriceOne>0.0f) { m_fPriceOne = pData->fPriceOne; bFirst = false; } long a=0; if ( pData->fPrice!=0 && pData->fPriceOne!=0 ) { double l = pData->fPrice/pData->fPriceOne; a = long(l+0.5f); if ( a<0 ) a = long(l-0.5f); } _stprintf( Buf , _T("%8d") , a); m_wndList.SetItemText( i , iIndex++ , Buf ); _stprintf( Buf , _T("%8d") , pData->lPresent); m_wndList.SetItemText( i , iIndex++ , Buf ); _stprintf( Buf , _T("%8d") , pData->lSMSCount); m_wndList.SetItemText( i , iIndex++ , Buf ); _stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tPayTime.wYear,pData->tPayTime.wMonth,pData->tPayTime.wDay,pData->tPayTime.wHour,pData->tPayTime.wMinute ); m_wndList.SetItemText( i , iIndex++ , Buf); #ifndef SMSCENTER_ADC _stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tOvrTime.wYear,pData->tOvrTime.wMonth,pData->tOvrTime.wDay,pData->tOvrTime.wHour,pData->tOvrTime.wMinute ); m_wndList.SetItemText( i , iIndex++ , Buf); #endif #ifdef MANAGER_VER_YWY switch(pData->lYSType ) { case 0: default: iIndex++; break; case 1: m_wndList.SetItemText( i , iIndex++ , _T(" 是") ); break; case 2: m_wndList.SetItemText( i , iIndex++ , _T("作废") ); break; } if ( pData->bYS ) m_wndList.SetItemText( i , iIndex++ , _T(" 是") ); else iIndex++; if ( pData->bTest ) m_wndList.SetItemText( i , iIndex++ , _T(" 是") ); else iIndex++; _stprintf( Buf , _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 , iIndex++ , Buf); if ( pData->bFP>0 ) { CString strType; switch (pData->bFP) { 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; } m_wndList.SetItemText( i , iIndex++ ,strType ); switch(pData->lFPStatus) { case 0: default: m_wndList.SetItemText( i , iIndex++ , _T("未开票") ); break; case 1: m_wndList.SetItemText( i , iIndex++ , _T("已开票") ); break; case 2: m_wndList.SetItemText( i , iIndex++ , _T("已寄出") ); break; } if ( pData->lFPStatus>0 ) { _stprintf( Buf , _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 , iIndex++ , Buf); } } else { iIndex++; iIndex++; iIndex++; } #endif m_wndList.SetItemText( i , iIndex++ , pData->szBZ); } #if defined(MANAGER_VER_YWY) || defined(MANAGER_VER_HF) GetDlgItem(IDC_CORP_PAY_TOTAL)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAY_TOTAL_S)->ShowWindow(SW_HIDE); if ( !m_bModify ) //不允许修改 { GetDlgItem(IDC_CORP_PAY_ADD)->EnableWindow(false); GetDlgItem(IDC_CORP_PAY_ADD)->ShowWindow(SW_HIDE); } #endif return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_Corp_Pay::SetParam(ANS_Corp_Pay Pay, ANS_Corp_PayData *pPayData,BOOL bModify,float fUsed,long lType,DWORD dwYJ,long lAgentID) { m_PayReq = Pay; m_pPayData = pPayData; m_bModify = bModify; m_fUsed = fUsed; m_lType = lType; //代理商类型 m_dwYJ = dwYJ; m_lAgentID = lAgentID; //代理商ID } void DLG_Corp_Pay::OnCorpPayAdd() { DLG_Corp_Pay_Modify dlg(m_fUsed-m_fAdd, m_PayReq.lSmsUsed, m_fPriceOne, m_dwYJ,m_lAgentID,this); if ( dlg.DoModal() == IDOK ) { ANS_Corp_PayData * pData = new ANS_Corp_PayData; *pData = dlg.GetParam(); pData->ucStatus = CORP_PAY_ADD; m_lModifyCount ++; //需要修改的记录增加 POSITION pos = m_Pay.AddTail( pData ); //m_fAdd = m_fAdd + pData->fPrice; //记录总数 m_fAdd = m_fAdd + (float)pData->lSMSCount / 10.0f; //记录总数 long lCount = m_wndList.GetItemCount(); TCHAR Buf[32]; _stprintf( Buf, _T("%d") , lCount +1 ); //设置新的数据 m_wndList.InsertItem( 0 , Buf , 0); //Item为0的原因是倒转显示 m_wndList.SetItemData( 0, (DWORD)pos ); //m_wndList.SetItemText( 0 , 1 , pData->szPayMan ); m_wndList.SetItemText( 0 , 1 , pData->szCreateUser ); m_wndList.SetItemText( 0 , 2 , pData->szPayMode ); _stprintf( Buf , _T("%8.2f") , pData->fPrice ); m_wndList.SetItemText( 0 , 3 , Buf ); _stprintf( Buf , _T("%8.4f") , pData->fPriceOne); m_wndList.SetItemText( 0 , 4 , Buf ); long a=0; if ( pData->fPrice!=0 && pData->fPriceOne!=0 ) { double l = pData->fPrice/pData->fPriceOne; a = long(l+0.5f); if ( a<0 ) a = long(l-0.5f); } _stprintf( Buf , _T("%8d") , a); m_wndList.SetItemText( 0 , 5 , Buf ); _stprintf( Buf , _T("%8d") , pData->lPresent); m_wndList.SetItemText( 0 , 6 , Buf ); _stprintf( Buf , _T("%8d") , pData->lSMSCount); m_wndList.SetItemText( 0 , 7 , Buf ); _stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tPayTime.wYear,pData->tPayTime.wMonth,pData->tPayTime.wDay,pData->tPayTime.wHour,pData->tPayTime.wMinute ); m_wndList.SetItemText( 0 , 8 , Buf); _stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tOvrTime.wYear,pData->tOvrTime.wMonth,pData->tOvrTime.wDay,pData->tOvrTime.wHour,pData->tOvrTime.wMinute ); m_wndList.SetItemText( 0 , 9 , Buf); m_wndList.SetItemText( 0 , 10 , pData->szBZ); //增加数据 m_PayReq.fTotal += pData->fPrice; m_PayReq.lTotalSms += pData->lSMSCount; m_PayReq.lSmsUsed += pData->lSMSCount; m_strSMSUsed.Format( _T("%d") , m_PayReq.lSmsUsed ); m_strTotal.Format( _T("%.2f") , m_PayReq.fTotal ); this->UpdateData(false); } } void DLG_Corp_Pay::OnOK() { if (m_PayReq.lSmsUsed<0 ) { MessageBox(_T("企业短信余额不能小于0,请修改充值记录!"),_T("错误") , MB_ICONWARNING); return ; } if (m_fUsed