AgentManager/DLG_User_Pay_Modify.cpp
2025-01-22 15:45:17 +08:00

255 lines
7.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// DLG_User_Pay_Modify.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_User_Pay_Modify.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_User_Pay_Modify dialog
DLG_User_Pay_Modify::DLG_User_Pay_Modify(long lSmsCount,CWnd* pParent /*=NULL*/)
: CDialog(DLG_User_Pay_Modify::IDD, pParent)
{
//{{AFX_DATA_INIT(DLG_User_Pay_Modify)
m_strBZ = _T("");
m_strCreateUser = _T("");
m_tOvrTime = COleDateTime::GetCurrentTime();
m_strPayMode = _T("");
m_strPayName = _T("");
m_strPayTime = _T("");
m_strPresent = _T("");
m_strPriceOne = _T("");
m_strPrice = _T("");
m_strSMSCount = _T("");
//}}AFX_DATA_INIT
memset( &m_Pay , 0 , sizeof(m_Pay) );
m_bAdd = true;
m_lSmsCount = lSmsCount;
}
void DLG_User_Pay_Modify::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_User_Pay_Modify)
DDX_Text(pDX, IDC_USER_PAYMODIFY_BZ, m_strBZ);
DDV_MaxChars(pDX, m_strBZ, 126);
DDX_Text(pDX, IDC_USER_PAYMODIFY_CREATEUSER, m_strCreateUser);
DDX_DateTimeCtrl(pDX, IDC_USER_PAYMODIFY_OVRTIME, m_tOvrTime);
DDX_CBString(pDX, IDC_USER_PAYMODIFY_PAYMODE, m_strPayMode);
DDV_MaxChars(pDX, m_strPayMode, 16);
DDX_Text(pDX, IDC_USER_PAYMODIFY_PAYNAME, m_strPayName);
DDV_MaxChars(pDX, m_strPayName, 16);
DDX_Text(pDX, IDC_USER_PAYMODIFY_PAYTIME, m_strPayTime);
DDX_Text(pDX, IDC_USER_PAYMODIFY_PRESEND, m_strPresent);
DDV_MaxChars(pDX, m_strPresent, 16);
DDX_Text(pDX, IDC_USER_PAYMODIFY_PRICEONE, m_strPriceOne);
DDV_MaxChars(pDX, m_strPriceOne, 16);
DDX_Text(pDX, IDC_USER_PAYMODIFY_PRICE, m_strPrice);
DDV_MaxChars(pDX, m_strPrice, 16);
DDX_Text(pDX, IDC_USER_PAYMODIFY_SMSCOUNT, m_strSMSCount);
DDV_MaxChars(pDX, m_strSMSCount, 16);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DLG_User_Pay_Modify, CDialog)
//{{AFX_MSG_MAP(DLG_User_Pay_Modify)
ON_EN_CHANGE(IDC_USER_PAYMODIFY_PRICE, OnChangeUserPaymodifyPrice)
ON_EN_CHANGE(IDC_USER_PAYMODIFY_PRICEONE, OnChangeUserPaymodifyPriceone)
ON_EN_CHANGE(IDC_USER_PAYMODIFY_PRESEND, OnChangeUserPaymodifyPresend)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_User_Pay_Modify message handlers
BOOL DLG_User_Pay_Modify::OnInitDialog()
{
CDialog::OnInitDialog();
if ( m_bAdd ) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
{
SYSTEMTIME t;
GetLocalTime(&t);
COleDateTime ot(t); //ȡ<>õ<EFBFBD><C3B5><EFBFBD>ʱ<EFBFBD><CAB1>
t.wYear+=1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>1<EFBFBD><31>
m_tOvrTime.SetDateTime(t.wYear,t.wMonth,t.wDay,t.wHour,t.wMinute,t.wSecond);
UpdateData(false);
m_tOvrTime.SetStatus( COleDateTime::valid ); //û<>й<EFBFBD><D0B9><EFBFBD>ʱ<EFBFBD><CAB1>
m_strPriceOne = _T("0.10"); //Ĭ<>Ϸ<EFBFBD><CFB7><EFBFBD>Ϊ0.10
m_strPayMode = _T("<EFBFBD>ֽ<EFBFBD>");
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_USER_PAYMODIFY_PAYNAME)->EnableWindow( false );
GetDlgItem(IDC_USER_PAYMODIFY_PAYMODE)->EnableWindow( false );
GetDlgItem(IDC_USER_PAYMODIFY_PRICE)->EnableWindow( false );
GetDlgItem(IDC_USER_PAYMODIFY_PRICEONE)->EnableWindow( false );
GetDlgItem(IDC_USER_PAYMODIFY_PRESEND)->EnableWindow( false );
GetDlgItem(IDC_USER_PAYMODIFY_SMSCOUNT)->EnableWindow( false );
GetDlgItem(IDC_USER_PAYMODIFY_OVRTIME)->EnableWindow( false );
//GetDlgItem(IDC_CORP_PAYMODIFY_BZ)->EnableWindow( false );
CEdit * pEdit =(CEdit * )GetDlgItem(IDC_USER_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
}
void DLG_User_Pay_Modify::OnOK()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ӣ<EFBFBD>ֱ<EFBFBD>ӷ<EFBFBD><D3B7><EFBFBD>
if ( !m_bAdd )
CDialog::OnCancel();
this->UpdateData( true );
/*
if ( m_strPayName.GetLength() <= 0 )
{
MessageBox( _T("<22>ɷ<EFBFBD><C9B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD>գ<EFBFBD><D5A3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<22><><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_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.fPrice<=0 )
{
MessageBox( _T("<22>ɷѽ<C9B7><D1BD><EFBFBD><EEB2BB>С<EFBFBD><D0A1><EFBFBD><EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>Ľɷѽ<C9B7><D1BD><EFBFBD>!") , _T("<22><><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_PAYMODIFY_PRICE)->SetFocus();
return ;
}
if ( m_fUsed<m_Pay.fPrice )
{
MessageBox( _T("<22><><EFBFBD>Ĵ<EFBFBD><C4B4><EFBFBD><EFBFBD>̿<EFBFBD><CCBF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E3A3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˴νɷ<CEBD>!") , _T("<22><><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_PAYMODIFY_PRICE)->SetFocus();
return ;
}
*/
if ( m_Pay.fPriceOne <= 0 )
{
MessageBox( _T("<EFBFBD><EFBFBD><EFBFBD>ŷ<EFBFBD><EFBFBD>ʲ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ȷ<EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_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;
long lSmsCount = m_lSmsCount;
if (lSmsCount == -100)
lSmsCount = 0;
if (lSmsCount + m_Pay.lSMSCount < 0)
{
MessageBox(_T("<EFBFBD><EFBFBD><EFBFBD>û<EFBFBD><EFBFBD><EFBFBD>ֵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD>0<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONERROR);
return;
}
/*
SYSTEMTIME t;GetSystemTime(&t);
COleDateTime ot(t);
if ( m_tOvrTime.GetStatus() == COleDateTime::valid && m_tOvrTime < ot )
{
MessageBox( _T("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><DAB2><EFBFBD>С<EFBFBD>ڽ<EFBFBD><DABD><EFBFBD><ECA3AC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<22><><EFBFBD><EFBFBD>") , MB_ICONWARNING );
GetDlgItem(IDC_USER_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();
}
ANS_User_PayData DLG_User_Pay_Modify::GetParam()
{
return m_Pay;
}
void DLG_User_Pay_Modify::SetParam(ANS_User_PayData pay, BOOL bAdd)
{
m_Pay = pay;
m_bAdd = bAdd;
}
void DLG_User_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_User_Pay_Modify::OnChangeUserPaymodifyPrice()
{
ResetSMSUsed();
}
void DLG_User_Pay_Modify::OnChangeUserPaymodifyPriceone()
{
ResetSMSUsed();
}
void DLG_User_Pay_Modify::OnChangeUserPaymodifyPresend()
{
ResetSMSUsed();
}