// K_Agent.cpp : implementation file
//

#include "stdafx.h"
#include "smsmanager.h"
#include "K_Agent.h"

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

/////////////////////////////////////////////////////////////////////////////
// CK_Agent dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_Agent_Modify.h"
#include "DLG_Agent_Pay.h"
#include "DLG_Agent_MmsPay.h"
#include "DLG_Corp_BZ.h"
#include "DLG_Corp_Oper_Open.h"
#include "DLG_Corp_Oper.h"
#include "DLG_Corp_Open_ChangeA.h"
#include "DLG_Corp_LXR.h"
#include "DLG_Corp_FP.h"
#include "DLG_Corp_SF.h"
#include "DLG_Corp_Extension.h"
#include "DLG_Corp_ExpiryRecycling.h"

CK_Agent::CK_Agent(CWnd* pParent /*=NULL*/)
	: CDialog(CK_Agent::IDD, pParent)
{
	//{{AFX_DATA_INIT(CK_Agent)
		// NOTE: the ClassWizard will add member initialization here
	//}}AFX_DATA_INIT
	m_bInit = false;
	m_bRefresh = false;

	m_pDlgFile = false;
	m_pLXRDlg = NULL;
	m_pFPDlg = NULL;
	m_pSFDlg = NULL;

	m_bModify = false;
	m_pAnalyseDlg = NULL;
	m_pTransferDlg = NULL;
	m_lQueryType2 = 0; //������ѯ
}


void CK_Agent::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CK_Agent)
	DDX_Control(pDX, IDC_AGENT_YWYID, m_E_YWYID);
	DDX_Control(pDX, IDC_AGENT_YWY, m_L_YWY);
	DDX_Control(pDX, IDC_AGENT_AGENTID, m_E_AgentID);
	DDX_Control(pDX, IDC_AGENT_S1, m_S_S1);
	DDX_Control(pDX, IDC_AGENT_LIST, m_wndList);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CK_Agent, CDialog)
	//{{AFX_MSG_MAP(CK_Agent)
	ON_WM_SIZE()
	ON_NOTIFY(NM_DBLCLK, IDC_AGENT_LIST, OnDblclkAgentList)
	ON_NOTIFY(NM_RCLICK, IDC_AGENT_LIST, OnRclickAgentList)
	ON_NOTIFY(LVN_KEYDOWN, IDC_AGENT_LIST, OnKeydownAgentList)
	ON_BN_CLICKED(IDC_AGENT_QUERY, OnAgentQuery)
	ON_BN_CLICKED(IDC_AGENT_QUERY2, OnAgentQuery2)
	ON_CBN_SELCHANGE(IDC_AGENT_YWY, OnSelchangeAgentYwy)
	//}}AFX_MSG_MAP
	ON_COMMAND( MENU_AGENT_ADD    , On_Agent_Add )
	ON_COMMAND( MENU_AGENT_MODIFY , On_Agent_Modify )
	ON_COMMAND( MENU_AGENT_DEL    , On_Agent_Del )
	ON_COMMAND( MENU_AGENT_JF     , On_Agent_Pay )
	ON_COMMAND( MENU_AGENT_MMSPAY , On_Agent_MmsPay )
	ON_COMMAND( MENU_AGENT_REFRESH, On_Agent_Refresh )
	ON_COMMAND( MENU_AGENT_BZ_MAN , On_Agent_BZ_Man )
	ON_COMMAND( MENU_AGENT_BZ_YWY , On_Agent_BZ_YWY )
	ON_COMMAND( MENU_AGENT_HS     , On_Agent_HS )
	ON_COMMAND( MENU_AGENT_PAYTOUSER , On_Agent_PayToUser )
	ON_COMMAND( MENU_AGENT_FILE   , On_Agent_File )
	ON_COMMAND( MENU_AGENT_LXR    , On_Agent_LXR )
	ON_COMMAND( MENU_AGENT_FP     , On_Agent_FP )
	ON_COMMAND(MENU_AGENT_SF      , On_Agent_SF)
	ON_COMMAND(MENU_AGENT_ANALYSE, On_Agent_Analyse)
	ON_COMMAND(MENU_AGENT_QUERYBAKAGENT, On_Agent_QueryBackAgent)

	ON_COMMAND( MENU_AGENT_OPER_OPEN     , On_User_Oper_Open )
	ON_COMMAND( MENU_AGENT_OPER_CLOSE    , On_User_Oper_Close )
	ON_COMMAND( MENU_AGENT_OPER_YWY      , On_User_Oper_YWY )
	ON_COMMAND( MENU_AGENT_OPER_ADDCOUNT , On_User_Oper_AddCount )
	ON_COMMAND( MENU_AGENT_OPER          , On_User_Oper )
	ON_COMMAND( MENU_AGENT_OPER_HTSEND   , On_User_Oper_HTSend )
	ON_COMMAND( MENU_AGENT_OPER_HTRECV   , On_User_Oper_HTRecv )
	ON_COMMAND( MENU_AGENT_OPER_REGTIME  , On_User_Oper_RegTime )
	ON_COMMAND( MENU_AGENT_OPER_PRICEONE , On_User_Oper_PriceOne )
	ON_COMMAND( MENU_AGENT_OPER_MMSPRICEONE , On_User_Oper_MmsPriceOne )
	ON_COMMAND( MENU_AGENT_OPER_TCPER    , On_User_Oper_TCPer )
	ON_COMMAND( MENU_AGENT_OPER_CLOSECLI , On_User_Oper_CloseCLI)
	ON_COMMAND(MENU_AGENT_OPER_AGENTNAME, On_User_Oper_AgentName)
	ON_COMMAND(MENU_AGENT_OPER_RESETPASSWD, On_User_Oper_ResetPasswd)
	

	ON_COMMAND(MENU_AGENT_ASSIST_EXTENSION, On_User_Assist_Extension)
	ON_COMMAND(MENU_AGENT_ASSIST_SMSTRANSFER, On_User_Assist_SmsTransfer)
	ON_COMMAND(MENU_AGENT_ASSIST_MMSTRANSFER, On_User_Assist_MmsTransfer)
	ON_COMMAND(MENU_AGENT_ASSIST_SMSMMSTRANSFER, On_User_Assist_SmsMmsTransfer)
	ON_COMMAND(MENU_AGENT_ASSIST_EXPIRYRECYCLING, On_User_Assist_ExpiryRecycling)

END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CK_Agent message handlers

BOOL CK_Agent::RefreshInfo()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return false;
	}
	//m_pMainFrame->SendFrame(SMSFUNC_AGENT_SEE,NULL,0);

	m_pMainFrame->SendFrame(SMSFUNC_YWY_NAME,NULL,0);   //ȡ������Ϣ

	return true;
}

void CK_Agent::Close()
{
	Close_Agent();
	Close_YWY();
}

BOOL CK_Agent::ReHide()
{
	ShowWindow( SW_HIDE );
	return true;
}

BOOL CK_Agent::ReShow(BOOL bRefresh)
{
	ShowWindow( SW_SHOW );
	if ( bRefresh || !m_bRefresh )
	{
		RefreshInfo();
	}
	return true;
}

BOOL CK_Agent::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	//ȡ�ù��ò���
	//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
	this->GetParent()->GetParentFrame();
	m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
	m_pSocket    = &m_pMainFrame->m_Socket;

	//��ʼ��List
	m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_AGENT) );
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_AGENT_DISABLE) );
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_LOCK) );
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CORP2));
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CORP3));

	m_wndList.SubClassWindow2();
	//m_wndList.SetHeadings(_T("���,50;    ����������,180; ��¼��,100;   ID,60;�������,90; ���ö�,90; ����,100;����ʱ��,90;ҵ��Ա,60;"));
#ifdef SMSMANAGER_KF
	m_wndList.SetHeadings(_T("���,50;    ����������,180; ��¼��,100;   ID,60;�������,90;�������,90;����ʱ��,90;ҵ��Ա,90;   ��ʾ,150;"));
#else
	m_wndList.SetHeadings(_T("���,50;    ����������,180; ��¼��,100;   ID,60;���ŵ���,70;�������,90;��������,100;���ų�ֵ,100;���ŵ���,70;�������,90;��������,100;���ų�ֵ,100;�ʺ�����,90;����¼,90;����ʱ��,90;����ʱ��,90;ҵ��Ա,90;��ͬ�ij�,90;��ͬ����,90;   ��ʾ,150;"));
#endif
	m_wndList.SetGridLines(true);
	m_wndList.SetImageList(&m_Image,LVSIL_SMALL);

	m_bInit = true;	

#ifdef SMSMANAGER_KF
	GetDlgItem(IDC_AGENT_YWY_S1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_AGENT_YWY)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_AGENT_YWYID)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_AGENT_QUERY2)->ShowWindow(SW_HIDE);
#endif

#if defined(SMSCENTER_NX) || defined(SMSCENTER_GDDX) || defined(SMSCENTER_GDYD_ADC)
	GetDlgItem(IDC_AGENT_YWY_S1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_AGENT_YWY)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_AGENT_YWYID)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_AGENT_QUERY2)->ShowWindow(SW_HIDE);
#endif
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CK_Agent::OnSize(UINT nType, int cx, int cy) 
{
	CDialog::OnSize(nType, cx, cy);
	
	if ( m_bInit )
	{
		CRect rect;
		m_S_S1.GetWindowRect(&rect);

		m_wndList.MoveWindow( 0 , 0+rect.Height()+5 , cx,cy-rect.Height()-5);
	}
}

