255 lines
7.2 KiB
C++
255 lines
7.2 KiB
C++
|
// 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("<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_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("<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_PRICE)->SetFocus();
|
|||
|
return ;
|
|||
|
}
|
|||
|
|
|||
|
if ( m_fUsed<m_Pay.fPrice )
|
|||
|
{
|
|||
|
MessageBox( _T("<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_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("<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_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();
|
|||
|
}
|