// DLG_Corp_Pay.cpp : implementation file
//

#include "stdafx.h"
#include "smsmanager.h"
#include "DLG_Corp_Pay.h"

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

/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_Pay dialog

#include "DLG_Corp_Pay_Modify.h"
#include "DLG_Corp_FP.h"

DLG_Corp_Pay::DLG_Corp_Pay(CWnd* pParent /*=NULL*/)
	: CDialog(DLG_Corp_Pay::IDD, pParent)
{
	//{{AFX_DATA_INIT(DLG_Corp_Pay)
	m_strSMSNum = _T("");
	m_strCorpName = _T("");
	m_strSMSUsed = _T("");
	m_strTotal = _T("");
	//}}AFX_DATA_INIT
	m_lModifyCount = 0;
	memset( &m_PayReq , 0 , sizeof(m_PayReq) );
	m_pPayData     = NULL;
	m_pMemberData  = NULL;
	m_lModifyType = 0;
	m_bCommend    = true;
	m_bSOS = false;
	m_pMainFrame = NULL;
	memset(&m_corp,0,sizeof(m_corp));
}


void DLG_Corp_Pay::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(DLG_Corp_Pay)
	DDX_Control(pDX, IDC_CORP_PAY_LIST, m_wndList);
	DDX_Text(pDX, IDC_CORP_PAY_SMSNUM, m_strSMSNum);
	DDX_Text(pDX, IDC_CORP_PAY_CORPNAME, m_strCorpName);
	DDX_Text(pDX, IDC_CORP_PAY_SMSUSED, m_strSMSUsed);
	DDX_Text(pDX, IDC_CORP_PAY_TOTAL, m_strTotal);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(DLG_Corp_Pay, CDialog)
	//{{AFX_MSG_MAP(DLG_Corp_Pay)
	ON_BN_CLICKED(IDC_CORP_PAY_ADD, OnCorpPayAdd)
	ON_NOTIFY(NM_DBLCLK, IDC_CORP_PAY_LIST, OnDblclkCorpPayList)
	ON_BN_CLICKED(IDC_CORP_PAY_SEE, OnCorpPaySee)
	ON_BN_CLICKED(IDC_CORP_PAY_ZX, OnCorpPayZx)

	//}}AFX_MSG_MAP
	ON_BN_CLICKED(IDC_CORP_PAY_MODIFY, &DLG_Corp_Pay::OnBnClickedCorpPayModify)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// DLG_Corp_Pay message handlers

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

	m_strCorpName = m_PayReq.szCorpName;
	m_strSMSNum   = m_PayReq.szSMSNum;
	m_strSMSUsed.Format( _T("%d") , m_PayReq.lSmsUsed );
	m_strTotal.Format( _T("%.2f") , m_PayReq.fTotal );

	this->UpdateData(false);
	
	//��ʼ��List
	m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
	m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CORP) );
	m_wndList.SubClassWindow2();
#ifdef SMSCENTER_ADC
	m_wndList.SetHeadings(_T("���,50; ������,80;��ֵ����,80;ADC״̬,80;��ֵ��ʽ,80;��ֵ���,80; ����,80;  С��,70;  ����,70; ������,70;�������,70;Ԥ��Ʊ,55;Ӧ��,55;����,55;�ɱ�,55;��ֵʱ��,130;����ʱ��,130;�տ�ʱ��,130; ��Ʊ,80;��Ʊ״̬,80;��Ʊʱ��,130;������Ʒ,80;��Ʒ��ֵ,80;������,80;�Ƽ�����,80;  �� ע,130;ADC�������,130;ADC�����ʱ��,130;"));
	GetDlgItem(IDC_CORP_PAY_ZX)->ShowWindow(SW_SHOW);
