SmsManager/DLG_C_YYSPay_See.cpp
2025-01-14 10:46:18 +08:00

223 lines
5.6 KiB
C++

// DLG_C_YYSPay_See.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_C_YYSPay_See.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// DLG_C_YYSPay_See dialog
DLG_C_YYSPay_See::DLG_C_YYSPay_See(CWnd* pParent /*=NULL*/)
: CDialog(DLG_C_YYSPay_See::IDD, pParent)
{
//{{AFX_DATA_INIT(DLG_C_YYSPay_See)
m_strName = _T("");
m_strPayTime = _T("");
m_strType = _T("");
m_strCJPrice = _T("");
m_strPayPer = _T("");
m_strPrice = _T("");
m_strXFPrice = _T("");
//}}AFX_DATA_INIT
memset(&m_Pay,0,sizeof(m_Pay));
}
void DLG_C_YYSPay_See::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DLG_C_YYSPay_See)
DDX_Text(pDX, IDD_C_MONPAY_SEE_NAME, m_strName);
DDX_Text(pDX, IDD_C_MONPAY_SEE_PAYTIME, m_strPayTime);
DDX_Text(pDX, IDD_C_MONPAY_SEE_TYPE, m_strType);
DDX_Text(pDX, IDD_C_YYSPAY_SEE_CJPRICE, m_strCJPrice);
DDV_MaxChars(pDX, m_strCJPrice, 16);
DDX_Text(pDX, IDD_C_YYSPAY_SEE_PAYPER, m_strPayPer);
DDV_MaxChars(pDX, m_strPayPer, 16);
DDX_Text(pDX, IDD_C_YYSPAY_SEE_PRICE, m_strPrice);
DDV_MaxChars(pDX, m_strPrice, 16);
DDX_Text(pDX, IDD_C_YYSPAY_SEE_XFPRICE, m_strXFPrice);
DDV_MaxChars(pDX, m_strXFPrice, 16);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DLG_C_YYSPay_See, CDialog)
//{{AFX_MSG_MAP(DLG_C_YYSPay_See)
ON_EN_CHANGE(IDD_C_YYSPAY_SEE_XFPRICE, OnChangeCYyspaySeeXfprice)
ON_EN_CHANGE(IDD_C_YYSPAY_SEE_CJPRICE, OnChangeCYyspaySeeCjprice)
ON_EN_CHANGE(IDD_C_YYSPAY_SEE_PAYPER, OnChangeCYyspaySeePayper)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// DLG_C_YYSPay_See message handlers
BOOL DLG_C_YYSPay_See::OnInitDialog()
{
CDialog::OnInitDialog();
m_strName.Format( _T("%d-%s") , m_Pay.lCorpID,m_Pay.szCorpName );
m_strPayTime.Format( _T("%04dÄê%02dÔÂ") , m_Pay.tPayTime.wYear,m_Pay.tPayTime.wMonth);
if ( m_Pay.lPayType==0 )
{
m_strType = _T("ÆóÐÅͨ³ê½ð90%" );
((CEdit *)GetDlgItem(IDD_C_YYSPAY_SEE_PAYPER))->SetReadOnly(true);
}
if ( m_Pay.lPayType==1 )
{
m_strType = _T("MAS³ê½ð90%" );
((CEdit *)GetDlgItem(IDD_C_YYSPAY_SEE_PAYPER))->SetReadOnly(true);
}
if ( m_Pay.lPayType==2 )
{
m_strType = _T("ÆóÐÅͨ³ê½ð10%" );
((CEdit *)GetDlgItem(IDD_C_YYSPAY_SEE_PAYPER))->SetReadOnly(false);
}
if (m_Pay.lPayType==3 )
{
m_strType = _T("MAS³ê½ð10%" );
((CEdit *)GetDlgItem(IDD_C_YYSPAY_SEE_PAYPER))->SetReadOnly(false);
}
m_strXFPrice.Format( _T("%.2f") , m_Pay.fXFPrice );
m_strCJPrice.Format( _T("%.2f") , m_Pay.fCJPrice );
m_strPayPer.Format( _T("%.2f") , m_Pay.fPayPer );
m_strPrice.Format( _T("%.2f") , m_Pay.fPrice );
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DLG_C_YYSPay_See::SetParam(ANS_Corp_YYSPayData pay)
{
m_Pay = pay;
}
ANS_Corp_YYSPayData DLG_C_YYSPay_See::GetParam()
{
return m_Pay;
}
void DLG_C_YYSPay_See::OnChangeCYyspaySeeXfprice()
{
if ( !UpdateData(true) )
return ;
m_Pay.fXFPrice = _tstof(m_strXFPrice);
m_Pay.fCJPrice = m_Pay.fXFPrice * 0.30f+0.005f; //ĬÈϳê½ðÊÇ30%
m_Pay.fCJPrice = (long(m_Pay.fCJPrice*100.0f))/100.0f;
m_strCJPrice.Format( _T("%.2f") , m_Pay.fCJPrice );
float fPer=0.90f;
if (m_Pay.lPayType==2 || m_Pay.lPayType==3 )
fPer=0.10f;
m_Pay.fPrice = m_Pay.fCJPrice*fPer*(m_Pay.fPayPer/100.0f)+0.005f;
m_Pay.fPrice = (long(m_Pay.fPrice*100.0f))/100.0f;
m_strPrice.Format( _T("%.2f") , m_Pay.fPrice );
UpdateData(false);
}
void DLG_C_YYSPay_See::OnChangeCYyspaySeeCjprice()
{
if ( !UpdateData(true) )
return ;
m_Pay.fCJPrice = _tstof(m_strCJPrice);
float fPer=0.90f;
if (m_Pay.lPayType==2 || m_Pay.lPayType==3 )
fPer=0.10f;
m_Pay.fPrice = m_Pay.fCJPrice*fPer*(m_Pay.fPayPer/100.0f)+0.005f;
m_Pay.fPrice = (long(m_Pay.fPrice*100.0f))/100.0f;
m_strPrice.Format( _T("%.2f") , m_Pay.fPrice );
UpdateData(false);
}
void DLG_C_YYSPay_See::OnChangeCYyspaySeePayper()
{
if ( !UpdateData(true) )
return ;
m_Pay.fCJPrice = _tstof(m_strCJPrice);
m_Pay.fPayPer = _tstof(m_strPayPer);
float fPer=0.90f;
if (m_Pay.lPayType==2 || m_Pay.lPayType==3 )
fPer=0.10f;
m_Pay.fPrice = m_Pay.fCJPrice*fPer*(m_Pay.fPayPer/100.0f)+0.005f;
m_Pay.fPrice = (long(m_Pay.fPrice*100.0f))/100.0f;
m_strPrice.Format( _T("%.2f") , m_Pay.fPrice );
UpdateData(false);
}
void DLG_C_YYSPay_See::OnOK()
{
if( !UpdateData(true))
return ;
m_Pay.fXFPrice = _tstof(m_strXFPrice);
m_Pay.fCJPrice = _tstof(m_strCJPrice);
m_Pay.fPayPer = _tstof(m_strPayPer);
m_Pay.fPrice = _tstof(m_strPrice);
if ( m_Pay.fXFPrice*0.5f < m_Pay.fCJPrice )
{
int iRet=MessageBox( _T("Ïû·Ñ½ð¶îÓë³ê½ð½ð¶î±ÈÀý²»ºÏÀí£¡ÊÇ·ñ¼ÌÐø£¿") , _T("´íÎó") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if (iRet != IDYES)
{
GetDlgItem(IDD_C_YYSPAY_SEE_XFPRICE)->SetFocus();
return ;
}
}
if ( m_Pay.fPayPer < 50.0f )
{
int iRet=MessageBox( _T("³ê½ð·¢·Å±ÈÀý²»ºÏÀí£¡ÊÇ·ñ¼ÌÐø£¿") , _T("´íÎó") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if (iRet != IDYES)
{
GetDlgItem(IDD_C_YYSPAY_SEE_PAYPER)->SetFocus();
return ;
}
}
float fPer=0.90f;
if (m_Pay.lPayType==2 || m_Pay.lPayType==3 )
fPer=0.10f;
double fTemp=m_Pay.fCJPrice*fPer*(m_Pay.fPayPer/100.0f)+0.005f;
fTemp = (long(fTemp*100.0f))/100.0f;
if ( fTemp != m_Pay.fPrice )
{
int iRet=MessageBox( _T("×ܳê½ðÓëÓ¦ÊÕ³ê½ð²»·û£¡ÊÇ·ñ¼ÌÐø£¿") , _T("´íÎó") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if (iRet != IDYES)
{
GetDlgItem(IDD_C_YYSPAY_SEE_PRICE)->SetFocus();
return ;
}
}
CDialog::OnOK();
}