MySalary.cpp 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901
  1. // MySalary.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "LYFZIPManage.h"
  5. #include "MySalary.h"
  6. #include "MyMdi.H"
  7. #ifdef _DEBUG
  8. #define new DEBUG_NEW
  9. #undef THIS_FILE
  10. static char THIS_FILE[] = __FILE__;
  11. #endif
  12. /////////////////////////////////////////////////////////////////////////////
  13. // MySalary
  14. IMPLEMENT_DYNCREATE(MySalary, CFormView)
  15. MySalary::MySalary()
  16. : CFormView(MySalary::IDD)
  17. {
  18. //{{AFX_DATA_INIT(MySalary)
  19. m_name = _T("");
  20. m_rate1 = _T("");
  21. m_rate2 = _T("");
  22. m_bz = _T("");
  23. m_base = _T("");
  24. m_month = CTime::GetCurrentTime ().GetMonth ();
  25. m_salary = _T("");
  26. m_money1 = _T("");
  27. m_money2 = _T("");
  28. m_year = CTime::GetCurrentTime ().GetYear ();
  29. m_bInit=0;
  30. m_bAll=0;
  31. //}}AFX_DATA_INIT
  32. }
  33. MySalary::~MySalary()
  34. {
  35. }
  36. void MySalary::DoDataExchange(CDataExchange* pDX)
  37. {
  38. CFormView::DoDataExchange(pDX);
  39. //{{AFX_DATA_MAP(MySalary)
  40. DDX_Control(pDX, IDC_LIST3, m_List3);
  41. DDX_Control(pDX, IDC_LIST1, m_ListBox1);
  42. DDX_Control(pDX, IDC_SPIN2, m_spinmonth);
  43. DDX_Control(pDX, IDC_SPIN1, m_spinyear);
  44. DDX_Control(pDX, IDC_LIST2, m_List1);
  45. DDX_Control(pDX, IDC_STATIC1, m_static1);
  46. DDX_Text(pDX, IDC_EDITname, m_name);
  47. DDX_Text(pDX, IDC_EDITrate1, m_rate1);
  48. DDX_Text(pDX, IDC_EDITrate2, m_rate2);
  49. DDX_Text(pDX, IDC_EDITbz, m_bz);
  50. DDX_Text(pDX, IDC_EDITbase, m_base);
  51. DDX_Text(pDX, IDC_EDITmonth, m_month);
  52. DDV_MinMaxUInt(pDX, m_month, 1, 12);
  53. DDX_Text(pDX, IDC_EDITsalary, m_salary);
  54. DDX_Text(pDX, IDC_EDITrate3, m_money1);
  55. DDX_Text(pDX, IDC_EDITrate4, m_money2);
  56. DDX_Text(pDX, IDC_EDITyear, m_year);
  57. DDV_MinMaxUInt(pDX, m_year, 1900, 3000);
  58. //}}AFX_DATA_MAP
  59. }
  60. BEGIN_MESSAGE_MAP(MySalary, CFormView)
  61. //{{AFX_MSG_MAP(MySalary)
  62. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  63. ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1)
  64. ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear)
  65. ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth)
  66. ON_BN_CLICKED(IDC_BUTshowall, OnBUTshowall)
  67. //}}AFX_MSG_MAP
  68. END_MESSAGE_MAP()
  69. /////////////////////////////////////////////////////////////////////////////
  70. // MySalary diagnostics
  71. #ifdef _DEBUG
  72. void MySalary::AssertValid() const
  73. {
  74. CFormView::AssertValid();
  75. }
  76. void MySalary::Dump(CDumpContext& dc) const
  77. {
  78. CFormView::Dump(dc);
  79. }
  80. #endif //_DEBUG
  81. /////////////////////////////////////////////////////////////////////////////
  82. // MySalary message handlers
  83. void MySalary::OnInitialUpdate()
  84. {
  85. CFormView::OnInitialUpdate();
  86. // TODO: Add your specialized code here and/or call the base class
  87. CMyMdi Mdi;
  88. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  89. // Here we create the outbar control using the splitter as its parent
  90. // and setting its id to the first pane.
  91. CRect rc2;
  92. GetWindowRect(rc2);
  93. ::MoveWindow(m_hWnd,g_rc.left,g_rc.top,g_rc.Width(),g_rc.Height(),TRUE);
  94. EnumChildWindows(m_hWnd,(WNDENUMPROC)EnumChildProc,0);
  95. m_static1.SetFont (&g_titlefont);
  96. m_List1.SetHeadings("收款金额,100;收款日期,100;款项类别,100;男宾姓名,100;女宾姓名,100" );
  97. m_List1.LoadColumnInfo (23);
  98. m_List3.SetHeadings("姓名,100;总工资,100;基本工资,100;前期业绩,100;后期业绩,100;前期提成,100;后期提成,100;部门,100" );
  99. m_List3.LoadColumnInfo (124);
  100. m_spinyear.SetRange (1900, 3000);
  101. m_spinmonth.SetRange (1, 12);
  102. BOOL bShowAll=0;
  103. if(g_ncount==100)bShowAll=1;
  104. g_ncount=0;
  105. GetData();
  106. if(bShowAll==0)
  107. GetDlgItem(IDC_LIST3)->ShowWindow(0);
  108. if(IsHasRights2new(26)==0)
  109. {
  110. m_ListBox1.EnableWindow (0);
  111. GetDlgItem(IDC_BUTshowall)->EnableWindow (0);
  112. }
  113. else if(bShowAll)
  114. {
  115. g_ncount=0;
  116. OnBUTshowall();
  117. }
  118. }
  119. void MySalary::FillGrid(CArray<CStringArray, CStringArray>*array)
  120. {
  121. m_List1.DeleteAllItems2 ();
  122. int ii=0;
  123. m_List1.m_arLabels.SetSize( array->GetSize (), 1 );
  124. int count=0;
  125. for(ii=0; ii<m_List1.m_arLabels.GetSize (); ii++)
  126. {
  127. m_List1.m_arLabels.ElementAt (count++).Copy (array->ElementAt (ii));
  128. }
  129. m_List1.m_arLabels.SetSize(count, 1);
  130. ii=count;
  131. m_List1.m_LabelCount=ii;
  132. m_List1.SetItemCountEx (ii);
  133. }
  134. void MySalary::OnBUTclose()
  135. {
  136. // TODO: Add your control notification handler code here
  137. GetParent()->SendMessage(WM_CLOSE);
  138. }
  139. void MySalary::GetData()
  140. {
  141. m_bInit=1;
  142. g_sendhead.bsql=0;
  143. g_sendhead.code[0]=34;
  144. g_sendhead.tabcount=1;
  145. int g_nYearposTemp=g_nYearpos;
  146. g_nYearpos=-1;
  147. g_pMainWnd->ProcessChatMessageRequest2(13);
  148. g_nYearpos=g_nYearposTemp;
  149. if(g_bSendOK==0)return;
  150. DataToArray(&m_List1array);
  151. m_ListBox1.ResetContent ();
  152. for(int i=0; i<m_List1array.GetSize (); i++)
  153. {
  154. m_ListBox1.AddString (m_List1array.ElementAt (i).ElementAt (0));
  155. }
  156. CString str;
  157. for( i=0; i<m_ListBox1.GetCount (); i++)
  158. {
  159. m_ListBox1.GetText (i, str);
  160. if(str==g_user.name)
  161. {
  162. m_ListBox1.SetCurSel (i);
  163. OnSelchangeList1();
  164. break;
  165. }
  166. }
  167. }
  168. void MySalary::OnChangeEDITyear()
  169. {
  170. // TODO: If this is a RICHEDIT control, the control will not
  171. // send this notification unless you override the CFormView::OnInitDialog()
  172. // function and call CRichEditCtrl().SetEventMask()
  173. // with the ENM_CHANGE flag ORed into the mask.
  174. OnSelchangeList1();
  175. // TODO: Add your control notification handler code here
  176. }
  177. void MySalary::OnChangeEDITmonth()
  178. {
  179. // TODO: If this is a RICHEDIT control, the control will not
  180. // send this notification unless you override the CFormView::OnInitDialog()
  181. // function and call CRichEditCtrl().SetEventMask()
  182. // with the ENM_CHANGE flag ORed into the mask.
  183. OnSelchangeList1();
  184. // TODO: Add your control notification handler code here
  185. }
  186. void IsWaiter(CString id, CString name, CArray<CStringArray, CStringArray>*waiterarray, BOOL &bWait1, BOOL &bWait2)
  187. {
  188. for(int i=0; i<waiterarray->GetSize (); i++)
  189. {
  190. if(id==waiterarray->ElementAt (i).ElementAt (0))
  191. {
  192. if(name==waiterarray->ElementAt (i).ElementAt (1))
  193. bWait1=1;
  194. if(name==waiterarray->ElementAt (i).ElementAt (2))
  195. bWait2=1;
  196. return;
  197. }
  198. }
  199. return;
  200. }
  201. extern int GetYearPos(int year);
  202. void MySalary::OnSelchangeList1()
  203. {
  204. // TODO: Add your control notification handler code here
  205. if(m_bInit==0)return;
  206. if(m_bAll)
  207. {
  208. m_List3array.RemoveAll ();
  209. FillGrid2();
  210. return;
  211. }
  212. int pos=m_ListBox1.GetCurSel ();
  213. if(pos==-1)return;
  214. UpdateData();
  215. CString name;
  216. m_ListBox1.GetText (pos, name);
  217. CString date1,date2;
  218. date1.Format ("%d-%02d-01", m_year, m_month);
  219. date2.Format ("%d-%02d-31", m_year, m_month);
  220. int i;
  221. int g_nYearposTemp=g_nYearpos;
  222. BOOL bLastYear=0;
  223. BOOL bThisYear=0;
  224. BOOL bOldYear=0;
  225. if(m_year==atoi(g_date.Left (4)) && g_hisyeararray.GetSize () )
  226. bThisYear=1;
  227. else if(m_year==atoi(g_date.Left (4))-1 && g_hisyeararray.GetSize ())
  228. bLastYear=1;
  229. else if(atoi(g_date.Left (4))-m_year>1 && g_hisyeararray.GetSize ()>=(atoi(g_date.Left (4))-m_year))
  230. {
  231. bOldYear=1;
  232. }
  233. g_nYearpos=GetYearPos(m_year);
  234. ///////////////
  235. CString filter="name='"+name+"';date>='"+date1+"' and date<='"+date2+"';waiter1='"+name+"' or waiter2='"+name+"';dat>='"+date1+"' and dat<='"+date2+"' and renyuan3='"+name+"';time2>='"+date1+"' and time2<='"+date2+"' and status<>'未拍'";
  236. //;time2>='"+date1+"' and time2<='"+date2+"' and status<>'未拍'
  237. g_sendhead.code[0]=34;
  238. g_sendhead.code[1]=59;
  239. g_sendhead.code[2]=60;
  240. g_sendhead.code[3]=14;
  241. g_sendhead.code[4]=61;
  242. g_sendhead.tabcount=5;
  243. g_sendhead.bsql=0;
  244. g_pMainWnd->ProcessChatMessageRequest2(filter);
  245. if(g_bSendOK==0)
  246. {
  247. g_nYearpos=g_nYearposTemp;
  248. return;
  249. }
  250. CArray<CStringArray, CStringArray>userarray;
  251. CArray<CStringArray, CStringArray>bukuanarray;
  252. CArray<CStringArray, CStringArray>waiterarray;
  253. CArray<CStringArray, CStringArray>singleincomearray;
  254. CArray<CStringArray, CStringArray>bukuanarray2;
  255. DataToArray(&userarray,&bukuanarray,&waiterarray,&singleincomearray,&bukuanarray2);
  256. ///////////////////
  257. if(bLastYear)//如果是去年, 则加今年的补款
  258. {
  259. g_nYearpos=-1;//今年
  260. filter="name='"+name+"';date>='"+date1+"' and date<='"+date2+"';waiter1='"+name+"' or waiter2='"+name+"';time2>='"+date1+"' and time2<='"+date2+"' and status<>'未拍'";
  261. g_sendhead.code[0]=34;
  262. g_sendhead.code[1]=59;
  263. g_sendhead.code[2]=60;
  264. g_sendhead.code[3]=61;
  265. g_sendhead.tabcount=4;
  266. g_sendhead.bsql=0;
  267. g_pMainWnd->ProcessChatMessageRequest2(filter);
  268. if(g_bSendOK==0)
  269. {
  270. g_nYearpos=g_nYearposTemp;
  271. return;
  272. }
  273. CArray<CStringArray, CStringArray>ThisYearbukuanarray;
  274. CArray<CStringArray, CStringArray>ThisYearwaiterarray;
  275. CArray<CStringArray, CStringArray>ThisYearbukuanarray2;
  276. DataToArray(&userarray,&ThisYearbukuanarray,&ThisYearwaiterarray,&ThisYearbukuanarray2);
  277. int oldsize=bukuanarray.GetSize ();
  278. bukuanarray.SetSize(oldsize+ThisYearbukuanarray.GetSize ());
  279. for(i=oldsize; i<oldsize+ThisYearbukuanarray.GetSize (); i++)
  280. {
  281. bukuanarray.ElementAt (i).Copy(ThisYearbukuanarray.ElementAt (i-oldsize));
  282. }
  283. oldsize=bukuanarray2.GetSize ();
  284. bukuanarray2.SetSize(oldsize+ThisYearbukuanarray2.GetSize ());
  285. for(i=oldsize; i<oldsize+ThisYearbukuanarray2.GetSize (); i++)
  286. {
  287. bukuanarray2.ElementAt (i).Copy(ThisYearbukuanarray2.ElementAt (i-oldsize));
  288. }
  289. oldsize=waiterarray.GetSize ();
  290. waiterarray.SetSize(oldsize+ThisYearwaiterarray.GetSize ());
  291. for(i=oldsize; i<oldsize+ThisYearwaiterarray.GetSize (); i++)
  292. {
  293. waiterarray.ElementAt (i).Copy(ThisYearwaiterarray.ElementAt (i-oldsize));
  294. }
  295. }
  296. else if(bThisYear)//如果是今年, 则加去年的补款
  297. {
  298. g_nYearpos=0;//去年
  299. filter="date>='"+date1+"' and date<='"+date2+"';waiter1='"+name+"' or waiter2='"+name+"';time2>='"+date1+"' and time2<='"+date2+"' and status<>'未拍'";
  300. g_sendhead.code[0]=59;
  301. g_sendhead.code[1]=60;
  302. g_sendhead.code[2]=61;
  303. g_sendhead.tabcount=3;
  304. g_sendhead.bsql=0;
  305. g_pMainWnd->ProcessChatMessageRequest2(filter);
  306. if(g_bSendOK==0)
  307. {
  308. g_nYearpos=g_nYearposTemp;
  309. return;
  310. }
  311. CArray<CStringArray, CStringArray>LastYearbukuanarray;
  312. CArray<CStringArray, CStringArray>LastYearwaiterarray;
  313. CArray<CStringArray, CStringArray>LastYearbukuanarray2;
  314. DataToArray(&LastYearbukuanarray,&LastYearwaiterarray,&LastYearbukuanarray2);
  315. int oldsize=bukuanarray.GetSize ();
  316. bukuanarray.SetSize(oldsize+LastYearbukuanarray.GetSize ());
  317. for(i=oldsize; i<oldsize+LastYearbukuanarray.GetSize (); i++)
  318. {
  319. bukuanarray.ElementAt (i).Copy(LastYearbukuanarray.ElementAt (i-oldsize));
  320. }
  321. oldsize=bukuanarray2.GetSize ();
  322. bukuanarray2.SetSize(oldsize+LastYearbukuanarray2.GetSize ());
  323. for(i=oldsize; i<oldsize+LastYearbukuanarray2.GetSize (); i++)
  324. {
  325. bukuanarray2.ElementAt (i).Copy(LastYearbukuanarray2.ElementAt (i-oldsize));
  326. }
  327. oldsize=waiterarray.GetSize ();
  328. waiterarray.SetSize(oldsize+LastYearwaiterarray.GetSize ());
  329. for(i=oldsize; i<oldsize+LastYearwaiterarray.GetSize (); i++)
  330. {
  331. waiterarray.ElementAt (i).Copy(LastYearwaiterarray.ElementAt (i-oldsize));
  332. }
  333. }
  334. else if(bLastYear)//如果是以往年份, 则需更新员工信息
  335. {
  336. g_nYearpos=-1;//今年
  337. filter="name='"+name+"'";
  338. g_sendhead.code[0]=34;
  339. g_sendhead.tabcount=1;
  340. g_sendhead.bsql=0;
  341. g_pMainWnd->ProcessChatMessageRequest2(filter);
  342. if(g_bSendOK==0)
  343. {
  344. g_nYearpos=g_nYearposTemp;
  345. return;
  346. }
  347. DataToArray(&userarray);
  348. }
  349. g_nYearpos=g_nYearposTemp;
  350. CArray<CStringArray, CStringArray>array;
  351. array.SetSize(bukuanarray.GetSize ()*4+singleincomearray.GetSize ()+bukuanarray2.GetSize ()*4);
  352. CString temp;
  353. float money1=0;
  354. float money2=0;
  355. int arraypos=0;
  356. for(int ii=0; ii<bukuanarray.GetSize (); ii++)
  357. {
  358. array.ElementAt (arraypos).RemoveAll ();
  359. if(bukuanarray.ElementAt (ii).ElementAt (2)=="3" || bukuanarray.ElementAt (ii).ElementAt (2)=="4")
  360. {
  361. /* BOOL bWait1=0;
  362. BOOL bWait2=0;
  363. IsWaiter(bukuanarray.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2);
  364. if(bWait1)//我是摄影师
  365. {
  366. temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) );
  367. ConvertToPrice(temp);
  368. money1+=atof(temp);
  369. array.ElementAt (arraypos).Add(temp) ;
  370. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ;
  371. array.ElementAt (arraypos).Add("前期收款") ;
  372. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ;
  373. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ;
  374. arraypos++;
  375. }
  376. if(bWait2)//我是化妆师
  377. {
  378. temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) );
  379. ConvertToPrice(temp);
  380. money1+=atof(temp);
  381. array.ElementAt (arraypos).Add(temp) ;
  382. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ;
  383. array.ElementAt (arraypos).Add("前期收款") ;
  384. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ;
  385. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ;
  386. arraypos++;
  387. }*/
  388. if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue;
  389. temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) );
  390. ConvertToPrice(temp);
  391. money1+=atof(temp);
  392. array.ElementAt (arraypos).Add(temp) ;
  393. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ;
  394. array.ElementAt (arraypos).Add("前期收款") ;
  395. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ;
  396. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ;
  397. }
  398. else if(bukuanarray.ElementAt (ii).ElementAt (2)=="2")//选片补款, 需加摄影师和化妆师
  399. {
  400. BOOL bWait1=0;
  401. BOOL bWait2=0;
  402. IsWaiter(bukuanarray.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2);
  403. if(bWait1)//我是摄影师
  404. {
  405. temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) );
  406. ConvertToPrice(temp);
  407. money2+=atof(temp);
  408. array.ElementAt (arraypos).Add(temp) ;
  409. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ;
  410. array.ElementAt (arraypos).Add("后期收款") ;
  411. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ;
  412. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ;
  413. arraypos++;
  414. }
  415. if(bWait2)//我是化妆师
  416. {
  417. temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) );
  418. ConvertToPrice(temp);
  419. money2+=atof(temp);
  420. array.ElementAt (arraypos).Add(temp) ;
  421. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ;
  422. array.ElementAt (arraypos).Add("后期收款") ;
  423. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ;
  424. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ;
  425. arraypos++;
  426. }
  427. if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue;
  428. temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) );
  429. ConvertToPrice(temp);
  430. money2+=atof(temp);
  431. array.ElementAt (arraypos).Add(temp) ;
  432. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ;
  433. array.ElementAt (arraypos).Add("后期收款") ;
  434. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ;
  435. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ;
  436. }
  437. else
  438. {
  439. if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue;
  440. temp.Format ("%f", atof(bukuanarray.ElementAt (ii).ElementAt (0)) );
  441. ConvertToPrice(temp);
  442. money2+=atof(temp);
  443. array.ElementAt (arraypos).Add(temp) ;
  444. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (1)) ;
  445. array.ElementAt (arraypos).Add("后期收款") ;
  446. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (3)) ;
  447. array.ElementAt (arraypos).Add(bukuanarray.ElementAt (ii).ElementAt (4)) ;
  448. }
  449. arraypos++;
  450. }
  451. for( ii=0; ii<bukuanarray2.GetSize (); ii++)
  452. {
  453. array.ElementAt (arraypos).RemoveAll ();
  454. if(bukuanarray2.ElementAt (ii).ElementAt (2)=="3" || bukuanarray2.ElementAt (ii).ElementAt (2)=="4")
  455. {
  456. BOOL bWait1=0;
  457. BOOL bWait2=0;
  458. IsWaiter(bukuanarray2.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2);
  459. if(bWait1)//我是摄影师
  460. {
  461. temp.Format ("%f", atof(bukuanarray2.ElementAt (ii).ElementAt (0)) );
  462. ConvertToPrice(temp);
  463. money1+=atof(temp);
  464. array.ElementAt (arraypos).Add(temp) ;
  465. array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (1)) ;
  466. array.ElementAt (arraypos).Add("前期收款") ;
  467. array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (3)) ;
  468. array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (4)) ;
  469. arraypos++;
  470. }
  471. if(bWait2)//我是化妆师
  472. {
  473. temp.Format ("%f", atof(bukuanarray2.ElementAt (ii).ElementAt (0)) );
  474. ConvertToPrice(temp);
  475. money1+=atof(temp);
  476. array.ElementAt (arraypos).Add(temp) ;
  477. array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (1)) ;
  478. array.ElementAt (arraypos).Add("前期收款") ;
  479. array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (3)) ;
  480. array.ElementAt (arraypos).Add(bukuanarray2.ElementAt (ii).ElementAt (4)) ;
  481. arraypos++;
  482. }
  483. }
  484. }
  485. for( ii=0; ii<singleincomearray.GetSize (); ii++)
  486. {
  487. array.ElementAt (arraypos).RemoveAll ();
  488. temp.Format ("%f", atof(singleincomearray.ElementAt (ii).ElementAt (2)) );
  489. ConvertToPrice(temp);
  490. money2+=atof(temp);
  491. array.ElementAt (arraypos).Add(temp) ;
  492. array.ElementAt (arraypos).Add(singleincomearray.ElementAt (ii).ElementAt (3)) ;
  493. array.ElementAt (arraypos).Add("后期收款") ;
  494. array.ElementAt (arraypos).Add(singleincomearray.ElementAt (ii).ElementAt (4)) ;
  495. array.ElementAt (arraypos).Add(singleincomearray.ElementAt (ii).ElementAt (1)) ;
  496. arraypos++;
  497. }
  498. array.SetSize(arraypos);
  499. FillGrid(&array);
  500. if(userarray.GetSize ())
  501. {
  502. m_name = userarray.ElementAt (0).ElementAt (0);
  503. m_base = userarray.ElementAt (0).ElementAt (1);
  504. m_rate1 = userarray.ElementAt (0).ElementAt (2)+"%";
  505. m_rate2 = userarray.ElementAt (0).ElementAt (3)+"%";
  506. m_bz = userarray.ElementAt (0).ElementAt (4);
  507. m_money1.Format ("%f", money1);
  508. ConvertToPrice(m_money1);
  509. m_money2.Format ("%f", money2);
  510. ConvertToPrice(m_money2);
  511. m_salary.Format ("%f", atof(m_base)+money1*atof(m_rate1)/100.0+money2*atof(m_rate2)/100.0);
  512. ConvertToPrice(m_salary);
  513. }
  514. else
  515. {
  516. m_name = _T("");
  517. m_base = _T("");
  518. m_rate1 = _T("");
  519. m_rate2 = _T("");
  520. m_bz = _T("");
  521. m_salary = _T("");
  522. m_money1 = _T("");
  523. m_money2 = _T("");
  524. }
  525. UpdateData(false);
  526. }
  527. void MySalary::OnBUTshowall()
  528. {
  529. // TODO: Add your control notification handler code here
  530. m_bAll=!m_bAll;
  531. if(m_bAll)
  532. {
  533. GetDlgItem(IDC_BUTshowall)->SetWindowText("查看详情");
  534. }
  535. else
  536. {
  537. GetDlgItem(IDC_BUTshowall)->SetWindowText("查看全部");
  538. }
  539. GetDlgItem(IDC_STATIC2)->ShowWindow(!m_bAll);
  540. GetDlgItem(IDC_STATIC3)->ShowWindow(!m_bAll);
  541. GetDlgItem(IDC_STATIC4)->ShowWindow(!m_bAll);
  542. GetDlgItem(IDC_STATIC5)->ShowWindow(!m_bAll);
  543. GetDlgItem(IDC_STATIC6)->ShowWindow(!m_bAll);
  544. GetDlgItem(IDC_STATIC7)->ShowWindow(!m_bAll);
  545. GetDlgItem(IDC_STATIC8)->ShowWindow(!m_bAll);
  546. GetDlgItem(IDC_STATIC9)->ShowWindow(!m_bAll);
  547. // GetDlgItem(IDC_STATIC10)->ShowWindow(!m_bAll);
  548. // GetDlgItem(IDC_STATIC11)->ShowWindow(!m_bAll);
  549. GetDlgItem(IDC_EDITname)->ShowWindow(!m_bAll);
  550. GetDlgItem(IDC_EDITbz)->ShowWindow(!m_bAll);
  551. GetDlgItem(IDC_EDITbase)->ShowWindow(!m_bAll);
  552. GetDlgItem(IDC_EDITrate1)->ShowWindow(!m_bAll);
  553. GetDlgItem(IDC_EDITrate2)->ShowWindow(!m_bAll);
  554. GetDlgItem(IDC_EDITsalary)->ShowWindow(!m_bAll);
  555. GetDlgItem(IDC_EDITrate3)->ShowWindow(!m_bAll);
  556. GetDlgItem(IDC_EDITrate4)->ShowWindow(!m_bAll);
  557. GetDlgItem(IDC_LIST1)->ShowWindow(!m_bAll);
  558. GetDlgItem(IDC_LIST2)->ShowWindow(!m_bAll);
  559. GetDlgItem(IDC_LIST3)->ShowWindow(m_bAll);
  560. if(m_bAll)
  561. FillGrid2();
  562. else
  563. {
  564. POSITION pos;
  565. pos=m_List3.GetFirstSelectedItemPosition();
  566. if(pos)
  567. {
  568. int iItem=m_List3.GetNextSelectedItem(pos);
  569. CString name=m_List3.GetItemText (iItem, 0);
  570. CString temp;
  571. for(int i=0; i<m_ListBox1.GetCount (); i++)
  572. {
  573. m_ListBox1.GetText (i, temp);
  574. if(temp==name)
  575. {
  576. m_ListBox1.SetCurSel (i);
  577. OnSelchangeList1();
  578. break;
  579. }
  580. }
  581. }
  582. }
  583. }
  584. void MySalary::FillGrid2()
  585. {
  586. if(m_List3array.GetSize ()==0)GetAllData();
  587. m_List3.DeleteAllItems2 ();
  588. int ii=0;
  589. m_List3.m_arLabels.SetSize( m_List3array.GetSize (), 1 );
  590. int count=0;
  591. for(ii=0; ii<m_List3.m_arLabels.GetSize (); ii++)
  592. {
  593. m_List3.m_arLabels.ElementAt (count++).Copy (m_List3array.ElementAt (ii));
  594. }
  595. m_List3.m_arLabels.SetSize(count, 1);
  596. ii=count;
  597. m_List3.m_LabelCount=ii;
  598. m_List3.SetItemCountEx (ii);
  599. }
  600. void MySalary::GetAllData()
  601. {
  602. if(m_bInit==0)return;
  603. UpdateData();
  604. CString date1,date2;
  605. date1.Format ("%d-%02d-01", m_year, m_month);
  606. date2.Format ("%d-%02d-31", m_year, m_month);
  607. int i;
  608. int g_nYearposTemp=g_nYearpos;
  609. BOOL bLastYear=0;
  610. BOOL bThisYear=0;
  611. BOOL bOldYear=0;
  612. if(m_year==atoi(g_date.Left (4)) && g_hisyeararray.GetSize () )
  613. bThisYear=1;
  614. else if(m_year==atoi(g_date.Left (4))-1 && g_hisyeararray.GetSize ())
  615. bLastYear=1;
  616. else if(atoi(g_date.Left (4))-m_year>1 && g_hisyeararray.GetSize ()>=(atoi(g_date.Left (4))-m_year))
  617. {
  618. bOldYear=1;
  619. }
  620. g_nYearpos=GetYearPos(m_year);
  621. CString filter="date>='"+date1+"' and date<='"+date2+"';;dat>='"+date1+"' and dat<='"+date2+"';time2>='"+date1+"' and time2<='"+date2+"' and status<>'未拍'";
  622. //;time2>='"+date1+"' and time2<='"+date2+"' and status<>'未拍'
  623. g_sendhead.code[0]=59;
  624. g_sendhead.code[1]=60;
  625. g_sendhead.code[2]=14;
  626. g_sendhead.code[3]=61;
  627. g_sendhead.tabcount=4;
  628. g_sendhead.bsql=0;
  629. g_pMainWnd->ProcessChatMessageRequest2(filter);if(g_bSendOK==0)return;
  630. CArray<CStringArray, CStringArray>bukuanarray;
  631. CArray<CStringArray, CStringArray>waiterarray;
  632. CArray<CStringArray, CStringArray>singleincomearray;
  633. CArray<CStringArray, CStringArray>bukuanarray2;
  634. DataToArray(&bukuanarray,&waiterarray,&singleincomearray,&bukuanarray2);
  635. ///////////////////
  636. if(bLastYear)//如果是去年, 则加今年的补款
  637. {
  638. g_nYearpos=-1;//今年
  639. filter="date>='"+date1+"' and date<='"+date2+"';;time2>='"+date1+"' and time2<='"+date2+"' and status<>'未拍'";
  640. g_sendhead.code[0]=59;
  641. g_sendhead.code[1]=60;
  642. g_sendhead.code[2]=61;
  643. g_sendhead.tabcount=3;
  644. g_sendhead.bsql=0;
  645. g_pMainWnd->ProcessChatMessageRequest2(filter);
  646. if(g_bSendOK==0)
  647. {
  648. g_nYearpos=g_nYearposTemp;
  649. return;
  650. }
  651. CArray<CStringArray, CStringArray>ThisYearbukuanarray;
  652. CArray<CStringArray, CStringArray>ThisYearwaiterarray;
  653. CArray<CStringArray, CStringArray>ThisYearbukuanarray2;
  654. DataToArray(&ThisYearbukuanarray,&ThisYearwaiterarray,&ThisYearbukuanarray2);
  655. int oldsize=bukuanarray.GetSize ();
  656. bukuanarray.SetSize(oldsize+ThisYearbukuanarray.GetSize ());
  657. for(i=oldsize; i<oldsize+ThisYearbukuanarray.GetSize (); i++)
  658. {
  659. bukuanarray.ElementAt (i).Copy(ThisYearbukuanarray.ElementAt (i-oldsize));
  660. }
  661. oldsize=bukuanarray2.GetSize ();
  662. bukuanarray2.SetSize(oldsize+ThisYearbukuanarray2.GetSize ());
  663. for(i=oldsize; i<oldsize+ThisYearbukuanarray2.GetSize (); i++)
  664. {
  665. bukuanarray2.ElementAt (i).Copy(ThisYearbukuanarray2.ElementAt (i-oldsize));
  666. }
  667. oldsize=waiterarray.GetSize ();
  668. waiterarray.SetSize(oldsize+ThisYearwaiterarray.GetSize ());
  669. for(i=oldsize; i<oldsize+ThisYearwaiterarray.GetSize (); i++)
  670. {
  671. waiterarray.ElementAt (i).Copy(ThisYearwaiterarray.ElementAt (i-oldsize));
  672. }
  673. }
  674. else if(bThisYear)//如果是今年, 则加去年的补款
  675. {
  676. g_nYearpos=0;//去年
  677. filter="date>='"+date1+"' and date<='"+date2+"';;time2>='"+date1+"' and time2<='"+date2+"' and status<>'未拍'";
  678. g_sendhead.code[0]=59;
  679. g_sendhead.code[1]=60;
  680. g_sendhead.code[2]=61;
  681. g_sendhead.tabcount=3;
  682. g_sendhead.bsql=0;
  683. g_pMainWnd->ProcessChatMessageRequest2(filter);
  684. if(g_bSendOK==0)
  685. {
  686. g_nYearpos=g_nYearposTemp;
  687. return;
  688. }
  689. CArray<CStringArray, CStringArray>LastYearbukuanarray;
  690. CArray<CStringArray, CStringArray>LastYearwaiterarray;
  691. CArray<CStringArray, CStringArray>LastYearbukuanarray2;
  692. DataToArray(&LastYearbukuanarray,&LastYearwaiterarray,&LastYearbukuanarray2);
  693. int oldsize=bukuanarray.GetSize ();
  694. bukuanarray.SetSize(oldsize+LastYearbukuanarray.GetSize ());
  695. for(i=oldsize; i<oldsize+LastYearbukuanarray.GetSize (); i++)
  696. {
  697. bukuanarray.ElementAt (i).Copy(LastYearbukuanarray.ElementAt (i-oldsize));
  698. }
  699. oldsize=bukuanarray2.GetSize ();
  700. bukuanarray2.SetSize(oldsize+LastYearbukuanarray2.GetSize ());
  701. for(i=oldsize; i<oldsize+LastYearbukuanarray2.GetSize (); i++)
  702. {
  703. bukuanarray2.ElementAt (i).Copy(LastYearbukuanarray2.ElementAt (i-oldsize));
  704. }
  705. oldsize=waiterarray.GetSize ();
  706. waiterarray.SetSize(oldsize+LastYearwaiterarray.GetSize ());
  707. for(i=oldsize; i<oldsize+LastYearwaiterarray.GetSize (); i++)
  708. {
  709. waiterarray.ElementAt (i).Copy(LastYearwaiterarray.ElementAt (i-oldsize));
  710. }
  711. }
  712. g_nYearpos=g_nYearposTemp;
  713. int ii=0;
  714. CString m_base,m_rate1,m_rate2,m_money1,m_money2;
  715. double sum1=0;
  716. double sum2=0;
  717. double sum3=0;
  718. double sum4=0; CString temp;
  719. m_List3array.SetSize(m_List1array.GetSize ()+1);
  720. for(int n=0; n<m_List1array.GetSize (); n++)
  721. {
  722. m_List3array.ElementAt (n).RemoveAll ();
  723. m_List3array.ElementAt (n).Add("");
  724. m_List3array.ElementAt (n).Add("");
  725. m_List3array.ElementAt (n).Add("");
  726. m_List3array.ElementAt (n).Add("");
  727. m_List3array.ElementAt (n).Add("");
  728. m_List3array.ElementAt (n).Add("");
  729. m_List3array.ElementAt (n).Add("");
  730. m_List3array.ElementAt (n).Add("");
  731. m_List3array.ElementAt (n).SetAt (0, m_List1array.ElementAt (n).ElementAt (0));
  732. CString name=m_List1array.ElementAt (n).ElementAt (0);
  733. float money1=0;
  734. float money2=0;
  735. int arraypos=0;
  736. for( ii=0; ii<bukuanarray.GetSize (); ii++)
  737. {
  738. if(bukuanarray.ElementAt (ii).ElementAt (2)=="3" || bukuanarray.ElementAt (ii).ElementAt (2)=="4")
  739. {
  740. /* BOOL bWait1=0;
  741. BOOL bWait2=0;
  742. IsWaiter(bukuanarray.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2);
  743. if(bWait1)//我是摄影师
  744. {
  745. money1+=atof(bukuanarray.ElementAt (ii).ElementAt (0));
  746. }
  747. if(bWait2)//我是化妆师
  748. {
  749. money1+=atof(bukuanarray.ElementAt (ii).ElementAt (0));
  750. }*/
  751. if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue;
  752. money1+=atof(bukuanarray.ElementAt (ii).ElementAt (0));
  753. }
  754. else if(bukuanarray.ElementAt (ii).ElementAt (2)=="2")//选片补款, 需加摄影师和化妆师
  755. {
  756. BOOL bWait1=0;
  757. BOOL bWait2=0;
  758. IsWaiter(bukuanarray.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2);
  759. if(bWait1)//我是摄影师
  760. {
  761. money2+=atof(bukuanarray.ElementAt (ii).ElementAt (0));
  762. }
  763. if(bWait2)//我是化妆师
  764. {
  765. money2+=atof(bukuanarray.ElementAt (ii).ElementAt (0));
  766. }
  767. if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue;
  768. money2+=atof(bukuanarray.ElementAt (ii).ElementAt (0));
  769. }
  770. else
  771. {
  772. if(bukuanarray.ElementAt (ii).ElementAt (6)!=name)continue;
  773. money2+=atof(bukuanarray.ElementAt (ii).ElementAt (0));
  774. }
  775. }
  776. for( ii=0; ii<bukuanarray2.GetSize (); ii++)
  777. {
  778. if(bukuanarray2.ElementAt (ii).ElementAt (2)=="3" || bukuanarray2.ElementAt (ii).ElementAt (2)=="4")
  779. {
  780. BOOL bWait1=0;
  781. BOOL bWait2=0;
  782. IsWaiter(bukuanarray2.ElementAt (ii).ElementAt (5), name, &waiterarray, bWait1, bWait2);
  783. if(bWait1)//我是摄影师
  784. {
  785. money1+=atof(bukuanarray2.ElementAt (ii).ElementAt (0));
  786. }
  787. if(bWait2)//我是化妆师
  788. {
  789. money1+=atof(bukuanarray2.ElementAt (ii).ElementAt (0));
  790. }
  791. }
  792. }
  793. for( ii=0; ii<singleincomearray.GetSize (); ii++)
  794. {
  795. if(singleincomearray.ElementAt (ii).ElementAt (6)!=name)continue;
  796. money2+=atof(singleincomearray.ElementAt (ii).ElementAt (2));
  797. }
  798. m_base = m_List1array.ElementAt (n).ElementAt (1);
  799. m_rate1 = m_List1array.ElementAt (n).ElementAt (2);
  800. m_rate2 = m_List1array.ElementAt (n).ElementAt (3);
  801. m_money1.Format ("%f", money1);
  802. ConvertToPrice(m_money1);
  803. m_money2.Format ("%f", money2);
  804. ConvertToPrice(m_money2);
  805. temp.Format ("%f", atof(m_base)+money1*atof(m_rate1)/100.0+money2*atof(m_rate2)/100.0 );
  806. ConvertToPrice(temp);
  807. m_List3array.ElementAt (n).SetAt (1, temp);
  808. m_List3array.ElementAt (n).SetAt (2, m_base);
  809. m_List3array.ElementAt (n).SetAt (3, m_money1);
  810. m_List3array.ElementAt (n).SetAt (4, m_money2);
  811. sum1+=atof(temp);
  812. sum2+=atof(m_base);
  813. sum3+=money1;
  814. sum4+=money2;
  815. m_List3array.ElementAt (n).SetAt (5, m_rate1);
  816. m_List3array.ElementAt (n).SetAt (6, m_rate2);
  817. m_List3array.ElementAt (n).SetAt (7, m_List1array.ElementAt (n).ElementAt (5));
  818. }
  819. temp.Format ("%f", sum1);
  820. ConvertToPrice(temp);
  821. m_List3array.ElementAt (n).Add ("统计:");
  822. m_List3array.ElementAt (n).Add (temp);
  823. temp.Format ("%f", sum2);
  824. ConvertToPrice(temp);
  825. m_List3array.ElementAt (n).Add (temp);
  826. temp.Format ("%f", sum3);
  827. ConvertToPrice(temp);
  828. m_List3array.ElementAt (n).Add (temp);
  829. temp.Format ("%f", sum4);
  830. ConvertToPrice(temp);
  831. m_List3array.ElementAt (n).Add (temp);
  832. m_List3array.ElementAt (n).Add ("");
  833. m_List3array.ElementAt (n).Add ("");
  834. m_List3array.ElementAt (n).Add ("");
  835. }