// DLG_C_YWY_Modify.cpp : implementation file
//

#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_C_YWY_Modify.h"

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

/////////////////////////////////////////////////////////////////////////////
// DLG_C_YWY_Modify dialog
#include "C_YWY.h"

DLG_C_YWY_Modify::DLG_C_YWY_Modify(CWnd* pParent /*=NULL*/)
	: CDialog(DLG_C_YWY_Modify::IDD, pParent)
{
	//{{AFX_DATA_INIT(DLG_C_YWY_Modify)
	m_tBirthday = COleDateTime::GetCurrentTime();
	m_strBZ = _T("");
	m_strFax = _T("");
	m_strEmail = _T("");
	m_strJob = _T("");
	m_strMobile = _T("");
	m_strName = _T("");
	m_strNickName = _T("");
	m_strTel = _T("");
	m_lSex = -1;
	m_strBranch = _T("");
	m_strPasswd = _T("");
	m_strLoginName = _T("");
	m_bNoLTD = FALSE;
	m_lKF = -1;
	m_lAgent = -1;
	m_lGroup = -1;
	m_bBMManager = FALSE;
	m_GZ_JBSL = 0;
	m_GZ_LSKH = 0;
	m_GZ_DHSL = 0;
	m_GZ_NEWSL = 0;
	m_GZ_CQTS = 0;
	m_GZ_CQJ = 0.0;
	m_GZ_GRSDS = 0.0;
	m_GZ_GWBT = 0.0;
	m_GZ_GWGZ = 0.0;
	m_GZ_JBRW = 0.0;
	m_GZ_M1_YWNL = 0.0;
	m_GZ_M2_YWNL = 0.0;
	m_GZ_M3_YWNL = 0.0;
	m_GZ_QQGZ = 0.0;
	m_GZ_QTBZ = 0.0;
	m_GZ_QTCF = 0.0;
	m_GZ_SB = 0.0;
	m_GZ_SFGZ = 0.0;
	m_GZ_WCBT = 0.0;
	m_GZ_ZBBT = 0.0;
	//}}AFX_DATA_INIT


	m_pYWYDlg = (CC_YWY *)pParent;
	memset( &m_YWYData , 0 , sizeof(m_YWYData));
	m_bAdd           = false;
	m_Pos            = 0;
	memset( m_szPasswd , 0 , sizeof(m_szPasswd) );
}


