TakeMoney2.cpp 27 KB

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