123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401 |
- #include "stdafx.h"
- #include "StaffWage.h"
- #include "Global/Global.h"
- #include "MainFrm.h"
- extern CMainFrame *g_pMainWnd;
- #ifdef VC60
- #define _tstof atof
- #define _tstoi atoi
- #endif
- CStaffWage::CStaffWage(void)
- {
- m_strStaffName = _T("");
- m_strWageStartDate = _T("");
- m_strWageEndofDate = _T("");
- m_fEaryResultMoney = 0.0;
- }
- CStaffWage::~CStaffWage(void)
- {
- ClearStaffWageData();
- }
- void CStaffWage::ClearStaffWageData()
- {
- m_AryStaffDetail.RemoveAll();
- m_AryReceiptRecords.RemoveAll();
- m_AryOrderDetail.RemoveAll();
- m_AryOtherIncomeRecord.RemoveAll();
- m_ArySceneryWorkRecord.RemoveAll();
- m_AryMyWorkRecord.RemoveAll();
- m_AryDigitalWorkRecord.RemoveAll();
- m_AryWageType.RemoveAll();
- m_AryWageTypeMoney.RemoveAll();
- m_fEaryResultMoney = 0.0;
- }
- BOOL CStaffWage::GetStaffWageData(IN CString strStaffName, IN CString strWageStartDate, IN CString strWageEndofDate)
- {
- m_strStaffName = strStaffName;
- m_strWageStartDate = strWageStartDate;
- m_strWageEndofDate = strWageEndofDate;
- CString strTemp = _T("");
- CString strFilter = _T("");
- // 0.case 34:查询员工;
- strTemp.Format(_T("name = '%s' and dimission='在职';"), m_strStaffName);
- strFilter += strTemp;
- // 1.case 242:查询所有收款详情;
- strTemp.Format(_T("(Paydate >= '%s' and Paydate <= '%s' ) or (PhotoStatus = 'OK' and PhotogOfPaydate >= '%s' and PhotogOfPaydate <= '%s');"), strWageStartDate, strWageEndofDate, strWageStartDate, strWageEndofDate);
- strFilter += strTemp;
- #ifdef _DEBUG
- WriteTextLog(_T("case 242:%s"), strTemp);
- #endif
- // 2.case 243:查询收款订单;
- strTemp.Format(
- _T("([ren] = '%s' or [ren2] = '%s' or")
- _T(" [waiter1] = '%s' or [waiter12] = '%s' or [waiter13] = '%s' or [waiter14] = '%s' or")
- _T(" [waiter2] = '%s' or [waiter22] = '%s' or [waiter23] = '%s' or [waiter24] = '%s' or")
- _T(" [waiter3] = '%s' or [waiter4] = '%s' or [waiter5] = '%s' or")
- _T(" [waiter6] = '%s' or [waiter7] = '%s' or [waiter8] = '%s' or [waiter9] = '%s')")
- _T(" and id in (select distinct id from Payroll where (Paydate >= '%s' and Paydate <= '%s') or (PhotoStatus = 'OK' and PhotogOfPaydate >= '%s' and PhotogOfPaydate <= '%s'));"),
- m_strStaffName, // 主门市;
- m_strStaffName, // 副门市;
- m_strStaffName, // 主摄影;
- m_strStaffName, // 摄影2;
- m_strStaffName, // 摄影3;
- m_strStaffName, // 摄影4;
- m_strStaffName, // 主化妆;
- m_strStaffName, // 化妆2;
- m_strStaffName, // 化妆3;
- m_strStaffName, // 化妆4;
- m_strStaffName, // 选片师;
- m_strStaffName, // 设计师;
- m_strStaffName, // 初修师;
- m_strStaffName, // 接单人;
- m_strStaffName, // 精修师;
- m_strStaffName, // 看设计人;
- m_strStaffName, // ???;
- strWageStartDate, strWageEndofDate, strWageStartDate, strWageEndofDate);
- strFilter += strTemp;
- #ifdef _DEBUG
- WriteTextLog(_T("case 243:%s"), strTemp);
- #endif
- // 3.case 198:查询其他收入;
- strTemp.Format(
- _T("[date] >= '%s' and [date] <= '%s' and [renyuan3] = '%s';"),
- strWageStartDate, strWageEndofDate, strStaffName);
- strFilter += strTemp;
- // 4.case 142:查询我的工作-mywork;
- strTemp.Format(_T("datetime >= '%s' and datetime <= '%s' and name = '%s';"),strWageStartDate, strWageEndofDate, strStaffName);
- strFilter += strTemp;
- // 5.case 192:查询摄影师景点工作;
- strTemp.Format(_T("[date] >= '%s' and [date] <= '%s' and [status] = 'OK' and ([waiter1] = '%s' or [waiter12] = '%s' or [waiter2] = '%s' or [waiter22] = '%s');"),
- strWageStartDate, strWageEndofDate, strStaffName,strStaffName,strStaffName,strStaffName);
- strFilter += strTemp;
- // 6.case 193:查询数码工作记录;
- strTemp.Format(
- _T("([time8] >='%s' and [time8]<='%s' and [status4]='OK' and [waiter5]='%s') or ")
- _T("([time9] >='%s' and [time9]<='%s' and [status6]='OK' and [waiter7]='%s') or ")
- _T("([time10] >='%s' and [time10]<='%s' and [status5]='OK' and [waiter4]='%s');"),
- strWageStartDate, strWageEndofDate, strStaffName,
- strWageStartDate, strWageEndofDate, strStaffName,
- strWageStartDate, strWageEndofDate, strStaffName);
- strFilter += strTemp;
- g_sendhead.code[0] = 34;
- g_sendhead.code[1] = 242;
- g_sendhead.code[2] = 243;
- g_sendhead.code[3] = 198;
- g_sendhead.code[4] = 142;
- g_sendhead.code[5] = 192;
- g_sendhead.code[6] = 193;
- g_sendhead.tabcount = 7;
- g_sendhead.bsql = FALSE;
- g_pMainWnd->ProcessChatMessageRequest2(strFilter);
- if ( !g_bSendOK )
- return FALSE;
- ClearStaffWageData();
- DataToArray(&m_AryStaffDetail, &m_AryReceiptRecords, &m_AryOrderDetail, &m_AryOtherIncomeRecord, &m_AryMyWorkRecord, &m_ArySceneryWorkRecord, &m_AryDigitalWorkRecord);
- #ifdef _DEBUG
- int nSize = m_AryReceiptRecords.GetSize();
- for (int i = 0; i < nSize; i++ )
- {
- WriteTextLog(_T("\n"));
- for ( int j = 0; j < m_AryReceiptRecords.ElementAt(i).GetSize(); j++ )
- {
- WriteTextLog(_T("%s"), m_AryReceiptRecords.ElementAt(i).ElementAt(j));
- }
- }
- #endif
- return TRUE;
- }
- /************************************************************************/
- /* 函数:[1/3/2017 IT];
- /* 描述:摄影师和化妆师的前期业绩;
- /* 参数:;
- /* [IN] :;
- /* [OUT] :;
- /* [IN/OUT] :;
- /* 返回:void;
- /* 注意:;
- /* 示例:;
- /*
- /* 修改:;
- /* 日期:;
- /* 内容:;
- /************************************************************************/
- void CStaffWage::GetPhotographerAndMakeupArtistServeRecord(IN CString strOrderNum, IN BOOL &bPhotographer, IN BOOL &bMakeupArtist, IN FLOAT &fPhotographerPercent, IN FLOAT &fMakeupArtistPercent)
- {
- bPhotographer = bMakeupArtist = FALSE;
- INT nSize = m_AryOrderDetail.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- // 是否指定要查询的订单;
- if ( m_AryOrderDetail.ElementAt(i).ElementAt(0) == strOrderNum )
- {
- // 主摄影师、摄影师2~4只能有一个;
- if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(1) )
- {// 是否是有主摄影师服务提成;
- bPhotographer = TRUE;
- // 获取折扣;
- fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(5))/100.0;
- if ( fPhotographerPercent == 0.0 )
- fPhotographerPercent = 1.0;
- }
- else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(2) )
- {// 是否是有摄影师2服务提成;
- bPhotographer = TRUE;
- // 获取折扣;
- fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(6))/100.0;
- if ( fPhotographerPercent == 0.0 )
- fPhotographerPercent = 1.0;
- }
- else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(3) )
- {// 是否是有摄影师3服务提成;
- bPhotographer = TRUE;
- // 获取折扣;
- fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(7))/100.0;
- if ( fPhotographerPercent == 0.0 )
- fPhotographerPercent = 1.0;
- }
- else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(4) )
- {// 是否是有摄影师4服务提成;
- bPhotographer = TRUE;
- // 获取折扣;
- fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(8))/100.0;
- if ( fPhotographerPercent == 0.0 )
- fPhotographerPercent = 1.0;
- }
- // 主化妆师、化妆师2~4只能有一个;
- if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(9) )
- {// 是否是主化妆师服务记录;
- bMakeupArtist = TRUE;
- // 获取折扣;
- fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(13))/100.0;
- if ( fMakeupArtistPercent == 0.0 )
- fMakeupArtistPercent = 1.0;
- }
- else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(10) )
- {// 是否是有化妆师2服务提成;
- bMakeupArtist = TRUE;
- // 获取折扣;
- fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(14))/100.0;
- if ( fMakeupArtistPercent == 0.0 )
- fMakeupArtistPercent = 1.0;
- }
- else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(11) )
- {// 是否是有化妆师3服务提成;
- bMakeupArtist = TRUE;
- // 获取折扣;
- fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(15))/100.0;
- if ( fMakeupArtistPercent == 0.0 )
- fMakeupArtistPercent = 1.0;
- }
- else if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(12) )
- {// 是否是有化妆师4服务提成;
- bMakeupArtist = TRUE;
- // 获取折扣;
- fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(16))/100.0;
- if ( fMakeupArtistPercent == 0.0 )
- fMakeupArtistPercent = 1.0;
- }
- break;
- }
- }
- }
- /************************************************************************/
- /* 函数:[1/3/2017 IT];
- /* 描述:主副门市提成;
- /* 参数:;
- /* [IN] :;
- /* [OUT] :;
- /* [IN/OUT] :;
- /* 返回:void;
- /* 注意:;
- /* 示例:;
- /*
- /* 修改:;
- /* 日期:;
- /* 内容:;
- /************************************************************************/
- void CStaffWage::GetSalesServerRecord(IN CString strOrderNum, IN BOOL &bSalesperson1, IN BOOL &bSalesperson2, IN FLOAT &fbSalesperson1Percent, IN FLOAT &fbSalesperson2Percent)
- {
- bSalesperson1 = bSalesperson2 = FALSE;
- INT nSize = m_AryOrderDetail.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- // 是否指定要查询的订单;
- if ( m_AryOrderDetail.ElementAt(i).ElementAt(0) == strOrderNum )
- {
- #if 0 // 有误,如果主副门市都存在时;
- // 主门市;
- if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(17) )
- {// 是否是主门市提成;
- bSalesperson1 = TRUE;
- // 获取折扣;
- fbSalesperson1Percent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(19))/100.0;
- if ( fbSalesperson1Percent == 0.0 )
- fbSalesperson1Percent = 1.0;
- }
- // 副门市;
- if ( m_strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(18) )
- {// 是否是副门市提成;
- bSalesperson2 = TRUE;
- // 获取折扣;
- fbSalesperson2Percent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(20))/100.0;
- if ( fbSalesperson2Percent == 0.0 )
- fbSalesperson2Percent = 1.0;
- }
- #else
- // 主门市;
- CString strStaff1 = m_AryOrderDetail.ElementAt(i).ElementAt(17);
- CString strStaff1Percent = m_AryOrderDetail.ElementAt(i).ElementAt(19);
- // 副门市;
- CString strStaff2 = m_AryOrderDetail.ElementAt(i).ElementAt(18);
- CString strStaff2Percent = m_AryOrderDetail.ElementAt(i).ElementAt(20);
- if ( strStaff1.IsEmpty() || strStaff2.IsEmpty() )
- {// 没有主或副门市;
- if ( !strStaff1.IsEmpty() && m_strStaffName == strStaff1 )
- {
- bSalesperson1 = TRUE;
- if ( strStaff1Percent.IsEmpty() )
- fbSalesperson1Percent = 1.0;
- else
- fbSalesperson1Percent = _tstof(strStaff1Percent)/100.0;
- }
- if ( !strStaff2.IsEmpty() && m_strStaffName == strStaff2 )
- {
- bSalesperson2 = TRUE;
- if ( strStaff2Percent.IsEmpty() )
- fbSalesperson2Percent = 1.0;
- else
- fbSalesperson2Percent = _tstof(strStaff2Percent)/100.0;
- }
- }
- else
- {
- if (strStaff1Percent.IsEmpty() && strStaff2Percent.IsEmpty())
- {// 同时空,各一半;
- if ( m_strStaffName == strStaff1 )
- {
- bSalesperson1 = TRUE;
- fbSalesperson1Percent = 0.5;
- }
- if ( m_strStaffName == strStaff2 )
- {
- bSalesperson2 = TRUE;
- fbSalesperson2Percent = 0.5;
- }
- }
- else
- {
- if ( !strStaff1Percent.IsEmpty() && strStaff2Percent.IsEmpty())
- {// 只有主门市;
- if ( m_strStaffName == strStaff1 )
- {
- bSalesperson1 = TRUE;
- fbSalesperson1Percent = 1.0;
- }
- }
- else if ( strStaff1Percent.IsEmpty() && !strStaff2Percent.IsEmpty() )
- {// 只有副门市;
- if ( m_strStaffName == strStaff2 )
- {
- bSalesperson2 = TRUE;
- fbSalesperson2Percent = 1.0;
- }
- }
- else
- {
- if ( m_strStaffName == strStaff1 )
- {
- bSalesperson1 = TRUE;
- fbSalesperson1Percent = _tstof(strStaff1Percent)/100.0;
- }
- if ( m_strStaffName == strStaff2 )
- {
- bSalesperson2 = TRUE;
- fbSalesperson2Percent = _tstof(strStaff2Percent)/100.0;
- }
- }
- }
- }
- #endif
- break;
- }
- }
- }
- BOOL CStaffWage::GetEarlyResults(IN CArray<CStringArray, CStringArray>& AryEarlyResult) // 获取前期业绩;
- {
- INT nSize = m_AryReceiptRecords.GetSize();
- if ( nSize == 0 ) // 有些员工是没有业绩的,如财务账号;
- return FALSE;
- AryEarlyResult.SetSize(nSize*11, 1);
- INT i = 0;
- INT nIndex = -1;
- INT nArypos = 0;
- CString strMoney;
- BOOL bPhotographer,bMakeupArtist;
- FLOAT fPhotographer, fMakeupArtist;
- BOOL bSalesperson1,bSalesperson2;
- FLOAT fbSalesperson1Percent, fbSalesperson2Percent;
- for ( i = 0; i < nSize; i++ )
- {
- #ifdef _DEBUG
- // 调试数据用;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(0) == _T("20170307-002") /* 订单号 */ || m_AryReceiptRecords.ElementAt(i).ElementAt(1) == _T("苏国平") /*顾客1*/ )
- {
- OutputDebugString(_T("调试到指定订单\n"));
- }
- #endif
- // 前期业绩;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(5) == _T("3") || m_AryReceiptRecords.ElementAt(i).ElementAt(5) == _T("4"))
- {
- fPhotographer = fMakeupArtist = 0.0;
- bPhotographer = bMakeupArtist = FALSE;
- // 1.这笔收款,员工是否有摄影+化妆服务项;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(9) == _T("OK") && m_AryReceiptRecords.ElementAt(i).ElementAt(10) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(10) <= m_strWageEndofDate )
- {
- GetPhotographerAndMakeupArtistServeRecord(m_AryReceiptRecords.ElementAt(i).ElementAt(0), bPhotographer, bMakeupArtist, fPhotographer, fMakeupArtist);
- // ElementAt(56):工资设置:摄影师也有前期提成;
- if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(56)) && bPhotographer )
- {// 摄影前期;
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fPhotographer);
- // 累加前期业绩;
- m_fEaryResultMoney += _tstof(strMoney);
- // 累加摄影工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_PHOTOGRAPHER)) == -1 )
- {
- m_AryWageType.Add(WAGE_EARLY_PHOTOGRAPHER);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).RemoveAll();
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(WAGE_EARLY_PHOTOGRAPHER); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
- nArypos++;
- }
- // ElementAt(57):工资设置:化妆师也有前期提成;
- if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(57)) && bMakeupArtist )
- {// 化妆前期;
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fMakeupArtist);
- // 累加前期业绩;
- m_fEaryResultMoney += _tstof(strMoney);
- // 累加摄影工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_MAKEUPARTIST)) == -1 )
- {
- m_AryWageType.Add(WAGE_EARLY_MAKEUPARTIST);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).RemoveAll();
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(WAGE_EARLY_MAKEUPARTIST); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
- nArypos++;
- }
- }
- // 2.这笔收款,员工是否有门市服务项;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(7) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(7) <= m_strWageEndofDate )
- {
- bSalesperson1 = bSalesperson2 = 0.0;
- fbSalesperson1Percent = fbSalesperson2Percent = FALSE;
- GetSalesServerRecord(m_AryReceiptRecords.ElementAt(i).ElementAt(0), bSalesperson1, bSalesperson2, fbSalesperson1Percent, fbSalesperson2Percent);
- if ( bSalesperson1 )
- {// 主门市;
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fbSalesperson1Percent);
- // 累加前期业绩;
- m_fEaryResultMoney += _tstof(strMoney);
- // 累加门市类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_SALES)) == -1 )
- {
- m_AryWageType.Add(WAGE_EARLY_SALES);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).RemoveAll();
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(7)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(WAGE_EARLY_SALES); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
- nArypos++;
- }
- if ( bSalesperson2 )
- {// 副门市;
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fbSalesperson2Percent);
- // 累加前期业绩;
- m_fEaryResultMoney += _tstof(strMoney);
- // 累加门市类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_SALES)) == -1 )
- {
- m_AryWageType.Add(WAGE_EARLY_SALES);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).RemoveAll();
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(7)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(WAGE_EARLY_SALES); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
- nArypos++;
- }
- }
- }
- // 选片二销;
- else if ( m_AryReceiptRecords.ElementAt(i).ElementAt(12) == _T("选片二销") )
- {
- bPhotographer = bMakeupArtist = FALSE;
- fPhotographer = fMakeupArtist = 0.0;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(9) == _T("OK") && m_AryReceiptRecords.ElementAt(i).ElementAt(10) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(10) <= m_strWageEndofDate )
- {
- GetPhotographerAndMakeupArtistServeRecord(m_AryReceiptRecords.ElementAt(i).ElementAt(0), bPhotographer, bMakeupArtist, fPhotographer, fMakeupArtist);
- // ElementAt(41):工资设置:摄影师也有选片二销提成;
- if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(41)) && bPhotographer )
- {
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fPhotographer);
- // 累加选片二销业绩;
- m_fSelectMoney += _tstof(strMoney);
- // 累加摄影也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_PHOTOGRAPHER)) == -1 )
- {
- m_AryWageType.Add(WAGE_SEL_PHOTOGRAPHER);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(WAGE_SEL_PHOTOGRAPHER); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
- nArypos++;
- }
- // ElementAt(42):工资设置:化妆师或引导师也有选片二销提成;
- if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(42)) && bMakeupArtist )
- {
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fMakeupArtist);
- // 累加选片二销业绩;
- m_fSelectMoney += _tstof(strMoney);
- // 累加化妆也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_MAKEUPARTIST)) == -1 )
- {
- m_AryWageType.Add(WAGE_SEL_MAKEUPARTIST);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(10)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(WAGE_SEL_MAKEUPARTIST); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
- nArypos++;
- }
- }
- // 这笔收款,员工是否还是本次选片二销的选片师;
- if ( m_strStaffName == m_AryReceiptRecords.ElementAt(i).ElementAt(11) && m_AryReceiptRecords.ElementAt(i).ElementAt(7) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(7) <= m_strWageEndofDate )
- {
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) );
- // 累加选片二销业绩;
- m_fSelectMoney += _tstof(strMoney);
- // 累加化妆也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_SALES)) == -1 )
- {
- m_AryWageType.Add(WAGE_SEL_SALES);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).RemoveAll();
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(7)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(WAGE_SEL_SALES); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
- nArypos++;
- }
- }
- // 其他订单二销;
- else
- {
- // 这笔收款,员工是否还是本次其他订单二销的促成者;
- if ( m_strStaffName == m_AryReceiptRecords.ElementAt(i).ElementAt(11) && m_AryReceiptRecords.ElementAt(i).ElementAt(7) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(7) <= m_strWageEndofDate )
- {
- // 获取提成;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)));
- // 累加选片二销业绩;
- m_fSelectMoney += _tstof(strMoney);
- // 累加化妆也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, m_AryReceiptRecords.ElementAt(i).ElementAt(12))) == -1 )
- {
- m_AryWageType.Add(m_AryReceiptRecords.ElementAt(i).ElementAt(12));
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).RemoveAll();
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(7)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(12)); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(2)); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(3)); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryReceiptRecords.ElementAt(i).ElementAt(13)); // 付款方式;
- nArypos++;
- }
- }
- }
- // 其他收入业绩(散客消费);
- nSize = m_AryOtherIncomeRecord.GetSize();
- for ( i = 0; i < nSize; i++ )
- {
- strMoney.Format(_T("%0.2f"), _tstof(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(4)));
- //if ( m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3) == WAGE_SEC_PHOTOGRAPHER)
- // 累加化妆也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3))) == -1 )
- {
- m_AryWageType.Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3));
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- // 保存该类型工资记录;
- AryEarlyResult.ElementAt(nArypos).RemoveAll();
- AryEarlyResult.ElementAt(nArypos).Add(strMoney); // 收款金额;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(5)); // 工资日期;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3)); // 工资类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(1)); // 顾客1姓名;
- AryEarlyResult.ElementAt(nArypos).Add(_T("")); // 顾客2姓名;
- AryEarlyResult.ElementAt(nArypos).Add(_T("")); // 套系类型;
- AryEarlyResult.ElementAt(nArypos).Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(7)); // 付款方式;
- nArypos++;
- }
- AryEarlyResult.SetSize(nArypos);
- return FALSE;
- }
- #ifndef ALL_STAFF_WAGE
- CString CStaffWage::GetRule(CString name)
- {
- CString oldrule = g_cominfoarray.ElementAt(0).ElementAt(77);
- CString header = "$" + name + ":";
- CString left, right;
- int pos = oldrule.Find(header);
- if (pos != -1)
- {
- right = oldrule.Right(oldrule.GetLength() - pos - header.GetLength());
- pos = right.Find("$");
- if (pos != -1)
- right = right.Left(pos);
- right = header + right;
- return right;
- }
- return "";
- }
- float CStaffWage::GetSalaryFromRule(float fmoney, CString rule)
- {
- float fresult = 0;
- int pos = rule.Find(":");
- if (pos == -1)return 0;
- rule = rule.Right(rule.GetLength() - pos - 1);
- CStringArray rulearray;
- pos = rule.Find(";");
- while (pos != -1)
- {
- rulearray.Add(rule.Left(pos));
- rule = rule.Right(rule.GetLength() - pos - 1);
- pos = rule.Find(";");
- }
- BOOL check1 = atoi(rule);
- if (rulearray.GetSize() == 0)return 0;
- CString str, temp;
- int money1, money2;
- float frate;
- if (check1 == 0)
- {
- for (int i = 0; i < rulearray.GetSize(); i++)
- {
- temp = rulearray.ElementAt(i);
- int pos = temp.Find(" ");
- temp = temp.Left(pos);
- pos = temp.Find("-");
- money1 = atoi(temp.Left(pos));
- money2 = atoi(temp.Right(temp.GetLength() - pos - 1));
- if ((i == rulearray.GetSize() - 1) || (fmoney >= money1 && fmoney <= money2))
- {
- temp = rulearray.ElementAt(i);
- pos = temp.Find(":");
- temp = temp.Right(temp.GetLength() - pos - 1);
- temp.TrimRight("%");
- frate = atof(temp) / 100.0;
- fresult = frate*fmoney;
- return fresult;
- }
- }
- }
- else//////
- {
- for (int i = 0; i < rulearray.GetSize(); i++)
- {
- temp = rulearray.ElementAt(i);
- int pos = temp.Find(" ");
- temp = temp.Left(pos);
- pos = temp.Find("-");
- money1 = atoi(temp.Left(pos));
- money2 = atoi(temp.Right(temp.GetLength() - pos - 1));
- if ((i == rulearray.GetSize() - 1) || (fmoney >= money1 && fmoney <= money2))
- {
- temp = rulearray.ElementAt(i);
- pos = temp.Find(":");
- temp = temp.Right(temp.GetLength() - pos - 1);
- temp.TrimRight("%");
- frate = atof(temp) / 100.0;
- float dtmoney = fmoney - money1;
- fresult += frate*dtmoney;
- if (i == 0)//只有一条规则
- {
- fresult = frate*fmoney;
- return fresult;
- }
- while (i)
- {
- i--;
- temp = rulearray.ElementAt(i);
- pos = temp.Find(" ");
- temp = temp.Left(pos);
- pos = temp.Find("-");
- money1 = atoi(temp.Left(pos));
- money2 = atoi(temp.Right(temp.GetLength() - pos - 1));
- temp = rulearray.ElementAt(i);
- pos = temp.Find(":");
- temp = temp.Right(temp.GetLength() - pos - 1);
- temp.TrimRight("%");
- frate = atof(temp) / 100.0;
- dtmoney = money2 - money1;
- fresult += frate*dtmoney;
- }
- return fresult;
- }
- }
- }
- return fresult;
- }
- void CStaffWage::GetPhotographerAndMakeupArtistServeRecord(IN CString strStaffName, IN CString strOrderNum, IN BOOL &bPhotographer, IN BOOL &bMakeupArtist, IN FLOAT &fPhotographerPercent, IN FLOAT &fMakeupArtistPercent)
- {
- bPhotographer = bMakeupArtist = FALSE;
- INT nSize = m_AryOrderDetail.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- // 是否指定要查询的订单;
- if ( m_AryOrderDetail.ElementAt(i).ElementAt(0) == strOrderNum )
- {
- // 主摄影师、摄影师2~4只能有一个;
- if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(1) )
- {// 是否是有主摄影师服务提成;
- bPhotographer = TRUE;
- // 获取折扣;
- fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(5))/100.0;
- if ( fPhotographerPercent == 0.0 )
- fPhotographerPercent = 1.0;
- }
- else if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(2) )
- {// 是否是有摄影师2服务提成;
- bPhotographer = TRUE;
- // 获取折扣;
- fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(6))/100.0;
- if ( fPhotographerPercent == 0.0 )
- fPhotographerPercent = 1.0;
- }
- else if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(3) )
- {// 是否是有摄影师3服务提成;
- bPhotographer = TRUE;
- // 获取折扣;
- fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(7))/100.0;
- if ( fPhotographerPercent == 0.0 )
- fPhotographerPercent = 1.0;
- }
- else if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(4) )
- {// 是否是有摄影师4服务提成;
- bPhotographer = TRUE;
- // 获取折扣;
- fPhotographerPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(8))/100.0;
- if ( fPhotographerPercent == 0.0 )
- fPhotographerPercent = 1.0;
- }
- // 主化妆师、化妆师2~4只能有一个;
- if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(9) )
- {// 是否是主化妆师服务记录;
- bMakeupArtist = TRUE;
- // 获取折扣;
- fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(13))/100.0;
- if ( fMakeupArtistPercent == 0.0 )
- fMakeupArtistPercent = 1.0;
- }
- else if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(10) )
- {// 是否是有化妆师2服务提成;
- bMakeupArtist = TRUE;
- // 获取折扣;
- fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(14))/100.0;
- if ( fMakeupArtistPercent == 0.0 )
- fMakeupArtistPercent = 1.0;
- }
- else if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(11) )
- {// 是否是有化妆师3服务提成;
- bMakeupArtist = TRUE;
- // 获取折扣;
- fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(15))/100.0;
- if ( fMakeupArtistPercent == 0.0 )
- fMakeupArtistPercent = 1.0;
- }
- else if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(12) )
- {// 是否是有化妆师4服务提成;
- bMakeupArtist = TRUE;
- // 获取折扣;
- fMakeupArtistPercent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(16))/100.0;
- if ( fMakeupArtistPercent == 0.0 )
- fMakeupArtistPercent = 1.0;
- }
- break;
- }
- }
- }
- void CStaffWage::GetSalesServerRecord(IN CString strStaffName, IN CString strOrderNum, IN BOOL &bSalesperson1, IN BOOL &bSalesperson2, IN FLOAT &fbSalesperson1Percent, IN FLOAT &fbSalesperson2Percent)
- {
- bSalesperson1 = bSalesperson2 = FALSE;
- INT nSize = m_AryOrderDetail.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- // 是否指定要查询的订单;
- if ( m_AryOrderDetail.ElementAt(i).ElementAt(0) == strOrderNum )
- {
- #if 0
- // 主门市;
- if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(17) )
- {// 是否是主门市提成;
- bSalesperson1 = TRUE;
- // 获取折扣;
- fbSalesperson1Percent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(19))/100.0;
- if ( fbSalesperson1Percent == 0.0 )
- fbSalesperson1Percent = 1.0;
- }
- // 副门市;
- if ( strStaffName == m_AryOrderDetail.ElementAt(i).ElementAt(18) )
- {// 是否是副门市提成;
- bSalesperson2 = TRUE;
- // 获取折扣;
- fbSalesperson2Percent = _tstof(m_AryOrderDetail.ElementAt(i).ElementAt(20))/100.0;
- if ( fbSalesperson2Percent == 0.0 )
- fbSalesperson2Percent = 1.0;
- }
- #else
- // 主门市;
- CString strStaff1 = m_AryOrderDetail.ElementAt(i).ElementAt(17);
- CString strStaff1Percent = m_AryOrderDetail.ElementAt(i).ElementAt(19);
- // 副门市;
- CString strStaff2 = m_AryOrderDetail.ElementAt(i).ElementAt(18);
- CString strStaff2Percent = m_AryOrderDetail.ElementAt(i).ElementAt(20);
- if ( strStaff1.IsEmpty() || strStaff2.IsEmpty() )
- {// 没有主或副门市;
- if ( !strStaff1.IsEmpty() && strStaffName == strStaff1 )
- {
- bSalesperson1 = TRUE;
- if ( strStaff1Percent.IsEmpty() )
- fbSalesperson1Percent = 1.0;
- else
- fbSalesperson1Percent = _tstof(strStaff1Percent)/100.0;
- }
- if ( !strStaff2.IsEmpty() && strStaffName == strStaff2 )
- {
- bSalesperson2 = TRUE;
- if ( strStaff2Percent.IsEmpty() )
- fbSalesperson2Percent = 1.0;
- else
- fbSalesperson2Percent = _tstof(strStaff2Percent)/100.0;
- }
- }
- else
- {
- if (strStaff1Percent.IsEmpty() && strStaff2Percent.IsEmpty())
- {// 同时空,各一半;
- if ( strStaffName == strStaff1 )
- {
- bSalesperson1 = TRUE;
- fbSalesperson1Percent = 0.5;
- }
- if ( strStaffName == strStaff2 )
- {
- bSalesperson2 = TRUE;
- fbSalesperson2Percent = 0.5;
- }
- }
- else
- {
- if ( !strStaff1Percent.IsEmpty() && strStaff2Percent.IsEmpty())
- {// 只有主门市;
- if ( strStaffName == strStaff1 )
- {
- bSalesperson1 = TRUE;
- fbSalesperson1Percent = 1.0;
- }
- }
- else if ( strStaff1Percent.IsEmpty() && !strStaff2Percent.IsEmpty() )
- {// 只有副门市;
- if ( strStaffName == strStaff2 )
- {
- bSalesperson2 = TRUE;
- fbSalesperson2Percent = 1.0;
- }
- }
- else
- {
- if ( strStaffName == strStaff1 )
- {
- bSalesperson1 = TRUE;
- fbSalesperson1Percent = _tstof(strStaff1Percent)/100.0;
- }
- if ( strStaffName == strStaff2 )
- {
- bSalesperson2 = TRUE;
- fbSalesperson2Percent = _tstof(strStaff2Percent)/100.0;
- }
- }
- }
- }
- #endif
- break;
- }
- }
- }
- BOOL CStaffWage::GetAllStaffWageData(IN CString strWageStartDate, IN CString strWageEndofDate)
- {
- m_strWageStartDate = strWageStartDate;
- m_strWageEndofDate = strWageEndofDate;
- CString strTemp = _T("");
- CString strFilter = _T("");
- // case 34:查询员工;
- strTemp.Format(_T("dimission='在职';"));
- strFilter += strTemp;
- // case 242:查询所有收款详情;
- strTemp.Format(_T("(Paydate >= '%s' and Paydate <= '%s' ) or (PhotoStatus = 'OK' and PhotogOfPaydate >= '%s' and PhotogOfPaydate <= '%s');"), strWageStartDate, strWageEndofDate, strWageStartDate, strWageEndofDate);
- strFilter += strTemp;
- // case 243:查询收款订单;
- strTemp.Format(_T("id in (select distinct id from Payroll where (Paydate >= '%s' and Paydate <= '%s') or (PhotoStatus = 'OK' and PhotogOfPaydate >= '%s' and PhotogOfPaydate <= '%s'));"),
- strWageStartDate,
- strWageEndofDate,
- strWageStartDate,
- strWageEndofDate);
- strFilter += strTemp;
- #ifdef _DEBUG
- WriteTextLog(_T("case 243:%s"), strTemp);
- #endif
- // case 198:查询其他收入;
- strTemp.Format(_T("[date] >= '%s' and [date] <= '%s';"), strWageStartDate, strWageEndofDate);
- strFilter += strTemp;
- // case 142:查询我的工作;
- strTemp.Format(_T("datetime >= '%s' and datetime <= '%s' ;"),strWageStartDate, strWageEndofDate);
- strFilter += strTemp;
- // case 192:查询摄影师景点工作;
- strTemp.Format(_T("[date] >= '%s' and [date] <= '%s' and [status] = 'OK';"),
- strWageStartDate, strWageEndofDate);
- strFilter += strTemp;
- // case 193:查询数码工作记录;
- strTemp.Format(
- _T("([time8] >='%s' and [time8]<='%s' and [status4]='OK') or ")
- _T("([time9] >='%s' and [time9]<='%s' and [status6]='OK') or ")
- _T("([time10] >='%s' and [time10]<='%s' and [status5]='OK');"),
- strWageStartDate, strWageEndofDate,
- strWageStartDate, strWageEndofDate,
- strWageStartDate, strWageEndofDate);
- strFilter += strTemp;
- // 7. case 146:计件式提成比例;
- strFilter += _T(";");
- g_sendhead.code[0] = 34;
- g_sendhead.code[1] = 242;
- g_sendhead.code[2] = 243;
- g_sendhead.code[3] = 198;
- g_sendhead.code[4] = 142;
- g_sendhead.code[5] = 192;
- g_sendhead.code[6] = 193;
- g_sendhead.code[7] = 146;
- g_sendhead.tabcount = 8;
- g_sendhead.bsql = FALSE;
- g_pMainWnd->ProcessChatMessageRequest2(strFilter);
- if ( !g_bSendOK )
- return FALSE;
- ClearStaffWageData();
- DataToArray(&m_AryStaffDetail, &m_AryReceiptRecords, &m_AryOrderDetail, &m_AryOtherIncomeRecord, &m_AryMyWorkRecord, &m_ArySceneryWorkRecord, &m_AryDigitalWorkRecord, &m_AryWorkrate);
- return TRUE;
- }
- BOOL CStaffWage::GetEarlyResults(IN CString strStaffName)
- {
- INT i = 0;
- INT nSize = m_AryReceiptRecords.GetSize();
- INT nIndex = -1;
- INT nArypos = 0;
- CString strMoney;
- BOOL bPhotographer,bMakeupArtist;
- FLOAT fPhotographer, fMakeupArtist;
- BOOL bSalesperson1,bSalesperson2;
- FLOAT fbSalesperson1Percent, fbSalesperson2Percent;
- m_AryWageType.RemoveAll();
- m_AryWageTypeMoney.RemoveAll();
- for ( i = 0; i < nSize; i++ )
- {
- // 前期业绩;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(5) == _T("3") || m_AryReceiptRecords.ElementAt(i).ElementAt(5) == _T("4"))
- {
- fPhotographer = fMakeupArtist = 0.0;
- bPhotographer = bMakeupArtist = FALSE;
- // 1.这笔收款,员工是否有摄影+化妆服务项;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(9) == _T("OK") && m_AryReceiptRecords.ElementAt(i).ElementAt(10) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(10) <= m_strWageEndofDate )
- {
- GetPhotographerAndMakeupArtistServeRecord(strStaffName, m_AryReceiptRecords.ElementAt(i).ElementAt(0), bPhotographer, bMakeupArtist, fPhotographer, fMakeupArtist);
- // ElementAt(56):工资设置:摄影师也有前期提成;
- if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(56)) && bPhotographer )
- {// 摄影前期;
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fPhotographer);
- // 累加前期业绩;
- m_fEaryResultMoney += _tstof(strMoney);
- // 累加摄影工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_PHOTOGRAPHER)) == -1 )
- {
- m_AryWageType.Add(WAGE_EARLY_PHOTOGRAPHER);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- // ElementAt(57):工资设置:化妆师也有前期提成;
- if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(57)) && bMakeupArtist )
- {// 化妆前期;
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fMakeupArtist);
- // 累加前期业绩;
- m_fEaryResultMoney += _tstof(strMoney);
- // 累加摄影工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_MAKEUPARTIST)) == -1 )
- {
- m_AryWageType.Add(WAGE_EARLY_MAKEUPARTIST);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- }
- // 2.这笔收款,员工是否有门市服务项;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(7) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(7) <= m_strWageEndofDate )
- {
- bSalesperson1 = bSalesperson2 = 0.0;
- fbSalesperson1Percent = fbSalesperson2Percent = FALSE;
- GetSalesServerRecord(strStaffName, m_AryReceiptRecords.ElementAt(i).ElementAt(0), bSalesperson1, bSalesperson2, fbSalesperson1Percent, fbSalesperson2Percent);
- if ( bSalesperson1 )
- {// 主门市;
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fbSalesperson1Percent);
- // 累加前期业绩;
- m_fEaryResultMoney += _tstof(strMoney);
- // 累加门市类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_SALES)) == -1 )
- {
- m_AryWageType.Add(WAGE_EARLY_SALES);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- if ( bSalesperson2 )
- {// 副门市;
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fbSalesperson2Percent);
- // 累加前期业绩;
- m_fEaryResultMoney += _tstof(strMoney);
- // 累加门市类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_EARLY_SALES)) == -1 )
- {
- m_AryWageType.Add(WAGE_EARLY_SALES);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- }
- }
- // 选片二销;
- else if ( m_AryReceiptRecords.ElementAt(i).ElementAt(12) == _T("选片二销") )
- {
- bPhotographer = bMakeupArtist = FALSE;
- fPhotographer = fMakeupArtist = 0.0;
- if ( m_AryReceiptRecords.ElementAt(i).ElementAt(9) == _T("OK") && m_AryReceiptRecords.ElementAt(i).ElementAt(10) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(10) <= m_strWageEndofDate )
- {
- GetPhotographerAndMakeupArtistServeRecord(strStaffName, m_AryReceiptRecords.ElementAt(i).ElementAt(0), bPhotographer, bMakeupArtist, fPhotographer, fMakeupArtist);
- // ElementAt(41):工资设置:摄影师也有选片二销提成;
- if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(41)) && bPhotographer )
- {
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fPhotographer);
- // 累加选片二销业绩;
- m_fSelectMoney += _tstof(strMoney);
- // 累加摄影也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_PHOTOGRAPHER)) == -1 )
- {
- m_AryWageType.Add(WAGE_SEL_PHOTOGRAPHER);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- // ElementAt(42):工资设置:化妆师或引导师也有选片二销提成;
- if ( _tstoi(g_cominfoarray.ElementAt(0).ElementAt(42)) && bMakeupArtist )
- {
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) * fMakeupArtist);
- // 累加选片二销业绩;
- m_fSelectMoney += _tstof(strMoney);
- // 累加化妆也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_MAKEUPARTIST)) == -1 )
- {
- m_AryWageType.Add(WAGE_SEL_MAKEUPARTIST);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- }
- // 这笔收款,员工是否还是本次选片二销的选片师;
- if ( strStaffName == m_AryReceiptRecords.ElementAt(i).ElementAt(11) && m_AryReceiptRecords.ElementAt(i).ElementAt(7) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(7) <= m_strWageEndofDate)
- {
- // 按提成百分比计算;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)) );
- // 累加选片二销业绩;
- m_fSelectMoney += _tstof(strMoney);
- // 累加化妆也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, WAGE_SEL_SALES)) == -1 )
- {
- m_AryWageType.Add(WAGE_SEL_SALES);
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- }
- // 其他订单二销;
- else
- {
- // 这笔收款,员工是否还是本次其他订单二销的促成者;
- if ( strStaffName == m_AryReceiptRecords.ElementAt(i).ElementAt(11) && m_AryReceiptRecords.ElementAt(i).ElementAt(7) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(7) <= m_strWageEndofDate)
- {
- // 获取提成;
- strMoney.Format(_T("%0.2f"), _tstof(m_AryReceiptRecords.ElementAt(i).ElementAt(6)));
- // 累加选片二销业绩;
- m_fSelectMoney += _tstof(strMoney);
- // 累加化妆也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, m_AryReceiptRecords.ElementAt(i).ElementAt(12))) == -1 )
- {
- m_AryWageType.Add(m_AryReceiptRecords.ElementAt(i).ElementAt(12));
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- }
- }
- // case 198:其他收入业绩(散客消费);
- nSize = m_AryOtherIncomeRecord.GetSize();
- for ( i = 0; i < nSize; i++ )
- {
- // 收款人就是该员工,那这笔收入就是他产生的,计他提成;
- if ( m_AryOtherIncomeRecord.ElementAt(i).ElementAt(2) == strStaffName && m_AryReceiptRecords.ElementAt(i).ElementAt(7) >= m_strWageStartDate && m_AryReceiptRecords.ElementAt(i).ElementAt(7) <= m_strWageEndofDate)
- {
- strMoney.Format(_T("%0.2f"), _tstof(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(4)));
- // 累加化妆也有选片二销工资类型金额;
- if ( (nIndex = FindArray(&m_AryWageType, m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3))) == -1 )
- {
- m_AryWageType.Add(m_AryOtherIncomeRecord.ElementAt(i).ElementAt(3));
- m_AryWageTypeMoney.Add(_tstof(strMoney));
- }
- else
- {
- m_AryWageTypeMoney.SetAt(nIndex, m_AryWageTypeMoney.ElementAt(nIndex) + _tstof(strMoney));
- }
- }
- }
- return FALSE;
- }
- FLOAT CStaffWage::GetStaffSignerWage(IN CString strSaffName)
- {
- FLOAT fStaffEarlyWage = 0.0;
- INT nSize = m_AryWageType.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- if ( m_AryWageType.ElementAt(i) == WAGE_EARLY_SALES )
- fStaffEarlyWage += m_AryWageTypeMoney.ElementAt(i);
- }
- return fStaffEarlyWage;
- }
- FLOAT CStaffWage::GetStaffPhotograhperMakeupArtistWage(IN CString strSaffName)
- {
- FLOAT fStaffEarlyWage = 0.0;
- INT nSize = m_AryWageType.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- if (m_AryWageType.ElementAt(i) == WAGE_EARLY_MAKEUPARTIST || // 化妆前期;
- m_AryWageType.ElementAt(i) == WAGE_EARLY_PHOTOGRAPHER ) // 摄影前期;
- fStaffEarlyWage += m_AryWageTypeMoney.ElementAt(i);
- }
- return fStaffEarlyWage;
- }
- FLOAT CStaffWage::GetStaffLateWage(IN CString strStaffName, OUT FLOAT &fTotalMoney)
- {
- FLOAT fStaffLateWage = 0.0;
- INT nSize = m_AryWageType.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- if ( m_AryWageType.ElementAt(i) != WAGE_EARLY_SALES && // 门市前期;
- m_AryWageType.ElementAt(i) != WAGE_EARLY_MAKEUPARTIST && // 化妆前期;
- m_AryWageType.ElementAt(i) != WAGE_EARLY_PHOTOGRAPHER ) // 摄影前期;
- {
- fTotalMoney += m_AryWageTypeMoney.ElementAt(i);
- fStaffLateWage += GetSalaryFromRule(m_AryWageTypeMoney.ElementAt(i), GetRule(m_AryWageType.ElementAt(i)));
- }
- }
- return fStaffLateWage;
- }
- FLOAT CStaffWage::GetStaffDigitalWage(IN CString strStaffName)
- {
- FLOAT fDigitalWage = 0.0;
- CString strUnitPrice; // 单价;
- CString strTotalMoney; // 总价;
- BOOL bIsDigital = FALSE;
- INT nSize = m_AryMyWorkRecord.GetSize();
- for ( int i = 0; i < nSize; i++ )
- {
- bIsDigital = FALSE;
- if ( m_AryMyWorkRecord.ElementAt(i).ElementAt(3) == strStaffName )
- {
- for ( int n = 0; n < m_AryWorkrate.GetSize(); n++ )
- {
- if ( _T("数码师") == m_AryWorkrate.ElementAt(n).ElementAt(0) &&
- m_AryMyWorkRecord.ElementAt(i).ElementAt(6) == m_AryWorkrate.ElementAt(n).ElementAt(1))
- {
- strUnitPrice = m_AryWorkrate.ElementAt(n).ElementAt(2);
- bIsDigital = TRUE;
- break;
- }
- }
- if ( !bIsDigital )
- strUnitPrice = _T("0");
- // ElementAt(5):数量;
- strTotalMoney.Format(_T("%0.2f"), _tstof(m_AryMyWorkRecord.ElementAt(i).ElementAt(5))*_tstof(strUnitPrice));
- fDigitalWage += _tstof(strTotalMoney);
- }
- }
- return fDigitalWage;
- }
- FLOAT CStaffWage::GetStaffTotalWage(IN CString strStaffName)
- {
- // 员工总工资;
- FLOAT fStaffTotalWage = 0.0;
- return fStaffTotalWage;
- }
- #endif
|