void DLG_C_YWY_Modify::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DLG_C_YWY_Modify)
	DDX_Control(pDX, IDC_YWY_MODIFY_AGENTID, m_E_AgentID);
	DDX_Control(pDX, IDC_YWY_MODIFY_GROUP, m_L_Group);
	DDX_Control(pDX, IDC_YWY_MODIFY_AGENT, m_L_Agent);
	DDX_Control(pDX, IDC_YWY_MODIFY_KF, m_L_KF);
	DDX_Control(pDX, IDC_YWY_MODIFY_PASSWD, m_E_Passwd);
	DDX_DateTimeCtrl(pDX, IDC_YWY_MODIFY_BIRTHDAY, m_tBirthday);
	DDX_Text(pDX, IDC_YWY_MODIFY_BZ, m_strBZ);
	DDV_MaxChars(pDX, m_strBZ, 120);
	DDX_Text(pDX, IDC_YWY_MODIFY_FAX, m_strFax);
	DDV_MaxChars(pDX, m_strFax, 30);
	DDX_Text(pDX, IDC_YWY_MODIFY_EMAIL, m_strEmail);
	DDV_MaxChars(pDX, m_strEmail, 62);
	DDX_Text(pDX, IDC_YWY_MODIFY_JOB, m_strJob);
	DDV_MaxChars(pDX, m_strJob, 30);
	DDX_Text(pDX, IDC_YWY_MODIFY_MOBILE, m_strMobile);
	DDV_MaxChars(pDX, m_strMobile, 30);
	DDX_Text(pDX, IDC_YWY_MODIFY_NAME, m_strName);
	DDV_MaxChars(pDX, m_strName, 22);
	DDX_Text(pDX, IDC_YWY_MODIFY_NAME2, m_strNickName);
	DDV_MaxChars(pDX, m_strNickName, 20);
	DDX_Text(pDX, IDC_YWY_MODIFY_TEL, m_strTel);
	DDV_MaxChars(pDX, m_strTel, 30);
	DDX_CBIndex(pDX, IDC_YWY_MODIFY_SEX, m_lSex);
	DDX_Text(pDX, IDC_YWY_MODIFY_BRANCH, m_strBranch);
	DDV_MaxChars(pDX, m_strBranch, 30);
	DDX_Text(pDX, IDC_YWY_MODIFY_PASSWD, m_strPasswd);
	DDV_MaxChars(pDX, m_strPasswd, 15);
	DDX_Text(pDX, IDC_YWY_MODIFY_LOGINNAME, m_strLoginName);
	DDV_MaxChars(pDX, m_strLoginName, 15);
	DDX_Check(pDX, IDC_YWY_MODIFY_NOLTD, m_bNoLTD);
	DDX_CBIndex(pDX, IDC_YWY_MODIFY_KF, m_lKF);
	DDX_CBIndex(pDX, IDC_YWY_MODIFY_AGENT, m_lAgent);
	DDX_CBIndex(pDX, IDC_YWY_MODIFY_GROUP, m_lGroup);
	DDX_Check(pDX, IDC_YWY_MODIFY_BMMANAGER, m_bBMManager);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_JBSL, m_GZ_JBSL);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_LSKH, m_GZ_LSKH);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_DHSL, m_GZ_DHSL);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_NEWSL, m_GZ_NEWSL);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_CQTS, m_GZ_CQTS);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_CQJ, m_GZ_CQJ);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_GRSDS, m_GZ_GRSDS);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_GWBT, m_GZ_GWBT);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_GWGZ, m_GZ_GWGZ);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_JBRW, m_GZ_JBRW);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_M1_YWNL, m_GZ_M1_YWNL);
	DDV_MinMaxDouble(pDX, m_GZ_M1_YWNL, 0., 1.);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_M2_YWNL, m_GZ_M2_YWNL);
	DDV_MinMaxDouble(pDX, m_GZ_M2_YWNL, 0., 1.);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_M3_YWNL, m_GZ_M3_YWNL);
	DDV_MinMaxDouble(pDX, m_GZ_M3_YWNL, 0., 100.);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_QQGZ, m_GZ_QQGZ);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_QTBZ, m_GZ_QTBZ);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_QTCF, m_GZ_QTCF);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_SB, m_GZ_SB);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_SFGZ, m_GZ_SFGZ);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_WCBT, m_GZ_WCBT);
	DDX_Text(pDX, IDC_YWY_MODIFY_GZ_ZBBT, m_GZ_ZBBT);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DLG_C_YWY_Modify, CDialog)
	//{{AFX_MSG_MAP(DLG_C_YWY_Modify)
	ON_BN_CLICKED(IDC_YWY_MODIFY_REPASSWD, OnYwyModifyRepasswd)
	ON_BN_CLICKED(IDC_YWY_MODIFY_QUERYAGENT2, OnYwyModifyQueryagent2)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DLG_C_YWY_Modify message handlers

