// DLG_Corp_Open_ChangeA.cpp : implementation file
//

#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_Corp_Open_ChangeA.h"

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

/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_Open_ChangeA dialog
#include "K_Agent.h"

#include "MainFrm.h"
#include "UserDlg.h"

DLG_Corp_Open_ChangeA::DLG_Corp_Open_ChangeA(CWnd* pParent /*=NULL*/)
	: CDialog(DLG_Corp_Open_ChangeA::IDD, pParent)
{
	//{{AFX_DATA_INIT(DLG_Corp_Open_ChangeA)
	m_lAddCount = 0;
	m_tHTRecv = COleDateTime::GetCurrentTime();
	m_tHTSend = COleDateTime::GetCurrentTime();
	m_lYWY = -1;
	m_strBZ = _T("");
	m_strCorpID = _T("");
	m_strCorpName = _T("");
	m_strOperName = _T("");
	m_tCreateTime = COleDateTime::GetCurrentTime();
	m_strPriceOne = _T("");
	m_lTCPer = 0;
	//}}AFX_DATA_INIT
	m_pUserDlg = (CK_Agent *)pParent;
	memset( &m_AgentData , 0 , sizeof(m_AgentData));

}


void DLG_Corp_Open_ChangeA::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DLG_Corp_Open_ChangeA)
	DDX_Control(pDX, IDC_CORP_MODIFY_YWY, m_L_YWY);
	DDX_Text(pDX, IDC_CORP_MODIFY_ADDCOUNT, m_lAddCount);
	DDX_DateTimeCtrl(pDX, IDC_CORP_MODIFY_HTRECV, m_tHTRecv);
	DDX_DateTimeCtrl(pDX, IDC_CORP_MODIFY_HTSEND, m_tHTSend);
	DDX_CBIndex(pDX, IDC_CORP_MODIFY_YWY, m_lYWY);
	DDX_Text(pDX, IDC_CORP_OPER_OPEN_BZ, m_strBZ);
	DDV_MaxChars(pDX, m_strBZ, 120);
	DDX_Text(pDX, IDC_CORP_OPER_OPEN_CORPID, m_strCorpID);
	DDX_Text(pDX, IDC_CORP_OPER_OPEN_CORPNAME, m_strCorpName);
	DDV_MaxChars(pDX, m_strCorpName, 49);
	DDX_Text(pDX, IDC_CORP_OPER_OPEN_OPERNAME, m_strOperName);
	DDV_MaxChars(pDX, m_strOperName, 30);
	DDX_DateTimeCtrl(pDX, IDC_CORP_MODIFY_REGTIME, m_tCreateTime);
	DDX_Text(pDX, IDC_CORP_MODIFY_PRICEONE, m_strPriceOne);
	DDV_MaxChars(pDX, m_strPriceOne, 10);
	DDX_Text(pDX, IDC_CORP_MODIFY_TCPER, m_lTCPer);
	DDV_MinMaxLong(pDX, m_lTCPer, 0, 100);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DLG_Corp_Open_ChangeA, CDialog)
	//{{AFX_MSG_MAP(DLG_Corp_Open_ChangeA)
	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDOK, &DLG_Corp_Open_ChangeA::OnBnClickedOk)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_Open_ChangeA message handlers

void DLG_Corp_Open_ChangeA::SetParam(ANS_Agent_SeeData pData, long lType)
{
	m_AgentData = pData;
	m_lChangeType = lType;
}

BOOL DLG_Corp_Open_ChangeA::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here

	CString strTemp;
	//ҵ��Ա
	ANS_YWY_NameData * pYWY;
	m_L_YWY.AddString( _T("��ҵ��Ա") );
	m_L_YWY.SetCurSel(0);
	POSITION pos = m_pUserDlg->m_YWY.GetHeadPosition();
	POSITION pos2=0;
	while (pos)
	{
		pos2=pos;
		pYWY = m_pUserDlg->m_YWY.GetNext( pos );

		strTemp = pYWY->szYWYName;
		long lItem = m_L_YWY.AddString( strTemp );
		m_L_YWY.SetItemData( lItem , (DWORD)pos2);
		if ( m_AgentData.lYWYID == pYWY->lYWYID )
			m_L_YWY.SetCurSel(lItem);
	}

