// DLG_Mms_Pay.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Mms_Pay.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Mms_Pay dialog #include "DLG_Mms_Pay_Modify.h" DLG_Mms_Pay::DLG_Mms_Pay(CWnd* pParent /*=NULL*/) : CDialog(DLG_Mms_Pay::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Mms_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_pMemberData = NULL; m_lModifyType = 0; m_bCommend = true; m_bModify = true; m_lUsed = 0; m_lAdd = 0; m_lType = 0; //默认为短信易代理 m_fPriceOne = 0.10f; //默认单价 m_lAgentID = 0; //代理商ID } void DLG_Mms_Pay::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Mms_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_Mms_Pay, CDialog) //{{AFX_MSG_MAP(DLG_Mms_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 ON_BN_CLICKED(IDC_CORP_PAY_ZX, &DLG_Mms_Pay::OnBnClickedCorpPayZx) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Mms_Pay message handlers BOOL DLG_Mms_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 m_wndList.SetHeadings(_T("序号,50; 出单人,80;缴费方式,80;缴费金额,80; 单价,80; 小计,70; 赠送,70; 彩信量,70;缴费时间,130;过期时间,130;预开票,55;应收,55;测试,55;收款时间,130;发票,55;发票状态,80;开票时间,130; 备 注,200;")); #else m_wndList.SetHeadings(_T("序号,50; 出单人,80;缴费方式,80;缴费金额,80; 单价,80; 小计,70; 赠送,70; 彩信量,70;缴费时间,130;过期时间,130; 备注,200;")); #endif m_wndList.SetGridLines(true); m_wndList.SetImageList(&m_Image,LVSIL_SMALL); //#ifndef SMSMANAGER_KF BOOL bFirst = true; POSITION pos; TCHAR Buf[32]; CString str; for ( int i = 0 ; i< m_PayReq.lCount ; i++ ) { ANS_Mms_PayData * pData = new ANS_Mms_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 , 1 , pData->szPayMan ); m_wndList.SetItemText( i , iIndex++ , pData->szCreateUser ); m_wndList.SetItemText( i , iIndex++ , pData->szPayMode ); _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); _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); #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++; } } else { iIndex+=3; } #endif /* switch( pData->lLPType ) { case 1: m_wndList.SetItemText( i , iIndex++ , _T("充值卡") ); break; case 2: m_wndList.SetItemText( i , iIndex++ , _T("现金") ); break; case 0: default: m_wndList.SetItemText( i , iIndex++ , _T("无") ); break; } str.Format( _T("%.2f") , pData->fLPPrice ); m_wndList.SetItemText( i , iIndex++ , str); str = _T(""); //赠送人 for ( int j=0 ; jlLXRID == m_pMemberData[j].lLXRID ) { str = m_pMemberData[j].szName; break; } } m_wndList.SetItemText( i , iIndex++ , str); str.Format( _T("%d") , pData->lCommend_VipInt ); //推荐积分 m_wndList.SetItemText( i , iIndex++ , str); if ( pData->lCommend_VipInt>0 ) m_bCommend = false; //不允许再添加推荐积分了 */ m_wndList.SetItemText( i , iIndex++ , pData->szBZ); } //#endif #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_Mms_Pay::SetParam(ANS_Mms_Pay Pay, ANS_Mms_PayData *pPayData,ANS_Corp_MemberData * pMemberData,long lModifyType,BOOL bModify,long lUsed,long lType,DWORD dwYJ,long lAgentID) { m_PayReq = Pay; m_pPayData = pPayData; m_pMemberData=pMemberData; m_lModifyType=lModifyType; m_bModify = bModify; m_lUsed = lUsed; m_lType = lType; //代理商类型 m_dwYJ = dwYJ; m_lAgentID = lAgentID; //代理商ID } void DLG_Mms_Pay::OnCorpPayAdd() { /* if ( m_lModifyType == 1 ) { int iRet=MessageBox( _T("此企业是代理商的用户,非特殊情况不允许向其充值!是否继续?"),_T("警告") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet != IDYES ) return ; } */ /* if ( !m_bModify ) return; */ DLG_Mms_Pay_Modify dlg(m_lUsed-m_lAdd, m_PayReq.lSmsUsed, m_fPriceOne,m_dwYJ, m_lAgentID,this); CString str; dlg.SetCorpData(m_PayReq,m_pMemberData,m_bCommend); if ( dlg.DoModal() == IDOK ) { ANS_Mms_PayData * pData = new ANS_Mms_PayData; *pData = dlg.GetParam(); m_lAdd = m_lAdd + pData->lSMSCount; //记录总数 pData->ucStatus = CORP_PAY_ADD; m_lModifyCount ++; //需要修改的记录增加 POSITION pos = m_Pay.AddTail( pData ); long lCount = m_wndList.GetItemCount(); TCHAR Buf[32]; _stprintf( Buf, _T("%d") , lCount +1 ); //设置新的数据 int iIndex=1; m_wndList.InsertItem( 0 , Buf , 0); //Item为0的原因是倒转显示 m_wndList.SetItemData( 0, (DWORD)pos ); m_wndList.SetItemText( 0 , iIndex++ , pData->szPayMan ); m_wndList.SetItemText( 0 , iIndex++ , pData->szPayMode ); _stprintf( Buf , _T("%8.2f") , pData->fPrice ); m_wndList.SetItemText( 0 , iIndex++ , Buf ); _stprintf( Buf , _T("%8.4f") , pData->fPriceOne); m_wndList.SetItemText( 0 , iIndex++ , 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 , iIndex++ , Buf ); _stprintf( Buf , _T("%8d") , pData->lPresent); m_wndList.SetItemText( 0 , iIndex++ , Buf ); _stprintf( Buf , _T("%8d") , pData->lSMSCount); m_wndList.SetItemText( 0 , iIndex++ , Buf ); #ifdef MANAGER_VER_YWY switch(pData->lYSType ) { case 0: default: iIndex++; break; case 1: m_wndList.SetItemText( 0 , iIndex++ , _T(" 是") ); break; case 2: m_wndList.SetItemText( 0 , iIndex++ , _T("作废") ); break; } if ( pData->bYS ) m_wndList.SetItemText( 0 , iIndex++ , _T("是") ); else iIndex++; if ( pData->bTest ) m_wndList.SetItemText( 0 , iIndex++ , _T("是") ); else iIndex++; if ( pData->bCB ) m_wndList.SetItemText( 0 , iIndex++ , _T("是") ); else iIndex++; _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 , iIndex++ , 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 , iIndex++ , Buf); iIndex++; if ( pData->bFP ) m_wndList.SetItemText( 0 , iIndex++ , _T("是") ); else iIndex++; iIndex++; iIndex++; switch( pData->lLPType ) { case 1: m_wndList.SetItemText( 0 , iIndex++ , _T("充值卡") ); break; case 2: m_wndList.SetItemText( 0 , iIndex++ , _T("现金") ); break; case 0: default: m_wndList.SetItemText( 0 , iIndex++ , _T("无") ); break; } str.Format( _T("%.2f") , pData->fLPPrice ); m_wndList.SetItemText( 0 , iIndex++ , str); str = _T(""); //赠送人 for ( int i=0 ; ilLXRID == m_pMemberData[i].lLXRID ) { str = m_pMemberData[i].szName; break; } } m_wndList.SetItemText( 0 , iIndex++ , str); str.Format( _T("%d") , pData->lCommend_VipInt ); //推荐积分 m_wndList.SetItemText( 0 , iIndex++ , str); #else _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 , iIndex++ , 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 , iIndex++ , Buf); #endif m_wndList.SetItemText( 0 , iIndex++ , pData->szBZ); //增加数据 if ( pData->lYSType ==0 ) //非预充的才加 { 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_Mms_Pay::OnOK() { if (m_PayReq.lSmsUsed<0 ) { MessageBox(_T("企业短信余额不能小于0,请修改充值记录!"),_T("错误") , MB_ICONWARNING); return ; } if (m_lUsedm_PayReq.lCorpID == 100152 && pData->ucStatus ==0 && COleDateTime::GetCurrentTime()-COleDateTime(pData->tPayTime)ucStatus = CORP_PAY_MODIFY; m_lModifyCount ++; //需要修改的记录增加 fPriceCE = pData2->fPrice - pData->fPrice; lSmsCountCE= pData2->lSMSCount - pData->lSMSCount; pData2->fPriceOne = fPriceCE; //保存差额 pData2->lPresent = lSmsCountCE; str.Format( _T("\r\n更改前金额:%.2f") , pData->fPrice); _tcscat(pData2->szBZ , str ); *pData = * pData2; delete pData2; //POSITION pos = m_Pay.AddTail( pData2 ); _stprintf( Buf , _T("%8.2f") , pData->fPrice ); m_wndList.SetItemText( lItem , 3 , Buf ); _stprintf( Buf , _T("%8d") , pData->lSMSCount); m_wndList.SetItemText( lItem , 7 , Buf ); if ( pData->lYSType ==0 ) //非预充的才加 { m_PayReq.fTotal += fPriceCE; m_PayReq.lTotalSms += lSmsCountCE; m_PayReq.lSmsUsed += lSmsCountCE; m_strSMSUsed.Format( _T("%d") , m_PayReq.lSmsUsed ); m_strTotal.Format( _T("%.2f") , m_PayReq.fTotal ); } this->UpdateData(false); } } else { dlg.SetParam( *pData,false); dlg.DoModal(); } #else dlg.SetParam( *pData,false); dlg.DoModal(); #endif } */ } long DLG_Mms_Pay::GetCurrentSelected() { POSITION pos = m_wndList.GetFirstSelectedItemPosition(); if ( pos ) { return m_wndList.GetNextSelectedItem(pos); } return -1; } void DLG_Mms_Pay::OnBnClickedCorpPayZx() { // TODO: 在此添加控件通知处理程序代码 }