TakeMoney3.cpp 38 KB

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