BOOL DLG_C_YWY_Modify::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	m_strName     = m_YWYData.szName;
	m_strNickName = m_YWYData.szNickName;
	long lSex = 0;
	if ( CString(m_YWYData.szSex)==_T("��") )
		lSex = 1;
	if ( CString(m_YWYData.szSex)==_T("Ů") )
		lSex = 2;
	m_lSex = lSex;
	COleDateTime tTemp(m_YWYData.tBirthday);
	if ( tTemp.GetStatus() != 0 )  //��Чʱ��
	{
		m_tBirthday.SetStatus( COleDateTime::null  );
	}
	else
	{
		m_tBirthday = tTemp;
	}
	m_strBranch = m_YWYData.szBranch;
	m_strJob = m_YWYData.szJob;
	m_strTel = m_YWYData.szTel;
	m_strFax = m_YWYData.szFax;
	m_strMobile = m_YWYData.szMobile;
	m_strEmail = m_YWYData.szEmail;
	m_strBZ  = m_YWYData.szBZ;
	m_bNoLTD = m_YWYData.bNoLTD;
	m_bBMManager = m_YWYData.bBMManager;

	m_strLoginName = m_YWYData.szLoginName;
	if ( _tcslen(m_szPasswd) <= 0 )
		OnYwyModifyRepasswd();

	m_GZ_GWGZ=m_YWYData.GZ_GWGZ ;    //�����
	m_GZ_GWBT=m_YWYData.GZ_GWBT ;    //�����
	m_GZ_WCBT=m_YWYData.GZ_WCBT ;    //��Ͳ���
	m_GZ_CQJ=m_YWYData.GZ_CQJ ;     //ȫ�ڽ�
	m_GZ_M1_YWNL=m_YWYData.GZ_M1_YWNL ; //ƽ̨1ҵ�������ӷ�
	m_GZ_M2_YWNL=m_YWYData.GZ_M2_YWNL ; //ƽ̨2ҵ�������ӷ�
	m_GZ_M3_YWNL=m_YWYData.GZ_M3_YWNL ; //ƽ̨3ҵ�������ӷ�
	m_GZ_JBRW=m_YWYData.GZ_JBRW ;    //��������
	m_GZ_JBSL=m_YWYData.GZ_JBSL ;    //�����������
	m_GZ_LSKH=m_YWYData.GZ_LSKH ;    //��ʧ�ͻ�����
	m_GZ_DHSL=m_YWYData.GZ_DHSL ;    //�ӵĵ绰����
	m_GZ_NEWSL=m_YWYData.GZ_NEWSL ;   //�¿ͻ�����
	m_GZ_CQTS=m_YWYData.GZ_CQTS ;    //��������
	m_GZ_QQGZ=m_YWYData.GZ_QQGZ ;    //ȱ�ڹ��� 
	m_GZ_ZBBT=m_YWYData.GZ_ZBBT ;    //ֵ�ಹ��
	m_GZ_QTBZ=m_YWYData.GZ_QTBZ ;    //��������
	m_GZ_QTCF=m_YWYData.GZ_QTCF ;    //��������
	m_GZ_SB=m_YWYData.GZ_SB ;      //�籣
	m_GZ_GRSDS=m_YWYData.GZ_GRSDS ;   //��������˰
	m_GZ_SFGZ=m_YWYData.GZ_SFGZ ;    //ʵ������

	UpdateData(false);


	//�ͷ�
	ANS_KF_NameData * pKF;
	m_L_KF.AddString( _T("�޿ͷ�") );
	m_L_KF.SetCurSel(0);
	POSITION pos = m_pYWYDlg->m_KF.GetHeadPosition();
	POSITION pos2=0;
	while (pos)
	{
		pos2=pos;
		pKF = m_pYWYDlg->m_KF.GetNext( pos );

		CString strTemp = pKF->szKFName;
		long lItem = m_L_KF.AddString( strTemp );
		m_L_KF.SetItemData( lItem , (DWORD)pos2);
		if ( m_YWYData.lKFID == pKF->lKFID )
			m_L_KF.SetCurSel(lItem);
	}

	//����
	ANS_YWYGroup_NameData * pYWYGroup;
	m_L_Group.AddString( _T("�޲���") );
	m_L_Group.SetCurSel(0);
	pos = m_pYWYDlg->m_Group.GetHeadPosition();
	pos2=0;
	while (pos)
	{
		pos2=pos;
		pYWYGroup = m_pYWYDlg->m_Group.GetNext( pos );

		CString strTemp = pYWYGroup->szName;
		long lItem = m_L_Group.AddString( strTemp );
		m_L_Group.SetItemData( lItem , (DWORD)pos2);
		if ( m_YWYData.lGroupID == pYWYGroup->lGroupID )
			m_L_Group.SetCurSel(lItem);
	}
	
	//������
	ANS_Agent_NameData * pAgent;
	m_L_Agent.AddString( _T("�޴�����") );
	m_L_Agent.SetCurSel(0);
	pos = m_pYWYDlg->m_Agent.GetHeadPosition();
	pos2=0;
	while (pos)
	{
		pos2=pos;
		pAgent = m_pYWYDlg->m_Agent.GetNext( pos );

		CString strTemp = pAgent->szAgentName;
		long lItem = m_L_Agent.AddString( strTemp );
		m_L_Agent.SetItemData( lItem , (DWORD)pos2);
		if ( m_YWYData.lAgentID == pAgent->lAgentID )
			m_L_Agent.SetCurSel(lItem);
	}
	
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void DLG_C_YWY_Modify::OnOK() 
{
	if ( !UpdateData(true) )
		return ;
	if (m_strName.GetLength() <= 0 )
	{
		GetDlgItem(IDC_YWY_MODIFY_NAME)->SetFocus();
		MessageBox( _T("ҵ��Ա��������Ϊ�գ�����������!") , _T("����") , MB_ICONWARNING );
		return ;
	}
	if (m_strLoginName.GetLength() <= 0 )
	{
		GetDlgItem(IDC_YWY_MODIFY_LOGINNAME)->SetFocus();
		MessageBox( _T("ҵ��Ա��¼������Ϊ�գ�����������!") , _T("����") , MB_ICONWARNING );
		return ;
	}
	_tcscpy( m_YWYData.szName , m_strName );
	_tcscpy( m_YWYData.szNickName , m_strNickName );
	if ( m_lSex == 0 )
		_tcscpy( m_YWYData.szSex , _T("") );
	else
		if ( m_lSex == 1 )
			_tcscpy( m_YWYData.szSex , _T("��") );
		else
			_tcscpy( m_YWYData.szSex , _T("Ů") );
	_tcscpy( m_YWYData.szBranch , m_strBranch );
	_tcscpy( m_YWYData.szJob    , m_strJob );
	_tcscpy( m_YWYData.szTel    , m_strTel );
	_tcscpy( m_YWYData.szFax    , m_strFax );
	_tcscpy( m_YWYData.szMobile , m_strMobile );
	_tcscpy( m_YWYData.szEmail  , m_strEmail );
	_tcscpy( m_YWYData.szBZ     , m_strBZ );
	_tcscpy( m_YWYData.szLoginName , m_strLoginName );
	m_YWYData.bNoLTD = m_bNoLTD;
	m_YWYData.bBMManager = m_bBMManager;



	m_YWYData.GZ_GWGZ=m_GZ_GWGZ ;    //�����
	m_YWYData.GZ_GWBT=m_GZ_GWBT ;    //�����
	m_YWYData.GZ_WCBT=m_GZ_WCBT ;    //��Ͳ���
	m_YWYData.GZ_CQJ=m_GZ_CQJ ;     //ȫ�ڽ�
	m_YWYData.GZ_M1_YWNL=m_GZ_M1_YWNL ; //ƽ̨1ҵ�������ӷ�
	m_YWYData.GZ_M2_YWNL=m_GZ_M2_YWNL ; //ƽ̨2ҵ�������ӷ�
	m_YWYData.GZ_M3_YWNL=m_GZ_M3_YWNL ; //ƽ̨3ҵ�������ӷ�
	m_YWYData.GZ_JBRW=m_GZ_JBRW ;    //��������
	m_YWYData.GZ_JBSL=m_GZ_JBSL ;    //�����������
	m_YWYData.GZ_LSKH=m_GZ_LSKH ;    //��ʧ�ͻ�����
	m_YWYData.GZ_DHSL=m_GZ_DHSL ;    //�ӵĵ绰����
	m_YWYData.GZ_NEWSL=m_GZ_NEWSL ;   //�¿ͻ�����
	m_YWYData.GZ_CQTS=m_GZ_CQTS ;    //��������
	m_YWYData.GZ_QQGZ=m_GZ_QQGZ ;    //ȱ�ڹ��� 
	m_YWYData.GZ_ZBBT=m_GZ_ZBBT ;    //ֵ�ಹ��
	m_YWYData.GZ_QTBZ=m_GZ_QTBZ ;    //��������
	m_YWYData.GZ_QTCF=m_GZ_QTCF ;    //��������
	m_YWYData.GZ_SB=m_GZ_SB ;      //�籣
	m_YWYData.GZ_GRSDS=m_GZ_GRSDS ;   //��������˰
	m_YWYData.GZ_SFGZ=m_GZ_SFGZ ;    //ʵ������


	if ( m_tBirthday.GetStatus() == 0 )
		m_tBirthday.GetAsSystemTime( m_YWYData.tBirthday );
	else
		memset(&m_YWYData.tBirthday,0,sizeof(m_YWYData.tBirthday));

	if ( m_pYWYDlg && m_pYWYDlg->FindYWYName( m_YWYData.szName,m_Pos ) )
	{
		GetDlgItem(IDC_YWY_MODIFY_NAME)->SetFocus();
		MessageBox( _T("ҵ��Ա��������ʹ�ã��������������!") , _T("����") , MB_ICONWARNING );
		return ;
	}

	if ( m_pYWYDlg && m_pYWYDlg->FindYWYLoginName( m_YWYData.szLoginName,m_Pos ) )
	{
		GetDlgItem(IDC_YWY_MODIFY_LOGINNAME)->SetFocus();
		MessageBox( _T("ҵ��Ա��¼������ʹ�ã��������������!") , _T("����") , MB_ICONWARNING );
		return ;
	}

	if ( m_pYWYDlg->m_KF.GetCount()<1 )
	{
		MessageBox( _T("�ͷ�����������ע��!") , _T("����") , MB_ICONWARNING );
		GetDlgItem( IDC_YWY_MODIFY_KF )->SetFocus();
		return ;
	}
	//�ͷ�ID
	m_YWYData.lKFID = 0;
	if ( m_lKF > 0 )
	{
		POSITION pos = (POSITION)m_L_KF.GetItemData(m_lKF);
		ANS_KF_NameData * pData = m_pYWYDlg->m_KF.GetNext( pos );
		if (pData)
		{
			m_YWYData.lKFID = pData->lKFID;
		}
	}
	//����ID
	m_YWYData.lGroupID = 0;
	if ( m_lGroup > 0 )
	{
		POSITION pos = (POSITION)m_L_Group.GetItemData(m_lGroup);
		ANS_YWYGroup_NameData * pData = m_pYWYDlg->m_Group.GetNext( pos );
		if (pData)
		{
			m_YWYData.lGroupID = pData->lGroupID;
		}
	}
	//������ID
	m_YWYData.lAgentID = 0;
	if ( m_lAgent > 0 )
	{
		POSITION pos = (POSITION)m_L_Agent.GetItemData(m_lAgent);
		ANS_Agent_NameData * pData = m_pYWYDlg->m_Agent.GetNext( pos );
		if (pData)
		{
			m_YWYData.lAgentID = pData->lAgentID;
		}
	}

	if ( m_strPasswd.GetLength() > 0 )
		_tcscpy( m_szPasswd , m_strPasswd );
	
		char szUser[32]={0};
		char szPasswd[64]={0};
		char szPasswd2[64]={0};
#ifdef _UNICODE
		strcpy(szUser , CW2A(m_YWYData.szLoginName) );
		strcpy(szPasswd , CW2A(m_szPasswd));
#else
		strcpy(szUser , m_YWYData.szLoginName );
		strcpy(szPasswd , m_szPasswd);
#endif
		CDes des;
		long lOut=sizeof(szPasswd2);
		des.Encrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lOut , szUser , 8 );
