TakeMoney3.cpp 38 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291
  1. // TakeMoney3.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "TakeMoney3.h"
  6. #include "InputMemberno.h"
  7. #include "UseMemberCard.h"
  8. #include "SPLBDlg.h"
  9. #include "InputMemberno.h"
  10. #include "SelPayType.h"
  11. #include "Login2.h"
  12. #include "SelExpendType.h"
  13. #include "InStock.h"
  14. #ifdef _DEBUG
  15. #define new DEBUG_NEW
  16. #undef THIS_FILE
  17. static char THIS_FILE[] = __FILE__;
  18. #endif
  19. TakeMoney3::TakeMoney3(CWnd* pParent /*=NULL*/): CDialog(TakeMoney3::IDD, pParent)
  20. {
  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_money2 = _T("");
  29. m_ren3 = _T("");
  30. m_time2 = g_date;
  31. m_bz2 = _T("");
  32. m_sum1 = _T("");
  33. m_sum2 = _T("");
  34. m_sum3 = _T("");
  35. m_memberno = _T("");
  36. m_membermoney = _T("");
  37. m_item = _T("");
  38. m_mode = 0;
  39. m_bInit = 0;
  40. m_instock = _T("");
  41. }
  42. void TakeMoney3::DoDataExchange(CDataExchange* pDX)
  43. {
  44. CDialog::DoDataExchange(pDX);
  45. //{{AFX_DATA_MAP(TakeMoney3)
  46. DDX_Control(pDX, IDC_COMBObz, m_combobz);
  47. DDX_Control(pDX, IDC_EDIT5, m_editdate2);
  48. DDX_Control(pDX, IDC_LIST3, m_List2);
  49. DDX_Control(pDX, IDC_EDIT4, m_editctrl3);
  50. DDX_Control(pDX, IDC_LIST1, m_List1);
  51. DDX_Control(pDX, IDC_EDIT2, m_editdate1);
  52. DDX_Control(pDX, IDC_EDIT1, m_editctrl1);
  53. DDX_Control(pDX, IDC_COMBO1, m_comboren);
  54. DDX_Text(pDX, IDC_EDIT1, m_money);
  55. DDX_Text(pDX, IDC_EDIT2, m_time1);
  56. DDX_Text(pDX, IDC_EDITid, m_strOrderNumber);
  57. DDX_Text(pDX, IDC_EDITname1, m_name1);
  58. DDX_Text(pDX, IDC_EDITname2, m_name2);
  59. DDX_Text(pDX, IDC_EDITren2, m_ren2);
  60. DDX_Text(pDX, IDC_EDIT4, m_money2);
  61. DDX_Text(pDX, IDC_EDITren3, m_ren3);
  62. DDX_Text(pDX, IDC_EDIT5, m_time2);
  63. DDX_Text(pDX, IDC_EDIT6, m_bz2);
  64. DDX_Text(pDX, IDC_EDITmoney2, m_sum1);
  65. DDX_Text(pDX, IDC_EDITmoney3, m_sum2);
  66. DDX_Text(pDX, IDC_EDITmoney5, m_sum3);
  67. DDX_Text(pDX, IDC_EDITmemberno, m_memberno);
  68. DDX_Text(pDX, IDC_EDITmembermoney, m_membermoney);
  69. DDX_Text(pDX, IDC_EDITitem, m_item);
  70. DDX_Text(pDX, IDC_EDIT17, m_instock);
  71. //}}AFX_DATA_MAP
  72. }
  73. BEGIN_MESSAGE_MAP(TakeMoney3, CDialog)
  74. ON_WM_LBUTTONDOWN()
  75. ON_BN_CLICKED(IDOK2, OnOk2)
  76. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  77. ON_BN_CLICKED(IDC_BUTdel, OnBUTdel)
  78. ON_BN_CLICKED(IDC_BUTdel4, OnBUTdel4)
  79. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  80. ON_BN_CLICKED(IDC_BUTTON12, OnButton12)
  81. ON_WM_DESTROY()
  82. ON_EN_CHANGE(IDC_EDIT4, OnChangeEdit4)
  83. ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
  84. ON_EN_CHANGE(IDC_EDIT6, OnChangeEdit6)
  85. ON_NOTIFY(NM_CLICK, IDC_LIST3, OnClickList3)
  86. ON_BN_CLICKED(IDC_BUTTON13, OnButton13)
  87. ON_BN_CLICKED(IDC_BUTTON24, OnButton24)
  88. END_MESSAGE_MAP()
  89. BOOL TakeMoney3::OnInitDialog()
  90. {
  91. CDialog::OnInitDialog();
  92. if (IsHasRights2new(49) == 0)
  93. {
  94. GetDlgItem(IDC_BUTTON13)->EnableWindow(0);
  95. }
  96. if (IsHasRights2new(49) == 0)((CEdit*)GetDlgItem(IDC_EDIT2))->SetReadOnly();
  97. #ifdef CHILD_VERSION
  98. GetDlgItem(IDC_STATIC10)->SetWindowText("家长:");
  99. GetDlgItem(IDC_STATIC20)->SetWindowText("宝宝:");
  100. #endif
  101. SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
  102. GetDlgItem(IDC_BUTdel)->EnableWindow(IsHasRights2new(49));
  103. GetDlgItem(IDC_BUTdel4)->EnableWindow(IsHasRights2new(49));
  104. GetDlgItem(IDC_BUTTON2)->EnableWindow(IsHasRights2new(49));
  105. #ifndef BASIC_ADDMEMBER
  106. #ifdef BASIC_VERSION
  107. GetDlgItem(IDC_EDITmemberno)->ShowWindow(SW_HIDE);
  108. GetDlgItem(IDC_BUTTON2)->ShowWindow(SW_HIDE);
  109. GetDlgItem(IDC_BUTTON12)->ShowWindow(SW_HIDE);
  110. GetDlgItem(IDC_EDITmembermoney)->ShowWindow(SW_HIDE);
  111. GetDlgItem(IDC_STATIC1)->ShowWindow(SW_HIDE);
  112. GetDlgItem(IDC_STATIC2)->ShowWindow(SW_HIDE);
  113. #endif
  114. #endif
  115. #ifdef SUNRAIN_VERSION
  116. if(m_mode==1)
  117. {
  118. m_comboren.AddString (m_ren);
  119. m_comboren.SetCurSel (0);
  120. m_comboren.EnableWindow (0);
  121. }
  122. #endif
  123. g_sendhead.bsql = 0;
  124. g_sendhead.code[0] = 93;
  125. g_sendhead.code[1] = 38;
  126. g_sendhead.code[2] = 11;
  127. g_sendhead.code[3] = 68;
  128. g_sendhead.code[4] = 160;
  129. g_sendhead.code[5] = 50;
  130. g_sendhead.tabcount = 6;
  131. CString filter = "id='" + m_strOrderNumber + "';id='" + m_strOrderNumber + "';id='" + m_strOrderNumber + "';;;id='" + m_strOrderNumber + "'";
  132. g_pMainWnd->ProcessChatMessageRequest2(filter);
  133. if (g_bSendOK == 0)return 0;
  134. CArray<CStringArray, CStringArray>dindanarray;
  135. CArray<CStringArray, CStringArray>memberarray;
  136. CArray<CStringArray, CStringArray>expendtypearray;
  137. DataToArray(&m_List1array, &m_List2array, &dindanarray, &memberarray, &expendtypearray, &sparray);
  138. int i = 0;
  139. for ( i = 0; i < g_userarray.GetSize(); i++)
  140. m_comboren.AddString(g_userarray.ElementAt(i).ElementAt(1));
  141. CenterWindow(g_pMainWnd);
  142. m_ren2 = g_user.name;
  143. m_ren3 = g_user.name;
  144. m_memberno = dindanarray.ElementAt(0).ElementAt(47);
  145. for (i = 0; i < memberarray.GetSize(); i++)
  146. {
  147. if (m_memberno == memberarray.ElementAt(i).ElementAt(1))
  148. {
  149. m_membermoney = memberarray.ElementAt(i).ElementAt(9);
  150. break;
  151. }
  152. }
  153. for (i = 0; i < expendtypearray.GetSize(); i++)
  154. {
  155. m_combobz.AddString(expendtypearray.ElementAt(i).ElementAt(0));
  156. }
  157. m_combobz.AddString("摄影二销");
  158. #ifndef CHILD_VERSION
  159. m_combobz.AddString("化妆二销");
  160. #else
  161. m_combobz.AddString("引导二销"); //"引导二销"
  162. #endif
  163. m_combobz.AddString("选片二销");
  164. CString m_money1 = dindanarray.ElementAt(0).ElementAt(1);
  165. m_taoxijiage = dindanarray.ElementAt(0).ElementAt(8);
  166. CString m_payed4 = dindanarray.ElementAt(0).ElementAt(19);
  167. CString m_payed5 = dindanarray.ElementAt(0).ElementAt(20);
  168. m_sum1.Format("%f", atof(m_taoxijiage) + atof(m_payed4));
  169. m_sum2.Format("%f", atof(m_payed5) + atof(m_money1));
  170. m_sum3.Format("%f", atof(m_sum1) - atof(m_sum2));
  171. ConvertToPrice(m_sum1);
  172. ConvertToPrice(m_sum2);
  173. ConvertToPrice(m_sum3);
  174. UpdateData(false);
  175. if (atoi(g_cominfoarray.ElementAt(0).ElementAt(115)))
  176. m_List1.SetHeadings("id,0;金额,55;日期,90;开单人,70;收款人,70;备注,90;收款项目,90;支付方式,70;接单点,80");
  177. else
  178. m_List1.SetHeadings("id,0;金额,60;日期,90;开单人,70;收款人,70;备注,90;收款项目,90;支付方式,90");
  179. m_List1.LoadColumnInfo(115);
  180. m_List2.SetHeadings("id,0;加挑金额,100;日期,100;录单,100;加挑物品,100");
  181. m_List2.LoadColumnInfo(123);
  182. for (i = 0; i < m_List1array.GetSize(); i++)
  183. {
  184. if (m_List1array.ElementAt(i).ElementAt(9) != "")
  185. {
  186. CString discount = "(打" + m_List1array.ElementAt(i).ElementAt(9) + "折)";
  187. m_List1array.ElementAt(i).SetAt(6, m_List1array.ElementAt(i).ElementAt(6) + discount);
  188. }
  189. }
  190. FillGrid();
  191. m_bInit = 1;
  192. if (m_mode == 5)
  193. {
  194. SetWindowText("客户付款详情");
  195. GetDlgItem(IDC_EDIT1)->EnableWindow(0);
  196. GetDlgItem(IDC_COMBO1)->EnableWindow(0);
  197. GetDlgItem(IDOK)->EnableWindow(0);
  198. GetDlgItem(IDC_EDIT4)->EnableWindow(0);
  199. GetDlgItem(IDC_EDIT6)->EnableWindow(0);
  200. GetDlgItem(IDOK2)->EnableWindow(0);
  201. GetDlgItem(IDC_BUTTON1)->EnableWindow(0);
  202. GetDlgItem(IDC_BUTdel)->EnableWindow(0);
  203. GetDlgItem(IDC_BUTdel4)->EnableWindow(0);
  204. }
  205. return TRUE;
  206. }
  207. void TakeMoney3::OnOK()
  208. {
  209. UpdateData();
  210. if (m_money.IsEmpty())
  211. {
  212. AfxMessageBox("资料不全!", MB_ICONINFORMATION);
  213. return;
  214. }
  215. if (m_item.IsEmpty())
  216. {
  217. AfxMessageBox("收款项目不能为空,请在上方加挑物品的表格中选取!", MB_ICONINFORMATION);
  218. return;
  219. }
  220. int pos;
  221. pos = m_comboren.GetCurSel();
  222. if (pos == -1)
  223. {
  224. AfxMessageBox("资料不全!", MB_ICONINFORMATION);
  225. return;
  226. }
  227. m_comboren.GetLBText(pos, m_ren);
  228. pos = m_combobz.GetCurSel();
  229. if (pos == -1)
  230. {
  231. AfxMessageBox("请选择正确的二销类别!", MB_ICONINFORMATION);
  232. return;
  233. }
  234. m_combobz.GetLBText(pos, m_bz);
  235. switch (pos)
  236. {
  237. case 0:
  238. m_mode = 5;
  239. break;
  240. case 1:
  241. m_mode = 1;
  242. break;
  243. case 2:
  244. m_mode = 6;
  245. break;
  246. case 3:
  247. m_mode = 2;
  248. break;
  249. }
  250. if (!CheckDateOK(m_time1))return;
  251. BOOL bexist1 = 0;
  252. BOOL bexist2 = 0;
  253. if (bexist1 == 0)
  254. {
  255. for (int i = 0; i < m_List1array.GetSize(); i++)
  256. {
  257. if (m_List1array.ElementAt(i).ElementAt(1) == m_money)
  258. {
  259. bexist1 = 1;
  260. break;
  261. }
  262. }
  263. }
  264. if (bexist2 == 0)
  265. {
  266. for (int i = 0; i < m_List1array.GetSize(); i++)
  267. {
  268. if (m_List1array.ElementAt(i).ElementAt(5) == m_bz)
  269. {
  270. bexist2 = 1;
  271. break;
  272. }
  273. }
  274. }
  275. if (bexist1 && bexist2)
  276. {
  277. if (AfxMessageBox("已有相似的记录, 确认没有重复吗? 是否继续?", MB_YESNO | MB_ICONINFORMATION) != IDYES)
  278. return;
  279. }
  280. SelPayType seltype;
  281. seltype.m_paymoney = m_money;
  282. if (seltype.DoModal() != IDOK)return;
  283. CString paytype, branch;
  284. if (seltype.m_radio1 == 0)
  285. paytype = "现金";
  286. else if (seltype.m_radio1 == 1)
  287. paytype = "POS机刷卡";
  288. else if (seltype.m_radio1 == 2)
  289. paytype = "储值卡扣款";
  290. else if (seltype.m_radio1 == 3)
  291. paytype = "积分兑换";
  292. else if (seltype.m_radio1 == 4)
  293. paytype = "银行转账";
  294. #if JEFF_TEST_ON
  295. else if (seltype.m_radio1 == 5)
  296. paytype = "代金券";
  297. #endif
  298. else if(seltype.m_radio1 == 6)
  299. paytype = "支付宝";
  300. else if(seltype.m_radio1 == 7)
  301. paytype = "财付通";
  302. else if(seltype.m_radio1 == 8)
  303. paytype = "微信支付";
  304. else if(seltype.m_radio1 == 9)
  305. paytype = seltype.m_strCustomPayType;
  306. branch = seltype.m_branch;
  307. CString localbranch = GetNameFromDomain(g_domain);
  308. if (branch == "" || branch == g_branchname || (g_branchname == ""&&branch == localbranch))
  309. {
  310. CString jdd;
  311. if (atoi(g_cominfoarray.ElementAt(0).ElementAt(115)))
  312. {
  313. SelExpendType dlg;
  314. dlg.m_mode = 3;
  315. if (dlg.DoModal() == IDOK)
  316. jdd = dlg.m_sel;
  317. }
  318. CString sql, sql2;
  319. sql.Format("insert into dindanbukuan([id],[money],[ren],[date],[bz],[ren2],[kind],[item],[paytype],[jdd],[discount],[time])values('%s','%s','%s','%s','%s','%s','%d','%s','%s','%s','%s','curtimereplace')", m_strOrderNumber, m_money, m_ren, m_time1, m_bz, m_ren2, m_mode, m_item, paytype, jdd, seltype.m_discount);
  320. if (g_nYearpos != -1)
  321. {
  322. sql.Format("insert into dindanbukuan([autoid],[id],[money],[ren],[date],[bz],[ren2],[kind],[item],[paytype],[jdd],[discount],[time])values(%d,'%s','%s','%s','%s','%s','%s','%d','%s','%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, m_item, paytype, jdd, seltype.m_discount);
  323. }
  324. if (paytype == "储值卡扣款")
  325. {
  326. CString ss = m_money;
  327. CString m_money = ss;
  328. if (seltype.m_bChildMoneyCard)
  329. {
  330. sql += "###insert into [membercard3childusereg]([memberno],[dindanid],[money],[date])values('" + seltype.m_cardno + "','" + m_strOrderNumber + "','" + m_money + "','" + g_date + "')";
  331. sql += "###refresh balance memberreg4" + seltype.m_parentno + ";" + seltype.m_cardno;
  332. }
  333. else
  334. {
  335. if (atof(seltype.m_discount) != 0.0)
  336. m_money.Format("%d", int(0.5 + atof(m_money)*atof(seltype.m_discount) / 10.0));
  337. sql += "###insert into [membercard3usereg]([memberno],[dindanid],[money],[date])values('" + seltype.m_cardno + "','" + m_strOrderNumber + "','" + m_money + "','" + g_date + "')";
  338. sql += "###refresh balance memberreg3"; sql += seltype.m_cardno;
  339. }
  340. if (atoi(g_cominfoarray.ElementAt(0).ElementAt(122)))
  341. {
  342. CString content, timestamp;
  343. CString m_phone = seltype.m_phone;;
  344. content.Format("%s您好,您本次使用现金卡消费%s元,余额:%d元", seltype.m_name, m_money, seltype.m_money - atoi(m_money));
  345. timestamp = "msgtimestamp";
  346. if (CheckPhoneType(m_phone) != -1 && CheckBadWords(content, 0))
  347. {
  348. int count = GetLengthEx(content) / MSG_LENGTH;
  349. if (GetLengthEx(content) % MSG_LENGTH)
  350. count++;
  351. CString scount;
  352. scount.Format("%d", count);
  353. #if JEFF_TEST_ON
  354. CString sql2 = _T("");
  355. sql2.Format(INSERT_SENDREG, _T("16"), m_phone, content, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("系统自动发送"));
  356. sql += _T("###") + sql2;
  357. #else
  358. CString sql2 = "###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('" + m_phone + "','" + content + "','" + timestamp + "','" + scount + "','0','0','0','系统自动发送')";
  359. sql += sql2;
  360. #endif
  361. }
  362. }
  363. }
  364. else if (paytype == "积分兑换")
  365. {
  366. CString point;
  367. float rate = atof(g_cominfoarray.ElementAt(0).ElementAt(38)) / 100.0;
  368. point.Format("%d", (int)(atof(m_money)*GetPointScale2() / rate));
  369. sql += "###insert into [memberreg2]([memberno],[dindanid],[money],[point],[date])values('" + seltype.m_cardno + "','" + m_strOrderNumber + "','" + m_money + "','" + point + "','" + g_date + "')";
  370. sql += "###refresh balance memberreg2";
  371. sql += seltype.m_cardno;
  372. if (atoi(g_cominfoarray.ElementAt(0).ElementAt(122)))
  373. {
  374. CString content, timestamp;
  375. CString m_phone = seltype.m_phone;;
  376. float rate = atof(g_cominfoarray.ElementAt(0).ElementAt(38)) / 100.0;
  377. int point = (int)(atof(m_money) / rate + 0.5);
  378. content.Format("%s您好,您本次使用积分%d分,余额:%d分", seltype.m_name, point, seltype.m_point - point);
  379. timestamp = "msgtimestamp";
  380. if (CheckPhoneType(m_phone) != -1 && CheckBadWords(content, 0))
  381. {
  382. int count = GetLengthEx(content) / MSG_LENGTH;
  383. if (GetLengthEx(content) % MSG_LENGTH)
  384. count++;
  385. CString scount;
  386. scount.Format("%d", count);
  387. #if JEFF_TEST_ON
  388. CString sql2 = _T("");
  389. sql2.Format(INSERT_SENDREG, _T("16"), m_phone, content, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("系统自动发送"));
  390. sql += _T("###") + sql2;
  391. #else
  392. CString sql2 = "###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('" + m_phone + "','" + content + "','" + timestamp + "','" + scount + "','0','0','0','系统自动发送')";
  393. sql += sql2;
  394. #endif
  395. }
  396. }
  397. }
  398. sql += "###update dindan set [memberno]='" + m_memberno + "' where [id]='" + m_strOrderNumber + "'";
  399. if ((!m_memberno.IsEmpty()) && paytype != "积分兑换")
  400. {
  401. CString date = g_date;
  402. sql += "###insert into memberreg([memberno],[dindanid],[money],[date],[type])values('" + m_memberno + "','" + m_strOrderNumber + "','" + m_money + "','" + date + "','消费积分')";
  403. }
  404. sql2 = "###" + m_strOrderNumber + "$$$" + m_memberno;
  405. sql += sql2;
  406. g_sendhead.bsql = 1;
  407. g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
  408. AfxMessageBox("保存成功!", MB_ICONINFORMATION);
  409. GetData();
  410. }
  411. else
  412. {
  413. CString sql3;
  414. BOOL g_bBranchModifyBak = g_bBranchModify;
  415. CString g_branchnameBak = g_branchname;
  416. CString g_branchipBak = g_branchip;
  417. CString curbranch;
  418. if (g_branchname != "")
  419. curbranch = g_branchname;
  420. else
  421. {
  422. curbranch = localbranch;
  423. }
  424. CString m_id2 = curbranch + m_strOrderNumber;
  425. CString jdd;
  426. if (atoi(g_cominfoarray.ElementAt(0).ElementAt(115)))
  427. {
  428. SelExpendType dlg;
  429. dlg.m_mode = 3;
  430. if (dlg.DoModal() == IDOK)
  431. jdd = dlg.m_sel;
  432. }
  433. CString sql, sql2;
  434. sql.Format("insert into dindanbukuan([id],[money],[ren],[date],[bz],[ren2],[kind],[item],[paytype],[jdd],[discount],[time])values('%s','%s','%s','%s','%s','%s','%d','%s','%s','%s','%s','curtimereplace')", m_strOrderNumber, m_money, m_ren, m_time1, m_bz, m_ren2, m_mode, m_item, paytype, jdd, seltype.m_discount);
  435. if (g_nYearpos != -1)
  436. {
  437. sql.Format("insert into dindanbukuan([autoid],[id],[money],[ren],[date],[bz],[ren2],[kind],[item],[paytype],[jdd],[discount],[time])values(%d,'%s','%s','%s','%s','%s','%s','%d','%s','%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, m_item, paytype, jdd, seltype.m_discount);
  438. }
  439. if (paytype == "储值卡扣款")
  440. {
  441. CString ss = m_money;
  442. CString m_money = ss;
  443. if (seltype.m_bChildMoneyCard)
  444. {
  445. sql3 += "###insert into [membercard3childusereg]([memberno],[dindanid],[money],[date])values('" + seltype.m_cardno + "','" + m_id2 + "','" + m_money + "','" + g_date + "')";
  446. sql3 += "###refresh balance memberreg4" + seltype.m_parentno + ";" + seltype.m_cardno;
  447. }
  448. else
  449. {
  450. if (atof(seltype.m_discount) != 0.0)
  451. m_money.Format("%d", int(0.5 + atof(m_money)*atof(seltype.m_discount) / 10.0));
  452. sql3 += "###insert into [membercard3usereg]([memberno],[dindanid],[money],[date])values('" + seltype.m_cardno + "','" + m_id2 + "','" + m_money + "','" + g_date + "')";
  453. sql3 += "###refresh balance memberreg3"; sql3 += seltype.m_cardno;
  454. }
  455. if (atoi(g_cominfoarray.ElementAt(0).ElementAt(122)))
  456. {
  457. CString content, timestamp;
  458. CString m_phone = seltype.m_phone;;
  459. content.Format("%s您好,您本次使用现金卡消费%s元,余额:%d元", seltype.m_name, m_money, seltype.m_money - atoi(m_money));
  460. timestamp = "msgtimestamp";
  461. if (CheckPhoneType(m_phone) != -1 && CheckBadWords(content, 0))
  462. {
  463. int count = GetLengthEx(content) / MSG_LENGTH;
  464. if (GetLengthEx(content) % MSG_LENGTH)
  465. count++;
  466. CString scount;
  467. scount.Format("%d", count);
  468. #if JEFF_TEST_ON
  469. CString sql2 = _T("");
  470. sql2.Format(INSERT_SENDREG, _T("16"), m_phone, content, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("系统自动发送"));
  471. sql3 += _T("###") + sql2;
  472. #else
  473. CString sql2 = "###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('" + m_phone + "','" + content + "','" + timestamp + "','" + scount + "','0','0','0','系统自动发送')";
  474. sql3 += sql2;
  475. #endif
  476. }
  477. }
  478. }
  479. else if (paytype == "积分兑换")
  480. {
  481. CString point;
  482. float rate = atof(g_cominfoarray.ElementAt(0).ElementAt(38)) / 100.0;
  483. point.Format("%d", (int)(atof(m_money)*GetPointScale2() / rate));
  484. sql3 += "###insert into [memberreg2]([memberno],[dindanid],[money],[point],[date])values('" + seltype.m_cardno + "','" + m_id2 + "','" + m_money + "','" + point + "','" + g_date + "')";
  485. sql3 += "###refresh balance memberreg2";
  486. sql3 += seltype.m_cardno;
  487. if (atoi(g_cominfoarray.ElementAt(0).ElementAt(122)))
  488. {
  489. CString content, timestamp;
  490. CString m_phone = seltype.m_phone;;
  491. float rate = atof(g_cominfoarray.ElementAt(0).ElementAt(38)) / 100.0;
  492. int point = (int)(atof(m_money) / rate + 0.5);
  493. content.Format("%s您好,您本次使用积分%d分,余额:%d分", seltype.m_name, point, seltype.m_point - point);
  494. timestamp = "msgtimestamp";
  495. if (CheckPhoneType(m_phone) != -1 && CheckBadWords(content, 0))
  496. {
  497. int count = GetLengthEx(content) / MSG_LENGTH;
  498. if (GetLengthEx(content) % MSG_LENGTH)
  499. count++;
  500. CString scount;
  501. scount.Format("%d", count);
  502. #if JEFF_TEST_ON
  503. CString sql2 = _T("");
  504. sql2.Format(INSERT_SENDREG, _T("16"), m_phone, content, timestamp, scount, _T("0"), _T("0"), _T("0"), _T("系统自动发送"));
  505. sql3 += _T("###") + sql2;
  506. #else
  507. CString sql2 = "###insert into sendreg([phones],[content],[timestamp],[msgcount],[status],[issended],[isautosend],[ren]) values('" + m_phone + "','" + content + "','" + timestamp + "','" + scount + "','0','0','0','系统自动发送')";
  508. sql3 += sql2;
  509. #endif
  510. }
  511. }
  512. }
  513. sql += "###update dindan set [memberno]='" + m_memberno + "' where [id]='" + m_strOrderNumber + "'";
  514. if ((!m_memberno.IsEmpty()) && paytype != "积分兑换")
  515. {
  516. CString date = g_date;
  517. sql3 += "###insert into memberreg([memberno],[dindanid],[money],[date],[type])values('" + m_memberno + "','" + m_id2 + "','" + m_money + "','" + date + "','消费积分')";
  518. }
  519. sql2 = "###" + m_strOrderNumber + "$$$" + m_memberno;
  520. sql += sql2;
  521. sql3 += sql2;
  522. g_pMainWnd->OnDisconnect();
  523. g_branchip = GetIP(branch);
  524. g_pMainWnd->OnDisconnect();
  525. g_branchname = branch;
  526. g_bBranchModify = 1;
  527. g_sendhead.bsql = 1; sql3.TrimLeft("###");
  528. g_pMainWnd->ProcessChatMessageRequest2(sql3); if (g_bSendOK == 0)return;
  529. g_pMainWnd->OnDisconnect();
  530. g_bBranchModify = g_bBranchModifyBak;
  531. g_branchname = g_branchnameBak;
  532. g_branchip = g_branchipBak;
  533. g_sendhead.bsql = 1;
  534. g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
  535. AfxMessageBox("保存成功!", MB_ICONINFORMATION);
  536. GetData();
  537. }
  538. // CDialog::OnOK();
  539. }
  540. void TakeMoney3::OnLButtonDown(UINT nFlags, CPoint point)
  541. {
  542. // TODO: Add your message handler code here and/or call default
  543. CDialog::OnLButtonDown(nFlags, point);
  544. }
  545. void TakeMoney3::GetData()
  546. {
  547. g_sendhead.bsql = 0;
  548. g_sendhead.code[0] = 93;
  549. g_sendhead.code[1] = 38;
  550. g_sendhead.code[2] = 11;
  551. g_sendhead.code[3] = 68;
  552. g_sendhead.tabcount = 4;
  553. CString filter = "id='" + m_strOrderNumber + "';id='" + m_strOrderNumber + "';id='" + m_strOrderNumber + "';memberno='" + m_memberno + "'";
  554. g_pMainWnd->ProcessChatMessageRequest2(filter);
  555. if (g_bSendOK == 0)return;
  556. CArray<CStringArray, CStringArray>dindanarray;
  557. CArray<CStringArray, CStringArray>memberarray;
  558. DataToArray(&m_List1array, &m_List2array, &dindanarray, &memberarray);
  559. for (int i = 0; i < m_List1array.GetSize(); i++)
  560. {
  561. if (m_List1array.ElementAt(i).ElementAt(9) != "")
  562. {
  563. CString discount = "(打" + m_List1array.ElementAt(i).ElementAt(9) + "折)";
  564. m_List1array.ElementAt(i).SetAt(6, m_List1array.ElementAt(i).ElementAt(6) + discount);
  565. }
  566. }
  567. FillGrid();
  568. if (memberarray.GetSize())
  569. m_membermoney = memberarray.ElementAt(0).ElementAt(9);
  570. CString m_money1 = dindanarray.ElementAt(0).ElementAt(1);
  571. m_taoxijiage = dindanarray.ElementAt(0).ElementAt(8);
  572. CString m_payed4 = dindanarray.ElementAt(0).ElementAt(19);
  573. CString m_payed5 = dindanarray.ElementAt(0).ElementAt(20);
  574. m_sum1.Format("%f", atof(m_taoxijiage) + atof(m_payed4));
  575. m_sum2.Format("%f", atof(m_payed5) + atof(m_money1));
  576. m_sum3.Format("%f", atof(m_sum1) - atof(m_sum2));
  577. ConvertToPrice(m_sum1);
  578. ConvertToPrice(m_sum2);
  579. ConvertToPrice(m_sum3);
  580. UpdateData(false);
  581. CString sql;
  582. sql.Format("update [todaytake] set [arrearage]='%s' where [id]='%s'", m_sum3, m_strOrderNumber);
  583. g_sendhead.bsql = 1;
  584. g_bNoConnDlg = 1;
  585. g_pMainWnd->ProcessChatMessageRequest2(sql);
  586. g_bNoConnDlg = 0;
  587. }
  588. void TakeMoney3::FillGrid()
  589. {
  590. m_List1.DeleteAllItems2();
  591. int ii = 0;
  592. m_List1.m_arLabels.SetSize(m_List1array.GetSize(), 1);
  593. int count = 0;
  594. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  595. {
  596. m_List1.m_arLabels.ElementAt(count++).Copy(m_List1array.ElementAt(ii));
  597. }
  598. m_List1.m_arLabels.SetSize(count, 1);
  599. ii = count;
  600. m_List1.m_LabelCount = ii;
  601. m_List1.SetItemCountEx(ii);
  602. {
  603. m_List2.DeleteAllItems2();
  604. int ii = 0;
  605. m_List2.m_arLabels.SetSize(m_List2array.GetSize(), 1);
  606. int count = 0;
  607. for (ii = 0; ii < m_List2.m_arLabels.GetSize(); ii++)
  608. {
  609. m_List2.m_arLabels.ElementAt(count++).Copy(m_List2array.ElementAt(ii));
  610. }
  611. m_List2.m_arLabels.SetSize(count, 1);
  612. ii = count;
  613. m_List2.m_LabelCount = ii;
  614. m_List2.SetItemCountEx(ii);
  615. }
  616. }
  617. BOOL TakeMoney3::PreTranslateMessage(MSG* pMsg)
  618. {
  619. if (pMsg->message == WM_KEYDOWN)
  620. {
  621. switch (pMsg->wParam)
  622. {
  623. case VK_RETURN:
  624. return 1;
  625. case VK_DELETE:
  626. {
  627. if (GetFocus() == GetDlgItem(IDC_EDIT17))
  628. {
  629. m_instock = ""; m_instocklb = "";
  630. SetDlgItemText(IDC_EDIT17, "");
  631. }
  632. }
  633. return 1;
  634. }
  635. }
  636. return CDialog::PreTranslateMessage(pMsg);
  637. }
  638. void TakeMoney3::OnOk2() // 加挑商品;
  639. {
  640. UpdateData();
  641. m_bz2.TrimLeft();
  642. m_money2.TrimLeft();
  643. if (m_money2.IsEmpty())
  644. {
  645. AfxMessageBox("资料不全!", MB_ICONINFORMATION);
  646. return;
  647. }
  648. if (m_bz2.IsEmpty())
  649. {
  650. AfxMessageBox("资料不全!", MB_ICONINFORMATION);
  651. return;
  652. }
  653. if (!CheckDateOK(m_time2))return;
  654. BOOL bexist1 = 0;
  655. if (bexist1 == 0)
  656. {
  657. for (int i = 0; i < m_List2array.GetSize(); i++)
  658. {
  659. if (m_List2array.ElementAt(i).ElementAt(1) == m_money2)
  660. {
  661. bexist1 = 1;
  662. break;
  663. }
  664. }
  665. }
  666. if (bexist1)
  667. {
  668. if (AfxMessageBox("已有相似的记录, 确认没有重复吗? 是否继续?", MB_YESNO | MB_ICONINFORMATION) != IDYES)
  669. return;
  670. }
  671. CString sql, sql2;
  672. sql.Format("insert into dindanbukuan2([id],[money],[date],[bz],[ren2],[kind])values('%s','%s','%s','%s','%s','%d')", m_strOrderNumber, m_money2, m_time2, m_bz2, m_ren3, m_mode + 1);
  673. if (g_nYearpos != -1)
  674. {
  675. sql.Format("insert into dindanbukuan2([autoid],[id],[money],[date],[bz],[ren2],[kind])values(%d,'%s','%s','%s','%s','%s','%d')", atoi(CTime::GetCurrentTime().Format("%Y%m%d%H%M%S")), m_strOrderNumber, m_money2, m_time2, m_bz2, m_ren3, m_mode + 1);
  676. }
  677. if (m_instock != "")
  678. {
  679. if (atoi(g_cominfoarray.ElementAt(0).ElementAt(131)))
  680. {
  681. CString name, lb, id;
  682. CStringArray namearray;
  683. CStringArray lbarray;
  684. int pos = m_instock.Find(",");
  685. if (pos != -1)
  686. {
  687. namearray.Add(m_instock.Left(pos));
  688. m_instock = m_instock.Right(m_instock.GetLength() - pos - 1);
  689. pos = m_instock.Find(",");
  690. while (pos != -1)
  691. {
  692. namearray.Add(m_instock.Left(pos));
  693. m_instock = m_instock.Right(m_instock.GetLength() - pos - 1);
  694. pos = m_instock.Find(",");
  695. }
  696. namearray.Add(m_instock);
  697. }
  698. else
  699. {
  700. namearray.Add(m_instock);
  701. }
  702. pos = m_instocklb.Find(",");
  703. if (pos != -1)
  704. {
  705. lbarray.Add(m_instocklb.Left(pos));
  706. m_instocklb = m_instocklb.Right(m_instocklb.GetLength() - pos - 1);
  707. pos = m_instocklb.Find(",");
  708. while (pos != -1)
  709. {
  710. lbarray.Add(m_instocklb.Left(pos));
  711. m_instocklb = m_instocklb.Right(m_instocklb.GetLength() - pos - 1);
  712. pos = m_instocklb.Find(",");
  713. }
  714. lbarray.Add(m_instocklb);
  715. }
  716. else
  717. {
  718. lbarray.Add(m_instocklb);
  719. }
  720. id = m_strOrderNumber + "(二销)";
  721. for (int i = 0; i < namearray.GetSize(); i++)
  722. {
  723. name = namearray.ElementAt(i);
  724. lb = lbarray.ElementAt(i);
  725. sql += "$$$insert into storeinfo2([id],[type],[name],[count],[date],[clerk])values('" + id + "','" + lb + "','" + name + "','1','" + g_date + "','" + g_user.name + "')";
  726. }
  727. }
  728. }
  729. sql2 = "$$$" + m_strOrderNumber;
  730. sql += sql2;
  731. g_sendhead.bsql = 1;
  732. g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
  733. AfxMessageBox("保存成功!", MB_ICONINFORMATION);
  734. GetData();
  735. }
  736. void TakeMoney3::OnButton1() // 选择按钮;
  737. {
  738. SPBox dlg;
  739. if (dlg.DoModal() != IDOK)return;
  740. m_instock = ""; m_instocklb = "";
  741. for (int a = 0; a < dlg.m_spidarray.GetSize(); a++)
  742. {
  743. dlg.m_spid = dlg.m_lbarray.ElementAt(a);
  744. dlg.m_spname = dlg.m_spnamearray.ElementAt(a);
  745. BOOL bindindan = 0;
  746. for (int i = 0; i < sparray.GetSize(); i++)
  747. {
  748. if (dlg.m_spname == sparray.ElementAt(i).ElementAt(5))
  749. {
  750. bindindan = 1; break;
  751. }
  752. }
  753. if (bindindan)continue;
  754. if (m_instock == "")
  755. {
  756. m_instock += dlg.m_spname;
  757. m_instocklb += dlg.m_lb;
  758. }
  759. else
  760. {
  761. m_instock += "," + dlg.m_spname;
  762. m_instocklb += "," + dlg.m_lb;
  763. }
  764. }
  765. m_bz2 = m_instock;
  766. UpdateData(0);
  767. }
  768. void TakeMoney3::RefreshMoney()
  769. {
  770. }
  771. void TakeMoney3::OnBUTdel()
  772. {
  773. if (IsHasRights2new(49) == 0)return;
  774. // TODO: Add your control notification handler code here
  775. POSITION pos;
  776. pos = m_List1.GetFirstSelectedItemPosition();
  777. if (pos == NULL)
  778. {
  779. AfxMessageBox("请先选中您要删除的项目!", MB_ICONINFORMATION);
  780. return;
  781. }
  782. if (AfxMessageBox("是否删除此项目?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return;
  783. int iItem = m_List1.GetNextSelectedItem(pos);
  784. CString id = m_List1.GetItemText(iItem, 0);
  785. CString money = m_List1.GetItemText(iItem, 1);
  786. CString bz = m_List1.GetItemText(iItem, 2) + m_List1.GetItemText(iItem, 5) + m_List1.GetItemText(iItem, 6);
  787. CString sql;
  788. sql.Format("delete from dindanbukuan where [autoid]=%d", atol(id));
  789. sql += "%%%[money]='" + money + "' and [dindanid]='" + m_strOrderNumber + "'";
  790. sql += "###" + m_memberno;
  791. g_sendhead.bsql = 1;
  792. g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
  793. sql = "###" + m_strOrderNumber;
  794. g_sendhead.bsql = 1;
  795. g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
  796. GetData();
  797. CString str;
  798. str = "删除客人";
  799. str += m_name1;
  800. str += m_name2;
  801. str += m_strOrderNumber;
  802. str += "收款:";
  803. str += bz;
  804. str += money;
  805. WriteLog(_T("收款"), str);
  806. }
  807. void TakeMoney3::OnBUTdel4()
  808. {
  809. if (IsHasRights2new(49) == 0)return;
  810. // TODO: Add your control notification handler code here
  811. POSITION pos;
  812. pos = m_List2.GetFirstSelectedItemPosition();
  813. if (pos == NULL)
  814. {
  815. AfxMessageBox("请先选中您要删除的项目!", MB_ICONINFORMATION);
  816. return;
  817. }
  818. if (AfxMessageBox("是否删除此项目?", MB_YESNO | MB_ICONINFORMATION) != IDYES)return;
  819. int iItem = m_List2.GetNextSelectedItem(pos);
  820. CString id = m_List2.GetItemText(iItem, 0);
  821. CString money = m_List2.GetItemText(iItem, 1);
  822. CString bz = m_List2.GetItemText(iItem, 2) + m_List2.GetItemText(iItem, 4);
  823. CString sql;
  824. sql.Format("delete from [dindanbukuan2] where [autoid]=%d", atol(id));
  825. CString sql2 = "$$$" + m_strOrderNumber;
  826. sql += sql2;
  827. g_sendhead.bsql = 1;
  828. g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
  829. GetData();
  830. CString str;
  831. str = "删除客人";
  832. str += m_name1;
  833. str += m_name2;
  834. str += m_strOrderNumber;
  835. str += "加挑:";
  836. str += bz;
  837. str += money;
  838. WriteLog(_T("加挑"), str);
  839. }
  840. void TakeMoney3::OnButton2()
  841. {
  842. if (IsHasRights2new(49) == 0)return;
  843. UpdateData();
  844. InputMemberno dlg; dlg.m_mode = 1;
  845. if (dlg.DoModal() == IDOK)
  846. {
  847. CString oldmemberno = m_memberno;
  848. m_memberno = dlg.m_memberno;
  849. if (m_memberno == oldmemberno)return;
  850. CString sql, sql2;
  851. sql += "update dindan set [memberno]='" + m_memberno + "' where [id]='" + m_strOrderNumber + "'";
  852. sql += "@@@update memberreg set [memberno]='" + m_memberno + "' where [dindanid]='" + m_strOrderNumber + "'";
  853. sql2 = "@@@" + m_memberno + "###" + oldmemberno;
  854. sql += sql2;
  855. g_sendhead.bsql = 1;
  856. g_pMainWnd->ProcessChatMessageRequest2(sql); if (g_bSendOK == 0)return;
  857. UpdateData(false);
  858. m_memberno = dlg.m_memberno;
  859. g_sendhead.bsql = 0;
  860. g_sendhead.code[0] = 68;
  861. g_sendhead.tabcount = 1;
  862. CString filter = "memberno='" + m_memberno + "'";
  863. g_pMainWnd->ProcessChatMessageRequest2(filter);
  864. if (g_bSendOK == 0)return;
  865. CArray<CStringArray, CStringArray>memberarray;
  866. DataToArray(&memberarray);
  867. if (memberarray.GetSize())
  868. m_membermoney = memberarray.ElementAt(0).ElementAt(9);
  869. UpdateData(false);
  870. m_memberno = dlg.m_memberno;
  871. }
  872. }
  873. void TakeMoney3::OnButton12() // 使用会员积分;
  874. {
  875. if (atof(g_cominfoarray.ElementAt(0).ElementAt(38)) <= 0)
  876. {
  877. AfxMessageBox("积分/金额比率未设置!");
  878. return;
  879. }
  880. UpdateData();
  881. if (m_memberno.IsEmpty())
  882. {
  883. AfxMessageBox("积分卡卡号未输入!");
  884. return;
  885. }
  886. UseMemberCard dlg;
  887. dlg.m_memberno = m_memberno;
  888. dlg.m_id = m_strOrderNumber;
  889. dlg.m_point2 = m_membermoney;
  890. dlg.m_money2.Format("%0.2f", atof(m_membermoney)*(atof(g_cominfoarray.ElementAt(0).ElementAt(38)) / 100));
  891. if (dlg.DoModal() != IDOK)return;
  892. g_sendhead.bsql = 0;
  893. g_sendhead.code[0] = 11;
  894. g_sendhead.code[1] = 68;
  895. g_sendhead.tabcount = 2;
  896. CString filter = "id='" + m_strOrderNumber + "';memberno='" + m_memberno + "'";
  897. g_pMainWnd->ProcessChatMessageRequest2(filter);
  898. if (g_bSendOK == 0)return;
  899. CArray<CStringArray, CStringArray>dindanarray;
  900. CArray<CStringArray, CStringArray>memberarray;
  901. DataToArray(&dindanarray, &memberarray);
  902. if (memberarray.GetSize())
  903. m_membermoney = memberarray.ElementAt(0).ElementAt(9);
  904. CString m_money1 = dindanarray.ElementAt(0).ElementAt(1);
  905. CString m_taoxijiage = dindanarray.ElementAt(0).ElementAt(8);
  906. CString m_payed4 = dindanarray.ElementAt(0).ElementAt(19);
  907. CString m_payed5 = dindanarray.ElementAt(0).ElementAt(20);
  908. m_sum1.Format("%f", atof(m_taoxijiage) + atof(m_payed4));
  909. m_sum2.Format("%f", atof(m_payed5) + atof(m_money1));
  910. m_sum3.Format("%f", atof(m_sum1) - atof(m_sum2));
  911. ConvertToPrice(m_sum1);
  912. ConvertToPrice(m_sum2);
  913. ConvertToPrice(m_sum3);
  914. UpdateData(false);
  915. }
  916. void TakeMoney3::OnDestroy()
  917. {
  918. CDialog::OnDestroy();
  919. }
  920. void TakeMoney3::OnChangeEdit4()
  921. {
  922. if (m_bInit == 0)return;
  923. UpdateData();
  924. SetDlgItemText(IDC_EDIT1, m_money2);
  925. }
  926. void TakeMoney3::OnChangeEdit6()
  927. {
  928. if (m_bInit == 0)return;
  929. UpdateData();
  930. SetDlgItemText(IDC_EDITitem, m_bz2);
  931. }
  932. void TakeMoney3::OnClickList3(NMHDR* pNMHDR, LRESULT* pResult)
  933. {
  934. POSITION pos;
  935. pos = m_List2.GetFirstSelectedItemPosition();
  936. if (pos == NULL)
  937. {
  938. return;
  939. }
  940. int iItem;
  941. iItem = m_List2.GetNextSelectedItem(pos);
  942. SetDlgItemText(IDC_EDITitem, m_List2.GetItemText(iItem, 4));
  943. *pResult = 0;
  944. }
  945. void TakeMoney3::OnButton6() //打印按钮*后期补款
  946. {
  947. // TODO: Add your control notification handler code here
  948. float fmoney = 0;
  949. CStringArray itemarray;
  950. #ifndef ZHIAI_VERSION
  951. POSITION pos;
  952. pos = m_List1.GetFirstSelectedItemPosition();
  953. if (pos == NULL)
  954. {
  955. AfxMessageBox("请先选中您要打单的项目!", MB_ICONINFORMATION);
  956. return;
  957. }
  958. int iItem;
  959. CStringArray array;
  960. array.Add(""); // 1.null
  961. array.Add(g_cominfoarray.ElementAt(0).ElementAt(48)); // 2.订单头
  962. array.Add("NO." + m_strOrderNumber); // 3.订单号
  963. CString str = "地址:" + g_cominfoarray.ElementAt(0).ElementAt(12);
  964. str += " 电话:" + g_cominfoarray.ElementAt(0).ElementAt(11);
  965. array.Add(str); // 4.公司信息
  966. CString name;
  967. if (!m_name1.IsEmpty())
  968. name = m_name1 + ",";
  969. name += m_name2;
  970. name.TrimRight(",");
  971. CString phone;
  972. if (!m_phone1.IsEmpty())
  973. phone = m_phone1 + ",";
  974. phone += m_phone2; phone.TrimRight(",");
  975. array.Add("客户姓名:" + name); // 5.客户姓名;
  976. if (IsHasRights2new(31) == 0)
  977. array.Add("");
  978. else
  979. array.Add("联系电话:" + phone); // 6.客户电话
  980. CString date;
  981. date.Format("日期:%s年%s月%s日", g_date.Mid(0, 4), g_date.Mid(5, 2), g_date.Mid(8, 2));
  982. array.Add(date); // 7.订单日期
  983. array.Add(" 收 款 项 目 "); // 8.列字段1
  984. // array.Add(" 支付方式 "); // 8.1预加字段 // 可不用这里加,直接在PrintReciept_01里加;
  985. // Jeff 显示打印支付方式;
  986. //小单
  987. int isSmall = atoi(g_cominfoarray.ElementAt(0).ElementAt(87));
  988. if(isSmall == 0)
  989. array.Add(" 支付方式 ");
  990. array.Add(" 金 额 "); // 9.列字段2
  991. array.Add(" 开单人 "); // 10.列字段3
  992. /****************根据列字段名,填充列记录内容*********************/
  993. int count = 0;
  994. float money = 0;
  995. BOOL bHasAll = 0;
  996. while (pos)
  997. {
  998. count++;
  999. if (count > 4) break; //Jeff 与pos无关,循环4次;4次后array.GetSize()=26
  1000. iItem = m_List1.GetNextSelectedItem(pos);//Jeff 最多只能选择4条记录来打印;
  1001. // a.填充列<收款项目>记录
  1002. if (m_List1.GetItemText(iItem, 5) == "预约收款" || m_List1.GetItemText(iItem, 5) == "预约补款")
  1003. {
  1004. array.Add(m_List1.GetItemText(iItem, 5) + m_List1.GetItemText(iItem, 6));
  1005. }
  1006. else array.Add(m_List1.GetItemText(iItem, 6));
  1007. // 显示打印支付方式;
  1008. if(isSmall == 0)
  1009. array.Add(m_List1.GetItemText(iItem, 7)); // add by Jeff:添加支付方式;
  1010. // b.填充列<金额>记录
  1011. array.Add(m_List1.GetItemText(iItem, 1));
  1012. money += atof(m_List1.GetItemText(iItem, 1));
  1013. // c.填充列<开单人>记录
  1014. array.Add(m_List1.GetItemText(iItem, 3));
  1015. CString sItem = m_List1.GetItemText(iItem, 6);
  1016. if (sItem == "") bHasAll = 1;
  1017. if (::FindArray(&itemarray, sItem) == -1)
  1018. {
  1019. itemarray.Add(sItem);
  1020. for (int a = 0; a < m_List2.GetItemCount(); a++)
  1021. {
  1022. if (m_List2.GetItemText(a, 4) == sItem)
  1023. fmoney += atof(m_List2.GetItemText(a, 1));
  1024. }
  1025. }
  1026. }
  1027. //while(array.GetSize()<22) array.Add ("");// Jeff del;
  1028. while (array.GetSize() < 27) array.Add(""); // 显示打印支付方式;
  1029. CString smoney;
  1030. smoney.Format("%0.1f", fmoney);
  1031. if (fmoney < 1 || bHasAll)
  1032. smoney = m_sum1;
  1033. if(isSmall == 0)//小单
  1034. {
  1035. str = "付款情况 应付:" + smoney;
  1036. smoney.Format("%0.1f", money);
  1037. str += " 实付:" + smoney;
  1038. str += " 欠款:" + m_sum3;
  1039. }
  1040. else
  1041. {
  1042. str = "付款情况 应付:" + smoney;
  1043. smoney.Format("%0.1f", money);
  1044. str += " 实付:" + smoney;
  1045. str += " 欠款:" + m_sum3;
  1046. }
  1047. array.Add(str);
  1048. smoney.Format("%f", money);
  1049. if(isSmall == 0)//小单
  1050. {
  1051. str.Format("合计人民币(大写): %s 萬 %s 仟 %s 佰 %s 拾 %s 元", \
  1052. GetHMoney(GetW(smoney)), GetHMoney(GetK(smoney)), GetHMoney(GetB(smoney)), GetHMoney(GetS(smoney)), GetHMoney(GetG(smoney)));
  1053. }
  1054. else
  1055. {
  1056. str.Format("合计人民币(大写): %s 萬 %s 仟 %s 佰 %s 拾 %s 元", \
  1057. GetHMoney(GetW(smoney)), GetHMoney(GetK(smoney)), GetHMoney(GetB(smoney)), GetHMoney(GetS(smoney)), GetHMoney(GetG(smoney)));
  1058. }
  1059. array.Add(str);
  1060. array.Add(g_cominfoarray.ElementAt(0).ElementAt(120));
  1061. // array.Add ("定金或消费金在国家法律法规允许的情况下恕不退还,请妥善保管此单");
  1062. array.Add("门市:" + m_ren + " 收银:" + g_user.name);
  1063. array.Add("顾客签名:");
  1064. 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∨");
  1065. g_pMainWnd->PrintReceipt_02(&array); // Jeff 需要显示支付方式;
  1066. #else//zhiai
  1067. POSITION pos;
  1068. pos = m_List1.GetFirstSelectedItemPosition();
  1069. if(pos==NULL)
  1070. {
  1071. AfxMessageBox("请先选中您要打单的项目!", MB_ICONINFORMATION);
  1072. return;
  1073. }
  1074. int iItem;
  1075. CStringArray array;
  1076. array.Add ("项目名称");
  1077. array.Add ("数量");
  1078. array.Add ("金额");
  1079. array.Add ("开单人");
  1080. array.Add ("欠款");
  1081. int count=0;
  1082. float money=0;
  1083. while (pos)
  1084. {
  1085. count++;
  1086. if(count>5)break;
  1087. iItem = m_List1.GetNextSelectedItem(pos);
  1088. if(m_List1.GetItemText (iItem, 5)=="预约收款" || m_List1.GetItemText (iItem, 5)=="预约补款")
  1089. {
  1090. if(m_List1.GetItemText (iItem, 5)=="预约收款")
  1091. array.Add ("定金");
  1092. else
  1093. array.Add (m_List1.GetItemText (iItem, 5));
  1094. array.Add ("1");
  1095. array.Add (m_taoxijiage);
  1096. array.Add (m_List1.GetItemText (iItem, 3));
  1097. CString str;
  1098. str.Format ("%f", atof(m_taoxijiage)-GetPayed1());
  1099. ConvertToPrice(str);
  1100. array.Add (str);
  1101. }
  1102. else
  1103. {
  1104. array.Add (m_List1.GetItemText (iItem, 6));
  1105. array.Add ("1");
  1106. array.Add (GetNeedPay(m_List1.GetItemText (iItem, 6)));
  1107. array.Add (m_List1.GetItemText (iItem, 3));
  1108. CString str;
  1109. // str.Format ("%f", atof(GetNeedPay(m_List1.GetItemText (iItem, 6)))-atof(m_List1.GetItemText (iItem, 1)));
  1110. str.Format ("%f", atof(GetNeedPay(m_List1.GetItemText (iItem, 6)))-GetPayed(m_List1.GetItemText (iItem, 6)));
  1111. ConvertToPrice(str);
  1112. array.Add (str);
  1113. }
  1114. money+=atof(m_List1.GetItemText (iItem, 1));
  1115. }
  1116. while(array.GetSize ()<30)
  1117. array.Add ("");
  1118. g_pMainWnd->PrintReceipt3(m_strOrderNumber, &array, money);
  1119. #endif
  1120. }
  1121. CString TakeMoney3::GetNeedPay(CString name)
  1122. {
  1123. CString sItem;
  1124. for (int i = 0; i < m_List2.GetItemCount(); i++)
  1125. {
  1126. if (m_List2.GetItemText(i, 4) == name)
  1127. return m_List2.GetItemText(i, 1);
  1128. }
  1129. return "0";
  1130. }
  1131. float TakeMoney3::GetPayed(CString name)
  1132. {
  1133. float sum = 0;;
  1134. for (int i = 0; i < m_List1.GetItemCount(); i++)
  1135. {
  1136. if (m_List1.GetItemText(i, 6) == name)
  1137. sum += atof(m_List1.GetItemText(i, 1));
  1138. }
  1139. return sum;
  1140. }
  1141. float TakeMoney3::GetPayed1()
  1142. {
  1143. float fret = 0;
  1144. for (int i = 0; i < m_List1.GetItemCount(); i++)
  1145. {
  1146. if (m_List1.GetItemText(i, 5) == "预约收款" || m_List1.GetItemText(i, 5) == "预约补款")
  1147. fret += atof(m_List1.GetItemText(i, 1));
  1148. }
  1149. return fret;
  1150. }
  1151. void TakeMoney3::OnButton13() // 设置按钮;
  1152. {
  1153. SPLBDlg dlg;
  1154. dlg.m_mode = 6;
  1155. dlg.DoModal();
  1156. g_sendhead.bsql = 0;
  1157. g_sendhead.code[0] = 160;
  1158. g_sendhead.tabcount = 1;
  1159. g_pMainWnd->ProcessChatMessageRequest2(1);
  1160. if (g_bSendOK == 0)return;
  1161. CArray<CStringArray, CStringArray>expendtypearray;
  1162. DataToArray(&expendtypearray);
  1163. m_combobz.ResetContent();
  1164. for (int i = 0; i < expendtypearray.GetSize(); i++)
  1165. {
  1166. m_combobz.AddString(expendtypearray.ElementAt(i).ElementAt(0));
  1167. }
  1168. m_combobz.AddString("摄影二销");
  1169. #ifndef CHILD_VERSION
  1170. m_combobz.AddString("化妆二销");
  1171. #else
  1172. m_combobz.AddString("引导二销"); //"引导二销"
  1173. #endif
  1174. m_combobz.AddString("选片二销");
  1175. }
  1176. void TakeMoney3::OnButton24() // 更改按钮;
  1177. {
  1178. Login2 dlg;
  1179. dlg.m_mode = 3;
  1180. if (dlg.DoModal() != IDOK)return;
  1181. if (IsHasRightsnew2(49, dlg.m_rights) == 0)return;
  1182. ((CEdit*)GetDlgItem(IDC_EDIT2))->SetReadOnly(0);
  1183. }