// DLG_Corp_FuncPay_Modify.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Corp_FuncPay_Modify.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_FuncPay_Modify dialog DLG_Corp_FuncPay_Modify::DLG_Corp_FuncPay_Modify(CWnd* pParent /*=NULL*/) : CDialog(DLG_Corp_FuncPay_Modify::IDD, pParent) , m_tYSTime(COleDateTime::GetCurrentTime()) { //{{AFX_DATA_INIT(DLG_Corp_FuncPay_Modify) m_strBZ = _T(""); m_strPayMode = _T(""); m_strPayName = _T(""); m_strPrice = _T(""); m_strPayTime = _T(""); m_strCreateUser = _T(""); m_bTest = FALSE; m_bYS = FALSE; m_bFP = FALSE; m_strPresent = _T(""); m_strPriceOne = _T(""); m_strSMSCount = _T(""); m_strTCPer = _T(""); //}}AFX_DATA_INIT memset( &m_Pay , 0 , sizeof(m_Pay) ); m_bAdd = true; } void DLG_Corp_FuncPay_Modify::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Corp_FuncPay_Modify) DDX_Text(pDX, IDC_CORP_PAYMODIFY_BZ, m_strBZ); DDV_MaxChars(pDX, m_strBZ, 250); 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_PRICE, m_strPrice); DDV_MaxChars(pDX, m_strPrice, 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_FUNC, m_lFuncID); DDX_CBIndex(pDX, IDC_CORP_PAYMODIFY_TYPE, m_lType); DDX_Check(pDX, IDC_CORP_PAYMODIFY_FP, m_bFP); DDX_Text(pDX, IDC_CORP_PAYMODIFY_PRESEND, m_strPresent); DDV_MaxChars(pDX, m_strPresent, 8); DDX_Text(pDX, IDC_CORP_PAYMODIFY_PRICEONE, m_strPriceOne); DDV_MaxChars(pDX, m_strPriceOne, 8); DDX_Text(pDX, IDC_CORP_PAYMODIFY_SMSCOUNT, m_strSMSCount); DDX_Text(pDX, IDC_CORP_PAYMODIFY_TCPER, m_strTCPer); DDV_MaxChars(pDX, m_strTCPer, 8); //}}AFX_DATA_MAP DDX_DateTimeCtrl(pDX, IDC_CORP_PAYMODIFY_YSTIME, m_tYSTime); DDX_Control(pDX, IDC_CORP_PAYMODIFY_PAYMODE, m_L_PayMode); } BEGIN_MESSAGE_MAP(DLG_Corp_FuncPay_Modify, CDialog) //{{AFX_MSG_MAP(DLG_Corp_FuncPay_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_CBN_SELCHANGE(IDC_CORP_PAYMODIFY_FUNC, OnSelchangeCorpPaymodifyFunc) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, &DLG_Corp_FuncPay_Modify::OnBnClickedOk) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Corp_FuncPay_Modify message handlers BOOL DLG_Corp_FuncPay_Modify::OnInitDialog() { CDialog::OnInitDialog(); #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_TCPER_S2)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_TCPER_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_TCPER)->ShowWindow(SW_HIDE); #endif if ( m_bAdd==1 ) //如果是添加 { m_bYS = true; //限制所有充值都是先应收 m_strPayMode = _T("应收"); m_lFuncID = 2; m_lType = 1; m_strTCPer = _T("10"); m_tYSTime.SetStatus(COleDateTime::null); COleDateTime ot=COleDateTime::GetCurrentTime(); m_strPayTime.Format( _T("%04d.%02d.%02d %02d:%02d") , ot.GetYear(),ot.GetMonth(),ot.GetDay(),ot.GetHour(),ot.GetMinute() ); UpdateData(false); } else { m_strPayName = m_Pay.szPayMan; m_strPayMode = m_Pay.szPayMode; m_strPrice.Format( _T("%.2f"),m_Pay.fPrice ); m_lFuncID = m_Pay.lFuncID; m_lType = m_Pay.lType; 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_strPriceOne.Format( _T("%.4f"),m_Pay.fPriceOne ); m_strPresent.Format( _T("%d") , m_Pay.lPresent ); m_strSMSCount.Format( _T("%d") , m_Pay.lSMSCount ); m_strTCPer.Format( _T("%.2f") , m_Pay.fTC_Per ); 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 ); GetDlgItem(IDC_CORP_PAYMODIFY_PAYNAME)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_PAYMODE)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_PRICE)->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_FUNC)->EnableWindow( false ); GetDlgItem(IDC_CORP_PAYMODIFY_TYPE)->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_TCPER)->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); } #endif } this->UpdateData( false ); OnSelchangeCorpPaymodifyFunc(); #ifdef SMSMANAGER_KF 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 return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_Corp_FuncPay_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.lFuncID = m_lFuncID; m_Pay.lType = m_lType; m_Pay.bYS = m_bYS; m_Pay.bTest=m_bTest; m_Pay.bFP =m_bFP; m_Pay.fTC_Per = _tstof( m_strTCPer); ::GetLocalTime( &m_Pay.tPayTime ); if ( m_Pay.lFuncID==14 || m_Pay.lFuncID==15 || m_Pay.lFuncID==16 ) //短信,彩信代发 { m_Pay.fPriceOne = _tstof( m_strPriceOne ); if ( m_Pay.fPriceOne <= 0 ) { MessageBox( _T("短信费率不能小于零,请输入正确的费率!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE)->SetFocus(); return ; } 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; } else { //除短信,彩信外默认提成比例为10 m_Pay.fTC_Per=10.0f; } if ( m_Pay.fTC_Per>20.0f && m_Pay.fTC_Per<1.0f ) { MessageBox( _T("提成比例不对,请检查!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_TCPER)->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)); } #ifdef SMSMANAGER_KF if ( m_Pay.lFuncID!=2 && m_Pay.lFuncID!=7 ) { MessageBox( _T("客服平台目前只能开二次接口及RTX权限,请检查!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_FUNC)->SetFocus(); return ; } if ( m_lType!=1 ) { MessageBox( _T("客服平台目前只能开能功能,不能关闭,请检查!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_CORP_PAYMODIFY_TYPE)->SetFocus(); return ; } #endif CDialog::OnOK(); } ANS_Corp_FuncPayData DLG_Corp_FuncPay_Modify::GetParam() { return m_Pay; } void DLG_Corp_FuncPay_Modify::SetParam(ANS_Corp_FuncPayData pay, BOOL bAdd) { m_Pay = pay; m_bAdd = bAdd; } void DLG_Corp_FuncPay_Modify::OnChangeCorpPaymodifyPrice() { ResetSMSUsed(); } void DLG_Corp_FuncPay_Modify::OnChangeCorpPaymodifyPriceone() { ResetSMSUsed(); } void DLG_Corp_FuncPay_Modify::OnChangeCorpPaymodifyPresend() { ResetSMSUsed(); } void DLG_Corp_FuncPay_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 ); this->UpdateData( false ); } void DLG_Corp_FuncPay_Modify::OnSelchangeCorpPaymodifyFunc() { UpdateData( true ); if ( m_lFuncID==14 || m_lFuncID==15 || m_lFuncID==16 ) { GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE)->ShowWindow(SW_SHOW); GetDlgItem(IDC_CORP_PAYMODIFY_PRESEND)->ShowWindow(SW_SHOW); GetDlgItem(IDC_CORP_PAYMODIFY_SMSCOUNT)->ShowWindow(SW_SHOW); GetDlgItem(IDC_CORP_PAYMODIFY_TCPER)->ShowWindow(SW_SHOW); GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE_S)->ShowWindow(SW_SHOW); GetDlgItem(IDC_CORP_PAYMODIFY_PRESEND_S)->ShowWindow(SW_SHOW); GetDlgItem(IDC_CORP_PAYMODIFY_SMSCOUNT_S)->ShowWindow(SW_SHOW); GetDlgItem(IDC_CORP_PAYMODIFY_TCPER_S)->ShowWindow(SW_SHOW); } else { GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_PRESEND)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_SMSCOUNT)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_TCPER)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_PRICEONE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_PRESEND_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_SMSCOUNT_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_CORP_PAYMODIFY_TCPER_S)->ShowWindow(SW_HIDE); m_strTCPer = _T("10"); } UpdateData( false ); }