/*
	COleDateTime tS(m_m_AgentData.lHT_Send.lYear, m_m_AgentData.lHT_Send.lMon,m_m_AgentData.lHT_Send.lDay,0,0,0);
	if ( tS.GetStatus()==0 )
		m_tHTSend = tS;
	else
		m_tHTSend.SetStatus( COleDateTime::null  );
	
	COleDateTime tR(m_m_AgentData.lHT_Recv.lYear, m_m_AgentData.lHT_Recv.lMon,m_m_AgentData.lHT_Recv.lDay,0,0,0);
	if ( tR.GetStatus()==0 )
		m_tHTRecv = tR;
	else
		m_tHTRecv.SetStatus( COleDateTime::null  );
*/

	UpdateData(true);


	COleDateTime tS(m_AgentData.lHT_Send.lYear, m_AgentData.lHT_Send.lMon,m_AgentData.lHT_Send.lDay,0,0,0);
	if ( tS.GetStatus()==0 )
		m_tHTSend = tS;
	else
		m_tHTSend.SetStatus( COleDateTime::null  );
	
	COleDateTime tR(m_AgentData.lHT_Recv.lYear, m_AgentData.lHT_Recv.lMon,m_AgentData.lHT_Recv.lDay,0,0,0);
	if ( tR.GetStatus()==0 )
		m_tHTRecv = tR;
	else
		m_tHTRecv.SetStatus( COleDateTime::null  );


	m_strCorpID.Format(_T("%d"), m_AgentData.lAgentID );
	m_strCorpName = m_AgentData.szName;
	m_lAddCount = m_AgentData.lAddCorpCount;
	m_lTCPer    = m_AgentData.lTCPer;

	m_strPriceOne.Format(_T("%.4f") , m_AgentData.fPriceOne );


	COleDateTime tR2(m_AgentData.tCreateTime);
	if ( tR2.GetStatus()==0 )
		m_tCreateTime = tR2;
	else
		m_tCreateTime.SetStatus( COleDateTime::null  );


	switch(m_lChangeType)
	{
	case 3:
		 GetDlgItem(IDC_CORP_MODIFY_YWY)->EnableWindow(true);
		 break;
	case 4:
		 ((CEdit*)GetDlgItem(IDC_CORP_MODIFY_ADDCOUNT))->SetReadOnly(false);
		 break;
	case 5:  //�ĺ�ͬ����ʱ��
		 ((CWnd*)GetDlgItem(IDC_CORP_MODIFY_HTSEND))->EnableWindow(true);
		 break;
	case 6:  //�ĺ�ͬ�յ�ʱ��
		 ((CWnd*)GetDlgItem(IDC_CORP_MODIFY_HTRECV))->EnableWindow(true);
		 break;
	case 7:  //��ע��ʱ��
		 ((CWnd*)GetDlgItem(IDC_CORP_MODIFY_REGTIME))->EnableWindow(true);
		 break;

		break;
	case 58: //�Ķ��ŵ���
		 ((CEdit*)GetDlgItem(IDC_CORP_MODIFY_PRICEONE))->SetReadOnly(false);
		 break;
	case 59: //����ɱ���
		 ((CEdit*)GetDlgItem(IDC_CORP_MODIFY_TCPER))->SetReadOnly(false);
		 break;
	case 60: //�IJ��ŵ���
		GetDlgItem(IDC_CORP_OPER_OPEN_S14)->SetWindowText(_T("�IJ��ŵ���"));
		 ((CEdit*)GetDlgItem(IDC_CORP_MODIFY_PRICEONE))->SetReadOnly(false);
		 m_strPriceOne.Format(_T("%.4f") , m_AgentData.fMmsPriceOne );
		 break;
	case 61:  //�Ĵ���������
		((CEdit*)GetDlgItem(IDC_CORP_OPER_OPEN_CORPNAME))->SetReadOnly(false);
		break;
	case 62:  //����������
		((CWnd*)GetDlgItem(IDC_CORP_OPER_OPEN_S5))->SetWindowText(_T("���õ�¼����ԭ��"));
		break;
	}

	//�õ�¼��
	m_strOperName = m_pUserDlg->m_pMainFrame->m_Setup.szUser;

	UpdateData(false);

	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void DLG_Corp_Open_ChangeA::OnBnClickedOk() 
{
	if ( !UpdateData(true) )
		return ;

#ifdef SMSMANAGER_KF
	if ( m_strOperName.GetLength()<2 )
	{
		MessageBox( _T("���������Ա����") , _T("����") , MB_ICONWARNING );
		GetDlgItem(IDC_CORP_OPER_OPEN_OPERNAME)->SetFocus();
		return ;
	}
#endif

	if (( m_lChangeType != 5 && m_lChangeType != 6 ) && m_strBZ.GetLength()<4 )
	{
		MessageBox( _T("������ԭ��") , _T("����") , MB_ICONWARNING );
		GetDlgItem(IDC_CORP_OPER_OPEN_BZ)->SetFocus();
		return ;
	}

	if ( m_lChangeType==58 )
	{
		double lPriceOne = _tstof(m_strPriceOne);
		if ( lPriceOne<=0.02f )
		{
			MessageBox( _T("���ŵ�����������!") , _T("����") , MB_ICONWARNING );
			GetDlgItem( IDC_CORP_MODIFY_PRICEONE )->SetFocus();
			return ;
		}
		if ( lPriceOne>0.10f )
		{
			int iRet = MessageBox( _T("���ŵ��ۿ���������ȷ��!") , _T("��ʾ") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
			if ( iRet != IDYES )
			{
				GetDlgItem( IDC_CORP_MODIFY_PRICEONE )->SetFocus();
				return ;
			}
		}
		m_AgentData.fPriceOne    = lPriceOne;
	}
	if ( m_lChangeType==60 )
	{
		double lPriceOne = _tstof(m_strPriceOne);
		if ( lPriceOne<=0.05f )
		{
			MessageBox( _T("���ŵ�����������!") , _T("����") , MB_ICONWARNING );
			GetDlgItem( IDC_CORP_MODIFY_PRICEONE )->SetFocus();
			return ;
		}
		if ( lPriceOne>0.50f )
		{
			int iRet = MessageBox( _T("���ŵ��ۿ���������ȷ��!") , _T("��ʾ") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
			if ( iRet != IDYES )
			{
				GetDlgItem( IDC_CORP_MODIFY_PRICEONE )->SetFocus();
				return ;
			}
		}
		m_AgentData.fPriceOne    = lPriceOne;
	}

	if (m_lChangeType == 61)
	{

		double lPriceOne = _tstof(m_strPriceOne);
		if (m_strCorpName.GetLength()<=5)
		{
			MessageBox(_T("�������µĴ���������!"), _T("����"), MB_ICONWARNING);
			GetDlgItem(IDC_CORP_OPER_OPEN_CORPNAME)->SetFocus();
			return;
		}
		_tcscpy(m_AgentData.szName, m_strCorpName);
	}

	//ҵ��ԱID
	m_AgentData.lYWYID = 0;
	if ( m_lYWY > 0 )
	{
		POSITION pos = (POSITION)m_L_YWY.GetItemData(m_lYWY);
		ANS_YWY_NameData * pData = m_pUserDlg->m_YWY.GetNext( pos );
		if (pData)
		{
			m_AgentData.lYWYID = pData->lYWYID;
		}
	}


	if ( m_tHTSend.GetStatus()==0 )
	{
		m_AgentData.lHT_Send.lYear = m_tHTSend.GetYear();
		m_AgentData.lHT_Send.lMon = m_tHTSend.GetMonth();
		m_AgentData.lHT_Send.lDay = m_tHTSend.GetDay();
		
	}
	else
	{
		memset(&m_AgentData.lHT_Send , 0 , sizeof(m_AgentData.lHT_Send) );
	}


	if ( m_tHTRecv.GetStatus()==0 )
	{
		m_AgentData.lHT_Recv.lYear = m_tHTRecv.GetYear();
		m_AgentData.lHT_Recv.lMon = m_tHTRecv.GetMonth();
		m_AgentData.lHT_Recv.lDay = m_tHTRecv.GetDay();
		
	}
	else
	{
		memset(&m_AgentData.lHT_Recv , 0 , sizeof(m_AgentData.lHT_Recv) );
	}

	m_AgentData.lAddCorpCount = m_lAddCount;
	m_tCreateTime.GetAsSystemTime(m_AgentData.tCreateTime);
	m_AgentData.lTCPer        = m_lTCPer;
	if (m_AgentData.lTCPer<0 || m_AgentData.lTCPer>100 )
		m_AgentData.lTCPer=100;
	


	CDialog::OnOK();
}