BOOL CK_Agent::ProcessSocket(Socket_Head *pHead)
{
	CString strTemp,str;
	//ȡ������Ϣ
	if (pHead->lFuncType == SMSFUNC_AGENT_SEE||
		pHead->lFuncType == SMSFUNC_AGENT_SEE3)
	{
		m_bRefresh = true;  //�Ѿ�ˢ�¹�
		m_wndList.ShowWindow(SW_HIDE);   //�ӿ���ʾ�ٶ�
		ANS_Agent_See     * pSee = (ANS_Agent_See *)pHead->pFrame;
		ANS_Agent_SeeData * pData = (ANS_Agent_SeeData *)(pHead->pFrame+sizeof(ANS_Agent_See));

		if (pSee->lCount == -1)
		{
			MessageBox(_T("Ȩ�޲�����ѳ��������ѯ������"), _T("����"), MB_ICONWARNING);
			return true;
		}

#ifdef SMSMANAGER_KF
		if (pSee->lCount >= 3)
		{
			CString str;
			str.Format(_T("��ѯ���صļ�¼�����ֻ࣬����ǰ%d����¼��\r\n����ʹ�ø���ȷ�Ĺؼ��ֲ�ѯ��"), pSee->lCount);
			MessageBox(str, _T("��ʾ"), MB_ICONINFORMATION);
		}
#endif

		m_wndList.DeleteAllItems(); //ɾ��ԭ�е�����
		this->Close_Agent();              //�ر�ԭ����
		for ( int i=0;i<pSee->lCount;i++ )
		{
			ANS_Agent_SeeData * pNewData = new ANS_Agent_SeeData;
			*pNewData = *pData;
			POSITION pos = m_Agent.AddTail(pNewData);

			ReShowUser();

			pData ++;
		}
		m_wndList.ShowWindow(SW_SHOW);   //�ӿ���ʾ�ٶ�
		return true;
	}
	//ȡҵ��Ա����
	if (pHead->lFuncType == SMSFUNC_YWY_NAME)
	{
		ANS_YWY_Name     * pYWY = (ANS_YWY_Name *)pHead->pFrame;
		ANS_YWY_NameData * pData = (ANS_YWY_NameData *)(pHead->pFrame+sizeof(ANS_YWY_Name));
		m_L_YWY.ResetContent();  //ɾ��ԭ���е���ҵ
		this->Close_YWY();              //�ر�ԭ����
		long lItem;
		CString strTemp;
		lItem = m_L_YWY.AddString( _T("����ҵ��Ա") );
		m_L_YWY.SetItemData( lItem , (DWORD_PTR)-10);
		for ( int i=0;i<pYWY->lCount;i++ )
		{
			ANS_YWY_NameData * pNewData = new ANS_YWY_NameData;
			*pNewData = *pData;
			m_YWY.AddTail(pNewData);

			strTemp.Format( _T("%d-%s"),pNewData->lYWYID,pNewData->szYWYName);
			lItem = m_L_YWY.AddString( strTemp );
			//m_L_Agent.SetItemData( lItem , (DWORD_PTR)pos);
			m_L_YWY.SetItemData( lItem , (DWORD_PTR)pNewData->lYWYID);
			pData ++;
		}
		m_L_YWY.SetCurSel(0);
		return true;
	}
	//���ӹ��˴���
	if (pHead->lFuncType == SMSFUNC_AGENT_ADD)
	{
		ANS_Agent_Add * pAdd = (ANS_Agent_Add *)pHead->pFrame;
		ANS_Agent_SeeData * pData = (ANS_Agent_SeeData *)(pHead->pFrame+sizeof(ANS_Agent_Add));

		if (pAdd->lCount == -14)
		{
			MessageBox(_T("�����´����̲������󣺴��������Ѵ��ڣ�"), _T("����"), MB_ICONWARNING);
		}

		if ( pAdd->lCount == 1 )  //����1ʱ��ʾ�޸ijɹ�
		{
			long lCount = m_wndList.GetItemCount();
			//�����µ�����
			TCHAR Buf[32];
			_stprintf( Buf, _T("%d") , lCount +1 );
			m_wndList.InsertItem( lCount , Buf , pData->lStatus );
			long lTemp=1;
			m_wndList.SetItemText(lCount,lTemp++,pData->szName);
			m_wndList.SetItemText(lCount,lTemp++,pData->szLoginName);
			strTemp.Format( _T("%d") , pData->lAgentID );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);

			strTemp.Format( _T("%5.2f"),pData->fPriceOne );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%10d"),long(pData->fUsed*10.0f) );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%10d"),long(pData->fTotal*10.0f) );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%.2f"),pData->fJFTotal );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);

			strTemp.Format( _T("%5.2f"),pData->fMmsPriceOne );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%10d"),pData->lMmsUsed );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%10d"),pData->lMmsTotal );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%.2f"),pData->fMmsJFTotal );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);

			strTemp.Format( _T("   %d/%d"),pData->lAddedCorp,pData->lAddCorpCount );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%04d.%02d.%02d") , pData->tLoginTime.wYear,pData->tLoginTime.wMonth,pData->tLoginTime.wDay);
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%04d.%02d.%02d") , pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay);
			m_wndList.SetItemText(lCount,lTemp++,strTemp);
			strTemp.Format( _T("%6d"),pData->lYWYID );
			m_wndList.SetItemText(lCount,lTemp++,strTemp);


			ANS_Agent_SeeData * pData2 = new ANS_Agent_SeeData;
			*pData2 = *pData;
			POSITION pos = m_Agent.AddTail( pData2 );
			m_wndList.SetItemData( lCount, (DWORD_PTR)pos );

			//������ص��û�ID����������ˢ��
			if ( pData->lAgentID <= 0 )
			{
				RefreshInfo();
			}
		}
		return true;
	}
	//�޸Ĺ�����Ϣ
	if (pHead->lFuncType == SMSFUNC_AGENT_MODIFY)
	{
		ANS_Agent_Modify * pModify = (ANS_Agent_Modify *)pHead->pFrame;
		ANS_Agent_SeeData * pData = (ANS_Agent_SeeData *)(pHead->pFrame+sizeof(ANS_Agent_Modify));
		SetLockItem( pModify->lItem , false );  //����

		if (pModify->lCount == -14)
		{
			MessageBox(_T("�޸Ĵ����̲������󣺴��������Ѵ��ڣ�"), _T("����"), MB_ICONWARNING);
		}
		if ( pModify->lCount == 1 )  //����1ʱ��ʾ�޸ijɹ�
		{
			POSITION pos = (POSITION)m_wndList.GetItemData(pModify->lItem);
			ANS_Agent_SeeData * pData2 = m_Agent.GetNext( pos );
			if ( pData2 )
			{
				*pData2 = *pData;    //ȡ���µ�����
				//�����µ�����
				TCHAR Buf[32]={0};
				int i = pModify->lItem;
				long lTemp = 1;
				m_wndList.SetItemText(i,lTemp++,pData->szName);
				m_wndList.SetItemText(i,lTemp++,pData->szLoginName);
				m_wndList.SetIconIndex(i,pData->lStatus );

				lTemp++; //������ID

				strTemp.Format( _T("%5.2f"),pData->fPriceOne );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%10d"),long(pData->fUsed*10.0f) );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%10d"),long(pData->fTotal*10.0f) );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%.2f"),pData->fJFTotal );
				m_wndList.SetItemText(i,lTemp++,strTemp);

				strTemp.Format( _T("%5.2f"),pData->fMmsPriceOne );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%10d"),pData->lMmsUsed );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%10d"),pData->lMmsTotal );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%.2f"),pData->fMmsJFTotal );
				m_wndList.SetItemText(i,lTemp++,strTemp);


				strTemp.Format( _T("   %d/%d"),pData->lAddedCorp,pData->lAddCorpCount );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%04d.%02d.%02d") , pData->tLoginTime.wYear,pData->tLoginTime.wMonth,pData->tLoginTime.wDay);
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%04d.%02d.%02d") , pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay);
				m_wndList.SetItemText(i,lTemp++,strTemp);
				//strTemp.Format( _T("%6d"),pData->lYWYID );
				//m_wndList.SetItemText(i,lTemp++,strTemp);

			}
		}
		return true;
	}
	//ɾ�����˴���
	if (pHead->lFuncType == SMSFUNC_AGENT_DEL)
	{
		ANS_Agent_Del     * pDel     = (ANS_Agent_Del     *)pHead->pFrame;
		ANS_Agent_DelData * pDelData = (ANS_Agent_DelData *)(pHead->pFrame+sizeof(ANS_Agent_Del));
		POSITION pos,pos2;
		ANS_Agent_SeeData  * pSPData;
		for ( int i = pDel->lCount-1 ; i>=0 ; i-- )
		{
			if ( pDelData[i].lAgentID )  //ɾ���ɹ�
			{
				pos = (POSITION)m_wndList.GetItemData( pDelData[i].lItem );
				pos2 = pos;
				pSPData = m_Agent.GetNext( pos );
				if ( pSPData->lAgentID == pDelData[i].lAgentID )  //ID��ͬ�IJſ�ɾ��
				{
					delete pSPData;       //��ɾ������
					m_Agent.RemoveAt(pos2);   //���б���ɾ��
					m_wndList.DeleteItem(pDelData[i].lItem); //��ListCtrl��ɾ��
				}
			}
		}
		return true;
	}
	//�鿴֧����¼
	if (pHead->lFuncType == SMSFUNC_AGENT_PAY)
	{
		ANS_Agent_Pay     * pPay = (ANS_Agent_Pay     *)pHead->pFrame;
		ANS_Agent_PayData * pData= (ANS_Agent_PayData *)(pHead->pFrame+sizeof(ANS_Agent_Pay));
		ANS_Corp_MemberData * pMemberData= (ANS_Corp_MemberData *)(pHead->pFrame+sizeof(ANS_Agent_Pay)+sizeof(ANS_Agent_PayData)*pPay->lCount);
		if ( pPay->lCount < 0 )   //Ȩ�޲��㣬���ش���
			return true;
#ifndef SMSCENTER_NX
		if ( pHead->lFrameLen == sizeof(ANS_Agent_Pay)+sizeof(ANS_Agent_PayData)*pPay->lCount+sizeof(ANS_Corp_MemberData)*pPay->lMemberCount+sizeof(ANS_Agent_Exp) ) //����չͷ��
		{
			ANS_Agent_Exp        * pExp       = (ANS_Agent_Exp *)(pHead->pFrame+sizeof(ANS_Agent_Pay)+sizeof(ANS_Agent_PayData)*pPay->lCount+sizeof(ANS_Corp_MemberData)*pPay->lMemberCount);
			if ( pExp->lExpID == CORP_AGENT_EXP_ID&& !pExp->bOK)
			{
				str.Format(_T("%sȱ�������ϣ����鲹ȫ���ٳ�ֵ���Ƿ������\r\n%s") , pPay->szAgentName,pExp->szNoData);
				int iRet=MessageBox(str,_T("��ʾ") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
				if ( iRet != IDYES )
				{
					return true;
				}
			}
		}
#endif
		//ȡ�û�����
		POSITION pos = (POSITION)m_wndList.GetItemData(pPay->lItem);
		ANS_Agent_SeeData * pDataC = m_Agent.GetNext( pos );
		if ( !pDataC )
			return true;

		DLG_Agent_Pay dlg(this);
		dlg.SetParam( *pPay , pData , pMemberData, *pDataC );
		dlg.m_bSOS = this->m_pMainFrame->m_bSOS;
		dlg.m_pMainFrame = this->m_pMainFrame;
		if ( dlg.DoModal() == IDOK && dlg.m_lModifyCount>0 )
		{
			long lSize = sizeof(REQ_Agent_PayModify) + sizeof(ANS_Agent_PayData)*dlg.m_lModifyCount;
			BYTE * pDataSend = new BYTE[lSize];memset( pDataSend , 0 , lSize );
			REQ_Agent_PayModify * pModifySend = (REQ_Agent_PayModify*)pDataSend;
			ANS_Agent_PayData   * pPaySend    = (ANS_Agent_PayData  *)(pDataSend+sizeof(REQ_Agent_PayModify));
			pModifySend->lAgentID = pPay->lAgentID;
			pModifySend->lItem   = pPay->lItem;
			pModifySend->fTotal  = dlg.m_PayReq.fTotal;       //ȡ���޸ĺ���ܶ�
			pModifySend->fUsed= dlg.m_PayReq.fUsed;
//			pModifySend->fJFTotal= dlg.m_PayReq.fJFTotal;
			pModifySend->lCount  = dlg.m_lModifyCount;
			//������������
			ANS_Agent_PayData * pPayTemp;
			while (!dlg.m_Pay.IsEmpty())
			{
				pPayTemp = dlg.m_Pay.GetHead();
				dlg.m_Pay.RemoveHead();
				if (pPayTemp->ucStatus != 0 )  //��Ϊ0,��Ҫ�޸�
				{
					*pPaySend = *pPayTemp;
					if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY,false) )  //���Dz��񣬲�����Ӧ��ʱ��
					{
						memset(&pPaySend->tYSTime,0,sizeof(pPaySend->tYSTime));
					}
					pPaySend ++;
				}
				delete pPayTemp;
			}
			m_pMainFrame->SendFrame( SMSFUNC_AGENT_PAYMODIFY , pDataSend , lSize );
		}
		else
		{
			//������������
			ANS_Agent_PayData * pPayTemp;
			while (!dlg.m_Pay.IsEmpty())
			{
				pPayTemp = dlg.m_Pay.GetHead();
				dlg.m_Pay.RemoveHead();
				delete pPayTemp;
			}
		}

		return true;
	}
	//��ֵ��¼�޸�
	if (pHead->lFuncType == SMSFUNC_AGENT_PAYMODIFY)
	{
		ANS_Agent_PayModify* pModify = (ANS_Agent_PayModify*)pHead->pFrame;
		ANS_Agent_PayData  * pData   = (ANS_Agent_PayData  *)(pHead->pFrame+sizeof(ANS_Agent_PayModify));

		if ( pModify->lCount ==  -12 )
		{
			MessageBox( _T("���Ӷ���ʧ�ܣ�����������㣡") , _T("����") , MB_ICONWARNING );
			return true; 
		}
		if ( pModify->lCount<0 )
		{
			MessageBox( _T("���Ӷ���ʧ�ܣ�δ֪ԭ��") , _T("����") , MB_ICONWARNING );
			return true; 
		}

		if ( pModify->lItem >= 0 )
		{
			POSITION pos = (POSITION)m_wndList.GetItemData(pModify->lItem);
			ANS_Agent_SeeData * pData2 = m_Agent.GetNext( pos );
			if ( pData2 )
			{
				pData2->fTotal = pModify->fTotal;
				pData2->fUsed = pModify->fUsed;
//				pData2->fJFTotal = pModify->fJFTotal;

				strTemp.Format( _T("%10d"),(long)(pData2->fUsed*10.0f) );
				m_wndList.SetItemText(pModify->lItem,5,strTemp);

				strTemp.Format( _T("%10d"),(long)(pData2->fTotal*10.0f) );
				m_wndList.SetItemText(pModify->lItem,6,strTemp);

				//strTemp.Format( _T("%.2f"),pData2->fJFTotal );
				//m_wndList.SetItemText(pModify->lItem,7,strTemp);
			}
		}
		return true;
	}
	//�鿴��ע
	if (pHead->lFuncType == SMSFUNC_CORP_BZ_SEE)
	{
		ANS_Corp_BZ_See  * pSee     =  (ANS_Corp_BZ_See    *)pHead->pFrame;
		ANS_Corp_BZ_Data * pSeeData = (ANS_Corp_BZ_Data *)(pHead->pFrame+sizeof(ANS_Corp_BZ_See));

		DLG_Corp_BZ dlg(this);
		dlg.SetParam(pSee , pSeeData );
		if ( dlg.DoModal() == IDOK && pSee->lBZType ==0  )  //����Ա��ע��������
		{
			REQ_Corp_BZ_Add * pBZ = new REQ_Corp_BZ_Add;
			memset( pBZ , 0 , sizeof(REQ_Corp_BZ_Add));
			pBZ->lCorpID    = pSee->lCorpID;
			pBZ->lUserType  = 1;  //�����̱�ע
			pBZ->lBZType    = 0;  //����Ա��ע
			_tcscpy( pBZ->szBZ , dlg.m_strBZ );
			m_pMainFrame->SendFrame( SMSFUNC_CORP_BZ_ADD , (BYTE*)pBZ , sizeof(REQ_Corp_BZ_Add) );   //ȡ��ϵ����Ϣ
		}

		return true;
	}
	//�鿴������¼
	if (pHead->lFuncType == SMSFUNC_CORP_OPER_SEE)
	{
		ANS_Corp_Oper_See  * pSee     =  (ANS_Corp_Oper_See    *)pHead->pFrame;
		ANS_Corp_Oper_Data * pSeeData = (ANS_Corp_Oper_Data *)(pHead->pFrame+sizeof(ANS_Corp_Oper_See));

		DLG_Corp_Oper dlg(this);
		dlg.SetParam(pSee , pSeeData );
		dlg.DoModal();
		return true;
	}

	//�鿴�û���¼
	if (pHead->lFuncType == SMSFUNC_CORP_FILE)
	{
		ANS_Corp_File     * pFile = (ANS_Corp_File     *)pHead->pFrame;
		if ( pFile->lCount < 0 )   //Ȩ�޲��㣬���ش���
			return true;
		if ( pFile->ret.lReqType == 0 )  //��ѯ�ļ���Ϣ
		{
			ANS_Corp_FileData * pData = (ANS_Corp_FileData *)(pHead->pFrame+sizeof(ANS_Corp_File));
			
			DLG_Corp_File dlg(this);
			m_pDlgFile = &dlg;
			dlg.SetParam( *pFile , pData , 1);
			dlg.DoModal();
		}
		if ( pFile->ret.lReqType == 1 ) //����
		{
			if ( m_pDlgFile )
				m_pDlgFile->ProcessSocket(pHead);
		}
		if ( pFile->ret.lReqType == 2 ) //�޸�
		{
			if ( m_pDlgFile )
				m_pDlgFile->ProcessSocket(pHead);
		}
		if ( pFile->ret.lReqType == 3 ) //ɾ��
		{
			if ( m_pDlgFile )
				m_pDlgFile->ProcessSocket(pHead);
		}
		if ( pFile->ret.lReqType == 4 ) //�ϴ�
		{
			if ( m_pDlgFile )
				m_pDlgFile->ProcessSocket(pHead);
		}
		if ( pFile->ret.lReqType == 5 ) //����
		{
			if ( m_pDlgFile )
				m_pDlgFile->ProcessSocket(pHead);
		}
		return true;
	}
	//�鿴��ϵ��
	if (pHead->lFuncType == SMSFUNC_CORP_LXR)
	{
		ANS_Corp_LXR     * pLXR = (ANS_Corp_LXR     *)pHead->pFrame;
		if (pLXR->lCount < 0)   //Ȩ�޲���
			return true;
		ANS_Corp_LXRData * pData= (ANS_Corp_LXRData *)(pHead->pFrame+sizeof(ANS_Corp_LXR));
		ANS_Corp_LXR_YWYData * pYWYData = (ANS_Corp_LXR_YWYData *)(pHead->pFrame + sizeof(ANS_Corp_LXR) + sizeof(ANS_Corp_LXRData)*pLXR->lCount);
		DLG_Corp_LXR dlg(this);
		m_pLXRDlg = &dlg;
		dlg.SetParam( *pLXR , pData,1, pYWYData);  //��ҵ����Ϊ:1(������)
		if ( dlg.DoModal() == IDOK && dlg.m_lModifyCount>0)
		{
			long lSize = sizeof(REQ_Corp_LXRModify) + sizeof(ANS_Corp_LXRData)*dlg.m_lModifyCount;
			BYTE * pDataSend = new BYTE[lSize];memset( pDataSend , 0 , lSize );
			REQ_Corp_LXRModify * pModifySend = (REQ_Corp_LXRModify*)pDataSend;
			ANS_Corp_LXRData   * pLXRSend    = (ANS_Corp_LXRData  *)(pDataSend+sizeof(REQ_Corp_LXRModify));
			pModifySend->lCorpID= pLXR->lCorpID;
			pModifySend->lCount = dlg.m_lModifyCount;
			//������������
			ANS_Corp_LXRData * pLXRTemp;
			while (!dlg.m_LXR.IsEmpty())
			{
				pLXRTemp = dlg.m_LXR.GetHead();
				//pLXRTemp->lCorpType = 1;  //ǿ��������ҵ����Ϊ:0(������)
				dlg.m_LXR.RemoveHead();
				if (pLXRTemp->ucStatus != 0 )  //��Ϊ0,��Ҫ�޸�
				{
					*pLXRSend = *pLXRTemp;
					pLXRSend ++;
				}
				delete pLXRTemp;
			}
			m_pMainFrame->SendFrame( SMSFUNC_CORP_LXRMODIFY , pDataSend , lSize );
		}
		else
		{
			//������������
			ANS_Corp_LXRData * pLXRTemp;
			while (!dlg.m_LXR.IsEmpty())
			{
				pLXRTemp = dlg.m_LXR.GetHead();
				dlg.m_LXR.RemoveHead();
				delete pLXRTemp;
			}
		}
		m_pLXRDlg = NULL;
		return true;
	}
	//��ϵ���޸�
	if (pHead->lFuncType == SMSFUNC_CORP_LXRMODIFY)
	{
		return true;
	}
	if (pHead->lFuncType == SMSFUNC_CORP_SENDSMSNOW )
	{
		ANS_Corp_SendSmsNow * pSend = (ANS_Corp_SendSmsNow*)pHead->pFrame;
		if ( pSend->bOK )
		{
			MessageBox( pSend->szMsg , _T("��Ϣ") , MB_ICONINFORMATION );
		}
		else
		{
			MessageBox( pSend->szMsg , _T("����") , MB_ICONWARNING );
		}
		return true;
	}
	if (pHead->lFuncType == SMSFUNC_CORP_OPER_ADD)  //�����޸�����
	{
		ANS_Corp_Oper_Add* pAdd = (ANS_Corp_Oper_Add*)pHead->pFrame;
		if (pAdd->bOK)
		{
			OnAgentQuery();  //�޸����ú�ˢ������
			switch (pAdd->data.lOperType)
			{
			case 43: //��������
				MessageBox(_T("��ͨ�������·����ӣ������ѿͻ������������룡"), _T("��Ϣ"), MB_ICONINFORMATION | MB_OK);
				break;
			default:
				if (_tcslen(pAdd->szErrMsg) > 0)
					str = pAdd->szErrMsg;
				else
					str = _T("���Ӳ����ɹ�����ȴ�����ˢ����֤���ٲ�����һ����");
				MessageBox(str, _T("��Ϣ"), MB_ICONINFORMATION | MB_OK);
				break;
			}
		}
		else
		{
			switch (pAdd->data.lOperType)
			{
			case 13:
			case 15:
				MessageBox(_T("������ĺ�ͬ�Ų����ڻ��ѷ��䣬���飡"), _T("����"), MB_ICONWARNING | MB_OK);
				break;
			case 18:
				MessageBox(_T("�������ʺ�ǩ��ʧ�ܣ��п�����ҵID���¼������"), _T("����"), MB_ICONWARNING | MB_OK);
				break;
			case 32:
				switch (pAdd->lYWYID)
				{
				case -1:
					MessageBox(_T("ǿ���߳��û�ʧ�ܣ��û������ڣ�"), _T("����"), MB_ICONWARNING | MB_OK);
					break;
				case -2:
					MessageBox(_T("ǿ���߳��û�ʧ�ܣ��û�δ��¼��"), _T("����"), MB_ICONWARNING | MB_OK);
					break;
				default:
					MessageBox(_T("ǿ���߳��û�ʧ�ܣ�δ֪����"), _T("����"), MB_ICONWARNING | MB_OK);
					break;
				}
				break;
			case 43:  //��������
				MessageBox(_T("���õ�¼����ʧ�ܣ�����¼�����ֻ������Ƿ���ȷ��"), _T("����"), MB_ICONWARNING | MB_OK);
				break;
			default:
				if (_tcslen(pAdd->szErrMsg) > 0)
					str = pAdd->szErrMsg;
				else
					str = _T("���Ӳ���ʧ�ܣ����飡");
				MessageBox(str, _T("����"), MB_ICONWARNING | MB_OK);
				break;

			}
		}
		return true;
	}


	return false;
}

