418 lines
11 KiB
C++
418 lines
11 KiB
C++
// DLG_Corp_FuncPay.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "smsmanager.h"
|
|
#include "DLG_Corp_FuncPay.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_Corp_FuncPay dialog
|
|
|
|
#include "DLG_Corp_FuncPay_Modify.h"
|
|
#include "DLG_Corp_FP.h"
|
|
|
|
DLG_Corp_FuncPay::DLG_Corp_FuncPay(CWnd* pParent /*=NULL*/)
|
|
: CDialog(DLG_Corp_FuncPay::IDD, pParent)
|
|
{
|
|
//{{AFX_DATA_INIT(DLG_Corp_FuncPay)
|
|
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_fFuncTotal=0.0f;
|
|
m_lModifyType = 0;
|
|
|
|
m_bSOS = false;
|
|
m_pMainFrame = NULL;
|
|
}
|
|
|
|
|
|
void DLG_Corp_FuncPay::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(DLG_Corp_FuncPay)
|
|
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_FuncPay, CDialog)
|
|
//{{AFX_MSG_MAP(DLG_Corp_FuncPay)
|
|
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)
|
|
//}}AFX_MSG_MAP
|
|
ON_BN_CLICKED(IDC_CORP_PAY_MODIFY, &DLG_Corp_FuncPay::OnBnClickedCorpPayModify)
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// DLG_Corp_FuncPay message handlers
|
|
|
|
BOOL DLG_Corp_FuncPay::OnInitDialog()
|
|
{
|
|
CDialog::OnInitDialog();
|
|
|
|
|
|
//初始化List
|
|
m_Image.Create(16,16,ILC_COLOR16|ILC_MASK,5,5);
|
|
m_Image.Add(AfxGetApp()->LoadIcon(IDI_L_CORP) );
|
|
m_wndList.SubClassWindow2();
|
|
m_wndList.SetHeadings(_T("序号,50; 出单人,80;充值方式,80;充值金额,80; 功能,80; 类型,60;应收,55;测试,55;充值时间,130;收款时间,130; 发票,80;发票状态,80;开票时间,130; 备 注,130;"));
|
|
m_wndList.SetGridLines(true);
|
|
m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
|
|
|
|
POSITION pos;
|
|
TCHAR Buf[32];
|
|
for ( int i = 0 ; i< m_PayReq.lCount ; i++ )
|
|
{
|
|
ANS_Corp_FuncPayData * pData = new ANS_Corp_FuncPayData;
|
|
*pData = m_pPayData[i];
|
|
pos = m_Pay.AddTail( pData );
|
|
_stprintf( Buf , _T("%d") , i+1 );
|
|
m_wndList.InsertItem( i , Buf , 0 ); //Item为0的原因是倒转显示
|
|
m_wndList.SetItemData( i , (DWORD)pos);
|
|
m_wndList.SetItemText( i , 1 , pData->szPayMan );
|
|
m_wndList.SetItemText( i , 1 , pData->szCreateUser );
|
|
m_wndList.SetItemText( i , 2 , pData->szPayMode );
|
|
_stprintf( Buf , _T("%8.2f") , pData->fPrice );
|
|
m_wndList.SetItemText( i , 3 , Buf );
|
|
//开通的功能
|
|
m_wndList.SetItemText( i , 4 , GetFuncToTxt(pData->lFuncID) );
|
|
if ( pData->lType==0 )
|
|
m_wndList.SetItemText( i , 5 , _T(" 关闭") );
|
|
else
|
|
m_wndList.SetItemText( i , 5 , _T(" 开通") );
|
|
if ( pData->bYS )
|
|
m_wndList.SetItemText( i , 6 , _T("是") );
|
|
if ( pData->bTest )
|
|
m_wndList.SetItemText( i , 7 , _T("是") );
|
|
_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 , 8 , 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 , 9 , Buf);
|
|
if ( pData->bFP )
|
|
{
|
|
CString strType = DLG_Corp_FP::GetFPType2(pData->bFP);
|
|
m_wndList.SetItemText( i , 10 , strType );
|
|
switch(pData->lFPStatus)
|
|
{
|
|
case 0:
|
|
default:
|
|
m_wndList.SetItemText( i , 11 , _T("未开票") );
|
|
break;
|
|
case 1:
|
|
m_wndList.SetItemText( i , 11 , _T("已开票") );
|
|
break;
|
|
case 2:
|
|
m_wndList.SetItemText( i , 11 , _T("已寄出") );
|
|
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 , 12 , Buf);
|
|
}
|
|
}
|
|
|
|
|
|
m_wndList.SetItemText( i , 13 , pData->szBZ);
|
|
|
|
m_fFuncTotal += pData->fPrice;
|
|
}
|
|
|
|
m_strCorpName = m_PayReq.szCorpName;
|
|
m_strSMSNum = m_PayReq.szSMSNum;
|
|
m_strSMSUsed.Format( _T("%d") , m_PayReq.lSmsUsed );
|
|
m_strTotal.Format( _T("%.2f") , m_fFuncTotal );
|
|
|
|
this->UpdateData(false);
|
|
|
|
if ( m_lModifyType == -1 )
|
|
{
|
|
GetDlgItem(IDC_CORP_PAY_ADD)->EnableWindow(false);
|
|
}
|
|
return TRUE; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void DLG_Corp_FuncPay::SetParam(ANS_Corp_FuncPay Pay, ANS_Corp_FuncPayData *pPayData,long lModifyType)
|
|
{
|
|
m_PayReq = Pay;
|
|
m_pPayData = pPayData;
|
|
m_lModifyType=lModifyType;
|
|
}
|
|
|
|
|
|
void DLG_Corp_FuncPay::OnCorpPayAdd()
|
|
{
|
|
if ( m_lModifyType == 1 )
|
|
{
|
|
int iRet=MessageBox( _T("此企业是代理商的用户,非特殊情况不允许向其充值!是否继续?"),_T("警告") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
|
|
if ( iRet != IDYES )
|
|
return ;
|
|
}
|
|
|
|
DLG_Corp_FuncPay_Modify dlg(this);
|
|
if ( dlg.DoModal() == IDOK )
|
|
{
|
|
ANS_Corp_FuncPayData * pData = new ANS_Corp_FuncPayData;
|
|
*pData = dlg.GetParam();
|
|
pData->bYS = true; //默认全部先应收,财务修改成已收
|
|
pData->ucStatus = CORP_PAY_ADD;
|
|
pData->lCorpID = m_PayReq.lCorpID;
|
|
pData->lAgentID = m_PayReq.lAgentID;
|
|
pData->lYWYID = m_PayReq.lYWYID;
|
|
m_lModifyCount ++; //需要修改的记录增加
|
|
POSITION pos = m_Pay.AddTail( pData );
|
|
long lCount = m_wndList.GetItemCount();
|
|
TCHAR Buf[32];
|
|
_stprintf( Buf, _T("%d") , lCount +1 );
|
|
//设置新的数据
|
|
m_wndList.InsertItem( 0 , Buf , 0); //Item为0的原因是倒转显示
|
|
m_wndList.SetItemData( 0, (DWORD)pos );
|
|
m_wndList.SetItemText( 0 , 1 , pData->szPayMan );
|
|
m_wndList.SetItemText( 0 , 2 , pData->szPayMode );
|
|
_stprintf( Buf , _T("%8.2f") , pData->fPrice );
|
|
m_wndList.SetItemText( 0 , 3 , Buf );
|
|
//开通的功能
|
|
m_wndList.SetItemText( 0 , 4 , GetFuncToTxt(pData->lFuncID) );
|
|
if ( pData->lType==0 )
|
|
m_wndList.SetItemText( 0 , 5 , _T(" 关闭") );
|
|
else
|
|
m_wndList.SetItemText( 0 , 5 , _T(" 开通") );
|
|
if ( pData->bYS )
|
|
m_wndList.SetItemText( 0 , 6 , _T("是") );
|
|
if ( pData->bTest )
|
|
m_wndList.SetItemText( 0 , 7 , _T("是") );
|
|
|
|
_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 , 8 , Buf);
|
|
if ( pData->bFP )
|
|
m_wndList.SetItemText( 0 , 10 , _T("是") );
|
|
|
|
m_wndList.SetItemText( 0 , 13 , pData->szBZ);
|
|
|
|
m_fFuncTotal += pData->fPrice;
|
|
m_strTotal.Format( _T("%.2f") , m_fFuncTotal );
|
|
|
|
this->UpdateData(false);
|
|
}
|
|
}
|
|
|
|
|
|
void DLG_Corp_FuncPay::OnDblclkCorpPayList(NMHDR* pNMHDR, LRESULT* pResult)
|
|
{
|
|
OnCorpPaySee();
|
|
|
|
*pResult = 0;
|
|
}
|
|
|
|
void DLG_Corp_FuncPay::OnCorpPaySee()
|
|
{
|
|
long lItem = GetCurrentSelected();
|
|
if ( lItem < 0 )
|
|
return ;
|
|
|
|
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
|
|
POSITION pos2 = pos;
|
|
ANS_Corp_FuncPayData * pData = m_Pay.GetNext( pos );
|
|
if (pData)
|
|
{
|
|
DLG_Corp_FuncPay_Modify dlg(this);
|
|
dlg.SetParam( *pData,false);
|
|
dlg.DoModal();
|
|
}
|
|
}
|
|
|
|
long DLG_Corp_FuncPay::GetCurrentSelected()
|
|
{
|
|
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
|
|
if ( pos )
|
|
{
|
|
return m_wndList.GetNextSelectedItem(pos);
|
|
}
|
|
return -1;
|
|
}
|
|
|
|
CString DLG_Corp_FuncPay::GetFuncToTxt(long lFuncID)
|
|
{
|
|
CString str=_T("未知");
|
|
switch ( lFuncID )
|
|
{
|
|
case 0:
|
|
str = _T("黄金版");
|
|
break;
|
|
case 1:
|
|
str = _T("钻石版");
|
|
break;
|
|
case 2:
|
|
str = _T("开发接口");
|
|
break;
|
|
case 3:
|
|
str = _T("会员注册");
|
|
break;
|
|
case 4:
|
|
str = _T("短信查询");
|
|
break;
|
|
case 5:
|
|
str = _T("抽奖与调研");
|
|
break;
|
|
case 6:
|
|
str = _T("短信商务通");
|
|
break;
|
|
case 7:
|
|
str = _T("RTX短信网关");
|
|
break;
|
|
case 8:
|
|
str = _T("极速发");
|
|
break;
|
|
case 9:
|
|
str = _T("短信通");
|
|
break;
|
|
case 10:
|
|
str = _T("预留功能4");
|
|
break;
|
|
case 11:
|
|
str = _T("预留功能5");
|
|
break;
|
|
case 12:
|
|
str = _T("特殊功能开发费");
|
|
break;
|
|
case 13:
|
|
str = _T("其它收费项目");
|
|
break;
|
|
case 14:
|
|
str = _T("彩信代发");
|
|
break;
|
|
case 15:
|
|
str = _T("短信代发");
|
|
break;
|
|
case 16:
|
|
str = _T("MAS托管");
|
|
break;
|
|
case 17:
|
|
str = _T("客服易");
|
|
break;
|
|
case 18:
|
|
str = _T("客服易记录服务");
|
|
break;
|
|
}
|
|
return str;
|
|
}
|
|
|
|
|
|
|
|
|
|
void DLG_Corp_FuncPay::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_FuncPayData* pData = m_Pay.GetNext(pos);
|
|
if (pData && m_pMainFrame)
|
|
{
|
|
DLG_Corp_FuncPay_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_FuncPayData* pData2 = new ANS_Corp_FuncPayData;
|
|
*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 (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
|
|
}
|
|
}
|