HireDress2.cpp 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437
  1. // HireDress2.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "HireDress2.h"
  6. #include "ShowPic22.h"
  7. #include "ShowPhoto.h"
  8. #include "ShowEarlyWarning.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // HireDress2 dialog IDC_COMBOname
  16. HireDress2::HireDress2(CWnd* pParent /*=NULL*/)
  17. : CDialog(HireDress2::IDD, pParent)
  18. {
  19. //{{AFX_DATA_INIT(HireDress2)
  20. m_id = _T("");
  21. m_inputdate = g_date;
  22. m_clerk = g_user.name ;
  23. m_balance = _T("");
  24. m_count = _T("");
  25. m_no = _T("");
  26. m_remark = _T("");
  27. m_bAdd=1;
  28. m_pImg=NULL;
  29. m_date1 = _T("");
  30. m_date2 = _T("");
  31. //}}AFX_DATA_INIT
  32. }
  33. void HireDress2::DoDataExchange(CDataExchange* pDX)
  34. {
  35. CDialog::DoDataExchange(pDX);
  36. //{{AFX_DATA_MAP(HireDress2)
  37. DDX_Control(pDX, IDC_EDITdate2, m_datectrl5);
  38. DDX_Control(pDX, IDC_EDITdate1, m_datectrl4);
  39. DDX_Control(pDX, IDC_EDITcount, m_editctrl3);
  40. DDX_Control(pDX, IDC_LIST4, m_List1);
  41. DDX_Control(pDX, IDC_COMBOname, m_comboname);
  42. DDX_Text(pDX, IDC_EDITid, m_id);
  43. DDX_Text(pDX, IDC_EDITinputdate, m_inputdate);
  44. DDX_Text(pDX, IDC_EDITclerk, m_clerk);
  45. DDX_Text(pDX, IDC_EDITbalance, m_balance);
  46. DDX_Text(pDX, IDC_EDITcount, m_count);
  47. DDX_Text(pDX, IDC_EDITno, m_no);
  48. DDX_Text(pDX, IDC_EDITremark, m_remark);
  49. DDV_MaxChars(pDX, m_remark, 1000);
  50. DDX_Text(pDX, IDC_EDITdate1, m_date1);
  51. DDX_Text(pDX, IDC_EDITdate2, m_date2);
  52. //}}AFX_DATA_MAP
  53. }
  54. BEGIN_MESSAGE_MAP(HireDress2, CDialog)
  55. //{{AFX_MSG_MAP(HireDress2)
  56. ON_CBN_SELCHANGE(IDC_COMBOname, OnSelchangeCOMBOname)
  57. ON_WM_DESTROY()
  58. ON_WM_PAINT()
  59. ON_BN_CLICKED(IDC_BUTTON1, OnAddDress)
  60. ON_BN_CLICKED(IDC_BUTTON2, OnDelDress)
  61. ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  62. ON_BN_CLICKED(IDC_STATIC4, OnStatic4)
  63. //}}AFX_MSG_MAP
  64. END_MESSAGE_MAP()
  65. /////////////////////////////////////////////////////////////////////////////
  66. // HireDress2 message handlers
  67. BOOL HireDress2::OnInitDialog()
  68. {
  69. CDialog::OnInitDialog();
  70. int i = 0;
  71. if(m_bAdd)
  72. {
  73. CString sql="select max(id) as cot from dresshire where [date]='"+g_date+"'";
  74. g_sendhead.bsql=1;
  75. g_pMainWnd->ProcessChatMessageRequest2(sql);
  76. if(g_bSendOK==0)
  77. {
  78. CDialog::OnCancel ();
  79. return false;
  80. }
  81. CString date=g_date;
  82. date.Replace ("-", "");
  83. m_id.Format ("%s-(lf)%03d", date, g_ncount+1);
  84. g_sendhead.bsql=0;
  85. g_sendhead.code[0]=72;
  86. g_sendhead.tabcount=1;
  87. g_pMainWnd->ProcessChatMessageRequest2(0);
  88. if(g_bSendOK==0)
  89. {
  90. CDialog::OnCancel ();
  91. return false;
  92. }
  93. DataToArray(&m_List1array);
  94. for( i=0; i<m_List1array.GetSize (); i++)
  95. {
  96. if(0!=atoi(m_List1array.ElementAt (i).ElementAt (12)))continue;
  97. m_comboname.AddString (m_List1array.ElementAt (i).ElementAt (2));
  98. }
  99. }
  100. else
  101. {
  102. SetWindowText("送洗单修改");
  103. CString filter=";id='"+m_id+"';id='"+m_id+"'";
  104. g_sendhead.bsql=0;
  105. g_sendhead.code[0]=72;
  106. g_sendhead.code[1]=73;
  107. g_sendhead.code[2]=74;
  108. g_sendhead.tabcount=3;
  109. g_pMainWnd->ProcessChatMessageRequest2(filter);
  110. if(g_bSendOK==0)
  111. {
  112. CDialog::OnCancel ();
  113. return false;
  114. }
  115. CArray<CStringArray, CStringArray>dresshirearray;
  116. CArray<CStringArray, CStringArray>dresshiredataarray;
  117. DataToArray(&m_List1array, &dresshirearray, &dresshiredataarray);
  118. if(dresshirearray.GetSize ())
  119. {
  120. m_remark = dresshirearray.ElementAt (0).ElementAt (10);
  121. m_inputdate = dresshirearray.ElementAt (0).ElementAt (6);
  122. m_date1 = dresshirearray.ElementAt (0).ElementAt (7);
  123. m_date2 = dresshirearray.ElementAt (0).ElementAt (8);
  124. m_clerk = g_user.name ;
  125. }
  126. for( i=0; i<dresshiredataarray.GetSize (); i++)
  127. {
  128. m_needgetbalancearray.Add (dresshiredataarray.ElementAt (i).ElementAt (1));
  129. m_seldressarray.Add (dresshiredataarray.ElementAt (i).ElementAt (1));
  130. m_seldressarray.Add (dresshiredataarray.ElementAt (i).ElementAt (2));
  131. m_seldressarray.Add (dresshiredataarray.ElementAt (i).ElementAt (3));
  132. m_seldressarray.Add (m_id);
  133. m_seldressarray.Add (dresshiredataarray.ElementAt (i).ElementAt (4));
  134. m_seldressarray.Add (dresshiredataarray.ElementAt (i).ElementAt (7));
  135. CString str;
  136. str=dresshiredataarray.ElementAt (i).ElementAt (2);
  137. str+="\r\n数量:";
  138. str+=dresshiredataarray.ElementAt (i).ElementAt (3);
  139. if(m_List1.GetCount()%2)
  140. m_List1.AddEntry( str , g_gridcol1, m_List1.GetCount());
  141. else
  142. m_List1.AddEntry( str , g_gridcol2, m_List1.GetCount());
  143. }
  144. for( i=0; i<m_List1array.GetSize (); i++)
  145. {
  146. if(0!=atoi(m_List1array.ElementAt (i).ElementAt (12)))continue;
  147. m_comboname.AddString (m_List1array.ElementAt (i).ElementAt (2));
  148. }
  149. }
  150. CenterWindow();
  151. UpdateData(false);
  152. return TRUE; // return TRUE unless you set the focus to a control
  153. // EXCEPTION: OCX Property Pages should return FALSE
  154. }
  155. void HireDress2::OnOK()
  156. {
  157. // TODO: Add extra validation here
  158. UpdateData();
  159. if(!CheckDateOK(m_date1))return;
  160. if(!CheckDateOK(m_date2))return;
  161. if(m_date1.IsEmpty () || m_date2.IsEmpty ())
  162. {
  163. AfxMessageBox("资料不全, 打*号的项目为必填项目!");
  164. return;
  165. }
  166. if( m_seldressarray.GetSize()==0 )
  167. {
  168. AfxMessageBox("礼服资料未添加!");
  169. return;
  170. }
  171. CString sql;
  172. CString hireorsale="洗";
  173. if(m_bAdd)
  174. {
  175. sql.Format ("insert into [dresshire]([id],[date],[clerk],[hireorsale],[remark],[date1],[date2])values('%s','%s','%s','%s','%s','%s','%s')",m_id,m_inputdate,m_clerk,hireorsale,m_remark,m_date1,m_date2);
  176. }
  177. else
  178. {
  179. sql="update [dresshire] set [clerk]='"+m_clerk+"',[remark]='"+m_remark+"',[date1]='"+m_date1+"',[date2]='"+m_date2+"' where [id]='"+m_id+"'";
  180. }
  181. g_sendhead.bsql=1;
  182. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  183. CStringArray m_seldressarraybak;
  184. m_seldressarraybak.Copy (m_seldressarray);
  185. int count=m_seldressarray.GetSize ();
  186. CString str;
  187. str.Format ("%d", count);
  188. for(int i=0; i<m_needgetbalancearray.GetSize (); i++)
  189. {
  190. m_seldressarray.Add (m_needgetbalancearray.ElementAt (i));
  191. }
  192. m_seldressarray.Add (str);
  193. m_seldressarray.Add (m_date1);
  194. m_seldressarray.Add (m_date2);
  195. CMemFile memfile;
  196. CArchive ar(&memfile, CArchive::store);
  197. m_seldressarray.Serialize (ar);
  198. ar.Close();
  199. int length=memfile.GetLength ();
  200. BYTE *pData = memfile.Detach();
  201. g_nSendCode=20;
  202. g_pMainWnd->ProcessChatMessageRequest2(pData, length);
  203. g_nSendCode=0;
  204. delete []pData;
  205. m_seldressarray.RemoveAll ();
  206. m_seldressarray.Copy (m_seldressarraybak);
  207. if(g_bSendOK==0)return;
  208. AfxMessageBox("保存成功!", MB_ICONINFORMATION);
  209. CDialog::OnOK();
  210. }
  211. void HireDress2::OnSelchangeCOMBOname()
  212. {
  213. // TODO: Add your control notification handler code here
  214. int pos=m_comboname.GetCurSel ();
  215. if(pos==-1)return;
  216. UpdateData();
  217. CString name;
  218. m_comboname.GetLBText (pos, name);
  219. for(int i=0; i<m_List1array.GetSize (); i++)
  220. {
  221. if(name==m_List1array.ElementAt (i).ElementAt (2))
  222. {
  223. m_no=m_List1array.ElementAt (i).ElementAt (1);
  224. m_balance=m_List1array.ElementAt (i).ElementAt (4);
  225. m_sellcot=m_List1array.ElementAt (i).ElementAt (6);
  226. CString savepath=g_path5+"\\";
  227. if(m_pImg)delete m_pImg;m_pImg=NULL;
  228. m_picpath="";
  229. if(PathFileExists( savepath+""+m_no+".jpg" ) )
  230. {
  231. ::LoadImageFromBuf (&m_pImg, savepath+""+m_no+".jpg");
  232. m_picpath=savepath+m_no+".jpg";
  233. }
  234. CRect rc;
  235. GetDlgItem(IDC_STATIC4)->GetWindowRect(rc);
  236. ScreenToClient(rc);
  237. InvalidateRect(rc);
  238. UpdateData(false);
  239. }
  240. }
  241. }
  242. void HireDress2::OnDestroy()
  243. {
  244. // TODO: Add your message handler code here
  245. if(m_pImg)delete m_pImg;m_pImg=NULL;
  246. CDialog::OnDestroy();
  247. }
  248. void HireDress2::OnPaint()
  249. {
  250. CPaintDC dc(this); // device context for painting
  251. // TODO: Add your message handler code here
  252. if(m_pImg)
  253. {
  254. CRect rc;
  255. GetDlgItem(IDC_STATIC4)->GetWindowRect(rc);
  256. ScreenToClient(rc);
  257. RectFitDes(m_pImg->GetWidth(), m_pImg->GetHeight(), rc);
  258. Graphics dcgraph(dc.GetSafeHdc());
  259. Rect destinationRect(rc.left , rc.top , rc.Width (), rc.Height ());
  260. dcgraph.DrawImage(m_pImg, destinationRect, 0,0,m_pImg->GetWidth(), m_pImg->GetHeight(),UnitPixel);
  261. }
  262. // Do not call CDialog::OnPaint() for painting messages
  263. }
  264. void HireDress2::OnAddDress()
  265. {
  266. // TODO: Add your control notification handler code here
  267. UpdateData();
  268. int pos=m_comboname.GetCurSel ();
  269. if(pos==-1)return;
  270. CString name;
  271. m_comboname.GetLBText (pos, name);
  272. m_count.TrimLeft ();m_count.TrimRight ();
  273. if(atoi(m_count)<1)
  274. {
  275. AfxMessageBox("数量不能为空!");
  276. return;
  277. }
  278. if(atoi(m_count)>atoi(m_balance))
  279. {
  280. // AfxMessageBox("库存不足!");
  281. // return;
  282. }
  283. for(int i=0; i<m_seldressarray.GetSize (); i+=6)
  284. {
  285. if(name==m_seldressarray.ElementAt (i+1))
  286. {
  287. AfxMessageBox("已有此礼服的记录!");
  288. return;
  289. }
  290. }
  291. if(CheckEarlyWarning())
  292. { if(AfxMessageBox("此日期礼服可能未回,是否继续开送洗单?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return;
  293. }
  294. m_needgetbalancearray.Add (m_no);
  295. m_seldressarray.Add (m_no);
  296. m_seldressarray.Add (name);
  297. m_seldressarray.Add (m_count);
  298. m_seldressarray.Add (m_id);
  299. m_seldressarray.Add ("");
  300. m_seldressarray.Add ("洗");
  301. CString str;
  302. str=name;
  303. str+="\r\n数量:";
  304. str+=m_count;
  305. if(m_List1.GetCount()%2)
  306. m_List1.AddEntry( str , g_gridcol1, m_List1.GetCount());
  307. else
  308. m_List1.AddEntry( str , g_gridcol2, m_List1.GetCount());
  309. }
  310. void HireDress2::OnDelDress()
  311. {
  312. // TODO: Add your control notification handler code here
  313. int pos=m_List1.GetCurSel ();
  314. if(pos==-1)
  315. {
  316. AfxMessageBox("请先选中您要删除的礼服!");
  317. return;
  318. }
  319. m_List1.DeleteString (pos);
  320. pos*=6;
  321. if(m_bAdd==0)
  322. m_needgetbalancearray.Add (m_seldressarray.ElementAt (pos));
  323. m_seldressarray.RemoveAt(pos+5);
  324. m_seldressarray.RemoveAt(pos+4);
  325. m_seldressarray.RemoveAt(pos+3);
  326. m_seldressarray.RemoveAt(pos+2);
  327. m_seldressarray.RemoveAt(pos+1);
  328. m_seldressarray.RemoveAt(pos);
  329. }
  330. void HireDress2::OnButton3()
  331. {
  332. // TODO: Add your control notification handler code here
  333. UpdateData();
  334. if(!CheckDateOK(m_date1))return;
  335. if(m_date1.IsEmpty () || m_no.IsEmpty () || m_count.IsEmpty ())
  336. {
  337. AfxMessageBox("取件日期和编号和数量为必填项目!");
  338. return;
  339. }
  340. int pos=m_comboname.GetCurSel ();
  341. if(pos==-1)return;
  342. UpdateData();
  343. CString name;
  344. m_comboname.GetLBText (pos, name);
  345. ShowEarlyWarning dlg;
  346. dlg.m_no=m_no;
  347. dlg.m_name=name;
  348. dlg.m_cot1=m_balance;
  349. dlg.m_cot2=m_sellcot;
  350. dlg.m_cot3=m_count;
  351. dlg.m_date1=m_date1;
  352. dlg.DoModal();
  353. }
  354. BOOL HireDress2::CheckEarlyWarning()
  355. {
  356. if(!CheckDateOK(m_date1))return 1;
  357. if(m_date1.IsEmpty () || m_no.IsEmpty () || m_count.IsEmpty ())
  358. {
  359. AfxMessageBox("取件日期和编号和数量为必填项目!");
  360. return 1;
  361. }
  362. int pos=m_comboname.GetCurSel ();
  363. if(pos==-1)return 1;
  364. CString name;
  365. m_comboname.GetLBText (pos, name);
  366. ShowEarlyWarning dlg;
  367. dlg.m_mode=1;
  368. dlg.m_no=m_no;
  369. dlg.m_name=name;
  370. dlg.m_cot1=m_balance;
  371. dlg.m_cot2=m_sellcot;
  372. dlg.m_cot3=m_count;
  373. dlg.m_date1=m_date1;
  374. dlg.DoModal();
  375. return dlg.m_nRet;
  376. }
  377. void HireDress2::OnStatic4()
  378. {
  379. // TODO: Add your control notification handler code here
  380. if(m_pImg)
  381. {
  382. ShowPhoto dlg;
  383. dlg.m_pImg=m_pImg;
  384. dlg.DoModal();
  385. }
  386. }