BOOL CK_Agent::isLockItem(long lItem, BOOL bShowWarning)
{
	BOOL b = (m_wndList.GetIconIndex(lItem) == 2);
	if ( b && bShowWarning )
	{
		MessageBox( _T("��¼����������ȴ����������غ��ٲ���!") , _T("������") , MB_ICONINFORMATION );
	}
	return b;
}

void CK_Agent::SetLockItem(long lItem, BOOL bLock)
{
	if ( bLock )
		m_wndList.SetIconIndex( lItem , 2 );
	else
		m_wndList.SetIconIndex( lItem , 0 );
}

BOOL CK_Agent::FindAgentame(const TCHAR *pAgentName, POSITION exPos)
{
	POSITION pos = m_Agent.GetHeadPosition();
	POSITION pos2;
	while (pos)
	{
		pos2 = pos;
		ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
		if ( pos2 != exPos )
		{
			if ( !_tcscmp( pData->szName , pAgentName ) )
				return true;
		}
	}
	return false;
}

void CK_Agent::OnDblclkAgentList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	*pResult = 0;
#ifndef SMSMANAGER_KF
	On_Agent_Modify();
#endif
}

void CK_Agent::OnRclickAgentList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	*pResult = 0;

	ShowRMenu();
}

void CK_Agent::OnKeydownAgentList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	LV_KEYDOWN* pLVKeyDow = (LV_KEYDOWN*)pNMHDR;
	// TODO: Add your control notification handler code here
	
	*pResult = 0;
}

void CK_Agent::ShowRMenu()
{
	if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT,false))  //û�в鿴Ȩ��
		return ;

	CMenu menu;
	menu.CreatePopupMenu();
	BOOL bLock = false;
	ANS_Agent_SeeData * pData = NULL;
	long lItem = this->GetCurrentSelected();
	if ( lItem >= 0 && lItem<m_Agent.GetCount() )
	{
		bLock = isLockItem( lItem , false );   //ȡ���Ƿ���������
		
		POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
		if ( (LONG_PTR)pos >0 )
		{
			pData = m_Agent.GetNext( pos );
		}
		else
		{
			lItem = -1;  //ûѡ�м�¼
		}
	}
	else
	{
		lItem = -1;  //ûѡ�м�¼
	}
#ifndef SMSMANAGER_KF
	//����
	if (m_pMainFrame->GetUserPurview(PURVIEW_CORP_ADD, false))
	{
		menu.AppendMenu(MF_STRING, MENU_AGENT_ADD, _T(" �� �� "));
	}
	else
	{
		//menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_AGENT_ADD, _T(" �� �� "));
	}
	//�޸�
	if ( lItem >=0 && !bLock && m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY, false))
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_MODIFY, _T(" �� �� ") );
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_MODIFY , _T(" �� �� ") );
	}
	//ɾ��
	if ( lItem >=0 && !bLock && m_pMainFrame->GetUserPurview(PURVIEW_CORP_DEL, false) )
	{
		menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_AGENT_DEL, _T(" ɾ �� ") );  //�ݲ��ṩɾ������
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_DEL , _T(" ɾ �� ") );
	}
	menu.AppendMenu(MF_SEPARATOR );

#endif

	//��ֵ
	if (m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY,false)&&lItem >=0)
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_JF, _T(" ���ų�ֵ... ") );
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_JF , _T(" ���ų�ֵ... ") );
	}
	//��ֵ
	if (m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY,false)&&lItem >=0)
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_MMSPAY, _T(" ���ų�ֵ... ") );
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_MMSPAY , _T(" ���ų�ֵ... ") );
	}


#ifndef SMSMANAGER_KF
	//�鿴֧����¼
	if (m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY, false) && lItem >= 0)
#else
	//if ( false )
	if (m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY, false) && lItem >= 0)
#endif
	{
		CMenu MenuAssist;
		MenuAssist.CreatePopupMenu();

		if (lItem >= 0 && !bLock && pData)
		{
			MenuAssist.AppendMenu(MF_STRING, MENU_AGENT_ASSIST_EXTENSION, _T(" ���������� "));
			MenuAssist.AppendMenu(MF_SEPARATOR);
			MenuAssist.AppendMenu(MF_STRING, MENU_AGENT_ASSIST_SMSTRANSFER, _T(" ���Ż�ת "));
			MenuAssist.AppendMenu(MF_STRING, MENU_AGENT_ASSIST_MMSTRANSFER, _T(" ���Ż�ת "));
			MenuAssist.AppendMenu(MF_STRING, MENU_AGENT_ASSIST_SMSMMSTRANSFER, _T(" �̲ʻ�ת "));
			MenuAssist.AppendMenu(MF_SEPARATOR);
			if ( m_pMainFrame->GetUserPurview(PURVIEW_TAB, false))
			{
				MenuAssist.AppendMenu(MF_STRING, MENU_AGENT_ASSIST_EXPIRYRECYCLING, _T(" ���ڻ��� "));
			}
		}
		//menu.AppendMenu(MF_SEPARATOR);
		menu.AppendMenu(MF_STRING | MF_POPUP, (UINT_PTR)MenuAssist.GetSafeHmenu(), _T(" ���������� "));
	}

#if !defined(SMSCENTER_NX)
	//�����
	if (m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY,false)&&lItem >=0 && m_pMainFrame->GetUserPurview(PURVIEW_TAB,false))
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_FILE, _T(" �����... ") );
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_FILE , _T(" �����... ") );
	}
#endif
	//�鿴��ϵ��
#ifdef SMSMANAGER_KF
	if ( lItem >=0 && m_pMainFrame->GetUserPurview(PURVIEW_SP,false) )
#else
	if (lItem >=0)
#endif
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_LXR, _T(" ��ϵ��... ") );
		menu.AppendMenu(MF_STRING     , MENU_AGENT_FP, _T(" ��Ʊ̧ͷ����... ") );
		menu.AppendMenu(MF_STRING     , MENU_AGENT_SF, _T(" ��ݼ��Ͳ�ѯ... "));
	}
//	else
//	{
//		menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED    , MENU_AGENT_LXR, _T(" ��ϵ��... ") );
//	}

//��ֵ
	if (m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD, false) && lItem >= 0)
	{
		menu.AppendMenu(MF_STRING, MENU_AGENT_ANALYSE, _T(" ���������ݷ���... "));
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_MMSPAY , _T(" ���ų�ֵ... ") );
	}

#if !defined(SMSMANAGER_KF) && !defined(SMSCENTER_NX)
	menu.AppendMenu(MF_SEPARATOR );
	//���������
	if ( lItem >=0 && !bLock && pData && pData->lType!=2 )
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_HS, _T(" ���������� ") );
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_HS , _T(" ���������� ") );
	}
	//�˿�
	if ( lItem >=0 && !bLock  )
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_PAYTOUSER, _T(" �˿�... ") );
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_PAYTOUSER , _T(" �˿�... ") );
	}
	menu.AppendMenu(MF_SEPARATOR );
	if ( lItem >=0  )
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_BZ_MAN, _T(" ����Ա��ע ") );
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_BZ_MAN , _T(" ����Ա��ע ") );
	}
	if ( lItem >=0  )
	{
		menu.AppendMenu(MF_STRING     , MENU_AGENT_BZ_YWY, _T(" ҵ��Ա��ע ") );
	}
	else
	{
		//menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_AGENT_BZ_YWY , _T(" ҵ��Ա��ע ") );
	}	
#endif

	//����Ϊ�����˵�
	if (lItem >=0)
	{
		CMenu MenuType;
		MenuType.CreatePopupMenu();
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_OPEN   , _T(" ��ͨ���� ") );
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_CLOSE  , _T(" �رղ��� ") );

		if (m_pMainFrame->GetUserPurview(PURVIEW_TAB, false))
		{
			MenuType.AppendMenu(MF_STRING, MENU_AGENT_OPER_AGENTNAME, _T(" ���Ĵ��������� "));
		}
#ifndef SMSMANAGER_KF

		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_ADDCOUNT, _T(" ��������������ҵ���� ") );
		MenuType.AppendMenu(MF_STRING, MENU_AGENT_OPER_YWY, _T(" ���Ŀͻ����� "));
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_REGTIME , _T(" ������ҵע��ʱ�� ") );
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_PRICEONE , _T(" ���Ķ��ŵ��� ") );
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_MMSPRICEONE , _T(" ���IJ��ŵ��� ") );
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_TCPER    , _T(" ������ɱ��� ") );
#endif
		if (m_pMainFrame->GetUserPurview(PURVIEW_TAB, false))
		{
			MenuType.AppendMenu(MF_STRING, MENU_AGENT_OPER_RESETPASSWD, _T(" ���ô����̵�¼���� "));
		}
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_CLOSECLI, _T(" �߳��û� "));
		MenuType.AppendMenu(MF_SEPARATOR );