#else
	m_wndList.SetHeadings(_T("���,50; ������,80;��ֵ��ʽ,80;��ֵ���,80; ����,80;  С��,70;  ����,70; ������,70;�������,70;Ԥ��Ʊ,55;Ӧ��,55;����,55;�ɱ�,55;��ֵʱ��,130;����ʱ��,130;�տ�ʱ��,130; ��Ʊ,80;��Ʊ״̬,80;��Ʊʱ��,130;������Ʒ,80;��Ʒ��ֵ,80;������,80;�Ƽ�����,80;  �� ע,130;"));
#endif
	m_wndList.SetGridLines(true);
	m_wndList.SetImageList(&m_Image,LVSIL_SMALL);

//#ifndef SMSMANAGER_KF
	POSITION pos;
	TCHAR Buf[32];
	CString str;
	for ( int ii = 0 ; ii< m_PayReq.lCount ; ii++ )
	{
		if ( m_bSOS )  //����ģʽ�£��ǿ�Ʊ���ݲ���ʾ
		{
			if ( m_pPayData[ii].bFP!=1 &&m_pPayData[ii].bFP!=2 )
			{
				continue;
			}
		}

		ANS_Corp_PayData * pData = new ANS_Corp_PayData;
		*pData = m_pPayData[ii];
		pos = m_Pay.AddTail( pData );
		int i=m_wndList.GetItemCount();
		_stprintf( Buf , _T("%d") , i+1 );
		m_wndList.InsertItem( i , Buf , 0 );   //ItemΪ0��ԭ���ǵ�ת��ʾ
		m_wndList.SetItemData( i , (DWORD_PTR)pos);
		int iIndex=1;
		//m_wndList.SetItemText( i , 1 , pData->szPayMan );
		m_wndList.SetItemText( i , iIndex++ , pData->szCreateUser );
#ifdef SMSCENTER_ADC
		if ( pData->lPayType ==1 )
			m_wndList.SetItemText( i , iIndex++ , _T("ADC��ֵ") );
		else
			m_wndList.SetItemText( i , iIndex++ , _T("�����׳�ֵ") );
		if ( pData->lPayType ==1 )
		{
			switch( pData->lAdcStatus )
			{
			case 1:
				m_wndList.SetItemText( i , iIndex++ , _T("������") );
				break;
			case 2:
				m_wndList.SetItemText( i , iIndex++ , _T("�ѳ�ֵ") );
				break;
			case 3:
				m_wndList.SetItemText( i , iIndex++ , _T("��ע��") );
				break;
			case 4:
				m_wndList.SetItemText( i , iIndex++ , _T("�Ѻ˷�Ʊ") );
				break;
			default:
				m_wndList.SetItemText( i , iIndex++ , _T("���") );
			}
		}
		else
		{
			iIndex++;
		}
#endif
		m_wndList.SetItemText( i , iIndex++ , pData->szPayMode );
		_stprintf( Buf , _T("%8.2f") , pData->fPrice );
		m_wndList.SetItemText( i , iIndex++ , Buf );
		_stprintf( Buf , _T("%8.4f") , pData->fPriceOne);
		m_wndList.SetItemText( i , iIndex++ , Buf );

		double l = 0.0f;
		if ( pData->fPrice!=0 || pData->fPriceOne!=0 )
			l = pData->fPrice/pData->fPriceOne;
		long a = long(l+0.5f);
		if ( l< 0 )
			a = long(l-0.5f);
		_stprintf( Buf , _T("%8d") , a);
		m_wndList.SetItemText( i , iIndex++ , Buf );

		_stprintf( Buf , _T("%8d") , pData->lPresent);
		m_wndList.SetItemText( i , iIndex++ , Buf );
		_stprintf( Buf , _T("%8d") , pData->lSMSCount);
		m_wndList.SetItemText( i , iIndex++ , Buf );
		_stprintf( Buf , _T("%8d") , pData->lBalance);  //�������
		m_wndList.SetItemText( i , iIndex++ , Buf );
		switch(pData->lYSType )
		{
		case 0:
		default:
			iIndex++;
			break;
		case 1:
			m_wndList.SetItemText( i , iIndex++ , _T(" ��") );
			break;
		case 2:
			m_wndList.SetItemText( i , iIndex++ , _T("����") );
			break;
			 
		}
		if ( pData->bYS )
			m_wndList.SetItemText( i , iIndex++ , _T("��") );
		else
			iIndex++;
		if ( pData->bTest )
			m_wndList.SetItemText( i , iIndex++ , _T("��") );
		else
			iIndex++;
		if ( pData->bCB )
			m_wndList.SetItemText( i , iIndex++ , _T("��") );
		else
			iIndex++;
		_stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tPayTime.wYear,pData->tPayTime.wMonth,pData->tPayTime.wDay,pData->tPayTime.wHour,pData->tPayTime.wMinute );
		m_wndList.SetItemText( i , iIndex++ , Buf);
		_stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tOvrTime.wYear,pData->tOvrTime.wMonth,pData->tOvrTime.wDay,pData->tOvrTime.wHour,pData->tOvrTime.wMinute );
		m_wndList.SetItemText( i , iIndex++ , Buf);

		_stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tYSTime.wYear,pData->tYSTime.wMonth,pData->tYSTime.wDay,pData->tYSTime.wHour,pData->tYSTime.wMinute );
		m_wndList.SetItemText( i , iIndex++ , Buf);
		if ( pData->bFP>0 )
		{
			CString strType = DLG_Corp_FP::GetFPType2(pData->bFP);
			m_wndList.SetItemText( i , iIndex++ , strType );
			switch(pData->lFPStatus)
			{
			case 0:
			default:
				 m_wndList.SetItemText( i , iIndex++ , _T("δ��Ʊ") );
				 break;
			case 1:
				 m_wndList.SetItemText( i , iIndex++ , _T("�ѿ�Ʊ") );
				 break;
			case 2:
				 m_wndList.SetItemText( i , iIndex++ , _T("�Ѽij�") );
				 break;
			}
			if ( pData->lFPStatus>0 )
			{
				_stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tFPTime.wYear,pData->tFPTime.wMonth,pData->tFPTime.wDay,pData->tFPTime.wHour,pData->tFPTime.wMinute );
				m_wndList.SetItemText( i , iIndex++ , Buf);
			}
			else
			{
				iIndex++;
			}
		}
		else
		{
			iIndex+=3;
		}
		switch( pData->lLPType )
		{
		case 1:
			 m_wndList.SetItemText( i , iIndex++ , _T("��ֵ��") );
			 break;
		case 2:
			 m_wndList.SetItemText( i , iIndex++ , _T("�ֽ�") );
			 break;
		case 3:
			m_wndList.SetItemText(i, iIndex++, _T("������"));
			break;
		case 4:
			m_wndList.SetItemText(i, iIndex++, _T("ת������"));
			break;
		case 5:
			m_wndList.SetItemText(i, iIndex++, _T("������Ʒ"));
			break;
		case 0:
		default:
			 m_wndList.SetItemText( i , iIndex++ , _T("��") );
			 break;
		}
		str.Format( _T("%.2f") , pData->fLPPrice );
		m_wndList.SetItemText( i , iIndex++ , str);

		str = _T(""); //������
		for ( int j=0 ; j<m_PayReq.lMemberCount ; j++ )
		{
			if ( pData->lLXRID == m_pMemberData[j].lLXRID )
			{
				str = m_pMemberData[j].szName;
				break;
			}
		}
		m_wndList.SetItemText( i , iIndex++ , str);
		
		str.Format( _T("%d") , pData->lCommend_VipInt );  //�Ƽ�����
		m_wndList.SetItemText( i , iIndex++ , str);
		if ( pData->lCommend_VipInt>0 )
			m_bCommend = false;  //�������������Ƽ�������

		m_wndList.SetItemText( i , iIndex++ , pData->szBZ);
