SmsManager/DLG_Corp_Pay.cpp

781 lines
22 KiB
C++
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

// 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 ) //·ÇÔ¤³äµÄ²Å¼Ó
#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 ) //·ÇÔ¤³äµÄ²Å¼Ó
#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
}
}