#ifdef SMSMANAGER_KF
		if (m_pMainFrame->GetUserPurview(PURVIEW_SP,false) || m_pMainFrame->GetUserPurview(PURVIEW_TAB, false))
#endif
		{
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_HTSEND  , _T(" �ĺ�ͬ����ʱ�� ") );
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER_HTRECV  , _T(" �ĺ�ͬ����ʱ�� ") );
		}
		MenuType.AppendMenu(MF_SEPARATOR );
#ifdef SMSMANAGER_KF 
	if ( m_pMainFrame->GetUserPurview(PURVIEW_TAB,false) )
#else
	if ( true )
#endif
		MenuType.AppendMenu(MF_STRING     , MENU_AGENT_OPER        , _T(" ������¼ ") );
		menu.AppendMenu(MF_SEPARATOR );
		menu.AppendMenu(MF_STRING|MF_POPUP,(UINT_PTR)MenuType.GetSafeHmenu(), _T(" ��ҵ���� ") );
	}
#ifndef SMSMANAGER_KF
	menu.AppendMenu(MF_SEPARATOR);
	menu.AppendMenu(MF_STRING, MENU_AGENT_QUERYBAKAGENT, _T(" ��ѯ���������� "));
#endif
#ifndef SMSMANAGER_KF
	menu.AppendMenu(MF_SEPARATOR );
	//ˢ��
	menu.AppendMenu(MF_STRING     , MENU_AGENT_REFRESH, _T(" ˢ �� ") );
#endif
	//��ʾ�˵�
	POINT pt ;
	::GetCursorPos( &pt );
	//this->ClientToScreen( &pt);
	menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
	menu.DestroyMenu();
}

long CK_Agent::GetCurrentSelected()
{
	POSITION pos = m_wndList.GetFirstSelectedItemPosition();
	if ( pos )
	{
		return m_wndList.GetNextSelectedItem(pos);
	}
	return -1;
}

void CK_Agent::On_Agent_Add()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}

	ANS_Agent_SeeData SPData={0};
	::GetLocalTime(&SPData.tCreateTime);
#ifdef SMSCENTER_NX
	SPData.lType = 1;
#endif
	SPData.lReportPer = 75;  //��������ҵ��״̬���淴����
	SPData.fMmsPriceOne = 0.30;  //Ĭ�Ϸ���
	SPData.fPriceOne = 0.10;//Ĭ�Ϸ���
	DLG_Agent_Modify dlg(this);
	dlg.SetParam( SPData,0,true );
	if ( dlg.DoModal() == IDOK )
	{
		long lSize = sizeof(REQ_Agent_Add)+sizeof(ANS_Agent_SeeData);
		BYTE * pAddData = new BYTE[lSize];memset(pAddData,0,lSize);
		REQ_Agent_Add     * pAdd     = (REQ_Agent_Add *)pAddData;   //ͷ
		ANS_Agent_SeeData * pSPData = (ANS_Agent_SeeData *)(pAddData+sizeof(REQ_Agent_Add));
		*pSPData = dlg.GetParam();
		pAdd->lCount = 1;
		m_pMainFrame->SendFrame( SMSFUNC_AGENT_ADD , pAddData , lSize );
	}
}
void CK_Agent::On_Agent_Modify()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	if (isLockItem(lItem))
	{
		return ;
	}

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	if ( (LONG_PTR)pos <0 )
		return ;
	POSITION pos2 = pos;
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
	if (pData)
	{
		DLG_Agent_Modify dlg(this);
		dlg.SetParam( *pData,pos2,false);
		if ( dlg.DoModal() == IDOK )
		{
			SetLockItem( lItem ,true);
			long lSize = sizeof(REQ_Agent_Modify)+sizeof(ANS_Agent_SeeData);
			BYTE * pModifyData = new BYTE[lSize];memset(pModifyData,0,lSize);
			REQ_Agent_Modify * pModify = (REQ_Agent_Modify *)pModifyData;   //ͷ
			ANS_Agent_SeeData * pSPData = (ANS_Agent_SeeData *)(pModifyData+sizeof(REQ_Agent_Modify));
			*pSPData = dlg.GetParam();
			pModify->lItem  = lItem;
			pModify->lCount = 1;
			m_pMainFrame->SendFrame( SMSFUNC_AGENT_MODIFY , pModifyData , lSize );
		}
	}
}
void CK_Agent::On_Agent_Del()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}
	long lRet = MessageBox( _T("�˲�������ɾ���˴����̣��Ƿ������") , _T("����") , MB_ICONQUESTION|MB_YESNOCANCEL|MB_DEFBUTTON2);
	if ( lRet != IDYES )
		return;
	long lCount = m_wndList.GetSelectedCount();
	long lSize = sizeof(REQ_Agent_Del)+sizeof(ANS_Agent_DelData)*lCount;
	BYTE * pDelSend = new BYTE[lSize];memset(pDelSend,0,lSize);
	REQ_Agent_Del     * pDel = (REQ_Agent_Del *)pDelSend;   //ͷ
	ANS_Agent_DelData * pDelData = (ANS_Agent_DelData *)(pDelSend+sizeof(REQ_Agent_Del));
	pDel->lCount = lCount;
	POSITION pos = m_wndList.GetFirstSelectedItemPosition();
	ANS_Agent_SeeData * pSPData;
	POSITION pos2;
	while(pos)
	{
		pDelData->lItem   = m_wndList.GetNextSelectedItem(pos);
		pos2              = (POSITION)m_wndList.GetItemData(pDelData->lItem);
		pSPData         = m_Agent.GetNext(pos2);  //ȡ���б��е�pos
		pDelData->lAgentID   = pSPData->lAgentID;
		pDelData ++;
	}
	m_pMainFrame->SendFrame( SMSFUNC_AGENT_DEL , pDelSend , lSize );
}
void CK_Agent::On_Agent_Pay()
{
#ifndef SMSMANAGER_KF
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}
#endif
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
	if ( !pData )
		return ;


	REQ_Agent_Pay * pPay = new REQ_Agent_Pay;
	memset( pPay , 0 , sizeof(REQ_Agent_Pay));
	_tcscpy( pPay->szAgentName , pData->szName );
	pPay->fUsed    = pData->fUsed;
	pPay->fTotal   = pData->fTotal;
	pPay->lAgentID = pData->lAgentID;
	pPay->bTest    = pData->bTest;
	pPay->fPriceOne= pData->fPriceOne;
	pPay->lItem    = lItem;

	m_pMainFrame->SendFrame( SMSFUNC_AGENT_PAY , (BYTE*)pPay , sizeof(REQ_Agent_Pay) );   //ȡ��ϵ����Ϣ
}
void CK_Agent::On_Agent_MmsPay()
{
#ifndef SMSMANAGER_KF
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_FILT) )
	{
		return ;
	}
#endif
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
	if ( !pData )
		return ;


	REQ_Agent_MmsPay * pPay = new REQ_Agent_MmsPay;
	memset( pPay , 0 , sizeof(REQ_Agent_MmsPay));
	_tcscpy( pPay->szAgentName , pData->szName );
	pPay->lUsed    = pData->lMmsUsed;
	pPay->lTotal   = pData->lMmsTotal;
	pPay->fJFTotal   = pData->fMmsJFTotal;
	pPay->lAgentID = pData->lAgentID;
	pPay->bTest    = pData->bTest;
	pPay->fPriceOne= pData->fMmsPriceOne;
	pPay->lItem    = lItem;

	m_pMainFrame->SendFrame( SMSFUNC_AGENT_MMSPAY , (BYTE*)pPay , sizeof(REQ_Agent_Pay) );   //ȡ��ϵ����Ϣ
}
void CK_Agent::On_Agent_File()
{
	m_pDlgFile = NULL;  //�ļ���������Ϊ��

	if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY) )
	{
		return ;
	}
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	if ( (LONG_PTR)pos <0 )
		return ;
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );


	REQ_Corp_File * pFile = new REQ_Corp_File;
	memset( pFile , 0 , sizeof(REQ_Corp_File));
	pFile->lReqType = 0; //��ѯ
	pFile->lCorpType= 1; //��ѯ������ID
	pFile->lCorpID  = pData->lAgentID; //������ID
	_tcscpy(pFile->szCorpName , pData->szName );  //��ҵ����

	m_pMainFrame->SendFrame( SMSFUNC_CORP_FILE , (BYTE*)pFile , sizeof(REQ_Corp_File) );   //ȡ��ϵ����Ϣ
}
void CK_Agent::On_Agent_LXR()
{
#ifdef SMSMANAGER_KF
		if (!m_pMainFrame->GetUserPurview(PURVIEW_SP,false))
#else
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY) )
#endif
	{
		return ;
	}
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	REQ_Corp_LXR * pLXR = new REQ_Corp_LXR;
	memset( pLXR , 0 , sizeof(REQ_Corp_LXR));
	_tcscpy( pLXR->szCorpName , pData->szName );
	_stprintf( pLXR->szSMSNum ,_T("%d")  , pData->lAgentID );
	_tcscpy( pLXR->szAddress  , pData->szAddress );
	_tcscpy(pLXR->szPostCode, pData->szPostcode);
	//_tcscpy( pLXR->szPostCode , pData->sz );

	pLXR->lCorpID = pData->lAgentID;
	pLXR->lCorpType=1;  //�������ҵ
	pLXR->lPayType = 0;//�dz�ֵ
	pLXR->lPayID = 0;  //��ֵID
	pLXR->fPrice = 0.0f;  //��ֵ���

	m_pMainFrame->SendFrame( SMSFUNC_CORP_LXR , (BYTE*)pLXR , sizeof(REQ_Corp_LXR) );   //ȡ��ϵ����Ϣ
}
void CK_Agent::On_Agent_FP()
{
#ifdef SMSMANAGER_KF
		if (!m_pMainFrame->GetUserPurview(PURVIEW_SP,false))
#else
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY) )
#endif
	{
		return ;
	}
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
	REQ_Corp_FP * pFP = new REQ_Corp_FP;
	memset( pFP , 0 , sizeof(REQ_Corp_FP));
	_tcscpy( pFP->szCorpName , pData->szName );
	_tcscpy( pFP->szAddress  , pData->szAddress );
	pFP->lCorpID = pData->lAgentID;
	pFP->lYWYID = pData->lYWYID;
	pFP->lCorpType=1;  //�������ҵ
	pFP->lPayType = 0;//�dz�ֵ
	pFP->lPayID = 0;  //��ֵID
	pFP->fPrice = 0.0f;  //��ֵ���

	m_pMainFrame->SendFrame( SMSFUNC_CORP_FP , (BYTE*)pFP , sizeof(REQ_Corp_FP) );   //ȡ��ϵ����Ϣ

}

void CK_Agent::On_Agent_SF()
{
#ifdef SMSMANAGER_KF
	if (!m_pMainFrame->GetUserPurview(PURVIEW_SP, false))
#else
	if (!m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY))
#endif
	{
		return;
	}
	long lItem = GetCurrentSelected();
	if (lItem < 0)
		return;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext(pos);
	REQ_Corp_SF_See * pSF = new REQ_Corp_SF_See;
	memset(pSF, 0, sizeof(REQ_Corp_SF_See));
	_tcscpy(pSF->szCorpName, pData->szName);
	_tcscpy(pSF->szAddress, pData->szAddress);
	_tcscpy(pSF->szPostCode, pData->szPostcode);
	pSF->lCorpID = pData->lAgentID;
	pSF->lCorpType = 1;  //�������
	pSF->lPayType = 0;//�dz�ֵ
	pSF->lPayID = 0;  //��ֵID
	pSF->fPrice = 0.0f;  //��ֵ���

	m_pMainFrame->SendFrame(SMSFUNC_CORP_SF_SEE, (BYTE*)pSF, sizeof(REQ_Corp_SF_See));   //ȡ��ϵ����Ϣ
}

void CK_Agent::On_Agent_Refresh()
{
	RefreshInfo();
}

void CK_Agent::On_Agent_HS()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY) )
	{
		return ;
	}
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	if ( !pData )
		return ;
	if ( pData->lType ==2 )  //���������̲��ܻ��ա�
		return ;

	int iRet = MessageBox( _T("���ղ��������漰�����������ʺţ�һ��ֻ���˿�ʱʹ�ã������أ�") , _T("��ʾ") , MB_ICONWARNING|MB_YESNOCANCEL|MB_DEFBUTTON2);
	if ( iRet != IDYES )
		return ;

	REQ_Corp_HSSms * pHSSms = new REQ_Corp_HSSms;
	memset(pHSSms, 0 , sizeof(REQ_Corp_HSSms));
	pHSSms->lItem = lItem;
	pHSSms->lCorpID= pData->lAgentID;
	_tcscpy(pHSSms->szCorpName , pData->szName );
	pHSSms->lAgentID= pData->lAgentID;
	pHSSms->lSmsUsed = (long)(pData->fUsed*0.10f);
	pHSSms->lHSType = 3;  //�����������û����ն���
	pHSSms->lUserType =1; //�������û�

	m_pMainFrame->SendFrame( SMSFUNC_CORP_HSSMS , (BYTE*)pHSSms , sizeof(REQ_Corp_HSSms) );   //ȡ��ϵ����Ϣ
}
void CK_Agent::On_Agent_PayToUser()
{
	if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY) )
	{
		return ;
	}
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
	if ( !pData )
		return ;

	REQ_Corp_HSSms * pHSSms = new REQ_Corp_HSSms;
	memset(pHSSms, 0 , sizeof(REQ_Corp_HSSms));
	pHSSms->lItem = lItem;
	pHSSms->lCorpID= pData->lAgentID;
	_tcscpy(pHSSms->szCorpName , pData->szName );
	pHSSms->lAgentID= pData->lAgentID;
	pHSSms->lSmsUsed = (long)(pData->fUsed*0.10f);
	pHSSms->lHSType = 1;  //�˿��ѯ
	pHSSms->lUserType =1; //�������û�

	m_pMainFrame->SendFrame( SMSFUNC_CORP_HSSMS , (BYTE*)pHSSms , sizeof(REQ_Corp_HSSms) );   //ȡ��ϵ����Ϣ
}

