SearchTake5.cpp 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. // SearchTake5.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "SearchTake5.h"
  6. #include "TakeControlDlg9.h"
  7. #include "SearchFilter2.h"
  8. #include "InputDate.h"
  9. #ifdef _DEBUG
  10. #define new DEBUG_NEW
  11. #undef THIS_FILE
  12. static char THIS_FILE[] = __FILE__;
  13. #endif
  14. /////////////////////////////////////////////////////////////////////////////
  15. // SearchTake5 dialog
  16. SearchTake5::SearchTake5(CWnd* pParent /*=NULL*/)
  17. : CDialog(SearchTake5::IDD, pParent)
  18. {
  19. //{{AFX_DATA_INIT(SearchTake5)
  20. m_filter = _T("");
  21. m_radio1 = 1;
  22. //}}AFX_DATA_INIT
  23. }
  24. void SearchTake5::DoDataExchange(CDataExchange* pDX)
  25. {
  26. CDialog::DoDataExchange(pDX);
  27. //{{AFX_DATA_MAP(SearchTake5)
  28. DDX_Control(pDX, IDC_COMBO1, m_combo1);
  29. DDX_Control(pDX, IDC_LIST2, m_List1);
  30. DDX_CBString(pDX, IDC_COMBO1, m_filter);
  31. DDX_Radio(pDX, IDC_RADIO1, m_radio1);
  32. //}}AFX_DATA_MAP
  33. }
  34. BEGIN_MESSAGE_MAP(SearchTake5, CDialog)
  35. //{{AFX_MSG_MAP(SearchTake5)
  36. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  37. ON_BN_CLICKED(IDC_RADIO1, OnRadio1)
  38. ON_BN_CLICKED(IDC_RADIO2, OnRadio2)
  39. ON_BN_CLICKED(IDC_RADIO9, OnRadio9)
  40. ON_CBN_CLOSEUP(IDC_COMBO1, OnCloseupCombo1)
  41. ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
  42. ON_WM_TIMER()
  43. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  44. ON_BN_CLICKED(IDC_BTNSEARCHFILTER, OnBtnsearchfilter)
  45. ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  46. //}}AFX_MSG_MAP
  47. END_MESSAGE_MAP()
  48. /////////////////////////////////////////////////////////////////////////////
  49. // SearchTake5 message handlers
  50. extern BOOL CALLBACK EnumChildProc2(HWND hwnd,LPARAM lParam);
  51. extern float m_WidthScale2;
  52. extern float m_HeightScale2;
  53. BOOL SearchTake5::OnInitDialog()
  54. {
  55. CDialog::OnInitDialog();
  56. // TODO: Add extra initialization here
  57. CRect rc2;
  58. GetWindowRect(rc2);
  59. ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE);
  60. m_WidthScale2 = (float)g_rc.Width()/(float)rc2.Width(); // new/Old
  61. m_HeightScale2 = (float)g_rc.Height()/(float)rc2.Height();
  62. EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc2,0);
  63. m_combo1.GetWindowRect (rc2);
  64. ScreenToClient(rc2);
  65. rc2.bottom +=200;
  66. m_combo1.MoveWindow (rc2);
  67. if(g_bAllBranch==0)
  68. {
  69. m_nAdd=0;
  70. m_List1.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;男宾电话,100;女宾电话,100;婚庆内容,100;婚庆日期,100;时间,100;婚期,100;摄影师,100;化妆师,100;接单人,100;套系名称,100;套系价格,100" );
  71. m_List1.LoadColumnInfo (208);
  72. }
  73. else
  74. {
  75. m_nAdd=1;
  76. m_List1.SetHeadings("店名,100;订单号,100;男宾姓名,100;女宾姓名,100;男宾电话,100;女宾电话,100;婚庆内容,100;婚庆日期,100;时间,100;婚期,100;摄影师,100;化妆师,100;接单人,100;套系名称,100;套系价格,100" );
  77. m_List1.LoadColumnInfo (209);
  78. }
  79. GetData();
  80. int i = 0;
  81. for( i=0; i<m_List1array.GetSize (); i++)
  82. {
  83. if(::FindArray (&jdarray, m_List1array.ElementAt (i).ElementAt (5+m_nAdd))==-1)
  84. jdarray.Add (m_List1array.ElementAt (i).ElementAt (5+m_nAdd));
  85. }
  86. m_combo1.AddString ("");
  87. for( i=0; i<jdarray.GetSize (); i++)
  88. {
  89. m_combo1.AddString (jdarray.ElementAt (i));
  90. }
  91. return TRUE; // return TRUE unless you set the focus to a control
  92. // EXCEPTION: OCX Property Pages should return FALSE
  93. }
  94. void SearchTake5::OnButton1()
  95. {
  96. // TODO: Add your control notification handler code here
  97. UpdateData();
  98. m_filter.TrimLeft ();
  99. m_filter.TrimRight ();
  100. FillGrid();
  101. }
  102. void SearchTake5::FillGrid()
  103. {
  104. UpdateData();
  105. if(g_bSearchFilter)
  106. {
  107. m_List1.DeleteAllItems2 ();
  108. int ii=0;
  109. m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 );
  110. int count=0;
  111. {
  112. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  113. {
  114. if(g_filterdate1!="")
  115. {
  116. if(m_List1array.ElementAt (ii).ElementAt (5+m_nAdd)<g_filterdate1 || m_List1array.ElementAt (ii).ElementAt (5+m_nAdd)>g_filterdate2)
  117. continue;
  118. }
  119. if(g_filterdate3!="")
  120. {
  121. if(m_List1array.ElementAt (ii).ElementAt (6+m_nAdd)<g_filterdate3 || m_List1array.ElementAt (ii).ElementAt (6+m_nAdd)>g_filterdate4)
  122. continue;
  123. }
  124. if(g_filterdate5!="")
  125. {
  126. if(m_List1array.ElementAt (ii).ElementAt (7+m_nAdd)<g_filterdate5 || m_List1array.ElementAt (ii).ElementAt (7+m_nAdd)>g_filterdate6)
  127. continue;
  128. }
  129. if(g_waiter1!="")
  130. {
  131. if(m_List1array.ElementAt (ii).ElementAt (8+m_nAdd)!=g_waiter1)
  132. continue;
  133. }
  134. if(g_bAllBranch && g_filterbranch!="")
  135. {
  136. if(m_List1array.ElementAt (ii).ElementAt (0)!=g_filterbranch)
  137. continue;
  138. }
  139. if(1)
  140. {
  141. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  142. }
  143. }
  144. }
  145. m_List1.m_arLabels.SetSize(count, 1);
  146. ii=count;
  147. m_List1.m_LabelCount=ii;
  148. m_List1.SetItemCountEx (ii);
  149. CString str;
  150. str.Format ("单数:%d", ii);
  151. SetDlgItemText(IDC_STATIC2, str);
  152. }
  153. else
  154. {
  155. m_List1.DeleteAllItems2 ();
  156. int ii=0;
  157. m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 );
  158. int count=0;
  159. if(m_filter.IsEmpty ())
  160. {
  161. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  162. {
  163. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  164. }
  165. }
  166. else
  167. {
  168. int type=GetType(m_filter);
  169. if(type==1)//电话
  170. {
  171. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  172. {
  173. if( (m_List1array.ElementAt (ii).ElementAt (3+m_nAdd).Find (m_filter)!=-1 || \
  174. m_List1array.ElementAt (ii).ElementAt (4+m_nAdd).Find (m_filter)!=-1) )
  175. {
  176. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  177. }
  178. }
  179. }
  180. else if(type==2)//拼音
  181. {
  182. m_filter.MakeUpper ();
  183. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  184. {
  185. if( (m_List1array.ElementAt (ii).ElementAt (14+m_nAdd).Find (m_filter)!=-1 || \
  186. m_List1array.ElementAt (ii).ElementAt (15+m_nAdd).Find (m_filter)!=-1) )
  187. {
  188. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  189. }
  190. }
  191. }
  192. else
  193. {
  194. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  195. {
  196. if((m_List1array.ElementAt (ii).ElementAt (0).Find (m_filter)!=-1 ||\
  197. m_List1array.ElementAt (ii).ElementAt (1).Find (m_filter)!=-1 || \
  198. m_List1array.ElementAt (ii).ElementAt (2).Find (m_filter)!=-1 || \
  199. m_List1array.ElementAt (ii).ElementAt (3).Find (m_filter)!=-1 || \
  200. m_List1array.ElementAt (ii).ElementAt (4).Find (m_filter)!=-1 || \
  201. m_List1array.ElementAt (ii).ElementAt (5).Find (m_filter)!=-1 || \
  202. m_List1array.ElementAt (ii).ElementAt (6).Find (m_filter)!=-1 || \
  203. m_List1array.ElementAt (ii).ElementAt (7).Find (m_filter)!=-1 || \
  204. m_List1array.ElementAt (ii).ElementAt (8).Find (m_filter)!=-1 || \
  205. m_List1array.ElementAt (ii).ElementAt (9).Find (m_filter)!=-1 || \
  206. m_List1array.ElementAt (ii).ElementAt (10).Find (m_filter)!=-1|| \
  207. m_List1array.ElementAt (ii).ElementAt (11).Find (m_filter)!=-1|| \
  208. m_List1array.ElementAt (ii).ElementAt (12).Find (m_filter)!=-1|| \
  209. m_List1array.ElementAt (ii).ElementAt (13+m_nAdd).Find (m_filter)!=-1|| \
  210. m_List1array.ElementAt (ii).ElementAt (13).Find (m_filter)!=-1) )
  211. {
  212. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  213. }
  214. }
  215. }
  216. }
  217. m_List1.m_arLabels.SetSize(count, 1);
  218. ii=count;
  219. m_List1.m_LabelCount=ii;
  220. m_List1.SetItemCountEx (ii);
  221. CString str;
  222. str.Format ("单数:%d", ii);
  223. SetDlgItemText(IDC_STATIC2, str);
  224. }
  225. }
  226. void SearchTake5::OnRadio1()
  227. {
  228. // TODO: Add your control notification handler code here
  229. FillGrid();
  230. }
  231. void SearchTake5::OnRadio2()
  232. {
  233. // TODO: Add your control notification handler code here
  234. FillGrid();
  235. }
  236. void SearchTake5::OnRadio9()
  237. {
  238. // TODO: Add your control notification handler code here
  239. FillGrid();
  240. }
  241. void SearchTake5::OnCloseupCombo1()
  242. {
  243. // TODO: Add your control notification handler code here
  244. SetTimer(1, 100, NULL);
  245. }
  246. void SearchTake5::OnSelchangeCombo1()
  247. {
  248. // TODO: Add your control notification handler code here
  249. SetTimer(1, 100, NULL);
  250. }
  251. void SearchTake5::OnTimer(UINT nIDEvent)
  252. {
  253. // TODO: Add your message handler code here and/or call default
  254. KillTimer(nIDEvent);
  255. OnButton1();
  256. }
  257. void SearchTake5::OnButton2()
  258. {
  259. // TODO: Add your control notification handler code here
  260. POSITION pos;
  261. pos=m_List1.GetFirstSelectedItemPosition();
  262. if(pos==NULL)
  263. {
  264. AfxMessageBox("请先选中您要安排的客人!", MB_ICONINFORMATION);
  265. return;
  266. }
  267. int iItem;
  268. CStringArray idarray;
  269. CStringArray brancharray;
  270. while (pos)
  271. {
  272. iItem = m_List1.GetNextSelectedItem(pos);
  273. idarray.Add (m_List1.GetItemText (iItem, 0+m_nAdd));
  274. if(g_bAllBranch)
  275. brancharray.Add (m_List1.GetItemText (iItem, 0));
  276. }
  277. if(idarray.GetSize ()==1)
  278. {
  279. CString id=idarray.ElementAt (0);
  280. TakeControlDlg9 dlg;
  281. if(g_bAllBranch)
  282. dlg.m_branch=brancharray.ElementAt (0);
  283. dlg.id=id;
  284. dlg.m_bModify=1;
  285. dlg.DoModal ();
  286. }
  287. else
  288. {
  289. TakeControlDlg9 dlg;
  290. dlg.m_pIdArray=&idarray;
  291. dlg.m_pBranchArray=&brancharray;
  292. dlg.m_bModify=1;
  293. dlg.DoModal ();
  294. }
  295. if(g_bAllBranch)
  296. {
  297. if(AfxMessageBox("是否实时更新数据?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return;
  298. }
  299. GetData();
  300. }
  301. void SearchTake5::OnOK()
  302. {
  303. // TODO: Add extra validation here
  304. }
  305. BOOL SearchTake5::PreTranslateMessage(MSG* pMsg)
  306. {
  307. // TODO: Add your specialized code here and/or call the base class
  308. if(pMsg->message==WM_KEYDOWN)
  309. {
  310. switch (pMsg->wParam)
  311. {
  312. case VK_RETURN:
  313. OnButton1();
  314. return 1;
  315. break;
  316. }
  317. }
  318. return CDialog::PreTranslateMessage(pMsg);
  319. }
  320. void SearchTake5::HidePrice()
  321. {
  322. if(IsHasRights2new(31))return;
  323. for(int i=0; i< m_List1array.GetSize (); i++)
  324. {
  325. m_List1array.ElementAt (i).SetAt (16+m_nAdd, "***");
  326. m_List1array.ElementAt (i).SetAt (17+m_nAdd, "***");
  327. }
  328. }
  329. void SearchTake5::OnBtnsearchfilter()
  330. {
  331. // TODO: Add your control notification handler code here
  332. SearchFilter2 dlg;
  333. dlg.m_pArray=&jdarray;
  334. if(dlg.DoModal ()==IDOK)
  335. {
  336. FillGrid();
  337. }
  338. g_bSearchFilter=0;
  339. }
  340. void SearchTake5::OnButton3()
  341. {
  342. // TODO: Add your control notification handler code here
  343. POSITION pos;
  344. pos=m_List1.GetFirstSelectedItemPosition();
  345. if(pos==NULL)
  346. {
  347. AfxMessageBox("请选中多对客人!", MB_ICONINFORMATION);
  348. return;
  349. }
  350. int iItem;
  351. if(g_bAllBranch)
  352. {
  353. CStringArray idarray[100];
  354. CStringArray jdarray[100];
  355. CStringArray brancharray;
  356. int idcount=0;
  357. int branchpos;
  358. CString branch;
  359. while (pos)
  360. {
  361. iItem = m_List1.GetNextSelectedItem(pos);
  362. branchpos=::FindArray(&brancharray, m_List1.GetItemText (iItem, 0) );if(branchpos>=100)continue;
  363. if(branchpos==-1)
  364. {
  365. branchpos=brancharray.GetSize();
  366. brancharray.Add(m_List1.GetItemText (iItem, 0));
  367. }
  368. idarray[branchpos].Add (m_List1.GetItemText (iItem, 0+m_nAdd));
  369. jdarray[branchpos].Add (m_List1.GetItemText (iItem, 5+m_nAdd));
  370. idcount++;
  371. }
  372. if(idcount==1)
  373. {
  374. AfxMessageBox("请选中多对客人,或者按预约按钮!", MB_ICONINFORMATION);
  375. return;
  376. }
  377. else
  378. {
  379. InputDate dlg;
  380. dlg.m_mode=1;
  381. if(dlg.DoModal ()!=IDOK)return;
  382. for(int aa=0; aa<brancharray.GetSize(); aa++)
  383. {
  384. branch=brancharray.ElementAt(aa);
  385. CString sql;
  386. sql.Format ("update dindansp set [hqdate]='%s',hqtime='' where ", dlg.m_date);
  387. CString filter,temp;
  388. for(int i=0; i<idarray[aa].GetSize (); i++)
  389. {
  390. if(i==0)
  391. temp="[id]='"+idarray[aa].ElementAt (i)+"' and [name]='"+jdarray[aa].ElementAt (i)+"'";
  392. else
  393. temp=" or [id]='"+idarray[aa].ElementAt (i)+"' and [name]='"+jdarray[aa].ElementAt (i)+"'";
  394. filter+=temp;
  395. }
  396. sql+=filter;
  397. g_sendhead.bsql=1;
  398. g_branchip=GetIP(branch);
  399. g_pMainWnd->OnDisconnect();
  400. g_branchname=branch;
  401. g_bBranchModify=1;
  402. g_pMainWnd->ProcessChatMessageRequest2(sql);
  403. g_pMainWnd->OnDisconnect();g_bBranchModify=0;g_branchip=g_branchname="";
  404. if(g_bSendOK==0)
  405. {
  406. sql.Format("保存分店: %s 失败!", branch);
  407. AfxMessageBox(sql, MB_ICONINFORMATION);
  408. continue;
  409. }
  410. }
  411. }
  412. if(AfxMessageBox("是否实时更新数据?", MB_YESNO|MB_ICONINFORMATION)==IDYES)GetData();
  413. }
  414. else
  415. {
  416. CStringArray idarray;
  417. CStringArray jdarray;
  418. while (pos)
  419. {
  420. iItem = m_List1.GetNextSelectedItem(pos);
  421. idarray.Add (m_List1.GetItemText (iItem, 0+m_nAdd));
  422. jdarray.Add (m_List1.GetItemText (iItem, 5+m_nAdd));
  423. }
  424. if(idarray.GetSize ()==1)
  425. {
  426. AfxMessageBox("请选中多对客人,或者按预约按钮!", MB_ICONINFORMATION);
  427. return;
  428. }
  429. else
  430. {
  431. InputDate dlg;
  432. dlg.m_mode=1;
  433. if(dlg.DoModal ()!=IDOK)return;
  434. CString sql;
  435. sql.Format ("update dindansp set [hqdate]='%s',hqtime='' where ", dlg.m_date);
  436. CString filter,temp;
  437. for(int i=0; i<idarray.GetSize (); i++)
  438. {
  439. if(i==0)
  440. temp="[id]='"+idarray.ElementAt (i)+"' and [name]='"+jdarray.ElementAt (i)+"'";
  441. else
  442. temp=" or [id]='"+idarray.ElementAt (i)+"' and [name]='"+jdarray.ElementAt (i)+"'";
  443. filter+=temp;
  444. }
  445. sql+=filter;
  446. g_sendhead.bsql=1;
  447. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  448. AfxMessageBox("保存成功!", MB_ICONINFORMATION);
  449. }
  450. GetData();
  451. }
  452. }
  453. void SearchTake5::GetData()
  454. {
  455. CString sql;
  456. sql.Format ("kind='2'");
  457. if(g_bAllBranch==0)
  458. {
  459. g_sendhead.code[0]=139;
  460. g_sendhead.tabcount=1;
  461. g_sendhead.bsql=0;
  462. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  463. DataToArray(&m_List1array);
  464. HidePrice();
  465. FillGrid();
  466. return;
  467. }
  468. //////////////数据汇总
  469. m_List1array.RemoveAll ();
  470. CStringArray failbrancharray;
  471. CString branch;
  472. int i =0;
  473. for(i=-1; i<g_brancharray.GetSize ()-1; i++)
  474. {
  475. if(i!=-1)
  476. {
  477. branch=g_brancharray.ElementAt (i).ElementAt (0);
  478. g_branchip=g_brancharray.ElementAt (i).ElementAt (1);
  479. g_pMainWnd->OnDisconnect();
  480. g_branchname=branch;
  481. g_bBranchModify=1;
  482. }
  483. else
  484. branch=g_brancharray.ElementAt (g_brancharray.GetSize ()-1).ElementAt (0);
  485. g_sendhead.bsql=0;
  486. g_sendhead.code[0]=139;
  487. g_sendhead.tabcount=1;
  488. g_pMainWnd->ProcessChatMessageRequest2(sql);
  489. if(g_bSendOK==0)
  490. {
  491. failbrancharray.Add (branch);
  492. continue;
  493. }
  494. CArray<CStringArray, CStringArray>List1array;
  495. DataToArray(&List1array);
  496. int size=m_List1array.GetSize ();
  497. for(int j=0; j<List1array.GetSize (); j++)
  498. {
  499. size++;
  500. m_List1array.SetSize(size , 1 );
  501. size--;
  502. m_List1array.ElementAt (size).Copy (List1array.ElementAt (j));
  503. m_List1array.ElementAt (size).InsertAt (0, branch);
  504. size++;
  505. }
  506. }
  507. for(i=0; i<failbrancharray.GetSize (); i++)
  508. {
  509. // AfxMessageBox("连接"+failbrancharray.ElementAt(i)+"服务器失败!", MB_ICONINFORMATION);
  510. }
  511. g_pMainWnd->OnDisconnect();
  512. g_bBranchModify=0;g_branchip=g_branchname="";
  513. HidePrice();
  514. FillGrid();
  515. }