#ifdef SMSCENTER_ADC
		m_wndList.SetItemText( i , iIndex++ , pData->szAdcProcessUser );
		_stprintf( Buf , _T("%04d.%02d.%02d") , pData->tAdcPayTime.wYear,pData->tAdcPayTime.wMonth,pData->tAdcPayTime.wDay);
		m_wndList.SetItemText( i , iIndex++ , Buf);
#endif

		if ( m_bSOS )  //����ģʽ�£�����һ������ݲ���ʾ
		{
			COleDateTime t1(pData->tPayTime);
			if ( t1.GetStatus() == COleDateTime::valid)
			{
				if ( COleDateTime::GetCurrentTime() - t1 >= COleDateTimeSpan(365,0,0,0) )
					break;
			}
		}

	}
//#endif
#ifndef SMSCENTER_ADC
	if ( m_lModifyType == -1 )
	{
		GetDlgItem(IDC_CORP_PAY_ADD)->EnableWindow(false);
	}
#endif

#ifdef SMSMANAGER_KF
	GetDlgItem(IDC_CORP_PAY_SMSUSED_S1)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_CORP_PAY_SMSUSED)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_CORP_PAY_TOTAL_S)->ShowWindow(SW_HIDE);
	GetDlgItem(IDC_CORP_PAY_TOTAL)->ShowWindow(SW_HIDE);
