// 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(float fUsed,long lCorpSmsUsed, float fPriceOne, DWORD dwYJ, long lAgentID,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(""); //}}AFX_DATA_INIT memset( &m_Pay , 0 , sizeof(m_Pay) ); m_bAdd = true; m_fUsed = fUsed; m_lCorpSmsUsed = lCorpSmsUsed; m_fPriceOne = fPriceOne; m_dwYJ = dwYJ; m_lAgentID = lAgentID; //代理商ID } void DLG_Corp_Pay_Modify::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Corp_Pay_Modify) 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); //}}AFX_DATA_MAP } 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) //}}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(); if ( m_bAdd ) //如果是添加 { SYSTEMTIME t; GetLocalTime(&t); COleDateTime ot(t); //取得到当时间 t.wYear+=1; //过期日往后加1年 if (m_lAgentID == 300082 || m_lAgentID == 300229) t.wYear += 1; //创度的,默认充值2年有效期 #ifdef _DEBUG if (m_lAgentID == 100000) t.wYear += 1; //首易的,默认充值2年有效期 #endif m_tOvrTime.SetDateTime(t.wYear,t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond); UpdateData(false); m_tOvrTime.SetStatus( COleDateTime::valid ); //没有过期时间 //m_strPriceOne = _T("0.10"); //默认费率为0.10 m_strPriceOne.Format(_T("%.4f"), m_fPriceOne); m_strPayMode = _T("现金"); m_strPayTime.Format( _T("%04d.%02d.%02d %02d:%02d") , ot.GetYear(),ot.GetMonth(),ot.GetDay(),ot.GetHour(),ot.GetMinute() ); } else { 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() == COleDateTime::valid ) 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 ); 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 ); 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_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_BZ)->EnableWindow( false ); CEdit * pEdit =(CEdit * )GetDlgItem(IDC_CORP_PAYMODIFY_BZ); pEdit->SetReadOnly(true); } this->UpdateData( false ); 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::OnChangeCorpPaymodifyPriceone() { ResetSMSUsed(); } void DLG_Corp_Pay_Modify::OnChangeCorpPaymodifyPresend() { ResetSMSUsed(); } void DLG_Corp_Pay_Modify::ResetSMSUsed() { this->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_Pay_Modify::SetParam(ANS_Corp_PayData pay,long lAgentID, BOOL bAdd) { m_Pay = pay; m_bAdd = bAdd; m_lAgentID = lAgentID; } void DLG_Corp_Pay_Modify::OnBnClickedOk() { //如果不是添加,直接返回 if (!m_bAdd) CDialog::OnCancel(); 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); /* #ifndef SMSCENTER_NX if (m_Pay.fPrice<0) { MessageBox(_T("缴费金额不能小于零,请输入正确的缴费金额!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_PRICE)->SetFocus(); return; } #endif */ 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; #ifndef SMSCENTER_NX if (!(m_dwYJ&AGENT_ALLOWMINUS) && m_Pay.lSMSCount <= 0) { MessageBox(_T("总短信量不能小于零,请输入正确的缴费金额!"), _T("错误"), MB_ICONWARNING); return; } else { if (-m_Pay.lSMSCount > m_lCorpSmsUsed) { MessageBox(_T("回收短信时,回收短信量不能大于企业现有余额!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_PRICE)->SetFocus(); return; } } #endif if (m_fUsed<(float)m_Pay.lSMSCount / 10.0f) { MessageBox(_T("你的代理商可用余额不足,不能添此次缴费!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_PRICE)->SetFocus(); return; } SYSTEMTIME t; GetSystemTime(&t); COleDateTime ot(t); if (m_tOvrTime.GetStatus() == COleDateTime::valid && m_tOvrTime < ot) { MessageBox(_T("过期日期不能小于今天,请调整!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_OVRTIME)->SetFocus(); return; } if (m_tOvrTime.GetStatus() == COleDateTime::valid && m_tOvrTime - ot > COleDateTimeSpan(366 * 2, 0, 0, 0)) { MessageBox(_T("过期日期不能大于2年,请调整!"), _T("错误"), MB_ICONWARNING); GetDlgItem(IDC_CORP_PAYMODIFY_OVRTIME)->SetFocus(); return; } ::GetLocalTime(&m_Pay.tPayTime); if (m_tOvrTime.GetStatus() == COleDateTime::valid) m_tOvrTime.GetAsSystemTime(m_Pay.tOvrTime); else memset(&m_Pay.tOvrTime, 0, sizeof(m_Pay.tOvrTime)); CDialog::OnOK(); }