void CK_Agent::On_User_Oper_Open()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
	DLG_Corp_Oper_Open dlg(this);
	dlg.SetParam_A(pData,true,this->m_pMainFrame->m_Setup.szUser);
	
	if ( dlg.DoModal() == IDOK )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //�����̲���
		pAdd->data.lOperType=50;  //��ҵ��ͨ
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );

		for ( int i=0 ; i<pAdd->lCorpCount ; i++ )
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if ( lItem >=0 )
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
				if ( pData )
				{
					_tcscpy(pAdd2->data.szOperName , dlg.m_strOperName );
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType=1 ; //�����̲���
					pAdd2->data.lOperType=50;  //��ҵ��ͨ
					_tcscpy( pAdd2->data.szBZ , dlg.m_strBZ );
				}
			}

			pAdd2 ++;
		}
		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ
	}
}
void CK_Agent::On_User_Oper_Close()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
	DLG_Corp_Oper_Open dlg(this);
	dlg.SetParam_A(pData,false,this->m_pMainFrame->m_Setup.szUser);
	
	if ( dlg.DoModal() == IDOK )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //�����̲���
		pAdd->data.lOperType = 51;  //��ҵ�ر�
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		for ( int i=0 ; i<pAdd->lCorpCount ; i++ )
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if ( lItem >=0 )
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
				if ( pData )
				{
					_tcscpy(pAdd2->data.szOperName , dlg.m_strOperName );
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType=1 ; //�����̲���
					pAdd2->data.lOperType = 51;  //��ҵ�ر�
					_tcscpy( pAdd2->data.szBZ , dlg.m_strBZ );
				}
			}

			pAdd2 ++;
		}
		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ
	}
}

void CK_Agent::On_User_Oper_CloseCLI()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if (lItem < 0)
		return;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext(pos);
	DLG_Corp_Oper_Open dlg(this);
	dlg.SetParam_A(pData, 3, this->m_pMainFrame->m_Setup.szUser);

	if (dlg.DoModal() == IDOK)
	{
		long lCount = m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount - 1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet, 0, lSize);
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*)pDataRet;
		REQ_Corp_Oper_Add * pAdd2 = (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount - 1;

		_tcscpy(pAdd->data.szOperName, dlg.m_strOperName);
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType = 1; //�����̲���
		pAdd->data.lOperType = 32;  //�رտͻ���
		_tcscpy(pAdd->data.szBZ, dlg.m_strBZ);
		for (int i = 0; i<pAdd->lCorpCount; i++)
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if (lItem >= 0)
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData * pData = m_Agent.GetNext(pos);
				if (pData)
				{
					_tcscpy(pAdd2->data.szOperName, dlg.m_strOperName);
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType = 1; //�����̲���
					pAdd->data.lOperType = 32;  //�رտͻ���
					_tcscpy(pAdd2->data.szBZ, dlg.m_strBZ);
				}
			}

			pAdd2++;
		}
		m_pMainFrame->SendFrame(SMSFUNC_CORP_OPER_ADD, (BYTE*)pDataRet, lSize);   //ȡ��ϵ����Ϣ
	}
}

void CK_Agent::On_User_Oper_AgentName()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if (lItem < 0)
		return;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData* pData = m_Agent.GetNext(pos);

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData, 61); //���Ĵ���������

	if (dlg.DoModal() == IDOK && _tcscmp(pData->szName, dlg.m_AgentData.szName))
	{
		long lCount = m_wndList.GetSelectedItemCount();
		lCount = 1; //�����޸�ֻ��1��1
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add) * (lCount - 1);
		BYTE* pDataRet = new BYTE[lSize];
		memset(pDataRet, 0, lSize);
		REQ_Corp_Oper_Add* pAdd = (REQ_Corp_Oper_Add*)pDataRet;
		REQ_Corp_Oper_Add* pAdd2 = (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount - 1;

		_tcscpy(pAdd->data.szOperName, dlg.m_strOperName);
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType = 1; //��ҵ����
		pAdd->data.lOperType = 61;  //���Ĵ���������
		_tcscpy(pAdd->data.szBZ, dlg.m_strBZ);
		_stprintf(pAdd->data.szOperMsg, _T("%s ->%s"), pData->szName, dlg.m_AgentData.szName);
		_tcscpy(pAdd->szCMName,dlg.m_AgentData.szName);  //��Ҫ�ĵ�����

		for (int i = 0; i < pAdd->lCorpCount; i++)
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if (lItem >= 0)
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData* pData = m_Agent.GetNext(pos);
				if (pData)
				{
					_tcscpy(pAdd2->data.szOperName, dlg.m_strOperName);
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType = 1; //��ҵ����
					pAdd2->data.lOperType = 61;  //���Ĵ���������
					_tcscpy(pAdd2->data.szBZ, dlg.m_strBZ);
					_stprintf(pAdd2->data.szOperMsg, _T("%s ->%s"), pData->szName, dlg.m_AgentData.szName);
					_tcscpy(pAdd2->szCMName, dlg.m_AgentData.szName);  //��Ҫ�ĵ�����
				}
			}
			pAdd2++;
		}

		m_pMainFrame->SendFrame(SMSFUNC_CORP_OPER_ADD, (BYTE*)pDataRet, lSize);   //ȡ��ϵ����Ϣ
	}

}
void CK_Agent::On_User_Oper_ResetPasswd()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if (lItem < 0)
		return;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData* pData = m_Agent.GetNext(pos);

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData, 62); //���ô����̵�¼����

	if (dlg.DoModal() == IDOK)
	{
		long lCount = m_wndList.GetSelectedItemCount();
		lCount = 1; //�����޸�ֻ��1��1
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add) * (lCount - 1);
		BYTE* pDataRet = new BYTE[lSize];
		memset(pDataRet, 0, lSize);
		REQ_Corp_Oper_Add* pAdd = (REQ_Corp_Oper_Add*)pDataRet;
		REQ_Corp_Oper_Add* pAdd2 = (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount - 1;

		_tcscpy(pAdd->data.szOperName, dlg.m_strOperName);
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType = 1; //������
		pAdd->data.lOperType = 62;  //���ô����̵�¼����
		_tcscpy(pAdd->data.szBZ, dlg.m_strBZ);
		_tcscpy(pAdd->szHTNum, pData->szLoginName);  //��¼��
		if (_tcslen(pAdd->szHTNum) <= 0)  //���û�е�¼����Ĭ�ϲ��ô�����IDΪ��¼����
			_stprintf(pAdd->szHTNum, _T("%d"), pData->lAgentID);
		_stprintf(pAdd->data.szOperMsg, _T("���ô����̵�¼���룬��¼�˺ţ�%s"), pAdd->szHTNum);


		m_pMainFrame->SendFrame(SMSFUNC_CORP_OPER_ADD, (BYTE*)pDataRet, lSize);   //ȡ��ϵ����Ϣ
	}

}

void CK_Agent::On_User_Oper_YWY()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData,3);

	if ( dlg.DoModal() == IDOK && pData->lYWYID!= dlg.m_AgentData.lYWYID )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //�����̲���
		pAdd->data.lOperType=53;  //����ҵ��Ա
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		_stprintf(pAdd->data.szOperMsg, _T("%s(%d)->%s(%d)"),GetName_YWY(pData->lYWYID),pData->lYWYID,GetName_YWY(dlg.m_AgentData.lYWYID),dlg.m_AgentData.lYWYID);
		pAdd->lYWYID = dlg.m_AgentData.lYWYID;  //��Ҫ�ĵ��� ID

		for ( int i=0 ; i<pAdd->lCorpCount ; i++ )
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if ( lItem >=0 )
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
				if ( pData )
				{
					_tcscpy(pAdd2->data.szOperName , dlg.m_strOperName );
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType=1 ; //�����̲���
					pAdd2->data.lOperType=53;  //����ҵ��Ա
					_tcscpy( pAdd2->data.szBZ , dlg.m_strBZ );
					_stprintf(pAdd2->data.szOperMsg, _T("%s(%d)->%s(%d)"),GetName_YWY(pData->lYWYID),pData->lYWYID,GetName_YWY(dlg.m_AgentData.lYWYID),dlg.m_AgentData.lYWYID);
					pAdd2->lYWYID = dlg.m_AgentData.lYWYID;  //��Ҫ�ĵ��� ID
				}
			}

			pAdd2 ++;
		}
		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ
	}
}
void CK_Agent::On_User_Oper()
{
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	REQ_Corp_Oper_See * pBZ = new REQ_Corp_Oper_See;
	memset( pBZ , 0 , sizeof(REQ_Corp_Oper_See));
	pBZ->lCorpID  = pData->lAgentID;
	pBZ->lUserType  = 1;  //�������
	_tcscpy( pBZ->szName , pData->szName );
	m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_SEE , (BYTE*)pBZ , sizeof(REQ_Corp_Oper_See) );   //ȡ��ϵ����Ϣ
}
void CK_Agent::On_User_Oper_HTSend()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData,5);

	if ( dlg.DoModal() == IDOK && memcmp(&pData->lHT_Send,&dlg.m_AgentData.lHT_Send,sizeof(pData->lHT_Send)) )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //�����̲���
		pAdd->data.lOperType=55;  //���ĺ�ͬ�ij�ʱ��
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		_stprintf(pAdd->data.szOperMsg, _T("%04d.%02d.%02d -> %04d.%02d.%02d"),pData->lHT_Send.lYear,pData->lHT_Send.lMon,pData->lHT_Send.lDay,dlg.m_AgentData.lHT_Send.lYear,dlg.m_AgentData.lHT_Send.lMon,dlg.m_AgentData.lHT_Send.lDay);
		pAdd->lHTDate = dlg.m_AgentData.lHT_Send;  //��Ҫ�ĵ��� ID

		for ( int i=0 ; i<pAdd->lCorpCount ; i++ )
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if ( lItem >=0 )
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
				if ( pData )
				{
					_tcscpy(pAdd2->data.szOperName , dlg.m_strOperName );
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType=1 ; //��ҵ����
					pAdd2->data.lOperType=55;  //���ĺ�ͬ�ij�ʱ��
					_tcscpy( pAdd2->data.szBZ , dlg.m_strBZ );
					_stprintf(pAdd2->data.szOperMsg, _T("%04d.%02d.%02d -> %04d.%02d.%02d"),pData->lHT_Send.lYear,pData->lHT_Send.lMon,pData->lHT_Send.lDay,dlg.m_AgentData.lHT_Send.lYear,dlg.m_AgentData.lHT_Send.lMon,dlg.m_AgentData.lHT_Send.lDay);
					pAdd2->lHTDate = dlg.m_AgentData.lHT_Send;  //��Ҫ�ĵ��� ID
				}
			}

			pAdd2 ++;
		}


		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ

	}
}
void CK_Agent::On_User_Oper_HTRecv()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData,6);

	if ( dlg.DoModal() == IDOK && memcmp(&pData->lHT_Recv,&dlg.m_AgentData.lHT_Recv,sizeof(pData->lHT_Recv)) )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //�����̲���
		pAdd->data.lOperType=56;  //���ĺ�ͬ����ʱ��
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		_stprintf(pAdd->data.szOperMsg, _T("%04d.%02d.%02d -> %04d.%02d.%02d"),pData->lHT_Recv.lYear,pData->lHT_Recv.lMon,pData->lHT_Recv.lDay,dlg.m_AgentData.lHT_Recv.lYear,dlg.m_AgentData.lHT_Recv.lMon,dlg.m_AgentData.lHT_Recv.lDay);
		pAdd->lHTDate = dlg.m_AgentData.lHT_Recv;  //��Ҫ�ĵ��� ID

		for ( int i=0 ; i<pAdd->lCorpCount ; i++ )
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if ( lItem >=0 )
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
				if ( pData )
				{
					_tcscpy(pAdd2->data.szOperName , dlg.m_strOperName );
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType=1 ; //�����̲���
					pAdd2->data.lOperType=56;  //���ĺ�ͬ����ʱ��
					_tcscpy( pAdd2->data.szBZ , dlg.m_strBZ );
					_stprintf(pAdd2->data.szOperMsg, _T("%04d.%02d.%02d -> %04d.%02d.%02d"),pData->lHT_Recv.lYear,pData->lHT_Recv.lMon,pData->lHT_Recv.lDay,dlg.m_AgentData.lHT_Recv.lYear,dlg.m_AgentData.lHT_Recv.lMon,dlg.m_AgentData.lHT_Recv.lDay);
					pAdd2->lHTDate = dlg.m_AgentData.lHT_Recv;  //��Ҫ�ĵ��� ID
				}
			}

			pAdd2 ++;
		}
		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ
	}
}
void CK_Agent::On_User_Oper_RegTime()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData,7);

	if ( dlg.DoModal() == IDOK && memcmp(&pData->tCreateTime,&dlg.m_AgentData.tCreateTime,sizeof(pData->tCreateTime)) )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //�����̲���
		pAdd->data.lOperType=57;  //���ĺ�ͬ����ʱ��
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		_stprintf(pAdd->data.szOperMsg, _T("%04d.%02d.%02d -> %04d.%02d.%02d"),pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay,dlg.m_AgentData.tCreateTime.wYear,dlg.m_AgentData.tCreateTime.wMonth,dlg.m_AgentData.tCreateTime.wDay);
		pAdd->lHTDate.lYear = dlg.m_AgentData.tCreateTime.wYear;  //��Ҫ�ĵ��� ID
		pAdd->lHTDate.lMon  = dlg.m_AgentData.tCreateTime.wMonth;  //��Ҫ�ĵ��� ID
		pAdd->lHTDate.lDay  = dlg.m_AgentData.tCreateTime.wDay;  //��Ҫ�ĵ��� ID

		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ
	}
}
void CK_Agent::On_User_Oper_PriceOne()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData,58); //�޸Ķ��ŵ���

	if ( dlg.DoModal() == IDOK && pData->fPriceOne != dlg.m_AgentData.fPriceOne )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //�����̲���
		pAdd->data.lOperType=58;   //�޸Ķ��ŵ���
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		_stprintf(pAdd->data.szOperMsg, _T("%.4f -> %.4f"),pData->fPriceOne,dlg.m_AgentData.fPriceOne);
		pAdd->fPriceOne = dlg.m_AgentData.fPriceOne;  //��Ҫ�ĵ��� ID

		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ
	}
}
void CK_Agent::On_User_Oper_MmsPriceOne()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData,60); //�޸IJ��ŵ���

	if ( dlg.DoModal() == IDOK && pData->fMmsPriceOne != dlg.m_AgentData.fPriceOne )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //�����̲���
		pAdd->data.lOperType=60;   //�޸Ķ��ŵ���
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		_stprintf(pAdd->data.szOperMsg, _T("%.4f -> %.4f"),pData->fMmsPriceOne,dlg.m_AgentData.fPriceOne);
		pAdd->fPriceOne = dlg.m_AgentData.fPriceOne;  //��Ҫ�ĵ��� ID

		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ
	}
}