#endif

	if ( m_bSOS )
	{
		GetDlgItem(IDC_CORP_PAY_SMSUSED_S1)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_CORP_PAY_SMSUSED)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_CORP_PAY_TOTAL_S)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_CORP_PAY_TOTAL)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_CORP_PAY_SEE)->ShowWindow(SW_HIDE);
		GetDlgItem(IDC_CORP_PAY_ZX)->ShowWindow(SW_HIDE);

		m_wndList.SetColumnWidth(1,0);
		m_wndList.SetColumnWidth(2,0);
		m_wndList.SetColumnWidth(4,0);
		m_wndList.SetColumnWidth(5,0);
		m_wndList.SetColumnWidth(9,0);
		m_wndList.SetColumnWidth(10,0);
		m_wndList.SetColumnWidth(11,0);
		m_wndList.SetColumnWidth(12,0);
		//�������õ�����
		for ( int i=16;i<=23;i++ )
		{
			m_wndList.SetColumnWidth(i,0);
		}
		m_wndList.GetHeaderCtrl()->EnableWindow(false);

	}

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

void DLG_Corp_Pay::SetParam(ANS_Corp_Pay Pay, ANS_Corp_PayData *pPayData,ANS_Corp_MemberData * pMemberData,long lModifyType,ANS_Corp_SeeData corp)
{
	m_PayReq    = Pay;
	m_pPayData  = pPayData;
	m_pMemberData=pMemberData;
	m_lModifyType=lModifyType;
	m_corp = corp;
}


