SmsManager/C_MonPay.cpp

1275 lines
32 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

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.

// C_MonPay.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "C_MonPay.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CC_MonPay dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_HZB_Export.h"
#include "DLG_Pay_TC.h"
#include "DLG_C_Pay_YS.h"
#include "DLG_C_MonPay_See.h"
#include "DLG_Corp_FP.h"
#include "DLG_Corp_LXR.h"
CC_MonPay::CC_MonPay(CWnd* pParent /*=NULL*/)
: CDialog(CC_MonPay::IDD, pParent)
{
//{{AFX_DATA_INIT(CC_MonPay)
m_tBegin = COleDateTime::GetCurrentTime();
m_tEnd = COleDateTime::GetCurrentTime();
m_lCorp = -1;
m_lFPType = -1;
m_lPayType = -1;
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_pLXRDlg = NULL;
m_pFPDlg = NULL;
}
void CC_MonPay::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CC_MonPay)
DDX_Control(pDX, IDC_C_PAY_CORPID, m_E_CorpID);
DDX_Control(pDX, IDC_C_PAY_CORP, m_L_Corp);
DDX_Control(pDX, IDC_C_AGENTPAY_S1, m_S_S1);
DDX_Control(pDX, IDC_C_AGENTPAY_LIST, m_wndList);
DDX_DateTimeCtrl(pDX, IDC_C_AGENTPAY_TBEGIN, m_tBegin);
DDX_DateTimeCtrl(pDX, IDC_C_AGENTPAY_TEND, m_tEnd);
DDX_CBIndex(pDX, IDC_C_PAY_CORP, m_lCorp);
DDX_CBIndex(pDX, IDC_C_AGENTPAYPAY_FPTYPE, m_lFPType);
DDX_CBIndex(pDX, IDC_C_AGENTPAYPAY_PAYTYPE, m_lPayType);
//}}AFX_DATA_MAP
DDX_Control(pDX, IDC_C_AGENTPAYPAY_FPTYPE, m_L_FPType);
}
BEGIN_MESSAGE_MAP(CC_MonPay, CDialog)
//{{AFX_MSG_MAP(CC_MonPay)
ON_WM_SIZE()
ON_BN_CLICKED(IDC_C_AGENTPAY_QUERY, OnCAgentpayQuery)
ON_NOTIFY(NM_DBLCLK, IDC_C_AGENTPAY_LIST, OnDblclkCAgentpayList)
ON_NOTIFY(NM_RCLICK, IDC_C_AGENTPAY_LIST, OnRclickCAgentpayList)
ON_BN_CLICKED(IDC_C_AGENTPAY_TC, OnCAgentpayTc)
ON_BN_CLICKED(IDC_C_PAY_QUERY2, OnCPayQuery2)
ON_CBN_SELCHANGE(IDC_C_PAY_CORP, OnSelchangeCPayCorp)
//}}AFX_MSG_MAP
ON_COMMAND(MENU_MONPAY_SEE , On_User_See )
ON_COMMAND(MENU_MONPAY_YS , On_User_YS )
ON_COMMAND(MENU_MONPAY_EXPORT , On_User_Export )
ON_COMMAND(MENU_MONPAY_FP , On_User_FP )
ON_COMMAND(MENU_MONPAY_FP_YK , On_User_FP_YK )
ON_COMMAND(MENU_MONPAY_FP_YJ , On_User_FP_YJ )
ON_COMMAND(MENU_MONPAY_FP_PRINT , On_User_FP_PRINT )
ON_COMMAND(MENU_MONPAY_TEST , On_User_Test )
ON_COMMAND_RANGE( MENU_PAY_FP_NO, MENU_PAY_FP_TYPE7, On_User_FP_Type )
ON_COMMAND(MENU_PAY_FPMANAGER , On_User_FPManager )
ON_COMMAND(MENU_PAY_LXRMANAGER , On_User_LXRManager )
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CC_MonPay message handlers
void CC_MonPay::Close()
{
Close_Corp();
Close_PayData();
Close_YWY();
Close_Agent();
}
BOOL CC_MonPay::RefreshInfo()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return false;
}
#ifndef SMSMANAGER_KF
m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0);
#endif
m_pMainFrame->SendFrame(SMSFUNC_AGENT_NAME, NULL, 0); //取代理信息
m_pMainFrame->SendFrame(SMSFUNC_YWY_NAME, NULL, 0); //取代理信息
return true;
}
BOOL CC_MonPay::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CC_MonPay::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CC_MonPay::ProcessSocket(Socket_Head *pHead)
{
CString strTemp;
//取过滤信息
if (pHead->lFuncType == SMSFUNC_CORP_NAME)
{
m_bRefresh = true; //已经刷新过
ANS_Corp_Name * pCorp = (ANS_Corp_Name *)pHead->pFrame;
ANS_Corp_NameData * pData = (ANS_Corp_NameData *)(pHead->pFrame+sizeof(ANS_Corp_Name));
m_L_Corp.ResetContent(); //删除原已有的企业
m_L_Corp.AddString( _T("所有企业") );
this->Close_Corp(); //关闭原队列
for ( int i=0;i<pCorp->lCount;i++ )
{
ANS_Corp_NameData * pNewData = new ANS_Corp_NameData;
*pNewData = *pData;
POSITION pos = m_Corp.AddTail(pNewData);
strTemp.Format( _T("%d-%s"),pData->lCorpID,pData->szCorpName);
long lItem = m_L_Corp.AddString( strTemp );
m_L_Corp.SetItemData( lItem , (DWORD_PTR)pos);
pData ++;
}
m_L_Corp.SetCurSel(0);
return true;
}
if(pHead->lFuncType == SMSFUNC_CORP_MONPAY )
{
ANS_Corp_MONPAY * pPay = (ANS_Corp_MONPAY *)pHead->pFrame;
if ( pPay->ret.lReqType==0 ) //查询
{
ANS_Corp_MonPayData * pData= (ANS_Corp_MonPayData *)(pHead->pFrame+sizeof(ANS_Corp_MONPAY));
Close_PayData();
for ( int i=0 ; i<pPay->lCount ; i++ )
{
ANS_Corp_MonPayData * pNewData = new ANS_Corp_MonPayData;
*pNewData = *pData;
POSITION pos = m_PayData.AddTail(pNewData);
pData ++;
}
RefreshMonPayData();
}
}
if ( pHead->lFuncType == SMSFUNC_CORP_PAY_YS )
{
ANS_Corp_Pay_YS * pYS = (ANS_Corp_Pay_YS *)pHead->pFrame;
if ( pYS->bOK )
{
switch(pYS->lType)
{
case 13:
{
CString strType = DLG_Corp_FP::GetFPType2(pYS->bFP);
m_wndList.SetItemText(pYS->lItem,11,strType);
}
break;
case 23:
m_wndList.SetItemText(pYS->lItem,12,_T("已开票"));
break;
case 33:
m_wndList.SetItemText(pYS->lItem,12,_T("已寄出"));
break;
case 43:
if ( pYS->bFP )
m_wndList.SetItemText(pYS->lItem,9,_T(""));
else
m_wndList.SetItemText(pYS->lItem,9,_T(""));
break;
default:
m_wndList.SetItemText(pYS->lItem,8,_T(""));
break;
}
}
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,0, pYWYData); //企业类型为:0(企业)
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 = 0; //强制设置企业类型为: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_YWY_NAME)
{
ANS_YWY_Name * pYWY = (ANS_YWY_Name *)pHead->pFrame;
ANS_YWY_NameData * pData = (ANS_YWY_NameData *)(pHead->pFrame + sizeof(ANS_YWY_Name));
this->Close_YWY();
for (int i = 0; i < pYWY->lCount; i++)
{
ANS_YWY_NameData * pNewData = new ANS_YWY_NameData;
*pNewData = *pData;
m_YWY.AddTail(pNewData);
pData++;
}
return true;
}
//取代理商信息
if (pHead->lFuncType == SMSFUNC_AGENT_NAME)
{
ANS_Agent_Name * pAgent = (ANS_Agent_Name *)pHead->pFrame;
ANS_Agent_NameData * pData = (ANS_Agent_NameData *)(pHead->pFrame + sizeof(ANS_Agent_Name));
this->Close_Agent();
for (int i = 0; i < pAgent->lCount; i++)
{
ANS_Agent_NameData * pNewData = new ANS_Agent_NameData;
*pNewData = *pData;
m_Agent.AddTail(pNewData);
pData++;
}
return true;
}
return false;
}
BOOL CC_MonPay::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
{
//查看联系人
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,0, pYWYData); //企业类型为:0(企业)
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_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);
}
return true;
}
return false;
}
BOOL CC_MonPay::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_LIST) );
m_wndList.SubClassWindow2();
m_wndList.SetHeadings(_T("序号,50; 企业名称,200;充值方式,80;帐单类型,80;帐单月份,80;帐单金额,80; 单价,70;短信量,80;应收,55;测试,55;收款时间,130; 发票,80;发票状态,80;开票时间,130;实收金额,80;实收单价,70;实收短信量,80; 备 注,130;客户经理,90; 代理商,130;"));
m_wndList.SetGridLines(true);
// m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
#ifdef SMSMANAGER_KF
//GetDlgItem(IDC_C_AGENTPAY_S1)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_C_PAY_CORP)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_C_PAY_CORPID)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_C_PAY_QUERY2)->ShowWindow(SW_HIDE);
GetDlgItem(IDC_C_AGENTPAYPAY_PAYTYPE)->ShowWindow(SW_HIDE);
#endif
SYSTEMTIME t; ::GetLocalTime(&t);
long lMon = t.wMonth;
lMon--;
if ( lMon<=0 )
{
lMon = 12;
t.wYear --;
}
t.wMonth = lMon;
m_tBegin.SetDate( t.wYear,t.wMonth,1 ); //起始
m_tEnd.SetDate( t.wYear,t.wMonth,1 );//结束
m_lPayType = 0; //默认查看所有手机类型
m_lFPType = 0; //默认查看所有手机类型
#ifdef SMSMANAGER_KF
m_L_FPType.DeleteString(0);
m_lFPType = 1; //默认查看所有手机类型
#endif
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CC_MonPay::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 CC_MonPay::PreTranslateMessage(MSG* pMsg)
{
if ( pMsg->hwnd == m_E_CorpID && pMsg->message == WM_KEYDOWN )
{
if ( pMsg->wParam == 13 ) //回车键
{
this->OnCPayQuery2();
return true;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CC_MonPay::OnCAgentpayQuery()
{
UpdateData(true);
if ( m_tEnd < m_tBegin )
{
MessageBox( _T("查询结束日期不能小于起始日期,请改正!") , _T("错误") , MB_ICONWARNING );
return ;
}
REQ_Corp_MONPAY * pPay = new REQ_Corp_MONPAY;memset(pPay,0,sizeof(REQ_Corp_MONPAY));
pPay->lReqType = 0; //查询帐单
//企业
if ( m_lCorp <= 0 ) //选了所有企业
{
pPay->lCorpID = -1;
}
else
{
POSITION pos = (POSITION)m_L_Corp.GetItemData(m_lCorp);
POSITION pos2 = pos;
ANS_Corp_NameData * pData = m_Corp.GetNext( pos );
if (pData)
{
pPay->lCorpID = pData->lCorpID;
}
else
{
return;
}
}
m_tBegin.GetAsSystemTime( pPay->tBegin );
m_tEnd.GetAsSystemTime( pPay->tEnd );
pPay->lPayType = m_lPayType;
#ifdef SMSMANAGER_KF
pPay->lFPType = m_lFPType;
#else
pPay->lFPType = m_lFPType-1;
#endif
m_pMainFrame->SendFrame(SMSFUNC_CORP_MONPAY,(BYTE*)pPay,sizeof(REQ_Corp_MONPAY));
}
void CC_MonPay::RefreshMonPayData()
{
long lAgentID = -10; //显示所有的
m_wndList.ShowWindow(SW_HIDE);
m_wndList.DeleteAllItems(); //删除原有的内容
POSITION pos = m_PayData.GetHeadPosition();
POSITION pos2=0;
int i=0;
TCHAR Buf[128]={0};
double fTotal=0;
long lTotalItem=0;
long lSmsAll=0;
long lSmsAllItem=0;
CString str;
while ( pos )
{
pos2 = pos;
ANS_Corp_MonPayData * pData = m_PayData.GetNext(pos);
if ( pData )
{
if ( true )
{
//m_wndList.SetHeadings(_T("序号,50; 企业名称,180;帐单类型,80;帐单月份,80;帐单金额,80; 单价,70;短信量,80;应收,55;测试,55;收款时间,130; 发票,80;发票状态,80;开票时间,130; 备 注,130;"));
long iTemp=1;
_stprintf( Buf , _T("%d") , i+1 );
m_wndList.InsertItem( i , Buf , 0 );
str.Format( _T("%d-%s"),pData->lCorpID,pData->szCorpName);
m_wndList.SetItemText( i , iTemp++ , str);
m_wndList.SetItemText( i , iTemp++ , pData->szPayMode );
if ( pData->lPayType==0 )
m_wndList.SetItemText( i , iTemp++ , _T("月结帐单" ));
else
m_wndList.SetItemText( i , iTemp++ , _T("欠款帐单" ));
str.Format( _T("%04d.%02d") , pData->tPayTime.wYear , pData->tPayTime.wMonth);
m_wndList.SetItemText( i , iTemp++ , str);
str.Format( _T("%.2f") , pData->fPrice); //帐单金额
lTotalItem = iTemp;
m_wndList.SetItemText( i , iTemp++ , str);
str.Format( _T("%.4f") , pData->fPriceOne); //单价
m_wndList.SetItemText( i , iTemp++ , str);
str.Format( _T("%d") , pData->lSMSCount); //短信量
lSmsAllItem = iTemp;
m_wndList.SetItemText( i , iTemp++ , str);
if ( pData->bYS )
m_wndList.SetItemText( i , iTemp++ , _T("") );
else
m_wndList.SetItemText( i , iTemp++ , _T("") );
if ( pData->bTest )
m_wndList.SetItemText( i , iTemp++ , _T("") );
else
m_wndList.SetItemText( i , iTemp++ , _T("") );
str.Format( _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 , iTemp++ , str );
if ( pData->bFP>0 )
{
CString strType = DLG_Corp_FP::GetFPType2(pData->bFP);
m_wndList.SetItemText( i , iTemp++ , strType );
switch(pData->lFPStatus)
{
case 0:
default:
m_wndList.SetItemText( i , iTemp++ , _T("未开票") );
break;
case 1:
m_wndList.SetItemText( i , iTemp++ , _T("已开票") );
break;
case 2:
m_wndList.SetItemText( i , iTemp++ , _T("已寄出") );
break;
}
if ( pData->lFPStatus>0 )
{
str.Format( _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 , iTemp++ , str);
}
}
else
{
iTemp++;
iTemp++;
iTemp++;
}
str.Format( _T("%.2f") , pData->fYSPrice); //帐单金额
m_wndList.SetItemText( i , iTemp++ , str);
str.Format( _T("%.4f") , pData->fYSPriceOne); //单价
m_wndList.SetItemText( i , iTemp++ , str);
str.Format( _T("%d") , pData->lYSSMSCount); //短信量
m_wndList.SetItemText( i , iTemp++ , str);
m_wndList.SetItemText( i , iTemp++ , pData->szBZ);
m_wndList.SetItemText(i, iTemp++, GetName_YWY(pData->lYWYID));
m_wndList.SetItemText(i, iTemp++, GetName_Agent(pData->lAgentID));
m_wndList.SetItemData( i , (DWORD_PTR)pos2 ); //存Pos
fTotal += pData->fPrice;
lSmsAll += pData->lSMSCount;
i++;
}
}
}
m_wndList.InsertItem(i,_T(""),0 );
i++;
m_wndList.InsertItem(i,_T("合计"),0 );
str.Format( _T("%.2f") , fTotal );
m_wndList.SetItemText( i , lTotalItem , str );
str.Format( _T("%d") , lSmsAll );
m_wndList.SetItemText( i , lSmsAllItem , str );
m_wndList.ShowWindow(SW_SHOW);
}
void CC_MonPay::OnDblclkCAgentpayList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_See();
}
void CC_MonPay::OnRclickCAgentpayList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
void CC_MonPay::ShowRMenu()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return ;
}
CMenu menu;
menu.CreatePopupMenu();
BOOL bLock = false;
long lItem = this->GetCurrentSelected();
ANS_Corp_MonPayData * pData = NULL;
if ( lItem>=0 && lItem<m_PayData.GetCount())
{
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ( (DWORD_PTR)pos>=0 )
{
pData = m_PayData.GetNext( pos );
}
}
if ( !pData )
return ;
#ifndef SMSMANAGER_KF
//添加
if ( lItem>=0 )
{
menu.AppendMenu(MF_STRING , MENU_MONPAY_SEE , _T(" 查 看 ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_MONPAY_SEE , _T(" 查 看 ") );
}
menu.AppendMenu(MF_SEPARATOR );
if ( m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_ADD,false) ) //只有黄小姐有这权限
{
if ( lItem>=0 && pData && pData->bYS )
{
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_MONPAY_YS , _T(" 置为款项已收(已集成到综合查询) ") );
}
else
{
menu.AppendMenu(MF_STRING|MF_DISABLED|MF_GRAYED , MENU_MONPAY_YS , _T(" 置为款项已收(已集成到综合查询) ") );
}
}
if ( lItem>=0 && pData && pData->bTest )
{
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_MONPAY_TEST , _T(" 置为非测试帐单(已集成到综合查询) ") );
}
else
{
if ( lItem>=0 )
{
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_MONPAY_TEST , _T(" 置为测试帐单(已集成到综合查询) ") );
}
}
if ( lItem>=0 && pData && pData->lFPStatus==0 )
{
CMenu MenuFP;
MenuFP.CreatePopupMenu();
MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_NO , _T(" 无需发票 ") );
MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE1 , _T(" 地税票 ") );
MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE2 , _T(" 增值税普票 ") );
MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE3 , _T(" 移动票 ") );
MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE4 , _T(" 增值税专票 ") );
MenuFP.AppendMenu(MF_STRING , MENU_PAY_FP_TYPE5 , _T(" 无需发票已报税 ") );
MenuFP.AppendMenu(MF_STRING, MENU_PAY_FP_TYPE6, _T(" 盈易付普票 "));
MenuFP.AppendMenu(MF_STRING, MENU_PAY_FP_TYPE7, _T(" 盈易付专票 "));
menu.AppendMenu(MF_STRING|MF_POPUP | MF_DISABLED | MF_GRAYED,(UINT_PTR)MenuFP.GetSafeHmenu(), _T(" 发票选择(已集成到综合查询) ") );
}
#endif
if ( lItem>=0 && pData && pData->bFP && pData->lFPStatus==0 )
{
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_MONPAY_FP_YK , _T(" 置为已开发票(已集成到综合查询) ") );
}
if ( lItem>=0 && pData && pData->bFP && pData->lFPStatus==1 )
{
menu.AppendMenu(MF_STRING | MF_DISABLED | MF_GRAYED, MENU_MONPAY_FP_YJ , _T(" 置为已寄发票(已集成到综合查询) ") );
}
// if ( lItem>=0 )
// {
// menu.AppendMenu(MF_SEPARATOR );
// menu.AppendMenu(MF_STRING , MENU_MONPAY_FP_PRINT , _T(" 打印信封 ") );
// }
if ( lItem>=0 && pData ) //是预充短信,可以置成已充及作废
{
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_PAY_FPMANAGER , _T(" 发票抬头... ") );
menu.AppendMenu(MF_STRING , MENU_PAY_LXRMANAGER , _T(" 联系人... ") );
}
#ifndef SMSMANAGER_KF
menu.AppendMenu(MF_SEPARATOR );
menu.AppendMenu(MF_STRING , MENU_MONPAY_EXPORT , _T(" 复制数据 ") );
#endif
//显示菜单
POINT pt ;
::GetCursorPos( &pt );
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON,pt.x,pt.y, this, NULL);
menu.DestroyMenu();
}
long CC_MonPay::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CC_MonPay::On_User_See()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return ;
}
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
ANS_Corp_MonPayData * pData = NULL;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ( (DWORD_PTR)pos>=0 )
{
pData = m_PayData.GetNext( pos );
}
if ( pData )
{
DLG_C_MonPay_See dlg( this );
dlg.SetParam(*pData);
dlg.DoModal();
}
}
void CC_MonPay::On_User_YS()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return ;
}
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
ANS_Corp_MonPayData * pData = NULL;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ( (DWORD_PTR)pos>=0 )
{
pData = m_PayData.GetNext( pos );
}
if ( !pData->bYS )
{
return ;
}
int iRet = MessageBox( _T("真的要将此笔款项置成已收?状态改变后将不能恢复!") , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if ( iRet != IDYES )
return ;
DLG_C_Pay_YS dlg(this);
if ( pData->lPayType == 0 ) //只有是月结帐单才有实收款项
dlg.SetParam( pData );
if ( dlg.DoModal() != IDOK )
return ;
REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS;
memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS));
pYS->lPayID = pData->lPayID;
pYS->lItem = lItem;
pYS->lType = 3;
pYS->bAddMonPay = dlg.m_bAddMonPay;
pYS->fYSPrice = dlg.m_Pay.fYSPrice;
pYS->fYSPriceOne = dlg.m_Pay.fYSPriceOne;
pYS->lYSSMSCount = dlg.m_Pay.lYSSMSCount;
_tcscpy(pYS->szPayMode , dlg.m_strPayMode );
_tcscpy(pYS->szBZ , dlg.m_strBZ );
dlg.m_tPayTime.GetAsSystemTime(pYS->tPayTime);
m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS));
}
void CC_MonPay::On_User_FPManager()
{
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ((LONG_PTR)pos < 0)
return ;
POSITION pos2 = pos;
ANS_Corp_MonPayData * pData = m_PayData.GetNext( pos );
if ( !pData )
return ;
REQ_Corp_FP * pFP = new REQ_Corp_FP;
memset( pFP , 0 , sizeof(REQ_Corp_FP));
_tcscpy( pFP->szCorpName , pData->szCorpName );
pFP->lCorpID = pData->lCorpID;
pFP->lCorpType=0; //查终端企业
pFP->lPayType = 6;//月结帐单充值
pFP->lPayID = pData->lPayID; //充值ID
pFP->fPrice = pData->fPrice; //充值金额
m_pMainFrame->SendFrame( SMSFUNC_CORP_FP , (BYTE*)pFP , sizeof(REQ_Corp_FP) ); //取联系人信息
}
void CC_MonPay::On_User_LXRManager()
{
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ((LONG_PTR)pos < 0)
return ;
POSITION pos2 = pos;
ANS_Corp_MonPayData * pData = m_PayData.GetNext( pos );
if ( !pData )
return ;
REQ_Corp_LXR * pLXR = new REQ_Corp_LXR;
memset( pLXR , 0 , sizeof(REQ_Corp_LXR));
_tcscpy( pLXR->szCorpName , pData->szCorpName );
pLXR->lCorpID = pData->lCorpID;
pLXR->lCorpType=0; //查终端企业
pLXR->lPayType = 6;//月结帐单充值
pLXR->lPayID = pData->lPayID; //充值ID
pLXR->fPrice = pData->fPrice; //充值金额
m_pMainFrame->SendFrame( SMSFUNC_CORP_LXR , (BYTE*)pLXR , sizeof(REQ_Corp_LXR) ); //取联系人信息
}
void CC_MonPay::On_User_Test()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return ;
}
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
BOOL bTest=true;
ANS_Corp_MonPayData * pData = NULL;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ( (DWORD_PTR)pos>=0 )
{
pData = m_PayData.GetNext( pos );
if ( pData->bTest ) //原来是测试的变为不是测试
bTest = false;
}
CString str;
str.Format( _T("确认需要更改测试转换状态为:%s") , bTest?_T(""):_T(""));
int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if ( iRet != IDYES )
return ;
REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS;
memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS));
pYS->lPayID = pData->lPayID;
pYS->lItem = lItem;
pYS->lType = 43;
pYS->bFP = bTest;
m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS));
}
void CC_MonPay::On_User_FP_Type(UINT nID)
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return ;
}
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
BOOL bOK=false;
BOOL bKP=true;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ((LONG_PTR)pos < 0)
return ;
POSITION pos2 = pos;
ANS_Corp_MonPayData * pData = m_PayData.GetNext( pos );
if ( pData->lFPStatus!=0 )
return ;
CString strType=_T("未知");
UINT ll=MENU_PAY_FP_NO;
long lType=nID - ll;
switch(lType)
{
case 0:
strType = _T("无需发票");
break;
case 1:
strType = _T("地税发票");
break;
case 2:
strType = _T("增值税普票");
break;
case 3:
strType = _T("移动发票");
break;
case 4:
strType = _T("增值税专票");
break;
case 5:
strType = _T("无需发票已报税");
break;
case 6:
strType = _T("盈易付普票");
break;
case 7:
strType = _T("盈易付专票");
break;
}
CString str;
str.Format( _T("确认需要更改发票状态为:%s") , strType);
int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if ( iRet != IDYES )
return ;
REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS;
memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS));
pYS->lPayID = pData->lPayID;
pYS->lItem = lItem;
pYS->lType = 13;
pYS->bFP = lType;
m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS));
}
void CC_MonPay::On_User_FP()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return ;
}
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
BOOL bOK=false;
BOOL bKP=true;
ANS_Corp_MonPayData * pData = NULL;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ( (DWORD_PTR)pos>=0 )
{
pData = m_PayData.GetNext( pos );
}
if ( pData->bFP && pData->lFPStatus == 0 )
{
bOK = true;
bKP = false;
}
if ( !pData->bFP )
{
bOK = true;
bKP = true;
}
if ( !bOK )
return ;
CString str;
str.Format( _T("确认需要更改发票状态为:%s") , bKP?_T(""):_T(""));
int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if ( iRet != IDYES )
return ;
REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS;
memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS));
pYS->lPayID = pData->lPayID;
pYS->lItem = lItem;
pYS->lType = 13;
pYS->bFP = bKP;
m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS));
}
void CC_MonPay::On_User_FP_YK()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return ;
}
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
ANS_Corp_MonPayData * pData = NULL;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ( (DWORD_PTR)pos>=0 )
{
pData = m_PayData.GetNext( pos );
}
if ( !pData->bFP || pData->lFPStatus!=0 )
{
return ;
}
CString str;
str= _T("确认需要更改发票状态为:已开票?");
int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if ( iRet != IDYES )
return ;
REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS;
memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS));
pYS->lPayID = pData->lPayID;
pYS->lItem = lItem;
pYS->lType = 23;
m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS));
}
void CC_MonPay::On_User_FP_YJ()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return ;
}
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
ANS_Corp_MonPayData * pData = NULL;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ( (DWORD_PTR)pos>=0 )
{
pData = m_PayData.GetNext( pos );
}
if ( !pData->bFP || pData->lFPStatus!=1 )
{
return ;
}
CString str;
str= _T("确认需要更改发票状态为:已寄出?");
int iRet = MessageBox( str , _T("提问") , MB_ICONQUESTION|MB_YESNO|MB_DEFBUTTON2 );
if ( iRet != IDYES )
return ;
REQ_Corp_Pay_YS *pYS = new REQ_Corp_Pay_YS;
memset( pYS , 0 , sizeof(REQ_Corp_Pay_YS));
pYS->lPayID = pData->lPayID;
pYS->lItem = lItem;
pYS->lType = 33;
m_pMainFrame->SendFrame( SMSFUNC_CORP_PAY_YS , (BYTE*)pYS , sizeof(REQ_Corp_Pay_YS));
}
void CC_MonPay::On_User_FP_PRINT()
{
}
void CC_MonPay::On_User_Export()
{
m_wndList.CopyToClipboard();
/*
// m_wndList.SetHeadings(_T("序号,50; 代理名称,200; 出单人,80;充值方式,80;充值金额,80;可用金额,80;充值时间,130;备 注,130; 业务员,70"));
SortItem item[32]={0};
_tcscpy(item[0].szItem,_T("代理名称"));
_tcscpy(item[1].szItem,_T("出单人"));
_tcscpy(item[2].szItem,_T("充值方式"));
_tcscpy(item[3].szItem,_T("充值金额"));
_tcscpy(item[4].szItem,_T("可用金额"));
_tcscpy(item[5].szItem,_T("充值时间"));
_tcscpy(item[6].szItem,_T("备注"));
_tcscpy(item[7].szItem,_T("业务员"));
DLG_HZB_Export dlg(this);
dlg.SetParam( &m_wndList );
dlg.SetListItem(item,8,-3);
dlg.DoModal();
*/
}
void CC_MonPay::OnCAgentpayTc()
{
/*
long lAgentID=m_L_Agent.GetItemData(m_L_Agent.GetCurSel());
if ( lAgentID==0 || lAgentID==-1 )
lAgentID=-10;
DLG_Pay_TC dlg ( this );
dlg.SetParam( NULL,&m_PayData,NULL,lAgentID );
dlg.DoModal();
*/
}
void CC_MonPay::Close_PayData()
{
//清除队列中的内容
while (!m_PayData.IsEmpty())
{
ANS_Corp_MonPayData * pData = m_PayData.GetHead();
m_PayData.RemoveHead();
delete pData;
}
}
void CC_MonPay::Close_Corp()
{
//清除队列中的内容
while (!m_Corp.IsEmpty())
{
ANS_Corp_NameData * pData = m_Corp.GetHead();
m_Corp.RemoveHead();
delete pData;
}
}
void CC_MonPay::OnCPayQuery2()
{
CString strTemp;
CString strFind;
m_E_CorpID.GetWindowText(strFind);
if ( strFind.GetLength()<=0 )
return ;
long lSel = m_L_Corp.GetCurSel();
long lCount = m_L_Corp.GetCount();
for ( int i=lSel+1 ; i<lCount ; i++ )
{
m_L_Corp.GetLBText(i,strTemp);
if ( strTemp.Find(strFind)>=0 )
{
m_L_Corp.SetCurSel(i);
OnSelchangeCPayCorp();
return ;
}
}
for ( i=0 ; i<lSel ; i++ )
{
m_L_Corp.GetLBText(i,strTemp);
if ( strTemp.Find(strFind)>=0 )
{
m_L_Corp.SetCurSel(i);
OnSelchangeCPayCorp();
return ;
}
}
}
void CC_MonPay::OnSelchangeCPayCorp()
{
}
CString CC_MonPay::GetName_Agent(long lAgentID)
{
//代理商
CString strTemp = _T("");//无代理商
POSITION pos = m_Agent.GetHeadPosition();
POSITION pos2;
while (pos)
{
pos2 = pos;
ANS_Agent_NameData * pAgent = m_Agent.GetNext(pos);
if (pAgent->lAgentID == lAgentID)
{
strTemp = pAgent->szAgentName;
break;
}
}
return strTemp;
}
CString CC_MonPay::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 CC_MonPay::Close_YWY()
{
//清除队列中的内容
while (!m_YWY.IsEmpty())
{
ANS_YWY_NameData * pData = m_YWY.GetHead();
m_YWY.RemoveHead();
delete pData;
}
}
void CC_MonPay::Close_Agent()
{
//清除队列中的内容
while (!m_Agent.IsEmpty())
{
ANS_Agent_NameData * pAgent = m_Agent.GetHead();
m_Agent.RemoveHead();
delete pAgent;
}
}