void CK_Agent::On_User_Oper_AddCount()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData,4); //��������������ҵ����

	if ( dlg.DoModal() == IDOK && pData->lAddCorpCount!=dlg.m_AgentData.lAddCorpCount )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //��ҵ����
		pAdd->data.lOperType=54;  //��������������ҵ����
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		_stprintf(pAdd->data.szOperMsg, _T("%d ->%d "),pData->lAddCorpCount,dlg.m_AgentData.lAddCorpCount);
		pAdd->lAddressCount = dlg.m_AgentData.lAddCorpCount;  //��Ҫ�ĵ�����

		for ( int i=0 ; i<pAdd->lCorpCount ; i++ )
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if ( lItem >=0 )
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
				if ( pData )
				{
					_tcscpy(pAdd2->data.szOperName , dlg.m_strOperName );
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType=1 ; //��ҵ����
					pAdd2->data.lOperType=54;  //��������������ҵ����
					_tcscpy( pAdd2->data.szBZ , dlg.m_strBZ );
					_stprintf(pAdd2->data.szOperMsg, _T("%d ->%d "),pData->lAddCorpCount,dlg.m_AgentData.lAddCorpCount);
					pAdd2->lAddressCount = dlg.m_AgentData.lAddCorpCount;  //��Ҫ�ĵ�����
				}
			}

			pAdd2 ++;
		}

		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ

	}
}
void CK_Agent::On_Agent_BZ_Man()
{
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	REQ_Corp_BZ_See * pBZ = new REQ_Corp_BZ_See;
	memset( pBZ , 0 , sizeof(REQ_Corp_BZ_See));
	pBZ->lCorpID  = pData->lAgentID;
	pBZ->lUserType  = 1;  //������̱�ע
	pBZ->lBZType    = 0;  //�����Ա��ע
	_tcscpy( pBZ->szName , pData->szName );
	m_pMainFrame->SendFrame( SMSFUNC_CORP_BZ_SEE , (BYTE*)pBZ , sizeof(REQ_Corp_BZ_See) );   //ȡ��ϵ����Ϣ
	
}
void CK_Agent::On_Agent_BZ_YWY()
{
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	REQ_Corp_BZ_See * pBZ = new REQ_Corp_BZ_See;
	memset( pBZ , 0 , sizeof(REQ_Corp_BZ_See));
	pBZ->lCorpID  = pData->lAgentID;
	pBZ->lUserType  = 1;  //������̱�ע
	pBZ->lBZType    = 1;  //��ҵ��Ա��ע
	_tcscpy( pBZ->szName , pData->szName );
	m_pMainFrame->SendFrame( SMSFUNC_CORP_BZ_SEE , (BYTE*)pBZ , sizeof(REQ_Corp_BZ_See) );   //ȡ��ϵ����Ϣ
	
}
BOOL CK_Agent::FindLoginName(const TCHAR *pLoginName, POSITION exPos)
{
	POSITION pos = m_Agent.GetHeadPosition();
	POSITION pos2;
	while (pos)
	{
		pos2 = pos;
		ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
		if ( pos2 != exPos )
		{
			if ( !_tcscmp( pData->szLoginName , pLoginName ) )
				return true;
		}
	}
	return false;
}

void CK_Agent::Close_Agent()
{
	//������������
	while (!m_Agent.IsEmpty())
	{
		ANS_Agent_SeeData * pData = m_Agent.GetHead();
		m_Agent.RemoveHead();
		delete pData;
	}
}

void CK_Agent::Close_YWY()
{
	//������������
	while (!m_YWY.IsEmpty())
	{
		ANS_YWY_NameData * pData = m_YWY.GetHead();
		m_YWY.RemoveHead();
		delete pData;
	}
}

BOOL CK_Agent::PreTranslateMessage(MSG* pMsg) 
{
	if ( pMsg->hwnd == m_E_AgentID && pMsg->message == WM_KEYDOWN )
	{
		if ( pMsg->wParam == 13 ) //�س���
		{
			this->OnAgentQuery();
			return true;
		}
	}
	if ( pMsg->hwnd == m_E_YWYID && pMsg->message == WM_KEYDOWN )
	{
		if ( pMsg->wParam == 13 ) //�س���
		{
			this->OnAgentQuery2();
			return true;
		}
	}	
	return CDialog::PreTranslateMessage(pMsg);
}

void CK_Agent::OnAgentQuery() 
{
	CString strFind;
	m_E_AgentID.GetWindowText(strFind);

	if ( !m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE,false) )
	{
		if ( _ttol(strFind)<100000 || _ttol(strFind)>900000 )
		{
#ifdef SMSMANAGER_KF
			if ( strFind.GetLength()<2 )
#else
#ifndef SMSCENTER_ADC
			if ( strFind.GetLength()<4 )
#else
			if ( false )
#endif
#endif
				{
					MessageBox( _T("��ѯ��������ݹ��٣������䣡") , _T("����") , MB_ICONWARNING );
					GetDlgItem(IDC_AGENT_AGENTID)->SetFocus();
					return ;
				}
		}
	}

	REQ_Agent_See3 * pSee = new REQ_Agent_See3;
	memset( pSee , 0 , sizeof(REQ_Agent_See3));
	_tcscpy( pSee->szQuery , strFind );
	pSee->lQueryType = 0;  //������ѯ
	m_lQueryType2 = 0; //������ѯ

	m_pMainFrame->SendFrame(SMSFUNC_AGENT_SEE3,(BYTE*)pSee,sizeof(REQ_Agent_See3));    //ȡ��ҵ��Ϣ

	return ;
/*
	CString strFind;
	m_E_AgentID.GetWindowText(strFind);
	if ( strFind.GetLength()>0 )
	{
		long lSel   = this->GetCurrentSelected();
		long lCount = m_wndList.GetItemCount();
		m_wndList.UnSelectAllItems();
		for ( int i=lSel+1 ; i<lCount ; i++ )
		{
			CString str = m_wndList.GetItemText(i,1);
			CString str2= m_wndList.GetItemText(i,2);
			if ( str.Find(strFind)>=0 ||
				 str2.Find(strFind)>=0)
			{
				m_wndList.SelectItem(i,false);
				//m_wndList.SelectItem(i);
				m_wndList.EnsureVisible(i,true);
				return ;
			}
		}
		for ( i=0 ; i<lSel ; i++ )
		{
			CString str = m_wndList.GetItemText(i,1);
			CString str2= m_wndList.GetItemText(i,2);
			if ( str.Find(strFind)>=0 ||
				 str2.Find(strFind)>=0)
			{
				m_wndList.SelectItem(i);
				m_wndList.EnsureVisible(i,true);
				return ;
			}
		}	
	}	
*/
}

void CK_Agent::OnAgentQuery2() 
{
	CString strTemp;
	CString strFind;
	m_E_YWYID.GetWindowText(strFind);
	if ( strFind.GetLength()<=0 )
		return ;
	long lSel   = m_L_YWY.GetCurSel();
	long lCount = m_L_YWY.GetCount();
	for ( int i=lSel+1 ; i<lCount ; i++ )
	{
		m_L_YWY.GetLBText(i,strTemp);
		if ( strTemp.Find(strFind)>=0 )
		{
			m_L_YWY.SetCurSel(i);
			OnSelchangeAgentYwy();
			return ;
		}
	}
	for ( i=0 ; i<lSel ; i++ )
	{
		m_L_YWY.GetLBText(i,strTemp);
		if ( strTemp.Find(strFind)>=0 )
		{
			m_L_YWY.SetCurSel(i);
			OnSelchangeAgentYwy();
			return ;
		}
	}	
}

void CK_Agent::OnSelchangeAgentYwy() 
{
	ReShowUser();
}

void CK_Agent::ReShowUser()
{
	long lItem = m_L_YWY.GetCurSel();
	long lYWYID=-10;
	if ( lItem >= 0 )
	{
		lYWYID = m_L_YWY.GetItemData(lItem);
	}
	
	m_wndList.ShowWindow(SW_HIDE);
	m_wndList.DeleteAllItems(); //ɾ��ԭ�е�����
	

	double   dUsed=0.0f;
	double   dTotal=0.0f;

	CString strTemp;
	POSITION pos = m_Agent.GetHeadPosition();
	POSITION pos2=0;
	int i=0;
	while ( pos )
	{
		pos2 = pos;
		ANS_Agent_SeeData * pData = m_Agent.GetNext(pos);
		if ( pData )
		{
			if (lYWYID <=0 || lYWYID == pData->lYWYID)
			{
				//m_wndList.SetHeadings(_T("���,50;    ����������,180; ��¼��,100;   ID,60;�������,90; ����,100;�ʺ�����,90;����¼,90;����ʱ��,90;ҵ��Ա,60;"));
				long lTemp=1;
				strTemp.Format(_T("%d") , i+1 );
				m_wndList.InsertItem( i , strTemp , pData->lStatus );
				m_wndList.SetItemData( i , (DWORD_PTR)pos2 );    //��Pos
				m_wndList.SetItemText(i,lTemp++,pData->szName);
				m_wndList.SetItemText(i,lTemp++,pData->szLoginName);
				
				strTemp.Format( _T("%d") , pData->lAgentID );
				m_wndList.SetItemText(i,lTemp++,strTemp);
#ifndef SMSMANAGER_KF
				strTemp.Format( _T("%.4f"),pData->fPriceOne );  //���ŵ���
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%10d"),long(pData->fUsed*10.0f) );
				m_wndList.SetItemText(i,lTemp++,strTemp);
#else
				strTemp= _T("<= 0");
				if ( long(pData->fUsed*10.0f)>100 )
				{
					strTemp= _T("> 100");
				}
				if ( long(pData->fUsed*10.0f)<=100 && long(pData->fUsed*10.0f)>0 )
				{
					strTemp =  _T("< 100");
				}
				m_wndList.SetItemText(i,lTemp++,strTemp);

				strTemp= _T("<= 0");
				if ( pData->lMmsUsed>100 )
				{
					strTemp= _T("> 100");
				}
				if ( pData->lMmsUsed<=100 && pData->lMmsUsed>0 )
				{
					strTemp =  _T("< 100");
				}
				m_wndList.SetItemText(i,lTemp++,strTemp);
#endif
#ifndef SMSMANAGER_KF
				strTemp.Format( _T("%10d"),long(pData->fTotal*10.0f) );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%.2f"),pData->fJFTotal );
				m_wndList.SetItemText(i,lTemp++,strTemp);

				strTemp.Format( _T("%5.2f"),pData->fMmsPriceOne );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%10d"),pData->lMmsUsed );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%10d"),pData->lMmsTotal );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%.2f"),pData->fMmsJFTotal );
				m_wndList.SetItemText(i,lTemp++,strTemp);

				strTemp.Format( _T("   %d/%d"),pData->lAddedCorp,pData->lAddCorpCount );
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%04d.%02d.%02d") , pData->tLoginTime.wYear,pData->tLoginTime.wMonth,pData->tLoginTime.wDay);
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%04d.%02d.%02d") , pData->tCreateTime.wYear,pData->tCreateTime.wMonth,pData->tCreateTime.wDay);
				m_wndList.SetItemText(i,lTemp++,strTemp);

#endif
				strTemp.Format( _T("%04d.%02d.%02d") , pData->tOvrTime.wYear,pData->tOvrTime.wMonth,pData->tOvrTime.wDay);
				m_wndList.SetItemText(i,lTemp++,strTemp);

				m_wndList.SetItemText(i,lTemp++,GetName_YWY(pData->lYWYID));
#ifndef SMSMANAGER_KF
				strTemp.Format( _T("%04d.%02d.%02d") , pData->lHT_Send.lYear,pData->lHT_Send.lMon,pData->lHT_Send.lDay);
				m_wndList.SetItemText(i,lTemp++,strTemp);
				strTemp.Format( _T("%04d.%02d.%02d") , pData->lHT_Recv.lYear,pData->lHT_Recv.lMon,pData->lHT_Recv.lDay);
				m_wndList.SetItemText(i,lTemp++,strTemp);
#endif


				//�ж϶�����
				long lSmsFZ = pData->lSmUsed;
				if (lSmsFZ <= 0) lSmsFZ = 2000;
				long lIconIndex = 0;
				CString strNotify;
				if (long(pData->fUsed*10.0f) <= lSmsFZ)
				{
					lIconIndex = 3;
					strNotify = _T("��������");
				}
				if (long(pData->fUsed*10.0f) <= lSmsFZ / 2)  //���������Ȳ���
				{
					lIconIndex = 4;
					strNotify = _T("����������");
				}
				//�жϹ���
				CString strNotify2;
				long lIconIndex2 = 0;
				COleDateTime tOvr(pData->tOvrTime);
				if (tOvr.GetStatus() == COleDateTime::valid)
				{
					if (tOvr - COleDateTime::GetCurrentTime() < COleDateTimeSpan(30 * 3, 0, 0, 0)) //�����
					{
						lIconIndex2 = 3;
						strNotify2 = _T("�����");
					}
					if (tOvr <= COleDateTime::GetCurrentTime()) //�ѹ���
					{
						lIconIndex2 = 4;
						strNotify2 = _T("�ѹ���");
					}

					if (lIconIndex2 > lIconIndex) lIconIndex = lIconIndex2;
					if (strNotify2.GetLength() > 0)
					{
						if (strNotify.GetLength() > 0)
							strNotify = strNotify + CString(_T("��")) + strNotify2;
						else
							strNotify = strNotify2;
					}
				}
				strNotify2 = CString(_T(""));
				lIconIndex2 = 0;

				COleDateTime tUser(pData->tLoginTime);
				if (tUser.GetStatus() != COleDateTime::valid)
					tUser = COleDateTime(pData->tCreateTime);
				if (tUser.GetStatus() == COleDateTime::valid)
				{
					COleDateTimeSpan tTemp = COleDateTime::GetCurrentTime() - tUser;
					long lMon = tTemp.GetTotalDays() / 30;
					if (lMon >= 3)
					{
						lIconIndex2 = 4;
						strNotify2.Format(_T("��%d��û��¼"), lMon);
					}
					else
						if (lMon >= 1)
						{
							lIconIndex2 = 3;
							strNotify2.Format(_T("��%d��û��¼"), lMon);
						}

					if (lIconIndex2 > lIconIndex) lIconIndex = lIconIndex2;
					if (strNotify2.GetLength() > 0)
					{
						if (strNotify.GetLength() > 0)
							strNotify = strNotify + CString(_T("��")) + strNotify2;
						else
							strNotify = strNotify2;
					}

				}

				//���þ���ͼ��
				if (pData->lStatus != 1 && lIconIndex > 0)
					m_wndList.SetIconIndex(i, lIconIndex);
				//��ʾ��ʾ��Ϣ
				m_wndList.SetItemText(i, lTemp++, strNotify);


				dUsed  += pData->fUsed;
				dTotal += pData->fTotal;
				i++;
			}
		}
	}