void DLG_Corp_Pay::OnCorpPayAdd() 
{
	if ( m_lModifyType == 1 )
	{
		int iRet=MessageBox( _T("����ҵ�Ǵ����̵��û�����������������������ֵ���Ƿ������"),_T("����") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
		if ( iRet != IDYES )
			return ;
	}
	DLG_Corp_Pay_Modify dlg(this);
	
	CString str;
	dlg.SetCorpData(m_PayReq,m_pMemberData,m_bCommend,m_corp);
	dlg.m_bSOS = m_bSOS;
	if ( dlg.DoModal() == IDOK )
	{
		ANS_Corp_PayData * pData = new ANS_Corp_PayData;
		*pData = dlg.GetParam();
		pData->ucStatus = CORP_PAY_ADD;
		pData->bYS = true;  //Ĭ��ȫ����Ӧ�գ������޸ij�����

		m_lModifyCount ++;    //��Ҫ�޸ĵļ�¼����
		POSITION pos = m_Pay.AddTail( pData );
		long lCount = m_wndList.GetItemCount();
		TCHAR Buf[32];
		_stprintf( Buf, _T("%d") , lCount +1 );
		//�����µ�����

		int iIndex=1;
		m_wndList.InsertItem( 0 , Buf , 0);   //ItemΪ0��ԭ���ǵ�ת��ʾ
		m_wndList.SetItemData( 0, (DWORD_PTR)pos );
		m_wndList.SetItemText( 0 , iIndex++ , pData->szPayMan );
#ifdef SMSCENTER_ADC
		if ( pData->lPayType ==1 )
			m_wndList.SetItemText( 0 , iIndex++ , _T("ADC��ֵ") );
		else
			m_wndList.SetItemText( 0 , iIndex++ , _T("�����׳�ֵ") );
		if ( pData->lPayType ==1 )
		{
			switch( pData->lAdcStatus )
			{
			case 1:
				m_wndList.SetItemText( 0 , iIndex++ , _T("������") );
				break;
			case 2:
				m_wndList.SetItemText( 0 , iIndex++ , _T("�ѳ�ֵ") );
				break;
			case 3:
				m_wndList.SetItemText( 0 , iIndex++ , _T("��ע��") );
				break;
			default:
				m_wndList.SetItemText( 0 , iIndex++ , _T("���") );
			}
		}
		else
		{
			iIndex++;
		}
#endif
		m_wndList.SetItemText( 0 , iIndex++ , pData->szPayMode );
		_stprintf( Buf , _T("%8.2f") , pData->fPrice );
		m_wndList.SetItemText( 0 , iIndex++ , Buf );
		_stprintf( Buf , _T("%8.4f") , pData->fPriceOne);
		m_wndList.SetItemText( 0 , iIndex++ , Buf );

		double l = 0.0f;
		if (pData->fPrice!=0 && pData->fPriceOne!=0 )
			l=pData->fPrice/pData->fPriceOne;
		long a = long(l+0.5f);
		if ( l< 0 )
			a = long(l-0.5f);
		_stprintf( Buf , _T("%8d") , a);
		m_wndList.SetItemText( 0 , iIndex++ , Buf );

		_stprintf( Buf , _T("%8d") , pData->lPresent);
		m_wndList.SetItemText( 0 , iIndex++ , Buf );
		_stprintf( Buf , _T("%8d") , pData->lSMSCount);
		m_wndList.SetItemText( 0 , iIndex++ , Buf );

		iIndex++;  //���

		switch(pData->lYSType )
		{
		case 0:
		default:
			iIndex++;
			break;
		case 1:
			m_wndList.SetItemText( 0 , iIndex++ , _T(" ��") );
			break;
		case 2:
			m_wndList.SetItemText( 0 , iIndex++ , _T("����") );
			break;
			 
		}
		if ( pData->bYS )
			m_wndList.SetItemText( 0 , iIndex++ , _T("��") );
		else
			iIndex++;
		if ( pData->bTest )
			m_wndList.SetItemText( 0 , iIndex++ , _T("��") );
		else
			iIndex++;
		if ( pData->bCB )
			m_wndList.SetItemText( 0 , iIndex++ , _T("��") );
		else
			iIndex++;

		_stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tPayTime.wYear,pData->tPayTime.wMonth,pData->tPayTime.wDay,pData->tPayTime.wHour,pData->tPayTime.wMinute );
		m_wndList.SetItemText( 0 , iIndex++ , Buf);
		_stprintf( Buf , _T("%04d.%02d.%02d %02d:%02d") , pData->tOvrTime.wYear,pData->tOvrTime.wMonth,pData->tOvrTime.wDay,pData->tOvrTime.wHour,pData->tOvrTime.wMinute );
		m_wndList.SetItemText( 0 , iIndex++ , Buf);
		iIndex++;
		if ( pData->bFP )
			m_wndList.SetItemText( 0 , iIndex++ , _T("��") );
		else
			iIndex++;
		iIndex++;
		iIndex++;

		switch( pData->lLPType )
		{
		case 1:
			 m_wndList.SetItemText( 0 , iIndex++ , _T("��ֵ��") );
			 break;
		case 2:
			 m_wndList.SetItemText( 0 , iIndex++ , _T("�ֽ�") );
			 break;
		case 3:
			m_wndList.SetItemText(0, iIndex++, _T("������"));
			break;
		case 4:
			m_wndList.SetItemText(0, iIndex++, _T("ת������"));
			break;
		case 5:
			m_wndList.SetItemText(0, iIndex++, _T("������Ʒ"));
			break;
		case 0:
		default:
			 m_wndList.SetItemText( 0 , iIndex++ , _T("��") );
			 break;
		}
		str.Format( _T("%.2f") , pData->fLPPrice );
		m_wndList.SetItemText( 0 , iIndex++ , str);
		str = _T(""); //������
		for ( int i=0 ; i<m_PayReq.lMemberCount ; i++ )
		{
			if ( pData->lLXRID == m_pMemberData[i].lLXRID )
			{
				str = m_pMemberData[i].szName;
				break;
			}
		}
		m_wndList.SetItemText( 0 , iIndex++ , str);
		str.Format( _T("%d") , pData->lCommend_VipInt );  //�Ƽ�����
		m_wndList.SetItemText( 0 , iIndex++ , str);

		m_wndList.SetItemText( 0 , iIndex++ , pData->szBZ);

		//��������
#ifdef SMSCENTER_ADC
		if ( pData->lPayType ==0  && pData->lYSType ==0 ) //�����ײ���������
#else
		if ( pData->lYSType ==0  ) //��Ԥ��IJż�
#endif
		{
			m_PayReq.fTotal += pData->fPrice;
			m_PayReq.lTotalSms += pData->lSMSCount;
			m_PayReq.lSmsUsed += pData->lSMSCount;
			m_strSMSUsed.Format( _T("%d") , m_PayReq.lSmsUsed );
			m_strTotal.Format( _T("%.2f") , m_PayReq.fTotal );
		}
		this->UpdateData(false);
	}	
}

