// DLG_TDSet_Modify.cpp : implementation file
//

#include "stdafx.h"
#include "corpsms.h"
#include "DLG_TDSet_Modify.h"

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

/////////////////////////////////////////////////////////////////////////////
// DLG_TDSet_Modify dialog

#include "FTDSet.h"
DLG_TDSet_Modify::DLG_TDSet_Modify(CWnd* pParent /*=NULL*/)
	: CDialog(DLG_TDSet_Modify::IDD, pParent)
{
	//{{AFX_DATA_INIT(DLG_TDSet_Modify)
	m_bEnable = FALSE;
	m_strBZ = _T("");
	m_strMobile = _T("");
	//}}AFX_DATA_INIT

	m_pCliTDData = NULL;
	memset(&m_CliTD,0,sizeof(m_CliTD));
	memset(&m_TDSet,0,sizeof(m_TDSet));

	m_pTDSet = (CFTDSet *)pParent;
	m_lModifyCount = 0;
}


void DLG_TDSet_Modify::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DLG_TDSet_Modify)
	DDX_Control(pDX, IDD_CHANGETD_UNICOM, m_wndUnicom);
	DDX_Control(pDX, IDD_CHANGETD_TELCOM, m_wndTelcom);
	DDX_Control(pDX, IDD_CHANGETD_PHS, m_wndPhs);
	DDX_Control(pDX, IDD_CHANGETD_CMCC, m_wndCmcc);
	DDX_Control(pDX, IDD_CHANGETD_CW, m_B_CW);
	DDX_Check(pDX, IDC_TDSET_MODIFY_ENABLE, m_bEnable);
	DDX_Text(pDX, TDSET_MODIFY_BZ, m_strBZ);
	DDV_MaxChars(pDX, m_strBZ, 120);
	DDX_Text(pDX, TDSET_MODIFY_MOBILE, m_strMobile);
	DDV_MaxChars(pDX, m_strMobile, 12);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DLG_TDSet_Modify, CDialog)
	//{{AFX_MSG_MAP(DLG_TDSet_Modify)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DLG_TDSet_Modify message handlers