#ifdef _UNICODE
		_tcscpy(m_YWYData.szPasswd , CA2W(szPasswd2));
#else
		strcpy(m_YWYData.szPasswd , szPasswd2);
#endif

		

	CDialog::OnOK();
}

void DLG_C_YWY_Modify::SetParam(ANS_GetYWYData data, POSITION pos, BOOL bAdd)
{
	m_YWYData = data;
	m_bAdd           = bAdd;
	m_Pos            = pos;

		char szUser[32]={0};
		char szPasswd[64]={0};
		char szPasswd2[64]={0};
#ifdef _UNICODE
		strcpy(szUser , CW2A(data.szLoginName) );
		strcpy(szPasswd , CW2A(data.szPasswd));
#else
		strcpy(szUser , data.szLoginName );
		strcpy(szPasswd , data.szPasswd);
#endif
		CDes des;
		long lOut=sizeof(szPasswd2);
		des.Decrypt( szPasswd , strlen(szPasswd) , szPasswd2 , lOut , szUser , 8 );
#ifdef _UNICODE
		_tcscpy(m_szPasswd , CA2W(szPasswd2));
#else
		strcpy(m_szPasswd , szPasswd2);
#endif

}

ANS_GetYWYData DLG_C_YWY_Modify::GetParam()
{
	return m_YWYData;
}