void DLG_Corp_Pay::OnOK() 
{
	
	CDialog::OnOK();
}

void DLG_Corp_Pay::OnDblclkCorpPayList(NMHDR* pNMHDR, LRESULT* pResult) 
{
	OnCorpPaySee();
	
	*pResult = 0;
}

void DLG_Corp_Pay::OnCorpPaySee() 
{
	if ( m_bSOS )
	{
		return ;
	}
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	TCHAR Buf[128]={0};
	CString str;
	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	POSITION pos2 = pos;
	ANS_Corp_PayData * pData = m_Pay.GetNext( pos );
	if (pData)
	{
		DLG_Corp_Pay_Modify dlg(this);
		dlg.SetCorpData(m_PayReq,m_pMemberData,m_bCommend,m_corp);

#ifndef SMSMANAGER_KF
		if ( this->m_PayReq.lCorpID == 100152 && pData->ucStatus ==0 && COleDateTime::GetCurrentTime()-COleDateTime(pData->tPayTime)<COleDateTimeSpan(60,0,0,0))  //�´��µ������޸�����
		{
			dlg.SetParam( *pData,2);
			float fPriceCE = 0;
			long  lSmsCountCE=0;
			if ( dlg.DoModal() == IDOK )
			{
				ANS_Corp_PayData * pData2 = new ANS_Corp_PayData;
				*pData2 = dlg.GetParam();
				pData2->ucStatus = CORP_PAY_MODIFY;
				m_lModifyCount ++;    //��Ҫ�޸ĵļ�¼����
				fPriceCE   = pData2->fPrice - pData->fPrice;
				lSmsCountCE= pData2->lSMSCount - pData->lSMSCount;

				pData2->fPriceOne = fPriceCE;  //������
				pData2->lPresent  = lSmsCountCE;
				str.Format( _T("\r\n����ǰ���:%.2f") , pData->fPrice);
				_tcscat(pData2->szBZ , str );

				*pData = * pData2;
				delete pData2;

				//POSITION pos = m_Pay.AddTail( pData2 );
				
				
#ifdef SMSCENTER_ADC
				_stprintf( Buf , _T("%8.2f") , pData->fPrice );
				m_wndList.SetItemText( lItem , 5 , Buf );
				_stprintf( Buf , _T("%8d") , pData->lSMSCount);
				m_wndList.SetItemText( lItem , 9 , Buf );
#else
				_stprintf( Buf , _T("%8.2f") , pData->fPrice );
				m_wndList.SetItemText( lItem , 3 , Buf );
				_stprintf( Buf , _T("%8d") , pData->lSMSCount);
				m_wndList.SetItemText( lItem , 7 , Buf );
#endif
				
				//��������
#ifdef SMSCENTER_ADC
				if ( pData->lPayType ==0  && pData->lYSType ==0 ) //�����ײ���������
#else
				if ( pData->lYSType ==0  ) //��Ԥ��IJż�
#endif
				{
					m_PayReq.fTotal += fPriceCE;
					m_PayReq.lTotalSms += lSmsCountCE;
					m_PayReq.lSmsUsed += lSmsCountCE;
					m_strSMSUsed.Format( _T("%d") , m_PayReq.lSmsUsed );
					m_strTotal.Format( _T("%.2f") , m_PayReq.fTotal );
				}
				this->UpdateData(false);
			}
		}
		else
		{
			dlg.SetParam( *pData,false);
			dlg.DoModal();
		}
#else
		dlg.SetParam( *pData,false);
		dlg.DoModal();
#endif
	}			
}

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

