TakeMoney3.cpp 38 KB

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