TakeMoney3.cpp 38 KB

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