// DLG_Agent_Pay_Modify.cpp : implementation file // #include "stdafx.h" #include "smsmanager.h" #include "DLG_Agent_Pay_Modify.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // DLG_Agent_Pay_Modify dialog DLG_Agent_Pay_Modify::DLG_Agent_Pay_Modify(CWnd* pParent /*=NULL*/) : CDialog(DLG_Agent_Pay_Modify::IDD, pParent) { //{{AFX_DATA_INIT(DLG_Agent_Pay_Modify) m_strCreateUser = _T(""); m_strPayMode = _T(""); m_strPayName = _T(""); m_strPayTime = _T(""); m_strBZ = _T(""); m_strPresent = _T(""); m_strPrice = _T(""); m_strPriceOne = _T(""); m_bTest = FALSE; m_bYS = FALSE; m_strSmsCount = _T(""); //}}AFX_DATA_INIT memset( &m_Pay , 0 , sizeof(m_Pay) ); m_bAdd = true; m_bTest2= false; } void DLG_Agent_Pay_Modify::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(DLG_Agent_Pay_Modify) DDX_Text(pDX, IDC_AGENT_PAYMODIFY_CREATEUSER, m_strCreateUser); DDX_CBString(pDX, IDC_AGENT_PAYMODIFY_PAYMODE, m_strPayMode); DDV_MaxChars(pDX, m_strPayMode, 16); DDX_Text(pDX, IDC_AGENT_PAYMODIFY_PAYNAME, m_strPayName); DDV_MaxChars(pDX, m_strPayName, 16); DDX_Text(pDX, IDC_AGENT_PAYMODIFY_PAYTIME, m_strPayTime); DDX_Text(pDX, IDC_AGENT_PAYMODIFY_BZ, m_strBZ); DDV_MaxChars(pDX, m_strBZ, 250); DDX_Text(pDX, IDC_AGENT_PAYMODIFY_PRESEND, m_strPresent); DDV_MaxChars(pDX, m_strPresent, 16); DDX_Text(pDX, IDC_AGENT_PAYMODIFY_JFPRICE, m_strPrice); DDV_MaxChars(pDX, m_strPrice, 16); DDX_Text(pDX, IDC_AGENT_PAYMODIFY_PRICEONE, m_strPriceOne); DDV_MaxChars(pDX, m_strPriceOne, 16); DDX_Check(pDX, IDC_AGENT_PAYMODIFY_TEST, m_bTest); DDX_Check(pDX, IDC_AGENT_PAYMODIFY_YS, m_bYS); DDX_Text(pDX, IDC_AGENT_PAYMODIFY_SMSCOUNT, m_strSmsCount); DDV_MaxChars(pDX, m_strSmsCount, 16); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(DLG_Agent_Pay_Modify, CDialog) //{{AFX_MSG_MAP(DLG_Agent_Pay_Modify) ON_EN_CHANGE(IDC_AGENT_PAYMODIFY_JFPRICE, OnChangeAgentPaymodifyJfprice) ON_EN_CHANGE(IDC_AGENT_PAYMODIFY_PRICEONE, OnChangeAgentPaymodifyPriceone) ON_EN_CHANGE(IDC_AGENT_PAYMODIFY_PRESEND, OnChangeAgentPaymodifyPresend) //}}AFX_MSG_MAP ON_BN_CLICKED(IDOK, &DLG_Agent_Pay_Modify::OnBnClickedOk) END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // DLG_Agent_Pay_Modify message handlers ANS_Agent_PayData DLG_Agent_Pay_Modify::GetParam() { return m_Pay; } void DLG_Agent_Pay_Modify::SetParam(ANS_Agent_PayData pay, BOOL bAdd) { m_Pay = pay; m_bAdd = bAdd; } BOOL DLG_Agent_Pay_Modify::OnInitDialog() { CDialog::OnInitDialog(); if ( m_bAdd ) //如果是添加 { COleDateTime ot = COleDateTime::GetCurrentTime(); //取得到当时间 m_strPayMode = _T("现金"); m_strPriceOne = _T("0.10"); //默认费率为0.10 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 ); 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_AGENT_PAYMODIFY_PAYNAME)->EnableWindow( false ); GetDlgItem(IDC_AGENT_PAYMODIFY_PAYMODE)->EnableWindow( false ); GetDlgItem(IDC_AGENT_PAYMODIFY_JFPRICE)->EnableWindow( false ); GetDlgItem(IDC_AGENT_PAYMODIFY_PRICEONE)->EnableWindow( false ); GetDlgItem(IDC_AGENT_PAYMODIFY_PRESEND)->EnableWindow( false ); GetDlgItem(IDC_AGENT_PAYMODIFY_SMSCOUNT)->EnableWindow( false ); GetDlgItem(IDC_AGENT_PAYMODIFY_YS)->EnableWindow( false ); GetDlgItem(IDC_AGENT_PAYMODIFY_TEST)->EnableWindow( false ); CEdit * pEdit =(CEdit * )GetDlgItem(IDC_AGENT_PAYMODIFY_BZ); pEdit->SetReadOnly(true); } if ( m_bTest2 ) { m_bTest = true; GetDlgItem(IDC_AGENT_PAYMODIFY_TEST)->EnableWindow( false ); } this->UpdateData( false ); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void DLG_Agent_Pay_Modify::OnBnClickedOk() { //如果不是添加,直接返回 if ( !m_bAdd ) CDialog::OnCancel(); this->UpdateData( true ); /* if ( m_strPayName.GetLength() <= 0 ) { MessageBox( _T("缴费人姓名不能为空,请输入!") , _T("错误") , MB_ICONWARNING ); GetDlgItem(IDC_AGENT_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_AGENT_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; m_Pay.bYS = m_bYS; m_Pay.bTest=m_bTest; ::GetLocalTime( &m_Pay.tPayTime ); CDialog::OnOK(); } void DLG_Agent_Pay_Modify::OnChangeAgentPaymodifyJfprice() { ResetSMSUsed(); } void DLG_Agent_Pay_Modify::OnChangeAgentPaymodifyPriceone() { ResetSMSUsed(); } void DLG_Agent_Pay_Modify::OnChangeAgentPaymodifyPresend() { ResetSMSUsed(); } void DLG_Agent_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 ); } BOOL DLG_Agent_Pay_Modify::SetTest(BOOL bTest) { m_bTest2 = bTest; return m_bTest2; }