TakeMoney2.cpp 28 KB

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