void DLG_TDSet_Modify::SetParam(ANS_CliSmsTD CliTD,BYTE * pCliTDData , ANS_TDSet_Data TDSet , long lModifyCount)
{
	m_CliTD = CliTD;
	m_pCliTDData = pCliTDData;
	m_TDSet = TDSet;
	m_lModifyCount = lModifyCount;
}

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

	m_bEnable   = m_TDSet.lStatus;
	m_strMobile = m_TDSet.szMobile;
	m_strBZ     = m_TDSet.szBZ;
	
	UpdateData(false);

	m_B_CW.SetCheck(m_CliTD.bCW);
	if ( !m_CliTD.bCliTD_CW )
		m_B_CW.ShowWindow(SW_HIDE);


	SC_CliTD     * pRetTD_Cmcc   = (SC_CliTD    *)((BYTE*)m_pCliTDData);
	SC_CliTD     * pRetTD_Unicom = (SC_CliTD    *)((BYTE*)m_pCliTDData+sizeof(SC_CliTD)*(m_CliTD.lCliTD_Cmcc));
	SC_CliTD     * pRetTD_Phs    = (SC_CliTD    *)((BYTE*)m_pCliTDData+sizeof(SC_CliTD)*(m_CliTD.lCliTD_Cmcc+m_CliTD.lCliTD_Unicom));
	SC_CliTD     * pRetTD_Telcom = (SC_CliTD    *)((BYTE*)m_pCliTDData+sizeof(SC_CliTD)*(m_CliTD.lCliTD_Cmcc+m_CliTD.lCliTD_Unicom+m_CliTD.lCliTD_Phs));

	//���ƶ�����
	int j=0;
	int iSel=0;
	int iItem = m_wndCmcc.AddString(_T("Ĭ��"));
	m_wndCmcc.SetItemData(iItem,(DWORD_PTR)'0');
	for ( int i=0 ; i<m_CliTD.lCliTD_Cmcc ; i++ )
	{
		//int iItem = m_wndCmcc.AddString(pRetTD_Cmcc[i].szTDName);
		CString str = pRetTD_Cmcc[i].szTDName;
		int iItem = m_wndCmcc.AddString(str);
		m_wndCmcc.SetItemData(iItem,(DWORD_PTR)pRetTD_Cmcc[i].cSrcTD);
		if ( pRetTD_Cmcc[i].cSrcTD == m_TDSet.szTD[0] )
			iSel = i+1;
	}
	m_wndCmcc.SetCurSel(iSel);
	//����ͨ����
	j=0;
	iSel=0;
	iItem = m_wndUnicom.AddString(_T("Ĭ��"));
	m_wndUnicom.SetItemData(iItem,(DWORD_PTR)'0');
	for ( i=0 ; i<m_CliTD.lCliTD_Unicom ; i++ )
	{
		CString str = pRetTD_Unicom[i].szTDName;
		int iItem=m_wndUnicom.AddString(str);
		m_wndUnicom.SetItemData(iItem,(DWORD_PTR)pRetTD_Unicom[i].cSrcTD);
		if ( pRetTD_Unicom[i].cSrcTD == m_TDSet.szTD[1] )
			iSel = i+1;
	}
	m_wndUnicom.SetCurSel(iSel);
	//��С��ͨ����
	j=0;
	iSel=0;
	iItem = m_wndPhs.AddString(_T("Ĭ��"));
	m_wndPhs.SetItemData(iItem,(DWORD_PTR)'0');
	for ( i=0 ; i<m_CliTD.lCliTD_Phs ; i++ )
	{
		CString str = pRetTD_Phs[i].szTDName;
		int iItem = m_wndPhs.AddString(str);
		m_wndPhs.SetItemData(iItem,(DWORD_PTR)pRetTD_Phs[i].cSrcTD);
		if ( pRetTD_Phs[i].cSrcTD == m_TDSet.szTD[2] )
			iSel = i+1;
	}
	m_wndPhs.SetCurSel(iSel);

	//���������
	j=0;
	iSel=0;
	iItem = m_wndTelcom.AddString(_T("Ĭ��"));
	m_wndTelcom.SetItemData(iItem,(DWORD_PTR)'0');
	for ( i=0 ; i<m_CliTD.lCliTD_Telcom ; i++ )
	{
		CString str = pRetTD_Telcom[i].szTDName;
		int iItem = m_wndTelcom.AddString(str);
		m_wndTelcom.SetItemData(iItem,(DWORD_PTR)pRetTD_Telcom[i].cSrcTD);
		if ( pRetTD_Telcom[i].cSrcTD == m_TDSet.szTD[3] )
			iSel = i+1;
	}
	m_wndTelcom.SetCurSel(iSel);	

	if ( m_lModifyCount>1 )
	{
		GetDlgItem(TDSET_MODIFY_MOBILE)->ShowWindow(SW_HIDE);
		GetDlgItem(TDSET_MODIFY_MOBILE_S)->ShowWindow(SW_HIDE);
		GetDlgItem(TDSET_MODIFY_BZ)->ShowWindow(SW_HIDE);
		GetDlgItem(TDSET_MODIFY_BZ_S)->ShowWindow(SW_HIDE);
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

ANS_TDSet_Data DLG_TDSet_Modify::GetParam()
{
	return m_TDSet;
}

void DLG_TDSet_Modify::OnOK() 
{
	if ( !UpdateData(true) )
		return ;

	TCHAR szMobile[32]={0};
	_tcscpy(szMobile , m_strMobile );
	ExMobileGZM(szMobile);  //ȥ��������
	if (m_lModifyCount<=1 &&  !isMobileNum( szMobile ) )  //�����ֻ����룬�������ӻ��޸�
	{
		MessageBox(_T("�ֻ����������������飡") , _T("����") , MB_ICONWARNING );
		GetDlgItem(TDSET_MODIFY_MOBILE)->SetFocus();
		return ;
	}
	if (m_lModifyCount<=1 && m_pTDSet &&  CString(m_TDSet.szMobile) != CString(szMobile))
	{
		if ( m_pTDSet->MobileInList(szMobile) )
		{
			MessageBox(_T("��������ֻ������Ѵ��ڣ����飡") , _T("����") , MB_ICONWARNING );
			GetDlgItem(TDSET_MODIFY_MOBILE)->SetFocus();
			return ;
		}
	}
	if ( m_lModifyCount>1 )
	{
		CString str;
		str.Format( _T("����Ϊ����������ȷ���󽫻����%d�������ͨ���󶨣�") , m_lModifyCount );
		int iRet = MessageBox(str , _T("����") , MB_ICONWARNING|MB_YESNO );
		if ( iRet != IDYES )
			return ;
	}
	m_TDSet.lStatus   = m_bEnable;
	_tcscpy(m_TDSet.szMobile , szMobile);
	_tcscpy(m_TDSet.szBZ     , m_strBZ);

	_tcscpy(m_TDSet.szTD , _T("0000"));
	_tcscpy(m_TDSet.szOutAll , _T("0000"));

	if ( m_CliTD.bCliTD_CW )
		m_TDSet.szOutAll[0]='1'+m_B_CW.GetCheck();

	if ( m_wndCmcc.GetCurSel()>=0 )
	{
		m_TDSet.szTD[0] = (TCHAR)m_wndCmcc.GetItemData(m_wndCmcc.GetCurSel());
	}

	if ( m_wndUnicom.GetCurSel()>=0 )
	{
		m_TDSet.szTD[1] = (TCHAR)m_wndUnicom.GetItemData(m_wndUnicom.GetCurSel());
	}

	if ( m_wndPhs.GetCurSel()>=0 )
	{
		m_TDSet.szTD[2] = (TCHAR)m_wndPhs.GetItemData(m_wndPhs.GetCurSel());
	}

	if ( m_wndTelcom.GetCurSel()>=0 )
	{
		m_TDSet.szTD[3] = (TCHAR)m_wndTelcom.GetItemData(m_wndTelcom.GetCurSel());
	}
	
	CDialog::OnOK();
}