TakeMoney3.cpp 38 KB

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