void DLG_Corp_Pay::OnCorpPayZx() 
{
#ifdef SMSCENTER_ADC
	
	long lItem = GetCurrentSelected();
	if ( lItem < 0 )
		return ;

	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	POSITION pos2 = pos;
	ANS_Corp_PayData * pData = m_Pay.GetNext( pos );
	if (pData && pData->lPayType==1 && pData->lAdcStatus<=0)
	{
		CString str;
		ANS_Corp_PayData * pData2 = new ANS_Corp_PayData;
		memset(pData2 , 0 , sizeof(ANS_Corp_PayData));

		*pData2 = *pData;
		pData2->ucStatus = CORP_PAY_ZX;
		pData2->lPayID = pData->lPayID;


		m_lModifyCount ++;    //��Ҫ�޸ĵļ�¼����
		POSITION pos = m_Pay.AddTail( pData2 );

		m_wndList.SetItemText(lItem , 3 , _T("ע ��"));
	}		

#endif
}

void DLG_Corp_Pay::OnBnClickedCorpPayModify()
{
	if (m_bSOS)
	{
		return;
	}
	long lItem = GetCurrentSelected();
	if (lItem < 0)
		return;

	CString str,str2;
	POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
	POSITION pos2 = pos;
	ANS_Corp_PayData* pData = m_Pay.GetNext(pos);
	if (pData && m_pMainFrame)
	{
		DLG_Corp_Pay_Modify dlg(this);
		dlg.SetCorpData(m_PayReq, m_pMemberData, m_bCommend, m_corp);

#ifndef SMSMANAGER_KF
		BOOL bAllowModify = false;
		if (m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD, false))  //ֻ�л�С������Ȩ��
		{
			if (pData->ucStatus == 0 && COleDateTime::GetCurrentTime() - COleDateTime(pData->tPayTime) < COleDateTimeSpan(180, 0, 0, 0))  //�´��µ������޸�����
				bAllowModify = true;
		}
		else
		{
			if (pData->ucStatus == 0 && pData->bYS && COleDateTime::GetCurrentTime() - COleDateTime(pData->tPayTime) < COleDateTimeSpan(180, 0, 0, 0))  //�´��µ������޸�����
				bAllowModify = true;
		}
		if (bAllowModify)
		{
			dlg.SetParam(*pData, 2);
			if (dlg.DoModal() == IDOK)
			{
				ANS_Corp_PayData* pData2 = new ANS_Corp_PayData;
				*pData2 = dlg.GetParam();
				BOOL bChange = false;
				SYSTEMTIME t; GetLocalTime(&t);
				if (_tcscmp(pData2->szPayMode, pData->szPayMode) != 0)
				{
					if (!bChange)
						str.Format(_T("%s\r\n%s��%04d.%02d.%02d�޸�"), pData->szBZ,m_pMainFrame->m_Setup.szUser, t.wYear, t.wMonth, t.wDay);
					bChange = true;
					str2.Format(_T("\r\n%s->%s"), pData->szPayMode,pData2->szPayMode);
					str.Append(str2);

					m_wndList.SetItemText(lItem, 2, pData->szPayMode);
				}
				if (pData->bTest != pData2->bTest)
				{
					if (!bChange)
						str.Format(_T("%s\r\n%s��%04d.%02d.%02d�޸�"), pData->szBZ, m_pMainFrame->m_Setup.szUser, t.wYear, t.wMonth, t.wDay);
					bChange = true;
					str2.Format(_T("\r\n���ԣ�%d->%d"), pData->bTest, pData2->bTest);
					str.Append(str2);
				}
				if (pData->tYSTime.wYear!= pData2->tYSTime.wYear || pData->tYSTime.wMonth != pData2->tYSTime.wMonth || pData->tYSTime.wDay != pData2->tYSTime.wDay )
				{
					if (!bChange)
						str.Format(_T("%s\r\n%s��%04d.%02d.%02d�޸�"), pData->szBZ, m_pMainFrame->m_Setup.szUser, t.wYear, t.wMonth, t.wDay);
					bChange = true;
					str2.Format(_T("\r\n�տ�ʱ��%04d.%02d.%02d->%04d.%02d.%02d"), pData->tYSTime.wYear, pData->tYSTime.wMonth, pData->tYSTime.wDay, pData2->tYSTime.wYear, pData2->tYSTime.wMonth, pData2->tYSTime.wDay);
					str.Append(str2);
				}
				if (pData->lLPType != pData2->lLPType)
				{
					if (!bChange)
						str.Format(_T("%s\r\n%s��%04d.%02d.%02d�޸�"), pData->szBZ, m_pMainFrame->m_Setup.szUser, t.wYear, t.wMonth, t.wDay);
					bChange = true;
					str2.Format(_T("\r\n��Ʒ���ͣ�%d->%d"), pData->lLPType, pData2->lLPType);
					str.Append(str2);
				}
				if (pData->lLXRID != pData2->lLXRID)
				{
					if (!bChange)
						str.Format(_T("%s\r\n%s��%04d.%02d.%02d�޸�"), pData->szBZ, m_pMainFrame->m_Setup.szUser, t.wYear, t.wMonth, t.wDay);
					bChange = true;
					str2.Format(_T("\r\n��Ʒ����%d->%d"), pData->lLXRID, pData2->lLXRID);
					str.Append(str2);
				}
				if (pData->fLPPrice != pData2->fLPPrice)
				{
					if (!bChange)
						str.Format(_T("%s\r\n%s��%04d.%02d.%02d�޸�"), pData->szBZ, m_pMainFrame->m_Setup.szUser, t.wYear, t.wMonth, t.wDay);
					bChange = true;
					str2.Format(_T("\r\n��Ʒ�۸�%.0f->%.0f"), pData->fLPPrice, pData2->fLPPrice);
					str.Append(str2);
				}
				if (bChange)
				{
					if (str.GetLength() > 200)
						str = str.Left(200);

						_tcscpy(pData2->szBZ, str);


					pData2->ucStatus = CORP_PAY_MODIFY;
					m_lModifyCount++;    //��Ҫ�޸ĵļ�¼����

					*pData = *pData2;
				}

				delete pData2;

				//POSITION pos = m_Pay.AddTail( pData2 );

			}
		}
		else
		{
			dlg.SetParam(*pData, false);
			dlg.DoModal();
		}
#else
		dlg.SetParam(*pData, false);
		dlg.DoModal();
#endif
	}
}