123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305 |
- // DlgServiceTrackingInfo.cpp : 实现文件
- //
- #include "stdafx.h"
- #include "YLGL.h"
- #include "DlgServiceTrackingInfo.h"
- // CDlgServiceTrackingInfo 对话框
- IMPLEMENT_DYNAMIC(CDlgServiceTrackingInfo, CDialog)
- CDlgServiceTrackingInfo::CDlgServiceTrackingInfo(CWnd* pParent /*=NULL*/)
- : CDialog(CDlgServiceTrackingInfo::IDD, pParent),m_pAryString(NULL)
- , m_strOrderTaker(_T(""))
- , m_strReceiptItem(_T(""))
- , m_strReceivables(_T(""))
- , m_strReceived(_T(""))
- , m_bModify(FALSE)
- {
- }
- CDlgServiceTrackingInfo::~CDlgServiceTrackingInfo()
- {
- }
- void CDlgServiceTrackingInfo::DoDataExchange(CDataExchange* pDX)
- {
- CDialog::DoDataExchange(pDX);
- DDX_Control(pDX, IDC_LIST2, m_list);
- DDX_Text(pDX, TX_ORDER, m_strOrder);
- DDX_Text(pDX, TX_ORDER_TAKER, m_strOrderTaker);
- DDX_Text(pDX, TX_RECEIPT_ITEM, m_strReceiptItem);
- DDX_Text(pDX, TX_RECEIVABLES, m_strReceivables);
- DDX_Text(pDX, TX_RECEIVED, m_strReceived);
- DDX_Control(pDX, IDC_COMBO1, m_cbox_state);
- DDX_Control(pDX, CBOX_PICKUPMAN, m_cbox_pickup_man);
- DDX_Control(pDX, CBOX_ORDER_TAKER, m_cbox_order_taker);
- }
- BEGIN_MESSAGE_MAP(CDlgServiceTrackingInfo, CDialog)
- ON_WM_CTLCOLOR()
- ON_BN_CLICKED(BTN_ADD_RECORD, &CDlgServiceTrackingInfo::OnBnClickedAddRecord)
- ON_BN_CLICKED(BTN_FLAT_RECEIVED, &CDlgServiceTrackingInfo::OnBnClickedFlatReceived)
- ON_CBN_CLOSEUP(CBOX_ORDER_TAKER, &CDlgServiceTrackingInfo::OnCbnCloseupOrderTaker)
- END_MESSAGE_MAP()
- // CDlgServiceTrackingInfo 消息处理程序
- BOOL CDlgServiceTrackingInfo::OnInitDialog()
- {
- CDialog::OnInitDialog();
- // TODO: 在此添加额外的初始化
- CenterWindow();
- m_cbox_state.AddString(_T("未服务"));
- m_cbox_state.AddString(_T("服务中"));
- m_cbox_state.AddString(_T("服务完成"));
- // 初始化list列头;
- m_list.SetHeadings(
- _T("时间, 60"),
- _T("人员, 120"),
- _T("内容, 120"),
- NULL);
- if ( m_pAryString != NULL )
- {
- // id;
- m_strId = m_pAryString->ElementAt(0);
- // 订单号;
- m_strOrder = m_pAryString->ElementAt(1);
- // 收款项目(服务项目);
- m_strReceiptItem = m_pAryString->ElementAt(5);
- // 应收款;
- m_strReceivables = m_pAryString->ElementAt(6);
- // 实收款;
- m_strReceived = m_pAryString->ElementAt(7);
- // 接单人;
- m_strOrderTaker = m_pAryString->ElementAt(9);
- // 对接人;
- CString strPickupMan = m_pAryString->ElementAt(11);
- // 服务状态;
- m_strServiceState = m_pAryString->ElementAt(13);
- // 当实收款 > 应收款时,平账按钮可用;
- //GetDlgItem(BTN_FLAT_RECEIVED)->EnableWindow(_tstoi(m_strReceived) > _tstoi(m_strReceivables) ? TRUE : FALSE);
- m_cbox_state.SelectString(0, m_strServiceState);
- m_cbox_pickup_man.RefDroppedWidth();
- int nSelectedItem = m_cbox_pickup_man.FindString(0, strPickupMan);
- if ( nSelectedItem == CB_ERR )
- m_cbox_pickup_man.AddString(strPickupMan);
- m_cbox_pickup_man.SetCurSel(m_cbox_pickup_man.FindString(0, strPickupMan));
- // 接单人空,可设置接单人;
- if ( !m_strOrderTaker.IsEmpty() )
- {
- m_cbox_order_taker.ShowWindow(FALSE);
- GetDlgItem(TX_ORDER_TAKER)->ShowWindow(TRUE);
- }
- else
- {
- m_cbox_order_taker.ShowWindow(TRUE);
- GetDlgItem(TX_ORDER_TAKER)->ShowWindow(FALSE);
- }
- UpdateData(FALSE);
- }
- GetServiceTrackingRecord();
- GetDlgItem(BTN_FLAT_RECEIVED)->EnableWindow(IsHasRights2new(54));
- return TRUE; // return TRUE unless you set the focus to a control
- // 异常: OCX 属性页应返回 FALSE
- }
- void CDlgServiceTrackingInfo::OnOK() // 保存,修改服务状态;
- {
- // TODO: 在此添加专用代码和/或调用基类
- if ( m_cbox_state.GetCurSel() != CB_ERR )
- {
- m_cbox_state.GetLBText(m_cbox_state.GetCurSel(),m_strServiceState);
- if ( m_strServiceState == _T("服务完成") && ( _tstoi(m_strReceivables) != _tstoi(m_strReceived) ))
- {
- AfxMessageBox(_T("欠款用户不能标记服务完成!"));
- return;
- }
- m_strPickupMan = _T("");
- if ( m_cbox_pickup_man.GetCurSel() != CB_ERR )
- m_cbox_pickup_man.GetLBText(m_cbox_pickup_man.GetCurSel(), m_strPickupMan);
- if ( m_strServiceState == _T("服务中") && m_strPickupMan.IsEmpty())
- {
- AfxMessageBox(_T("服务中必须选择对接人员!"));
- return;
- }
- CString strSQL;
- m_strPickupDept = DAL::GetStaffDepartment(m_strPickupMan);
- if ( m_strId == m_strOrder )
- {
- strSQL.Format(_T("update dindan set pick_up_man = '%s', pick_up_dept = '%s', service_state = '%s' where id = '%s'"), m_strPickupMan, m_strPickupDept, m_strServiceState, m_strOrder);
- }
- else
- {
- strSQL.Format(_T("update dindanbukuan2 set pick_up_man = '%s', pick_up_dept = '%s', service_state = '%s' where autoid = %s"), m_strPickupMan, m_strPickupDept, m_strServiceState, m_strId);
- }
- g_sendhead.bsql = TRUE;
- g_pMainWnd->ProcessChatMessageRequest2(strSQL);
- m_bModify = TRUE; // 标记已修改, 要刷新;
- if (g_bSendOK == 0)
- return;
- AfxMessageBox(_T("保存成功"));
- }
- }
- HBRUSH CDlgServiceTrackingInfo::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
- {
- HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
- // TODO: 在此更改 DC 的任何属性
- switch(nCtlColor)
- {
- case CTLCOLOR_DLG:
- {
- return CreateSolidBrush(g_clr_dlg);
- }
- break;
- case CTLCOLOR_BTN:
- break;
- case CTLCOLOR_STATIC:
- {
- pDC->SetBkMode(TRANSPARENT);
- return CreateSolidBrush(g_clr_dlg);
- }
- break;
- }
- // TODO: 如果默认的不是所需画笔,则返回另一个画笔
- return hbr;
- }
- void CDlgServiceTrackingInfo::OnBnClickedAddRecord()
- {
- // TODO: 在此添加控件通知处理程序代码
- CString strWord = _T("");
- GetDlgItemText(TX_RECORD, strWord);
- if ( strWord.IsEmpty() )
- return;
- CString strSQL = _T("");
- strSQL.Format(_T("insert into service_tracking_record(type, id, [time], [staff], [record])values('%s', '%s', '%s', '%s', '%s')"),
- m_strId == m_strOrder ? _T("订单") : _T("加挑"),
- m_strId,
- CTime::GetCurrentTime().Format(_T("%Y-%m-%d %H:%M:%S")),
- g_user.name,
- strWord);
- g_sendhead.bsql = TRUE;
- g_pMainWnd->ProcessChatMessageRequest2(strSQL);
- m_bModify = TRUE; // 标记已修改, 要刷新;
- if (g_bSendOK == 0)
- return;
- GetServiceTrackingRecord();
- }
- void CDlgServiceTrackingInfo::GetServiceTrackingRecord()
- {
- CString strSQL;
- strSQL.Format(_T("type = '%s' and id = '%s'"), m_strId == m_strOrder ? _T("订单") : _T("加挑"), m_strId);
- g_sendhead.bsql = 0;
- g_sendhead.code[0] = 236;
- g_sendhead.tabcount = 1;
- g_pMainWnd->ProcessChatMessageRequest2(strSQL);
- if (g_bSendOK == 0)
- return;
- CArray<CStringArray, CStringArray> AryRecord;
- DataToArray(&AryRecord);
- m_list.m_AryList.RemoveAll();
- m_list.DeleteAllItems();
- m_list.m_AryList.SetSize(AryRecord.GetSize());
- for (int i = 0; i < AryRecord.GetSize(); i++)
- {
- m_list.m_AryList.ElementAt(i).RemoveAll();
- m_list.m_AryList.ElementAt(i).Add(AryRecord.ElementAt(i).ElementAt(2));
- m_list.m_AryList.ElementAt(i).Add(AryRecord.ElementAt(i).ElementAt(3));
- m_list.m_AryList.ElementAt(i).Add(AryRecord.ElementAt(i).ElementAt(4));
- }
- m_list.SetItemCountEx(m_list.m_AryList.GetSize());
- }
- void CDlgServiceTrackingInfo::OnBnClickedFlatReceived() // 平账按钮;
- {
- CString strSQL;
- CString strLogContent;
- if ( m_strId == m_strOrder )
- {
- strSQL.Format(_T("update dindan set amount_received = '%s' where id = '%s'"), m_strReceivables, m_strId);
- strLogContent.Format(_T("订单号:%s, 原实收款:%s"), m_strId, m_strReceived);
- }
- else
- {
- strSQL.Format(_T("update dindanbukuan2 set amount_received = '%s' where autoid = %s"), m_strReceivables, m_strId);
- strLogContent.Format(_T("订单号:%s, 加挑物品:%s, 原实收款:%s"), m_strId, m_strReceiptItem, m_strReceived);
- }
- g_sendhead.bsql = TRUE;
- g_pMainWnd->ProcessChatMessageRequest2(strSQL);
- if (g_bSendOK == 0)
- return;
- WriteLog(_T("平账日志"), _T("平账操作"), g_user.name, strLogContent);
- m_strReceived = m_strReceivables;
- UpdateData(FALSE);
- m_bModify = TRUE;
- AfxMessageBox(_T("平账成功!"));
- }
- void CDlgServiceTrackingInfo::OnCbnCloseupOrderTaker()
- {
- CString strOrderTaker = _T("");
- if ( m_cbox_order_taker.GetCurSel() != CB_ERR )
- m_cbox_order_taker.GetLBText(m_cbox_order_taker.GetCurSel(), strOrderTaker);
- if ( !strOrderTaker.IsEmpty())
- {
- CString strSQL;
- CString strLogContent;
- if ( m_strId == m_strOrder )
- {// 订单;
- strSQL.Format(_T("update [dindan] set [ren] = '%s', [bm] = '%s' where [id] = '%s'"), strOrderTaker, DAL::GetStaffDepartment(strOrderTaker), m_strId);
- strLogContent.Format(_T("订单号:%s"),m_strId);
- }
- else
- {// 加挑;
- strSQL.Format(_T("update [dindanbukuan2] set [order_taker] = '%s', [order_taker_dept] = '%s' where [autoid] = %s"), strOrderTaker, DAL::GetStaffDepartment(strOrderTaker), m_strId);
- strLogContent.Format(_T("订单号:%s, 加挑物品:%s"), m_strId, m_strReceiptItem);
- }
- g_sendhead.bsql = TRUE;
- g_pMainWnd->ProcessChatMessageRequest2(strSQL);
- if (g_bSendOK == 0)
- return;
- AfxMessageBox(_T("重选接单人成功!"));
- WriteLog(_T("普通日志"), _T("重选接单人"), g_user.name, strLogContent);
- GetServiceTrackingRecord();
- }
- }
|