// TakeMoney2.cpp : implementation file // #include "stdafx.h" #include "ylgl.h" #include "TakeMoney2.h" #include "InputMemberno.h" #include "SelPayType.h" #include "Login2.h" #include "SelExpendType.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif /////////////////////////////////////////////////////////////////////////////预约收款 定金 // TakeMoney2 dialog IDC_EDITmoney2 TakeMoney2::TakeMoney2(CWnd* pParent /*=NULL*/) : CDialog(TakeMoney2::IDD, pParent) { //{{AFX_DATA_INIT(TakeMoney2) m_money = _T(""); m_time1 = g_date; m_bz = _T(""); m_strOrderNumber = _T(""); m_name1 = _T(""); m_name2 = _T(""); m_ren2 = _T(""); m_money1 = _T(""); m_money2 = _T(""); m_money3 = _T(""); m_mode=0; m_memberno = _T(""); //}}AFX_DATA_INIT } void TakeMoney2::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(TakeMoney2) DDX_Control(pDX, IDC_LIST1, m_List1); DDX_Control(pDX, IDC_EDIT2, m_editdate1); DDX_Control(pDX, IDC_EDIT1, m_editctrl1); DDX_Control(pDX, IDC_COMBO1, m_comboren); DDX_Text(pDX, IDC_EDIT1, m_money); DDX_Text(pDX, IDC_EDIT2, m_time1); DDX_Text(pDX, IDC_EDIT3, m_bz); DDX_Text(pDX, IDC_EDITid, m_strOrderNumber); DDX_Text(pDX, IDC_EDITname1, m_name1); DDX_Text(pDX, IDC_EDITname2, m_name2); DDX_Text(pDX, IDC_EDITren2, m_ren2); DDX_Text(pDX, IDC_EDITmoney2, m_money1); DDX_Text(pDX, IDC_EDITmoney3, m_money2); DDX_Text(pDX, IDC_EDITmoney5, m_money3); DDX_Text(pDX, IDC_EDITmemberno, m_memberno); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(TakeMoney2, CDialog) //{{AFX_MSG_MAP(TakeMoney2) ON_WM_LBUTTONDOWN() ON_BN_CLICKED(IDC_BUTTON1, OnButton1) ON_BN_CLICKED(IDC_BUTTON2, OnButton2) ON_BN_CLICKED(IDC_BUTTON8, OnButton8) ON_BN_CLICKED(IDC_BUTTON3, OnButton3) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // TakeMoney2 message handlers BOOL TakeMoney2::OnInitDialog() { CDialog::OnInitDialog(); #ifdef CHILD_VERSION GetDlgItem(IDC_STATIC10)->SetWindowText("家长:"); GetDlgItem(IDC_STATIC20)->SetWindowText("宝宝:"); #endif SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE); GetDlgItem(IDC_BUTTON1)->EnableWindow(IsHasRights2new(49)); GetDlgItem(IDC_BUTTON2)->EnableWindow(IsHasRights2new(49)); #ifndef BASIC_ADDMEMBER #ifdef BASIC_VERSION GetDlgItem(IDC_EDITmemberno)->ShowWindow(SW_HIDE); GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE); GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE); #endif #endif #ifdef LYFZ_VERSION ((CEdit*)GetDlgItem(IDC_EDIT2))->SetReadOnly (0); #else if(IsHasRights2new(49)==0)((CEdit*)GetDlgItem(IDC_EDIT2))->SetReadOnly (); #endif // TODO: Add extra initialization here g_sendhead.bsql=0; g_sendhead.code[0]=93; g_sendhead.code[1]=11; g_sendhead.tabcount=2; CString filter="id='"+m_strOrderNumber+"';id='"+m_strOrderNumber+"'"; g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return 0; CArraydindanarray; DataToArray( &m_List1array,&dindanarray); if(m_mode==3)//判断是否已有预约收款 { for(int i=0; iEnableWindow(0); } } } else if(m_mode==2)//判断预约补款前是否有过预约收款 { BOOL bExist=0; for(int i=0; iEnableWindow (0); } CenterWindow(g_pMainWnd); if(m_mode==0) m_bz="拍照补款"; else if(m_mode==1) m_bz="选片补款"; else if(m_mode==2) m_bz="预约补款"; else if(m_mode==3) m_bz="预约收款"; SetWindowText(m_bz); m_ren2=g_user.name; m_memberno = dindanarray.ElementAt (0).ElementAt (47); CString money = dindanarray.ElementAt (0).ElementAt (1); m_taoxijiage = dindanarray.ElementAt (0).ElementAt (8); CString m_payed4 = dindanarray.ElementAt (0).ElementAt (19); CString m_payed5 = dindanarray.ElementAt (0).ElementAt (20); m_money2.Format ("%f", atof(m_payed5)+atof(money)); m_money1.Format ("%f", atof(m_taoxijiage)+atof(m_payed4)); m_money3.Format ("%f", atof(m_money1)-atof(m_money2)); ConvertToPrice(m_money1); ConvertToPrice(m_money2); ConvertToPrice(m_money3); UpdateData(false); if(atoi(g_cominfoarray.ElementAt(0).ElementAt(115))) m_List1.SetHeadings("id,0;金额,55;日期,90;开单人,70;收款人,70;备注,90;收款项目,0;支付方式,90;接单点,80" ); else m_List1.SetHeadings("id,0;金额,55;日期,90;开单人,70;收款人,70;备注,90;收款项目,0;支付方式,90" ); m_List1.LoadColumnInfo (145); FillGrid(); return TRUE; // return TRUE unless you set the focus to a control // EXCEPTION: OCX Property Pages should return FALSE } void TakeMoney2::OnOK() { // TODO: Add extra validation here UpdateData(); if(m_mode==3)//判断是否已有预约收款 { for(int i=0; iProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; AfxMessageBox("保存成功!", MB_ICONINFORMATION); GetData(); } else { //MessageBox(branch);g_brancharray.ElementAt (i).ElementAt (0)) CString sql3; BOOL g_bBranchModifyBak=g_bBranchModify; CString g_branchnameBak=g_branchname; CString g_branchipBak=g_branchip; CString curbranch; if(g_branchname!="") curbranch=g_branchname; else { curbranch=localbranch; } CString m_id2=curbranch+m_strOrderNumber; CString jdd; if(atoi(g_cominfoarray.ElementAt(0).ElementAt(115))) { SelExpendType dlg; dlg.m_mode=3; if(dlg.DoModal()==IDOK) jdd=dlg.m_sel; } CString sql,sql2; sql.Format ("insert into dindanbukuan([id],[money],[ren],[date],[bz],[ren2],[kind],[paytype],[jdd],[discount],[time])values('%s','%s','%s','%s','%s','%s','%d','%s','%s','%s','curtimereplace')", m_strOrderNumber,m_money ,m_ren,m_time1 ,m_bz,m_ren2,m_mode+1,paytype,jdd,seltype.m_discount); if(g_nYearpos!=-1) { sql.Format ("insert into dindanbukuan([autoid],[id],[money],[ren],[date],[bz],[ren2],[kind],[paytype],[jdd],[discount],[time])values(%d,'%s','%s','%s','%s','%s','%s','%d','%s','%s','%s','curtimereplace')", atoi(CTime::GetCurrentTime ().Format ("%Y%m%d%H%M%S")),m_strOrderNumber,m_money ,m_ren,m_time1 ,m_bz,m_ren2,m_mode+1,paytype,jdd,seltype.m_discount); } if(paytype=="储值卡扣款") { CString ss=m_money; CString m_money=ss; if(seltype.m_bChildMoneyCard) { sql3+="###insert into [membercard3childusereg]([memberno],[dindanid],[money],[date])values('"+seltype.m_cardno+"','"+m_id2+"','"+m_money+"','"+g_date+"')"; sql+="###refresh balance memberreg4"+seltype.m_parentno+";"+seltype.m_cardno; } else { if(atof(seltype.m_discount)!=0.0) m_money.Format("%d", int(0.5+atof(m_money)*atof(seltype.m_discount)/10.0) ); sql3+="###insert into [membercard3usereg]([memberno],[dindanid],[money],[date])values('"+seltype.m_cardno+"','"+m_id2+"','"+m_money+"','"+g_date+"')"; sql3+="###refresh balance memberreg3"; sql3+=seltype.m_cardno; } if(atoi(g_cominfoarray.ElementAt(0).ElementAt(122))) { CString content,timestamp; CString m_phone=seltype.m_phone;; content.Format ("%s您好,您本次使用现金卡消费%s元,余额:%d元", seltype.m_name, m_money, seltype.m_money-atoi(m_money)); timestamp="msgtimestamp"; if( CheckPhoneType(m_phone)!=-1 && CheckBadWords(content,0) && CheckBadWords2(content,0) ) { int count=GetLengthEx(content)/MSG_LENGTH; if(GetLengthEx(content)%MSG_LENGTH) count++; CString scount; scount.Format ("%d", count); CString sql2="###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone+"','"+content+"','"+timestamp+"','"+scount+"','0','0','0','系统自动发送')"; sql3+=sql2; } } } else if(paytype=="积分兑换") { CString point; float rate=atof(g_cominfoarray.ElementAt (0).ElementAt (38))/100.0; point.Format ("%d", (int)(atof(m_money)*GetPointScale2()/rate)); sql3+="###insert into [memberreg2]([memberno],[dindanid],[money],[point],[date])values('"+seltype.m_cardno+"','"+m_id2+"','"+m_money+"','"+point+"','"+g_date+"')"; sql3+="###refresh balance memberreg2"; sql3+=seltype.m_cardno; if(atoi(g_cominfoarray.ElementAt(0).ElementAt(122))) { CString content,timestamp; CString m_phone=seltype.m_phone;; float rate=atof(g_cominfoarray.ElementAt (0).ElementAt (38))/100.0; int point=(int)(atof(m_money)/rate+0.5); content.Format ("%s您好,您本次使用积分%d分,余额:%d分", seltype.m_name, point, seltype.m_point-point); timestamp="msgtimestamp"; if( CheckPhoneType(m_phone)!=-1 && CheckBadWords(content,0) && CheckBadWords2(content,0) ) { int count=GetLengthEx(content)/MSG_LENGTH; if(GetLengthEx(content)%MSG_LENGTH) count++; CString scount; scount.Format ("%d", count); CString sql2="###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone+"','"+content+"','"+timestamp+"','"+scount+"','0','0','0','系统自动发送')"; sql3+=sql2; } } } sql+="###update dindan set [memberno]='"+m_memberno+"' where [id]='"+m_strOrderNumber+"'"; if( (!m_memberno.IsEmpty ()) && paytype!="积分兑换") { CString date=g_date; sql3+="###insert into memberreg([memberno],[dindanid],[money],[date],[type])values('"+m_memberno+"','"+m_id2+"','"+m_money+"','"+date+"','消费积分')"; } sql2="###"+m_strOrderNumber+"$$$"+m_memberno; sql+=sql2; sql3+=sql2; g_pMainWnd->OnDisconnect(); g_branchip=GetIP(branch); g_pMainWnd->OnDisconnect(); g_branchname=branch; g_bBranchModify=1; g_sendhead.bsql=1;sql3.TrimLeft("###"); g_pMainWnd->ProcessChatMessageRequest2(sql3);if(g_bSendOK==0)return; g_pMainWnd->OnDisconnect();g_bBranchModify=0;g_branchip=g_branchname=""; g_bBranchModify= g_bBranchModifyBak; g_branchname= g_branchnameBak; g_branchip= g_branchipBak; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; AfxMessageBox("保存成功!", MB_ICONINFORMATION); GetData(); } } HBRUSH TakeMoney2::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) { HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor); // TODO: Change any attributes of the DC here if (nCtlColor==CTLCOLOR_STATIC) { pDC-> SetBkMode(TRANSPARENT); //设置字体背景为透明 return (HBRUSH)::GetStockObject(NULL_BRUSH); // 设置背景色 } // TODO: Return a different brush if the default is not desired return hbr; } void TakeMoney2::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default CDialog::OnLButtonDown(nFlags, point); } void TakeMoney2::GetData() { g_sendhead.bsql=0; g_sendhead.code[0]=93; g_sendhead.code[1]=11; g_sendhead.tabcount=2; CString filter="id='"+m_strOrderNumber+"';id='"+m_strOrderNumber+"'"; g_pMainWnd->ProcessChatMessageRequest2(filter); if(g_bSendOK==0)return; CArraydindanarray; DataToArray( &m_List1array, &dindanarray); for(int i=0; iProcessChatMessageRequest2(sql); g_bNoConnDlg=0; } void TakeMoney2::FillGrid() { m_List1.DeleteAllItems2 (); int ii=0; m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 ); int count=0; for(ii=0; iimessage==WM_KEYDOWN) { switch (pMsg->wParam) { case VK_RETURN: return 1; } } return CDialog::PreTranslateMessage(pMsg); } void TakeMoney2::OnButton1() { // TODO: Add your control notification handler code here if(IsHasRights2new(49)==0)return; // TODO: Add your control notification handler code here POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要删除的项目!", MB_ICONINFORMATION); return; } if(AfxMessageBox("是否删除此项目?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return; int iItem=m_List1.GetNextSelectedItem(pos); CString id=m_List1.GetItemText (iItem, 0); CString money=m_List1.GetItemText (iItem, 1); CString bz=m_List1.GetItemText (iItem, 2)+m_List1.GetItemText (iItem, 5); CString sql; sql.Format ("delete from dindanbukuan where [autoid]=%d", atol(id)); sql+="%%%[money]='"+money+"' and [dindanid]='"+m_strOrderNumber+"'"; sql+="###"+m_memberno; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; sql="###"+m_strOrderNumber; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; GetData(); CString str; str="删除客人"; str+=m_name1; str+=m_name2; str+=m_strOrderNumber; str+="收款:"; str+=bz; str+=money; WriteLog(str); } void TakeMoney2::OnButton2() { if(IsHasRights2new(49)==0)return; // TODO: Add your control notification handler code here UpdateData(); InputMemberno dlg; dlg.m_mode=1; if(dlg.DoModal ()==IDOK) { CString oldmemberno=m_memberno; m_memberno=dlg.m_memberno; if(m_memberno==oldmemberno)return; CString sql,sql2; sql+="update dindan set [memberno]='"+m_memberno+"' where [id]='"+m_strOrderNumber+"'"; sql+="@@@update memberreg set [memberno]='"+m_memberno+"' where [dindanid]='"+m_strOrderNumber+"'"; sql2="@@@"+m_memberno+"###"+oldmemberno; sql+=sql2; g_sendhead.bsql=1; g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return; UpdateData(false); m_memberno=dlg.m_memberno; } } void TakeMoney2::OnButton8() // 打单*预约收款、预约补款 { // TODO: Add your control notification handler code here if(m_mode==3) { #ifdef ZHIAI_VERSION g_pMainWnd->PrintReceipt2(m_strOrderNumber); return; #endif } #ifndef ZHIAI_VERSION POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要打单的项目!", MB_ICONINFORMATION); return; } int iItem; CStringArray array; array.Add (""); array.Add (g_cominfoarray.ElementAt (0).ElementAt (48)); array.Add ("NO."+m_strOrderNumber); CString str="地址:"+g_cominfoarray.ElementAt (0).ElementAt (12); str+=" 电话:"+g_cominfoarray.ElementAt (0).ElementAt (11); array.Add (str); CString name; if(!m_name1.IsEmpty ()) name=m_name1+","; name+=m_name2; name.TrimRight (","); CString phone; if(!m_phone1.IsEmpty ()) phone=m_phone1+","; phone+=m_phone2;phone.TrimRight (","); array.Add ("客户姓名:"+name); if(IsHasRights2new(31)==0) array.Add (""); else array.Add ("联系电话:"+phone); CString date; date.Format ("日期:%s年%s月%s日", g_date.Mid (0,4), g_date.Mid (5,2), g_date.Mid (8,2)); array.Add (date); array.Add (" 收 款 项 目 "); #if 1 // Jeff 显示打印支付方式; array.Add(" 支付方式 "); #endif array.Add (" 金 额 "); array.Add (" 开单人 "); int count=0; float money=0; while (pos) { count++; if(count>4)break; iItem = m_List1.GetNextSelectedItem(pos); if(m_List1.GetItemText (iItem, 5)=="预约收款" || m_List1.GetItemText (iItem, 5)=="预约补款") { #ifdef LYFZ_VERSION CString temp=m_List1.GetItemText (iItem, 5); if(temp=="预约收款") temp="软件定金"; else temp="软件补款"; array.Add (temp); #else if(m_List1.GetItemText (iItem, 5)=="预约收款" && atof(m_money3)>1.0) array.Add ("预约金"+m_List1.GetItemText (iItem, 6)); else array.Add (m_List1.GetItemText (iItem, 5)+m_List1.GetItemText (iItem, 6)); #endif } else array.Add (m_List1.GetItemText (iItem, 6)); #if 1 // 显示打印支付方式; array.Add(m_List1.GetItemText(iItem,7)); // add by Jeff:添加支付方式; #endif array.Add (m_List1.GetItemText (iItem, 1)); money+=atof(m_List1.GetItemText (iItem, 1)); array.Add (m_List1.GetItemText (iItem, 3)); } //while(array.GetSize ()<22) array.Add (""); while(array.GetSize()<27) array.Add(""); // 显示打印支付方式; CString smoney; smoney.Format ("%0.1f", money); if(atoi(g_cominfoarray.ElementAt(0).ElementAt(87)))//小单 { str="付款情况 应付:"+m_taoxijiage; str+=" 实付:"+smoney; str+=" 欠款:"+m_money3; } else { str="付款情况 应付:"+m_taoxijiage; str+=" 实付:"+smoney; str+=" 欠款:"+m_money3; } array.Add (str); if(atoi(g_cominfoarray.ElementAt(0).ElementAt(87)))//小单 { str.Format("合计人民币(大写): %s 萬 %s 仟 %s 佰 %s 拾 %s 元",\ GetHMoney(GetW(smoney)),GetHMoney(GetK(smoney)),GetHMoney(GetB(smoney)),GetHMoney(GetS(smoney)),GetHMoney(GetG(smoney))); } else { str.Format("合计人民币(大写): %s 萬 %s 仟 %s 佰 %s 拾 %s 元",\ GetHMoney(GetW(smoney)),GetHMoney(GetK(smoney)),GetHMoney(GetB(smoney)),GetHMoney(GetS(smoney)),GetHMoney(GetG(smoney))); } array.Add (str); array.Add (g_cominfoarray.ElementAt (0).ElementAt (120)); array.Add ("门市:"+m_ren+" 收银:"+g_user.name); array.Add ("顾客签名:"); array.Add ("");//第\r\n一\r\n联\r\n存\r\n根\r\n∧\r\n白\r\n∨\r\n第\r\n二\r\n联\r\n财\r\n务\r\n∧\r\n黄\r\n∨\r\n第\r\n三\r\n联\r\n客\r\n户\r\n∧\r\n红\r\n∨"); g_pMainWnd->PrintReceipt_01(&array); #else POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要打单的项目!", MB_ICONINFORMATION); return; } int iItem; CStringArray array; array.Add ("项目名称"); array.Add ("数量"); array.Add ("金额"); array.Add ("开单人"); array.Add ("欠款"); int count=0; float money=0; while (pos) { count++; if(count>5)break; iItem = m_List1.GetNextSelectedItem(pos); if(m_List1.GetItemText (iItem, 5)=="预约收款" || m_List1.GetItemText (iItem, 5)=="预约补款") { if(m_List1.GetItemText (iItem, 5)=="预约收款") array.Add ("定金"); else array.Add (m_List1.GetItemText (iItem, 5)); array.Add ("1"); array.Add (m_taoxijiage); array.Add (m_List1.GetItemText (iItem, 3)); CString str; str.Format ("%f", atof(m_taoxijiage)-GetPayed1()); ConvertToPrice(str); array.Add (str); } money+=atof(m_List1.GetItemText (iItem, 1)); } while(array.GetSize ()<30) array.Add (""); g_pMainWnd->PrintReceipt3(m_strOrderNumber, &array, money); /* POSITION pos; pos=m_List1.GetFirstSelectedItemPosition(); if(pos==NULL) { AfxMessageBox("请先选中您要打单的项目!", MB_ICONINFORMATION); return; } int iItem; CStringArray array; array.Add ("项目名称"); array.Add ("数量"); array.Add ("金额"); array.Add ("开单人"); array.Add ("备注"); int count=0; float money=0; while (pos) { count++; if(count>5)break; iItem = m_List1.GetNextSelectedItem(pos); if(m_List1.GetItemText (iItem, 5)=="预约收款" || m_List1.GetItemText (iItem, 5)=="预约补款") array.Add (m_List1.GetItemText (iItem, 5)); else array.Add (m_List1.GetItemText (iItem, 6)); array.Add ("1"); array.Add (m_List1.GetItemText (iItem, 1)); array.Add (m_List1.GetItemText (iItem, 3)); array.Add (""); } while(array.GetSize ()<30) array.Add (""); g_pMainWnd->PrintReceipt3(m_id, &array, 0);*/ #endif } float TakeMoney2::GetPayed1() { float fret=0; for(int i=0; iSetReadOnly (0); }