StaffWage.cpp 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550
  1. #include "stdafx.h"
  2. #include "StaffWage.h"
  3. #include "Global/Global.h"
  4. #include "MainFrm.h"
  5. extern CMainFrame *g_pMainWnd;
  6. CStaffWage::CStaffWage(void)
  7. {
  8. m_strStaffName = _T("");
  9. m_strWageStartDate = _T("");
  10. m_strWageEndofDate = _T("");
  11. m_fEaryResultMoney = 0.0;
  12. }
  13. CStaffWage::~CStaffWage(void)
  14. {
  15. ClearStaffWageData();
  16. }
  17. void CStaffWage::ClearStaffWageData()
  18. {
  19. m_AryStaffDetail.RemoveAll();
  20. m_AryReceiptRecords.RemoveAll();
  21. m_AryOrderDetail.RemoveAll();
  22. m_AryOtherIncomeRecord.RemoveAll();
  23. m_ArySceneryWorkRecord.RemoveAll();
  24. m_AryMyWorkRecord.RemoveAll();
  25. m_AryDigitalWorkRecord.RemoveAll();
  26. m_AryWageType.RemoveAll();
  27. m_AryWageTypeMoney.RemoveAll();
  28. m_fEaryResultMoney = 0.0;
  29. }
  30. BOOL CStaffWage::GetStaffWageData(IN CString strStaffName, IN CString strWageStartDate, IN CString strWageEndofDate)
  31. {
  32. m_strStaffName = strStaffName;
  33. m_strWageStartDate = strWageStartDate;
  34. m_strWageEndofDate = strWageEndofDate;
  35. CString strTemp = _T("");
  36. CString strFilter = _T("");
  37. // case 34:查询员工;
  38. strTemp.Format(_T("name = '%s' and dimission='在职';"), m_strStaffName);
  39. strFilter += strTemp;
  40. // case 242:查询所有收款详情;
  41. strTemp.Format(_T("(Paydate >= '%s' and Paydate <= '%s' ) or (PhotoStatus = 'OK' and PhotogOfPaydate >= '%s' and PhotogOfPaydate <= '%s');"), strWageStartDate, strWageEndofDate, strWageStartDate, strWageEndofDate);
  42. strFilter += strTemp;
  43. // case 243:查询收款订单;
  44. strTemp.Format(_T("([waiter1] = '%s' or [waiter2] = '%s' or [waiter3] = '%s' or [waiter4] = '%s' or [waiter5] = '%s' or")
  45. _T(" [waiter6] = '%s' or [waiter7] = '%s' or [waiter8] = '%s' or [waiter9] = '%s' or [waiter12] = '%s' or [waiter22] = '%s')")
  46. _T(" and id in (select distinct id from Payroll where (Paydate >= '%s' and Paydate <= '%s') or (PhotoStatus = 'OK' and PhotogOfPaydate >= '%s' and PhotogOfPaydate <= '%s'));"),
  47. m_strStaffName,
  48. m_strStaffName,
  49. m_strStaffName,
  50. m_strStaffName,
  51. m_strStaffName,
  52. m_strStaffName,
  53. m_strStaffName,
  54. m_strStaffName,
  55. m_strStaffName,
  56. m_strStaffName,
  57. m_strStaffName,
  58. strWageStartDate, strWageEndofDate, strWageStartDate, strWageEndofDate);
  59. strFilter += strTemp;
  60. // case 198:查询其他收入;
  61. strTemp.Format(
  62. _T("[date] >= '%s' and [date] <= '%s' and [renyuan3] = '%s';"),
  63. strWageStartDate, strWageEndofDate, strStaffName);
  64. strFilter += strTemp;
  65. // case 142:查询我的工作;
  66. strTemp.Format(_T("datetime >= '%s' and datetime <= '%s' and name = '%s';"),strWageStartDate, strWageEndofDate, strStaffName);
  67. strFilter += strTemp;
  68. // case 192:查询摄影师景点工作;
  69. strTemp.Format(_T("[date] >= '%s' and [date] <= '%s' and [status] = 'OK' and ([waiter1] = '%s' or [waiter12] = '%s' or [waiter2] = '%s' or [waiter22] = '%s');"),
  70. strWageStartDate, strWageEndofDate, strStaffName,strStaffName,strStaffName,strStaffName);
  71. strFilter += strTemp;
  72. // case 193:查询数码工作记录;
  73. strTemp.Format(
  74. _T("([time8] >='%s' and [time8]<='%s' and [status4]='OK' and [waiter5]='%s') or ")
  75. _T("([time9] >='%s' and [time9]<='%s' and [status6]='OK' and [waiter7]='%s') or ")
  76. _T("([time10] >='%s' and [time10]<='%s' and [status5]='OK' and [waiter4]='%s');"),
  77. strWageStartDate, strWageEndofDate, strStaffName,
  78. strWageStartDate, strWageEndofDate, strStaffName,
  79. strWageStartDate, strWageEndofDate, strStaffName);
  80. strFilter += strTemp;
  81. g_sendhead.code[0] = 34;
  82. g_sendhead.code[1] = 242;
  83. g_sendhead.code[2] = 243;
  84. g_sendhead.code[3] = 198;
  85. g_sendhead.code[4] = 142;
  86. g_sendhead.code[5] = 192;
  87. g_sendhead.code[6] = 193;
  88. g_sendhead.tabcount = 7;
  89. g_sendhead.bsql = FALSE;
  90. g_pMainWnd->ProcessChatMessageRequest2(strFilter);
  91. if ( !g_bSendOK )
  92. return FALSE;
  93. ClearStaffWageData();
  94. DataToArray(&m_AryStaffDetail, &m_AryReceiptRecords, &m_AryOrderDetail, &m_AryOtherIncomeRecord, &m_AryMyWorkRecord, &m_ArySceneryWorkRecord, &m_AryDigitalWorkRecord);
  95. return TRUE;
  96. }
  97. void CStaffWage::GetPhotographerAndMakeupArtistServeRecord(IN CString strOrderNum, IN BOOL &bPhotographer, IN BOOL &bMakeupArtist, IN FLOAT &fPhotographerPercent, IN FLOAT &fMakeupArtistPercent)
  98. {
  99. bPhotographer = bMakeupArtist = FALSE;
  100. INT nSize = m_AryOrderDetail.GetSize();
  101. for ( int i = 0; i < nSize; i++ )
  102. {
  103. // 是否指定要查询的订单;
  104. if ( m_AryOrderDetail.ElementAt(i).ElementAt(0) == strOrderNum )
  105. {
  106. // 主摄影师、摄影师2~4只能有一个;
  107. if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(1) )
  108. {// 是否是有主摄影师服务提成;
  109. bPhotographer = TRUE;
  110. // 获取折扣;
  111. fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(5))/100.0;
  112. if ( fPhotographerPercent == 0.0 )
  113. fPhotographerPercent = 1.0;
  114. }
  115. else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(2) )
  116. {// 是否是有摄影师2服务提成;
  117. bPhotographer = TRUE;
  118. // 获取折扣;
  119. fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(6))/100.0;
  120. if ( fPhotographerPercent == 0.0 )
  121. fPhotographerPercent = 1.0;
  122. }
  123. else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(3) )
  124. {// 是否是有摄影师3服务提成;
  125. bPhotographer = TRUE;
  126. // 获取折扣;
  127. fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(7))/100.0;
  128. if ( fPhotographerPercent == 0.0 )
  129. fPhotographerPercent = 1.0;
  130. }
  131. else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(4) )
  132. {// 是否是有摄影师4服务提成;
  133. bPhotographer = TRUE;
  134. // 获取折扣;
  135. fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(8))/100.0;
  136. if ( fPhotographerPercent == 0.0 )
  137. fPhotographerPercent = 1.0;
  138. }
  139. // 主化妆师、化妆师2~4只能有一个;
  140. if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(9) )
  141. {// 是否是主化妆师服务记录;
  142. bMakeupArtist = TRUE;
  143. // 获取折扣;
  144. fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(13))/100.0;
  145. if ( fMakeupArtistPercent == 0.0 )
  146. fMakeupArtistPercent = 1.0;
  147. }
  148. else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(10) )
  149. {// 是否是有化妆师2服务提成;
  150. bMakeupArtist = TRUE;
  151. // 获取折扣;
  152. fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(14))/100.0;
  153. if ( fMakeupArtistPercent == 0.0 )
  154. fMakeupArtistPercent = 1.0;
  155. }
  156. else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(11) )
  157. {// 是否是有化妆师3服务提成;
  158. bMakeupArtist = TRUE;
  159. // 获取折扣;
  160. fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(15))/100.0;
  161. if ( fMakeupArtistPercent == 0.0 )
  162. fMakeupArtistPercent = 1.0;
  163. }
  164. else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(12) )
  165. {// 是否是有化妆师4服务提成;
  166. bMakeupArtist = TRUE;
  167. // 获取折扣;
  168. fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(16))/100.0;
  169. if ( fMakeupArtistPercent == 0.0 )
  170. fMakeupArtistPercent = 1.0;
  171. }
  172. break;
  173. }
  174. }
  175. }
  176. void CStaffWage::GetSalesServerRecord(IN CString strOrderNum, IN BOOL &bSalesperson1, IN BOOL &bSalesperson2, IN FLOAT &fbSalesperson1Percent, IN FLOAT &fbSalesperson2Percent)
  177. {
  178. bSalesperson1 = bSalesperson2 = FALSE;
  179. INT nSize = m_AryOrderDetail.GetSize();
  180. for ( int i = 0; i < nSize; i++ )
  181. {
  182. // 是否指定要查询的订单;
  183. if ( m_AryOrderDetail.ElementAt(i).ElementAt(0) == strOrderNum )
  184. {
  185. // 主门市;
  186. if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(17) )
  187. {// 是否是主门市提成;
  188. bSalesperson1 = TRUE;
  189. // 获取折扣;
  190. fbSalesperson1Percent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(19))/100.0;
  191. if ( fbSalesperson1Percent == 0.0 )
  192. fbSalesperson1Percent = 1.0;
  193. }
  194. // 副门市;
  195. if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(18) )
  196. {// 是否是副门市提成;
  197. bSalesperson2 = TRUE;
  198. // 获取折扣;
  199. fbSalesperson2Percent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(20))/100.0;
  200. if ( fbSalesperson2Percent == 0.0 )
  201. fbSalesperson2Percent = 1.0;
  202. }
  203. break;
  204. }
  205. }
  206. }
  207. BOOL CStaffWage::GetEarlyReuslts(IN CArray<CStringArray, CStringArray>& AryEarlyResult) // 获取前期业绩;
  208. {
  209. INT nSize = m_AryReceiptRecords.GetSize();
  210. AryEarlyResult.SetSize(nSize*11, 1);
  211. INT nIndex = -1;
  212. INT nArypos = 0;
  213. CString strMoney;
  214. BOOL bPhotographer,bMakeupArtist;
  215. FLOAT fPhotographer, fMakeupArtist;
  216. BOOL bSalesperson1,bSalesperson2;
  217. FLOAT fbSalesperson1Percent, fbSalesperson2Percent;
  218. for ( int i = 0; i < nSize; i++ )
  219. {
  220. // 前期业绩;
  221. if ( m_AryReceiptRecords.ElementAt(i).ElementAt(5) == _T("3") || m_AryReceiptRecords.ElementAt(i).ElementAt(5) == _T("4"))
  222. {
  223. fPhotographer = fMakeupArtist = 0.0;
  224. bPhotographer = bMakeupArtist = FALSE;
  225. if ( m_AryReceiptRecords.ElementAt(i).ElementAt(9) == _T("OK") && m_AryReceiptRecords.ElementAt(i).ElementAt(10) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(10) <= m_strWageEndofDate )
  226. {
  227. // 1.这笔收款,员工是否有摄影+化妆服务项;
  228. GetPhotographerAndMakeupArtistServeRecord(m_AryReceiptRecords.ElementAt(i).ElementAt(0), bPhotographer, bMakeupArtist, fPhotographer, fMakeupArtist);
  229. // ElementAt(56):工资设置:摄影师也有前期提成;
  230. if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(56)) && bPhotographer )
  231. {// 摄影前期;
  232. // 按提成百分比计算;
  233. strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fPhotographer);
  234. // 累加前期业绩;
  235. m_fEaryResultMoney += _tstof(strMoney);
  236. // 累加摄影工资类型金额;
  237. if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_PHOTOGRAPHER)) == -1 )
  238. {
  239. m_AryWageType.Add(WAGE_EARLY_PHOTOGRAPHER);
  240. m_AryWageTypeMoney.Add(_tstof(strMoney));
  241. }
  242. else
  243. {
  244. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  245. }
  246. // 保存该类型工资记录;
  247. AryEarlyResult.ElementAt(nArypos).RemoveAll();
  248. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  249. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
  250. AryEarlyResult.ElementAt(nArypos).Add(WAGE_EARLY_PHOTOGRAPHER); // 工资类型;
  251. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  252. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
  253. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
  254. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  255. nArypos++;
  256. }
  257. // ElementAt(57):工资设置:化妆师也有前期提成;
  258. if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(57)) && bMakeupArtist )
  259. {// 化妆前期;
  260. // 按提成百分比计算;
  261. strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fMakeupArtist);
  262. // 累加前期业绩;
  263. m_fEaryResultMoney += _tstof(strMoney);
  264. // 累加摄影工资类型金额;
  265. if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_MAKEUPARTIST)) == -1 )
  266. {
  267. m_AryWageType.Add(WAGE_EARLY_MAKEUPARTIST);
  268. m_AryWageTypeMoney.Add(_tstof(strMoney));
  269. }
  270. else
  271. {
  272. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  273. }
  274. // 保存该类型工资记录;
  275. AryEarlyResult.ElementAt(nArypos).RemoveAll();
  276. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  277. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
  278. AryEarlyResult.ElementAt(nArypos).Add(WAGE_EARLY_MAKEUPARTIST); // 工资类型;
  279. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  280. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
  281. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
  282. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  283. nArypos++;
  284. }
  285. }
  286. // 2.这笔收款,员工是否有门市服务项;
  287. bSalesperson1 = bSalesperson2 = 0.0;
  288. fbSalesperson1Percent = fbSalesperson2Percent = FALSE;
  289. GetSalesServerRecord(m_AryReceiptRecords.ElementAt(i).ElementAt(0), bSalesperson1, bSalesperson2, fbSalesperson1Percent, fbSalesperson2Percent);
  290. if ( bSalesperson1 )
  291. {// 主门市;
  292. // 按提成百分比计算;
  293. strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fMakeupArtist);
  294. // 累加前期业绩;
  295. m_fEaryResultMoney += _tstof(strMoney);
  296. // 累加门市类型金额;
  297. if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_SALES)) == -1 )
  298. {
  299. m_AryWageType.Add(WAGE_EARLY_SALES);
  300. m_AryWageTypeMoney.Add(_tstof(strMoney));
  301. }
  302. else
  303. {
  304. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  305. }
  306. // 保存该类型工资记录;
  307. AryEarlyResult.ElementAt(nArypos).RemoveAll();
  308. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  309. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
  310. AryEarlyResult.ElementAt(nArypos).Add(WAGE_EARLY_SALES); // 工资类型;
  311. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  312. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
  313. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
  314. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  315. nArypos++;
  316. }
  317. if ( bSalesperson2 )
  318. {// 副门市;
  319. // 按提成百分比计算;
  320. strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fMakeupArtist);
  321. // 累加前期业绩;
  322. m_fEaryResultMoney += _tstof(strMoney);
  323. // 累加门市类型金额;
  324. if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_SALES)) == -1 )
  325. {
  326. m_AryWageType.Add(WAGE_EARLY_SALES);
  327. m_AryWageTypeMoney.Add(_tstof(strMoney));
  328. }
  329. else
  330. {
  331. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  332. }
  333. // 保存该类型工资记录;
  334. AryEarlyResult.ElementAt(nArypos).RemoveAll();
  335. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  336. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
  337. AryEarlyResult.ElementAt(nArypos).Add(WAGE_EARLY_SALES); // 工资类型;
  338. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  339. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
  340. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
  341. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  342. nArypos++;
  343. }
  344. }
  345. // 选片二销;
  346. else if ( m_AryReceiptRecords.ElementAt(i).ElementAt(12) == _T("选片二销") )
  347. {
  348. bPhotographer = bMakeupArtist = FALSE;
  349. fPhotographer = fMakeupArtist = 0.0;
  350. if ( m_AryReceiptRecords.ElementAt(i).ElementAt(9) == _T("OK") && m_AryReceiptRecords.ElementAt(i).ElementAt(10) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(10) <= m_strWageEndofDate )
  351. {
  352. GetPhotographerAndMakeupArtistServeRecord(m_AryReceiptRecords.ElementAt(i).ElementAt(0), bPhotographer, bMakeupArtist, fPhotographer, fMakeupArtist);
  353. // ElementAt(41):工资设置:摄影师也有选片二销提成;
  354. if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(41)) && bPhotographer )
  355. {
  356. // 按提成百分比计算;
  357. strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fPhotographer);
  358. // 累加选片二销业绩;
  359. m_fSelectMoney += _tstof(strMoney);
  360. // 累加摄影也有选片二销工资类型金额;
  361. if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_PHOTOGRAPHER)) == -1 )
  362. {
  363. m_AryWageType.Add(WAGE_SEL_PHOTOGRAPHER);
  364. m_AryWageTypeMoney.Add(_tstof(strMoney));
  365. }
  366. else
  367. {
  368. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  369. }
  370. // 保存该类型工资记录;
  371. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  372. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
  373. AryEarlyResult.ElementAt(nArypos).Add(WAGE_SEL_PHOTOGRAPHER); // 工资类型;
  374. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  375. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
  376. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
  377. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  378. nArypos++;
  379. }
  380. // ElementAt(42):工资设置:化妆师或引导师也有选片二销提成;
  381. if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(42)) && bMakeupArtist )
  382. {
  383. // 按提成百分比计算;
  384. strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fMakeupArtist);
  385. // 累加选片二销业绩;
  386. m_fSelectMoney += _tstof(strMoney);
  387. // 累加化妆也有选片二销工资类型金额;
  388. if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_MAKEUPARTIST)) == -1 )
  389. {
  390. m_AryWageType.Add(WAGE_SEL_MAKEUPARTIST);
  391. m_AryWageTypeMoney.Add(_tstof(strMoney));
  392. }
  393. else
  394. {
  395. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  396. }
  397. // 保存该类型工资记录;
  398. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  399. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
  400. AryEarlyResult.ElementAt(nArypos).Add(WAGE_SEL_MAKEUPARTIST); // 工资类型;
  401. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  402. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
  403. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
  404. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  405. nArypos++;
  406. }
  407. }
  408. // 这笔收款,员工是否还是本次选片二销的选片师;
  409. if ( m_strStaffName == m_AryReceiptRecords.ElementAt(i).ElementAt(11) )
  410. {
  411. // 按提成百分比计算;
  412. strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) );
  413. // 累加选片二销业绩;
  414. m_fSelectMoney += _tstof(strMoney);
  415. // 累加化妆也有选片二销工资类型金额;
  416. if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_SALES)) == -1 )
  417. {
  418. m_AryWageType.Add(WAGE_SEL_SALES);
  419. m_AryWageTypeMoney.Add(_tstof(strMoney));
  420. }
  421. else
  422. {
  423. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  424. }
  425. // 保存该类型工资记录;
  426. AryEarlyResult.ElementAt(nArypos).RemoveAll();
  427. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  428. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
  429. AryEarlyResult.ElementAt(nArypos).Add(WAGE_SEL_SALES); // 工资类型;
  430. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  431. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
  432. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
  433. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  434. nArypos++;
  435. }
  436. }
  437. // 其他订单二销;
  438. else
  439. {
  440. // 这笔收款,员工是否还是本次其他订单二销的促成者;
  441. if ( m_strStaffName == m_AryReceiptRecords.ElementAt(i).ElementAt(11) )
  442. {
  443. // 获取提成;
  444. strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)));
  445. // 累加选片二销业绩;
  446. m_fSelectMoney += _tstof(strMoney);
  447. // 累加化妆也有选片二销工资类型金额;
  448. if ( (nIndex = FindArray(&m_AryWageType, m_AryReceiptRecords.ElementAt(i).ElementAt(12))) == -1 )
  449. {
  450. m_AryWageType.Add(m_AryReceiptRecords.ElementAt(i).ElementAt(12));
  451. m_AryWageTypeMoney.Add(_tstof(strMoney));
  452. }
  453. else
  454. {
  455. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  456. }
  457. // 保存该类型工资记录;
  458. AryEarlyResult.ElementAt(nArypos).RemoveAll();
  459. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  460. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
  461. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(12)); // 工资类型;
  462. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  463. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
  464. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
  465. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  466. nArypos++;
  467. }
  468. }
  469. }
  470. // 其他收入业绩(散客消费);
  471. nSize = m_AryOtherIncomeRecord.GetSize();
  472. for ( int i = 0; i < nSize; i++ )
  473. {
  474. strMoney.Format(_T("%0.2f"), _tstof(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(4)));
  475. //if ( m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3) == WAGE_SEC_PHOTOGRAPHER)
  476. // 累加化妆也有选片二销工资类型金额;
  477. if ( (nIndex = FindArray(&m_AryWageType, m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3))) == -1 )
  478. {
  479. m_AryWageType.Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3));
  480. m_AryWageTypeMoney.Add(_tstof(strMoney));
  481. }
  482. else
  483. {
  484. m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
  485. }
  486. // 保存该类型工资记录;
  487. AryEarlyResult.ElementAt(nArypos).RemoveAll();
  488. AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
  489. AryEarlyResult.ElementAt(nArypos).Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(5)); // 工资日期;
  490. AryEarlyResult.ElementAt(nArypos).Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3)); // 工资类型;
  491. AryEarlyResult.ElementAt(nArypos).Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(1)); // 顾客1姓名;
  492. AryEarlyResult.ElementAt(nArypos).Add(_T("")); // 顾客2姓名;
  493. AryEarlyResult.ElementAt(nArypos).Add(_T("")); // 套系类型;
  494. AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
  495. nArypos++;
  496. }
  497. AryEarlyResult.SetSize(nArypos);
  498. return FALSE;
  499. }