void DLG_C_YWY_Modify::OnYwyModifyRepasswd() 
{
//	m_bSetPasswd = true;
	srand(::GetTickCount());
	CString strTemp;
	strTemp.Format( _T("%03d%03d") , rand(),rand());
	strTemp.SetAt( 6 , 0 );
//strTemp = _T("123456");
	m_strPasswd = strTemp;
	m_E_Passwd.SetWindowText(strTemp);	
}

void DLG_C_YWY_Modify::OnYwyModifyQueryagent2() 
{
	CString strTemp;
	CString strFind;
	m_E_AgentID.GetWindowText(strFind);
	if ( strFind.GetLength()<=0 )
		return ;
	long lSel   = m_L_Agent.GetCurSel();
	long lCount = m_L_Agent.GetCount();
	for ( int i=lSel+1 ; i<lCount ; i++ )
	{
		m_L_Agent.GetLBText(i,strTemp);
		if ( strTemp.Find(strFind)>=0 )
		{
			m_L_Agent.SetCurSel(i);
			return ;
		}
	}
	for ( i=0 ; i<lSel ; i++ )
	{
		m_L_Agent.GetLBText(i,strTemp);
		if ( strTemp.Find(strFind)>=0 )
		{
			m_L_Agent.SetCurSel(i);
			return ;
		}
	}	
}