ShowMemberBlue.cpp 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501
  1. // ShowMemberBlue.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "ShowMemberBlue.h"
  6. #include "MyMdi.H"
  7. #include "AddMember.h"
  8. #include "ShowMemberReg.h"
  9. #include "InputCard2Dlg.h"
  10. #include "ShowCard2Reg.h"
  11. #include "InputCard2PointBlue.h"
  12. #include "UsePointBlue.h"
  13. #include "SendMsgDlg.h"
  14. #ifdef _DEBUG
  15. #define new DEBUG_NEW
  16. #undef THIS_FILE
  17. static char THIS_FILE[] = __FILE__;
  18. #endif
  19. #pragma comment(lib, "Shlwapi.lib")
  20. /////////////////////////////////////////////////////////////////////////////
  21. // ShowMemberBlue
  22. IMPLEMENT_DYNCREATE(ShowMemberBlue, MyFormView)
  23. ShowMemberBlue::ShowMemberBlue()
  24. : MyFormView(ShowMemberBlue::IDD)
  25. {
  26. //{{AFX_DATA_INIT(ShowMemberBlue)
  27. m_filter = _T("");
  28. //}}AFX_DATA_INIT
  29. }
  30. ShowMemberBlue::~ShowMemberBlue()
  31. {
  32. }
  33. void ShowMemberBlue::DoDataExchange(CDataExchange* pDX)
  34. {
  35. MyFormView::DoDataExchange(pDX);
  36. //{{AFX_DATA_MAP(ShowMemberBlue)
  37. DDX_Control(pDX, IDC_LIST2, m_List1);
  38. DDX_Control(pDX, IDC_STATIC1, m_static1);
  39. DDX_Text(pDX, IDC_EDIT4, m_filter);
  40. //}}AFX_DATA_MAP
  41. }
  42. BEGIN_MESSAGE_MAP(ShowMemberBlue, MyFormView)
  43. //{{AFX_MSG_MAP(ShowMemberBlue)
  44. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  45. ON_BN_CLICKED(IDC_BUTTON1, OnButton1)
  46. ON_WM_TIMER()
  47. ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
  48. ON_NOTIFY(NM_DBLCLK, IDC_LIST2, OnDblclkList2)
  49. ON_BN_CLICKED(IDC_BUTTON3, OnButton3)
  50. ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
  51. ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
  52. ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
  53. ON_BN_CLICKED(IDC_BUTTON10, OnButton10)
  54. ON_BN_CLICKED(IDC_BUTTON11, OnButton11)
  55. //}}AFX_MSG_MAP
  56. END_MESSAGE_MAP()
  57. /////////////////////////////////////////////////////////////////////////////
  58. // ShowMemberBlue diagnostics
  59. #ifdef _DEBUG
  60. void ShowMemberBlue::AssertValid() const
  61. {
  62. MyFormView::AssertValid();
  63. }
  64. void ShowMemberBlue::Dump(CDumpContext& dc) const
  65. {
  66. MyFormView::Dump(dc);
  67. }
  68. #endif //_DEBUG
  69. /////////////////////////////////////////////////////////////////////////////
  70. // ShowMemberBlue message handlers
  71. void ShowMemberBlue::OnInitialUpdate()
  72. {
  73. MyFormView::OnInitialUpdate();
  74. // TODO: Add your specialized code here and/or call the base class
  75. CMyMdi Mdi;
  76. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  77. GetDlgItem(IDC_BUTTON5)->EnableWindow(IsHasRights2new(49));
  78. // Here we create the outbar control using the splitter as its parent
  79. // and setting its id to the first pane.
  80. CRect rc2;
  81. GetWindowRect(rc2);
  82. ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE);
  83. EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0);
  84. int idarray[]={IDC_BUTTON2,IDC_BUTTON5,IDC_BUTTON10,IDC_BUTTON11,IDC_BUTTON6,IDC_BUTTON4,IDC_BUTTON3,IDC_BUTclose};
  85. int idcount=8;
  86. int btnwid;
  87. CRect prerc;
  88. for(int a=idcount-2; a>=0; a--)
  89. {
  90. GetDlgItem(idarray[a+1])->GetWindowRect (prerc);
  91. ScreenToClient(prerc);
  92. GetDlgItem(idarray[a])->GetWindowRect (rc2);
  93. ScreenToClient(rc2);
  94. btnwid=rc2.Width ();
  95. rc2.right =prerc.left ;
  96. rc2.left =rc2.right -btnwid;
  97. GetDlgItem(idarray[a])->MoveWindow (rc2);
  98. }
  99. m_static1.SetFont (&g_titlefont);
  100. m_List1.SetHeadings("id,0;会员卡卡号,100;姓名,100;性别,100;电话,100;QQ,100;地址,100;职业,100;生日,100;套系金额,100;可返金额,100;已返现金,100;余额,100;办卡日期,100" );
  101. m_List1.LoadColumnInfo (168);
  102. g_sendhead.bsql=0;
  103. g_sendhead.code[0]=130;
  104. g_sendhead.tabcount=1;
  105. g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)return;
  106. DataToArray(&m_List1array);
  107. HidePrice();
  108. FillGrid();
  109. }
  110. void ShowMemberBlue::FillGrid()
  111. {
  112. m_List1.DeleteAllItems2 ();
  113. int ii=0;
  114. m_List1.m_arLabels.SetSize( m_List1array.GetSize (), 1 );
  115. int count=0;
  116. if(m_filter.IsEmpty ())
  117. {
  118. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  119. {
  120. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  121. }
  122. }
  123. else
  124. {
  125. int type=GetType(m_filter);
  126. if(type==2)//拼音
  127. {
  128. m_filter.MakeUpper ();
  129. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  130. {
  131. if(m_List1array.ElementAt (ii).ElementAt (14).Find (m_filter)!=-1)
  132. {
  133. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  134. }
  135. }
  136. }
  137. else
  138. {
  139. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  140. {
  141. if(m_List1array.ElementAt (ii).ElementAt (1).Find (m_filter)!=-1 ||\
  142. m_List1array.ElementAt (ii).ElementAt (2).Find (m_filter)!=-1 || \
  143. m_List1array.ElementAt (ii).ElementAt (3).Find (m_filter)!=-1 || \
  144. m_List1array.ElementAt (ii).ElementAt (4).Find (m_filter)!=-1|| \
  145. m_List1array.ElementAt (ii).ElementAt (5).Find (m_filter)!=-1 || \
  146. m_List1array.ElementAt (ii).ElementAt (6).Find (m_filter)!=-1 || \
  147. m_List1array.ElementAt (ii).ElementAt (7).Find (m_filter)!=-1 || \
  148. m_List1array.ElementAt (ii).ElementAt (8).Find (m_filter)!=-1 || \
  149. m_List1array.ElementAt (ii).ElementAt (9).Find (m_filter)!=-1 || \
  150. m_List1array.ElementAt (ii).ElementAt (10).Find (m_filter)!=-1 )
  151. {
  152. m_List1.m_arLabels.ElementAt (count++).Copy (m_List1array.ElementAt (ii));
  153. }
  154. }
  155. }
  156. }
  157. m_List1.m_arLabels.SetSize(count, 1);
  158. ii=count;
  159. m_List1.m_LabelCount=ii;
  160. m_List1.SetItemCountEx (ii);
  161. CString str;
  162. str.Format ("客人:%d", ii);
  163. SetDlgItemText(IDC_STATIC2, str);
  164. CRect rc;
  165. GetDlgItem(IDC_STATIC2)->GetWindowRect (rc);
  166. ScreenToClient(rc);
  167. InvalidateRect(rc);
  168. }
  169. void ShowMemberBlue::OnBUTclose()
  170. {
  171. // TODO: Add your control notification handler code here
  172. GetParent()->SendMessage(WM_CLOSE);
  173. }
  174. void ShowMemberBlue::OnTimer(UINT nIDEvent)
  175. {
  176. // TODO: Add your message handler code here and/or call default
  177. KillTimer(nIDEvent);
  178. OnButton1();
  179. }
  180. BOOL ShowMemberBlue::PreTranslateMessage(MSG* pMsg)
  181. {
  182. // TODO: Add your specialized code here and/or call the base class
  183. try
  184. {
  185. if(pMsg->message==WM_KEYDOWN)
  186. {
  187. switch (pMsg->wParam)
  188. {
  189. case VK_RETURN:
  190. OnButton1();
  191. return 1;
  192. case 0x43: // copy
  193. if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) )
  194. {
  195. GetFocus()->SendMessage(WM_COPY);
  196. return TRUE;
  197. }
  198. break;
  199. case 0x56: //Ctrl + V:
  200. if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) )
  201. {
  202. GetFocus()->SendMessage(WM_PASTE);
  203. return TRUE;
  204. }
  205. break;
  206. case 0x58: // cut
  207. if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) )
  208. {
  209. GetFocus()->SendMessage(WM_CUT);
  210. return TRUE;
  211. }
  212. break;
  213. case 0x5A: //undo
  214. case 0x59: //redo
  215. if ( ( GetKeyState( VK_CONTROL ) & 0x80 ) )
  216. {
  217. GetFocus()->SendMessage(WM_UNDO);
  218. return TRUE;
  219. }
  220. break;
  221. }
  222. }
  223. return MyFormView::PreTranslateMessage(pMsg);
  224. }
  225. catch(...)
  226. {
  227. }
  228. }
  229. void ShowMemberBlue::OnButton1()
  230. {
  231. // TODO: Add your control notification handler code here
  232. UpdateData();
  233. m_filter.TrimLeft ();
  234. m_filter.TrimRight ();
  235. FillGrid();
  236. }
  237. void ShowMemberBlue::OnButton2() //加会员
  238. {
  239. // TODO: Add your control notification handler code here
  240. AddMember dlg;
  241. dlg.m_mode=1;
  242. if(dlg.DoModal ()==IDOK)
  243. {
  244. g_sendhead.bsql=0;
  245. g_sendhead.code[0]=130;
  246. g_sendhead.tabcount=1;
  247. g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)return;
  248. DataToArray(&m_List1array);HidePrice();
  249. OnButton1();
  250. }
  251. }
  252. void ShowMemberBlue::OnDblclkList2(NMHDR* pNMHDR, LRESULT* pResult)
  253. {
  254. // TODO: Add your control notification handler code here
  255. POSITION pos;
  256. pos=m_List1.GetFirstSelectedItemPosition();
  257. if(pos==NULL)
  258. {
  259. return;
  260. }
  261. int iItem=m_List1.GetNextSelectedItem(pos);
  262. CString memberno=m_List1.GetItemText (iItem, 1);
  263. AddMember dlg;
  264. dlg.m_memberno =memberno;
  265. dlg.m_bAdd=0;
  266. dlg.m_mode=1;
  267. if(dlg.DoModal ()==IDOK)
  268. {
  269. g_sendhead.bsql=0;
  270. g_sendhead.code[0]=130;
  271. g_sendhead.tabcount=1;
  272. g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)return;
  273. DataToArray(&m_List1array);HidePrice();
  274. OnButton1();
  275. }
  276. *pResult = 0;
  277. }
  278. void ShowMemberBlue::OnButton3()
  279. {
  280. // TODO: Add your control notification handler code here
  281. POSITION pos;
  282. pos=m_List1.GetFirstSelectedItemPosition();
  283. if(pos==NULL)
  284. {
  285. AfxMessageBox("请先选中您要发送短信的会员!", MB_ICONINFORMATION);
  286. return;
  287. }
  288. int iItem;
  289. CStringArray array;
  290. while (pos)
  291. {
  292. iItem = m_List1.GetNextSelectedItem(pos);
  293. if(!m_List1.GetItemText (iItem, 4).IsEmpty ())
  294. array.Add (m_List1.GetItemText (iItem, 4));
  295. }
  296. SendMsgDlg dlg;
  297. dlg.m_mode=1;
  298. dlg.m_pArray=&array;
  299. dlg.DoModal ();
  300. }
  301. void ShowMemberBlue::OnButton4()
  302. {
  303. // TODO: Add your control notification handler code here
  304. POSITION pos;
  305. pos=m_List1.GetFirstSelectedItemPosition();
  306. if(pos==NULL)
  307. {
  308. AfxMessageBox("请先选中要取现的会员!");
  309. return;
  310. }
  311. int iItem=m_List1.GetNextSelectedItem(pos);
  312. CString m_memberno=m_List1.GetItemText (iItem, 1);
  313. CString m_name=m_List1.GetItemText (iItem, 2);
  314. UsePointBlue dlg;
  315. dlg.m_memberno=m_memberno;
  316. dlg.m_name=m_name;
  317. dlg.m_point =m_List1.GetItemText (iItem,12);
  318. if(dlg.DoModal ()!=IDOK)return;
  319. g_sendhead.bsql=0;
  320. g_sendhead.code[0]=130;
  321. g_sendhead.tabcount=1;
  322. g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)return;
  323. DataToArray(&m_List1array);HidePrice();
  324. FillGrid();
  325. }
  326. void ShowMemberBlue::OnButton5()
  327. {
  328. if(IsHasRights2new(49)==0)return;
  329. // TODO: Add your control notification handler code here
  330. POSITION pos;
  331. pos=m_List1.GetFirstSelectedItemPosition();
  332. if(pos==NULL)
  333. {
  334. AfxMessageBox("请先选中您要删除的会员!");
  335. return;
  336. }
  337. if(AfxMessageBox("删除后将不可恢复, 确认吗?", MB_YESNO|MB_ICONINFORMATION)!=IDYES)return;
  338. int iItem=m_List1.GetNextSelectedItem(pos);
  339. CString id=m_List1.GetItemText (iItem, 0);
  340. CString sql;
  341. sql.Format ("delete from [membermanageblue] where [autoid]=%s", id);
  342. g_sendhead.bsql=1;
  343. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  344. g_sendhead.bsql=0;
  345. g_sendhead.code[0]=130;
  346. g_sendhead.tabcount=1;
  347. g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)return;
  348. DataToArray(&m_List1array);HidePrice();
  349. FillGrid();
  350. }
  351. void ShowMemberBlue::OnButton6()
  352. {
  353. // TODO: Add your control notification handler code handler
  354. if(IsHasRights2new(18)==0)return;
  355. // TODO: Add your control notification code
  356. POSITION pos;
  357. pos=m_List1.GetFirstSelectedItemPosition();
  358. if(pos==NULL)
  359. {
  360. AfxMessageBox("请先选中您要返现的会员!");
  361. return;
  362. }
  363. int iItem=m_List1.GetNextSelectedItem(pos);
  364. CString m_memberno=m_List1.GetItemText (iItem, 1);
  365. CString m_name=m_List1.GetItemText (iItem, 2);
  366. CString m_sex=m_List1.GetItemText (iItem, 3);
  367. CString m_phone=m_List1.GetItemText (iItem, 4);
  368. CString m_jiage=m_List1.GetItemText (iItem, 9);
  369. InputCard2PointBlue dlg;
  370. dlg.m_memberno=m_memberno;
  371. dlg.m_name=m_name;
  372. dlg.m_sex=m_sex;
  373. dlg.m_phone=m_phone;
  374. dlg.m_jiage=m_jiage;
  375. if(dlg.DoModal ()!=IDOK)return;
  376. g_sendhead.bsql=0;
  377. g_sendhead.code[0]=130;
  378. g_sendhead.tabcount=1;
  379. g_pMainWnd->ProcessChatMessageRequest2(1);if(g_bSendOK==0)return;
  380. DataToArray(&m_List1array);HidePrice();
  381. FillGrid();
  382. }
  383. void ShowMemberBlue::OnButton10()
  384. {
  385. // TODO: Add your control notification handler code here
  386. if(IsHasRights2new(18)==0)return;
  387. // TODO: Add your control notification handler code here
  388. POSITION pos;
  389. pos=m_List1.GetFirstSelectedItemPosition();
  390. if(pos==NULL)
  391. {
  392. AfxMessageBox("请先选中主卡!");
  393. return;
  394. }
  395. int iItem=m_List1.GetNextSelectedItem(pos);
  396. CString name=m_List1.GetItemText (iItem, 2);
  397. CString no=m_List1.GetItemText (iItem, 1);
  398. CString sql="select count(*) as cot from membercard2blue where [memberno]='"+no+"'";
  399. g_sendhead.bsql=1;
  400. g_pMainWnd->ProcessChatMessageRequest2(sql);if(g_bSendOK==0)return;
  401. if(g_ncount==0)
  402. {
  403. InputCard2Dlg dlg;
  404. dlg.m_mode=1;
  405. dlg.m_name =name;
  406. dlg.m_no =no;
  407. dlg.DoModal ();
  408. }
  409. else
  410. {
  411. int cardnum=atoi(g_cominfoarray.ElementAt (0).ElementAt (118));
  412. if(cardnum==0)cardnum=5;
  413. if(g_ncount>=cardnum)
  414. {
  415. AfxMessageBox("副卡已经发出,不能再次发放!", MB_ICONINFORMATION);return;
  416. }
  417. InputCard2Dlg dlg;
  418. dlg.m_bAddOne =1;
  419. dlg.m_mode=1;
  420. dlg.m_name =name;
  421. dlg.m_no =no;
  422. dlg.DoModal ();
  423. }
  424. }
  425. void ShowMemberBlue::OnButton11()
  426. {
  427. // TODO: Add your control notification handler code here
  428. if(IsHasRights2new(18)==0)return;
  429. // TODO: Add your control notification handler code here
  430. POSITION pos;
  431. pos=m_List1.GetFirstSelectedItemPosition();
  432. if(pos==NULL)
  433. {
  434. AfxMessageBox("请先选中主卡!");
  435. return;
  436. }
  437. int iItem=m_List1.GetNextSelectedItem(pos);
  438. CString no=m_List1.GetItemText (iItem, 1);
  439. CString filter="[memberno]='"+no+"'";
  440. g_sendhead.bsql=0;
  441. g_sendhead.code[0]=131;
  442. g_sendhead.tabcount=1;
  443. g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return;
  444. DataToArray(&g_List1array);
  445. if(g_List1array.GetSize ()==0)
  446. {
  447. AfxMessageBox("此主卡未发放副卡!");
  448. }
  449. else
  450. {
  451. ShowCard2Reg dlg;
  452. dlg.m_memberno=no;
  453. dlg.m_name =m_List1.GetItemText (iItem, 2);
  454. dlg.m_mode=1;
  455. dlg.DoModal ();
  456. }
  457. }
  458. void ShowMemberBlue::HidePrice()
  459. {
  460. #ifdef LKAY_VERSION
  461. if(IsHasRights2new(31))return;
  462. for(int i=0; i< m_List1array.GetSize (); i++)
  463. {
  464. m_List1array.ElementAt (i).SetAt (4, "***");
  465. }
  466. #endif
  467. }