MySalary.cpp 117 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478
  1. // MySalary.cpp : implementation file
  2. //
  3. #include "stdafx.h"
  4. #include "ylgl.h"
  5. #include "MySalary.h"
  6. #include "MyMdi.H"
  7. #include "SetSalary.h"
  8. #include "ShowHisSalary.h"
  9. #include "SalarySet4.h"
  10. #include "SelExpendType.h"
  11. #include "SelExportType.h"
  12. #include <odbcinst.h>
  13. #include <io.h>
  14. #include "StaffWage.h"
  15. #ifdef _DEBUG
  16. #define new DEBUG_NEW
  17. #undef THIS_FILE
  18. static char THIS_FILE[] = __FILE__;
  19. #endif
  20. /////////////////////////////////////////////////////////////////////////////
  21. IMPLEMENT_DYNCREATE(MySalary, MyFormView)
  22. MySalary::MySalary() : MyFormView(MySalary::IDD)
  23. {
  24. m_strStaffName = _T("");
  25. m_rate1 = _T("");
  26. m_rate2 = _T("");
  27. m_strStaffNote = _T("");
  28. m_strBasicWage = _T("");
  29. m_strTotalWage = _T("");
  30. m_rate3 = _T("");
  31. m_rate4 = _T("");
  32. m_rate5 = _T("");
  33. m_strEarlyAchievementMoney = _T("");
  34. m_strSecondarySalesAchievementMoney = _T("");
  35. m_money3 = _T("");
  36. m_money4 = _T("");
  37. m_money5 = _T("");
  38. m_strmoney6 = _T("");
  39. m_bInit = 0;
  40. m_bAll = 0;
  41. m_year = atoi(g_date.Mid(0, 4));
  42. m_month = atoi(g_date.Mid(5, 2));
  43. m_date2 = GetTmFromStr(g_date);
  44. m_date1 = m_date2 - CTimeSpan(30, 0, 0, 0);
  45. }
  46. MySalary::~MySalary()
  47. {
  48. }
  49. void MySalary::DoDataExchange(CDataExchange* pDX)
  50. {
  51. MyFormView::DoDataExchange(pDX);
  52. DDX_Control(pDX, IDC_LIST11, m_ListTemp);
  53. DDX_Control(pDX, IDC_COMBO7, m_comboname);
  54. DDX_Control(pDX, IDC_COMBO6, m_combocaltype);
  55. DDX_Control(pDX, IDC_LIST8, m_Listdigital);
  56. DDX_Control(pDX, IDC_LIST7, m_Listtake);
  57. DDX_Control(pDX, IDC_LIST4, m_List4);
  58. DDX_Control(pDX, IDC_LIST3, m_List3);
  59. DDX_Control(pDX, IDC_LIST1, m_ListBox1);
  60. DDX_Control(pDX, IDC_SPIN2, m_spinmonth);
  61. DDX_Control(pDX, IDC_SPIN1, m_spinyear);
  62. DDX_Control(pDX, IDC_LIST2, m_List1);
  63. DDX_Control(pDX, IDC_STATIC1, m_static1);
  64. DDX_Text(pDX, IDC_EDITname, m_strStaffName);
  65. DDX_Text(pDX, IDC_EDITrate1, m_rate1);
  66. DDX_Text(pDX, IDC_EDITrate2, m_rate2);
  67. DDX_Text(pDX, IDC_EDITbz, m_strStaffNote);
  68. DDX_Text(pDX, IDC_EDITbase, m_strBasicWage);
  69. DDX_Text(pDX, IDC_EDITmonth, m_month);
  70. DDV_MinMaxUInt(pDX, m_month, 1, 12);
  71. DDX_Text(pDX, IDC_EDITsalary, m_strTotalWage);
  72. DDX_Text(pDX, IDC_EDITyear, m_year);
  73. DDV_MinMaxUInt(pDX, m_year, 1900, 3000);
  74. DDX_Text(pDX, IDC_EDITrate3, m_rate3);
  75. DDX_Text(pDX, IDC_EDITrate4, m_rate4);
  76. DDX_Text(pDX, IDC_EDITrate6, m_rate5);
  77. DDX_Text(pDX, IDC_EDITmoney1, m_strEarlyAchievementMoney);
  78. DDX_Text(pDX, IDC_EDITmoney2, m_strSecondarySalesAchievementMoney);
  79. DDX_Text(pDX, IDC_EDITmoney3, m_money3);
  80. DDX_Text(pDX, IDC_EDITmoney4, m_money4);
  81. DDX_Text(pDX, IDC_EDITmoney5, m_money5);
  82. DDX_Text(pDX, IDC_EDITmoney6, m_strmoney6);
  83. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER1, m_date1);
  84. DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER2, m_date2);
  85. }
  86. BEGIN_MESSAGE_MAP(MySalary, MyFormView)
  87. ON_BN_CLICKED(IDC_BUTclose, OnBUTclose)
  88. ON_LBN_SELCHANGE(IDC_LIST1, OnSelchangeList1)
  89. ON_EN_CHANGE(IDC_EDITyear, OnChangeEDITyear)
  90. ON_EN_CHANGE(IDC_EDITmonth, OnChangeEDITmonth)
  91. ON_BN_CLICKED(IDC_BUTshowall, OnBUTshowall)
  92. ON_BN_CLICKED(IDC_BUT1, OnBut1)
  93. ON_BN_CLICKED(IDC_BUT2, OnBut2)
  94. ON_BN_CLICKED(IDC_BUT3, OnBut3)
  95. ON_CBN_SELCHANGE(IDC_COMBO6, OnSelchangeCombo6)
  96. ON_BN_CLICKED(IDC_BUT4, OnBut4)
  97. ON_BN_CLICKED(IDC_BUTTON4, OnButton4)
  98. ON_BN_CLICKED(IDC_BUTTON5, OnButton5)
  99. ON_BN_CLICKED(IDC_BUTTON6, OnButton6)
  100. ON_CBN_CLOSEUP(IDC_COMBO7, OnCloseupCombo7)
  101. ON_BN_CLICKED(IDC_BUTTON14, OnButton14)
  102. ON_BN_CLICKED(IDC_BUTTON7, OnButton7)
  103. ON_BN_CLICKED(IDC_BUTTON8, OnButton8)
  104. ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER1, OnDatetimechangeDatetimepicker1)
  105. ON_NOTIFY(DTN_DATETIMECHANGE, IDC_DATETIMEPICKER2, OnDatetimechangeDatetimepicker2)
  106. END_MESSAGE_MAP()
  107. /////////////////////////////////////////////////////////////////////////////
  108. // MySalary diagnostics
  109. #ifdef _DEBUG
  110. void MySalary::AssertValid() const
  111. {
  112. MyFormView::AssertValid();
  113. }
  114. void MySalary::Dump(CDumpContext& dc) const
  115. {
  116. MyFormView::Dump(dc);
  117. }
  118. #endif //_DEBUG
  119. /////////////////////////////////////////////////////////////////////////////
  120. void MySalary::OnInitialUpdate()
  121. {
  122. MyFormView::OnInitialUpdate();
  123. if (IsHasRights2new(25) == 0)
  124. {
  125. GetDlgItem(IDC_BUT1)->EnableWindow(0);
  126. }
  127. CMyMdi Mdi;
  128. Mdi.SetSubView((CWnd*)GetParent(), (CWnd*)this);
  129. m_combocaltype.AddString("计算初修提成");
  130. m_combocaltype.AddString("计算精修提成");
  131. m_combocaltype.AddString("计算设计提成");
  132. CRect rc2;
  133. GetWindowRect(rc2);
  134. ::MoveWindow(m_hWnd, g_rc.left, g_rc.top, g_rc.Width(), g_rc.Height(), TRUE);
  135. EnumChildWindows(m_hWnd, (WNDENUMPROC)EnumChildProc, 0);
  136. m_comboname.RefDroppedWidth();
  137. m_combocaltype.GetWindowRect(rc2);
  138. ScreenToClient(rc2);
  139. rc2.bottom += 200;
  140. m_combocaltype.MoveWindow(rc2);
  141. m_static1.SetFont(&g_titlefont);
  142. #ifdef CHILD_VERSION
  143. m_List1.SetHeadings("金额,100;日期,100;款项类别,100;家长姓名,100;宝宝姓名,100;套系类别,100;付款方式,100");
  144. m_ListTemp.SetHeadings("金额,100;日期,100;款项类别,100;家长姓名,100;宝宝姓名,100;套系类别,100;付款方式,100");
  145. m_List1.LoadColumnInfo(23);
  146. m_List3.SetHeadings("姓名,100;总工资,100;基本工资,100;前期业绩,100;后期业绩,100;职务提成,100;部门,100;备注,100");
  147. m_List3.LoadColumnInfo(124);
  148. m_List4.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;提成金额,100;部门,100;内容,100;数量,100;单价,100;提成方式,100;套系价格,100;日期,100");
  149. m_List4.LoadColumnInfo(139);
  150. m_Listtake.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;套系,100;价格,100;景点,100;日期,100;摄影,100;助理,100;化妆师,100;助理,100;套系类别,100");
  151. #ifdef LKAY_VERSION
  152. m_Listdigital.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;套系,100;价格,100;初修,100;日期1,100;精修,100;日期2,100;设计,100;日期3,100;初修,50;精修,50;设计,50;选片二销,50;套系类别,100;P数,50;张数,50" );
  153. #else
  154. //m_Listdigital.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;套系,100;价格,100;初修,100;日期1,100;精修,100;日期2,100;设计,100;日期3,100;初修,50;精修,50;设计,50;选片二销,50;套系类别,100");
  155. m_Listdigital.SetHeadings("订单号,100;家长姓名,100;宝宝姓名,100;套系,100;价格,100;初修,100;日期1,100;精修,100;日期2,100;设计,100;日期3,100;初修,50;精修,50;设计,50;选片二销,50;套系类别,100");
  156. #endif
  157. m_Listtake.LoadColumnInfo(210);
  158. m_Listdigital.LoadColumnInfo(211);
  159. #else
  160. m_List1.SetHeadings("金额,100;日期,100;款项类别,100;男宾姓名,100;女宾姓名,100;套系类别,100;付款方式,100");
  161. m_ListTemp.SetHeadings("金额,100;日期,100;款项类别,100;男宾姓名,100;女宾姓名,100;套系类别,100;付款方式,100");
  162. m_List1.LoadColumnInfo(23);
  163. m_List3.SetHeadings("姓名,100;总工资,100;基本工资,100;前期业绩,100;后期业绩,100;职务提成,100;部门,100;备注,100");
  164. m_List3.LoadColumnInfo(124);
  165. m_List4.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;提成金额,100;部门,100;内容,100;数量,100;单价,100;提成方式,100;套系价格,100;日期,100");
  166. m_List4.LoadColumnInfo(139);
  167. m_Listtake.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;套系,100;价格,100;景点,100;日期,100;摄影,100;助理,100;化妆师,100;助理,100;套系类别,100");
  168. m_Listdigital.SetHeadings("订单号,100;男宾姓名,100;女宾姓名,100;套系,100;价格,100;初修,100;日期1,100;精修,100;日期2,100;设计,100;日期3,100;初修,50;精修,50;设计,50;选片二销,50;套系类别,100");
  169. m_Listtake.LoadColumnInfo(210);
  170. m_Listdigital.LoadColumnInfo(211);
  171. #endif
  172. m_spinyear.SetRange(1900, 3000);
  173. m_spinmonth.SetRange(1, 12);
  174. BOOL bShowAll = 0;
  175. if (g_ncount == 100)bShowAll = 1;
  176. g_ncount = 0;
  177. GetData();
  178. if (bShowAll == 0)
  179. GetDlgItem(IDC_LIST3)->ShowWindow(0);
  180. if (IsHasRights2new(25) == 0)
  181. {
  182. m_ListBox1.EnableWindow(0);
  183. m_comboname.EnableWindow(0);
  184. GetDlgItem(IDC_BUTshowall)->EnableWindow(0);
  185. }
  186. else if (bShowAll)
  187. {
  188. g_ncount = 0;
  189. OnBUTshowall();
  190. }
  191. }
  192. void MySalary::FillGrid(CArray<CStringArray, CStringArray>*array)
  193. {
  194. m_List1.DeleteAllItems2();
  195. int ii = 0;
  196. m_List1.m_arLabels.SetSize(array->GetSize(), 1);
  197. int count = 0;
  198. for (ii = 0; ii < m_List1.m_arLabels.GetSize(); ii++)
  199. {
  200. m_List1.m_arLabels.ElementAt(count++).Copy(array->ElementAt(ii));
  201. }
  202. m_List1.m_arLabels.SetSize(count, 1);
  203. ii = count;
  204. m_List1.m_LabelCount = ii;
  205. m_List1.SetItemCountEx(ii);
  206. }
  207. void MySalary::FillGridTake(CArray<CStringArray, CStringArray>*array)
  208. {
  209. m_Listtake.DeleteAllItems2();
  210. int ii = 0;
  211. m_Listtake.m_arLabels.SetSize(array->GetSize(), 1);
  212. int count = 0;
  213. for (ii = 0; ii < m_Listtake.m_arLabels.GetSize(); ii++)
  214. {
  215. m_Listtake.m_arLabels.ElementAt(count++).Copy(array->ElementAt(ii));
  216. }
  217. m_Listtake.m_arLabels.SetSize(count, 1);
  218. ii = count;
  219. m_Listtake.m_LabelCount = ii;
  220. m_Listtake.SetItemCountEx(ii);
  221. }
  222. void MySalary::FillGridDigital(CArray<CStringArray, CStringArray>*array)
  223. {
  224. m_Listdigital.DeleteAllItems2();
  225. int ii = 0;
  226. m_Listdigital.m_arLabels.SetSize(array->GetSize(), 1);
  227. int count = 0;
  228. for (ii = 0; ii < m_Listdigital.m_arLabels.GetSize(); ii++)
  229. {
  230. m_Listdigital.m_arLabels.ElementAt(count++).Copy(array->ElementAt(ii));
  231. }
  232. m_Listdigital.m_arLabels.SetSize(count, 1);
  233. ii = count;
  234. m_Listdigital.m_LabelCount = ii;
  235. m_Listdigital.SetItemCountEx(ii);
  236. }
  237. void MySalary::OnBUTclose()
  238. {
  239. GetParent()->SendMessage(WM_CLOSE);
  240. }
  241. void MySalary::GetData()
  242. {
  243. m_bInit = 1;
  244. g_sendhead.bsql = 0;
  245. g_sendhead.code[0] = 34; // renyuan表;
  246. g_sendhead.code[1] = 146; // workrate表;
  247. g_sendhead.tabcount = 2;
  248. CString filter = _T("dimission='在职';");
  249. g_pMainWnd->ProcessChatMessageRequest2(filter);
  250. if (g_bSendOK == 0)return;
  251. DataToArray(&m_AryStaffInfo, &m_Workratearray);
  252. int i = 0;
  253. m_ListBox1.ResetContent();
  254. for ( i = 0; i < m_AryStaffInfo.GetSize(); i++)
  255. {
  256. m_ListBox1.AddString(m_AryStaffInfo.ElementAt(i).ElementAt(0));
  257. }
  258. CString str;
  259. for (i = 0; i < m_ListBox1.GetCount(); i++)
  260. {
  261. m_ListBox1.GetText(i, str);
  262. if (str == g_user.name)
  263. {
  264. m_ListBox1.SetCurSel(i);
  265. m_comboname.AddString(g_user.name);
  266. m_comboname.SetCurSel(m_comboname.FindString(0, g_user.name));
  267. OnSelchangeList1();
  268. break;
  269. }
  270. }
  271. }
  272. void MySalary::OnChangeEDITyear()
  273. {
  274. }
  275. void MySalary::OnChangeEDITmonth()
  276. {
  277. }
  278. extern float GetSalaryFromRule(float fmoney, CString rule);
  279. CString GetRule(CString name)
  280. {
  281. CString oldrule = g_cominfoarray.ElementAt(0).ElementAt(77);
  282. CString header = "$" + name + ":";
  283. CString left, right;
  284. int pos = oldrule.Find(header);
  285. if (pos != -1)
  286. {
  287. right = oldrule.Right(oldrule.GetLength() - pos - header.GetLength());
  288. pos = right.Find("$");
  289. if (pos != -1)
  290. right = right.Left(pos);
  291. right = header + right;
  292. return right;
  293. }
  294. return "";
  295. }
  296. #if 0
  297. void MySalary::OnSelchangeList1()
  298. {
  299. if (m_bInit == 0)return;
  300. UpdateData();
  301. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(0);
  302. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(0);
  303. if (m_bAll)
  304. {
  305. m_AryStaffWageInfo.RemoveAll();
  306. FillGrid2();
  307. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  308. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  309. return;
  310. }
  311. CString strStaffName;
  312. int pos = m_comboname.GetCurSel();
  313. if (pos == -1)
  314. {
  315. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  316. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  317. return;
  318. }
  319. m_comboname.GetWindowText(strStaffName);
  320. CString date1(_T("")), date2(_T(""));
  321. date1 = m_date1.Format("%Y-%m-%d");
  322. date2 = m_date2.Format("%Y-%m-%d");
  323. m_year = m_date1.GetYear();
  324. int i;
  325. int g_nYearposTemp = g_nYearpos;
  326. BOOL bLastYear = 0;
  327. BOOL bThisYear = 0;
  328. #if JEFF_TEST_ON // 2015开始禁用跨年数据;
  329. if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  330. {
  331. g_nYearpos = -1;
  332. bThisYear = 1;
  333. }
  334. else if (m_year <= 2013 && g_hisyeararray.GetSize())
  335. {
  336. g_nYearpos = GetYearPos(m_year);
  337. bLastYear = 1;
  338. }
  339. #else
  340. if (m_year == atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  341. bThisYear = 1;
  342. else if (m_year <= atoi(g_date.Left(4)) - 1 && g_hisyeararray.GetSize())
  343. bLastYear = 1;
  344. g_nYearpos = GetYearPos(m_year);
  345. #endif
  346. ///////////////
  347. CString filter = "name='" + strStaffName + "' and dimission='在职';date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "' and renyuan3='" + strStaffName + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "' and name='" + strStaffName + "'";
  348. CString temp;
  349. temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + strStaffName + "' or [waiter12]='" + strStaffName + "' or [waiter2]='" + strStaffName + "' or [waiter22]='" + strStaffName + "')";
  350. filter += temp;
  351. temp = ";([time8]>='" + date1 + "' and [time8]<='" + date2 + "' and [status4]='OK' and [waiter5]='" + strStaffName + "') or ([time9]>='" + date1 + "' and [time9]<='" + date2 + "' and [status6]='OK' and [waiter7]='" + strStaffName + "') or ([time10]>='" + date1 + "' and [time10]<='" + date2 + "' and [status5]='OK' and [waiter4]='" + strStaffName + "')";
  352. filter += temp;
  353. // filter后***的SQL属于case 61里的。
  354. g_sendhead.code[0] = 34; // reyuan;
  355. g_sendhead.code[1] = 59; // dindanbukuanview;
  356. g_sendhead.code[2] = 60; // dindan;
  357. g_sendhead.code[3] = 198; // singleincomemoneyview;
  358. g_sendhead.code[4] = 61; // dindan + dindanbukuan;
  359. g_sendhead.code[5] = 142; // dindan + mywork;
  360. g_sendhead.code[6] = 192; // dindan + dindanjd;
  361. g_sendhead.code[7] = 193; // digitalview;
  362. g_sendhead.tabcount = 8;
  363. g_sendhead.bsql = 0;
  364. g_pMainWnd->ProcessChatMessageRequest2(filter);
  365. if (g_bSendOK == 0)
  366. {
  367. g_nYearpos = g_nYearposTemp;
  368. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  369. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  370. return;
  371. }
  372. CArray<CStringArray, CStringArray>AryUser; // 人员;
  373. CArray<CStringArray, CStringArray>AryReplenishment; // 补款;
  374. CArray<CStringArray, CStringArray>AryWaiter; // 服务人员;
  375. CArray<CStringArray, CStringArray>singleincomearray;
  376. CArray<CStringArray, CStringArray>bukuanarray2;
  377. CArray<CStringArray, CStringArray>takearray;
  378. CArray<CStringArray, CStringArray>digitalarray;
  379. DataToArray(&AryUser, &AryReplenishment, &AryWaiter, &singleincomearray, &bukuanarray2, &m_List4array, &takearray, &digitalarray);
  380. ///////////////////
  381. if (bLastYear)//如果是去年, 则加今年的补款;
  382. {
  383. g_nYearpos = -1;//今年
  384. filter = "name='" + strStaffName + "' and dimission='在职';date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "' and renyuan3='" + strStaffName + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "' and name='" + strStaffName + "'";
  385. CString temp;
  386. temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + strStaffName + "' or [waiter12]='" + strStaffName + "' or [waiter2]='" + strStaffName + "' or [waiter22]='" + strStaffName + "')";
  387. filter += temp;
  388. temp = ";([time8]>='" + date1 + "' and [time8]<='" + date2 + "' and [status4]='OK' and [waiter5]='" + strStaffName + "') or ([time9]>='" + date1 + "' and [time9]<='" + date2 + "' and [status6]='OK' and [waiter7]='" + strStaffName + "') or ([time10]>='" + date1 + "' and [time10]<='" + date2 + "' and [status5]='OK' and [waiter4]='" + strStaffName + "')";
  389. filter += temp;
  390. g_sendhead.code[0] = 34; // reyuan;
  391. g_sendhead.code[1] = 59; // dindanbukuanview;
  392. g_sendhead.code[2] = 60; // dindan;
  393. g_sendhead.code[3] = 198; // singleincomemoneyview;
  394. g_sendhead.code[4] = 61; // dindan + dindanbukuan;
  395. g_sendhead.code[5] = 142; // dindan + mywork;
  396. g_sendhead.code[6] = 192; // dindan + dindanjd;
  397. g_sendhead.code[7] = 193; // digitalview;
  398. g_sendhead.tabcount = 8;
  399. g_sendhead.bsql = 0;
  400. g_pMainWnd->ProcessChatMessageRequest2(filter);
  401. if (g_bSendOK == 0)
  402. {
  403. g_nYearpos = g_nYearposTemp;
  404. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  405. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  406. return;
  407. }
  408. CArray<CStringArray, CStringArray>ThisYearbukuanarray;
  409. CArray<CStringArray, CStringArray>ThisYearwaiterarray;
  410. CArray<CStringArray, CStringArray>ThisYearsingleincomearray;
  411. CArray<CStringArray, CStringArray>ThisYearbukuanarray2;
  412. CArray<CStringArray, CStringArray>ThisYearm_List4array;
  413. CArray<CStringArray, CStringArray>ThisYeartakearray;
  414. CArray<CStringArray, CStringArray>ThisYeardigitalarray;
  415. DataToArray(&AryUser, &ThisYearbukuanarray, &ThisYearwaiterarray, &ThisYearsingleincomearray, &ThisYearbukuanarray2, &ThisYearm_List4array, &ThisYeartakearray, &ThisYeardigitalarray);
  416. int oldsize = AryReplenishment.GetSize();
  417. AryReplenishment.SetSize(oldsize + ThisYearbukuanarray.GetSize());
  418. for (i = oldsize; i < oldsize + ThisYearbukuanarray.GetSize(); i++)
  419. {
  420. AryReplenishment.ElementAt(i).Copy(ThisYearbukuanarray.ElementAt(i - oldsize));
  421. }
  422. oldsize = AryWaiter.GetSize();
  423. AryWaiter.SetSize(oldsize + ThisYearwaiterarray.GetSize());
  424. for (i = oldsize; i < oldsize + ThisYearwaiterarray.GetSize(); i++)
  425. {
  426. AryWaiter.ElementAt(i).Copy(ThisYearwaiterarray.ElementAt(i - oldsize));
  427. }
  428. oldsize = singleincomearray.GetSize();
  429. singleincomearray.SetSize(oldsize + ThisYearsingleincomearray.GetSize());
  430. for (i = oldsize; i < oldsize + ThisYearsingleincomearray.GetSize(); i++)
  431. {
  432. singleincomearray.ElementAt(i).Copy(ThisYearsingleincomearray.ElementAt(i - oldsize));
  433. }
  434. oldsize = bukuanarray2.GetSize();
  435. bukuanarray2.SetSize(oldsize + ThisYearbukuanarray2.GetSize());
  436. for (i = oldsize; i < oldsize + ThisYearbukuanarray2.GetSize(); i++)
  437. {
  438. bukuanarray2.ElementAt(i).Copy(ThisYearbukuanarray2.ElementAt(i - oldsize));
  439. }
  440. oldsize = m_List4array.GetSize();
  441. m_List4array.SetSize(oldsize + ThisYearm_List4array.GetSize());
  442. for (i = oldsize; i < oldsize + ThisYearm_List4array.GetSize(); i++)
  443. {
  444. m_List4array.ElementAt(i).Copy(ThisYearm_List4array.ElementAt(i - oldsize));
  445. }
  446. oldsize = takearray.GetSize();
  447. takearray.SetSize(oldsize + ThisYeartakearray.GetSize());
  448. for (i = oldsize; i < oldsize + ThisYeartakearray.GetSize(); i++)
  449. {
  450. takearray.ElementAt(i).Copy(ThisYeartakearray.ElementAt(i - oldsize));
  451. }
  452. oldsize = digitalarray.GetSize();
  453. digitalarray.SetSize(oldsize + ThisYeardigitalarray.GetSize());
  454. for (i = oldsize; i < oldsize + ThisYeardigitalarray.GetSize(); i++)
  455. {
  456. digitalarray.ElementAt(i).Copy(ThisYeardigitalarray.ElementAt(i - oldsize));
  457. }
  458. }
  459. else if (bThisYear)//如果是今年, 则加去年的补款
  460. {
  461. g_nYearpos = 0;//去年
  462. filter = "date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "' and renyuan3='" + strStaffName + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "' and name='" + strStaffName + "'";
  463. CString temp;
  464. temp = ";[date]>='" + date1 + "' and [date]<='" + date2 + "' and [status]='OK' and ([waiter1]='" + strStaffName + "' or [waiter12]='" + strStaffName + "' or [waiter2]='" + strStaffName + "' or [waiter22]='" + strStaffName + "')";
  465. filter += temp;
  466. temp = ";([time8]>='" + date1 + "' and [time8]<='" + date2 + "' and [status4]='OK' and [waiter5]='" + strStaffName + "') or ([time9]>='" + date1 + "' and [time9]<='" + date2 + "' and [status6]='OK' and [waiter7]='" + strStaffName + "') or ([time10]>='" + date1 + "' and [time10]<='" + date2 + "' and [status5]='OK' and [waiter4]='" + strStaffName + "')";
  467. filter += temp;
  468. g_sendhead.code[0] = 59; // dindanbukuanview;
  469. g_sendhead.code[1] = 60; // dindan;
  470. g_sendhead.code[2] = 198; // singleincomemoneyview;
  471. g_sendhead.code[3] = 61; // dindan + bukuan;
  472. g_sendhead.code[4] = 142; // mywork;
  473. g_sendhead.code[5] = 192; // dindanjd;
  474. g_sendhead.code[6] = 193; // digitalview;
  475. g_sendhead.tabcount = 7;
  476. g_sendhead.bsql = 0;
  477. g_pMainWnd->ProcessChatMessageRequest2(filter);
  478. if (g_bSendOK == 0)
  479. {
  480. g_nYearpos = g_nYearposTemp;
  481. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  482. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  483. return;
  484. }
  485. CArray<CStringArray, CStringArray>ThisYearbukuanarray;
  486. CArray<CStringArray, CStringArray>ThisYearwaiterarray;
  487. CArray<CStringArray, CStringArray>ThisYearsingleincomearray;
  488. CArray<CStringArray, CStringArray>ThisYearbukuanarray2;
  489. CArray<CStringArray, CStringArray>ThisYearm_List4array;
  490. CArray<CStringArray, CStringArray>ThisYeartakearray;
  491. CArray<CStringArray, CStringArray>ThisYeardigitalarray;
  492. DataToArray(&ThisYearbukuanarray, &ThisYearwaiterarray, &ThisYearsingleincomearray, &ThisYearbukuanarray2, &ThisYearm_List4array, &ThisYeartakearray, &ThisYeardigitalarray);
  493. int oldsize = AryReplenishment.GetSize();
  494. AryReplenishment.SetSize(oldsize + ThisYearbukuanarray.GetSize());
  495. for (i = oldsize; i < oldsize + ThisYearbukuanarray.GetSize(); i++)
  496. {
  497. AryReplenishment.ElementAt(i).Copy(ThisYearbukuanarray.ElementAt(i - oldsize));
  498. }
  499. oldsize = AryWaiter.GetSize();
  500. AryWaiter.SetSize(oldsize + ThisYearwaiterarray.GetSize());
  501. for (i = oldsize; i < oldsize + ThisYearwaiterarray.GetSize(); i++)
  502. {
  503. AryWaiter.ElementAt(i).Copy(ThisYearwaiterarray.ElementAt(i - oldsize));
  504. }
  505. oldsize = singleincomearray.GetSize();
  506. singleincomearray.SetSize(oldsize + ThisYearsingleincomearray.GetSize());
  507. for (i = oldsize; i < oldsize + ThisYearsingleincomearray.GetSize(); i++)
  508. {
  509. singleincomearray.ElementAt(i).Copy(ThisYearsingleincomearray.ElementAt(i - oldsize));
  510. }
  511. oldsize = bukuanarray2.GetSize();
  512. bukuanarray2.SetSize(oldsize + ThisYearbukuanarray2.GetSize());
  513. for (i = oldsize; i < oldsize + ThisYearbukuanarray2.GetSize(); i++)
  514. {
  515. bukuanarray2.ElementAt(i).Copy(ThisYearbukuanarray2.ElementAt(i - oldsize));
  516. }
  517. oldsize = m_List4array.GetSize();
  518. m_List4array.SetSize(oldsize + ThisYearm_List4array.GetSize());
  519. for (i = oldsize; i < oldsize + ThisYearm_List4array.GetSize(); i++)
  520. {
  521. m_List4array.ElementAt(i).Copy(ThisYearm_List4array.ElementAt(i - oldsize));
  522. }
  523. oldsize = takearray.GetSize();
  524. takearray.SetSize(oldsize + ThisYeartakearray.GetSize());
  525. for (i = oldsize; i < oldsize + ThisYeartakearray.GetSize(); i++)
  526. {
  527. takearray.ElementAt(i).Copy(ThisYeartakearray.ElementAt(i - oldsize));
  528. }
  529. oldsize = digitalarray.GetSize();
  530. digitalarray.SetSize(oldsize + ThisYeardigitalarray.GetSize());
  531. for (i = oldsize; i < oldsize + ThisYeardigitalarray.GetSize(); i++)
  532. {
  533. digitalarray.ElementAt(i).Copy(ThisYeardigitalarray.ElementAt(i - oldsize));
  534. }
  535. }
  536. g_nYearpos = g_nYearposTemp;
  537. // 收款记录:补款+其他收入;
  538. CArray<CStringArray, CStringArray>AryReceiptRecords;
  539. AryReceiptRecords.SetSize(AryReplenishment.GetSize() * 4 + bukuanarray2.GetSize() * 4 + singleincomearray.GetSize());
  540. // 前期业绩金额;
  541. float fEarlyAchievementMoney = 0;
  542. float money_photographer_secondarily = 0;
  543. float money_化妆或引导二销 = 0;
  544. float money_套系升级 = 0;
  545. float money_选片二销 = 0;
  546. CArray<float, float>moneyarray;
  547. CStringArray typearray;
  548. int typepos;
  549. int ii = 0;
  550. int arraypos = 0;
  551. // 遍历时间范围:(时间1-时间2)内的收款;
  552. for ( ii = 0; ii < AryReplenishment.GetSize(); ii++)
  553. {
  554. // printf("idx=%d, id=%s, money=%s, ren=%s, bz=%s, txtype=%s\n", ii, AryReplenishment.ElementAt(ii).ElementAt(5), AryReplenishment.ElementAt(ii).ElementAt(0), AryReplenishment.ElementAt(ii).ElementAt(6),AryReplenishment.ElementAt(ii).ElementAt(7), AryReplenishment.ElementAt(ii).ElementAt(8));
  555. AryReceiptRecords.ElementAt(arraypos).RemoveAll();
  556. // 前期业绩;
  557. if (AryReplenishment.ElementAt(ii).ElementAt(2) == "3" || AryReplenishment.ElementAt(ii).ElementAt(2) == "4")//预约收款/预约补款;
  558. {
  559. // 是否是摄影师;
  560. BOOL bPhotographer = FALSE;
  561. // 是否是化妆师;
  562. BOOL bMakeupArtist = FALSE;
  563. float fscale1 = 0;
  564. float fscale2 = 0;
  565. // 获取指定订单号的服务人员信息;
  566. IsWaiter2(AryReplenishment.ElementAt(ii).ElementAt(5), strStaffName, &AryWaiter, bPhotographer, bMakeupArtist, fscale1, fscale2, 0, date1, date2);
  567. // ElementAt(56):工资设置:摄影师也有前期提成;
  568. if (bPhotographer && atoi(g_cominfoarray.ElementAt(0).ElementAt(56))) // 摄影师前期提成;
  569. {
  570. // ElementAt(0):收款金额;
  571. temp.Format("%0.2f", atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1);
  572. ConvertToPrice(temp);
  573. fEarlyAchievementMoney += atof(temp);
  574. typepos = FindArray(&typearray, _T("摄影前期"));
  575. if (typepos == -1)
  576. {
  577. typearray.Add(_T("摄影前期"));
  578. moneyarray.Add(atof(temp));
  579. }
  580. else
  581. {
  582. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  583. }
  584. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  585. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(1)); // 收款日期;
  586. AryReceiptRecords.ElementAt(arraypos).Add(_T("摄影前期")); // 工资类型;
  587. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(3)); // 顾客1姓名;
  588. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(4)); // 顾客2姓名;
  589. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(8)); // 套系类型;
  590. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(10)); // 套系名称;
  591. arraypos++;
  592. }
  593. // ElementAt(57):工资设置:化妆师、引导师也有前期提成;
  594. if (bMakeupArtist && atoi(g_cominfoarray.ElementAt(0).ElementAt(57))) // 化妆师、引导师前期提成;
  595. {
  596. temp.Format("%0.2f", atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2);
  597. ConvertToPrice(temp);
  598. fEarlyAchievementMoney += atof(temp);
  599. typepos = FindArray(&typearray, _T("摄影前期"));
  600. if (typepos == -1)
  601. {
  602. typearray.Add(_T("摄影前期"));
  603. moneyarray.Add(atof(temp));
  604. }
  605. else
  606. {
  607. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  608. }
  609. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  610. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(1)); // 收款日期;
  611. AryReceiptRecords.ElementAt(arraypos).Add(_T("化妆前期")); // 工资类型;
  612. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(3)); // 顾客1姓名;
  613. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(4)); // 顾客2姓名;
  614. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(8)); // 套系类型;
  615. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(10)); // 套系名称;
  616. arraypos++;
  617. }
  618. // 获取指定员工在订单下是否有门市职能;
  619. IsWaiter3(AryReplenishment.ElementAt(ii).ElementAt(5), strStaffName, &AryWaiter, bPhotographer, bMakeupArtist, fscale1, fscale2);
  620. if (bPhotographer)
  621. {
  622. temp.Format("%0.2f", atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1);
  623. ConvertToPrice(temp);
  624. fEarlyAchievementMoney += atof(temp);
  625. typepos = FindArray(&typearray, _T("前期"));
  626. if (typepos == -1)
  627. {
  628. typearray.Add(_T("前期"));
  629. moneyarray.Add(atof(temp));
  630. }
  631. else
  632. {
  633. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  634. }
  635. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  636. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(1)); // 收款日期;
  637. AryReceiptRecords.ElementAt(arraypos).Add(_T("前期收款")); // 工资类型;
  638. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(3)); // 顾客1姓名;
  639. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(4)); // 顾客2姓名;
  640. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(8)); // 套系类型;
  641. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(10)); // 套系名称;
  642. arraypos++;
  643. }
  644. if (bMakeupArtist)
  645. {
  646. temp.Format("%0.2f", atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2);
  647. ConvertToPrice(temp);
  648. fEarlyAchievementMoney += atof(temp);
  649. typepos = FindArray(&typearray, _T("前期"));
  650. if (typepos == -1)
  651. {
  652. typearray.Add(_T("前期"));
  653. moneyarray.Add(atof(temp));
  654. }
  655. else
  656. {
  657. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  658. }
  659. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  660. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(1)); // 收款日期;
  661. AryReceiptRecords.ElementAt(arraypos).Add(_T("前期收款")); // 工资类型;
  662. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(3)); // 顾客1姓名;
  663. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(4)); // 顾客2姓名;
  664. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(8)); // 套系类型;
  665. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(10)); // 套系名称;
  666. arraypos++;
  667. }
  668. continue;
  669. }
  670. // ElementAt(7):选片二销(后期业绩);
  671. else if (AryReplenishment.ElementAt(ii).ElementAt(7) == _T("选片二销"))//选片补款, 需加摄影师和化妆师;
  672. {
  673. // 是否是摄影师;
  674. BOOL bPhotographer = 0;
  675. // 是否是化妆师;
  676. BOOL bMakeupArtist = 0;
  677. float fscale1 = 0;
  678. float fscale2 = 0;
  679. // 获取员工在订单下的服务信息;
  680. IsWaiter2(AryReplenishment.ElementAt(ii).ElementAt(5), strStaffName, &AryWaiter, bPhotographer, bMakeupArtist, fscale1, fscale2, 0, date1, date2);
  681. // ElementAt(41):工资设置:摄影师也有选片二销提成;
  682. if (bPhotographer && atoi(g_cominfoarray.ElementAt(0).ElementAt(41))) // 摄影师也有选片二销提成;
  683. {
  684. temp.Format("%0.2f", atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1);
  685. ConvertToPrice(temp);
  686. money_选片二销 += atof(temp);
  687. typepos = FindArray(&typearray, _T("摄影选片二销"));
  688. if (typepos == -1)
  689. {
  690. typearray.Add(_T("摄影选片二销"));
  691. moneyarray.Add(atof(temp));
  692. }
  693. else
  694. {
  695. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  696. }
  697. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  698. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(1)); // 收款日期;
  699. AryReceiptRecords.ElementAt(arraypos).Add(_T("摄影选片二销")); // 工资类型;
  700. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(3)); // 顾客1姓名;
  701. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(4)); // 顾客2姓名;
  702. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(8)); // 套系类型;
  703. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(10)); // 套系名称;
  704. arraypos++;
  705. }
  706. // ElementAt(42):工资设置:化妆师或引导师也有选片二销提成;
  707. if (bMakeupArtist && atoi(g_cominfoarray.ElementAt(0).ElementAt(42))) // 化妆师或引导师也有选片二销提成;
  708. {
  709. temp.Format("%0.2f", atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2);
  710. ConvertToPrice(temp);
  711. money_选片二销 += atof(temp);
  712. #ifdef CHILD_VERSION
  713. typepos = FindArray(&typearray, _T("引导选片二销"));
  714. #else
  715. typepos = FindArray(&typearray, _T("化妆选片二销"));
  716. #endif
  717. if (typepos == -1)
  718. {
  719. #ifdef CHILD_VERSION
  720. typearray.Add(_T("引导选片二销"));
  721. #else
  722. typearray.Add(_T("化妆选片二销"));
  723. #endif
  724. moneyarray.Add(atof(temp));
  725. }
  726. else
  727. {
  728. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  729. }
  730. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  731. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(1)); // 收款日期;
  732. #ifdef CHILD_VERSION
  733. AryReceiptRecords.ElementAt(arraypos).Add(_T("引导选片二销")); // 工资类型;
  734. #else
  735. AryReceiptRecords.ElementAt(arraypos).Add(_T("化妆选片二销")); // 工资类型;
  736. #endif
  737. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(3)); // 顾客1姓名;
  738. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(4)); // 顾客2姓名;
  739. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(8)); // 套系类型;
  740. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(10)); // 套系名称;
  741. arraypos++;
  742. }
  743. // 以上统计了摄影师和化妆师的选片二销;
  744. // 以下是统计除摄影师与化妆师以外的其他人员的选片二销;
  745. // ElementAt(6):员工姓名;
  746. if (AryReplenishment.ElementAt(ii).ElementAt(6) != strStaffName)
  747. continue;
  748. temp.Format("%0.2f", atof(AryReplenishment.ElementAt(ii).ElementAt(0)));
  749. ConvertToPrice(temp);
  750. money_选片二销 += atof(temp);
  751. typepos = FindArray(&typearray, AryReplenishment.ElementAt(ii).ElementAt(7));
  752. if (typepos == -1)
  753. {
  754. typearray.Add(AryReplenishment.ElementAt(ii).ElementAt(7));
  755. moneyarray.Add(atof(temp));
  756. }
  757. else
  758. {
  759. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  760. }
  761. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  762. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(1)); // 收款日期;
  763. AryReceiptRecords.ElementAt(arraypos).Add(_T("选片二销")); // 工资类型;
  764. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(3)); // 顾客1姓名;
  765. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(4)); // 顾客2姓名;
  766. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(8)); // 套系类型;
  767. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(10)); // 套系名称;
  768. }
  769. // 其他订单二销(后期业绩);
  770. else
  771. {// 统计除选片二销以外的其他订单二销;
  772. if (AryReplenishment.ElementAt(ii).ElementAt(6) != strStaffName)
  773. continue;
  774. temp.Format("%0.2f", atof(AryReplenishment.ElementAt(ii).ElementAt(0)));
  775. ConvertToPrice(temp);
  776. typepos = FindArray(&typearray, AryReplenishment.ElementAt(ii).ElementAt(7));
  777. if (typepos == -1)
  778. {
  779. typearray.Add(AryReplenishment.ElementAt(ii).ElementAt(7));
  780. moneyarray.Add(atof(temp));
  781. }
  782. else
  783. {
  784. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  785. }
  786. money_photographer_secondarily += atof(temp);
  787. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  788. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(1)); // 收款日期;
  789. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(7)); // 工资类型;
  790. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(3)); // 顾客1姓名;
  791. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(4)); // 顾客2姓名;
  792. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(8)); // 套系类型;
  793. AryReceiptRecords.ElementAt(arraypos).Add(AryReplenishment.ElementAt(ii).ElementAt(10)); // 套系名称;
  794. }
  795. arraypos++;
  796. }
  797. // 遍历时间范围:时间1 之前的收款;
  798. for (ii = 0; ii < bukuanarray2.GetSize(); ii++)
  799. {
  800. AryReceiptRecords.ElementAt(arraypos).RemoveAll();
  801. // 前期业绩;
  802. if (bukuanarray2.ElementAt(ii).ElementAt(2) == "3" || bukuanarray2.ElementAt(ii).ElementAt(2) == "4")
  803. {
  804. BOOL bPhotographer = 0;
  805. BOOL bMakeupArtist = 0;
  806. float fscale1 = 0;
  807. float fscale2 = 0;
  808. IsWaiter2(bukuanarray2.ElementAt(ii).ElementAt(5), strStaffName, &AryWaiter, bPhotographer, bMakeupArtist, fscale1, fscale2, 1, date1, date2);
  809. if (bPhotographer && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//我是摄影师
  810. {
  811. temp.Format("%0.2f", atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1);
  812. ConvertToPrice(temp);
  813. fEarlyAchievementMoney += atof(temp);
  814. typepos = FindArray(&typearray, _T("摄影前期"));
  815. if (typepos == -1)
  816. {
  817. typearray.Add(_T("摄影前期"));
  818. moneyarray.Add(atof(temp));
  819. }
  820. else
  821. {
  822. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  823. }
  824. AryReceiptRecords.ElementAt(arraypos).Add(temp);
  825. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(1));
  826. AryReceiptRecords.ElementAt(arraypos).Add(_T("摄影前期"));
  827. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(3));
  828. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(4));
  829. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(8));
  830. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(9));
  831. arraypos++;
  832. }
  833. if (bMakeupArtist && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//我是化妆师
  834. {
  835. temp.Format("%0.2f", atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2);
  836. ConvertToPrice(temp);
  837. fEarlyAchievementMoney += atof(temp);
  838. typepos = FindArray(&typearray, _T("摄影前期"));
  839. if (typepos == -1)
  840. {
  841. typearray.Add(_T("摄影前期"));
  842. moneyarray.Add(atof(temp));
  843. }
  844. else
  845. {
  846. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  847. }
  848. AryReceiptRecords.ElementAt(arraypos).Add(temp);
  849. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(1));
  850. AryReceiptRecords.ElementAt(arraypos).Add(_T("化妆前期"));
  851. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(3));
  852. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(4));
  853. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(8));
  854. AryReceiptRecords.ElementAt(arraypos).Add(bukuanarray2.ElementAt(ii).ElementAt(9));
  855. arraypos++;
  856. }
  857. continue;
  858. }
  859. }
  860. // 单笔收入;
  861. for (ii = 0; ii < singleincomearray.GetSize(); ii++)
  862. {
  863. AryReceiptRecords.ElementAt(arraypos).RemoveAll();
  864. temp.Format("%0.2f", atof(singleincomearray.ElementAt(ii).ElementAt(4)));
  865. ConvertToPrice(temp);
  866. if (singleincomearray.ElementAt(ii).ElementAt(3) == _T("摄影二销"))
  867. money_photographer_secondarily += atof(temp);
  868. #ifndef CHILD_VERSION
  869. else if (singleincomearray.ElementAt(ii).ElementAt(3) == _T("化妆二销"))
  870. #else
  871. else if (singleincomearray.ElementAt(ii).ElementAt(3) == _T("引导二销"))
  872. #endif
  873. money_化妆或引导二销 += atof(temp);
  874. else if (singleincomearray.ElementAt(ii).ElementAt(3) == _T("套系升级"))
  875. money_套系升级 += atof(temp);
  876. else if (singleincomearray.ElementAt(ii).ElementAt(3) == _T("选片二销"))
  877. money_选片二销 += atof(temp);
  878. typepos = FindArray(&typearray, singleincomearray.ElementAt(ii).ElementAt(3));
  879. if (typepos == -1)
  880. {
  881. typearray.Add(singleincomearray.ElementAt(ii).ElementAt(3));
  882. moneyarray.Add(atof(temp));
  883. }
  884. else
  885. {
  886. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + atof(temp));
  887. }
  888. AryReceiptRecords.ElementAt(arraypos).Add(temp); // 收款金额;
  889. AryReceiptRecords.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(5)); // 收款日期;
  890. AryReceiptRecords.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(3)); // 工资类型;
  891. AryReceiptRecords.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(1)); // 顾客1姓名;
  892. AryReceiptRecords.ElementAt(arraypos).Add(""); // 顾客2姓名;
  893. AryReceiptRecords.ElementAt(arraypos).Add(""); // 套系类型;
  894. AryReceiptRecords.ElementAt(arraypos).Add(singleincomearray.ElementAt(ii).ElementAt(7)); // 套系名称;
  895. arraypos++;
  896. }
  897. AryReceiptRecords.SetSize(arraypos);
  898. // 填充订单、摄影师前期业绩列表;
  899. FillGrid(&AryReceiptRecords);
  900. // 填充计件式提成列表;
  901. FillGrid4(m_strmoney6);
  902. // 填充摄影师与助理的景点列表;
  903. FillGridTake(&takearray);
  904. // 填充修片与精修与设计列表;
  905. FillGridDigital(&digitalarray);
  906. if (AryUser.GetSize())
  907. {
  908. // 员工姓名;
  909. m_strStaffName = AryUser.ElementAt(0).ElementAt(0);
  910. // 员工基本工资;
  911. m_strBasicWage = AryUser.ElementAt(0).ElementAt(1);
  912. // 员工前期方案;
  913. CString baseexpendtype = AryUser.ElementAt(0).ElementAt(2);
  914. // 员工后期方案;
  915. CString baseexpendtype2 = AryUser.ElementAt(0).ElementAt(3);
  916. // 员工备注;
  917. m_strStaffNote = AryUser.ElementAt(0).ElementAt(4);
  918. // 是否有前期业绩;
  919. typepos = FindArray(&typearray, _T("前期"));
  920. if (typepos == -1)
  921. {
  922. m_strEarlyAchievementMoney = "0";
  923. fEarlyAchievementMoney = 0;
  924. }
  925. else
  926. {// 获取前期业绩金额;
  927. fEarlyAchievementMoney = moneyarray.ElementAt(typepos);
  928. }
  929. // 是否有摄影前期业绩;
  930. float money_photographer_early = 0;
  931. typepos = FindArray(&typearray, _T("摄影前期"));
  932. if (typepos == -1)
  933. {
  934. money_photographer_early = 0;
  935. }
  936. else
  937. {
  938. money_photographer_early = moneyarray.ElementAt(typepos);
  939. }
  940. m_strEarlyAchievementMoney.Format("%0.2f", fEarlyAchievementMoney + money_photographer_early);
  941. // 合计其他:除去订单前期业绩和摄影前期业绩以外的业绩;
  942. money_photographer_secondarily = 0;
  943. float realmoney2 = 0;
  944. for (int i = 0; i < typearray.GetSize(); i++)
  945. {
  946. if (_T("前期") == typearray.ElementAt(i))continue;
  947. if (_T("摄影前期") == typearray.ElementAt(i))continue;
  948. // 排除掉“前期”和“摄影前期”,因为这两项是在财务管理->提成比例中设置的,不需要单独方案;
  949. realmoney2 += GetSalaryFromRule(moneyarray.ElementAt(i), GetRule(typearray.ElementAt(i)));
  950. money_photographer_secondarily += moneyarray.ElementAt(i);
  951. }
  952. m_strSecondarySalesAchievementMoney.Format("%0.2f", money_photographer_secondarily);
  953. ConvertToPrice(m_strmoney6);
  954. m_strTotalWage.Format("%0.2f", atof(m_strBasicWage) + atof(m_strmoney6) + realmoney2 + GetSalaryFromRule(fEarlyAchievementMoney, GetRule(baseexpendtype)) + GetSalaryFromRule(money_photographer_early, GetRule(baseexpendtype2)));
  955. ConvertToPrice(m_strTotalWage);
  956. }
  957. else
  958. {
  959. m_strStaffName = _T("");
  960. m_strBasicWage = _T("");
  961. m_strStaffNote = _T("");
  962. m_strTotalWage = _T("");
  963. m_strEarlyAchievementMoney = _T("");
  964. m_strSecondarySalesAchievementMoney = _T("");
  965. m_money3 = _T("");
  966. m_money4 = _T("");
  967. m_money5 = _T("");
  968. m_strmoney6 = _T("");
  969. }
  970. UpdateData(false);
  971. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  972. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  973. //////////////////////////////
  974. CString totalstr, str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12;
  975. float sum = 0;
  976. int waiter1count = 0;
  977. int waiter12count = 0;
  978. int waiter2count = 0;
  979. int waiter22count = 0;
  980. for (i = 0; i < m_Listtake.GetItemCount(); i++)
  981. {
  982. field2 = m_Listtake.GetItemText(i, 3);
  983. field3 = m_Listtake.GetItemText(i, 4);
  984. sum += atof(field3);
  985. field4 = m_Listtake.GetItemText(i, 5);
  986. field5 = m_Listtake.GetItemText(i, 6);
  987. field6 = m_Listtake.GetItemText(i, 7);
  988. field7 = m_Listtake.GetItemText(i, 8);
  989. field8 = m_Listtake.GetItemText(i, 9);
  990. field9 = m_Listtake.GetItemText(i, 10);
  991. if (field6 == strStaffName)waiter1count++;
  992. if (field7 == strStaffName)waiter12count++;
  993. if (field8 == strStaffName)waiter2count++;
  994. if (field9 == strStaffName)waiter22count++;
  995. }
  996. str = "摄影师与助理\r\n";
  997. totalstr += str;
  998. str.Format("摄影: %d\r\n", waiter1count); totalstr += str;
  999. str.Format("助理: %d\r\n", waiter12count); totalstr += str;
  1000. #ifdef CHILD_VERSION
  1001. str.Format("引导: %d\r\n", waiter2count); totalstr += str;
  1002. #else
  1003. str.Format("化妆: %d\r\n", waiter2count); totalstr += str;
  1004. #endif
  1005. str.Format("助理: %d\r\n", waiter22count); totalstr += str;
  1006. str.Format("订单总金额: %0.2f\r\n\r\n", sum); totalstr += str;
  1007. float sum1 = 0;
  1008. float sum2 = 0;
  1009. float sum3 = 0;
  1010. float sum12 = 0;
  1011. float sum22 = 0;
  1012. float sum32 = 0;
  1013. int sum13 = 0;
  1014. int sum23 = 0;
  1015. int sum33 = 0;
  1016. int sum14 = 0;
  1017. int sum24 = 0;
  1018. int sum34 = 0;
  1019. int count1 = 0;
  1020. int count2 = 0;
  1021. int count3 = 0;
  1022. for (i = 0; i < m_Listdigital.GetItemCount(); i++)
  1023. {
  1024. field2 = m_Listdigital.GetItemText(i, 3);
  1025. field3 = m_Listdigital.GetItemText(i, 4);
  1026. field4 = m_Listdigital.GetItemText(i, 5);
  1027. field5 = m_Listdigital.GetItemText(i, 6);
  1028. field6 = m_Listdigital.GetItemText(i, 7);
  1029. field7 = m_Listdigital.GetItemText(i, 8);
  1030. field8 = m_Listdigital.GetItemText(i, 9);
  1031. field9 = m_Listdigital.GetItemText(i, 10);
  1032. field10 = m_Listdigital.GetItemText(i, 14);
  1033. field11 = m_Listdigital.GetItemText(i, 16);
  1034. field12 = m_Listdigital.GetItemText(i, 17);
  1035. if (m_Listdigital.GetItemText(i, 11) == "OK" && field4 == strStaffName && field5 >= date1 && field5 <= date2)
  1036. {
  1037. sum1 += atof(field3);
  1038. sum12 += atof(field10);
  1039. sum13 += atoi(field11);
  1040. sum14 += atoi(field12);
  1041. count1++;
  1042. }
  1043. if (m_Listdigital.GetItemText(i, 12) == "OK" && field6 == strStaffName && field7 >= date1 && field7 <= date2)
  1044. {
  1045. sum2 += atof(field3);
  1046. sum22 += atof(field10);
  1047. sum23 += atoi(field11);
  1048. sum24 += atoi(field12);
  1049. count2++;
  1050. }
  1051. if (m_Listdigital.GetItemText(i, 13) == "OK" && field8 == strStaffName && field9 >= date1 && field9 <= date2)
  1052. {
  1053. sum3 += atof(field3);
  1054. sum32 += atof(field10);
  1055. sum33 += atoi(field11);
  1056. sum34 += atoi(field12);
  1057. count3++;
  1058. }
  1059. }
  1060. str = "修片与精修与设计\r\n";
  1061. totalstr += str;
  1062. #ifdef LKAY_VERSION
  1063. str.Format ("初修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count1, sum1, sum12, sum13, sum14);totalstr+=str;
  1064. str.Format ("精修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count2, sum2, sum22, sum23, sum24);totalstr+=str;
  1065. str.Format ("设计: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count3, sum3, sum32, sum33, sum34);totalstr+=str;
  1066. #else
  1067. str.Format("初修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count1, sum1, sum12); totalstr += str;
  1068. str.Format("精修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count2, sum2, sum22); totalstr += str;
  1069. str.Format("设计: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count3, sum3, sum32); totalstr += str;
  1070. #endif
  1071. GetDlgItem(IDC_EDITbz2)->SetWindowText(totalstr);
  1072. }
  1073. #else
  1074. void MySalary::OnSelchangeList1()
  1075. {
  1076. if (m_bInit == 0)return;
  1077. UpdateData();
  1078. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(0);
  1079. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(0);
  1080. if (m_bAll)
  1081. {
  1082. m_AryStaffWageInfo.RemoveAll();
  1083. FillGrid2();
  1084. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  1085. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  1086. return;
  1087. }
  1088. CString strStaffName;
  1089. int pos = m_comboname.GetCurSel();
  1090. if (pos == -1)
  1091. {
  1092. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  1093. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  1094. return;
  1095. }
  1096. m_comboname.GetWindowText(strStaffName);
  1097. CString date1(_T("")), date2(_T(""));
  1098. date1 = m_date1.Format("%Y-%m-%d");
  1099. date2 = m_date2.Format("%Y-%m-%d");
  1100. m_year = m_date1.GetYear();
  1101. int i;
  1102. CStaffWage StaffWage;
  1103. StaffWage.GetStaffWageData(strStaffName, date1, date2);
  1104. StaffWage.GetEarlyResults(StaffWage.m_AryEarlyResult);
  1105. // 填充订单、摄影师前期业绩列表;
  1106. FillGrid(&StaffWage.m_AryEarlyResult);
  1107. // 填充计件式提成列表;
  1108. FillGrid4(m_strmoney6, StaffWage.m_AryMyWorkRecord);
  1109. // 填充摄影师与助理的景点列表;
  1110. FillGridTake(&StaffWage.m_ArySceneryWorkRecord);
  1111. // 填充修片与精修与设计列表;
  1112. FillGridDigital(&StaffWage.m_AryDigitalWorkRecord);
  1113. if (StaffWage.m_AryStaffDetail.GetSize())
  1114. {
  1115. // 员工姓名;
  1116. m_strStaffName = StaffWage.m_AryStaffDetail.ElementAt(0).ElementAt(0);
  1117. // 员工基本工资;
  1118. m_strBasicWage = StaffWage.m_AryStaffDetail.ElementAt(0).ElementAt(1);
  1119. // 员工前期方案;
  1120. CString baseexpendtype = StaffWage.m_AryStaffDetail.ElementAt(0).ElementAt(2);
  1121. // 员工后期方案;
  1122. CString baseexpendtype2 = StaffWage.m_AryStaffDetail.ElementAt(0).ElementAt(3);
  1123. // 员工备注;
  1124. m_strStaffNote = StaffWage.m_AryStaffDetail.ElementAt(0).ElementAt(4);
  1125. // 是否有门市前期业绩;
  1126. int typepos = FindArray(&StaffWage.m_AryWageType, WAGE_EARLY_SALES);
  1127. if (typepos == -1)
  1128. {
  1129. m_strEarlyAchievementMoney = "0";
  1130. StaffWage.m_fEaryResultMoney = 0;
  1131. }
  1132. else
  1133. {// 获取门市前期业绩金额;
  1134. StaffWage.m_fEaryResultMoney = StaffWage.m_AryWageTypeMoney.ElementAt(typepos);
  1135. }
  1136. // 是否有摄影前期业绩;
  1137. float money_photographer_early = 0;
  1138. typepos = FindArray(&StaffWage.m_AryWageType, WAGE_EARLY_PHOTOGRAPHER);
  1139. if (typepos == -1)
  1140. {
  1141. money_photographer_early = 0;
  1142. }
  1143. else
  1144. {
  1145. money_photographer_early = StaffWage.m_AryWageTypeMoney.ElementAt(typepos);
  1146. }
  1147. // 是否有化妆/引导前期业绩;
  1148. float money_makeupartist_early = 0;
  1149. typepos = FindArray(&StaffWage.m_AryWageType, WAGE_EARLY_MAKEUPARTIST);
  1150. if (typepos == -1)
  1151. {
  1152. money_makeupartist_early = 0;
  1153. }
  1154. else
  1155. {
  1156. money_makeupartist_early = StaffWage.m_AryWageTypeMoney.ElementAt(typepos);
  1157. }
  1158. // 前期业绩 = 门市前期 + 摄影前期 + 化妆前期;
  1159. m_strEarlyAchievementMoney.Format("%0.2f", StaffWage.m_fEaryResultMoney + money_photographer_early + money_makeupartist_early);
  1160. // 后期二销业绩:除去门市前期业绩、摄影前期业绩和化妆/引导前期业绩以外的后期二销业绩;
  1161. float money_photographer_secondarily = 0;
  1162. float realmoney2 = 0;
  1163. for (int i = 0; i < StaffWage.m_AryWageType.GetSize(); i++)
  1164. {
  1165. //
  1166. if (WAGE_EARLY_SALES == StaffWage.m_AryWageType.ElementAt(i))continue;
  1167. if (WAGE_EARLY_MAKEUPARTIST == StaffWage.m_AryWageType.ElementAt(i))continue;
  1168. if (WAGE_EARLY_PHOTOGRAPHER == StaffWage.m_AryWageType.ElementAt(i))continue;
  1169. // 排除掉“前期”和“摄影前期”,因为这两项是在财务管理->提成比例中设置的,不需要单独方案;
  1170. realmoney2 += GetSalaryFromRule(StaffWage.m_AryWageTypeMoney.ElementAt(i), GetRule(StaffWage.m_AryWageType.ElementAt(i)));
  1171. money_photographer_secondarily += StaffWage.m_AryWageTypeMoney.ElementAt(i);
  1172. }
  1173. m_strSecondarySalesAchievementMoney.Format("%0.2f", money_photographer_secondarily);
  1174. ConvertToPrice(m_strmoney6);
  1175. m_strTotalWage.Format("%0.2f",
  1176. atof(m_strBasicWage) + // 基本工资;
  1177. atof(m_strmoney6) + // 计件式工资;
  1178. realmoney2 + // 后期二销工资;
  1179. GetSalaryFromRule(StaffWage.m_fEaryResultMoney, GetRule(baseexpendtype)) + // 门市前期工资;
  1180. GetSalaryFromRule(money_photographer_early + money_makeupartist_early, GetRule(baseexpendtype2))); // 摄影前期+化妆/引导前期;
  1181. ConvertToPrice(m_strTotalWage);
  1182. }
  1183. else
  1184. {
  1185. m_strStaffName = _T("");
  1186. m_strBasicWage = _T("");
  1187. m_strStaffNote = _T("");
  1188. m_strTotalWage = _T("");
  1189. m_strEarlyAchievementMoney = _T("");
  1190. m_strSecondarySalesAchievementMoney = _T("");
  1191. m_money3 = _T("");
  1192. m_money4 = _T("");
  1193. m_money5 = _T("");
  1194. m_strmoney6 = _T("");
  1195. }
  1196. UpdateData(false);
  1197. GetDlgItem(IDC_DATETIMEPICKER1)->EnableWindow(1);
  1198. GetDlgItem(IDC_DATETIMEPICKER2)->EnableWindow(1);
  1199. //////////////////////////////
  1200. CString totalstr, str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10, field11, field12;
  1201. float sum = 0;
  1202. int waiter1count = 0;
  1203. int waiter12count = 0;
  1204. int waiter2count = 0;
  1205. int waiter22count = 0;
  1206. for (i = 0; i < m_Listtake.GetItemCount(); i++)
  1207. {
  1208. field2 = m_Listtake.GetItemText(i, 3);
  1209. field3 = m_Listtake.GetItemText(i, 4);
  1210. sum += atof(field3);
  1211. field4 = m_Listtake.GetItemText(i, 5);
  1212. field5 = m_Listtake.GetItemText(i, 6);
  1213. field6 = m_Listtake.GetItemText(i, 7);
  1214. field7 = m_Listtake.GetItemText(i, 8);
  1215. field8 = m_Listtake.GetItemText(i, 9);
  1216. field9 = m_Listtake.GetItemText(i, 10);
  1217. if (field6 == strStaffName)waiter1count++;
  1218. if (field7 == strStaffName)waiter12count++;
  1219. if (field8 == strStaffName)waiter2count++;
  1220. if (field9 == strStaffName)waiter22count++;
  1221. }
  1222. str = "摄影师与助理\r\n";
  1223. totalstr += str;
  1224. str.Format("摄影: %d\r\n", waiter1count); totalstr += str;
  1225. str.Format("助理: %d\r\n", waiter12count); totalstr += str;
  1226. #ifdef CHILD_VERSION
  1227. str.Format("引导: %d\r\n", waiter2count); totalstr += str;
  1228. #else
  1229. str.Format("化妆: %d\r\n", waiter2count); totalstr += str;
  1230. #endif
  1231. str.Format("助理: %d\r\n", waiter22count); totalstr += str;
  1232. str.Format("订单总金额: %0.2f\r\n\r\n", sum); totalstr += str;
  1233. float sum1 = 0;
  1234. float sum2 = 0;
  1235. float sum3 = 0;
  1236. float sum12 = 0;
  1237. float sum22 = 0;
  1238. float sum32 = 0;
  1239. int sum13 = 0;
  1240. int sum23 = 0;
  1241. int sum33 = 0;
  1242. int sum14 = 0;
  1243. int sum24 = 0;
  1244. int sum34 = 0;
  1245. int count1 = 0;
  1246. int count2 = 0;
  1247. int count3 = 0;
  1248. for (i = 0; i < m_Listdigital.GetItemCount(); i++)
  1249. {
  1250. field2 = m_Listdigital.GetItemText(i, 3);
  1251. field3 = m_Listdigital.GetItemText(i, 4);
  1252. field4 = m_Listdigital.GetItemText(i, 5);
  1253. field5 = m_Listdigital.GetItemText(i, 6);
  1254. field6 = m_Listdigital.GetItemText(i, 7);
  1255. field7 = m_Listdigital.GetItemText(i, 8);
  1256. field8 = m_Listdigital.GetItemText(i, 9);
  1257. field9 = m_Listdigital.GetItemText(i, 10);
  1258. field10 = m_Listdigital.GetItemText(i, 14);
  1259. field11 = m_Listdigital.GetItemText(i, 16);
  1260. field12 = m_Listdigital.GetItemText(i, 17);
  1261. if (m_Listdigital.GetItemText(i, 11) == "OK" && field4 == strStaffName && field5 >= date1 && field5 <= date2)
  1262. {
  1263. sum1 += atof(field3);
  1264. sum12 += atof(field10);
  1265. sum13 += atoi(field11);
  1266. sum14 += atoi(field12);
  1267. count1++;
  1268. }
  1269. if (m_Listdigital.GetItemText(i, 12) == "OK" && field6 == strStaffName && field7 >= date1 && field7 <= date2)
  1270. {
  1271. sum2 += atof(field3);
  1272. sum22 += atof(field10);
  1273. sum23 += atoi(field11);
  1274. sum24 += atoi(field12);
  1275. count2++;
  1276. }
  1277. if (m_Listdigital.GetItemText(i, 13) == "OK" && field8 == strStaffName && field9 >= date1 && field9 <= date2)
  1278. {
  1279. sum3 += atof(field3);
  1280. sum32 += atof(field10);
  1281. sum33 += atoi(field11);
  1282. sum34 += atoi(field12);
  1283. count3++;
  1284. }
  1285. }
  1286. str = "修片与精修与设计\r\n";
  1287. totalstr += str;
  1288. #ifdef LKAY_VERSION
  1289. str.Format ("初修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count1, sum1, sum12, sum13, sum14);totalstr+=str;
  1290. str.Format ("精修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count2, sum2, sum22, sum23, sum24);totalstr+=str;
  1291. str.Format ("设计: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\nP数:%d\r\n张数:%d\r\n\r\n", count3, sum3, sum32, sum33, sum34);totalstr+=str;
  1292. #else
  1293. str.Format("初修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count1, sum1, sum12); totalstr += str;
  1294. str.Format("精修: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count2, sum2, sum22); totalstr += str;
  1295. str.Format("设计: %d单 \r\n订单金额:%0.2f \r\n选片二销:%0.2f\r\n\r\n", count3, sum3, sum32); totalstr += str;
  1296. #endif
  1297. GetDlgItem(IDC_EDITbz2)->SetWindowText(totalstr);
  1298. }
  1299. #endif
  1300. void MySalary::OnBUTshowall() //查看全部 或者 工资报表;
  1301. {
  1302. // TODO: Add your control notification handler code here
  1303. m_bAll = !m_bAll;
  1304. if (m_bAll)
  1305. {
  1306. GetDlgItem(IDC_BUTshowall)->SetWindowText("查看详情");
  1307. GetDlgItem(IDC_BUT3)->ShowWindow(SW_SHOW);
  1308. }
  1309. else
  1310. {
  1311. GetDlgItem(IDC_BUT3)->ShowWindow(SW_HIDE);
  1312. GetDlgItem(IDC_BUTshowall)->SetWindowText("查看全部");
  1313. }
  1314. GetDlgItem(IDC_BUTshowall)->Invalidate();
  1315. GetDlgItem(IDC_STATIC2)->ShowWindow(!m_bAll);
  1316. GetDlgItem(IDC_STATIC3)->ShowWindow(!m_bAll);
  1317. GetDlgItem(IDC_STATIC4)->ShowWindow(!m_bAll);
  1318. GetDlgItem(IDC_STATIC5)->ShowWindow(!m_bAll);
  1319. GetDlgItem(IDC_STATIC6)->ShowWindow(!m_bAll);
  1320. GetDlgItem(IDC_STATIC7)->ShowWindow(!m_bAll);
  1321. GetDlgItem(IDC_STATIC8)->ShowWindow(!m_bAll);
  1322. GetDlgItem(IDC_STATIC26)->ShowWindow(!m_bAll);
  1323. GetDlgItem(IDC_STATIC27)->ShowWindow(!m_bAll);
  1324. // GetDlgItem(IDC_BUTTON5)->ShowWindow(!m_bAll);
  1325. // GetDlgItem(IDC_BUTTON6)->ShowWindow(!m_bAll);
  1326. GetDlgItem(IDC_BUTTON7)->ShowWindow(!m_bAll);
  1327. GetDlgItem(IDC_BUTTON8)->ShowWindow(!m_bAll);
  1328. GetDlgItem(IDC_BUTTON14)->ShowWindow(!m_bAll);
  1329. GetDlgItem(IDC_STATIC9)->ShowWindow(!m_bAll);
  1330. GetDlgItem(IDC_STATIC12)->ShowWindow(!m_bAll);
  1331. GetDlgItem(IDC_STATIC16)->ShowWindow(!m_bAll);
  1332. GetDlgItem(IDC_STATIC10)->ShowWindow(!m_bAll);
  1333. // GetDlgItem(IDC_EDITname)->ShowWindow(!m_bAll);
  1334. GetDlgItem(IDC_EDITbz)->ShowWindow(!m_bAll);
  1335. GetDlgItem(IDC_EDITbz2)->ShowWindow(!m_bAll);
  1336. GetDlgItem(IDC_EDITbase)->ShowWindow(!m_bAll);
  1337. GetDlgItem(IDC_EDITmoney1)->ShowWindow(!m_bAll);
  1338. GetDlgItem(IDC_EDITmoney2)->ShowWindow(!m_bAll);
  1339. GetDlgItem(IDC_EDITsalary)->ShowWindow(!m_bAll);
  1340. GetDlgItem(IDC_BUTTON4)->ShowWindow(!m_bAll);
  1341. GetDlgItem(IDC_EDITmoney6)->ShowWindow(!m_bAll);
  1342. GetDlgItem(IDC_STATIC15)->ShowWindow(!m_bAll);
  1343. GetDlgItem(IDC_LIST4)->ShowWindow(!m_bAll);
  1344. // GetDlgItem(IDC_LIST1)->ShowWindow(!m_bAll);
  1345. GetDlgItem(IDC_LIST2)->ShowWindow(!m_bAll);
  1346. GetDlgItem(IDC_LIST3)->ShowWindow(m_bAll);
  1347. GetDlgItem(IDC_LIST7)->ShowWindow(!m_bAll);
  1348. GetDlgItem(IDC_LIST8)->ShowWindow(!m_bAll);
  1349. GetDlgItem(IDC_COMBO7)->ShowWindow(!m_bAll);
  1350. if (m_bAll)
  1351. FillGrid2();
  1352. else
  1353. {
  1354. POSITION pos;
  1355. pos = m_List3.GetFirstSelectedItemPosition();
  1356. if (pos)
  1357. {
  1358. int iItem = m_List3.GetNextSelectedItem(pos);
  1359. CString name = m_List3.GetItemText(iItem, 0);
  1360. CString temp;
  1361. for (int i = 0; i < m_ListBox1.GetCount(); i++)
  1362. {
  1363. m_ListBox1.GetText(i, temp);
  1364. if (temp == name)
  1365. {
  1366. m_ListBox1.SetCurSel(i);
  1367. m_comboname.AddString(name);
  1368. m_comboname.SetCurSel(m_comboname.FindString(0, name));
  1369. OnSelchangeList1();
  1370. break;
  1371. }
  1372. }
  1373. }
  1374. }
  1375. }
  1376. void MySalary::FillGrid2()
  1377. {
  1378. if (m_AryStaffWageInfo.GetSize() == 0)
  1379. GetAllData();
  1380. m_List3.DeleteAllItems2();
  1381. int ii = 0;
  1382. m_List3.m_arLabels.SetSize(m_AryStaffWageInfo.GetSize(), 1);
  1383. int count = 0;
  1384. for (ii = 0; ii < m_List3.m_arLabels.GetSize(); ii++)
  1385. {
  1386. m_List3.m_arLabels.ElementAt(count++).Copy(m_AryStaffWageInfo.ElementAt(ii));
  1387. }
  1388. m_List3.m_arLabels.SetSize(count, 1);
  1389. ii = count;
  1390. m_List3.m_LabelCount = ii;
  1391. m_List3.SetItemCountEx(ii);
  1392. }
  1393. #if 0
  1394. void MySalary::GetAllData()
  1395. {
  1396. if (m_bInit == 0)return;
  1397. UpdateData();
  1398. CString date1, date2, temp;
  1399. date1 = m_date1.Format("%Y-%m-%d");
  1400. date2 = m_date2.Format("%Y-%m-%d");
  1401. m_year = m_date1.GetYear();
  1402. int i = 0;
  1403. int g_nYearposTemp = g_nYearpos;
  1404. BOOL bLastYear = 0;
  1405. BOOL bThisYear = 0;
  1406. #if JEFF_TEST_ON // 2015开始禁用跨年数据;
  1407. if (m_year >= 2014 && m_year <= atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  1408. {
  1409. g_nYearpos = -1;
  1410. bThisYear = 1;
  1411. }
  1412. else if (m_year <= 2013 && g_hisyeararray.GetSize())
  1413. {
  1414. g_nYearpos = GetYearPos(m_year);
  1415. bLastYear = 1;
  1416. }
  1417. #else
  1418. if (m_year == atoi(g_date.Left(4)) && g_hisyeararray.GetSize())
  1419. bThisYear = 1;
  1420. else if (m_year <= atoi(g_date.Left(4)) - 1 && g_hisyeararray.GetSize())
  1421. bLastYear = 1;
  1422. g_nYearpos = GetYearPos(m_year);
  1423. #endif
  1424. CString filter = "date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "'";
  1425. g_sendhead.code[0] = 59; // dindanbukuanview
  1426. g_sendhead.code[1] = 60; // dindan
  1427. g_sendhead.code[2] = 198; // singleincomemoneyview 其它2销录入表
  1428. g_sendhead.code[3] = 61; // TX信息arr
  1429. g_sendhead.code[4] = 142; // dindan_waiterarr
  1430. g_sendhead.tabcount = 5;
  1431. g_sendhead.bsql = 0;
  1432. g_pMainWnd->ProcessChatMessageRequest2(filter); if (g_bSendOK == 0)return;
  1433. CArray<CStringArray, CStringArray>AryReplenishment;
  1434. CArray<CStringArray, CStringArray>AryWaiter;
  1435. CArray<CStringArray, CStringArray>singleincomearray;
  1436. CArray<CStringArray, CStringArray>bukuanarray2;
  1437. DataToArray(&AryReplenishment, &AryWaiter, &singleincomearray, &bukuanarray2, &m_List4array);
  1438. ///////////////////
  1439. if (bLastYear)//如果是去年, 则加今年的补款
  1440. {
  1441. g_nYearpos = -1;//今年
  1442. filter = "date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "'";
  1443. g_sendhead.code[0] = 59;
  1444. g_sendhead.code[1] = 60;
  1445. g_sendhead.code[2] = 198;
  1446. g_sendhead.code[3] = 61;
  1447. g_sendhead.code[4] = 142;
  1448. g_sendhead.tabcount = 5;
  1449. g_sendhead.bsql = 0;
  1450. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1451. if (g_bSendOK == 0)
  1452. {
  1453. g_nYearpos = g_nYearposTemp;
  1454. return;
  1455. }
  1456. CArray<CStringArray, CStringArray>LastYearbukuanarray;
  1457. CArray<CStringArray, CStringArray>LastYearwaiterarray;
  1458. CArray<CStringArray, CStringArray>LastYearsingleincomearray;
  1459. CArray<CStringArray, CStringArray>LastYearbukuanarray2;
  1460. CArray<CStringArray, CStringArray>LastYearm_List4array;
  1461. DataToArray(&LastYearbukuanarray, &LastYearwaiterarray, &LastYearsingleincomearray, &LastYearbukuanarray2, &LastYearm_List4array);
  1462. int oldsize = AryReplenishment.GetSize();
  1463. AryReplenishment.SetSize(oldsize + LastYearbukuanarray.GetSize());
  1464. for (i = oldsize; i < oldsize + LastYearbukuanarray.GetSize(); i++)
  1465. {
  1466. AryReplenishment.ElementAt(i).Copy(LastYearbukuanarray.ElementAt(i - oldsize));
  1467. }
  1468. oldsize = bukuanarray2.GetSize();
  1469. bukuanarray2.SetSize(oldsize + LastYearbukuanarray2.GetSize());
  1470. for (i = oldsize; i < oldsize + LastYearbukuanarray2.GetSize(); i++)
  1471. {
  1472. bukuanarray2.ElementAt(i).Copy(LastYearbukuanarray2.ElementAt(i - oldsize));
  1473. }
  1474. oldsize = singleincomearray.GetSize();
  1475. singleincomearray.SetSize(oldsize + LastYearsingleincomearray.GetSize());
  1476. for (i = oldsize; i < oldsize + LastYearsingleincomearray.GetSize(); i++)
  1477. {
  1478. singleincomearray.ElementAt(i).Copy(LastYearsingleincomearray.ElementAt(i - oldsize));
  1479. }
  1480. oldsize = AryWaiter.GetSize();
  1481. AryWaiter.SetSize(oldsize + LastYearwaiterarray.GetSize());
  1482. for (i = oldsize; i < oldsize + LastYearwaiterarray.GetSize(); i++)
  1483. {
  1484. AryWaiter.ElementAt(i).Copy(LastYearwaiterarray.ElementAt(i - oldsize));
  1485. }
  1486. oldsize = m_List4array.GetSize();
  1487. m_List4array.SetSize(oldsize + LastYearm_List4array.GetSize());
  1488. for (i = oldsize; i < oldsize + LastYearm_List4array.GetSize(); i++)
  1489. {
  1490. m_List4array.ElementAt(i).Copy(LastYearm_List4array.ElementAt(i - oldsize));
  1491. }
  1492. }
  1493. else if (bThisYear)//如果是今年, 则加去年的补款
  1494. {
  1495. g_nYearpos = 0;//去年
  1496. filter = "date>='" + date1 + "' and date<='" + date2 + "';;date>='" + date1 + "' and date<='" + date2 + "';time2>='" + date1 + "' and time2<='" + date2 + "' and status='OK'***date<'" + date1 + "';datetime>='" + date1 + "' and datetime<='" + date2 + "'";
  1497. g_sendhead.code[0] = 59;
  1498. g_sendhead.code[1] = 60;
  1499. g_sendhead.code[2] = 198;
  1500. g_sendhead.code[3] = 61;
  1501. g_sendhead.code[4] = 142;
  1502. g_sendhead.tabcount = 5;
  1503. g_sendhead.bsql = 0;
  1504. g_pMainWnd->ProcessChatMessageRequest2(filter);
  1505. if (g_bSendOK == 0)
  1506. {
  1507. g_nYearpos = g_nYearposTemp;
  1508. return;
  1509. }
  1510. CArray<CStringArray, CStringArray>LastYearbukuanarray;
  1511. CArray<CStringArray, CStringArray>LastYearwaiterarray;
  1512. CArray<CStringArray, CStringArray>LastYearsingleincomearray;
  1513. CArray<CStringArray, CStringArray>LastYearbukuanarray2;
  1514. CArray<CStringArray, CStringArray>LastYearm_List4array;
  1515. DataToArray(&LastYearbukuanarray, &LastYearwaiterarray, &LastYearsingleincomearray, &LastYearbukuanarray2, &LastYearm_List4array);
  1516. int oldsize = AryReplenishment.GetSize();
  1517. AryReplenishment.SetSize(oldsize + LastYearbukuanarray.GetSize());
  1518. for (i = oldsize; i < oldsize + LastYearbukuanarray.GetSize(); i++)
  1519. {
  1520. AryReplenishment.ElementAt(i).Copy(LastYearbukuanarray.ElementAt(i - oldsize));
  1521. }
  1522. oldsize = bukuanarray2.GetSize();
  1523. bukuanarray2.SetSize(oldsize + LastYearbukuanarray2.GetSize());
  1524. for (i = oldsize; i < oldsize + LastYearbukuanarray2.GetSize(); i++)
  1525. {
  1526. bukuanarray2.ElementAt(i).Copy(LastYearbukuanarray2.ElementAt(i - oldsize));
  1527. }
  1528. oldsize = singleincomearray.GetSize();
  1529. singleincomearray.SetSize(oldsize + LastYearsingleincomearray.GetSize());
  1530. for (i = oldsize; i < oldsize + LastYearsingleincomearray.GetSize(); i++)
  1531. {
  1532. singleincomearray.ElementAt(i).Copy(LastYearsingleincomearray.ElementAt(i - oldsize));
  1533. }
  1534. oldsize = AryWaiter.GetSize();
  1535. AryWaiter.SetSize(oldsize + LastYearwaiterarray.GetSize());
  1536. for (i = oldsize; i < oldsize + LastYearwaiterarray.GetSize(); i++)
  1537. {
  1538. AryWaiter.ElementAt(i).Copy(LastYearwaiterarray.ElementAt(i - oldsize));
  1539. }
  1540. oldsize = m_List4array.GetSize();
  1541. m_List4array.SetSize(oldsize + LastYearm_List4array.GetSize());
  1542. for (i = oldsize; i < oldsize + LastYearm_List4array.GetSize(); i++)
  1543. {
  1544. m_List4array.ElementAt(i).Copy(LastYearm_List4array.ElementAt(i - oldsize));
  1545. }
  1546. }
  1547. g_nYearpos = g_nYearposTemp;
  1548. int ii = 0;
  1549. CString m_base, m_rate1, m_rate2, m_rate3, m_rate4, m_rate5, m_money1, m_money2, m_money3, m_money4, m_money5, m_bz;
  1550. double sum1 = 0;
  1551. double sum2 = 0;
  1552. double sum3 = 0;
  1553. double sum4 = 0;
  1554. double sum5 = 0;
  1555. double sum6 = 0;
  1556. double sum7 = 0;
  1557. m_AryStaffWageInfo.SetSize(m_AryStaffInfo.GetSize() + 1);
  1558. int n = 0;
  1559. for ( n = 0; n < m_AryStaffInfo.GetSize(); n++)
  1560. {
  1561. m_AryStaffWageInfo.ElementAt(n).RemoveAll();
  1562. m_AryStaffWageInfo.ElementAt(n).Add("");
  1563. m_AryStaffWageInfo.ElementAt(n).Add("");
  1564. m_AryStaffWageInfo.ElementAt(n).Add("");
  1565. m_AryStaffWageInfo.ElementAt(n).Add("");
  1566. m_AryStaffWageInfo.ElementAt(n).Add("");
  1567. m_AryStaffWageInfo.ElementAt(n).Add("");
  1568. m_AryStaffWageInfo.ElementAt(n).Add("");
  1569. m_AryStaffWageInfo.ElementAt(n).Add("");
  1570. m_AryStaffWageInfo.ElementAt(n).SetAt(0, m_AryStaffInfo.ElementAt(n).ElementAt(0));
  1571. // 员工姓名;
  1572. CString strStaffName = m_AryStaffInfo.ElementAt(n).ElementAt(0);
  1573. // 前期业绩金额;
  1574. float money1 = 0;
  1575. // 二销业绩;
  1576. float money2 = 0;
  1577. // 化妆二销;
  1578. float money3 = 0;
  1579. // 套系升级;
  1580. float money4 = 0;
  1581. // 选片二销;
  1582. float money5 = 0;
  1583. // 计件式提成总和;
  1584. float money6 = 0;
  1585. float ftemp;
  1586. CArray<float, float>moneyarray;
  1587. CStringArray typearray;
  1588. int typepos;
  1589. int arraypos = 0;
  1590. for (ii = 0; ii < AryReplenishment.GetSize(); ii++)
  1591. {
  1592. // 前期收款;
  1593. if (AryReplenishment.ElementAt(ii).ElementAt(2) == "3" || AryReplenishment.ElementAt(ii).ElementAt(2) == "4")
  1594. {
  1595. // 是否是摄影师;
  1596. BOOL bPhotographer = FALSE;
  1597. // 是否是化妆师;
  1598. BOOL bMakeupArtist = FALSE;
  1599. float fscale1 = 0;
  1600. float fscale2 = 0;
  1601. IsWaiter2(AryReplenishment.ElementAt(ii).ElementAt(5), strStaffName, &AryWaiter, bPhotographer, bMakeupArtist, fscale1, fscale2, 0, date1, date2);
  1602. // 1.该员工是否有摄影前期业绩提成;
  1603. if (bPhotographer && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//我是摄影师
  1604. {
  1605. money1 += atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1;
  1606. ftemp = atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1;
  1607. typepos = FindArray(&typearray, "摄影前期");
  1608. if (typepos == -1)
  1609. {
  1610. typearray.Add("摄影前期");
  1611. moneyarray.Add(ftemp);
  1612. }
  1613. else
  1614. {
  1615. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1616. }
  1617. }
  1618. // 2.该员工是否有化妆/引导前期业绩提成;
  1619. if (bMakeupArtist && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//我是化妆师
  1620. {
  1621. money1 += atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2;
  1622. ftemp = atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2;
  1623. typepos = FindArray(&typearray, "摄影前期");
  1624. if (typepos == -1)
  1625. {
  1626. typearray.Add("摄影前期");
  1627. moneyarray.Add(ftemp);
  1628. }
  1629. else
  1630. {
  1631. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1632. }
  1633. }
  1634. // 该员工是否有门市前期业绩提成;
  1635. IsWaiter3(AryReplenishment.ElementAt(ii).ElementAt(5), strStaffName, &AryWaiter, bPhotographer, bMakeupArtist, fscale1, fscale2);
  1636. // 3.该员工是否有主门市前期业绩提成;
  1637. if (bPhotographer)
  1638. {
  1639. money1 += atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1;
  1640. ftemp = atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1;
  1641. typepos = FindArray(&typearray, "前期");
  1642. if (typepos == -1)
  1643. {
  1644. typearray.Add("前期");
  1645. moneyarray.Add(ftemp);
  1646. }
  1647. else
  1648. {
  1649. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1650. }
  1651. }
  1652. // 4.该员工是否有副门市前期业绩提成;
  1653. if (bMakeupArtist)
  1654. {
  1655. money1 += atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2;
  1656. ftemp = atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2;
  1657. typepos = FindArray(&typearray, "前期");
  1658. if (typepos == -1)
  1659. {
  1660. typearray.Add("前期");
  1661. moneyarray.Add(ftemp);
  1662. }
  1663. else
  1664. {
  1665. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1666. }
  1667. }
  1668. }
  1669. // 该员工是否有选片二销提成(包含摄影师和化妆师的选片二销提成 );
  1670. else if (AryReplenishment.ElementAt(ii).ElementAt(7) == "选片二销")//选片补款, 需加摄影师和化妆师
  1671. {
  1672. BOOL bPhotographer = 0;
  1673. BOOL bMakeupArtist = 0;
  1674. float fscale1 = 0;
  1675. float fscale2 = 0;
  1676. IsWaiter2(AryReplenishment.ElementAt(ii).ElementAt(5), strStaffName, &AryWaiter, bPhotographer, bMakeupArtist, fscale1, fscale2, 0, date1, date2);
  1677. // 5.该员工是否有摄影师选片二销提成;
  1678. if (bPhotographer && atoi(g_cominfoarray.ElementAt(0).ElementAt(41)))//我是摄影师
  1679. {
  1680. money5 += atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1;
  1681. ftemp = atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale1;
  1682. typepos = FindArray(&typearray, "摄影选片二销");
  1683. if (typepos == -1)
  1684. {
  1685. typearray.Add("摄影选片二销");
  1686. moneyarray.Add(ftemp);
  1687. }
  1688. else
  1689. {
  1690. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1691. }
  1692. }
  1693. // 6.该员工是否有化妆师选片二销提成;
  1694. if (bMakeupArtist && atoi(g_cominfoarray.ElementAt(0).ElementAt(42)))//我是化妆师
  1695. {
  1696. money5 += atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2;
  1697. ftemp = atof(AryReplenishment.ElementAt(ii).ElementAt(0))*fscale2;
  1698. #ifdef CHILD_VERSION
  1699. typepos = FindArray(&typearray, "引导选片二销");
  1700. #else
  1701. typepos = FindArray(&typearray, "化妆选片二销");
  1702. #endif
  1703. if (typepos == -1)
  1704. {
  1705. #ifdef CHILD_VERSION
  1706. typearray.Add("引导选片二销");
  1707. #else
  1708. typearray.Add("化妆选片二销");
  1709. #endif
  1710. moneyarray.Add(ftemp);
  1711. }
  1712. else
  1713. {
  1714. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1715. }
  1716. }
  1717. // 7.该员工是否是选片二销业绩的产生者,若是,再次提成选片二销业绩;
  1718. if (AryReplenishment.ElementAt(ii).ElementAt(6) == strStaffName)
  1719. {
  1720. money5 += atof(AryReplenishment.ElementAt(ii).ElementAt(0));
  1721. ftemp = atof(AryReplenishment.ElementAt(ii).ElementAt(0));
  1722. typepos = FindArray(&typearray, AryReplenishment.ElementAt(ii).ElementAt(7));
  1723. if (typepos == -1)
  1724. {
  1725. typearray.Add(AryReplenishment.ElementAt(ii).ElementAt(7));
  1726. moneyarray.Add(ftemp);
  1727. }
  1728. else
  1729. {
  1730. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1731. }
  1732. }
  1733. }
  1734. // 其他订单二销(后期收款);
  1735. else
  1736. {
  1737. // 8.这笔收款,员工是否还是本次其他订单二销的促成者;
  1738. if (AryReplenishment.ElementAt(ii).ElementAt(6) != strStaffName)
  1739. continue;
  1740. if (AryReplenishment.ElementAt(ii).ElementAt(2) == "5")
  1741. {
  1742. money2 += atof(AryReplenishment.ElementAt(ii).ElementAt(0));
  1743. }
  1744. else if (AryReplenishment.ElementAt(ii).ElementAt(2) == "1")
  1745. {
  1746. money3 += atof(AryReplenishment.ElementAt(ii).ElementAt(0));
  1747. }
  1748. else if (AryReplenishment.ElementAt(ii).ElementAt(2) == "6")
  1749. {
  1750. money4 += atof(AryReplenishment.ElementAt(ii).ElementAt(0));
  1751. }
  1752. else if (AryReplenishment.ElementAt(ii).ElementAt(2) == "2")
  1753. {
  1754. money5 += atof(AryReplenishment.ElementAt(ii).ElementAt(0));
  1755. }
  1756. ftemp = atof(AryReplenishment.ElementAt(ii).ElementAt(0));
  1757. typepos = FindArray(&typearray, AryReplenishment.ElementAt(ii).ElementAt(7));
  1758. if (typepos == -1)
  1759. {
  1760. typearray.Add(AryReplenishment.ElementAt(ii).ElementAt(7));
  1761. moneyarray.Add(ftemp);
  1762. }
  1763. else
  1764. {
  1765. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1766. }
  1767. }
  1768. }
  1769. // 时间1-时间2,这里是时间1之前的收款记录;
  1770. for (ii = 0; ii < bukuanarray2.GetSize(); ii++)
  1771. {
  1772. if (bukuanarray2.ElementAt(ii).ElementAt(2) == "3" || bukuanarray2.ElementAt(ii).ElementAt(2) == "4")
  1773. {
  1774. BOOL bPhotographer = 0;
  1775. BOOL bMakeupArtist = 0;
  1776. float fscale1 = 0;
  1777. float fscale2 = 0;
  1778. IsWaiter2(bukuanarray2.ElementAt(ii).ElementAt(5), strStaffName, &AryWaiter, bPhotographer, bMakeupArtist, fscale1, fscale2, 1, date1, date2);
  1779. if (bPhotographer && atoi(g_cominfoarray.ElementAt(0).ElementAt(56)))//我是摄影师
  1780. {
  1781. money1 += atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1;
  1782. ftemp = atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale1;
  1783. typepos = FindArray(&typearray, "摄影前期");
  1784. if (typepos == -1)
  1785. {
  1786. typearray.Add("摄影前期");
  1787. moneyarray.Add(ftemp);
  1788. }
  1789. else
  1790. {
  1791. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1792. }
  1793. }
  1794. if (bMakeupArtist && atoi(g_cominfoarray.ElementAt(0).ElementAt(57)))//我是化妆师
  1795. {
  1796. money1 += atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2;
  1797. ftemp = atof(bukuanarray2.ElementAt(ii).ElementAt(0))*fscale2;
  1798. typepos = FindArray(&typearray, "摄影前期");
  1799. if (typepos == -1)
  1800. {
  1801. typearray.Add("摄影前期");
  1802. moneyarray.Add(ftemp);
  1803. }
  1804. else
  1805. {
  1806. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1807. }
  1808. }
  1809. }
  1810. }
  1811. // 其他收入业绩(散客消费);
  1812. for (ii = 0; ii < singleincomearray.GetSize(); ii++)
  1813. {
  1814. if (singleincomearray.ElementAt(ii).ElementAt(2) != strStaffName)continue;
  1815. if (singleincomearray.ElementAt(ii).ElementAt(3) == "摄影二销")
  1816. money2 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1817. #ifndef CHILD_VERSION
  1818. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "化妆二销")
  1819. #else
  1820. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "引导二销")
  1821. #endif
  1822. money3 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1823. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "套系升级")
  1824. money4 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1825. else if (singleincomearray.ElementAt(ii).ElementAt(3) == "选片二销")
  1826. money5 += atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1827. ftemp = atof(singleincomearray.ElementAt(ii).ElementAt(4));
  1828. typepos = FindArray(&typearray, singleincomearray.ElementAt(ii).ElementAt(3));
  1829. if (typepos == -1)
  1830. {
  1831. typearray.Add(singleincomearray.ElementAt(ii).ElementAt(3));
  1832. moneyarray.Add(ftemp);
  1833. }
  1834. else
  1835. {
  1836. moneyarray.SetAt(typepos, moneyarray.ElementAt(typepos) + ftemp);
  1837. }
  1838. }
  1839. // 获取员工的信息;
  1840. // 该员工的基本工资;
  1841. m_base = m_AryStaffInfo.ElementAt(n).ElementAt(1);
  1842. // 该员工的折扣1;
  1843. m_rate1 = m_AryStaffInfo.ElementAt(n).ElementAt(2);
  1844. // 该员工的折扣2;
  1845. m_rate2 = m_AryStaffInfo.ElementAt(n).ElementAt(3);
  1846. // 备注;
  1847. m_bz = m_AryStaffInfo.ElementAt(n).ElementAt(4);
  1848. // 折扣3~5;
  1849. m_rate3 = m_AryStaffInfo.ElementAt(n).ElementAt(6);
  1850. m_rate4 = m_AryStaffInfo.ElementAt(n).ElementAt(7);
  1851. m_rate5 = m_AryStaffInfo.ElementAt(n).ElementAt(8);
  1852. typepos = FindArray(&typearray, "前期");
  1853. if (typepos == -1)
  1854. {
  1855. m_money1 = "0";
  1856. money1 = 0;
  1857. }
  1858. else
  1859. {
  1860. money1 = moneyarray.ElementAt(typepos);
  1861. }
  1862. float money12 = 0;
  1863. typepos = FindArray(&typearray, "摄影前期");
  1864. if (typepos == -1)
  1865. {
  1866. money12 = 0;
  1867. }
  1868. else
  1869. {
  1870. money12 = moneyarray.ElementAt(typepos);
  1871. }
  1872. m_money1.Format("%0.2f", money1 + money12);
  1873. money2 = 0;
  1874. float realmoney2 = 0;
  1875. for (int i = 0; i < typearray.GetSize(); i++)
  1876. {
  1877. if ("前期" == typearray.ElementAt(i))continue;
  1878. if ("摄影前期" == typearray.ElementAt(i))continue;
  1879. realmoney2 += GetSalaryFromRule(moneyarray.ElementAt(i), GetRule(typearray.ElementAt(i)));
  1880. money2 += moneyarray.ElementAt(i);
  1881. }
  1882. m_money2.Format("%0.2f", money2);
  1883. // 获取员工计件式提成金额;
  1884. GetMoney6(strStaffName, money6);
  1885. temp.Format("%0.2f", atof(m_base) + money6 + realmoney2 + GetSalaryFromRule(money1, GetRule(m_rate1)) + GetSalaryFromRule(money12, GetRule(m_rate2)));
  1886. ConvertToPrice(temp);
  1887. // 总工资;
  1888. m_AryStaffWageInfo.ElementAt(n).SetAt(1, temp);
  1889. // 基本工资;
  1890. m_AryStaffWageInfo.ElementAt(n).SetAt(2, m_base);
  1891. // 前期业绩;
  1892. m_AryStaffWageInfo.ElementAt(n).SetAt(3, m_money1);
  1893. // 后期业绩;
  1894. m_AryStaffWageInfo.ElementAt(n).SetAt(4, m_money2);
  1895. sum1 += atof(temp);
  1896. sum2 += atof(m_base);
  1897. sum3 += money1;
  1898. sum4 += money2;
  1899. temp.Format("%0.2f", money6); ConvertToPrice(temp);
  1900. // 职务提成;
  1901. m_AryStaffWageInfo.ElementAt(n).SetAt(5, temp);
  1902. // 备注;
  1903. m_AryStaffWageInfo.ElementAt(n).SetAt(6, m_AryStaffInfo.ElementAt(n).ElementAt(5));
  1904. if (m_bz.GetLength() > 100)
  1905. m_AryStaffWageInfo.ElementAt(n).SetAt(7, m_bz.Left(100) + "..");
  1906. else
  1907. m_AryStaffWageInfo.ElementAt(n).SetAt(7, m_bz);
  1908. }
  1909. //////////////////////////////////////////////////////////////////////////
  1910. // 统计所有人工资;
  1911. temp.Format("%0.2f", sum1);
  1912. ConvertToPrice(temp);
  1913. m_AryStaffWageInfo.ElementAt(n).Add("统计:");
  1914. m_AryStaffWageInfo.ElementAt(n).Add(temp);
  1915. temp.Format("%0.2f", sum2);
  1916. ConvertToPrice(temp);
  1917. m_AryStaffWageInfo.ElementAt(n).Add(temp);
  1918. temp.Format("%0.2f", sum3);
  1919. ConvertToPrice(temp);
  1920. m_AryStaffWageInfo.ElementAt(n).Add(temp);
  1921. temp.Format("%0.2f", sum4);
  1922. ConvertToPrice(temp);
  1923. m_AryStaffWageInfo.ElementAt(n).Add(temp);
  1924. m_AryStaffWageInfo.ElementAt(n).Add("");
  1925. m_AryStaffWageInfo.ElementAt(n).Add("");
  1926. m_AryStaffWageInfo.ElementAt(n).Add("");
  1927. }
  1928. #else
  1929. void MySalary::GetAllData()
  1930. {
  1931. if (m_bInit == 0)return;
  1932. UpdateData();
  1933. CString date1, date2, temp;
  1934. date1 = m_date1.Format("%Y-%m-%d");
  1935. date2 = m_date2.Format("%Y-%m-%d");
  1936. m_year = m_date1.GetYear();
  1937. CStaffWage StaffWage;
  1938. StaffWage.GetAllStaffWageData(date1, date2);
  1939. int i = 0;
  1940. int ii = 0;
  1941. CString m_base, m_rate1, m_rate2, m_rate3, m_rate4, m_rate5, m_money1, m_money2, m_money3, m_money4, m_money5, m_bz;
  1942. double sum1 = 0;
  1943. double sum2 = 0;
  1944. double sum3 = 0;
  1945. double sum4 = 0;
  1946. double sum5 = 0;
  1947. double sum6 = 0;
  1948. double sum7 = 0;
  1949. m_AryStaffWageInfo.SetSize(m_AryStaffInfo.GetSize() + 1);
  1950. int n = 0;
  1951. for ( n = 0; n < m_AryStaffInfo.GetSize(); n++)
  1952. {
  1953. m_AryStaffWageInfo.ElementAt(n).RemoveAll();
  1954. m_AryStaffWageInfo.ElementAt(n).Add("");
  1955. m_AryStaffWageInfo.ElementAt(n).Add("");
  1956. m_AryStaffWageInfo.ElementAt(n).Add("");
  1957. m_AryStaffWageInfo.ElementAt(n).Add("");
  1958. m_AryStaffWageInfo.ElementAt(n).Add("");
  1959. m_AryStaffWageInfo.ElementAt(n).Add("");
  1960. m_AryStaffWageInfo.ElementAt(n).Add("");
  1961. m_AryStaffWageInfo.ElementAt(n).Add("");
  1962. m_AryStaffWageInfo.ElementAt(n).SetAt(0, m_AryStaffInfo.ElementAt(n).ElementAt(0));
  1963. // 员工姓名;
  1964. CString strStaffName = m_AryStaffInfo.ElementAt(n).ElementAt(0);
  1965. // 前期业绩金额;
  1966. float money1 = 0;
  1967. // 二销业绩;
  1968. float money2 = 0;
  1969. // 化妆二销;
  1970. float money3 = 0;
  1971. // 套系升级;
  1972. float money4 = 0;
  1973. // 选片二销;
  1974. float money5 = 0;
  1975. // 计件式提成总和;
  1976. float money6 = 0;
  1977. float ftemp;
  1978. CArray<float, float>moneyarray;
  1979. CStringArray typearray;
  1980. int typepos;
  1981. int arraypos = 0;
  1982. // 获取员工的信息;
  1983. // 该员工的基本工资;
  1984. m_base = m_AryStaffInfo.ElementAt(n).ElementAt(1);
  1985. // 该员工的门市前期业绩提成百分比;
  1986. m_rate1 = m_AryStaffInfo.ElementAt(n).ElementAt(2);
  1987. // 该员工的门摄影/化妆期业绩提成百分比;
  1988. m_rate2 = m_AryStaffInfo.ElementAt(n).ElementAt(3);
  1989. // 备注;
  1990. m_bz = m_AryStaffInfo.ElementAt(n).ElementAt(4);
  1991. // 其他提成百分比3~5;
  1992. m_rate3 = m_AryStaffInfo.ElementAt(n).ElementAt(6);
  1993. m_rate4 = m_AryStaffInfo.ElementAt(n).ElementAt(7);
  1994. m_rate5 = m_AryStaffInfo.ElementAt(n).ElementAt(8);
  1995. StaffWage.GetEarlyResults(strStaffName);
  1996. // 门市前期业绩;
  1997. FLOAT fSignerWage = StaffWage.GetStaffSignerWage(strStaffName);
  1998. FLOAT fPhotograhperMakeupArtistWage = StaffWage.GetStaffPhotograhperMakeupArtistWage(strStaffName);
  1999. FLOAT fLateTotalWage = 0.0;
  2000. FLOAT fLateWage = StaffWage.GetStaffLateWage(strStaffName, fLateTotalWage);
  2001. FLOAT fDigitalWage = StaffWage.GetStaffDigitalWage(strStaffName);
  2002. temp.Format("%0.2f",
  2003. atof(m_base) +
  2004. fDigitalWage +
  2005. fLateWage +
  2006. GetSalaryFromRule(fSignerWage, GetRule(m_rate1)) +
  2007. GetSalaryFromRule(fPhotograhperMakeupArtistWage, GetRule(m_rate2)));
  2008. ConvertToPrice(temp);
  2009. // 总工资;
  2010. m_AryStaffWageInfo.ElementAt(n).SetAt(1, temp);
  2011. // 基本工资;
  2012. m_AryStaffWageInfo.ElementAt(n).SetAt(2, m_base);
  2013. // 前期业绩;
  2014. temp.Format("%0.2f", fSignerWage + fPhotograhperMakeupArtistWage);
  2015. m_AryStaffWageInfo.ElementAt(n).SetAt(3, temp);
  2016. // 后期业绩;
  2017. temp.Format("%0.2f", fLateTotalWage);
  2018. m_AryStaffWageInfo.ElementAt(n).SetAt(4, temp);
  2019. sum1 += atof(temp);
  2020. sum2 += atof(m_base);
  2021. sum3 += fSignerWage;
  2022. sum4 += fLateTotalWage;
  2023. temp.Format("%0.2f", fDigitalWage);
  2024. ConvertToPrice(temp);
  2025. // 职务提成;
  2026. m_AryStaffWageInfo.ElementAt(n).SetAt(5, temp);
  2027. // 备注;
  2028. m_AryStaffWageInfo.ElementAt(n).SetAt(6, m_AryStaffInfo.ElementAt(n).ElementAt(5));
  2029. if (m_bz.GetLength() > 100)
  2030. m_AryStaffWageInfo.ElementAt(n).SetAt(7, m_bz.Left(100) + "..");
  2031. else
  2032. m_AryStaffWageInfo.ElementAt(n).SetAt(7, m_bz);
  2033. }
  2034. //////////////////////////////////////////////////////////////////////////
  2035. // 统计所有人工资;
  2036. temp.Format("%0.2f", sum1);
  2037. ConvertToPrice(temp);
  2038. m_AryStaffWageInfo.ElementAt(n).Add("统计:");
  2039. m_AryStaffWageInfo.ElementAt(n).Add(temp);
  2040. temp.Format("%0.2f", sum2);
  2041. ConvertToPrice(temp);
  2042. m_AryStaffWageInfo.ElementAt(n).Add(temp);
  2043. temp.Format("%0.2f", sum3);
  2044. ConvertToPrice(temp);
  2045. m_AryStaffWageInfo.ElementAt(n).Add(temp);
  2046. temp.Format("%0.2f", sum4);
  2047. ConvertToPrice(temp);
  2048. m_AryStaffWageInfo.ElementAt(n).Add(temp);
  2049. m_AryStaffWageInfo.ElementAt(n).Add("");
  2050. m_AryStaffWageInfo.ElementAt(n).Add("");
  2051. m_AryStaffWageInfo.ElementAt(n).Add("");
  2052. }
  2053. #endif
  2054. void MySalary::FillGrid4(IN CString &sRet, IN CArray<CStringArray, CStringArray> &AryMyWork) // 计件式提成 - 填充列表;
  2055. {
  2056. sRet = "0";
  2057. if (m_Workratearray.GetSize() == 0)
  2058. {
  2059. return;
  2060. }
  2061. float fsum = 0;
  2062. int m_data1sy = -1;
  2063. CString m_data2sy;
  2064. CString m_data3sy;
  2065. CString m_data4sy;
  2066. CString m_data5sy;
  2067. int m_data1hz = -1;
  2068. CString m_data2hz;
  2069. CString m_data3hz;
  2070. CString m_data4hz;
  2071. CString m_data5hz;
  2072. int i = 0;
  2073. for ( i = 0; i < m_Workratearray.GetSize(); i++)
  2074. {
  2075. if ("摄影师" == m_Workratearray.ElementAt(i).ElementAt(0))
  2076. {
  2077. m_data1sy = atoi(m_Workratearray.ElementAt(i).ElementAt(1));
  2078. m_data2sy = (m_Workratearray.ElementAt(i).ElementAt(2));
  2079. m_data3sy = (m_Workratearray.ElementAt(i).ElementAt(3));
  2080. m_data4sy = (m_Workratearray.ElementAt(i).ElementAt(4));
  2081. m_data5sy = (m_Workratearray.ElementAt(i).ElementAt(5));
  2082. }
  2083. #ifdef CHILD_VERSION
  2084. else if ("引导师" == m_Workratearray.ElementAt(i).ElementAt(0))
  2085. #else
  2086. else if ("化妆师" == m_Workratearray.ElementAt(i).ElementAt(0))
  2087. #endif
  2088. {
  2089. m_data1hz = atoi(m_Workratearray.ElementAt(i).ElementAt(1));
  2090. m_data2hz = (m_Workratearray.ElementAt(i).ElementAt(2));
  2091. m_data3hz = (m_Workratearray.ElementAt(i).ElementAt(3));
  2092. m_data4hz = (m_Workratearray.ElementAt(i).ElementAt(4));
  2093. m_data5hz = (m_Workratearray.ElementAt(i).ElementAt(5));
  2094. }
  2095. }
  2096. m_List4.DeleteAllItems2();
  2097. int count = 0;
  2098. CString str, price;
  2099. for (i = 0; i < AryMyWork.GetSize(); i++)//14
  2100. {
  2101. if (AryMyWork.ElementAt(i).ElementAt(14) == "摄影师" && m_data1sy != 3)
  2102. {
  2103. if (m_data1sy == 0)//按服装套数提
  2104. {
  2105. m_List4.m_arLabels.SetSize(count + 1, 1);
  2106. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(0));
  2107. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(1));
  2108. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(2));
  2109. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(5))*atof(m_data2sy) + atof(AryMyWork.ElementAt(i).ElementAt(6))*atof(m_data3sy));
  2110. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2111. fsum += atof(str);
  2112. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(14));
  2113. str.Format("外景%d,内景%d", atoi(AryMyWork.ElementAt(i).ElementAt(5)), atoi(AryMyWork.ElementAt(i).ElementAt(6)));
  2114. m_List4.m_arLabels.ElementAt(count).Add(str);
  2115. str.Format("%d", atoi(AryMyWork.ElementAt(i).ElementAt(5)) + atoi(AryMyWork.ElementAt(i).ElementAt(6)));
  2116. m_List4.m_arLabels.ElementAt(count).Add(str);
  2117. str.Format("外景%0.2f,内景%0.2f", atof(m_data2sy), atof(m_data3sy));
  2118. m_List4.m_arLabels.ElementAt(count).Add(str);
  2119. m_List4.m_arLabels.ElementAt(count).Add("按服装套数提成");
  2120. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(9));
  2121. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(4));
  2122. count++;
  2123. }
  2124. else if (m_data1sy == 1)//按套系金额提成
  2125. {
  2126. if (AryMyWork.ElementAt(i).ElementAt(3) != AryMyWork.ElementAt(i).ElementAt(15) && AryMyWork.ElementAt(i).ElementAt(3) != AryMyWork.ElementAt(i).ElementAt(16) && AryMyWork.ElementAt(i).ElementAt(3) != AryMyWork.ElementAt(i).ElementAt(17) && AryMyWork.ElementAt(i).ElementAt(3) != AryMyWork.ElementAt(i).ElementAt(18))
  2127. {
  2128. continue;//既不是主摄影师,也不是副..
  2129. }
  2130. m_List4.m_arLabels.SetSize(count + 1, 1);
  2131. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(0));
  2132. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(1));
  2133. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(2));
  2134. if (AryMyWork.ElementAt(i).ElementAt(3) == AryMyWork.ElementAt(i).ElementAt(15))
  2135. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(AryMyWork.ElementAt(i).ElementAt(19)) / 10000.0);
  2136. else if (AryMyWork.ElementAt(i).ElementAt(3) == AryMyWork.ElementAt(i).ElementAt(16))
  2137. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(AryMyWork.ElementAt(i).ElementAt(20)) / 10000.0);
  2138. else if (AryMyWork.ElementAt(i).ElementAt(3) == AryMyWork.ElementAt(i).ElementAt(17))
  2139. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(AryMyWork.ElementAt(i).ElementAt(21)) / 10000.0);
  2140. else if (AryMyWork.ElementAt(i).ElementAt(3) == AryMyWork.ElementAt(i).ElementAt(18))
  2141. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(AryMyWork.ElementAt(i).ElementAt(22)) / 10000.0);
  2142. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2143. fsum += atof(str);
  2144. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(14));
  2145. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2146. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2147. str.Format("套系的%d", atoi(m_data4sy));
  2148. m_List4.m_arLabels.ElementAt(count).Add(str + "%");
  2149. m_List4.m_arLabels.ElementAt(count).Add("按套系金额提成");
  2150. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(9));
  2151. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(4));
  2152. count++;
  2153. }
  2154. else if (m_data1sy == 2)//按加挑照片提成
  2155. {
  2156. m_List4.m_arLabels.SetSize(count + 1, 1);
  2157. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(0));
  2158. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(1));
  2159. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(2));
  2160. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(31))*atof(m_data5sy));
  2161. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2162. fsum += atof(str);
  2163. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(14));
  2164. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2165. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(31));
  2166. str.Format("%0.2f", atof(m_data5sy));
  2167. m_List4.m_arLabels.ElementAt(count).Add(str);
  2168. m_List4.m_arLabels.ElementAt(count).Add("按加挑照片提成");
  2169. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(9));
  2170. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(4));
  2171. count++;
  2172. }
  2173. }
  2174. #ifdef CHILD_VERSION
  2175. else if (AryMyWork.ElementAt(i).ElementAt(14) == "引导师" && m_data1hz != 3)
  2176. #else
  2177. else if (AryMyWork.ElementAt(i).ElementAt(14) == "化妆师" && m_data1hz != 3)
  2178. #endif
  2179. {
  2180. if (m_data1hz == 0)//按服装套数提
  2181. {
  2182. m_List4.m_arLabels.SetSize(count + 1, 1);
  2183. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(0));
  2184. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(1));
  2185. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(2));
  2186. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(5))*atof(m_data2hz) + atof(AryMyWork.ElementAt(i).ElementAt(6))*atof(m_data3hz));
  2187. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2188. fsum += atof(str);
  2189. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(14));
  2190. str.Format("外景%d,内景%d", atoi(AryMyWork.ElementAt(i).ElementAt(5)), atoi(AryMyWork.ElementAt(i).ElementAt(6)));
  2191. m_List4.m_arLabels.ElementAt(count).Add(str);
  2192. str.Format("%d", atoi(AryMyWork.ElementAt(i).ElementAt(5)) + atoi(AryMyWork.ElementAt(i).ElementAt(6)));
  2193. m_List4.m_arLabels.ElementAt(count).Add(str);
  2194. str.Format("外景%0.2f,内景%0.2f", atof(m_data2hz), atof(m_data3hz));
  2195. m_List4.m_arLabels.ElementAt(count).Add(str);
  2196. m_List4.m_arLabels.ElementAt(count).Add("按服装套数提成");
  2197. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(9));
  2198. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(4));
  2199. count++;
  2200. }
  2201. else if (m_data1hz == 1)//按套系金额提成
  2202. {
  2203. if (AryMyWork.ElementAt(i).ElementAt(3) != AryMyWork.ElementAt(i).ElementAt(23) && AryMyWork.ElementAt(i).ElementAt(3) != AryMyWork.ElementAt(i).ElementAt(24) && AryMyWork.ElementAt(i).ElementAt(3) != AryMyWork.ElementAt(i).ElementAt(25) && AryMyWork.ElementAt(i).ElementAt(3) != AryMyWork.ElementAt(i).ElementAt(26))
  2204. {
  2205. continue;//既不是主化妆师,也不是副..
  2206. }
  2207. m_List4.m_arLabels.SetSize(count + 1, 1);
  2208. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(0));
  2209. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(1));
  2210. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(2));
  2211. if (AryMyWork.ElementAt(i).ElementAt(3) == AryMyWork.ElementAt(i).ElementAt(23))
  2212. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(AryMyWork.ElementAt(i).ElementAt(27)) / 10000.0);
  2213. else if (AryMyWork.ElementAt(i).ElementAt(3) == AryMyWork.ElementAt(i).ElementAt(24))
  2214. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(AryMyWork.ElementAt(i).ElementAt(28)) / 10000.0);
  2215. else if (AryMyWork.ElementAt(i).ElementAt(3) == AryMyWork.ElementAt(i).ElementAt(25))
  2216. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(AryMyWork.ElementAt(i).ElementAt(29)) / 10000.0);
  2217. else if (AryMyWork.ElementAt(i).ElementAt(3) == AryMyWork.ElementAt(i).ElementAt(26))
  2218. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(9))*atof(m_data4sy)*atof(AryMyWork.ElementAt(i).ElementAt(30)) / 10000.0);
  2219. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2220. fsum += atof(str);
  2221. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(14));
  2222. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2223. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2224. str.Format("套系的%d", atoi(m_data4hz));
  2225. m_List4.m_arLabels.ElementAt(count).Add(str + "%");
  2226. m_List4.m_arLabels.ElementAt(count).Add("按套系金额提成");
  2227. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(9));
  2228. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(4));
  2229. count++;
  2230. }
  2231. else if (m_data1hz == 2)//按加挑照片提成
  2232. {
  2233. m_List4.m_arLabels.SetSize(count + 1, 1);
  2234. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(0));
  2235. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(1));
  2236. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(2));
  2237. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(31))*atof(m_data5hz));
  2238. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2239. fsum += atof(str);
  2240. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(14));
  2241. m_List4.m_arLabels.ElementAt(count).Add("不适用");
  2242. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(31));
  2243. str.Format("%0.2f", atof(m_data5hz));
  2244. m_List4.m_arLabels.ElementAt(count).Add(str);
  2245. m_List4.m_arLabels.ElementAt(count).Add("按加挑照片提成");
  2246. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(9));
  2247. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(4));
  2248. count++;
  2249. }
  2250. }
  2251. else if (AryMyWork.ElementAt(i).ElementAt(14) == "数码师")
  2252. {
  2253. m_List4.m_arLabels.SetSize(count + 1, 1);
  2254. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(0));
  2255. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(1));
  2256. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(2));
  2257. price = GetPrice(AryMyWork.ElementAt(i).ElementAt(6));
  2258. str.Format("%0.2f", atof(AryMyWork.ElementAt(i).ElementAt(5))*atof(price));
  2259. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2260. fsum += atof(str);
  2261. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(14));
  2262. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(6));
  2263. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(5));
  2264. m_List4.m_arLabels.ElementAt(count).Add(price);
  2265. m_List4.m_arLabels.ElementAt(count).Add("单价x数量");
  2266. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(9));
  2267. m_List4.m_arLabels.ElementAt(count).Add(AryMyWork.ElementAt(i).ElementAt(4));
  2268. count++;
  2269. }
  2270. }
  2271. m_List4.m_LabelCount = count;
  2272. m_List4.SetItemCountEx(count);
  2273. sRet.Format("计件提成(总和:%0.2f)", fsum);
  2274. SetDlgItemText(IDC_STATIC16, sRet);
  2275. sRet.Format("%0.2f", fsum);
  2276. }
  2277. void MySalary::OnBut1()
  2278. {
  2279. }
  2280. void MySalary::OnBut2()
  2281. {
  2282. }
  2283. void MySalary::OnSelchangeCombo6()
  2284. {
  2285. }
  2286. void MySalary::OnBut4()
  2287. {
  2288. // ShowHisSalary dlg;
  2289. // dlg.DoModal();
  2290. }
  2291. CString MySalary::GetPrice(CString name)
  2292. {
  2293. for (int i = 0; i < m_Workratearray.GetSize(); i++)
  2294. {
  2295. if ("数码师" == m_Workratearray.ElementAt(i).ElementAt(0) && name == m_Workratearray.ElementAt(i).ElementAt(1))
  2296. {
  2297. return m_Workratearray.ElementAt(i).ElementAt(2);
  2298. }
  2299. }
  2300. return "0";
  2301. }
  2302. void MySalary::GetMoney6(CString strStaffName, float &fRet) // 获取员工计件式提成金额;
  2303. {
  2304. fRet = 0;
  2305. float fsum = 0;
  2306. int m_data1sy = -1;
  2307. CString m_data2sy;
  2308. CString m_data3sy;
  2309. CString m_data4sy;
  2310. CString m_data5sy;
  2311. int m_data1hz = -1;
  2312. CString m_data2hz;
  2313. CString m_data3hz;
  2314. CString m_data4hz;
  2315. CString m_data5hz;
  2316. m_List4.DeleteAllItems2();
  2317. int count = 0;
  2318. CString str, price;
  2319. for (int i = 0; i < m_List4array.GetSize(); i++)//14
  2320. {
  2321. if (m_List4array.ElementAt(i).ElementAt(3) != strStaffName)
  2322. continue;
  2323. // 计件式提成,只有mywork类型为数码师,才有提成;
  2324. if (m_List4array.ElementAt(i).ElementAt(14) == "数码师")
  2325. {
  2326. m_List4.m_arLabels.SetSize(count + 1, 1);
  2327. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(0));
  2328. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(1));
  2329. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(2));
  2330. price = GetPrice(m_List4array.ElementAt(i).ElementAt(6));
  2331. str.Format("%0.2f", atof(m_List4array.ElementAt(i).ElementAt(5))*atof(price));
  2332. m_List4.m_arLabels.ElementAt(count).Add(str);//金额
  2333. fsum += atof(str);
  2334. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(14));
  2335. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(6));
  2336. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(5));
  2337. m_List4.m_arLabels.ElementAt(count).Add(price);
  2338. m_List4.m_arLabels.ElementAt(count).Add("单价x数量");
  2339. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(9));
  2340. m_List4.m_arLabels.ElementAt(count).Add(m_List4array.ElementAt(i).ElementAt(4));
  2341. count++;
  2342. }
  2343. }
  2344. m_List4.m_LabelCount = count;
  2345. m_List4.SetItemCountEx(count);
  2346. fRet = fsum;
  2347. }
  2348. void MySalary::OnButton4()
  2349. {
  2350. int pos = m_comboname.GetCurSel();
  2351. if (pos == -1)
  2352. {
  2353. AfxMessageBox("请选择您要导出资料的员工");
  2354. return;
  2355. }
  2356. CString name;
  2357. m_comboname.GetWindowText(name);
  2358. SelExportType dlg;
  2359. if (dlg.DoModal() != IDOK)return;
  2360. if (dlg.m_type == 1)
  2361. {
  2362. int arraysize = 0;
  2363. CArray<CStringArray, CStringArray>array;
  2364. CStringArray moneytypearray;
  2365. CString str, field2, field3;
  2366. float sum = 0;
  2367. for (int i = 0; i < m_List1.GetItemCount(); i++)
  2368. {
  2369. field2 = m_List1.GetItemText(i, 0);
  2370. sum += atof(field2);
  2371. field3 = m_List1.GetItemText(i, 2);
  2372. if (::FindArray(&moneytypearray, field3) == -1)
  2373. moneytypearray.Add(field3);
  2374. array.SetSize(arraysize + 1, 1);
  2375. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 0));
  2376. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 1));
  2377. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 2));
  2378. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 3));
  2379. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 4));
  2380. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 5));
  2381. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 6));
  2382. arraysize++;
  2383. }
  2384. array.SetSize(arraysize + 1, 1);
  2385. array.ElementAt(arraysize).Add("总计");
  2386. str.Format("%0.2f", sum);
  2387. array.ElementAt(arraysize).Add(str);
  2388. array.ElementAt(arraysize).Add("");
  2389. array.ElementAt(arraysize).Add("");
  2390. array.ElementAt(arraysize).Add("");
  2391. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2392. arraysize++;
  2393. //////////////////////////////////////////////
  2394. array.SetSize(arraysize + 1, 1);
  2395. array.ElementAt(arraysize).Add("");
  2396. array.ElementAt(arraysize).Add("");
  2397. array.ElementAt(arraysize).Add("");
  2398. array.ElementAt(arraysize).Add("");
  2399. array.ElementAt(arraysize).Add("");
  2400. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2401. arraysize++;
  2402. ///////////////////////////////////////////////
  2403. //////////////////////////////////////////////
  2404. array.SetSize(arraysize + 1, 1);
  2405. array.ElementAt(arraysize).Add("******");
  2406. array.ElementAt(arraysize).Add("******");
  2407. array.ElementAt(arraysize).Add("以下为分类统计");
  2408. array.ElementAt(arraysize).Add("******");
  2409. array.ElementAt(arraysize).Add("******");
  2410. array.ElementAt(arraysize).Add("******"); array.ElementAt(arraysize).Add("******");
  2411. arraysize++;
  2412. ///////////////////////////////////////////////
  2413. array.SetSize(arraysize + 1, 1);
  2414. array.ElementAt(arraysize).Add("");
  2415. array.ElementAt(arraysize).Add("");
  2416. array.ElementAt(arraysize).Add("");
  2417. array.ElementAt(arraysize).Add("");
  2418. array.ElementAt(arraysize).Add("");
  2419. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2420. arraysize++;
  2421. ///////////////////////////////////////////////
  2422. for (int aa = 0; aa < moneytypearray.GetSize(); aa++)
  2423. {
  2424. sum = 0;
  2425. for (int i = 0; i < m_List1.GetItemCount(); i++)
  2426. {
  2427. field3 = m_List1.GetItemText(i, 2);
  2428. if (moneytypearray.ElementAt(aa) != field3)continue;
  2429. field2 = m_List1.GetItemText(i, 0);
  2430. sum += atof(field2);
  2431. array.SetSize(arraysize + 1, 1);
  2432. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 0));
  2433. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 1));
  2434. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 2));
  2435. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 3));
  2436. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 4));
  2437. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 5));
  2438. array.ElementAt(arraysize).Add(m_List1.GetItemText(i, 6));
  2439. arraysize++;
  2440. }
  2441. array.SetSize(arraysize + 1, 1);
  2442. array.ElementAt(arraysize).Add(moneytypearray.ElementAt(aa) + "总计");
  2443. str.Format("%0.2f", sum);
  2444. array.ElementAt(arraysize).Add(str);
  2445. array.ElementAt(arraysize).Add("");
  2446. array.ElementAt(arraysize).Add("");
  2447. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2448. arraysize++;
  2449. //////////////////////////////////////////////
  2450. array.SetSize(arraysize + 1, 1);
  2451. array.ElementAt(arraysize).Add("");
  2452. array.ElementAt(arraysize).Add("");
  2453. array.ElementAt(arraysize).Add("");
  2454. array.ElementAt(arraysize).Add("");
  2455. array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add(""); array.ElementAt(arraysize).Add("");
  2456. arraysize++;
  2457. ///////////////////////////////////////////////
  2458. }
  2459. m_ListTemp.DeleteAllItems2();
  2460. int ii = 0;
  2461. m_ListTemp.m_arLabels.SetSize(array.GetSize(), 1);
  2462. int count = 0;
  2463. for (ii = 0; ii < m_ListTemp.m_arLabels.GetSize(); ii++)
  2464. {
  2465. m_ListTemp.m_arLabels.ElementAt(count++).Copy(array.ElementAt(ii));
  2466. }
  2467. m_ListTemp.m_arLabels.SetSize(count, 1);
  2468. ii = count;
  2469. m_ListTemp.m_LabelCount = ii;
  2470. m_ListTemp.SetItemCountEx(ii);
  2471. ListToXLS(&m_ListTemp, "c:\\" + name + ".xls", 0);
  2472. return;
  2473. }
  2474. CStdioFile fp;
  2475. fp.Open("c:\\" + name + ".txt", CFile::modeCreate | CFile::modeWrite);
  2476. CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;
  2477. int leng1 = 20;
  2478. int leng2 = 15;
  2479. int leng3 = 15;
  2480. int leng4 = 15;
  2481. int leng5 = 15;
  2482. int leng6 = 15;
  2483. int leng7 = 15;
  2484. int leng8 = 15;
  2485. int leng9 = 15;
  2486. int leng10 = 15;
  2487. field1 = "收款日期";
  2488. field2 = "收款金额";
  2489. field3 = "款项类别";
  2490. field4 = "客人姓名";
  2491. FillLength(field1, leng1);
  2492. FillLength(field2, leng2);
  2493. FillLength(field3, leng3);
  2494. FillLength(field4, leng4);
  2495. str = field1 + field2 + field3 + field4 + "\n";
  2496. fp.WriteString(str);
  2497. CStringArray moneytypearray;
  2498. CString m_name1, m_name2;
  2499. float sum = 0;
  2500. for (int i = 0; i < m_List1.GetItemCount(); i++)
  2501. {
  2502. field4.Empty();
  2503. field1 = m_List1.GetItemText(i, 1);
  2504. field2 = m_List1.GetItemText(i, 0);
  2505. sum += atof(field2);
  2506. field3 = m_List1.GetItemText(i, 2);
  2507. if (::FindArray(&moneytypearray, field3) == -1)
  2508. moneytypearray.Add(field3);
  2509. m_name1 = m_List1.GetItemText(i, 3);
  2510. m_name2 = m_List1.GetItemText(i, 4);
  2511. if (!m_name1.IsEmpty())
  2512. field4 = m_name1 + ",";
  2513. field4 += m_name2;
  2514. field4.TrimRight(",");
  2515. FillLength(field1, leng1);
  2516. FillLength(field2, leng2);
  2517. FillLength(field3, leng3);
  2518. FillLength(field4, leng4);
  2519. str = field1 + field2 + field3 + field4 + "\n";
  2520. fp.WriteString(str);
  2521. }
  2522. str = "姓名: " + name;
  2523. fp.WriteString(str); fp.WriteString("\n");
  2524. str = "类别: 订单二销提成\n";
  2525. fp.WriteString(str);
  2526. str.Format("总计: %0.2f", sum); fp.WriteString(str);
  2527. fp.WriteString("\n\n\n************************以下为分类统计************************");
  2528. fp.WriteString("\n\n");
  2529. for (int aa = 0; aa < moneytypearray.GetSize(); aa++)
  2530. {
  2531. sum = 0;
  2532. for (int i = 0; i < m_List1.GetItemCount(); i++)
  2533. {
  2534. field3 = m_List1.GetItemText(i, 2);
  2535. if (moneytypearray.ElementAt(aa) != field3)continue;
  2536. field4.Empty();
  2537. field1 = m_List1.GetItemText(i, 1);
  2538. field2 = m_List1.GetItemText(i, 0);
  2539. sum += atof(field2);
  2540. m_name1 = m_List1.GetItemText(i, 3);
  2541. m_name2 = m_List1.GetItemText(i, 4);
  2542. if (!m_name1.IsEmpty())
  2543. field4 = m_name1 + ",";
  2544. field4 += m_name2;
  2545. field4.TrimRight(",");
  2546. FillLength(field1, leng1);
  2547. FillLength(field2, leng2);
  2548. FillLength(field3, leng3);
  2549. FillLength(field4, leng4);
  2550. str = field1 + field2 + field3 + field4 + "\n";
  2551. fp.WriteString(str);
  2552. }
  2553. str = moneytypearray.ElementAt(aa) + "提成\n";
  2554. fp.WriteString(str);
  2555. str.Format("总计: %0.2f", sum); fp.WriteString(str);
  2556. fp.WriteString("\n\n\n");
  2557. }
  2558. fp.Close();
  2559. MessageBox("资料已保存到c:\\" + name + ".txt");
  2560. ShellExecute(NULL, _T("open"), _T("c:\\" + name + ".txt"), NULL, NULL, SW_SHOWMAXIMIZED);
  2561. }
  2562. void MySalary::OnButton5()
  2563. {
  2564. SelExpendType seldlg;
  2565. seldlg.m_mode = 2;
  2566. if (seldlg.DoModal() != IDOK)return;
  2567. SalarySet4 dlg;
  2568. dlg.m_header = "$" + seldlg.m_sel + ":";
  2569. dlg.DoModal();
  2570. /* SalarySet4 dlg;
  2571. dlg.m_header ="$前期:";
  2572. dlg.DoModal (); */
  2573. }
  2574. void MySalary::OnButton6()
  2575. {
  2576. SelExpendType seldlg;
  2577. seldlg.m_bSecond = 1;
  2578. if (seldlg.DoModal() != IDOK)return;
  2579. SalarySet4 dlg;
  2580. dlg.m_header = "$" + seldlg.m_sel + ":";
  2581. dlg.DoModal();
  2582. }
  2583. void MySalary::OnCloseupCombo7()
  2584. {
  2585. OnSelchangeList1();
  2586. }
  2587. void MySalary::OnButton14()
  2588. {
  2589. int pos = m_comboname.GetCurSel();
  2590. if (pos == -1)
  2591. {
  2592. AfxMessageBox("请选择您要导出资料的员工");
  2593. return;
  2594. }
  2595. CString name;
  2596. m_comboname.GetWindowText(name);
  2597. SelExportType dlg;
  2598. if (dlg.DoModal() != IDOK)return;
  2599. if (dlg.m_type == 1)
  2600. {
  2601. ListToXLS(&m_List4, "c:\\" + name + "(计件).xls", 0);
  2602. return;
  2603. }
  2604. CStdioFile fp;
  2605. fp.Open("c:\\" + name + "(计件).txt", CFile::modeCreate | CFile::modeWrite);
  2606. CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;
  2607. int leng1 = 20;
  2608. int leng2 = 15;
  2609. int leng3 = 15;
  2610. int leng4 = 15;
  2611. int leng5 = 15;
  2612. int leng6 = 15;
  2613. int leng7 = 15;
  2614. int leng8 = 15;
  2615. int leng9 = 15;
  2616. int leng10 = 15;
  2617. CString m_name1, m_name2;
  2618. float sum = 0;
  2619. {
  2620. leng1 = 18;
  2621. leng2 = 15;
  2622. leng3 = 10;
  2623. leng4 = 15;
  2624. leng5 = 10;
  2625. leng6 = 10;
  2626. leng7 = 15;
  2627. leng8 = 15;
  2628. leng9 = 15;
  2629. field1 = "客人姓名";
  2630. field2 = "提成金额";
  2631. field3 = "部门";
  2632. field4 = "内容";
  2633. field5 = "数量";
  2634. field6 = "单价";
  2635. field7 = "提成方式";
  2636. field8 = "套系金额";
  2637. field9 = "日期";
  2638. FillLength(field1, leng1);
  2639. FillLength(field2, leng2);
  2640. FillLength(field3, leng3);
  2641. FillLength(field4, leng4);
  2642. FillLength(field5, leng5);
  2643. FillLength(field6, leng6);
  2644. FillLength(field7, leng7);
  2645. FillLength(field8, leng8);
  2646. FillLength(field9, leng9);
  2647. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
  2648. fp.WriteString(str);
  2649. for (int i = 0; i < m_List4.GetItemCount(); i++)
  2650. {
  2651. field1.Empty();
  2652. m_name1 = m_List4.GetItemText(i, 1);
  2653. m_name2 = m_List4.GetItemText(i, 2);
  2654. if (!m_name1.IsEmpty())
  2655. field1 = m_name1 + ",";
  2656. field1 += m_name2;
  2657. field1.TrimRight(",");
  2658. field2 = m_List4.GetItemText(i, 3);
  2659. sum += atof(field2);
  2660. field3 = m_List4.GetItemText(i, 4);
  2661. field4 = m_List4.GetItemText(i, 5);
  2662. field5 = m_List4.GetItemText(i, 6);
  2663. field6 = m_List4.GetItemText(i, 7);
  2664. field7 = m_List4.GetItemText(i, 8);
  2665. field8 = m_List4.GetItemText(i, 9);
  2666. field9 = m_List4.GetItemText(i, 10);
  2667. FillLength(field1, leng1);
  2668. FillLength(field2, leng2);
  2669. FillLength(field3, leng3);
  2670. FillLength(field4, leng4);
  2671. FillLength(field5, leng5);
  2672. FillLength(field6, leng6);
  2673. FillLength(field7, leng7);
  2674. FillLength(field8, leng8);
  2675. FillLength(field9, leng9);
  2676. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
  2677. fp.WriteString(str);
  2678. }
  2679. fp.WriteString("\n");
  2680. str = "姓名: " + name;
  2681. fp.WriteString(str); fp.WriteString("\n");
  2682. str = "类别: 计件提成\n";
  2683. fp.WriteString(str);
  2684. str.Format("总计: %0.2f", sum); fp.WriteString(str);
  2685. }
  2686. fp.Close();
  2687. MessageBox("资料已保存到c:\\" + name + "(计件).txt");
  2688. ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(计件).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
  2689. }
  2690. void MySalary::OnButton7()
  2691. {
  2692. int pos = m_comboname.GetCurSel();
  2693. if (pos == -1)
  2694. {
  2695. AfxMessageBox("请选择您要导出资料的员工");
  2696. return;
  2697. }
  2698. CString name;
  2699. m_comboname.GetWindowText(name);
  2700. SelExportType dlg;
  2701. if (dlg.DoModal() != IDOK)return;
  2702. if (dlg.m_type == 1)
  2703. {
  2704. ListToXLS(&m_Listtake, "c:\\" + name + "(摄影).xls", 0);
  2705. return;
  2706. }
  2707. CStdioFile fp;
  2708. fp.Open("c:\\" + name + "(摄影).txt", CFile::modeCreate | CFile::modeWrite);
  2709. CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;
  2710. int leng1 = 20;
  2711. int leng2 = 15;
  2712. int leng3 = 15;
  2713. int leng4 = 15;
  2714. int leng5 = 15;
  2715. int leng6 = 15;
  2716. int leng7 = 15;
  2717. int leng8 = 15;
  2718. int leng9 = 15;
  2719. int leng10 = 15;
  2720. CString m_name1, m_name2;
  2721. float sum = 0;
  2722. int waiter1count = 0;
  2723. int waiter12count = 0;
  2724. int waiter2count = 0;
  2725. int waiter22count = 0;
  2726. {
  2727. leng1 = 18;
  2728. leng2 = 20;
  2729. leng3 = 12;
  2730. leng4 = 20;
  2731. leng5 = 15;
  2732. leng6 = 10;
  2733. leng7 = 10;
  2734. leng8 = 10;
  2735. leng9 = 10;
  2736. field1 = "客人姓名";
  2737. field2 = "套系";
  2738. field3 = "套系金额";
  2739. field4 = "景点";
  2740. field5 = "日期";
  2741. field6 = "摄影";
  2742. field7 = "助理";
  2743. field8 = "化妆";
  2744. #ifdef CHILD_VERSION
  2745. field8 = "引导";
  2746. #endif
  2747. field9 = "助理";
  2748. FillLength(field1, leng1);
  2749. FillLength(field2, leng2);
  2750. FillLength(field3, leng3);
  2751. FillLength(field4, leng4);
  2752. FillLength(field5, leng5);
  2753. FillLength(field6, leng6);
  2754. FillLength(field7, leng7);
  2755. FillLength(field8, leng8);
  2756. FillLength(field9, leng9);
  2757. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
  2758. fp.WriteString(str);
  2759. for (int i = 0; i < m_Listtake.GetItemCount(); i++)
  2760. {
  2761. field1.Empty();
  2762. m_name1 = m_Listtake.GetItemText(i, 1);
  2763. m_name2 = m_Listtake.GetItemText(i, 2);
  2764. if (!m_name1.IsEmpty())
  2765. field1 = m_name1 + ",";
  2766. field1 += m_name2;
  2767. field1.TrimRight(",");
  2768. field2 = m_Listtake.GetItemText(i, 3);
  2769. field3 = m_Listtake.GetItemText(i, 4);
  2770. sum += atof(field3);
  2771. field4 = m_Listtake.GetItemText(i, 5);
  2772. field5 = m_Listtake.GetItemText(i, 6);
  2773. field6 = m_Listtake.GetItemText(i, 7);
  2774. field7 = m_Listtake.GetItemText(i, 8);
  2775. field8 = m_Listtake.GetItemText(i, 9);
  2776. field9 = m_Listtake.GetItemText(i, 10);
  2777. if (field6 == name)waiter1count++;
  2778. if (field7 == name)waiter12count++;
  2779. if (field8 == name)waiter2count++;
  2780. if (field9 == name)waiter22count++;
  2781. FillLength(field1, leng1);
  2782. FillLength(field2, leng2);
  2783. FillLength(field3, leng3);
  2784. FillLength(field4, leng4);
  2785. FillLength(field5, leng5);
  2786. FillLength(field6, leng6);
  2787. FillLength(field7, leng7);
  2788. FillLength(field8, leng8);
  2789. FillLength(field9, leng9);
  2790. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + "\n";
  2791. fp.WriteString(str);
  2792. }
  2793. fp.WriteString("\n");
  2794. str = "姓名: " + name;
  2795. fp.WriteString(str); fp.WriteString("\n");
  2796. str.Format("摄影: %d\n", waiter1count); fp.WriteString(str);
  2797. str.Format("助理: %d\n", waiter12count); fp.WriteString(str);
  2798. #ifdef CHILD_VERSION
  2799. str.Format("引导: %d\n", waiter2count); fp.WriteString(str);
  2800. #else
  2801. str.Format("化妆: %d\n", waiter2count); fp.WriteString(str);
  2802. #endif
  2803. str.Format("助理: %d\n", waiter22count); fp.WriteString(str);
  2804. str.Format("订单总金额: %0.2f", sum); fp.WriteString(str);
  2805. }
  2806. fp.Close();
  2807. MessageBox("资料已保存到c:\\" + name + "(摄影).txt");
  2808. ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(摄影).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
  2809. }
  2810. void MySalary::OnButton8()
  2811. {
  2812. UpdateData();
  2813. int pos = m_comboname.GetCurSel();
  2814. if (pos == -1)
  2815. {
  2816. AfxMessageBox("请选择您要导出资料的员工");
  2817. return;
  2818. }
  2819. CString date1, date2;
  2820. date1 = m_date1.Format("%Y-%m-%d");
  2821. date2 = m_date2.Format("%Y-%m-%d");
  2822. CString name;
  2823. m_comboname.GetWindowText(name);
  2824. SelExportType dlg;
  2825. if (dlg.DoModal() != IDOK)return;
  2826. if (dlg.m_type == 1)
  2827. {
  2828. ListToXLS(&m_Listdigital, "c:\\" + name + "(数码).xls", 0);
  2829. return;
  2830. }
  2831. CStdioFile fp;
  2832. fp.Open("c:\\" + name + "(数码).txt", CFile::modeCreate | CFile::modeWrite);
  2833. CString str, field1, field2, field3, field4, field5, field6, field7, field8, field9, field10;
  2834. int leng1 = 20;
  2835. int leng2 = 15;
  2836. int leng3 = 15;
  2837. int leng4 = 15;
  2838. int leng5 = 15;
  2839. int leng6 = 15;
  2840. int leng7 = 15;
  2841. int leng8 = 15;
  2842. int leng9 = 15;
  2843. int leng10 = 15;
  2844. CString m_name1, m_name2;
  2845. float sum1 = 0;
  2846. float sum2 = 0;
  2847. float sum3 = 0;
  2848. float sum12 = 0;
  2849. float sum22 = 0;
  2850. float sum32 = 0;
  2851. int count1 = 0;
  2852. int count2 = 0;
  2853. int count3 = 0;
  2854. {
  2855. leng1 = 18;
  2856. leng2 = 20;
  2857. leng3 = 12;
  2858. leng4 = 10;
  2859. leng5 = 15;
  2860. leng6 = 10;
  2861. leng7 = 15;
  2862. leng8 = 10;
  2863. leng9 = 15;
  2864. leng10 = 10;
  2865. field1 = "客人姓名";
  2866. field2 = "套系";
  2867. field3 = "套系金额";
  2868. field4 = "初修";
  2869. field5 = "日期";
  2870. field6 = "精修";
  2871. field7 = "日期";
  2872. field8 = "设计";
  2873. field9 = "日期";
  2874. field10 = "选片二销";
  2875. FillLength(field1, leng1);
  2876. FillLength(field2, leng2);
  2877. FillLength(field3, leng3);
  2878. FillLength(field4, leng4);
  2879. FillLength(field5, leng5);
  2880. FillLength(field6, leng6);
  2881. FillLength(field7, leng7);
  2882. FillLength(field8, leng8);
  2883. FillLength(field9, leng9);
  2884. FillLength(field10, leng10);
  2885. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + field10 + "\n";
  2886. fp.WriteString(str);
  2887. for (int i = 0; i < m_Listdigital.GetItemCount(); i++)
  2888. {
  2889. field1.Empty();
  2890. m_name1 = m_Listdigital.GetItemText(i, 1);
  2891. m_name2 = m_Listdigital.GetItemText(i, 2);
  2892. if (!m_name1.IsEmpty())
  2893. field1 = m_name1 + ",";
  2894. field1 += m_name2;
  2895. field1.TrimRight(",");
  2896. field2 = m_Listdigital.GetItemText(i, 3);
  2897. field3 = m_Listdigital.GetItemText(i, 4);
  2898. field4 = m_Listdigital.GetItemText(i, 5);
  2899. field5 = m_Listdigital.GetItemText(i, 6);
  2900. field6 = m_Listdigital.GetItemText(i, 7);
  2901. field7 = m_Listdigital.GetItemText(i, 8);
  2902. field8 = m_Listdigital.GetItemText(i, 9);
  2903. field9 = m_Listdigital.GetItemText(i, 10);
  2904. field10 = m_Listdigital.GetItemText(i, 14);
  2905. if (m_Listdigital.GetItemText(i, 11) == "OK" && field4 == name && field5 >= date1 && field5 <= date2)
  2906. {
  2907. sum1 += atof(field3);
  2908. sum12 += atof(field10);
  2909. count1++;
  2910. }
  2911. if (m_Listdigital.GetItemText(i, 12) == "OK" && field6 == name && field7 >= date1 && field7 <= date2)
  2912. {
  2913. sum2 += atof(field3);
  2914. sum22 += atof(field10);
  2915. count2++;
  2916. }
  2917. if (m_Listdigital.GetItemText(i, 13) == "OK" && field8 == name && field9 >= date1 && field9 <= date2)
  2918. {
  2919. sum3 += atof(field3);
  2920. sum32 += atof(field10);
  2921. count3++;
  2922. }
  2923. FillLength(field1, leng1);
  2924. FillLength(field2, leng2);
  2925. FillLength(field3, leng3);
  2926. FillLength(field4, leng4);
  2927. FillLength(field5, leng5);
  2928. FillLength(field6, leng6);
  2929. FillLength(field7, leng7);
  2930. FillLength(field8, leng8);
  2931. FillLength(field9, leng9);
  2932. FillLength(field10, leng10);
  2933. str = field1 + field2 + field3 + field4 + field5 + field6 + field7 + field8 + field9 + field10 + "\n";
  2934. fp.WriteString(str);
  2935. }
  2936. fp.WriteString("\n");
  2937. str = "姓名: " + name;
  2938. fp.WriteString(str); fp.WriteString("\n");
  2939. str.Format("初修: %d单 订单金额:%0.2f 选片二销:%0.2f\n", count1, sum1, sum12); fp.WriteString(str);
  2940. str.Format("精修: %d单 订单金额:%0.2f 选片二销:%0.2f\n", count2, sum2, sum22); fp.WriteString(str);
  2941. str.Format("设计: %d单 订单金额:%0.2f 选片二销:%0.2f\n", count3, sum3, sum32); fp.WriteString(str);
  2942. }
  2943. fp.Close();
  2944. MessageBox("资料已保存到c:\\" + name + "(数码).txt");
  2945. ShellExecute(NULL, _T("open"), _T("c:\\" + name + "(数码).txt"), NULL, NULL, SW_SHOWMAXIMIZED);
  2946. }
  2947. void MySalary::OnDatetimechangeDatetimepicker1(NMHDR* pNMHDR, LRESULT* pResult)
  2948. {
  2949. OnSelchangeList1();
  2950. *pResult = 0;
  2951. }
  2952. void MySalary::OnDatetimechangeDatetimepicker2(NMHDR* pNMHDR, LRESULT* pResult)
  2953. {
  2954. OnSelchangeList1();
  2955. *pResult = 0;
  2956. }
  2957. CString GetExcelDriver()
  2958. {
  2959. char szBuf[2001];
  2960. WORD cbBufMax = 2000;
  2961. WORD cbBufOut;
  2962. char *pszBuf = szBuf;
  2963. CString sDriver;
  2964. if (!SQLGetInstalledDrivers(szBuf, cbBufMax, &cbBufOut))
  2965. return "";
  2966. do
  2967. {
  2968. if (strstr(pszBuf, "Excel") != 0)
  2969. {
  2970. sDriver = CString(pszBuf);
  2971. break;
  2972. }
  2973. pszBuf = strchr(pszBuf, '\0') + 1;
  2974. } while (pszBuf[1] != '\0');
  2975. return sDriver;
  2976. }
  2977. BOOL MakeSurePathExists(CString &Path, bool FilenameIncluded)
  2978. {
  2979. int Pos = 0;
  2980. while ((Pos = Path.Find('\\', Pos + 1)) != -1)
  2981. CreateDirectory(Path.Left(Pos), NULL);
  2982. if (!FilenameIncluded)
  2983. CreateDirectory(Path, NULL);
  2984. // return ((!FilenameIncluded)?!_access(Path,0):
  2985. // !_access(Path.Left(Path.ReverseFind('\\')),0));
  2986. return !_access(Path, 0);
  2987. }
  2988. BOOL GetDefaultXlsFileName(CString &sExcelFile)
  2989. {
  2990. ///默认文件名:yyyymmddhhmmss.xls
  2991. // prompt the user (with all document templates)
  2992. CFileDialog dlgFile(FALSE, ".xls", sExcelFile);
  2993. CString title;
  2994. CString strFilter;
  2995. title = "导出";
  2996. strFilter = "Excel文件(*.xls)";
  2997. strFilter += (TCHAR)'\0'; // next string please
  2998. strFilter += _T("*.xls");
  2999. strFilter += (TCHAR)'\0'; // last string
  3000. dlgFile.m_ofn.nMaxCustFilter++;
  3001. dlgFile.m_ofn.nFilterIndex = 1;
  3002. // append the "*.*" all files filter
  3003. CString allFilter;
  3004. VERIFY(allFilter.LoadString(AFX_IDS_ALLFILTER));
  3005. strFilter += allFilter;
  3006. strFilter += (TCHAR)'\0'; // next string please
  3007. strFilter += _T("*.*");
  3008. strFilter += (TCHAR)'\0'; // last string
  3009. dlgFile.m_ofn.nMaxCustFilter++;
  3010. dlgFile.m_ofn.lpstrFilter = strFilter;
  3011. dlgFile.m_ofn.lpstrTitle = title;
  3012. if (dlgFile.DoModal() == IDCANCEL)
  3013. return FALSE; // open cancelled
  3014. sExcelFile = dlgFile.GetFileName();
  3015. if (MakeSurePathExists(sExcelFile, true)) {
  3016. if (!DeleteFile(sExcelFile)) { // 删除xls文件;
  3017. AfxMessageBox("覆盖文件时出错!");
  3018. return FALSE;
  3019. }
  3020. }
  3021. return TRUE;
  3022. }
  3023. int FindArrayCount(CStringArray *pArray, CString Str)
  3024. {
  3025. int ret = 0;
  3026. for (int i = 0; i < pArray->GetSize(); i++)
  3027. {
  3028. if (pArray->ElementAt(i) == Str)
  3029. ret++;
  3030. }
  3031. return ret;
  3032. }
  3033. void ListToXLS(CListCtrl *pList, CString savepath, int nColumn, int nRow)
  3034. {
  3035. CString strPath = savepath;
  3036. #if 0
  3037. const int nImportCount = 3500;
  3038. INT nItemCount = pList->GetItemCount();
  3039. if ( nItemCount < 5000)
  3040. {
  3041. Import2Excle(pList, savepath, nColumn, nRow);
  3042. }
  3043. else
  3044. {
  3045. int nTimes = 0;
  3046. int nStartRow = 0;
  3047. int nEndRow = 0;
  3048. savepath.TrimRight(_T(".xls"));
  3049. TCHAR szExcelpath[MAX_PATH] = {0};
  3050. while( true )
  3051. {
  3052. nItemCount -= nImportCount;
  3053. if ( nItemCount > 0 )
  3054. {
  3055. nTimes++;
  3056. nEndRow += nImportCount;
  3057. sprintf(szExcelpath, _T("%s%d.xls"), savepath, nTimes);
  3058. Import2Excle(pList, szExcelpath, nColumn, nStartRow, -1, nEndRow);
  3059. nStartRow += nImportCount;
  3060. }
  3061. else
  3062. {
  3063. sprintf(szExcelpath, _T("%s%d.xls"), savepath, nTimes+1);
  3064. Import2Excle(pList, szExcelpath, nColumn, nStartRow, -1, -1);
  3065. break;
  3066. }
  3067. }
  3068. }
  3069. #else
  3070. Import2Xls(pList, savepath, nColumn, nRow);
  3071. #endif
  3072. strPath = savepath + _T(".dat");
  3073. savepath.Format(_T("%sxlsworker.exe"), g_szModulePath);
  3074. ShellExecute(NULL, _T("open"), savepath, strPath, NULL, SW_SHOW);
  3075. ///AfxMessageBox(savepath + _T("后台生成,请稍等片刻!"));
  3076. return;
  3077. if (pList == NULL)return;
  3078. CString strTitle = "sheet1";
  3079. CString warningStr;
  3080. CString str, temp;
  3081. if (pList->GetItemCount()>0)
  3082. {
  3083. CDatabase database;
  3084. CString sDriver;
  3085. CString sExcelFile;
  3086. CString sSql;
  3087. CString tableName = strTitle;
  3088. CStringArray colarray;
  3089. // 检索是否安装有Excel驱动 "Microsoft Excel Driver (*.xls)"
  3090. sDriver = GetExcelDriver();
  3091. if (sDriver.IsEmpty())
  3092. {
  3093. // 没有发现Excel驱动
  3094. AfxMessageBox("没有安装Excel!\n请先安装Excel软件才能使用导出功能!");
  3095. return;
  3096. }
  3097. sExcelFile = "";
  3098. sExcelFile = savepath;
  3099. ///默认文件名
  3100. if (!GetDefaultXlsFileName(sExcelFile))
  3101. return;
  3102. // 创建进行存取的字符串
  3103. sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s", sDriver, sExcelFile, sExcelFile);
  3104. // 创建数据库 (既Excel表格文件)
  3105. if (database.OpenEx(sSql, CDatabase::noOdbcDialog))
  3106. {
  3107. // 创建表结构
  3108. int i;
  3109. LVCOLUMN columnData;
  3110. CString columnName;
  3111. int columnNum = 0;
  3112. CString strH;
  3113. CString strV;
  3114. sSql = "";
  3115. strH = "";
  3116. columnData.mask = LVCF_TEXT;
  3117. columnData.cchTextMax = 100;
  3118. columnData.pszText = columnName.GetBuffer(100);
  3119. {
  3120. for (i = nColumn; pList->GetColumn(i, &columnData); i++)
  3121. {
  3122. if (i != nColumn)
  3123. {
  3124. sSql = sSql + ", ";
  3125. strH = strH + ", ";
  3126. }
  3127. temp = columnData.pszText;
  3128. temp.Replace("/", "");
  3129. temp.Replace("(", "");
  3130. temp.Replace(")", "");
  3131. int countexist = FindArrayCount(&colarray, temp);
  3132. if (countexist)
  3133. {
  3134. CString ss;
  3135. ss.Format("%d", countexist + 1);
  3136. sSql = sSql + " " + temp + ss + " TEXT";
  3137. strH = strH + " " + temp + ss + " ";
  3138. str = temp;
  3139. str += ss;
  3140. colarray.Add(str);
  3141. }
  3142. else
  3143. {
  3144. sSql = sSql + " " + temp + " TEXT";
  3145. strH = strH + " " + temp + " ";
  3146. colarray.Add(temp);
  3147. }
  3148. }
  3149. }
  3150. columnName.ReleaseBuffer();
  3151. columnNum = i;
  3152. sSql = "CREATE TABLE " + tableName + " ( " + sSql + " ) ";
  3153. database.ExecuteSQL(sSql);
  3154. // 插入数据项
  3155. int nItemIndex;
  3156. {
  3157. for (nItemIndex = 0; nItemIndex < pList->GetItemCount(); nItemIndex++)
  3158. {
  3159. strV = "";
  3160. for (i = nColumn; i < columnNum; i++)
  3161. {
  3162. if (i != nColumn)
  3163. {
  3164. strV = strV + ", ";
  3165. }
  3166. strV = strV + " '" + pList->GetItemText(nItemIndex, i) + "' ";
  3167. }
  3168. sSql = "INSERT INTO " + tableName
  3169. + " (" + strH + ")"
  3170. + " VALUES(" + strV + ")";
  3171. database.ExecuteSQL(sSql);
  3172. }
  3173. }
  3174. }
  3175. // 关闭数据库
  3176. database.Close();
  3177. ShellExecute(NULL, _T("open"), sExcelFile, NULL, NULL, SW_SHOW);
  3178. }
  3179. else
  3180. AfxMessageBox("表中没有数据!");
  3181. }
  3182. //%0.2f
  3183. void MySalary::OnBut3() // 导出按钮;
  3184. {
  3185. ListToXLS(&m_List3, "c:\\工资表.xls", 0);
  3186. }