SmsManager/C_SFQuery.cpp

520 lines
12 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_YYSPay.cpp : implementation file
//
#include "stdafx.h"
#include "smsmanager.h"
#include "C_SFQuery.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CC_SFQuery dialog
#include "MainFrm.h"
#include "ProcessSocket.h"
#include "DLG_Corp_LXR_SF.h"
CC_SFQuery::CC_SFQuery(CWnd* pParent /*=NULL*/)
: CDialog(CC_SFQuery::IDD, pParent)
{
//{{AFX_DATA_INIT(CC_SFQuery)
m_tBegin = COleDateTime::GetCurrentTime();
m_tEnd = COleDateTime::GetCurrentTime();
m_lCorp = -1;
m_lStatus = -1;
m_lExpressType = -1;
m_lProductType = -1;
m_lPayType = -1;
//}}AFX_DATA_INIT
m_bInit = false;
m_bRefresh = false;
m_pSFDlg = NULL;
}
void CC_SFQuery::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CC_SFQuery)
DDX_Control(pDX, IDC_C_SFQUERY_CORPID, m_E_CorpID);
DDX_Control(pDX, IDC_C_SFQUERY_CORP, m_L_Corp);
DDX_Control(pDX, IDC_C_SFQUERY_S1, m_S_S1);
DDX_Control(pDX, IDC_C_SFQUERY_LIST, m_wndList);
DDX_DateTimeCtrl(pDX, IDC_C_SFQUERY_TBEGIN, m_tBegin);
DDX_DateTimeCtrl(pDX, IDC_C_SFQUERY_TEND, m_tEnd);
DDX_CBIndex(pDX, IDC_C_SFQUERY_CORP, m_lCorp);
DDX_CBIndex(pDX, IDC_C_SFQUERY_STATUS, m_lStatus);
DDX_CBIndex(pDX, IDC_C_SFQUERY_EXPRESSTYPE, m_lExpressType);
DDX_CBIndex(pDX, IDC_C_SFQUERY_PAYTYPE, m_lPayType);
DDX_CBIndex(pDX, IDC_C_SFQUERY_PRODUCTTYPE, m_lProductType);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CC_SFQuery, CDialog)
//{{AFX_MSG_MAP(CC_SFQuery)
ON_WM_SIZE()
ON_BN_CLICKED(IDC_C_SFQUERY_QUERY, OnCAgentpayQuery)
ON_NOTIFY(NM_DBLCLK, IDC_C_SFQUERY_LIST, OnDblclkCAgentpayList)
ON_NOTIFY(NM_RCLICK, IDC_C_SFQUERY_LIST, OnRclickCAgentpayList)
ON_BN_CLICKED(IDC_C_SFQUERY_QUERY2, OnCPayQuery2)
ON_CBN_SELCHANGE(IDC_C_SFQUERY_CORP, OnSelchangeCPayCorp)
//}}AFX_MSG_MAP
ON_COMMAND(MENU_SFQUERY_COPY, On_User_Copy)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CC_SFQuery message handlers
void CC_SFQuery::Close()
{
Close_Corp();
Close_PayData();
}
BOOL CC_SFQuery::RefreshInfo()
{
if ( !m_pMainFrame->GetUserPurview(PURVIEW_TAB) )
{
return false;
}
#ifndef SMSMANAGER_KF
//m_pMainFrame->SendFrame(SMSFUNC_CORP_NAME,NULL,0);
#endif
return true;
}
BOOL CC_SFQuery::ReHide()
{
ShowWindow( SW_HIDE );
return true;
}
BOOL CC_SFQuery::ReShow(BOOL bRefresh)
{
ShowWindow( SW_SHOW );
if ( bRefresh || !m_bRefresh )
{
RefreshInfo();
}
return true;
}
BOOL CC_SFQuery::ProcessSocket(Socket_Head *pHead)
{
CString strTemp;
//ȡ<><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ
if (pHead->lFuncType == SMSFUNC_CORP_NAME)
{
m_bRefresh = true; //<2F>Ѿ<EFBFBD>ˢ<EFBFBD>¹<EFBFBD>
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(); //ɾ<><C9BE>ԭ<EFBFBD><D4AD><EFBFBD>е<EFBFBD><D0B5><EFBFBD>ҵ
m_L_Corp.AddString( _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ") );
this->Close_Corp(); //<2F>ر<EFBFBD>ԭ<EFBFBD><D4AD><EFBFBD><EFBFBD>
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;
}
return false;
}
BOOL CC_SFQuery::ProcessSocket(Socket_Head_Add *pHead, BYTE *pFrame)
{
if (pHead->lFuncType == SMSFUNC_CORP_SF_SEE)
{
ANS_Corp_SF_See * pSF = (ANS_Corp_SF_See *)pFrame;
ANS_Corp_SFData * pData = (ANS_Corp_SFData *)(pFrame + sizeof(ANS_Corp_SF_See));
Close_PayData();
for (int i = 0; i < pSF->lCount; i++)
{
ANS_Corp_SFData * pNewData = new ANS_Corp_SFData;
*pNewData = *pData;
POSITION pos = m_SFData.AddTail(pNewData);
pData++;
}
RefreshMonPayData();
return true;
}
if (pHead->lFuncType == SMSFUNC_CORP_SF_ADD ||
pHead->lFuncType == SMSFUNC_CORP_SF_CANCEL ||
pHead->lFuncType == SMSFUNC_CORP_SF_ROUTE)
{
if (m_pSFDlg)
{
m_pSFDlg->ProcessSocket(pHead, pFrame);
}
return true;
}
return false;
}
BOOL CC_SFQuery::OnInitDialog()
{
CDialog::OnInitDialog();
//ȡ<>ù<EFBFBD><C3B9>ò<EFBFBD><C3B2><EFBFBD>
//CMainFrame * pFrame = static_cast <CMainFrame *>((CMainFrame *)AfxGetMainWnd());
this->GetParent()->GetParentFrame();
m_pMainFrame = (CMainFrame *)this->GetParent()->GetParentFrame();
m_pSocket = &m_pMainFrame->m_Socket;
//<2F><>ʼ<EFBFBD><CABC>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("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>,50;<3B><>ҵID,80; ״̬,60; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,80;<3B><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>,80;<3B><><EFBFBD>ʽ,80; <20>µ<EFBFBD>ʱ<EFBFBD><CAB1>,130;<3B>˵<EFBFBD><CBB5><EFBFBD>,120; <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>,120; <20><>ַ,350;"));
m_wndList.SetGridLines(true);
// m_wndList.SetImageList(&m_Image,LVSIL_SMALL);
m_bInit = true;
COleDateTime t = COleDateTime::GetCurrentTime();
COleDateTime t2 = t - COleDateTimeSpan(10, 0, 0, 0);
m_tBegin.SetDate(t2.GetYear(), t2.GetMonth(), t2.GetDay()); //<2F><>ʼ
m_tEnd.SetDate(t.GetYear(),t.GetMonth(),t.GetDay());//<2F><><EFBFBD><EFBFBD>
m_lExpressType = 0;
m_lProductType = 0;
m_lStatus = 0;
m_lPayType = 0; //Ĭ<>ϲ<CFB2><E9BFB4><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD>
UpdateData(false);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CC_SFQuery::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_SFQuery::PreTranslateMessage(MSG* pMsg)
{
if ( pMsg->hwnd == m_E_CorpID && pMsg->message == WM_KEYDOWN )
{
if ( pMsg->wParam == 13 ) //<2F>س<EFBFBD><D8B3><EFBFBD>
{
this->OnCPayQuery2();
return true;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
void CC_SFQuery::OnCAgentpayQuery()
{
UpdateData(true);
if ( m_tEnd < m_tBegin )
{
MessageBox( _T("<EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڲ<EFBFBD><EFBFBD><EFBFBD>С<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʼ<EFBFBD><EFBFBD><EFBFBD>ڣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!") , _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>") , MB_ICONWARNING );
return ;
}
if (!m_pMainFrame->GetUserPurview(PURVIEW_MANAGER_SEE,false)) //ֻ<><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ120<32><30><EFBFBD>ڵ<EFBFBD><DAB5><EFBFBD><EFBFBD><EFBFBD>
{
if (COleDateTime::GetCurrentTime() - m_tBegin>COleDateTimeSpan(90, 0, 0, 0))
{
MessageBox(_T("ֻ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ3<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ڵ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ݣ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>!"), _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD>"), MB_ICONWARNING);
return;
}
}
REQ_Corp_SF_See * pSee = new REQ_Corp_SF_See;memset(pSee,0,sizeof(REQ_Corp_SF_See));
//<2F><>ҵ
if ( m_lCorp <= 0 ) //ѡ<><D1A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ҵ
{
pSee->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)
{
pSee->lCorpID = pData->lCorpID;
}
else
{
return;
}
}
m_tBegin.GetAsSystemTime(pSee->tBegin );
m_tEnd.GetAsSystemTime(pSee->tEnd );
pSee->lCorpType = -1; //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ִ<EFBFBD><D6B4><EFBFBD><EFBFBD><EFBFBD><EFBFBD>û<EFBFBD>
pSee->lExpressType = m_lExpressType;
pSee->lProductType = m_lProductType;
pSee->lStatus = m_lStatus;
pSee->lSFPayType = m_lPayType;
m_pMainFrame->SendFrame(SMSFUNC_CORP_SF_SEE,(BYTE*)pSee,sizeof(REQ_Corp_SF_See));
}
void CC_SFQuery::RefreshMonPayData()
{
long lAgentID = -10; //<2F><>ʾ<EFBFBD><CABE><EFBFBD>е<EFBFBD>
m_wndList.ShowWindow(SW_HIDE);
m_wndList.DeleteAllItems(); //ɾ<><C9BE>ԭ<EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
POSITION pos = m_SFData.GetHeadPosition();
POSITION pos2=0;
int i=0;
TCHAR Buf[128]={0};
CString str;
while ( pos )
{
pos2 = pos;
ANS_Corp_SFData * pData = m_SFData.GetNext(pos);
if ( pData )
{
//m_wndList.SetHeadings(_T("<22><><EFBFBD><EFBFBD>,50;<3B><>ҵID,60; ״̬,60; <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>,60;<3B><>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD>,60;<3B><><EFBFBD>ʽ,60; <20>µ<EFBFBD>ʱ<EFBFBD><CAB1>,130;<3B>˵<EFBFBD><CBB5><EFBFBD>,120; <20>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD>,120; <20><>ַ,250;"));
_stprintf(Buf, _T("%d"), i + 1);
m_wndList.InsertItem(i, Buf, 0);
m_wndList.SetItemData(i, (DWORD_PTR)pos2);
int iTemp = 1;
if (pData->lCorpType == 1)
str.Format(_T("A-%d"), pData->lCorpID);
else
str.Format(_T("%d"), pData->lCorpID);
m_wndList.SetItemText(i, iTemp++, str);
switch (pData->lStatus)
{
case 1:
m_wndList.SetItemText(i, iTemp++, _T("<EFBFBD><EFBFBD>ȡ<EFBFBD><EFBFBD>"));
break;
case 2:
m_wndList.SetItemText(i, iTemp++, _T("<EFBFBD><EFBFBD><EFBFBD>ռ<EFBFBD>"));
break;
case 3:
m_wndList.SetItemText(i, iTemp++, _T("<EFBFBD><EFBFBD>ǩ<EFBFBD><EFBFBD>"));
break;
case 0:
default:
m_wndList.SetItemText(i, iTemp++, _T("<EFBFBD><EFBFBD><EFBFBD>µ<EFBFBD>"));
break;
}
switch (pData->lExpressType)
{
default:
str = _T("˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
break;
}
m_wndList.SetItemText(i, iTemp++, str);
switch (pData->express_type) //<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>¼<EFBFBD><C2BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ<EFBFBD><C6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֻ<EFBFBD><D6BB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>˳<EFBFBD><CBB3>Լ<EFBFBD><D4BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𷽿<EFBFBD>ʹ<EFBFBD>á<EFBFBD>
{
case 0: //˳<><CBB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
str = _T("˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
break;
case 1: //˳<><CBB3><EFBFBD>ػ<EFBFBD>
str = _T("˳<EFBFBD><EFBFBD><EFBFBD>ػ<EFBFBD>");
break;
case 2: //˳<><EFBFBD><E1BCB4>
str = _T("˳<EFBFBD><EFBFBD><EFBFBD>");
break;
case 3: //˳<><CBB3><EFBFBD>γ<EFBFBD>
str = _T("˳<EFBFBD><EFBFBD><EFBFBD>γ<EFBFBD>");
break;
default:
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ʒ");
break;
}
m_wndList.SetItemText(i, iTemp++, str);
switch (pData->pay_method)
{
case 0:
str = _T("<EFBFBD>ĸ<EFBFBD><EFBFBD>½<EFBFBD>");
break;
case 1:
str = _T("<EFBFBD>ķ<EFBFBD><EFBFBD><EFBFBD>");
break;
case 2:
str = _T("<EFBFBD>շ<EFBFBD><EFBFBD><EFBFBD>");
break;
case 3:
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
break;
default:
str = _T("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
break;
}
m_wndList.SetItemText(i, iTemp++, str);
str.Format(_T("%04d.%02d.%02d %02d:%02d"), pData->tCreate.wYear, pData->tCreate.wMonth, pData->tCreate.wDay, pData->tCreate.wHour, pData->tCreate.wMinute);
m_wndList.SetItemText(i, iTemp++, str);
m_wndList.SetItemText(i, iTemp++, pData->Res_mailno);
m_wndList.SetItemText(i, iTemp++, pData->Cargo_name);
//m_wndList.SetItemText(i, iTemp++, pData->d_contact);
m_wndList.SetItemText(i, iTemp++, pData->d_address);
i++;
}
}
m_wndList.ShowWindow(SW_SHOW);
}
void CC_SFQuery::OnDblclkCAgentpayList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
On_User_See();
}
void CC_SFQuery::OnRclickCAgentpayList(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
ShowRMenu();
}
long CC_SFQuery::GetCurrentSelected()
{
POSITION pos = m_wndList.GetFirstSelectedItemPosition();
if ( pos )
{
return m_wndList.GetNextSelectedItem(pos);
}
return -1;
}
void CC_SFQuery::On_User_See()
{
long lItem = this->GetCurrentSelected();
if ( lItem <0 )
return ;
ANS_Corp_SFData * pData = NULL;
POSITION pos = (POSITION)m_wndList.GetItemData(lItem);
if ( (DWORD_PTR)pos>=0 )
{
pData = m_SFData.GetNext( pos );
}
if (pData)
{
DLG_Corp_LXR_SF dlg(this);
m_pSFDlg = &dlg;
//dlg.SetParam(m_See.lYWYCount,m_See.lDefaultYWYID,m_pYWYData,*pData,false);
dlg.SetParam(0, 0, NULL, *pData, false);
dlg.DoModal();
m_pSFDlg = NULL;
}
}
void CC_SFQuery::Close_PayData()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
while (!m_SFData.IsEmpty())
{
ANS_Corp_SFData * pData = m_SFData.GetHead();
m_SFData.RemoveHead();
delete pData;
}
}
void CC_SFQuery::Close_Corp()
{
//<2F><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>е<EFBFBD><D0B5><EFBFBD><EFBFBD><EFBFBD>
while (!m_Corp.IsEmpty())
{
ANS_Corp_NameData * pData = m_Corp.GetHead();
m_Corp.RemoveHead();
delete pData;
}
}
void CC_SFQuery::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_SFQuery::OnSelchangeCPayCorp()
{
}
void CC_SFQuery::ShowRMenu()
{
CMenu menu;
menu.CreatePopupMenu();
menu.AppendMenu(MF_STRING, MENU_SFQUERY_COPY, _T(" <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> "));
//<2F><>ʾ<EFBFBD>˵<EFBFBD>
POINT pt;
::GetCursorPos(&pt);
//this->ClientToScreen( &pt);
menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x, pt.y, this, NULL);
menu.DestroyMenu();
}
void CC_SFQuery::On_User_Copy()
{
m_wndList.CopyToClipboard();
}