#ifndef SMSMANAGER_KF
	m_wndList.InsertItem(i,_T(""),5 );
	m_wndList.SetItemData(i,-1);
	i++;

	m_wndList.InsertItem(i,_T("�ϼ�"),5);
	m_wndList.SetItemText(i,1,_T(""));
	m_wndList.SetItemData(i,-1);

	TCHAR Buf[64]={0};
	_stprintf( Buf,_T("%I64d"),(LONGLONG)(dUsed*10.0f) );
	m_wndList.SetItemText(i,4,Buf);

	_stprintf( Buf,_T("%I64d"),(LONGLONG)(dTotal*10.0f) );
	m_wndList.SetItemText(i,6,Buf);
#endif
	m_wndList.ShowWindow(SW_SHOW);
}

CString CK_Agent::GetName_YWY(long lYWYID)
{
	//ҵ��Ա
	CString strTemp=_T("��ҵ��Ա");
	POSITION pos = m_YWY.GetHeadPosition();
	POSITION pos2;
	while (pos)
	{
		pos2=pos;
		ANS_YWY_NameData * pYWY = m_YWY.GetNext( pos );
		if ( pYWY->lYWYID == lYWYID )
		{
			strTemp = pYWY->szYWYName;
			break;
		}
	}
	return strTemp;
}

void CK_Agent::On_User_Oper_TCPer()
{
	long lItem = m_wndList.GetFirstSelectedItem();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );

	DLG_Corp_Open_ChangeA dlg(this);
	dlg.SetParam(*pData,59); //������ɱ���

	if ( dlg.DoModal() == IDOK && pData->lTCPer!=dlg.m_AgentData.lTCPer )
	{
		long lCount=m_wndList.GetSelectedItemCount();
		long lSize = sizeof(REQ_Corp_Oper_Add) + sizeof(REQ_Corp_Oper_Add)*(lCount-1);
		BYTE * pDataRet = new BYTE[lSize];
		memset(pDataRet , 0 , lSize );
		REQ_Corp_Oper_Add * pAdd = (REQ_Corp_Oper_Add*) pDataRet;
		REQ_Corp_Oper_Add * pAdd2= (REQ_Corp_Oper_Add*)(pDataRet + sizeof(REQ_Corp_Oper_Add));

		pAdd->lCorpCount = lCount-1;

		_tcscpy(pAdd->data.szOperName , dlg.m_strOperName );
		pAdd->data.lCorpID = pData->lAgentID;
		pAdd->data.lUserType=1 ; //��ҵ����
		pAdd->data.lOperType=59;  //������ɱ���
		_tcscpy( pAdd->data.szBZ , dlg.m_strBZ );
		_stprintf(pAdd->data.szOperMsg, _T("%d ->%d "),pData->lTCPer,dlg.m_AgentData.lTCPer);
		pAdd->lAddressCount = dlg.m_AgentData.lTCPer;  //��Ҫ�ĵ�����

		for ( int i=0 ; i<pAdd->lCorpCount ; i++ )
		{
			lItem = m_wndList.GetFirstSelectedItem(lItem);
			if ( lItem >=0 )
			{
				POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
				ANS_Agent_SeeData * pData = m_Agent.GetNext( pos );
				if ( pData )
				{
					_tcscpy(pAdd2->data.szOperName , dlg.m_strOperName );
					pAdd2->data.lCorpID = pData->lAgentID;
					pAdd2->data.lUserType=1 ; //��ҵ����
					pAdd2->data.lOperType=59;  //������ɱ���
					_tcscpy( pAdd2->data.szBZ , dlg.m_strBZ );
					_stprintf(pAdd2->data.szOperMsg, _T("%d ->%d "),pData->lTCPer,dlg.m_AgentData.lTCPer);
					pAdd2->lAddressCount = dlg.m_AgentData.lTCPer;  //��Ҫ�ĵ�����
				}
			}

			pAdd2 ++;
		}

		m_pMainFrame->SendFrame( SMSFUNC_CORP_OPER_ADD , (BYTE*)pDataRet , lSize );   //ȡ��ϵ����Ϣ

	}
}

