// DLG_Corp_PayToUser.cpp : implementation file
//

#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_Corp_PayToUser.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_PayToUser dialog


DLG_Corp_PayToUser::DLG_Corp_PayToUser(CWnd* pParent /*=NULL*/)
	: CDialog(DLG_Corp_PayToUser::IDD, pParent)
{
	//{{AFX_DATA_INIT(DLG_Corp_PayToUser)
	m_strType = _T("");
	m_strBZ = _T("");
	m_strName = _T("");
	m_strPrice = _T("");
	m_strPriceOne = _T("");
	m_strSmsCount = _T("");
	m_strTHCount = _T("");
	//}}AFX_DATA_INIT

	memset(&m_HSSms,0,sizeof(m_HSSms));
}


void DLG_Corp_PayToUser::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DLG_Corp_PayToUser)
	DDX_Text(pDX, IDC_CORP_PAYTOUSER_TYPE, m_strType);
	DDX_Text(pDX, IDC_CORP_PAYTOUSER_TYPE_BZ, m_strBZ);
	DDV_MaxChars(pDX, m_strBZ, 250);
	DDX_Text(pDX, IDC_CORP_PAYTOUSER_TYPE_NAME, m_strName);
	DDX_Text(pDX, IDC_CORP_PAYTOUSER_TYPE_PRICE, m_strPrice);
	DDX_Text(pDX, IDC_CORP_PAYTOUSER_TYPE_PRICEONE, m_strPriceOne);
	DDX_Text(pDX, IDC_CORP_PAYTOUSER_TYPE_SMSCOUNT, m_strSmsCount);
	DDX_Text(pDX, IDC_CORP_PAYTOUSER_TYPE_THCOUNT, m_strTHCount);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DLG_Corp_PayToUser, CDialog)
	//{{AFX_MSG_MAP(DLG_Corp_PayToUser)
	ON_WM_TIMER()
	ON_EN_CHANGE(IDC_CORP_PAYTOUSER_TYPE_THCOUNT, OnChangeCorpPaytouserTypeThcount)
	ON_EN_CHANGE(IDC_CORP_PAYTOUSER_TYPE_PRICEONE, OnChangeCorpPaytouserTypePriceone)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_PayToUser message handlers

BOOL DLG_Corp_PayToUser::OnInitDialog() 
{
	CDialog::OnInitDialog();

	m_strType = _T("�ն˿ͻ�");
	if ( m_HSSms.lUserType == 1 )
	{
		m_strType = _T("������") ;
	}
	if ( m_HSSms.lUserType == 10 )
	{
		m_strType = _T("ADC�ͻ�");
	}
	m_strName = m_HSSms.szCorpName;
	m_strSmsCount.Format(_T("%d") , m_HSSms.lSmsCount );
	m_strTHCount.Format( _T("%d") , m_HSSms.lSmsCount );
	m_strPriceOne.Format( _T("%.4f") , m_HSSms.fPriceOne );

	UpdateData(false);
	

	SetTimer(1,100,NULL);
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void DLG_Corp_PayToUser::SetParam(REQ_Corp_HSSms HSSms)
{
	m_HSSms = HSSms;
}

void DLG_Corp_PayToUser::OnTimer(UINT nIDEvent) 
{
	CDialog::OnTimer(nIDEvent);

	if ( nIDEvent == 1 )
	{
		KillTimer(nIDEvent);

		ResetSMSUsed();
	}
}

void DLG_Corp_PayToUser::ResetSMSUsed()
{
	UpdateData( true );

	m_HSSms.lSmsUsed = _ttol( m_strTHCount );
	m_HSSms.fPriceOne = _tstof( m_strPriceOne );
	if ( m_HSSms.fPriceOne < 0.02f || m_HSSms.fPriceOne > 0.20f  )
	{
		MessageBox( _T("�˿���������飡") , _T("����") , MB_ICONWARNING) ; 

		return ;
	}
	if ( m_HSSms.lSmsUsed <=0 || m_HSSms.lSmsUsed > m_HSSms.lSmsCount )
	{
		MessageBox( _T("�˿���������������ʣ��������벻��С��0��") , _T("����") , MB_ICONWARNING) ; 

		m_strTHCount = m_strSmsCount;
		UpdateData(false);
		return ;
	}
	m_strPrice.Format( _T("%.4f") , (double)m_HSSms.lSmsUsed * m_HSSms.fPriceOne );

	this->UpdateData( false );
}

void DLG_Corp_PayToUser::OnOK() 
{
	ResetSMSUsed();
	if ( m_HSSms.fPriceOne < 0.02f || m_HSSms.fPriceOne > 0.20f )
		return ;
	if ( m_HSSms.lSmsUsed > m_HSSms.lSmsCount )
		return ;

	int iRet = MessageBox( _T("ȷ��Ҫ�˿�˱ʿ��") , _T("����") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
	if ( iRet != IDYES )
		return ;

	_tcscpy(m_HSSms.szBZ , m_strBZ );


	CDialog::OnOK();
}

void DLG_Corp_PayToUser::OnChangeCorpPaytouserTypeThcount() 
{
	SetTimer(1 , 100 , NULL );
}

void DLG_Corp_PayToUser::OnChangeCorpPaytouserTypePriceone() 
{
	SetTimer(1 , 100 , NULL );
}