TakeMoney2.cpp 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877
  1. // TakeMoney2.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "TakeMoney2.h"
  6. #include "InputMemberno.h"
  7. #include "SelPayType.h"
  8. #include "Login2.h"
  9. #include "SelExpendType.h"
  10. #ifdef _DEBUG
  11. #define new DEBUG_NEW
  12. #undef THIS_FILE
  13. static char THIS_FILE[] = __FILE__;
  14. #endif
  15. /////////////////////////////////////////////////////////////////////////////预约收款 定金
  16. // TakeMoney2 dialog IDC_EDITmoney2
  17. TakeMoney2::TakeMoney2(CWnd* pParent /*=NULL*/)
  18. : CDialog(TakeMoney2::IDD, pParent)
  19. {
  20. //{{AFX_DATA_INIT(TakeMoney2)
  21. m_money = _T("");
  22. m_time1 = g_date;
  23. m_bz = _T("");
  24. m_strOrderNumber = _T("");
  25. m_name1 = _T("");
  26. m_name2 = _T("");
  27. m_ren2 = _T("");
  28. m_money1 = _T("");
  29. m_money2 = _T("");
  30. m_money3 = _T("");
  31. m_mode=0;
  32. m_memberno = _T("");
  33. //}}AFX_DATA_INIT
  34. }
  35. void TakeMoney2::DoDataExchange(CDataExchange* pDX)
  36. {
  37. CDialog::DoDataExchange(pDX);
  38. //{{AFX_DATA_MAP(TakeMoney2)
  39. DDX_Control(pDX, IDC_LIST1, m_List1);
  40. DDX_Control(pDX, IDC_EDIT2, m_editdate1);
  41. DDX_Control(pDX, IDC_EDIT1, m_editctrl1);
  42. DDX_Control(pDX, IDC_COMBO1, m_comboren);
  43. DDX_Text(pDX, IDC_EDIT1, m_money);
  44. DDX_Text(pDX, IDC_EDIT2, m_time1);
  45. DDX_Text(pDX, IDC_EDIT3, m_bz);
  46. DDX_Text(pDX, IDC_EDITid, m_strOrderNumber);
  47. DDX_Text(pDX, IDC_EDITname1, m_name1);
  48. DDX_Text(pDX, IDC_EDITname2, m_name2);
  49. DDX_Text(pDX, IDC_EDITren2, m_ren2);
  50. DDX_Text(pDX, IDC_EDITmoney2, m_money1);
  51. DDX_Text(pDX, IDC_EDITmoney3, m_money2);
  52. DDX_Text(pDX, IDC_EDITmoney5, m_money3);
  53. DDX_Text(pDX, IDC_EDITmemberno, m_memberno);
  54. //}}AFX_DATA_MAP
  55. }
  56. BEGIN_MESSAGE_MAP(TakeMoney2, CDialog)
  57. //{{AFX_MSG_MAP(TakeMoney2)
  58. ON_WM_LBUTTONDOWN()
  59. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  60. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  61. ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
  62. ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  63. //}}AFX_MSG_MAP
  64. END_MESSAGE_MAP()
  65. /////////////////////////////////////////////////////////////////////////////
  66. // TakeMoney2 message handlers
  67. BOOL TakeMoney2::OnInitDialog()
  68. {
  69. CDialog::OnInitDialog();
  70. #ifdef CHILD_VERSION
  71. GetDlgItem(IDC_STATIC10)->SetWindowText("家长:");
  72. GetDlgItem(IDC_STATIC20)->SetWindowText("宝宝:");
  73. #endif
  74. SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
  75. GetDlgItem(IDC_BUTTON1)->EnableWindow(IsHasRights2new(49));
  76. GetDlgItem(IDC_BUTTON2)->EnableWindow(IsHasRights2new(49));
  77. #ifndef BASIC_ADDMEMBER
  78. #ifdef BASIC_VERSION
  79. GetDlgItem(IDC_EDITmemberno)->ShowWindow(SW_HIDE);
  80. GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE);
  81. GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE);
  82. #endif
  83. #endif
  84. #ifdef LYFZ_VERSION
  85. ((CEdit*)GetDlgItem(IDC_EDIT2))->SetReadOnly (0);
  86. #else
  87. if(IsHasRights2new(49)==0)((CEdit*)GetDlgItem(IDC_EDIT2))->SetReadOnly ();
  88. #endif
  89. // TODO: Add extra initialization here
  90. g_sendhead.bsql=0;
  91. g_sendhead.code[0]=93;
  92. g_sendhead.code[1]=11;
  93. g_sendhead.tabcount=2;
  94. CString filter="id='"+m_strOrderNumber+"';id='"+m_strOrderNumber+"'";
  95. g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return 0;
  96. CArray<CStringArray, CStringArray>dindanarray;
  97. DataToArray( &m_List1array,&dindanarray);
  98. if(m_mode==3)//判断是否已有预约收款
  99. {
  100. for(int i=0; i<m_List1array.GetSize (); i++)
  101. {
  102. if(m_List1array.ElementAt (i).ElementAt (5)=="预约收款")
  103. {
  104. // AfxMessageBox("已有此单的预约收款记录, 不能重复录入!", MB_ICONINFORMATION);
  105. // CDialog::OnCancel ();
  106. // return false;
  107. GetDlgItem(IDOK)->EnableWindow(0);
  108. }
  109. }
  110. }
  111. else if(m_mode==2)//判断预约补款前是否有过预约收款
  112. {
  113. BOOL bExist=0;
  114. for(int i=0; i<m_List1array.GetSize (); i++)
  115. {
  116. if(m_List1array.ElementAt (i).ElementAt (5)=="预约收款")
  117. {
  118. bExist=1;
  119. break;
  120. }
  121. }
  122. if(bExist==0)
  123. {
  124. AfxMessageBox("此单尚未预约收款, 请先录入预约收款!", MB_ICONINFORMATION);
  125. CDialog::OnCancel ();
  126. return false;
  127. }
  128. }
  129. for(int i=0; i<m_List1array.GetSize (); i++)
  130. {
  131. if(m_List1array.ElementAt (i).ElementAt (9)!="")
  132. {
  133. CString discount="(打"+m_List1array.ElementAt (i).ElementAt (9)+"折)";
  134. m_List1array.ElementAt (i).SetAt (6, m_List1array.ElementAt (i).ElementAt (6)+discount);
  135. }
  136. }
  137. for( i=0; i<g_userarray.GetSize (); i++)
  138. m_comboren.AddString (g_userarray.ElementAt (i).ElementAt (1));
  139. if(m_mode==2 || m_mode==3)
  140. {
  141. m_comboren.InsertString (0, m_ren);
  142. m_comboren.SetCurSel (0);
  143. GetDlgItem(IDC_EDIT3)->EnableWindow (0);
  144. }
  145. CenterWindow(g_pMainWnd);
  146. if(m_mode==0)
  147. m_bz="拍照补款";
  148. else if(m_mode==1)
  149. m_bz="选片补款";
  150. else if(m_mode==2)
  151. m_bz="预约补款";
  152. else if(m_mode==3)
  153. m_bz="预约收款";
  154. SetWindowText(m_bz);
  155. m_ren2=g_user.name;
  156. m_memberno = dindanarray.ElementAt (0).ElementAt (47);
  157. CString money = dindanarray.ElementAt (0).ElementAt (1);
  158. m_taoxijiage = dindanarray.ElementAt (0).ElementAt (8);
  159. CString m_payed4 = dindanarray.ElementAt (0).ElementAt (19);
  160. CString m_payed5 = dindanarray.ElementAt (0).ElementAt (20);
  161. m_money2.Format ("%f", atof(m_payed5)+atof(money));
  162. m_money1.Format ("%f", atof(m_taoxijiage)+atof(m_payed4));
  163. m_money3.Format ("%f", atof(m_money1)-atof(m_money2));
  164. ConvertToPrice(m_money1);
  165. ConvertToPrice(m_money2);
  166. ConvertToPrice(m_money3);
  167. UpdateData(false);
  168. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(115)))
  169. m_List1.SetHeadings("id,0;金额,55;日期,90;开单人,70;收款人,70;备注,90;收款项目,0;支付方式,90;接单点,80" );
  170. else
  171. m_List1.SetHeadings("id,0;金额,55;日期,90;开单人,70;收款人,70;备注,90;收款项目,0;支付方式,90" );
  172. m_List1.LoadColumnInfo (145);
  173. FillGrid();
  174. return TRUE; // return TRUE unless you set the focus to a control
  175. // EXCEPTION: OCX Property Pages should return FALSE
  176. }
  177. void TakeMoney2::OnOK()
  178. {
  179. // TODO: Add extra validation here
  180. UpdateData();
  181. if(m_mode==3)//判断是否已有预约收款
  182. {
  183. for(int i=0; i<m_List1array.GetSize (); i++)
  184. {
  185. if(m_List1array.ElementAt (i).ElementAt (5)=="预约收款")
  186. {
  187. AfxMessageBox("已有此单的预约收款记录, 不能重复录入!", MB_ICONINFORMATION);
  188. return;
  189. }
  190. }
  191. }
  192. if(m_money.IsEmpty ())
  193. {
  194. AfxMessageBox("资料不全!", MB_ICONINFORMATION);
  195. return;
  196. }
  197. int pos;
  198. pos=m_comboren.GetCurSel();
  199. if(pos==-1)
  200. {
  201. AfxMessageBox("资料不全!", MB_ICONINFORMATION);
  202. return;
  203. }
  204. m_comboren.GetLBText (pos, m_ren);
  205. if(!CheckDateOK(m_time1))return;
  206. BOOL bexist1=0;
  207. BOOL bexist2=0;
  208. if(bexist1==0)
  209. {
  210. for(int i=0; i<m_List1array.GetSize (); i++)
  211. {
  212. if(m_List1array.ElementAt (i).ElementAt (1)==m_money)
  213. {
  214. bexist1=1;
  215. break;
  216. }
  217. }
  218. }
  219. if(bexist2==0)
  220. {
  221. for(int i=0; i<m_List1array.GetSize (); i++)
  222. {
  223. if(m_List1array.ElementAt (i).ElementAt (5)==m_bz)
  224. {
  225. bexist2=1;
  226. break;
  227. }
  228. }
  229. }
  230. if(bexist1 && bexist2)
  231. {
  232. if(AfxMessageBox("已有相似的记录, 确认没有重复吗? 是否继续?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)
  233. return;
  234. }
  235. SelPayType seltype;
  236. seltype.m_paymoney=m_money;
  237. if(seltype.DoModal ()!=IDOK)return;
  238. CString paytype,branch;
  239. if(seltype.m_radio1==0)
  240. paytype="现金";
  241. else if(seltype.m_radio1==1)
  242. paytype="POS机刷卡";
  243. else if(seltype.m_radio1==2)
  244. paytype="储值卡扣款";
  245. else if(seltype.m_radio1==3)
  246. paytype="积分兑换";
  247. else if(seltype.m_radio1==4)
  248. paytype="银行转账";
  249. branch=seltype.m_branch;
  250. CString localbranch=GetNameFromDomain(g_domain);
  251. if(branch=="" || branch==g_branchname || (g_branchname==""&&branch==localbranch) )
  252. {
  253. CString jdd;
  254. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(115)))
  255. {
  256. SelExpendType dlg;
  257. dlg.m_mode=3;
  258. if(dlg.DoModal()==IDOK)
  259. jdd=dlg.m_sel;
  260. }
  261. CString sql,sql2;
  262. 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);
  263. if(g_nYearpos!=-1)
  264. {
  265. 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);
  266. }
  267. if(paytype=="储值卡扣款")
  268. {
  269. CString ss=m_money;
  270. CString m_money=ss;
  271. if(seltype.m_bChildMoneyCard)
  272. {
  273. sql+="###insert into [membercard3childusereg]([memberno],[dindanid],[money],[date])values('"+seltype.m_cardno+"','"+m_strOrderNumber+"','"+m_money+"','"+g_date+"')";
  274. sql+="###refresh balance memberreg4"+seltype.m_parentno+";"+seltype.m_cardno;
  275. }
  276. else
  277. {
  278. if(atof(seltype.m_discount)!=0.0)
  279. m_money.Format("%d", int(0.5+atof(m_money)*atof(seltype.m_discount)/10.0) );
  280. sql+="###insert into [membercard3usereg]([memberno],[dindanid],[money],[date])values('"+seltype.m_cardno+"','"+m_strOrderNumber+"','"+m_money+"','"+g_date+"')";
  281. sql+="###refresh balance memberreg3";sql+=seltype.m_cardno;
  282. }
  283. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(122)))
  284. {
  285. CString content,timestamp;
  286. CString m_phone=seltype.m_phone;;
  287. content.Format ("%s您好,您本次使用现金卡消费%s元,余额:%d元", seltype.m_name, m_money, seltype.m_money-atoi(m_money));
  288. timestamp="msgtimestamp";
  289. if( CheckPhoneType(m_phone)!=-1 && CheckBadWords(content,0) && CheckBadWords2(content,0) )
  290. {
  291. int count=GetLengthEx(content)/MSG_LENGTH;
  292. if(GetLengthEx(content)%MSG_LENGTH)
  293. count++;
  294. CString scount;
  295. scount.Format ("%d", count);
  296. CString sql2="###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone+"','"+content+"','"+timestamp+"','"+scount+"','0','0','0','系统自动发送')";
  297. sql+=sql2;
  298. }
  299. }
  300. }
  301. else if(paytype=="积分兑换")
  302. {
  303. CString point;
  304. float rate=atof(g_cominfoarray.ElementAt (0).ElementAt (38))/100.0;
  305. point.Format ("%d", (int)(atof(m_money)*GetPointScale2()/rate));
  306. sql+="###insert into [memberreg2]([memberno],[dindanid],[money],[point],[date])values('"+seltype.m_cardno+"','"+m_strOrderNumber+"','"+m_money+"','"+point+"','"+g_date+"')";
  307. sql+="###refresh balance memberreg2";
  308. sql+=seltype.m_cardno;
  309. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(122)))
  310. {
  311. CString content,timestamp;
  312. CString m_phone=seltype.m_phone;;
  313. float rate=atof(g_cominfoarray.ElementAt (0).ElementAt (38))/100.0;
  314. int point=(int)(atof(m_money)/rate+0.5);
  315. content.Format ("%s您好,您本次使用积分%d分,余额:%d分", seltype.m_name, point, seltype.m_point-point);
  316. timestamp="msgtimestamp";
  317. if( CheckPhoneType(m_phone)!=-1 && CheckBadWords(content,0) && CheckBadWords2(content,0) )
  318. {
  319. int count=GetLengthEx(content)/MSG_LENGTH;
  320. if(GetLengthEx(content)%MSG_LENGTH)
  321. count++;
  322. CString scount;
  323. scount.Format ("%d", count);
  324. CString sql2="###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone+"','"+content+"','"+timestamp+"','"+scount+"','0','0','0','系统自动发送')";
  325. sql+=sql2;
  326. }
  327. }
  328. }
  329. sql+="###update dindan set [memberno]='"+m_memberno+"' where [id]='"+m_strOrderNumber+"'";
  330. if( (!m_memberno.IsEmpty ()) && paytype!="积分兑换")
  331. {
  332. CString date=g_date;
  333. sql+="###insert into memberreg([memberno],[dindanid],[money],[date],[type])values('"+m_memberno+"','"+m_strOrderNumber+"','"+m_money+"','"+date+"','消费积分')";
  334. }
  335. sql2="###"+m_strOrderNumber+"$$$"+m_memberno;
  336. sql+=sql2;
  337. g_sendhead.bsql=1;
  338. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  339. AfxMessageBox("保存成功!", MB_ICONINFORMATION);
  340. GetData();
  341. }
  342. else
  343. {
  344. //MessageBox(branch);g_brancharray.ElementAt (i).ElementAt (0))
  345. CString sql3;
  346. BOOL g_bBranchModifyBak=g_bBranchModify;
  347. CString g_branchnameBak=g_branchname;
  348. CString g_branchipBak=g_branchip;
  349. CString curbranch;
  350. if(g_branchname!="")
  351. curbranch=g_branchname;
  352. else
  353. {
  354. curbranch=localbranch;
  355. }
  356. CString m_id2=curbranch+m_strOrderNumber;
  357. CString jdd;
  358. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(115)))
  359. {
  360. SelExpendType dlg;
  361. dlg.m_mode=3;
  362. if(dlg.DoModal()==IDOK)
  363. jdd=dlg.m_sel;
  364. }
  365. CString sql,sql2;
  366. 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);
  367. if(g_nYearpos!=-1)
  368. {
  369. 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);
  370. }
  371. if(paytype=="储值卡扣款")
  372. {
  373. CString ss=m_money;
  374. CString m_money=ss;
  375. if(seltype.m_bChildMoneyCard)
  376. {
  377. sql3+="###insert into [membercard3childusereg]([memberno],[dindanid],[money],[date])values('"+seltype.m_cardno+"','"+m_id2+"','"+m_money+"','"+g_date+"')";
  378. sql+="###refresh balance memberreg4"+seltype.m_parentno+";"+seltype.m_cardno;
  379. }
  380. else
  381. {
  382. if(atof(seltype.m_discount)!=0.0)
  383. m_money.Format("%d", int(0.5+atof(m_money)*atof(seltype.m_discount)/10.0) );
  384. sql3+="###insert into [membercard3usereg]([memberno],[dindanid],[money],[date])values('"+seltype.m_cardno+"','"+m_id2+"','"+m_money+"','"+g_date+"')";
  385. sql3+="###refresh balance memberreg3";
  386. sql3+=seltype.m_cardno;
  387. }
  388. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(122)))
  389. {
  390. CString content,timestamp;
  391. CString m_phone=seltype.m_phone;;
  392. content.Format ("%s您好,您本次使用现金卡消费%s元,余额:%d元", seltype.m_name, m_money, seltype.m_money-atoi(m_money));
  393. timestamp="msgtimestamp";
  394. if( CheckPhoneType(m_phone)!=-1 && CheckBadWords(content,0) && CheckBadWords2(content,0) )
  395. {
  396. int count=GetLengthEx(content)/MSG_LENGTH;
  397. if(GetLengthEx(content)%MSG_LENGTH)
  398. count++;
  399. CString scount;
  400. scount.Format ("%d", count);
  401. CString sql2="###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone+"','"+content+"','"+timestamp+"','"+scount+"','0','0','0','系统自动发送')";
  402. sql3+=sql2;
  403. }
  404. }
  405. }
  406. else if(paytype=="积分兑换")
  407. {
  408. CString point;
  409. float rate=atof(g_cominfoarray.ElementAt (0).ElementAt (38))/100.0;
  410. point.Format ("%d", (int)(atof(m_money)*GetPointScale2()/rate));
  411. sql3+="###insert into [memberreg2]([memberno],[dindanid],[money],[point],[date])values('"+seltype.m_cardno+"','"+m_id2+"','"+m_money+"','"+point+"','"+g_date+"')";
  412. sql3+="###refresh balance memberreg2";
  413. sql3+=seltype.m_cardno;
  414. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(122)))
  415. {
  416. CString content,timestamp;
  417. CString m_phone=seltype.m_phone;;
  418. float rate=atof(g_cominfoarray.ElementAt (0).ElementAt (38))/100.0;
  419. int point=(int)(atof(m_money)/rate+0.5);
  420. content.Format ("%s您好,您本次使用积分%d分,余额:%d分", seltype.m_name, point, seltype.m_point-point);
  421. timestamp="msgtimestamp";
  422. if( CheckPhoneType(m_phone)!=-1 && CheckBadWords(content,0) && CheckBadWords2(content,0) )
  423. {
  424. int count=GetLengthEx(content)/MSG_LENGTH;
  425. if(GetLengthEx(content)%MSG_LENGTH)
  426. count++;
  427. CString scount;
  428. scount.Format ("%d", count);
  429. CString sql2="###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('"+m_phone+"','"+content+"','"+timestamp+"','"+scount+"','0','0','0','系统自动发送')";
  430. sql3+=sql2;
  431. }
  432. }
  433. }
  434. sql+="###update dindan set [memberno]='"+m_memberno+"' where [id]='"+m_strOrderNumber+"'";
  435. if( (!m_memberno.IsEmpty ()) && paytype!="积分兑换")
  436. {
  437. CString date=g_date;
  438. sql3+="###insert into memberreg([memberno],[dindanid],[money],[date],[type])values('"+m_memberno+"','"+m_id2+"','"+m_money+"','"+date+"','消费积分')";
  439. }
  440. sql2="###"+m_strOrderNumber+"$$$"+m_memberno;
  441. sql+=sql2;
  442. sql3+=sql2;
  443. g_pMainWnd->OnDisconnect();
  444. g_branchip=GetIP(branch);
  445. g_pMainWnd->OnDisconnect();
  446. g_branchname=branch;
  447. g_bBranchModify=1;
  448. g_sendhead.bsql=1;sql3.TrimLeft("###");
  449. g_pMainWnd->ProcessChatMessageRequest2(sql3);if(g_bSendOK==0)return;
  450. g_pMainWnd->OnDisconnect();g_bBranchModify=0;g_branchip=g_branchname="";
  451. g_bBranchModify= g_bBranchModifyBak;
  452. g_branchname= g_branchnameBak;
  453. g_branchip= g_branchipBak;
  454. g_sendhead.bsql=1;
  455. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  456. AfxMessageBox("保存成功!", MB_ICONINFORMATION);
  457. GetData();
  458. }
  459. }
  460. HBRUSH TakeMoney2::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
  461. {
  462. HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
  463. // TODO: Change any attributes of the DC here
  464. if (nCtlColor==CTLCOLOR_STATIC)
  465. {
  466. pDC-> SetBkMode(TRANSPARENT); //设置字体背景为透明
  467. return (HBRUSH)::GetStockObject(NULL_BRUSH); // 设置背景色
  468. }
  469. // TODO: Return a different brush if the default is not desired
  470. return hbr;
  471. }
  472. void TakeMoney2::OnLButtonDown(UINT nFlags, CPoint point)
  473. {
  474. // TODO: Add your message handler code here and/or call default
  475. CDialog::OnLButtonDown(nFlags, point);
  476. }
  477. void TakeMoney2::GetData()
  478. {
  479. g_sendhead.bsql=0;
  480. g_sendhead.code[0]=93;
  481. g_sendhead.code[1]=11;
  482. g_sendhead.tabcount=2;
  483. CString filter="id='"+m_strOrderNumber+"';id='"+m_strOrderNumber+"'";
  484. g_pMainWnd->ProcessChatMessageRequest2(filter);
  485. if(g_bSendOK==0)return;
  486. CArray<CStringArray, CStringArray>dindanarray;
  487. DataToArray( &m_List1array, &dindanarray);
  488. for(int i=0; i<m_List1array.GetSize (); i++)
  489. {
  490. if(m_List1array.ElementAt (i).ElementAt (9)!="")
  491. {
  492. CString discount="(打"+m_List1array.ElementAt (i).ElementAt (9)+"折)";
  493. m_List1array.ElementAt (i).SetAt (6, m_List1array.ElementAt (i).ElementAt (6)+discount);
  494. }
  495. }
  496. FillGrid();
  497. CString money = dindanarray.ElementAt (0).ElementAt (1);
  498. m_taoxijiage = dindanarray.ElementAt (0).ElementAt (8);
  499. CString m_payed4 = dindanarray.ElementAt (0).ElementAt (19);
  500. CString m_payed5 = dindanarray.ElementAt (0).ElementAt (20);
  501. m_money2.Format ("%f", atof(m_payed5)+atof(money));
  502. m_money1.Format ("%f", atof(m_taoxijiage)+atof(m_payed4));
  503. m_money3.Format ("%f", atof(m_money1)-atof(m_money2));
  504. ConvertToPrice(m_money1);
  505. ConvertToPrice(m_money2);
  506. ConvertToPrice(m_money3);
  507. UpdateData(false);
  508. CString sql;
  509. sql.Format("update [todaytake] set [arrearage]='%s' where [id]='%s'", m_money3, m_strOrderNumber);
  510. g_sendhead.bsql=1;
  511. g_bNoConnDlg=1;
  512. g_pMainWnd->ProcessChatMessageRequest2(sql);
  513. g_bNoConnDlg=0;
  514. }
  515. void TakeMoney2::FillGrid()
  516. {
  517. m_List1.DeleteAllItems2 ();
  518. int ii=0;
  519. m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 );
  520. int count=0;
  521. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  522. {
  523. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  524. }
  525. m_List1.m_arLabels.SetSize(count, 1);
  526. ii=count;
  527. m_List1.m_LabelCount=ii;
  528. m_List1.SetItemCountEx (ii);
  529. }
  530. BOOL TakeMoney2::PreTranslateMessage(MSG* pMsg)
  531. {
  532. // TODO: Add your specialized code here and/or call the base class
  533. if(pMsg->message==WM_KEYDOWN)
  534. {
  535. switch (pMsg->wParam)
  536. {
  537. case VK_RETURN:
  538. return 1;
  539. }
  540. }
  541. return CDialog::PreTranslateMessage(pMsg);
  542. }
  543. void TakeMoney2::OnButton1()
  544. {
  545. // TODO: Add your control notification handler code here
  546. if(IsHasRights2new(49)==0)return;
  547. // TODO: Add your control notification handler code here
  548. POSITION pos;
  549. pos=m_List1.GetFirstSelectedItemPosition();
  550. if(pos==NULL)
  551. {
  552. AfxMessageBox("请先选中您要删除的项目!", MB_ICONINFORMATION);
  553. return;
  554. }
  555. if(AfxMessageBox("是否删除此项目?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return;
  556. int iItem=m_List1.GetNextSelectedItem(pos);
  557. CString id=m_List1.GetItemText (iItem, 0);
  558. CString money=m_List1.GetItemText (iItem, 1);
  559. CString bz=m_List1.GetItemText (iItem, 2)+m_List1.GetItemText (iItem, 5);
  560. CString sql;
  561. sql.Format ("delete from dindanbukuan where [autoid]=%d", atol(id));
  562. sql+="%%%[money]='"+money+"' and [dindanid]='"+m_strOrderNumber+"'";
  563. sql+="###"+m_memberno;
  564. g_sendhead.bsql=1;
  565. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  566. sql="###"+m_strOrderNumber;
  567. g_sendhead.bsql=1;
  568. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  569. GetData();
  570. CString str;
  571. str="删除客人";
  572. str+=m_name1;
  573. str+=m_name2;
  574. str+=m_strOrderNumber;
  575. str+="收款:";
  576. str+=bz;
  577. str+=money;
  578. WriteLog(str);
  579. }
  580. void TakeMoney2::OnButton2()
  581. {
  582. if(IsHasRights2new(49)==0)return;
  583. // TODO: Add your control notification handler code here
  584. UpdateData();
  585. InputMemberno dlg;
  586. dlg.m_mode=1;
  587. if(dlg.DoModal ()==IDOK)
  588. {
  589. CString oldmemberno=m_memberno;
  590. m_memberno=dlg.m_memberno;
  591. if(m_memberno==oldmemberno)return;
  592. CString sql,sql2;
  593. sql+="update dindan set [memberno]='"+m_memberno+"' where [id]='"+m_strOrderNumber+"'";
  594. sql+="@@@update memberreg set [memberno]='"+m_memberno+"' where [dindanid]='"+m_strOrderNumber+"'";
  595. sql2="@@@"+m_memberno+"###"+oldmemberno;
  596. sql+=sql2;
  597. g_sendhead.bsql=1;
  598. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  599. UpdateData(false);
  600. m_memberno=dlg.m_memberno;
  601. }
  602. }
  603. void TakeMoney2::OnButton8() // 打单*预约收款、预约补款
  604. {
  605. // TODO: Add your control notification handler code here
  606. if(m_mode==3)
  607. {
  608. #ifdef ZHIAI_VERSION
  609. g_pMainWnd->PrintReceipt2(m_strOrderNumber);
  610. return;
  611. #endif
  612. }
  613. #ifndef ZHIAI_VERSION
  614. POSITION pos;
  615. pos=m_List1.GetFirstSelectedItemPosition();
  616. if(pos==NULL)
  617. {
  618. AfxMessageBox("请先选中您要打单的项目!", MB_ICONINFORMATION);
  619. return;
  620. }
  621. int iItem;
  622. CStringArray array;
  623. array.Add ("");
  624. array.Add (g_cominfoarray.ElementAt (0).ElementAt (48));
  625. array.Add ("NO."+m_strOrderNumber);
  626. CString str="地址:"+g_cominfoarray.ElementAt (0).ElementAt (12);
  627. str+=" 电话:"+g_cominfoarray.ElementAt (0).ElementAt (11);
  628. array.Add (str);
  629. CString name;
  630. if(!m_name1.IsEmpty ())
  631. name=m_name1+",";
  632. name+=m_name2;
  633. name.TrimRight (",");
  634. CString phone;
  635. if(!m_phone1.IsEmpty ())
  636. phone=m_phone1+",";
  637. phone+=m_phone2;phone.TrimRight (",");
  638. array.Add ("客户姓名:"+name);
  639. if(IsHasRights2new(31)==0)
  640. array.Add ("");
  641. else
  642. array.Add ("联系电话:"+phone);
  643. CString date;
  644. date.Format ("日期:%s年%s月%s日", g_date.Mid (0,4), g_date.Mid (5,2), g_date.Mid (8,2));
  645. array.Add (date);
  646. array.Add (" 收 款 项 目 ");
  647. #if 1 // Jeff 显示打印支付方式;
  648. array.Add(" 支付方式 ");
  649. #endif
  650. array.Add (" 金 额 ");
  651. array.Add (" 开单人 ");
  652. int count=0;
  653. float money=0;
  654. while (pos)
  655. {
  656. count++;
  657. if(count>4)break;
  658. iItem = m_List1.GetNextSelectedItem(pos);
  659. if(m_List1.GetItemText (iItem, 5)=="预约收款" || m_List1.GetItemText (iItem, 5)=="预约补款")
  660. {
  661. #ifdef LYFZ_VERSION
  662. CString temp=m_List1.GetItemText (iItem, 5);
  663. if(temp=="预约收款")
  664. temp="软件定金";
  665. else
  666. temp="软件补款";
  667. array.Add (temp);
  668. #else
  669. if(m_List1.GetItemText (iItem, 5)=="预约收款" && atof(m_money3)>1.0)
  670. array.Add ("预约金"+m_List1.GetItemText (iItem, 6));
  671. else
  672. array.Add (m_List1.GetItemText (iItem, 5)+m_List1.GetItemText (iItem, 6));
  673. #endif
  674. }
  675. else array.Add (m_List1.GetItemText (iItem, 6));
  676. #if 1 // 显示打印支付方式;
  677. array.Add(m_List1.GetItemText(iItem,7)); // add by Jeff:添加支付方式;
  678. #endif
  679. array.Add (m_List1.GetItemText (iItem, 1));
  680. money+=atof(m_List1.GetItemText (iItem, 1));
  681. array.Add (m_List1.GetItemText (iItem, 3));
  682. }
  683. //while(array.GetSize ()<22) array.Add ("");
  684. while(array.GetSize()<27) array.Add(""); // 显示打印支付方式;
  685. CString smoney;
  686. smoney.Format ("%0.1f", money);
  687. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(87)))//小单
  688. {
  689. str="付款情况 应付:"+m_taoxijiage;
  690. str+=" 实付:"+smoney;
  691. str+=" 欠款:"+m_money3;
  692. }
  693. else
  694. {
  695. str="付款情况 应付:"+m_taoxijiage;
  696. str+=" 实付:"+smoney;
  697. str+=" 欠款:"+m_money3;
  698. }
  699. array.Add (str);
  700. if(atoi(g_cominfoarray.ElementAt(0).ElementAt(87)))//小单
  701. {
  702. str.Format("合计人民币(大写): %s 萬 %s 仟 %s 佰 %s 拾 %s 元",\
  703. GetHMoney(GetW(smoney)),GetHMoney(GetK(smoney)),GetHMoney(GetB(smoney)),GetHMoney(GetS(smoney)),GetHMoney(GetG(smoney)));
  704. }
  705. else
  706. {
  707. str.Format("合计人民币(大写): %s 萬 %s 仟 %s 佰 %s 拾 %s 元",\
  708. GetHMoney(GetW(smoney)),GetHMoney(GetK(smoney)),GetHMoney(GetB(smoney)),GetHMoney(GetS(smoney)),GetHMoney(GetG(smoney)));
  709. }
  710. array.Add (str);
  711. array.Add (g_cominfoarray.ElementAt (0).ElementAt (120));
  712. array.Add ("门市:"+m_ren+" 收银:"+g_user.name);
  713. array.Add ("顾客签名:");
  714. 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∨");
  715. g_pMainWnd->PrintReceipt_01(&array);
  716. #else
  717. POSITION pos;
  718. pos=m_List1.GetFirstSelectedItemPosition();
  719. if(pos==NULL)
  720. {
  721. AfxMessageBox("请先选中您要打单的项目!", MB_ICONINFORMATION);
  722. return;
  723. }
  724. int iItem;
  725. CStringArray array;
  726. array.Add ("项目名称");
  727. array.Add ("数量");
  728. array.Add ("金额");
  729. array.Add ("开单人");
  730. array.Add ("欠款");
  731. int count=0;
  732. float money=0;
  733. while (pos)
  734. {
  735. count++;
  736. if(count>5)break;
  737. iItem = m_List1.GetNextSelectedItem(pos);
  738. if(m_List1.GetItemText (iItem, 5)=="预约收款" || m_List1.GetItemText (iItem, 5)=="预约补款")
  739. {
  740. if(m_List1.GetItemText (iItem, 5)=="预约收款")
  741. array.Add ("定金");
  742. else
  743. array.Add (m_List1.GetItemText (iItem, 5));
  744. array.Add ("1");
  745. array.Add (m_taoxijiage);
  746. array.Add (m_List1.GetItemText (iItem, 3));
  747. CString str;
  748. str.Format ("%f", atof(m_taoxijiage)-GetPayed1());
  749. ConvertToPrice(str);
  750. array.Add (str);
  751. }
  752. money+=atof(m_List1.GetItemText (iItem, 1));
  753. }
  754. while(array.GetSize ()<30)
  755. array.Add ("");
  756. g_pMainWnd->PrintReceipt3(m_strOrderNumber, &array, money);
  757. /* POSITION pos;
  758. pos=m_List1.GetFirstSelectedItemPosition();
  759. if(pos==NULL)
  760. {
  761. AfxMessageBox("请先选中您要打单的项目!", MB_ICONINFORMATION);
  762. return;
  763. }
  764. int iItem;
  765. CStringArray array;
  766. array.Add ("项目名称");
  767. array.Add ("数量");
  768. array.Add ("金额");
  769. array.Add ("开单人");
  770. array.Add ("备注");
  771. int count=0;
  772. float money=0;
  773. while (pos)
  774. {
  775. count++;
  776. if(count>5)break;
  777. iItem = m_List1.GetNextSelectedItem(pos);
  778. if(m_List1.GetItemText (iItem, 5)=="预约收款" || m_List1.GetItemText (iItem, 5)=="预约补款")
  779. array.Add (m_List1.GetItemText (iItem, 5));
  780. else
  781. array.Add (m_List1.GetItemText (iItem, 6));
  782. array.Add ("1");
  783. array.Add (m_List1.GetItemText (iItem, 1));
  784. array.Add (m_List1.GetItemText (iItem, 3));
  785. array.Add ("");
  786. }
  787. while(array.GetSize ()<30)
  788. array.Add ("");
  789. g_pMainWnd->PrintReceipt3(m_id, &array, 0);*/
  790. #endif
  791. }
  792. float TakeMoney2::GetPayed1()
  793. {
  794. float fret=0;
  795. for(int i=0; i<m_List1.GetItemCount (); i++)
  796. {
  797. if(m_List1.GetItemText (i, 5)=="预约收款" || m_List1.GetItemText (i, 5)=="预约补款")
  798. fret+=atof( m_List1.GetItemText (i, 1) );
  799. }
  800. return fret;
  801. }
  802. void TakeMoney2::OnButton3()
  803. {
  804. // TODO: Add your control notification handler code here
  805. Login2 dlg;
  806. dlg.m_mode=3;
  807. if(dlg.DoModal ()!=IDOK)return;
  808. if(IsHasRightsnew2(49, dlg.m_rights)==0)return;
  809. ((CEdit*)GetDlgItem(IDC_EDIT2))->SetReadOnly (0);
  810. }