AgentManager/DLG_Corp_Pay_Modify.cpp

289 lines
8.2 KiB
C++
Raw Normal View History

2025-01-22 15:45:17 +08:00
// 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; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>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 ) //<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>
if (m_lAgentID == 300082 || m_lAgentID == 300229)
t.wYear += 1; //<2F><><EFBFBD>ȵģ<C8B5>Ĭ<EFBFBD>ϳ<EFBFBD>ֵ2<D6B5><32><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
#ifdef _DEBUG
if (m_lAgentID == 100000)
t.wYear += 1; //<2F><><EFBFBD>׵ģ<D7B5>Ĭ<EFBFBD>ϳ<EFBFBD>ֵ2<D6B5><32><EFBFBD><EFBFBD>Ч<EFBFBD><D0A7>
#endif
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_strPriceOne.Format(_T("%.4f"), m_fPriceOne);
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_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()
{
//<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_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("<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_CORP_PAYMODIFY_PRICE)->SetFocus();
return;
}
#endif
*/
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_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("<EFBFBD>ܶ<EFBFBD><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);
return;
}
else
{
if (-m_Pay.lSMSCount > m_lCorpSmsUsed)
{
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><EFBFBD>ҵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"), _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
GetDlgItem(IDC_CORP_PAYMODIFY_PRICE)->SetFocus();
return;
}
}
#endif
if (m_fUsed<(float)m_Pay.lSMSCount / 10.0f)
{
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_CORP_PAYMODIFY_PRICE)->SetFocus();
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_CORP_PAYMODIFY_OVRTIME)->SetFocus();
return;
}
if (m_tOvrTime.GetStatus() == COleDateTime::valid && m_tOvrTime - ot > COleDateTimeSpan(366 * 2, 0, 0, 0))
{
MessageBox(_T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD>ܴ<EFBFBD><EFBFBD><EFBFBD>2<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"), _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), 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();
}