// DLG_Corp_Pay_Modify.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Corp_Pay_Modify.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_Pay_Modify dialog DLG_Corp_Pay_Modify::DLG_Corp_Pay_Modify(CWnd* pParent /*=NULL*/) : CDialog(DLG_Corp_Pay_Modify::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Corp_Pay_Modify) m_strBZ = _T(""); m_tOvrTime = COleDateTime::GetCurrentTime(); m_strPayMode = _T(""); m_strPayName = _T(""); m_strPresent = _T(""); m_strPrice = _T(""); m_strPriceOne = _T(""); m_strSMSCount = _T(""); m_strPayTime = _T(""); m_strCreateUser = _T(""); m_bTest = FALSE; m_bYS = FALSE; m_lPayType = -1; m_bFP = FALSE; m_strLPPrice = _T(""); m_lLPType = -1; m_lYSType = -1; m_lCommend_Vipint = 0; //}}AFX_DATA_INIT memset( &m_Pay , 0 , sizeof(m_Pay) ); memset(&m_CorpData , 0 , sizeof(m_CorpData)); m_pMemberData = NULL; m_bAdd = true; m_bCommend = true; m_tYSTime = COleDateTime::GetCurrentTime(); m_bSOS = false; memset(&m_corp,0,sizeof(m_corp)); } void DLG_Corp_Pay_Modify::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Corp_Pay_Modify) DDX_Control(pDX, IDC_CORP_PAYMODIFY_COMMEND, m_B_Commend); DDX_Control(pDX, IDC_CORP_PAYMODIFY_PAYMODE, m_L_PayMode); DDX_Control(pDX, IDC_CORP_PAYMODIFY_LXRID, m_L_LXRID); DDX_Control(pDX, IDC_CORP_PAYMODIFY_PRICE, m_L_Price); DDX_Control(pDX, IDC_CORP_PAYMODIFY_LPPRICE, m_L_LPPrice); DDX_Text(pDX, IDC_CORP_PAYMODIFY_BZ, m_strBZ); DDV_MaxChars(pDX, m_strBZ, 250); DDX_DateTimeCtrl(pDX, IDC_CORP_PAYMODIFY_OVRTIME, m_tOvrTime); DDX_CBString(pDX, IDC_CORP_PAYMODIFY_PAYMODE, m_strPayMode); DDV_MaxChars(pDX, m_strPayMode, 16); DDX_Text(pDX, IDC_CORP_PAYMODIFY_PAYNAME, m_strPayName); DDV_MaxChars(pDX, m_strPayName, 16); DDX_Text(pDX, IDC_CORP_PAYMODIFY_PRESEND, m_strPresent); DDV_MaxChars(pDX, m_strPresent, 16); DDX_Text(pDX, IDC_CORP_PAYMODIFY_PRICE, m_strPrice); DDV_MaxChars(pDX, m_strPrice, 16); DDX_Text(pDX, IDC_CORP_PAYMODIFY_PRICEONE, m_strPriceOne); DDV_MaxChars(pDX, m_strPriceOne, 16); DDX_Text(pDX, IDC_CORP_PAYMODIFY_SMSCOUNT, m_strSMSCount); DDV_MaxChars(pDX, m_strSMSCount, 16); DDX_Text(pDX, IDC_CORP_PAYMODIFY_PAYTIME, m_strPayTime); DDX_Text(pDX, IDC_CORP_PAYMODIFY_CREATEUSER, m_strCreateUser); DDX_Check(pDX, IDC_CORP_PAYMODIFY_TEST, m_bTest); DDX_Check(pDX, IDC_CORP_PAYMODIFY_YS, m_bYS); DDX_CBIndex(pDX, IDC_CORP_PAYMODIFY_PAYTYPE, m_lPayType); DDX_Check(pDX, IDC_CORP_PAYMODIFY_FP, m_bFP); DDX_CBString(pDX, IDC_CORP_PAYMODIFY_LPPRICE, m_strLPPrice); DDV_MaxChars(pDX, m_strLPPrice, 8); DDX_CBIndex(pDX, IDC_CORP_PAYMODIFY_LPTYPE, m_lLPType); DDX_CBIndex(pDX, IDC_CORP_PAYMODIFY_YSTYPE, m_lYSType); DDX_Text(pDX, IDC_CORP_PAYMODIFY_COMMEND_VIPINT, m_lCommend_Vipint); //}}AFX_DATA_MAP DDX_DateTimeCtrl(pDX, IDC_CORP_PAYMODIFY_YSTIME, m_tYSTime); } BEGIN_MESSAGE_MAP(DLG_Corp_Pay_Modify, CDialog) //{{AFX_MSG_MAP(DLG_Corp_Pay_Modify) ON_EN_CHANGE(IDC_CORP_PAYMODIFY_PRICE, OnChangeCorpPaymodifyPrice) ON_EN_CHANGE(IDC_CORP_PAYMODIFY_PRICEONE, OnChangeCorpPaymodifyPriceone) ON_EN_CHANGE(IDC_CORP_PAYMODIFY_PRESEND, OnChangeCorpPaymodifyPresend) ON_EN_CHANGE(IDC_CORP_PAYMODIFY_LPPRICE, OnChangeCorpPaymodifyLpprice) ON_CBN_SELCHANGE(IDC_CORP_PAYMODIFY_PAYTYPE, OnSelchangeCorpPaymodifyPaytype) ON_CBN_SELCHANGE(IDC_CORP_PAYMODIFY_PRICE, OnSelchangeCorpPaymodifyPrice) ON_CBN_EDITCHANGE(IDC_CORP_PAYMODIFY_PRICE, OnEditchangeCorpPaymodifyPrice) ON_WM_TIMER() ON_CBN_SELCHANGE(IDC_CORP_PAYMODIFY_PAYMODE, OnSelchangeCorpPaymodifyPaymode) ON_BN_CLICKED(IDC_CORP_PAYMODIFY_COMMEND, OnCorpPaymodifyCommend) ON_CBN_SELCHANGE(IDC_CORP_PAYMODIFY_LPPRICE, OnSelchangeCorpPaymodifyLpprice) ON_CBN_EDITCHANGE(IDC_CORP_PAYMODIFY_LPPRICE, OnEditchangeCorpPaymodifyLpprice) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, &DLG_Corp_Pay_Modify::OnBnClickedOk) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_Pay_Modify message handlers BOOL DLG_Corp_Pay_Modify::OnInitDialog() { CDialog::OnInitDialog(); #ifndef SMSCENTER_ADC GetDlgItem(IDC_CORP_PAYMODIFY_PAYTYPE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_PAYTYPE_S)->ShowWindow(SW_HIDE); #endif #ifdef SMSCENTER_NX m_L_PayMode.ResetContent(); m_L_PayMode.AddString(_T("现金")); m_L_PayMode.AddString(_T("银行1")); m_L_PayMode.AddString(_T("银行2")); m_L_PayMode.AddString(_T("银行3")); m_L_PayMode.AddString(_T("银行4")); m_L_PayMode.AddString(_T("银行5")); m_L_PayMode.AddString(_T("银行6")); m_L_PayMode.AddString(_T("银行7")); m_L_PayMode.AddString(_T("银行8")); m_L_PayMode.AddString(_T("银行9")); m_L_PayMode.SetCurSel(0); //GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE)->ShowWindow(SW_HIDE); //GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YS)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_TEST)->ShowWindow(SW_HIDE); //GetDlgItem(IDC_CORP_PAYMODIFY_FP)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LP_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LPTYPE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LPTYPE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LXRID)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LXRID_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LPPRICE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LPPRICE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_COMMEND_VIPINT)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_COMMEND)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_FP)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME_S)->ShowWindow(SW_HIDE); #endif if ( m_bAdd==1 ) //如果是添加 { m_tYSTime.SetStatus(COleDateTime::null); //GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME)->ShowWindow(SW_SHOW); //GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME_S)->ShowWindow(SW_SHOW); SYSTEMTIME t; GetLocalTime(&t); COleDateTime ot(t); //取得到当时间 t.wYear+=1; //过期日往后加1年 #ifdef SMSCENTER_NX t.wYear += 4; //过期日往后加5年 #endif m_tOvrTime.SetDateTime(t.wYear,t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond); UpdateData(false); m_bYS = true; //限制所有充值都是先应收 m_lYSType = 0; //预收类型 // m_tOvrTime.SetStatus( COleDateTime::valid ); //没有过期时间 //m_strPriceOne = _T("0.10"); //默认费率为0.10 m_strPriceOne.Format( _T("%.4f") , m_CorpData.fPriceOne ); m_strPayMode = _T("应收"); if ( m_CorpData.bYJ ) { m_strPayMode = _T("月结"); m_strPrice=_T("0"); GetDlgItem(IDC_CORP_PAYMODIFY_PRICE)->EnableWindow(false); //月结的不用输入金额 } m_strPayTime.Format( _T("%04d.%02d.%02d %02d:%02d") , ot.GetYear(),ot.GetMonth(),ot.GetDay(),ot.GetHour(),ot.GetMinute() ); #ifdef SMSMANAGER_KF m_bYS = true; GetDlgItem(IDC_CORP_PAYMODIFY_YS)->EnableWindow(false); GetDlgItem(IDC_CORP_PAYMODIFY_PRESEND)->EnableWindow(false); GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME_S)->ShowWindow(SW_HIDE); #endif #ifdef SMSCENTER_ADC m_lPayType =1 ; //默认充值ADC m_strPrice=_T("6000"); #else m_lPayType =0 ; //默认充值短信易 #endif } else { #ifdef SMSCENTER_ADC m_lPayType = m_Pay.lPayType; #endif m_strPayName = m_Pay.szPayMan; m_strPayMode = m_Pay.szPayMode; m_strPrice.Format( _T("%.2f"),m_Pay.fPrice ); m_strPriceOne.Format( _T("%.4f"),m_Pay.fPriceOne ); m_strPresent.Format( _T("%d") , m_Pay.lPresent ); m_strSMSCount.Format( _T("%d") , m_Pay.lSMSCount ); COleDateTime tt(m_Pay.tOvrTime); if ( tt.GetStatus() == 0 ) m_tOvrTime.SetDateTime( m_Pay.tOvrTime.wYear , m_Pay.tOvrTime.wMonth,m_Pay.tOvrTime.wDay,m_Pay.tOvrTime.wHour,m_Pay.tOvrTime.wMinute,m_Pay.tOvrTime.wSecond); else m_tOvrTime.SetStatus( COleDateTime::null ); COleDateTime tt2(m_Pay.tYSTime); if ( tt2.GetStatus() == 0 ) m_tYSTime.SetDateTime( m_Pay.tYSTime.wYear , m_Pay.tYSTime.wMonth,m_Pay.tYSTime.wDay,m_Pay.tYSTime.wHour,m_Pay.tYSTime.wMinute,m_Pay.tYSTime.wSecond); else m_tYSTime.SetStatus( COleDateTime::null ); m_strBZ = m_Pay.szBZ; m_strCreateUser = m_Pay.szCreateUser; m_strPayTime.Format( _T("%04d.%02d.%02d %02d:%02d"),m_Pay.tPayTime.wYear,m_Pay.tPayTime.wMonth,m_Pay.tPayTime.wDay,m_Pay.tPayTime.wHour,m_Pay.tPayTime.wMinute ); m_bYS =m_Pay.bYS; m_bTest =m_Pay.bTest; m_bFP =m_Pay.bFP; m_lLPType = m_Pay.lLPType; m_lYSType = m_Pay.lYSType;; //预收类型 m_strLPPrice.Format ( _T("%.2f") , m_Pay.fLPPrice ); m_lCommend_Vipint = m_Pay.lCommend_VipInt; GetDlgItem(IDC_CORP_PAYMODIFY_PAYTYPE)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_PAYNAME)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE)->EnableWindow( false ); //if ( m_bAdd==2 ) // GetDlgItem(IDC_CORP_PAYMODIFY_PRICE)->EnableWindow( true ); //else GetDlgItem(IDC_CORP_PAYMODIFY_PRICE)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_PRESEND)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_SMSCOUNT)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_OVRTIME)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_YS)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_TEST)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_FP)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_LPTYPE)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_LXRID)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_LPPRICE)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_COMMEND)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME)->EnableWindow( false ); //GetDlgItem(IDC_CORP_PAYMODIFY_BZ)->EnableWindow( false ); CEdit * pEdit =(CEdit * )GetDlgItem(IDC_CORP_PAYMODIFY_BZ); pEdit->SetReadOnly(true); #ifndef SMSMANAGER_KF if (m_bAdd == 2) { GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE)->EnableWindow(true); GetDlgItem(IDC_CORP_PAYMODIFY_TEST)->EnableWindow(true); GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME)->EnableWindow(true); GetDlgItem(IDC_CORP_PAYMODIFY_LPTYPE)->EnableWindow(true); GetDlgItem(IDC_CORP_PAYMODIFY_LXRID)->EnableWindow(true); GetDlgItem(IDC_CORP_PAYMODIFY_LPPRICE)->EnableWindow(true); } #endif } //添加会员 long lSel=-1; for ( int i=0 ; i0 ) m_L_LXRID.SetCurSel(lSel); this->UpdateData( false ); #ifdef SMSCENTER_ADC if ( m_bAdd ) { OnSelchangeCorpPaymodifyPaytype(); OnSelchangeCorpPaymodifyPrice(); } #endif #ifdef SMSMANAGER_KF GetDlgItem(IDC_CORP_PAYMODIFY_FP)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE_S)->ShowWindow(SW_HIDE); #endif if ( !m_bCommend ) { GetDlgItem(IDC_CORP_PAYMODIFY_COMMEND)->EnableWindow( false ); } if (m_bSOS) { GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YS)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_TEST)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_FP)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LP_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LPTYPE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LPTYPE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LXRID)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LXRID_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LPPRICE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_LPPRICE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_COMMEND_VIPINT)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_COMMEND)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE_S)->ShowWindow(SW_HIDE); } return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } ANS_Corp_PayData DLG_Corp_Pay_Modify::GetParam() { return m_Pay; } void DLG_Corp_Pay_Modify::OnChangeCorpPaymodifyPrice() { ResetSMSUsed(); } void DLG_Corp_Pay_Modify::OnChangeCorpPaymodifyLpprice() { //SetTimer(1, 10, NULL); ResetSMSUsed(); } void DLG_Corp_Pay_Modify::OnChangeCorpPaymodifyPriceone() { ResetSMSUsed(); } void DLG_Corp_Pay_Modify::OnChangeCorpPaymodifyPresend() { ResetSMSUsed(); } void DLG_Corp_Pay_Modify::ResetSMSUsed() { UpdateData( true ); m_Pay.fPrice = _tstof( m_strPrice ); m_Pay.fPriceOne = _tstof( m_strPriceOne ); if ( m_Pay.fPriceOne <= 0 ) { m_Pay.lSMSCount = 0; } else { m_Pay.lPresent = _ttol( m_strPresent ); double l = m_Pay.fPrice/m_Pay.fPriceOne; long a = long(l+0.5f); if ( l< 0 ) a = long(l-0.5f); m_Pay.lSMSCount = (long)a + m_Pay.lPresent; } m_strSMSCount.Format( _T("%d") , m_Pay.lSMSCount ); m_Pay.fLPPrice = _tstof( m_strLPPrice ); if ( m_B_Commend.GetCheck() ) { float fPriceOne2 = (m_Pay.fPrice-m_Pay.fLPPrice)/(float)m_Pay.lSMSCount; m_lCommend_Vipint = (long)(((fPriceOne2*100.0f-6.0f)/20.0f)*m_Pay.fPrice + 0.5f); if (m_Pay.fPrice>=1000.0f && m_lCommend_Vipint<300 ) m_lCommend_Vipint = 300; } else { m_lCommend_Vipint = 0; } #ifdef SMSCENTER_ADC if (m_lPayType ==1 ) //充值ADC,检查是否为套餐值 { BOOL bOK =false; if ( m_Pay.fPrice==20.0f && m_Pay.lSMSCount==200 ) bOK = true; if ( !bOK && m_Pay.fPrice==100.0f && m_Pay.lSMSCount==1000 ) bOK = true; if ( !bOK && m_Pay.fPrice==500.0f && m_Pay.lSMSCount==5000 ) bOK = true; if ( !bOK && m_Pay.fPrice==1000.0f && m_Pay.lSMSCount==12500 ) bOK = true; if ( !bOK && m_Pay.fPrice==2000.0f && m_Pay.lSMSCount==28000 ) bOK = true; if ( !bOK && m_Pay.fPrice==4000.0f && m_Pay.lSMSCount==66000 ) bOK = true; if ( !bOK && m_Pay.fPrice==6000.0f && m_Pay.lSMSCount==120000 ) bOK = true; if ( !bOK ) { MessageBox( _T("ADC预付费必须以套餐方式出现,请修正!") , _T("错误") , MB_ICONWARNING ); return ; } } #endif this->UpdateData( false ); } void DLG_Corp_Pay_Modify::SetParam(ANS_Corp_PayData pay, BOOL bAdd) { m_Pay = pay; m_bAdd = bAdd; } void DLG_Corp_Pay_Modify::OnSelchangeCorpPaymodifyPaytype() { UpdateData(true); if ( m_lPayType == 1 ) { ((CEdit*)GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE))->SetReadOnly(false); ((CEdit*)GetDlgItem(IDC_CORP_PAYMODIFY_PRESEND))->SetReadOnly(true); m_strPriceOne.Format( _T("%.4f") , m_CorpData.fPriceOne ); ((CEdit*)GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE))->SetWindowText(m_strPriceOne); } else { ((CEdit*)GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE))->SetReadOnly(false); ((CEdit*)GetDlgItem(IDC_CORP_PAYMODIFY_PRESEND))->SetReadOnly(false); } } void DLG_Corp_Pay_Modify::OnSelchangeCorpPaymodifyPrice() { SetTimer(1 , 10 , NULL ); } void DLG_Corp_Pay_Modify::OnEditchangeCorpPaymodifyPrice() { ResetSMSUsed(); } void DLG_Corp_Pay_Modify::OnTimer(UINT_PTR nIDEvent) { CDialog::OnTimer(nIDEvent); switch( nIDEvent ) { case 1: KillTimer(nIDEvent); #ifdef SMSCENTER_ADC UpdateData(true); switch(_ttol(m_strPrice)) { case 20: m_strPriceOne = _T("0.10"); m_strPresent = _T(""); break; case 100: m_strPriceOne = _T("0.10"); m_strPresent = _T(""); break; case 500: m_strPriceOne = _T("0.10"); m_strPresent = _T(""); break; case 1000: m_strPriceOne = _T("0.08"); m_strPresent = _T(""); break; case 2000: m_strPriceOne = _T("0.0714"); m_strPresent = _T("-11"); break; case 4000: m_strPriceOne = _T("0.0606"); m_strPresent = _T("-7"); break; case 6000: m_strPriceOne = _T("0.05"); m_strPresent = _T(""); break; } UpdateData(false); #endif ResetSMSUsed(); break; case 2: KillTimer(nIDEvent); UpdateData(true); CEdit * pEdit = (CEdit *)GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE); CString strPayMode; pEdit->GetWindowText(strPayMode); COleDateTime ot = COleDateTime::GetCurrentTime(); //取得到当时间 if ( strPayMode == CString(_T("延期")) ) { //过期日往后加1周 ot += COleDateTimeSpan(7,0,0,0); m_tOvrTime.SetDateTime(ot.GetYear(),ot.GetMonth(),ot.GetDay(),ot.GetHour(),ot.GetHour(),ot.GetSecond()); } else { //过期日往后加1年 m_tOvrTime.SetDateTime(ot.GetYear()+1,ot.GetMonth(),ot.GetDay(),ot.GetHour(),ot.GetHour(),ot.GetSecond()); } UpdateData(false); break; } } void DLG_Corp_Pay_Modify::SetCorpData(ANS_Corp_Pay pay,ANS_Corp_MemberData * pMemberData,BOOL bCommend,ANS_Corp_SeeData corp) { m_CorpData=pay; m_pMemberData = pMemberData; m_bCommend=bCommend; m_corp = corp; } void DLG_Corp_Pay_Modify::OnSelchangeCorpPaymodifyPaymode() { if ( !m_bAdd ) return ; SetTimer(2 , 10 , NULL ); } void DLG_Corp_Pay_Modify::OnCorpPaymodifyCommend() { MessageBox( _T("只有是被推荐用户,首次充值时才能使用此功能,请注意!"),_T("注意") , MB_ICONWARNING) ; this->ResetSMSUsed(); } void DLG_Corp_Pay_Modify::OnSelchangeCorpPaymodifyLpprice() { //SetTimer(1, 10, NULL); //ResetSMSUsed(); } void DLG_Corp_Pay_Modify::OnEditchangeCorpPaymodifyLpprice() { //SetTimer(1, 100, NULL); //ResetSMSUsed(); //UpdateData(true); //UpdateData(false); } void DLG_Corp_Pay_Modify::OnBnClickedOk() { //如果不是添加,直接返回 if ( m_bAdd<=0 ) { CDialog::OnCancel(); return ; } this->UpdateData( true ); /* if ( m_strPayName.GetLength() <= 0 ) { MessageBox( _T("充值人姓名不能为空,请输入!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_PAYNAME)->SetFocus(); return ; } */ _tcscpy( m_Pay.szPayMan , m_strPayName ); _tcscpy( m_Pay.szPayMode , m_strPayMode ); _tcscpy( m_Pay.szBZ , m_strBZ ); m_Pay.fPrice = _tstof( m_strPrice ); m_Pay.fPriceOne = _tstof( m_strPriceOne ); if ( m_Pay.fPriceOne <= 0 ) { MessageBox( _T("短信费率不能小于零,请输入正确的费率!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE)->SetFocus(); return ; } if ( m_lLPType>0 /* && m_bAdd != 2*/ ) //有选择礼品类型 { m_Pay.lLXRID = 0; if ( m_L_LXRID.GetCurSel() >=0 ) { m_Pay.lLXRID = m_L_LXRID.GetItemData(m_L_LXRID.GetCurSel()); } if ( m_Pay.lLXRID<=0 ) { MessageBox( _T("此次充值选择了赠送礼品,但此企业没有设置会员,请先在企业联系人中设置会员!") ,_T("错误") , MB_ICONWARNING ); return ; } m_Pay.fLPPrice = _tstof( m_strLPPrice ); if ( m_Pay.fLPPrice<=0.0f || m_Pay.fLPPrice>100000.0f ) { MessageBox( _T("请输入正确的礼品价值! ") ,_T("错误") ,MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_LPPRICE)->SetFocus(); return ; } m_Pay.lLPType = m_lLPType; } else { m_Pay.lLPType = 0; m_Pay.lLXRID = 0; m_Pay.fLPPrice = 0.0f; } if (m_lYSType == 1 && m_strPayMode != CString(_T("预开票")) || m_lYSType == 0 && m_strPayMode == CString(_T("预开票"))) { MessageBox(_T("预开票类型与充值方式不匹配!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE)->SetFocus(); return; } if( m_lYSType==2 ) { MessageBox(_T("新充值,预开票类型不能选作废!") , _T("错误") , MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_YSTYPE)->SetFocus(); return ; } if ( m_tYSTime.GetStatus() == COleDateTime::valid) { if ( m_tYSTime > COleDateTime::GetCurrentTime()) { MessageBox(_T("到款时间不能大于当天!)") , _T("错误") , MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME)->SetFocus(); return ; } if (m_bAdd == 2 && (COleDateTime(m_Pay.tPayTime) > m_tYSTime) && ((COleDateTime(m_Pay.tPayTime) - m_tYSTime) > COleDateTimeSpan(30, 0, 0,0))) //不允许修改收款时间比充值时间提前1个月 { MessageBox(_T("收款时间不允许比充值时间提前30日!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_YSTIME)->SetFocus(); return; } m_tYSTime.GetAsSystemTime(m_Pay.tYSTime); } else { memset(&m_Pay.tYSTime, 0, sizeof(m_Pay.tYSTime)); } m_Pay.lPresent = _ttol( m_strPresent ); double l = m_Pay.fPrice/m_Pay.fPriceOne; long a = long(l+0.5f); if ( a<0 ) a = long(l-0.5f); m_Pay.lSMSCount = (long)a + m_Pay.lPresent; m_Pay.bYS = m_bYS; m_Pay.bTest=m_bTest; m_Pay.bFP =m_bFP; m_Pay.lYSType = m_lYSType; SYSTEMTIME t;GetSystemTime(&t); COleDateTime ot(t); if ( m_tOvrTime.GetStatus() == 0 && m_tOvrTime < ot ) { MessageBox( _T("过期日期不能小于今天,请调整!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_OVRTIME)->SetFocus(); return ; } #ifdef SMSMANAGER_KF if ( m_Pay.fPrice==0.0f && m_Pay.lPresent==0 && (m_tOvrTime.GetStatus() != COleDateTime::valid || m_tOvrTime-COleDateTime::GetCurrentTime()>COleDateTimeSpan(15,0,0,0)) ) //客服的,如果没有充值金额,不允许延期过长 { MessageBox( _T("过期日期不能过大,请调整!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_OVRTIME)->SetFocus(); return ; } #endif #ifndef SMSCENTER_NX if ( m_Pay.lPresent!=0 && m_strBZ.GetLength()<=4 ) { MessageBox( _T("有赠送短信,必须注明原因!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_BZ)->SetFocus(); return ; } #endif if ( m_B_Commend.GetCheck() ) { float fPriceOne2 = (m_Pay.fPrice-m_Pay.fLPPrice)/(float)m_Pay.lSMSCount; m_lCommend_Vipint = (long)(((fPriceOne2*100.0f-6.0f)/20.0f)*m_Pay.fPrice + 0.5f); if (m_Pay.fPrice>=1000.0f && m_lCommend_Vipint<300 ) m_lCommend_Vipint = 300; #ifndef SMSCENTER_NX #ifndef SMSMANAGER_KF //新客户,提示是否为推荐用户 if ( m_CorpData.lCount>0 ) { int iRet = MessageBox( _T("此为客户非首次充值,但现选定的是推荐客户,要赠送充值积分!\r\n继续?") , _T("提示") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet!=IDYES ) return ; } #endif #endif } else { m_lCommend_Vipint = 0; #ifndef SMSCENTER_NX #ifndef SMSMANAGER_KF //新客户,提示是否为推荐用户 if ( m_CorpData.lCount<=0 ) { int iRet = MessageBox( _T("此为客户第一次充值,请确定是否为推荐客户,是否需要赠送充值积分!\r\n继续?") , _T("提示") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 ); if ( iRet!=IDYES ) return ; } #endif #endif } m_Pay.lCommend_VipInt = m_lCommend_Vipint; //vip积分 ::GetLocalTime( &m_Pay.tPayTime ); if ( m_tOvrTime.GetStatus() == 0 ) m_tOvrTime.GetAsSystemTime( m_Pay.tOvrTime ); else memset(&m_Pay.tOvrTime,0,sizeof(m_Pay.tOvrTime)); #ifndef SMSCENTER_NX if ( !m_CorpData.bYJ && m_strPayMode != CString(_T("延期")) && (m_Pay.fPrice==0.0f || m_Pay.lSMSCount==0) ) //不是月结的客户,不是延期。需要判断金额是否为0 { int iRet = MessageBox( _T("一般是延期或赠送才允许充值金额为0,\r\n如果充值为延期,请在充值方式中直接选中\"延期\",系统自动计算延期一星期。\r\n是否手工将充值方式修改成延期?如不是延期,将不会修改短信有效期。") , _T("提问") , MB_ICONQUESTION|MB_YESNO ); if ( iRet==IDYES ) { GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE)->SetFocus(); #ifdef SMSMANAGER_KF m_L_PayMode.SelectString(0,_T("延期")); OnSelchangeCorpPaymodifyPaymode(); #endif return; } else { m_Pay.tOvrTime = m_corp.tOvr; } } #endif #ifdef SMSCENTER_ADC if (m_lPayType ==1 ) //充值ADC,检查是否为套餐值 { BOOL bOK =false; if ( m_Pay.fPrice==20.0f && m_Pay.lSMSCount==200 ) bOK = true; if ( !bOK && m_Pay.fPrice==100.0f && m_Pay.lSMSCount==1000 ) bOK = true; if ( !bOK && m_Pay.fPrice==500.0f && m_Pay.lSMSCount==5000 ) bOK = true; if ( !bOK && m_Pay.fPrice==1000.0f && m_Pay.lSMSCount==12500 ) bOK = true; if ( !bOK && m_Pay.fPrice==2000.0f && m_Pay.lSMSCount==28000 ) bOK = true; if ( !bOK && m_Pay.fPrice==4000.0f && m_Pay.lSMSCount==66000 ) bOK = true; if ( !bOK && m_Pay.fPrice==6000.0f && m_Pay.lSMSCount==120000 ) bOK = true; if ( !bOK ) { MessageBox( _T("ADC预付费必须以套餐方式出现,请修正!") , _T("错误") , MB_ICONWARNING ); return ; } } m_Pay.lPayType = m_lPayType; //充值方式 m_Pay.lAdcStatus =0; //ADC状态,0-未处理,1-已打印,2-已充值 //m_Pay.tAdcPrintTime; //ADC充值打印时间 //m_Pay.tAdcPayTime; //Adc实际充值时间 //m_Pay.szAdcProcessUser; //adc业务最后处理人 #endif CDialog::OnOK(); }