// DLG_Pay_Detail.cpp: 实现文件 // #include "stdafx.h" #include "SmsManager.h" #include "afxdialogex.h" #include "DLG_Pay_Detail.h" #include "MainFrm.h" #include "CK_AllQuery_Report.h" #include "DLG_Pay_Oper_Detail.h" #include "DLG_Corp_FP.h"; // DLG_Pay_Detail 对话框 IMPLEMENT_DYNAMIC(DLG_Pay_Detail, CDialogEx) DLG_Pay_Detail::DLG_Pay_Detail(CWnd* pParent /*=nullptr*/) : CDialogEx(IDD_PAY_DETAIL, pParent) , m_tFPTime(COleDateTime::GetCurrentTime()) , m_tPayTime(COleDateTime::GetCurrentTime()) , m_tYSTime(COleDateTime::GetCurrentTime()) , m_strAgentName(_T("")) , m_strBankPayer(_T("")) , m_strBankReference(_T("")) , m_strBZ(_T("")) , m_strCorpID(_T("")) , m_strBalance(_T("")) , m_strCorpName(_T("")) , m_strFPDetail(_T("")) , m_strFPNum(_T("")) , m_strFPUser(_T("")) , m_strLPPrice(_T("")) , m_strOverTime(_T("")) , m_strPayMan(_T("")) , m_strPayMode(_T("")) , m_strPayType(_T("")) , m_strPresent(_T("")) , m_strPrice(_T("")) , m_strPriceOne(_T("")) , m_strPT(_T("")) , m_strSmsCount(_T("")) , m_strUserType(_T("")) , m_strVipInt(_T("")) , m_strYSType(_T("")) , m_strYWY(_T("")) , m_strBZS(_T("")) { m_pMainFrame = NULL; m_pGet = NULL; m_pData = NULL; m_pMemberData = NULL; m_pOperData = NULL; m_pFPData = NULL; } DLG_Pay_Detail::~DLG_Pay_Detail() { } void DLG_Pay_Detail::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_DateTimeCtrl(pDX, IDC_PAY_DETAIL_FPTIME, m_tFPTime); DDX_DateTimeCtrl(pDX, IDC_PAY_DETAIL_PAYTIME, m_tPayTime); DDX_DateTimeCtrl(pDX, IDC_PAY_DETAIL_YSTIME, m_tYSTime); DDX_Text(pDX, IDC_PAY_DETAIL_AGENTNAME, m_strAgentName); DDX_Text(pDX, IDC_PAY_DETAIL_BANKPAYER, m_strBankPayer); DDX_Text(pDX, IDC_PAY_DETAIL_BANKREFERENCE, m_strBankReference); DDX_Text(pDX, IDC_PAY_DETAIL_BZ, m_strBZ); DDV_MaxChars(pDX, m_strBZ, 60); DDX_Control(pDX, IDC_PAY_DETAIL_CB, m_L_CB); DDX_Text(pDX, IDC_PAY_DETAIL_CORPID, m_strCorpID); DDX_Text(pDX, IDC_PAY_DETAIL_BALANCE, m_strBalance); DDX_Text(pDX, IDC_PAY_DETAIL_CORPNAME, m_strCorpName); DDX_Control(pDX, IDC_PAY_DETAIL_FPCONFIRM, m_B_FPConfirm); DDX_Text(pDX, IDC_PAY_DETAIL_FPDETAIL, m_strFPDetail); DDV_MaxChars(pDX, m_strFPDetail, 768); DDX_Text(pDX, IDC_PAY_DETAIL_FPNUM, m_strFPNum); DDV_MaxChars(pDX, m_strFPNum, 50); DDX_Control(pDX, IDC_PAY_DETAIL_FPSELECT, m_B_FPSelect); DDX_Control(pDX, IDC_PAY_DETAIL_FPSTATUS, m_L_FPStatus); DDX_Control(pDX, IDC_PAY_DETAIL_FPTYPE, m_L_FPType); DDX_Text(pDX, IDC_PAY_DETAIL_FPUSER, m_strFPUser); DDX_Control(pDX, IDC_PAY_DETAIL_LIST, m_wndList); DDX_CBString(pDX, IDC_PAY_DETAIL_LPPRICE, m_strLPPrice); DDX_Control(pDX, IDC_PAY_DETAIL_LPTYPE, m_L_LPType); DDX_Control(pDX, IDC_PAY_DETAIL_LXRID, m_L_LXRID); DDX_Text(pDX, IDC_PAY_DETAIL_OVERTIME, m_strOverTime); DDX_Text(pDX, IDC_PAY_DETAIL_PAYMAN, m_strPayMan); DDX_CBString(pDX, IDC_PAY_DETAIL_PAYMODE, m_strPayMode); DDX_Text(pDX, IDC_PAY_DETAIL_PAYTYPE, m_strPayType); DDX_Text(pDX, IDC_PAY_DETAIL_PRESENT, m_strPresent); DDX_Text(pDX, IDC_PAY_DETAIL_PRICE, m_strPrice); DDX_Text(pDX, IDC_PAY_DETAIL_PRICEONE, m_strPriceOne); DDX_Text(pDX, IDC_PAY_DETAIL_PT, m_strPT); DDX_Text(pDX, IDC_PAY_DETAIL_SMSCOUNT, m_strSmsCount); DDX_Control(pDX, IDC_PAY_DETAIL_TEST, m_L_Test); DDX_Text(pDX, IDC_PAY_DETAIL_USERTYPE, m_strUserType); DDX_Text(pDX, IDC_PAY_DETAIL_VIPINT, m_strVipInt); DDX_Control(pDX, IDC_PAY_DETAIL_YS, m_B_YS); DDX_Text(pDX, IDC_PAY_DETAIL_YSTYPE, m_strYSType); DDX_Text(pDX, IDC_PAY_DETAIL_YWY, m_strYWY); DDX_Text(pDX, IDC_PAY_DETAIL_BZS, m_strBZS); } BEGIN_MESSAGE_MAP(DLG_Pay_Detail, CDialogEx) ON_BN_CLICKED(IDOK, &DLG_Pay_Detail::OnBnClickedOk) ON_BN_CLICKED(IDCANCEL, &DLG_Pay_Detail::OnBnClickedCancel) ON_NOTIFY(NM_DBLCLK, IDC_PAY_DETAIL_LIST, &DLG_Pay_Detail::OnDblclkPayDetailList) ON_BN_CLICKED(IDC_PAY_DETAIL_FPSELECT, &DLG_Pay_Detail::OnBnClickedPayDetailFpselect) ON_COMMAND_RANGE(MENU_PAY_DETAIL_FPSELECT_BEGIN, MENU_PAY_DETAIL_FPSELECT_END, &DLG_Pay_Detail::OnFPSelect) ON_CBN_SELCHANGE(IDC_PAY_DETAIL_LPTYPE, &DLG_Pay_Detail::OnSelchangePayDetailLptype) END_MESSAGE_MAP() // DLG_Pay_Detail 消息处理程序 void DLG_Pay_Detail::OnBnClickedOk() { // TODO: 在此添加控件通知处理程序代码 if (m_pGet->req.lOperType > 0) //为添加操作 { if (!UpdateData(true)) return; REQ_Pay_Oper_Add* pAdd = new REQ_Pay_Oper_Add; memset((BYTE*)pAdd, 0, sizeof(REQ_Pay_Oper_Add)); pAdd->data.lPTNum = m_pGet->req.lPTNum; pAdd->data.lUserType = m_pGet->req.lUserType; pAdd->data.lPayType = m_pGet->req.lPayType; pAdd->data.lDBType = m_pGet->req.lDBType; pAdd->data.lCorpID = m_pGet->req.lCorpID; pAdd->data.lPayID = m_pGet->req.lPayID; pAdd->lItem = m_pGet->req.lItem; pAdd->data.lOperType = m_pGet->req.lOperType; _tcscpy(pAdd->data.szBZ, m_strBZ); //备注 BOOL bContinue=true; long lTemp = 0; switch (m_pGet->req.lOperType) { case 1: //修改测试充值 lTemp = m_L_Test.GetCurSel(); if (lTemp == m_pData->lTest) { MessageBox(_T("看起来什么值也没改变,请检查【测试充值】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_TEST)->SetFocus(); bContinue = false; } else { pAdd->lTest = lTemp; _stprintf(pAdd->data.szOperMsg,_T("测试充值:%d->%d"), m_pData->lTest, lTemp); } break; case 2: //修改成本充值 lTemp = m_L_CB.GetCurSel(); if (lTemp == m_pData->lCB) { MessageBox(_T("看起来什么值也没改变,请检查【成本充值】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_CB)->SetFocus(); bContinue = false; } else { pAdd->lCB = lTemp; _stprintf(pAdd->data.szOperMsg, _T("成本充值:%d->%d"), m_pData->lCB, lTemp); } break; case 3: //修改开票信息 lTemp = m_L_FPType.GetCurSel(); if (lTemp != 0 && m_strFPDetail.GetLength() <= 0) { MessageBox(_T("你选择了需要开发票,必须录入开票内容 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPDETAIL)->SetFocus(); bContinue = false; } if (lTemp == m_pData->lFP && m_strFPDetail == CString(m_pData->szFPDetail) ) { MessageBox(_T("看起来什么值也没改变,请检查【发票状态】与【发票内容】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPTYPE)->SetFocus(); bContinue = false; } else { pAdd->lFPType = lTemp; _tcscpy(pAdd->szFPDetail, m_strFPDetail); _stprintf(pAdd->data.szOperMsg, _T("发票信息:%d->%d \r\n %s"), m_pData->lFP, lTemp, m_strFPDetail); } break; case 4: //开具发票 lTemp = m_L_FPType.GetCurSel(); if (lTemp == 0) //开具发票下,发票类型不能为"不开票" { MessageBox(_T("开票后,发票类型不能为 不开票 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPTYPE)->SetFocus(); bContinue = false; } if (bContinue) { lTemp = m_L_FPStatus.GetCurSel(); if (lTemp == 0) //开具发票下,发票状态不能为"未开票" { MessageBox(_T("开票后,发票状态不能为 未开票 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPSTATUS)->SetFocus(); bContinue = false; } } if (bContinue) { if (m_strFPNum.GetLength() <= 5) //开具发票下,必须有发票号码 { MessageBox(_T("开票后,必须录入发票号码 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPNUM)->SetFocus(); bContinue = false; } } if (bContinue) { if (m_tFPTime.GetStatus() == COleDateTime::invalid || m_tFPTime.GetStatus() == COleDateTime::null) //开具发票下,必须有开票时间 { MessageBox(_T("开票后,必须录入开票时间 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPTIME)->SetFocus(); bContinue = false; } } if (bContinue) { if (m_tFPTime.GetStatus() == COleDateTime::valid) { COleDateTimeSpan tDiff = COleDateTime::GetCurrentTime() - COleDateTime(m_tFPTime); if (tDiff.GetDays() > 90 || tDiff.GetDays() < -30) //2个月前与1个月后 { MessageBox(_T("修改的开票时间超过许可范围 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPTIME)->SetFocus(); bContinue = false; } } } if (bContinue) { if (m_strFPDetail.GetLength() <= 5) //开具发票下,必须有发票号码 { MessageBox(_T("开票后,必须录入发票内容 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPDETAIL)->SetFocus(); bContinue = false; } } if (bContinue) { if (m_pData->lFP == m_L_FPType.GetCurSel() && m_pData->lFPStatus == m_L_FPStatus.GetCurSel() && m_strFPNum == CString(m_pData->szFPNum) && m_strFPDetail == CString(m_pData->szFPDetail) && m_tFPTime == COleDateTime(m_pData->tFPTime) ) { MessageBox(_T("看起来什么值也没改变,请检查【发票类型】【发票状态】【开票时间】【发票号码】与【发票内容】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPTYPE)->SetFocus(); bContinue = false; } else { pAdd->lFPType = m_L_FPType.GetCurSel(); pAdd->lFPStatus = m_L_FPStatus.GetCurSel(); _tcscpy(pAdd->szFPNum, m_strFPNum); _tcscpy(pAdd->szFPDetail, m_strFPDetail); m_tFPTime.GetAsSystemTime(pAdd->tFPTime); _stprintf(pAdd->data.szOperMsg, _T("开具发票:%d->%d \r\n%d->%d \r\n%04d.%02d.%02d %02d:%02d -> %04d.%02d.%02d %02d:%02d\r\n %s -> %s \r\n%s \r\n------>\r\n %s"), m_pData->lFP, pAdd->lFPType, m_pData->lFPStatus, pAdd->lFPStatus, m_pData->tFPTime.wYear, m_pData->tFPTime.wMonth, m_pData->tFPTime.wDay, m_pData->tFPTime.wHour, m_pData->tFPTime.wMinute, pAdd->tFPTime.wYear, pAdd->tFPTime.wMonth, pAdd->tFPTime.wDay, pAdd->tFPTime.wHour, pAdd->tFPTime.wMinute, m_pData->szFPNum, pAdd->szFPNum,m_pData->szFPDetail, m_strFPDetail); } } break; case 5: //发票已寄出 lTemp = m_L_FPStatus.GetCurSel(); if (lTemp == m_pData->lFPStatus) { MessageBox(_T("看起来什么值也没改变,请检查【发票状态】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_FPSTATUS)->SetFocus(); bContinue = false; } else { pAdd->lFPStatus = lTemp; _stprintf(pAdd->data.szOperMsg, _T("发票已寄出:%d->%d"), m_pData->lFPStatus, pAdd->lFPStatus); } break; case 6: //删除开票信息 if (m_strBZ.GetLength() < 4) { MessageBox(_T("【删除开票信息】,必须输入原因,请录入!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_BZ)->SetFocus(); bContinue = false; } else { pAdd->lFPStatus = m_L_FPStatus.GetCurSel(); _tcscpy(pAdd->szFPNum, m_strFPNum); _tcscpy(pAdd->szFPUser, _T("")); _tcscpy(pAdd->szFPActualType, _T("")); memset(&pAdd->tFPTime, 0, sizeof(pAdd->tFPTime)); _tcscpy(pAdd->data.szBZ, m_strBZ); _stprintf(pAdd->data.szOperMsg, _T("删除开票信息:%d->%d %s -> %s %04d.%02d.%02d %02d:%02d -> %04d.%02d.%02d %02d:%02d"), m_pData->lFPStatus, pAdd->lFPStatus,m_pData->szFPNum, pAdd->szFPNum, m_pData->tFPTime.wYear, m_pData->tFPTime.wMonth, m_pData->tFPTime.wDay, m_pData->tFPTime.wHour, m_pData->tFPTime.wMinute, pAdd->tFPTime.wYear, pAdd->tFPTime.wMonth, pAdd->tFPTime.wDay, pAdd->tFPTime.wHour, pAdd->tFPTime.wMinute); } break; case 7: //修改核销收款 lTemp = !m_B_YS.GetCheck(); if (lTemp == m_pData->lYS && m_strPayMode == CString(m_pData->szPayMode) && m_tYSTime == COleDateTime(m_pData->tYSTime) && m_strBankPayer == CString(m_pData->szBankPayer) && m_strBankReference == CString(m_pData->szBankReferenceNum)) { MessageBox(_T("看起来什么值也没改变,请检查【此款项已核销(已确认业绩)】【充值方式】【到款时间】【付款人】【流水码】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_YS)->SetFocus(); bContinue = false; } /* if (bContinue) { if (m_tYSTime.GetStatus() == COleDateTime::valid && m_strBankReference.GetLength() <= 5) { MessageBox(_T("确认到款后,必须录入银行流水号 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_BANKREFERENCE)->SetFocus(); bContinue = false; } } */ if (bContinue) { if (lTemp == 0 && (m_tYSTime.GetStatus() == COleDateTime::invalid || m_tYSTime.GetStatus() == COleDateTime::null)) { MessageBox(_T("必须有收款时间能将此款项核销(确认业绩) ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_YS)->SetFocus(); bContinue = false; } } if (bContinue) { if (m_tYSTime.GetStatus() == COleDateTime::valid) { COleDateTimeSpan tDiff = COleDateTime::GetCurrentTime() - COleDateTime(m_tYSTime); if (tDiff.GetDays() > 90 || tDiff.GetDays() < -30) //2个月前与1个月后 { MessageBox(_T("修改的收款时间超过许可范围 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_YSTIME)->SetFocus(); bContinue = false; } } } if (bContinue) { pAdd->lYS = lTemp; _tcscpy(pAdd->szPayMode, m_strPayMode); _tcscpy(pAdd->szBankPayer, m_strBankPayer); _tcscpy(pAdd->szBankReferenceNum, m_strBankReference); m_tYSTime.GetAsSystemTime(pAdd->tYSTime); _stprintf(pAdd->data.szOperMsg, _T("收款核销:%d->%d"), m_pData->lCB, lTemp); } break; case 8: //修改充值信息 if (m_strPayMode == CString(m_pData->szPayMode) && m_tYSTime == COleDateTime(m_pData->tYSTime) && m_strBankPayer == CString(m_pData->szBankPayer) && m_strBankReference == CString(m_pData->szBankReferenceNum) ) { MessageBox(_T("看起来什么值也没改变,请检查【充值方式】【到款时间】【付款人】【流水码】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_BANKREFERENCE)->SetFocus(); bContinue = false; } /* if (bContinue) { if ( m_tYSTime.GetStatus()==COleDateTime::valid && m_strBankReference.GetLength() <= 5) { MessageBox(_T("确认到款后,必须录入银行流水号 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_BANKREFERENCE)->SetFocus(); bContinue = false; } } */ if (bContinue) { if (m_tYSTime.GetStatus() == COleDateTime::valid) { COleDateTimeSpan tDiff = COleDateTime::GetCurrentTime() - COleDateTime(m_tYSTime); if (tDiff.GetDays() > 90 || tDiff.GetDays() < -30) //2个月前与1个月后 { MessageBox(_T("修改的收款时间超过许可范围 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_YSTIME)->SetFocus(); bContinue = false; } } } if (bContinue) { _tcscpy(pAdd->szPayMode, m_strPayMode); _tcscpy(pAdd->szBankPayer, m_strBankPayer); _tcscpy(pAdd->szBankReferenceNum, m_strBankReference); m_tYSTime.GetAsSystemTime(pAdd->tYSTime); _stprintf(pAdd->data.szOperMsg, _T("收款信息:%s -> %s %s -> %s %04d.%02d.%02d %02d:%02d -> %04d.%02d.%02d %02d:%02d"),m_pData->szPayMode, pAdd->szPayMode,m_pData->szBankPayer, pAdd->szBankPayer,m_pData->szBankReferenceNum,pAdd->szBankReferenceNum, m_pData->tYSTime.wYear, m_pData->tYSTime.wMonth, m_pData->tYSTime.wDay, m_pData->tYSTime.wHour, m_pData->tYSTime.wMinute, pAdd->tYSTime.wYear, pAdd->tYSTime.wMonth, pAdd->tYSTime.wDay, pAdd->tYSTime.wHour, pAdd->tYSTime.wMinute); } break; case 9: //修改赠送信息 { int iLXRItem = m_L_LXRID.GetCurSel(); int iLXRID = 0; CString strLXRName; if (iLXRItem >= 0) { ANS_Corp_MemberData* pMember = (ANS_Corp_MemberData * )m_L_LXRID.GetItemData(iLXRItem); if (pMember && pMember->lLXRID>0) { iLXRID = pMember->lLXRID; strLXRName = pMember->szName; } } if (iLXRID == m_pData->lLXRID && _ttof(m_strLPPrice) == m_pData->fLPPrice && m_L_LPType.GetCurSel() == m_pData->lLPType) { MessageBox(_T("看起来什么值也没改变,请检查【礼品类型】【礼品价值】【接受会员】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_LPTYPE)->SetFocus(); bContinue = false; } if (bContinue) { if (m_L_LPType.GetCurSel() > 0) //有赠送礼品 { if (_ttof(m_strLPPrice) <= 0.0f) { MessageBox(_T("有赠送礼品,必须要录入礼品价值 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_LPPRICE)->SetFocus(); bContinue = false; } if (bContinue && iLXRID <= 0) { MessageBox(_T("有赠送礼品,必须要有赠送会员 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_LXRID)->SetFocus(); bContinue = false; } } } if (bContinue) { pAdd->lLPType = m_L_LPType.GetCurSel(); if (pAdd->lLPType == 0) //无赠送礼品 { pAdd->fLPPrice = 0.0f; pAdd->lLXRID = 0; _tcscpy(pAdd->szLXRName, _T("")); } else { pAdd->fLPPrice = _ttol(m_strLPPrice); pAdd->lLXRID = iLXRID; _tcscpy(pAdd->szLXRName, strLXRName); } _stprintf(pAdd->data.szOperMsg, _T("赠送信息:%d -> %d %.2f -> %.2f %s -> %s"), m_pData->lLPType, pAdd->lLPType, m_pData->fLPPrice, pAdd->fLPPrice, m_pData->szLXRName, strLXRName); } } break; case 10: //修改充值时间 { if (m_tPayTime == COleDateTime(m_pData->tPayTime)) { MessageBox(_T("看起来什么值也没改变,请检查【充值时间】"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_PAYTIME)->SetFocus(); bContinue = false; } if (m_tPayTime.GetStatus() == COleDateTime::invalid || m_tPayTime.GetStatus() == COleDateTime::null) { MessageBox(_T("修改的充值时间有误 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_PAYTIME)->SetFocus(); bContinue = false; } if (bContinue) { if (m_tPayTime.GetStatus() == COleDateTime::valid) { COleDateTimeSpan tDiff = COleDateTime::GetCurrentTime() - COleDateTime(m_tPayTime); if (tDiff.GetDays() > 60 || tDiff.GetDays() < -30) //2个月前与1个月后 { MessageBox(_T("修改的充值时间超过许可范围 ,请修正!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_PAYTIME)->SetFocus(); bContinue = false; } } } if (bContinue) { m_tPayTime.GetAsSystemTime(pAdd->tPayTime); _stprintf(pAdd->data.szOperMsg, _T("充值时间:%04d.%02d.%02d %02d:%02d -> %04d.%02d.%02d %02d:%02d"), m_pData->tPayTime.wYear, m_pData->tPayTime.wMonth, m_pData->tPayTime.wDay, m_pData->tPayTime.wHour, m_pData->tPayTime.wMinute, pAdd->tPayTime.wYear, pAdd->tPayTime.wMonth, pAdd->tPayTime.wDay, pAdd->tPayTime.wHour, pAdd->tPayTime.wMinute); } } break; case 11: //作废预开票 if (m_strBZ.GetLength() < 4) { MessageBox(_T("【作废预开票】,必须输入原因,请录入!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_BZ)->SetFocus(); bContinue = false; } else { if (m_pData->lYSType != 1) { MessageBox(_T("预开票类型有误,不能作废开票,请退出刷新后再试!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_YSTYPE)->SetFocus(); bContinue = false; } pAdd->lYSType = 2; //作废预开票 _tcscpy(pAdd->szPayMode, _T("预开票作废")); } break; case 12: //确认预开票 if (m_pData->lYSType != 1) { MessageBox(_T("预开票类型有误,不能确认充值 ,请退出刷新后再试!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_YSTYPE)->SetFocus(); bContinue = false; } pAdd->lYSType = 0; //确认预充值 _tcscpy(pAdd->szPayMode, _T("应收")); break; case 13: //撤销本笔充值 if (m_strBZ.GetLength() < 4) { MessageBox(_T("【撤消本笔充值】,必须输入原因,请录入!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_BZ)->SetFocus(); bContinue = false; } else { if (m_pData->lYSType != 0) { MessageBox(_T("非应收充值,不能撤消充值 ,请退出刷新后再试!"), _T("提示"), MB_ICONINFORMATION); GetDlgItem(IDC_PAY_DETAIL_YSTYPE)->SetFocus(); bContinue = false; } pAdd->lYSType = 2; //作废预开票 _tcscpy(pAdd->szPayMode, _T("撤消本笔充值")); } break; } if (!bContinue) { delete pAdd; return; } else { m_pMainFrame->SendFrame(SMSFUNC_PAY_OPER_ADD, (BYTE*)pAdd, sizeof(REQ_Pay_Oper_Add)); } } CDialogEx::OnOK(); } void DLG_Pay_Detail::OnBnClickedCancel() { // TODO: 在此添加控件通知处理程序代码 CDialogEx::OnCancel(); } void DLG_Pay_Detail::SetParam(CMainFrame* pFrame, ANS_AllQuery_Report_Get* pGet, ANS_AllQuery_Report_Data* pData, ANS_Corp_MemberData* pMemberData, ANS_Pay_Oper_Data* pOperData, ANS_Corp_FPData* pFPData) { m_pMainFrame = pFrame; m_pGet = pGet; m_pData = pData; m_pMemberData = pMemberData; m_pOperData = pOperData; m_pFPData = pFPData; } BOOL DLG_Pay_Detail::OnInitDialog() { CDialogEx::OnInitDialog(); CString str; //基础信息 m_strPT = CK_AllQuery_Report::GetPTName(m_pData->lPTNum, true); m_strAgentName = m_pData->szAgentName; m_strUserType = CK_AllQuery_Report::GetUserType(m_pData->lUserType); m_strPayType = CK_AllQuery_Report::GetPayType(m_pData->lPayType); m_strCorpID.Format(_T("%d"), m_pData->lCorpID); m_strYWY = m_pData->szYWYName; m_strCorpName = m_pData->szCorpName; //支付信息 m_strPayMan = m_pData->szCreateUser; m_strYSType = CK_AllQuery_Report::GetYSType(m_pData->lYSType); m_L_Test.SetCurSel(m_pData->lTest); m_L_CB.SetCurSel(m_pData->lCB); if (COleDateTime(m_pData->tPayTime).GetStatus() == COleDateTime::valid) { m_tPayTime = m_pData->tPayTime; } else { //m_tPayTime.SetStatus(COleDateTime::null); m_tPayTime.SetDateTime(2000, 1, 1, 0, 0, 0); } m_strOverTime.Format(_T("%04d.%02d.%02d"), m_pData->tOvrTime.wYear, m_pData->tOvrTime.wMonth, m_pData->tOvrTime.wDay); m_strPrice.Format(_T("%.2f"), m_pData->fPrice); m_strPriceOne.Format(_T("%.4f"), m_pData->fPriceOne); m_strPresent.Format(_T("%d"), m_pData->lPresent); m_strSmsCount.Format(_T("%d"), m_pData->lSMSCount); if ((m_pData->fPrice - m_pData->fLPPrice) != 0 && m_pData->lSMSCount != 0 ) m_strVipInt.Format(_T("%.4f"), (float)((m_pData->fPrice- m_pData->fLPPrice)/(float)m_pData->lSMSCount)); //暂时用推荐积分换成平均单价 m_strBalance.Format(_T("%d"), m_pData->lBalance); //赠送信息 m_L_LPType.SetCurSel(m_pData->lLPType); m_strLPPrice.Format(_T("%.2f"), m_pData->fLPPrice); //添加会员名单 int iSel = -1; for (int i = 0; i < m_pGet->lLXRCount; i++) { int iItem = m_L_LXRID.AddString(m_pMemberData[i].szName); m_L_LXRID.SetItemData(iItem, (DWORD_PTR)(LPVOID *) & m_pMemberData[i]); if (m_pData->lLXRID == m_pMemberData[i].lLXRID) iSel = i; } if (iSel >= 0) m_L_LXRID.SetCurSel(iSel); //付款信息 m_strPayMode = m_pData->szPayMode; if (COleDateTime(m_pData->tYSTime).GetStatus() == COleDateTime::valid) { m_tYSTime = m_pData->tYSTime; } else { m_tYSTime.SetStatus(COleDateTime::null); } m_strBankPayer = m_pData->szBankPayer; m_strBankReference = m_pData->szBankReferenceNum; m_B_YS.SetCheck(m_pData->lYS>0?false:true); //m_B_YS.SetCheck(m_pData->lYS); //发票信息 m_L_FPType.SetCurSel(m_pData->lFP); m_L_FPStatus.SetCurSel(m_pData->lFPStatus); if (COleDateTime(m_pData->tFPTime).GetStatus() == COleDateTime::valid) { m_tFPTime = m_pData->tFPTime; } else { m_tFPTime.SetStatus(COleDateTime::null); } m_strFPUser = m_pData->szFPUser; m_strFPNum = m_pData->szFPNum; m_strFPDetail = m_pData->szFPDetail; m_strBZS = m_pData->szBZ; if (m_pData->lUserType == 1) //代理商 { GetDlgItem(IDC_PAY_DETAIL_CORPID_S)->SetWindowText(_T("代理商ID")); GetDlgItem(IDC_PAY_DETAIL_CORPNAME_S)->SetWindowText(_T("代理名称")); } if (m_pData->lPayType == 9) //彩信 { GetDlgItem(IDC_PAY_DETAIL_PRICEONE_S)->SetWindowText(_T("彩信单价")); GetDlgItem(IDC_PAY_DETAIL_PRESENT_S)->SetWindowText(_T("彩信赠送")); GetDlgItem(IDC_PAY_DETAIL_SMSCOUNT_S)->SetWindowText(_T("彩信总量")); } if (m_pGet->req.lOperType > 0) //为添加操作 { ((CEdit*)GetDlgItem(IDC_PAY_DETAIL_BZ))->SetReadOnly(false); switch (m_pGet->req.lOperType) { case 1: //修改测试充值 m_L_Test.EnableWindow(true); m_L_Test.SetCurSel(m_pGet->req.lOperNewValue); break; case 2: //修改成本充值 m_L_CB.EnableWindow(true); m_L_CB.SetCurSel(m_pGet->req.lOperNewValue); break; case 3: //修改开票信息 m_L_FPType.EnableWindow(true); GetDlgItem(IDC_PAY_DETAIL_FPSELECT)->EnableWindow(true); ((CEdit*)GetDlgItem(IDC_PAY_DETAIL_FPDETAIL))->SetReadOnly(false); break; case 4: //开具发票 m_L_FPType.EnableWindow(true); if ( m_pData->lFPStatus==0) //如果是未开票的,变为已开票 m_L_FPStatus.SetCurSel(1); if ( m_tFPTime.GetStatus()== COleDateTime::invalid || m_tFPTime.GetStatus() == COleDateTime::null) m_tFPTime = COleDateTime::GetCurrentTime(); GetDlgItem(IDC_PAY_DETAIL_FPSELECT)->EnableWindow(true); GetDlgItem(IDC_PAY_DETAIL_FPTIME)->EnableWindow(true); GetDlgItem(IDC_PAY_DETAIL_FPCONFIRM)->EnableWindow(true); ((CEdit*)GetDlgItem(IDC_PAY_DETAIL_FPDETAIL))->SetReadOnly(false); ((CEdit*)GetDlgItem(IDC_PAY_DETAIL_FPNUM))->SetReadOnly(false); break; case 5: //发票已寄出 m_L_FPStatus.EnableWindow(true); m_L_FPStatus.SetCurSel(m_pGet->req.lOperNewValue); break; case 6: //删除开票信息 m_L_FPStatus.SetCurSel(0); //变为未开票 m_tFPTime.SetStatus(COleDateTime::null); m_strFPNum = _T(""); break; case 7: //修改收款核销 m_B_YS.EnableWindow(true); m_B_YS.SetCheck(m_pGet->req.lOperNewValue > 0 ? false : true); GetDlgItem(IDC_PAY_DETAIL_PAYMODE)->EnableWindow(true); GetDlgItem(IDC_PAY_DETAIL_YSTIME)->EnableWindow(true); ((CEdit*)GetDlgItem(IDC_PAY_DETAIL_BANKPAYER))->SetReadOnly(false); ((CEdit*)GetDlgItem(IDC_PAY_DETAIL_BANKREFERENCE))->SetReadOnly(false); if (m_tYSTime.GetStatus() == COleDateTime::invalid || m_tYSTime.GetStatus() == COleDateTime::null) m_tYSTime = COleDateTime::GetCurrentTime(); break; case 8: //修改收款信息 GetDlgItem(IDC_PAY_DETAIL_PAYMODE)->EnableWindow(true); GetDlgItem(IDC_PAY_DETAIL_YSTIME)->EnableWindow(true); ((CEdit*)GetDlgItem(IDC_PAY_DETAIL_BANKPAYER))->SetReadOnly(false); ((CEdit*)GetDlgItem(IDC_PAY_DETAIL_BANKREFERENCE))->SetReadOnly(false); if (m_tYSTime.GetStatus() == COleDateTime::invalid || m_tYSTime.GetStatus() == COleDateTime::null) m_tYSTime = COleDateTime::GetCurrentTime(); break; case 9: //修改赠送信息 GetDlgItem(IDC_PAY_DETAIL_LPTYPE)->EnableWindow(true); GetDlgItem(IDC_PAY_DETAIL_LPPRICE)->EnableWindow(true); GetDlgItem(IDC_PAY_DETAIL_LXRID)->EnableWindow(true); break; case 10: //修改充值时间 GetDlgItem(IDC_PAY_DETAIL_PAYTIME)->EnableWindow(true); break; case 11: //作废预开票 m_strYSType = _T("作废预开票"); break; case 12: //确认预开票 m_strYSType = _T("确认预开票"); break; case 13: //撤销本笔充值 m_strYSType = _T("撤消本笔充值"); break; } CString strTitle; strTitle.Format(_T("请输入【%s】操作的原因"), GetPayOperType(m_pGet->req.lOperType)); GetDlgItem(IDC_PAY_DETAIL_BZ_S)->SetWindowText(strTitle); GetDlgItem(IDC_PAY_DETAIL_BZ_S)->GetFocus(); } //显示操作记录 //初始化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("序号,60; 操作类型,150;操作帐号,100; 操作时间,160; 操作内容,300; 备注,300;")); m_wndList.SetGridLines(true); int iRow = 0; for (int i = 0; i < m_pGet->lOperCount; i++) { #ifdef SMSMANAGER_KF //如果是客服开票平台,只显示与开票相关的操作 if (m_pOperData[i].lOperType == 3 || //修改开票信息 m_pOperData[i].lOperType == 4 || //开具发票 m_pOperData[i].lOperType == 5 || //发票已寄出 m_pOperData[i].lOperType == 6 ) //删除开票信息 { #endif str.Format(_T("%d"), iRow + 1); m_wndList.InsertItem(iRow, str, 0); int iIndex = 1; m_wndList.SetItemText(iRow, iIndex++, GetPayOperType(m_pOperData[i].lOperType)); m_wndList.SetItemText(iRow, iIndex++, m_pOperData[i].szCreateUser); str.Format(_T("%04d.%02d.%02d %02d:%02d"), m_pOperData[i].tCreateTime.wYear, m_pOperData[i].tCreateTime.wMonth, m_pOperData[i].tCreateTime.wDay, m_pOperData[i].tCreateTime.wHour, m_pOperData[i].tCreateTime.wMinute); m_wndList.SetItemText(iRow, iIndex++, str); m_wndList.SetItemText(iRow, iIndex++, m_pOperData[i].szOperMsg); m_wndList.SetItemText(iRow, iIndex++, m_pOperData[i].szBZ); m_wndList.SetItemData(iRow, (DWORD_PTR)(LPVOID)&m_pOperData[i]); iRow++; #ifdef SMSMANAGER_KF } #endif } #ifdef SMSMANAGER_KF GetDlgItem(IDC_PAY_DETAIL_YS)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_PRICEONE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_PRESENT)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_SMSCOUNT)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_VIPINT)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_BALANCE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_PRICEONE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_PRESENT_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_SMSCOUNT_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_VIPINT_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_BALANCE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_LP_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_LPTYPE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_LPPRICE)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_LXRID)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_LPTYPE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_LPPRICE_S)->ShowWindow(SW_HIDE); GetDlgItem(IDC_PAY_DETAIL_LXRID_S)->ShowWindow(SW_HIDE); #endif UpdateData(false); return TRUE; // return TRUE unless you set the focus to a control // 异常: OCX 属性页应返回 FALSE } CString DLG_Pay_Detail::GetPayOperType(int lOperType) { CString str = _T(""); switch (lOperType) { 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("收款核销"); break; case 8: str = _T("修改收款信息"); break; case 9: str = _T("修改赠送信息"); break; case 10: str = _T("修改充值时间"); break; case 11: str = _T("作废预开票"); break; case 12: str = _T("确认预开票"); break; case 13: str = _T("撤消本笔充值"); break; default: str = _T("未知客户操作类型"); break; } return str; } void DLG_Pay_Detail::OnDblclkPayDetailList(NMHDR* pNMHDR, LRESULT* pResult) { LPNMITEMACTIVATE pNMItemActivate = reinterpret_cast(pNMHDR); *pResult = 0; long lItem = m_wndList.GetFirstSelectedItem(); if (lItem >= 0) { ANS_Pay_Oper_Data* pData = (ANS_Pay_Oper_Data*)(LPVOID)m_wndList.GetItemData(lItem); if (pData && pData->lOperID>0) { DLG_Pay_Oper_Detail dlg(this); dlg.SetParam(pData); dlg.DoModal(); } } } void DLG_Pay_Detail::OnBnClickedPayDetailFpselect() { CMenu menu; menu.CreatePopupMenu(); CString str; for (int i = 0; i < m_pGet->lFPCount;i++) { str.Format(_T("%s-%s"), DLG_Corp_FP::GetFPType2(m_pFPData[i].lFPType), m_pFPData[i].szCorpName); if (m_pFPData[i].bDefaultFP) str.Append(_T("(默认)")); menu.AppendMenu(MF_STRING, MENU_PAY_DETAIL_FPSELECT_BEGIN+i, str); } //显示菜单 POINT pt; RECT rect = { 0 }; GetDlgItem(IDC_PAY_DETAIL_FPSELECT)->GetWindowRect(&rect); //::GetCursorPos(&pt); pt.x = rect.left; pt.y = rect.bottom; //this->ReportToScreen( &pt); menu.TrackPopupMenu(TPM_LEFTBUTTON | TPM_RIGHTBUTTON, pt.x, pt.y, this, NULL); menu.DestroyMenu(); } void DLG_Pay_Detail::OnFPSelect(UINT nID) { int iID = nID; int iBegin = MENU_PAY_DETAIL_FPSELECT_BEGIN; int iIndex = iID - iBegin; if (iIndex < 0 || iIndex >= m_pGet->lFPCount) return; ANS_Corp_FPData* pFPData = &m_pFPData[iIndex]; if (pFPData->lFPID < 0) return; UpdateData(true); m_L_FPType.SetCurSel(pFPData->lFPType); //生成发票抬头信息 //m_strFPDetail = _T("发票类型:"); //m_strFPDetail.Append(DLG_Corp_FP::GetFPType2(pFPData->lFPType)); //m_strFPDetail.Append(_T("\r\n")); m_strFPDetail = _T("特殊需求:"); //m_strFPDetail.Append(DLG_Corp_FP::GetFPType2(pFPData->lFPType)); m_strFPDetail.Append(_T("\r\n")); m_strFPDetail.Append(_T("发票抬头:")); m_strFPDetail.Append(pFPData->szCorpName); m_strFPDetail.Append(_T("\r\n")); m_strFPDetail.Append(_T("统一信用代码:")); m_strFPDetail.Append(pFPData->szCorpTaxID); m_strFPDetail.Append(_T("\r\n")); m_strFPDetail.Append(_T("地 址、电 话:")); m_strFPDetail.Append(pFPData->szCorpAddress); m_strFPDetail.Append(_T(" ")); m_strFPDetail.Append(pFPData->szCorpTel); m_strFPDetail.Append(_T("\r\n")); m_strFPDetail.Append(_T("开户行及账号:")); m_strFPDetail.Append(pFPData->szCorpBank); m_strFPDetail.Append(_T(" ")); m_strFPDetail.Append(pFPData->szCorpBankNo); m_strFPDetail.Append(_T("\r\n")); m_strFPDetail.Append(_T("备注:")); m_strFPDetail.Append(pFPData->szBZ); m_strFPDetail.Append(_T("\r\n")); m_strFPDetail.Append(_T("收件人、邮箱:")); m_strFPDetail.Append(pFPData->szPostName); m_strFPDetail.Append(_T(" ")); m_strFPDetail.Append(pFPData->szPostEmail); m_strFPDetail.Append(_T("\r\n")); m_strFPDetail.Append(_T("地址、邮编:")); m_strFPDetail.Append(pFPData->szPostAddress); m_strFPDetail.Append(_T(" ")); m_strFPDetail.Append(pFPData->szPostCode); m_strFPDetail.Append(_T("\r\n")); m_strFPDetail.Append(_T("手机、电话:")); m_strFPDetail.Append(pFPData->szPostMobile); m_strFPDetail.Append(_T(" ")); m_strFPDetail.Append(pFPData->szPostTel); m_strFPDetail.Append(_T("\r\n")); UpdateData(false); } void DLG_Pay_Detail::OnSelchangePayDetailLptype() { int iSel = m_L_LPType.GetCurSel(); if (iSel == 0) //没赠送礼品 { UpdateData(true); m_strLPPrice = _T(""); m_L_LXRID.SetCurSel(-1); UpdateData(false); } }