BOOL CK_Agent::ProcessSocket(Socket_Head_Add *pHead,BYTE* pFrame)
{
	CString strTemp;
	CString str;
	//�鿴֧����¼
	if (pHead->lFuncType == SMSFUNC_AGENT_MMSPAY)
	{
		ANS_Agent_MmsPay     * pPay = (ANS_Agent_MmsPay     *)pFrame;
		ANS_Agent_MmsPayData * pData= (ANS_Agent_MmsPayData *)(pFrame+sizeof(ANS_Agent_MmsPay));
		ANS_Corp_MemberData * pMemberData= (ANS_Corp_MemberData *)(pFrame+sizeof(ANS_Agent_MmsPay)+sizeof(ANS_Agent_MmsPayData)*pPay->lCount);
		if ( pPay->lCount < 0 )   //Ȩ�޲��㣬���ش���
			return true;
#ifndef SMSCENTER_NX
		if ( pHead->lFrameLen == sizeof(ANS_Agent_MmsPay)+sizeof(ANS_Agent_MmsPayData)*pPay->lCount+sizeof(ANS_Corp_MemberData)*pPay->lMemberCount+sizeof(ANS_Agent_Exp) ) //����չͷ��
		{
			ANS_Agent_Exp        * pExp       = (ANS_Agent_Exp *)(pFrame+sizeof(ANS_Agent_MmsPay)+sizeof(ANS_Agent_MmsPayData)*pPay->lCount+sizeof(ANS_Corp_MemberData)*pPay->lMemberCount);
			if ( pExp->lExpID == CORP_AGENT_EXP_ID&& !pExp->bOK)
			{
				str.Format(_T("%sȱ�������ϣ����鲹ȫ���ٳ�ֵ���Ƿ������\r\n%s") , pPay->szAgentName,pExp->szNoData);
				int iRet=MessageBox(str,_T("��ʾ") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2);
				if ( iRet != IDYES )
				{
					return true;
				}
			}
		}
#endif
		//ȡ�û�����
		POSITION pos = (POSITION)m_wndList.GetItemData(pPay->lItem);
		ANS_Agent_SeeData * pDataC = m_Agent.GetNext( pos );
		if ( !pDataC )
			return true;

		DLG_Agent_MmsPay dlg(this);
		dlg.SetParam( *pPay , pData , pMemberData,*pDataC );
		dlg.m_bSOS = this->m_pMainFrame->m_bSOS;
		dlg.m_pMainFrame = this->m_pMainFrame;
		if ( dlg.DoModal() == IDOK && dlg.m_lModifyCount>0 )
		{
			long lSize = sizeof(REQ_Agent_MmsPayModify) + sizeof(ANS_Agent_MmsPayData)*dlg.m_lModifyCount;
			BYTE * pDataSend = new BYTE[lSize];memset( pDataSend , 0 , lSize );
			REQ_Agent_MmsPayModify * pModifySend = (REQ_Agent_MmsPayModify*)pDataSend;
			ANS_Agent_MmsPayData   * pPaySend    = (ANS_Agent_MmsPayData  *)(pDataSend+sizeof(REQ_Agent_MmsPayModify));
			pModifySend->lAgentID = pPay->lAgentID;
			pModifySend->lItem   = pPay->lItem;
			pModifySend->lTotal  = dlg.m_PayReq.lTotal;       //ȡ���޸ĺ���ܶ�
			pModifySend->lUsed= dlg.m_PayReq.lUsed;
			pModifySend->fJFTotal= dlg.m_PayReq.fJFTotal;
			pModifySend->lCount  = dlg.m_lModifyCount;
			//������������
			ANS_Agent_MmsPayData * pPayTemp;
			while (!dlg.m_Pay.IsEmpty())
			{
				pPayTemp = dlg.m_Pay.GetHead();
				dlg.m_Pay.RemoveHead();
				if (pPayTemp->ucStatus != 0 )  //��Ϊ0,��Ҫ�޸�
				{
					*pPaySend = *pPayTemp;
					if ( !m_pMainFrame->GetUserPurview(PURVIEW_CORP_MODIFY,false) )  //���Dz��񣬲�����Ӧ��ʱ��
					{
						memset(&pPaySend->tYSTime,0,sizeof(pPaySend->tYSTime));
					}
					pPaySend ++;
				}
				delete pPayTemp;
			}
			m_pMainFrame->SendFrame( SMSFUNC_AGENT_MMSPAYMODIFY , pDataSend , lSize );
		}
		else
		{
			//������������
			ANS_Agent_MmsPayData * pPayTemp;
			while (!dlg.m_Pay.IsEmpty())
			{
				pPayTemp = dlg.m_Pay.GetHead();
				dlg.m_Pay.RemoveHead();
				delete pPayTemp;
			}
		}

		return true;
	}
	//��ֵ��¼�޸�
	if (pHead->lFuncType == SMSFUNC_AGENT_MMSPAYMODIFY)
	{
		ANS_Agent_MmsPayModify* pModify = (ANS_Agent_MmsPayModify*)pFrame;
		ANS_Agent_MmsPayData  * pData   = (ANS_Agent_MmsPayData  *)(pFrame+sizeof(ANS_Agent_MmsPayModify));

		if ( pModify->lCount ==  -12 )
		{
			MessageBox( _T("���Ӷ���ʧ�ܣ�����������㣡") , _T("����") , MB_ICONWARNING );
			return true; 
		}
		if ( pModify->lCount<0 )
		{
			MessageBox( _T("���Ӷ���ʧ�ܣ�δ֪ԭ��") , _T("����") , MB_ICONWARNING );
			return true; 
		}

		if ( pModify->lItem >= 0 )
		{
			POSITION pos = (POSITION)m_wndList.GetItemData(pModify->lItem);
			ANS_Agent_SeeData * pData2 = m_Agent.GetNext( pos );
			if ( pData2 )
			{
				pData2->lMmsTotal = pModify->lTotal;
				pData2->lMmsUsed = pModify->lUsed;
				pData2->fMmsJFTotal = pModify->fJFTotal;

				strTemp.Format( _T("%10d"),pData2->lMmsUsed );
				m_wndList.SetItemText(pModify->lItem,9,strTemp);

				strTemp.Format( _T("%10d"),pData2->lMmsTotal );
				m_wndList.SetItemText(pModify->lItem,10,strTemp);

				strTemp.Format( _T("%.2f"),pData2->fMmsJFTotal );
				m_wndList.SetItemText(pModify->lItem,11,strTemp);
			}
		}
		return true;
	}

	//�鿴��ϵ��
	if (pHead->lFuncType == SMSFUNC_CORP_FP)
	{
		ANS_Corp_FP     * pFP = (ANS_Corp_FP     *)pFrame;
		if (pFP->lCount < 0)   //Ȩ�޲���
			return true;
		ANS_Corp_FPData * pData= (ANS_Corp_FPData *)(pFrame+sizeof(ANS_Corp_FP));
		ANS_Corp_LXR_YWYData * pYWYData = (ANS_Corp_LXR_YWYData *)(pFrame + sizeof(ANS_Corp_FP) + sizeof(ANS_Corp_FPData)*pFP->lCount);
		DLG_Corp_FP dlg(this);
		m_pFPDlg = &dlg;
		dlg.SetParam( *pFP , pData,1, pYWYData);  //��ҵ����Ϊ:1(����)
		if ( dlg.DoModal() == IDOK && dlg.m_lModifyCount>0)
		{
			long lSize = sizeof(REQ_Corp_FPModify) + sizeof(ANS_Corp_FPData)*dlg.m_lModifyCount;
			BYTE * pDataSend = new BYTE[lSize];memset( pDataSend , 0 , lSize );
			REQ_Corp_FPModify * pModifySend = (REQ_Corp_FPModify*)pDataSend;
			ANS_Corp_FPData   * pFPSend    = (ANS_Corp_FPData  *)(pDataSend+sizeof(REQ_Corp_FPModify));
			pModifySend->lCorpID= pFP->lCorpID;
			pModifySend->lCount = dlg.m_lModifyCount;
			//������������
			ANS_Corp_FPData * pFPTemp;
			while (!dlg.m_FP.IsEmpty())
			{
				pFPTemp = dlg.m_FP.GetHead();
				//pFPTemp->lCorpType = 0;  //ǿ��������ҵ����Ϊ:0(��ҵ)
				dlg.m_FP.RemoveHead();
				if (pFPTemp->ucStatus != 0 )  //��Ϊ0,��Ҫ�޸�
				{
					*pFPSend = *pFPTemp;
					pFPSend ++;
				}
				delete pFPTemp;
			}
			m_pMainFrame->SendFrame( SMSFUNC_CORP_FPMODIFY , pDataSend , lSize );
		}
		else
		{
			//������������
			ANS_Corp_FPData * pFPTemp;
			while (!dlg.m_FP.IsEmpty())
			{
				pFPTemp = dlg.m_FP.GetHead();
				dlg.m_FP.RemoveHead();
				delete pFPTemp;
			}
		}
		m_pFPDlg = NULL;
		return true;
	}
	//��ϵ���޸�
	if (pHead->lFuncType == SMSFUNC_CORP_FPMODIFY)
	{
		return true;
	}

	if (pHead->lFuncType == SMSFUNC_CORP_SF_SEE)
	{
		ANS_Corp_SF_See     * pSFSee = (ANS_Corp_SF_See     *)pFrame;
		if (pSFSee->lCount < 0)   //Ȩ�޲���
			return true;
		ANS_Corp_SFData * pData = (ANS_Corp_SFData *)(pFrame + sizeof(ANS_Corp_SF_See));
		ANS_Corp_LXR_YWYData * pYWYData = (ANS_Corp_LXR_YWYData *)(pFrame + sizeof(ANS_Corp_LXR) + sizeof(ANS_Corp_LXRData)*pSFSee->lCount);
		DLG_Corp_SF dlg(this);
		dlg.SetParam(pSFSee, pData, pYWYData);  //��ҵ����Ϊ:0(��ҵ)
		m_pSFDlg = &dlg;
		dlg.DoModal();
		m_pSFDlg = NULL;
		return true;
	}

	if (pHead->lFuncType == SMSFUNC_CORP_SF_ADD ||
		pHead->lFuncType == SMSFUNC_CORP_SF_CANCEL ||
		pHead->lFuncType == SMSFUNC_CORP_SF_ROUTE)
	{
		if (m_pLXRDlg)
		{
			m_pLXRDlg->ProcessSocket(pHead, pFrame);
		}
		if (m_pFPDlg)
		{
			m_pFPDlg->ProcessSocket(pHead, pFrame);
		}
		if (m_pSFDlg)
		{
			m_pSFDlg->ProcessSocket(pHead, pFrame);
		}
		return true;
	}

	if (pHead->lFuncType == SMSFUNC_CORP_ANALYSE)
	{
		if (m_pAnalyseDlg)
		{
			m_pAnalyseDlg->ProcessSocket(pHead, pFrame);
		}
		return true;
	}

	//����
	if (pHead->lFuncType == SMSFUNC_CORP_ASSIST_EXPIRY)
	{
		ANS_Corp_Assist_Expiry* pAns = (ANS_Corp_Assist_Expiry*)pFrame;

		if (pAns->iErrCode == 0)  //�ɹ�
		{
			str.Format(_T("��ҵ���ڳɹ����µĹ�����Ϊ��%04d.%02d.%02d\r\n��ˢ��������֤��"), pAns->req.tNewOvrTime.wYear, pAns->req.tNewOvrTime.wMonth, pAns->req.tNewOvrTime.wDay);
			MessageBox(str, _T("�ɹ�"), MB_ICONINFORMATION);

			POSITION pos = (POSITION)m_wndList.GetItemData(pAns->req.lItem);
			ANS_Agent_SeeData* pData2 = m_Agent.GetNext(pos);
			if (pData2)
			{
				pData2->tOvrTime = pAns->req.tNewOvrTime;    //�����µĹ���ʱ��
			}

		}
		else
		{
			str.Format(_T("��ҵ����ʧ�ܣ�%s"), pAns->szErrMsg);
			MessageBox(str, _T("����"), MB_ICONERROR);
		}
		return true;
	}

	//ȡ��ҵ��Ϣ
	if (pHead->lFuncType == SMSFUNC_CORP_ASSIST_GETCORP)
	{
		if (m_pTransferDlg)
		{
			m_pTransferDlg->ProcessSocket(pHead, pFrame);
		}
		return true;
	}
	//ת�ƶ̲���
	if (pHead->lFuncType == SMSFUNC_CORP_ASSIST_TRANSFER)
	{
		ANS_Corp_Assist_Transfer * pAns = (ANS_Corp_Assist_Transfer*)pFrame;

		if (pAns->iErrCode == 0)  //�ɹ�
		{
			str.Format(_T("ת�ƶ�/���ųɹ�����ת��%d����%d - > %d ��"), pAns->req.lSQuantity, pAns->req.lSCorpID, pAns->req.lTCorpID);
			MessageBox(str, _T("�ɹ�"), MB_ICONINFORMATION);


			POSITION pos = (POSITION)m_wndList.GetItemData(pAns->req.lItem);
			ANS_Agent_SeeData* pData2 = m_Agent.GetNext(pos);
			if (pData2)
			{
				if (pAns->req.lSCorpID == pData2->lAgentID)
				{
					if (pAns->req.lSProduct == 0)
						pData2->fUsed = pData2->fUsed - ((float)pAns->req.lSQuantity / 10.0f);
					else
						pData2->lMmsUsed = pData2->lMmsUsed - pAns->req.lSQuantity;
				}
			}

		}
		else
		{
			str.Format(_T("ת�ƶ�/������ʧ�ܣ�%s"), pAns->szErrMsg);
			MessageBox(str, _T("����"), MB_ICONERROR);
		}
		return true;
	}


	//���ڻ��գ�ȡ��ҵ��Ϣ
	if (pHead->lFuncType == SMSFUNC_CORP_ASSIST_EXPIRYRECYCLING_GET)
	{
		ANS_Corp_Assist_ExpiryRecycling_Get* pAns = (ANS_Corp_Assist_ExpiryRecycling_Get*)pFrame;

		if (pAns->iErrCode == 0)  //�ɹ�
		{
			DLG_Corp_ExpiryRecycling dlg(this);

			dlg.SetData(pAns, 1);  //�������ݣ������̿ͻ�

			if (dlg.DoModal() == IDOK)
			{

				REQ_Corp_Assist_ExpiryRecycling* pRecycling = new REQ_Corp_Assist_ExpiryRecycling;
				memset(pRecycling, 0, sizeof(REQ_Corp_Assist_ExpiryRecycling));
				pRecycling->lItem = pAns->req.lItem;
				pRecycling->lCorpID = pAns->req.lCorpID;
				pRecycling->lUserType = 1;  //0�նˣ�1-������
				pRecycling->lRecyclingSmsCount = dlg.m_lSmsRecyclingCount;
				pRecycling->lRecyclingMmsCount = dlg.m_lMmsRecyclingCount;
				_tcscpy(pRecycling->szBZ, dlg.m_strBZ);
				GetLocalTime(&pRecycling->tLocalTime);
				m_pMainFrame->SendFrame(SMSFUNC_CORP_ASSIST_EXPIRYRECYCLING, (BYTE*)pRecycling, sizeof(REQ_Corp_Assist_ExpiryRecycling));   //ȡ��ϵ����Ϣ
			}
		}
		else
		{
			str.Format(_T("�����̹��ڻ���ʧ�ܣ�%s"), pAns->szErrMsg);
			MessageBox(str, _T("����"), MB_ICONERROR);
		}
		return true;
	}
	//���ڻ���
	if (pHead->lFuncType == SMSFUNC_CORP_ASSIST_EXPIRYRECYCLING)
	{
		ANS_Corp_Assist_ExpiryRecycling* pAns = (ANS_Corp_Assist_ExpiryRecycling*)pFrame;

		if (pAns->iErrCode == 0)  //�ɹ�
		{
			str.Format(_T("�����̹��ڻ��ճɹ�����\r\n��ˢ��������֤��"));
			MessageBox(str, _T("�ɹ�"), MB_ICONINFORMATION);

			POSITION pos = (POSITION)m_wndList.GetItemData(pAns->req.lItem);
			ANS_Agent_SeeData* pData2 = m_Agent.GetNext(pos);
			if (pData2)
			{
				pData2->fUsed  = (double)pAns->lSmsBalance/10.0f;  //�����µĶ������
				pData2->lMmsUsed = pAns->lMmsBalance;  //�����µĶ������

				//pData2->lTotalSms = pData2->lTotalSms - pAns->req.lRecyclingSmsCount;  //�ܶ�����
				pData2->lMmsTotal = pData2->lMmsTotal - pAns->req.lRecyclingMmsCount;  //�ܲ�����
			}
		}
		else
		{
			str.Format(_T("�����̹��ڻ���ʧ�ܣ�%s"), pAns->szErrMsg);
			MessageBox(str, _T("����"), MB_ICONERROR);
		}
		return true;
	}

	return false;
}

void CK_Agent::On_Agent_QueryBackAgent()
{

	CString strFind;
	m_E_AgentID.GetWindowText(strFind);

	if (!m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE, false))
	{
		if (_ttol(strFind) < 100000 || _ttol(strFind) > 900000)
		{
#ifdef SMSMANAGER_KF
			if (strFind.GetLength() < 2)
#else
#ifndef SMSCENTER_ADC
			if (strFind.GetLength() < 4)
#else
			if (false)
#endif
#endif
			{
				MessageBox(_T("��ѯ��������ݹ��٣������䣡"), _T("����"), MB_ICONWARNING);
				GetDlgItem(IDC_AGENT_AGENTID)->SetFocus();
				return;
			}
		}
	}

	REQ_Agent_See3 * pSee = new REQ_Agent_See3;
	memset(pSee, 0, sizeof(REQ_Agent_See3));
	_tcscpy(pSee->szQuery, strFind);
	pSee->lQueryType = 3;  //��ѯ����������
	m_lQueryType2 = 3; //��ѯ����������

	m_pMainFrame->SendFrame(SMSFUNC_AGENT_SEE3, (BYTE*)pSee, sizeof(REQ_Agent_See3));    //ȡ��ҵ��Ϣ

	return;
}

void CK_Agent::On_Agent_Analyse()
{
	if (!m_pMainFrame->GetUserPurview(PURVIEW_FILT))
	{
		return;
	}
	long lItem = GetCurrentSelected();
	if (lItem < 0)
		return;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData * pData = m_Agent.GetNext(pos);
	if (!pData)
		return;

	m_bModify = false;


	DLG_Corp_Analyse dlg(this);
	dlg.SetParam(this->m_pMainFrame, pData->lAgentID, 1, lItem, pData->szName);
	this->m_pAnalyseDlg = &dlg;
	dlg.DoModal();
	m_pAnalyseDlg = NULL;

}


void CK_Agent::On_User_Assist_Extension()
{
	if (!m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY))
	{
		return;
	}
	long lItem = GetCurrentSelected();
	if (lItem < 0)
		return;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData* pData = m_Agent.GetNext(pos);

	if (pData->lAgentID <= 0)
		return;

	CString strYWY = GetName_YWY(pData->lYWYID);
	DLG_Corp_Extension dlg(this);
	dlg.SetData(pData->lAgentID,pData->szName, strYWY, pData->tOvrTime, 1);  //�������ݣ���ҵ���ƣ��ͻ�����������ʱ�䣬�ն˿ͻ�

	if (dlg.DoModal() == IDOK)
	{

		REQ_Corp_Assist_Expiry* pExpiry = new REQ_Corp_Assist_Expiry;
		memset(pExpiry, 0, sizeof(REQ_Corp_Assist_Expiry));
		pExpiry->lItem = lItem;
		pExpiry->lCorpID = pData->lAgentID;
		pExpiry->lType = 1;  //0�նˣ�1-������
		GetLocalTime(&pExpiry->tLocalTime);
		pExpiry->tNewOvrTime = dlg.GetData();
		_tcscpy(pExpiry->szBZ, dlg.m_strBZ);

		m_pMainFrame->SendFrame(SMSFUNC_CORP_ASSIST_EXPIRY, (BYTE*)pExpiry, sizeof(REQ_Corp_Assist_Expiry));   //ȡ��ϵ����Ϣ

	}


}
void CK_Agent::On_User_Assist_SmsTransfer()
{
	On_User_Assist_Transfer(0, 0);
}
void CK_Agent::On_User_Assist_MmsTransfer()
{
	On_User_Assist_Transfer(1, 1);
}
void CK_Agent::On_User_Assist_SmsMmsTransfer()
{
	On_User_Assist_Transfer(0, 1);
}

void CK_Agent::On_User_Assist_Transfer(long lSProduct, long lTProduct)
{
	if (!m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY))
	{
		return;
	}
	long lItem = GetCurrentSelected();
	if (lItem < 0)
		return;


	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData* pData = m_Agent.GetNext(pos);
	if (!pData)
		return;

	DLG_Corp_Transfer dlg(this);
	dlg.SetParam(this->m_pMainFrame, lItem, pData->lAgentID, 1/*������*/, lSProduct, lTProduct);
	this->m_pTransferDlg = &dlg;
	int iRet = dlg.DoModal();
	m_pTransferDlg = NULL;

	if (iRet == IDOK)  //���ͽ���ת�Ʋ���
	{

	}
}

void CK_Agent::On_User_Assist_ExpiryRecycling()
{
	if (!m_pMainFrame->GetUserPurview(PURVIEW_CORP_PAY))
	{
		return;
	}
	long lItem = GetCurrentSelected();
	if (lItem < 0)
		return;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	ANS_Agent_SeeData* pData = m_Agent.GetNext(pos);
	if (!pData)
		return;

	REQ_Corp_Assist_ExpiryRecycling_Get* pExpiry = new REQ_Corp_Assist_ExpiryRecycling_Get;
	memset(pExpiry, 0, sizeof(REQ_Corp_Assist_ExpiryRecycling_Get));
	pExpiry->lItem = lItem;
	pExpiry->lCorpID = pData->lAgentID;
	pExpiry->lUserType = 1;  //0�նˣ�1-������
	GetLocalTime(&pExpiry->tLocalTime);

	m_pMainFrame->SendFrame(SMSFUNC_CORP_ASSIST_EXPIRYRECYCLING_GET, (BYTE*)pExpiry, sizeof(REQ_Corp_Assist_ExpiryRecycling_Get));   //ȡ��ϵ����Ϣ
}