TakeMoney2.cpp 28 KB

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