| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349123501235112352123531235412355123561235712358123591236012361123621236312364123651236612367123681236912370123711237212373123741237512376123771237812379123801238112382123831238412385123861238712388123891239012391123921239312394123951239612397123981239912400124011240212403124041240512406124071240812409124101241112412124131241412415124161241712418124191242012421124221242312424124251242612427124281242912430124311243212433124341243512436124371243812439124401244112442124431244412445124461244712448124491245012451124521245312454124551245612457124581245912460124611246212463124641246512466124671246812469124701247112472124731247412475124761247712478124791248012481124821248312484124851248612487124881248912490124911249212493124941249512496124971249812499125001250112502125031250412505125061250712508125091251012511125121251312514125151251612517125181251912520125211252212523125241252512526125271252812529125301253112532125331253412535125361253712538125391254012541125421254312544125451254612547125481254912550125511255212553125541255512556125571255812559125601256112562125631256412565125661256712568125691257012571125721257312574125751257612577125781257912580125811258212583125841258512586125871258812589125901259112592125931259412595125961259712598125991260012601126021260312604126051260612607126081260912610126111261212613126141261512616126171261812619126201262112622126231262412625126261262712628126291263012631126321263312634126351263612637126381263912640126411264212643126441264512646126471264812649126501265112652126531265412655126561265712658126591266012661126621266312664126651266612667126681266912670126711267212673126741267512676126771267812679126801268112682126831268412685126861268712688126891269012691126921269312694126951269612697126981269912700127011270212703127041270512706127071270812709127101271112712127131271412715127161271712718127191272012721127221272312724127251272612727127281272912730127311273212733127341273512736127371273812739127401274112742127431274412745127461274712748127491275012751127521275312754127551275612757127581275912760127611276212763127641276512766127671276812769127701277112772127731277412775127761277712778127791278012781127821278312784127851278612787127881278912790127911279212793127941279512796127971279812799128001280112802128031280412805128061280712808128091281012811128121281312814128151281612817128181281912820128211282212823128241282512826128271282812829128301283112832128331283412835128361283712838128391284012841128421284312844128451284612847128481284912850128511285212853128541285512856128571285812859128601286112862128631286412865128661286712868128691287012871128721287312874128751287612877128781287912880128811288212883128841288512886128871288812889128901289112892128931289412895128961289712898128991290012901129021290312904129051290612907129081290912910129111291212913129141291512916129171291812919129201292112922129231292412925129261292712928129291293012931129321293312934129351293612937129381293912940129411294212943129441294512946129471294812949129501295112952129531295412955129561295712958129591296012961129621296312964129651296612967129681296912970129711297212973129741297512976129771297812979129801298112982129831298412985129861298712988129891299012991129921299312994129951299612997129981299913000130011300213003130041300513006130071300813009130101301113012130131301413015130161301713018130191302013021130221302313024130251302613027130281302913030130311303213033130341303513036130371303813039130401304113042130431304413045130461304713048130491305013051130521305313054130551305613057130581305913060130611306213063130641306513066130671306813069130701307113072130731307413075130761307713078130791308013081130821308313084130851308613087130881308913090130911309213093130941309513096130971309813099131001310113102131031310413105131061310713108131091311013111131121311313114131151311613117131181311913120131211312213123131241312513126131271312813129131301313113132131331313413135131361313713138131391314013141131421314313144131451314613147131481314913150131511315213153131541315513156131571315813159131601316113162131631316413165131661316713168131691317013171131721317313174131751317613177131781317913180131811318213183131841318513186131871318813189131901319113192131931319413195131961319713198131991320013201132021320313204132051320613207132081320913210132111321213213132141321513216132171321813219132201322113222132231322413225132261322713228132291323013231132321323313234132351323613237132381323913240132411324213243132441324513246132471324813249132501325113252132531325413255132561325713258132591326013261132621326313264132651326613267132681326913270132711327213273132741327513276132771327813279132801328113282132831328413285132861328713288132891329013291132921329313294132951329613297132981329913300133011330213303133041330513306133071330813309133101331113312133131331413315133161331713318133191332013321133221332313324133251332613327133281332913330133311333213333133341333513336133371333813339133401334113342133431334413345133461334713348133491335013351133521335313354133551335613357133581335913360133611336213363133641336513366133671336813369133701337113372133731337413375133761337713378133791338013381133821338313384133851338613387133881338913390133911339213393133941339513396133971339813399134001340113402134031340413405134061340713408134091341013411134121341313414134151341613417134181341913420134211342213423134241342513426134271342813429134301343113432134331343413435134361343713438134391344013441134421344313444134451344613447134481344913450134511345213453134541345513456134571345813459134601346113462134631346413465134661346713468134691347013471134721347313474134751347613477134781347913480134811348213483134841348513486134871348813489134901349113492134931349413495134961349713498134991350013501135021350313504135051350613507135081350913510135111351213513135141351513516135171351813519135201352113522135231352413525135261352713528135291353013531135321353313534135351353613537135381353913540135411354213543135441354513546135471354813549135501355113552135531355413555135561355713558135591356013561135621356313564135651356613567135681356913570135711357213573135741357513576135771357813579135801358113582135831358413585135861358713588135891359013591135921359313594135951359613597135981359913600136011360213603136041360513606136071360813609136101361113612136131361413615136161361713618136191362013621136221362313624136251362613627136281362913630136311363213633136341363513636136371363813639136401364113642136431364413645136461364713648136491365013651136521365313654136551365613657136581365913660136611366213663136641366513666136671366813669136701367113672136731367413675136761367713678136791368013681136821368313684136851368613687136881368913690136911369213693136941369513696136971369813699137001370113702137031370413705137061370713708137091371013711137121371313714137151371613717137181371913720137211372213723137241372513726137271372813729137301373113732137331373413735137361373713738137391374013741137421374313744137451374613747137481374913750137511375213753137541375513756137571375813759137601376113762137631376413765137661376713768137691377013771137721377313774137751377613777137781377913780137811378213783137841378513786137871378813789137901379113792137931379413795137961379713798137991380013801138021380313804138051380613807138081380913810138111381213813138141381513816138171381813819138201382113822138231382413825138261382713828138291383013831138321383313834138351383613837138381383913840138411384213843138441384513846138471384813849138501385113852138531385413855138561385713858138591386013861138621386313864138651386613867138681386913870138711387213873138741387513876138771387813879138801388113882138831388413885138861388713888138891389013891138921389313894138951389613897138981389913900139011390213903139041390513906139071390813909139101391113912139131391413915139161391713918139191392013921139221392313924139251392613927139281392913930139311393213933139341393513936139371393813939139401394113942139431394413945139461394713948139491395013951139521395313954139551395613957139581395913960139611396213963139641396513966139671396813969139701397113972139731397413975139761397713978139791398013981139821398313984139851398613987139881398913990139911399213993139941399513996139971399813999140001400114002140031400414005140061400714008140091401014011140121401314014140151401614017140181401914020140211402214023140241402514026140271402814029140301403114032140331403414035140361403714038140391404014041140421404314044140451404614047140481404914050140511405214053140541405514056140571405814059140601406114062140631406414065140661406714068140691407014071140721407314074140751407614077140781407914080140811408214083140841408514086140871408814089140901409114092140931409414095140961409714098140991410014101141021410314104141051410614107141081410914110141111411214113141141411514116141171411814119141201412114122141231412414125141261412714128141291413014131141321413314134141351413614137141381413914140141411414214143141441414514146141471414814149141501415114152141531415414155141561415714158141591416014161141621416314164141651416614167141681416914170141711417214173141741417514176141771417814179141801418114182141831418414185141861418714188141891419014191141921419314194141951419614197141981419914200142011420214203142041420514206142071420814209142101421114212142131421414215142161421714218142191422014221142221422314224142251422614227142281422914230142311423214233142341423514236142371423814239142401424114242142431424414245142461424714248142491425014251142521425314254142551425614257142581425914260142611426214263142641426514266142671426814269142701427114272142731427414275142761427714278142791428014281142821428314284142851428614287142881428914290142911429214293142941429514296142971429814299143001430114302143031430414305143061430714308143091431014311143121431314314143151431614317143181431914320143211432214323143241432514326143271432814329143301433114332143331433414335143361433714338143391434014341143421434314344143451434614347143481434914350143511435214353143541435514356143571435814359143601436114362143631436414365143661436714368143691437014371143721437314374143751437614377143781437914380143811438214383143841438514386143871438814389143901439114392143931439414395143961439714398143991440014401144021440314404144051440614407144081440914410144111441214413144141441514416144171441814419144201442114422144231442414425144261442714428144291443014431144321443314434144351443614437144381443914440144411444214443144441444514446144471444814449144501445114452144531445414455144561445714458144591446014461144621446314464144651446614467144681446914470144711447214473144741447514476144771447814479144801448114482144831448414485144861448714488144891449014491144921449314494144951449614497144981449914500145011450214503145041450514506145071450814509145101451114512145131451414515145161451714518145191452014521145221452314524145251452614527145281452914530145311453214533145341453514536145371453814539145401454114542145431454414545145461454714548145491455014551145521455314554145551455614557145581455914560145611456214563145641456514566145671456814569145701457114572145731457414575145761457714578145791458014581145821458314584145851458614587145881458914590145911459214593145941459514596145971459814599146001460114602146031460414605146061460714608146091461014611146121461314614146151461614617146181461914620146211462214623146241462514626146271462814629146301463114632146331463414635146361463714638146391464014641146421464314644146451464614647146481464914650146511465214653146541465514656146571465814659146601466114662146631466414665146661466714668146691467014671146721467314674146751467614677146781467914680146811468214683146841468514686146871468814689146901469114692146931469414695146961469714698146991470014701147021470314704147051470614707147081470914710147111471214713147141471514716147171471814719147201472114722147231472414725147261472714728147291473014731147321473314734147351473614737147381473914740147411474214743147441474514746147471474814749147501475114752147531475414755147561475714758147591476014761147621476314764147651476614767147681476914770147711477214773147741477514776147771477814779147801478114782147831478414785147861478714788147891479014791147921479314794147951479614797147981479914800148011480214803148041480514806148071480814809148101481114812148131481414815148161481714818148191482014821148221482314824148251482614827148281482914830148311483214833148341483514836148371483814839148401484114842148431484414845148461484714848148491485014851148521485314854148551485614857148581485914860148611486214863148641486514866148671486814869148701487114872148731487414875148761487714878148791488014881148821488314884148851488614887148881488914890148911489214893148941489514896148971489814899149001490114902149031490414905149061490714908149091491014911149121491314914149151491614917149181491914920149211492214923149241492514926149271492814929149301493114932149331493414935149361493714938149391494014941149421494314944149451494614947149481494914950149511495214953149541495514956149571495814959149601496114962149631496414965149661496714968149691497014971149721497314974149751497614977149781497914980149811498214983149841498514986149871498814989149901499114992149931499414995149961499714998149991500015001150021500315004150051500615007150081500915010150111501215013150141501515016150171501815019150201502115022150231502415025150261502715028150291503015031150321503315034150351503615037150381503915040150411504215043150441504515046150471504815049150501505115052150531505415055150561505715058150591506015061150621506315064150651506615067150681506915070150711507215073150741507515076150771507815079150801508115082150831508415085150861508715088150891509015091150921509315094150951509615097150981509915100151011510215103151041510515106151071510815109151101511115112151131511415115151161511715118151191512015121151221512315124151251512615127151281512915130151311513215133151341513515136151371513815139151401514115142151431514415145151461514715148151491515015151151521515315154151551515615157151581515915160151611516215163151641516515166151671516815169151701517115172151731517415175151761517715178151791518015181151821518315184151851518615187151881518915190151911519215193151941519515196151971519815199152001520115202152031520415205152061520715208152091521015211152121521315214152151521615217152181521915220152211522215223152241522515226152271522815229152301523115232152331523415235152361523715238152391524015241152421524315244152451524615247152481524915250152511525215253152541525515256152571525815259152601526115262152631526415265152661526715268152691527015271152721527315274152751527615277152781527915280152811528215283152841528515286152871528815289152901529115292152931529415295152961529715298152991530015301153021530315304153051530615307153081530915310153111531215313153141531515316153171531815319153201532115322153231532415325153261532715328153291533015331153321533315334153351533615337153381533915340153411534215343153441534515346153471534815349153501535115352153531535415355153561535715358153591536015361153621536315364153651536615367153681536915370153711537215373153741537515376153771537815379153801538115382153831538415385153861538715388153891539015391153921539315394153951539615397153981539915400154011540215403154041540515406154071540815409154101541115412154131541415415154161541715418154191542015421154221542315424154251542615427154281542915430154311543215433154341543515436154371543815439154401544115442154431544415445154461544715448154491545015451154521545315454154551545615457154581545915460154611546215463154641546515466154671546815469154701547115472154731547415475154761547715478154791548015481154821548315484154851548615487154881548915490154911549215493154941549515496154971549815499155001550115502155031550415505155061550715508155091551015511155121551315514155151551615517155181551915520155211552215523155241552515526155271552815529155301553115532155331553415535155361553715538155391554015541155421554315544155451554615547155481554915550155511555215553155541555515556155571555815559155601556115562155631556415565155661556715568155691557015571155721557315574155751557615577155781557915580155811558215583155841558515586155871558815589155901559115592155931559415595155961559715598155991560015601156021560315604156051560615607156081560915610156111561215613156141561515616156171561815619156201562115622156231562415625156261562715628156291563015631156321563315634156351563615637156381563915640156411564215643156441564515646156471564815649156501565115652156531565415655156561565715658156591566015661156621566315664156651566615667156681566915670156711567215673156741567515676156771567815679156801568115682156831568415685156861568715688156891569015691156921569315694156951569615697156981569915700157011570215703157041570515706157071570815709157101571115712157131571415715157161571715718157191572015721157221572315724157251572615727157281572915730157311573215733157341573515736157371573815739157401574115742157431574415745157461574715748157491575015751157521575315754157551575615757157581575915760157611576215763157641576515766157671576815769157701577115772157731577415775157761577715778157791578015781157821578315784157851578615787157881578915790157911579215793157941579515796157971579815799158001580115802158031580415805158061580715808158091581015811158121581315814158151581615817158181581915820158211582215823158241582515826158271582815829158301583115832158331583415835158361583715838158391584015841158421584315844158451584615847158481584915850158511585215853158541585515856158571585815859158601586115862158631586415865158661586715868158691587015871158721587315874158751587615877158781587915880158811588215883158841588515886158871588815889158901589115892158931589415895158961589715898158991590015901159021590315904159051590615907159081590915910159111591215913159141591515916159171591815919159201592115922159231592415925159261592715928159291593015931159321593315934159351593615937159381593915940159411594215943159441594515946159471594815949159501595115952159531595415955159561595715958159591596015961159621596315964159651596615967159681596915970159711597215973159741597515976159771597815979159801598115982159831598415985159861598715988159891599015991159921599315994159951599615997159981599916000160011600216003160041600516006160071600816009160101601116012160131601416015160161601716018160191602016021160221602316024160251602616027160281602916030160311603216033160341603516036160371603816039160401604116042160431604416045160461604716048160491605016051160521605316054160551605616057160581605916060160611606216063160641606516066160671606816069160701607116072160731607416075160761607716078160791608016081160821608316084160851608616087160881608916090160911609216093160941609516096160971609816099161001610116102161031610416105161061610716108161091611016111161121611316114161151611616117161181611916120161211612216123161241612516126161271612816129161301613116132161331613416135161361613716138161391614016141161421614316144161451614616147161481614916150161511615216153161541615516156161571615816159161601616116162161631616416165161661616716168161691617016171161721617316174161751617616177161781617916180161811618216183161841618516186161871618816189161901619116192161931619416195161961619716198161991620016201162021620316204162051620616207162081620916210162111621216213162141621516216162171621816219162201622116222162231622416225162261622716228162291623016231162321623316234162351623616237162381623916240162411624216243162441624516246162471624816249162501625116252162531625416255162561625716258162591626016261162621626316264162651626616267162681626916270162711627216273162741627516276162771627816279162801628116282162831628416285162861628716288162891629016291162921629316294162951629616297162981629916300163011630216303163041630516306163071630816309163101631116312163131631416315163161631716318163191632016321163221632316324163251632616327163281632916330163311633216333163341633516336163371633816339163401634116342163431634416345163461634716348163491635016351163521635316354163551635616357163581635916360163611636216363163641636516366163671636816369163701637116372163731637416375163761637716378163791638016381163821638316384163851638616387163881638916390163911639216393163941639516396163971639816399164001640116402164031640416405164061640716408164091641016411164121641316414164151641616417164181641916420164211642216423164241642516426164271642816429164301643116432164331643416435164361643716438164391644016441164421644316444164451644616447164481644916450164511645216453164541645516456164571645816459164601646116462164631646416465164661646716468164691647016471164721647316474164751647616477164781647916480164811648216483164841648516486164871648816489164901649116492164931649416495164961649716498164991650016501165021650316504165051650616507165081650916510165111651216513165141651516516165171651816519165201652116522165231652416525165261652716528165291653016531165321653316534165351653616537165381653916540165411654216543165441654516546165471654816549165501655116552165531655416555165561655716558165591656016561165621656316564165651656616567165681656916570165711657216573165741657516576165771657816579165801658116582165831658416585165861658716588165891659016591165921659316594165951659616597165981659916600166011660216603166041660516606166071660816609166101661116612166131661416615166161661716618166191662016621166221662316624166251662616627166281662916630166311663216633166341663516636166371663816639166401664116642166431664416645166461664716648166491665016651166521665316654166551665616657166581665916660166611666216663166641666516666166671666816669166701667116672166731667416675166761667716678166791668016681166821668316684166851668616687166881668916690166911669216693166941669516696166971669816699167001670116702167031670416705167061670716708167091671016711167121671316714167151671616717167181671916720167211672216723167241672516726167271672816729167301673116732167331673416735167361673716738167391674016741167421674316744167451674616747167481674916750167511675216753167541675516756167571675816759167601676116762167631676416765167661676716768167691677016771167721677316774167751677616777167781677916780167811678216783167841678516786167871678816789167901679116792167931679416795167961679716798167991680016801168021680316804168051680616807168081680916810168111681216813168141681516816168171681816819168201682116822168231682416825168261682716828168291683016831168321683316834168351683616837168381683916840168411684216843168441684516846168471684816849168501685116852168531685416855168561685716858168591686016861168621686316864168651686616867168681686916870168711687216873168741687516876168771687816879168801688116882168831688416885168861688716888168891689016891168921689316894168951689616897168981689916900169011690216903169041690516906169071690816909169101691116912169131691416915169161691716918169191692016921169221692316924169251692616927169281692916930169311693216933169341693516936169371693816939169401694116942169431694416945169461694716948169491695016951169521695316954169551695616957169581695916960169611696216963169641696516966169671696816969169701697116972169731697416975169761697716978169791698016981169821698316984169851698616987169881698916990169911699216993169941699516996169971699816999170001700117002170031700417005170061700717008170091701017011170121701317014170151701617017170181701917020170211702217023170241702517026170271702817029170301703117032170331703417035170361703717038170391704017041170421704317044170451704617047170481704917050170511705217053170541705517056170571705817059170601706117062170631706417065170661706717068170691707017071170721707317074170751707617077170781707917080170811708217083170841708517086170871708817089170901709117092170931709417095170961709717098170991710017101171021710317104171051710617107171081710917110171111711217113171141711517116171171711817119171201712117122171231712417125171261712717128171291713017131171321713317134171351713617137171381713917140171411714217143171441714517146171471714817149171501715117152171531715417155171561715717158171591716017161171621716317164171651716617167171681716917170171711717217173171741717517176171771717817179171801718117182171831718417185171861718717188171891719017191171921719317194171951719617197171981719917200172011720217203172041720517206172071720817209172101721117212172131721417215172161721717218172191722017221172221722317224172251722617227172281722917230172311723217233172341723517236172371723817239172401724117242172431724417245172461724717248172491725017251172521725317254172551725617257172581725917260172611726217263172641726517266172671726817269172701727117272172731727417275172761727717278172791728017281172821728317284172851728617287172881728917290172911729217293172941729517296172971729817299173001730117302173031730417305173061730717308173091731017311173121731317314173151731617317173181731917320173211732217323173241732517326173271732817329173301733117332173331733417335173361733717338173391734017341173421734317344173451734617347173481734917350173511735217353173541735517356173571735817359173601736117362173631736417365173661736717368173691737017371173721737317374173751737617377173781737917380173811738217383173841738517386173871738817389173901739117392173931739417395173961739717398173991740017401174021740317404174051740617407174081740917410174111741217413174141741517416174171741817419174201742117422174231742417425 | <?php/** * @author darkredz */class ReceiptController extends DooController {	public $staff;	public $verifyId;	public $executeId;	 	// public static $NEW2 = 0;	public $AGENCY = "日常相关费用";	public $TRAVEL = "差旅相关费用";	public $TRAIN = "培训班费用";	public $OTHER = "其他";	public $INTTRAIN='内部培训费用';		private $MYREVEIPTCACHEPATH = "protected/cache/myReceipt/";	private $PERSONALCOLLECTCACHEPATH = "protected/cache/personalCollect/";	private $CATEGORYCOLLECTPATH = "protected/cache/categoryCollect/";	private $STAFFCOLLECTPATH = "protected/cache/staffCollect/";	private function showCache($path) {		if (file_exists ( $path )) {			echo "<!DOCTYPE html>";			include $path;			die ();		}	}	private function cacheFile($path) {		$content = ob_get_contents ();		$fp = fopen ( $path, "w" );		fwrite ( $fp, $content );		fclose ( $fp );	}	private function collectHtml($receiptCollectList = array(), $itemCategory = "日常相关费用", $classType = "b") {		$collectHtml = "";		$sumPrice = 0.00;		for($i = 1; $i <= 12; $i ++) {			$falg = true;			foreach ( $receiptCollectList as $key => $value ) {				if ($value ['itemCategory'] == $itemCategory && $value ['month'] == $i) {					$sumPrice += $value ['price'];					if ($classType == "b") {						$collectHtml .= '<td class="colGreen taR">¥' . $value ['price'] . '</td>';						$falg = false;						break;					} else {						$collectHtml .= '<td class="taR">¥' . $value ['price'] . '</td>';						$falg = false;						break;					}				}			}			if ($falg)				$collectHtml .= '<td class="taR">-</td>';		}		$collectHtml .= '<td class="taR colGreen">¥' . $sumPrice . '</td>';		return $collectHtml;	}		private function _itineraryDateMin(){		Doo::loadModel ( "itinerary" );		$itinerary = new itinerary ();		$itineraryDetail=$itinerary->getOne(array (				'where'=>'sid ='.$this->staff [0] ['sid'],				'desc'=>'itineraryDate',				'asArray' => true		));				return date("Y-m-d",strtotime("+1 day",strtotime($itineraryDetail['itineraryDate'])));	}		public function beforeRun($resource, $action) {		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		$sid = $XDeode->decode ( $_COOKIE ["staff"] );		// 单独判断公司汇总的访问权限		if ($action == 'companyCategoryCollect') {			Doo::loadModel ( "receiptAuthorityManage" );			$invoiceCompanyManage = new receiptAuthorityManage ();						$icm = $invoiceCompanyManage->getInvoiceCMByStaff ( $sid );			if (empty ( $icm ))				die ( 'illegal request-statistics' );		}				Doo::loadModel ( 'staff' );		$staff = new staff ();		$detail = $staff->getStaffBySid ( $_COOKIE ["staff"] );				$accessModular = 'RECEIPTS';		if (empty ( $detail ['cldAccessArray'] ))			die ( 'illegal request' );		else {			if (in_array ( $accessModular, $detail ['cldAccessArray'] )) {				if (Doo::acl ()->isAllowed ( $accessModular, $resource, $action )) {					$flag = true;				} else {					$flag = false;				}			} else {				die ( 'illegal request' );			}		}		if (! $flag)			die ( 'illegal request' );	}	function __construct() {		if (isset ( $_COOKIE ["staff"] )) {						if (! empty ( $_COOKIE ["staff"] )) {								Doo::loadModel ( 'staff' );				Doo::loadModel ( 'verify' );				$verify = new verify ();				$staff = new staff ();				Doo::loadModel ( "execute" );				$execute = new execute ();								$verifyList = $verify->find ( array (						'select' => 'staff',						'asArray' => true 				) );				$list = array ();								// 判断角色的审批权限				foreach ( $verifyList as $key => $value ) {					$ver = json_decode ( $value ['staff'] );										foreach ( $ver as $k => $v ) {						if ($v [1] == 'ROLE') {							$roleList = json_decode ( $v [3] );							foreach ( $roleList as $t => $g ) {								$gList = explode ( "_", $g );								array_push ( $list, $gList [0] );								// print_r($list);							}						} else							array_push ( $list, $v [0] );					}				}								// 判断执行人的审批权限				$executeList = $execute->find ( array (						'where'=>'mold !="日常收支"',						'select' => 'staff',						'asArray' => true 				) );				$list2 = array ();				foreach ( $executeList as $key => $value ) {					$ver = json_decode ( $value ['staff'] );										foreach ( $ver as $k => $v ) {						array_push ( $list2, $v [0] );					}				}								$eidList = file_get_contents ( "protected/config/execute/execute.ini" );				$eidList = array_filter ( explode ( ",", $eidList ) );								$this->executeId = array_merge ( $list2, $eidList );				//print_r($this->executeId);				$this->verifyId = $list;				$this->staff = $staff->getUserByIdList ( $_COOKIE ["staff"] );								// 检测用户信息完成				$this->data ['isStaffCompleteMsg'] = false;				$detail = $staff->checkStaffInfoIsComplete ( $_COOKIE ["staff"] );				if (! empty ( $detail ))					$this->data ['isStaffCompleteMsg'] = true;								return "/";			}		}				Doo::loadCore ( 'uri/DooUriRouter' );		$router = new DooUriRouter ();		$routeRs = $router->execute ( Doo::app ()->route, Doo::conf ()->SUBFOLDER );				if ($routeRs ['1'] != "login") {			header ( 'Content-Type:text/html;charset=utf-8' );			@header ( "Location: /login" );		}	}		/**	 * 费用首页	 */	function saeaBorad() {				$travel= $this->get_args ( 'travel' ) ? $this->get_args ( 'travel' ) : "";				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		Doo::loadModel ( "role" );		$role = new role ();				Doo::loadModel ( "receiptLog" );		$receiptLog = new receiptLog ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );				$receiptLogList = $receiptLog->getReceiptLogByUid ( $this->staff [0] ['sid'] );				$receiptDetail = $receipt->find ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=7 or status=5 or status=4 or status=8 and Rtype=1)',				'desc' => 'rid',				'asArray' => true 		) );				foreach ( $receiptDetail as $key => $value ) {			$receiptDetail [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] );			$receiptDetail [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );						$veList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$v = json_decode ( $veList ['staff'] );			array_push ( $v [0], $veList ['description'] );						foreach ( $v as $n => $m ) {				if ($m ['1'] == 'ROLE') {					$roleInfo = $role->getOne ( array (							'where' => 'rid=' . $m [0],							'asArray' => true 					) );					$v [$n] [1] = $roleInfo ['name'];				}			}						$receiptDetail [$key] ['staff'] = $v;			$category = $lCategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptDetail [$key] ['category'] = $category ['title'];		}		// print_r($receiptLogList);				Doo::loadModel ( 'RAssist' );		$RAssist = new RAssist ();		$receiptExtendList=$RAssist->getRAssistBySid($this->staff[0]['sid']);				//费用项目		$acItem = $accountItem->find ( array ('asArray' => true) );				if ($travel=='success'){			$data ['travel'] =true;		}else{			$data ['travel'] =false;		}				$data ['acItem'] = $acItem;				$data ['receiptExtendList'] = $receiptExtendList;		$data ['receiptLogList'] = $receiptLogList;		$data ['receiptDetail'] = $receiptDetail;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;				$data ['executeId'] = $this->executeId;				$this->render ( "/receipt/receiptFee", $data );	}		/**	 * 费用报销单-导流入哪个细分类	 */	function receiptFeeDiversion(){		$feeType= $this->get_args ( 'feeType' ) ? $this->get_args ( 'feeType' ) : "";		if($feeType==2){			return '/receipt/feeTravel';		}elseif($feeType==3){			return '/receipt/feeInternalTrain';		}else{			return '/receipt/feeAgency';		}	}		private function _feeData(){		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		Doo::loadModel ( "role" );		$role = new role ();								$acItem = $accountItem->find ( array (				'asArray' => true		) );		$veList = $verify->getVerifyBySubordinate('RECEIPT');				$data ['category'] = $lCategory->find ( array (				'asArray' => true		) );				$data ['itineraryDate'] = $this->_itineraryDateMin();		$data ['veList'] = $veList;		$data ['acItem'] = $acItem;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;				$data ['executeId'] = $this->executeId;		return $data;	}		/**	 * 办事处相关费用	 */	function feeAgency(){		$data=$this->_feeData();		$this->render ( "/receipt/feeAgency", $data );	}		/**	 * 办事处	 */	function feeTravel(){		$data=$this->_feeData();		$this->render ( "/receipt/feeTravel", $data );	}		function feeInternalTrain(){		$data=$this->_feeData();		$this->render ( "/receipt/feeInternalTrain", $data );	}		/**	 * 添加费用报销单页面	 */	function saeaCreate() {		Doo::loadModel ( 'accountItem' );		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		$receipt = new receipt ();		$verify = new verify ();		$accountItem = new accountItem ();		Doo::loadModel ( "role" );		$role = new role ();				$acItem = $accountItem->find ( array (				'asArray' => true		) );		$veList = $verify->getVerifyBySubordinate('RECEIPT');				$data ['category'] = $lCategory->find ( array (				'asArray' => true		) );		$data ['veList'] = $veList;		$data ['acItem'] = $acItem;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/saea_create", $data );	}		private  function _storageItinerary($itinerary,$rid){		Doo::loadModel ( 'itinerary' );				$itineraryJson=json_decode($itinerary,true);				$itinerary = new itinerary ();		$itinerary->delete(array('where' => 'rid=' . $rid ));				foreach ($itineraryJson as $key=>$value){			if($key==0){				$feeTraveItem=json_encode($value['feeTraveItem']);				$itinerary = new itinerary ();				$itinerary->rid=$rid;				$itinerary->sid=$this->staff [0] ['sid'];				$itinerary->itineraryDate=$value['departuredate'];				$itinerary->itineraryCity=$value['departurecity'];				$itinerary->feeTraveItem='';				$itinerary->itineraryIndex=0;				$itinerary->insert ();								$itinerary = new itinerary ();				$itinerary->rid=$rid;				$itinerary->sid=$this->staff [0] ['sid'];				$itinerary->itineraryDate=substr($value['arrivalsdate'],1);				$itinerary->itineraryCity=substr($value['arrivalscity'],1);				$itinerary->feeTraveItem=$feeTraveItem;				$itinerary->itineraryIndex=1;				$itinerary->insert ();							}else{				$feeTraveItem=json_encode($value['feeTraveItem']);				$itinerary = new itinerary ();				$itinerary->rid=$rid;				$itinerary->sid=$this->staff [0] ['sid'];				$itinerary->itineraryDate=substr($value['arrivalsdate'],1);				$itinerary->itineraryCity=substr($value['arrivalscity'],1);				$itinerary->feeTraveItem=$feeTraveItem;				$itinerary->itineraryIndex=$key+1;				$itinerary->insert ();			}					}			}		private function _verificationItinerary($itinerary){		Doo::loadModel ( 'itinerary' );		$itineraryObj = new itinerary ();				if(empty($itinerary)){			return false;		}				$itineraryJson=json_decode($itinerary,true);				$itineraryDate=array();$sql=array();		foreach ($itineraryJson as $key=>$value){			if($key==0){				array_push($itineraryDate, $value['departuredate']);				array_push($itineraryDate, substr($value['arrivalsdate'],1));				array_push($sql,'?');array_push($sql,'?');			}else{				array_push($itineraryDate, substr($value['arrivalsdate'],1));				array_push($sql,'?');			}		}		array_push($itineraryDate, $this->staff [0] ['sid']);		$sql=implode(',',$sql);					$qualification=array(				'where' => 'itineraryDate in ('.$sql.') and sid=? ',				'param' => $itineraryDate,				'asArray' => TRUE);		$itDateList=$itineraryObj->find($qualification);		if(empty($itDateList)){			return false;		}else{			return true;		}	}		private function _buildFeeData($receiptClass=1,$itinerary=''){		$agency = $this->get_args ( 'agency' );		$travel = $this->get_args ( 'travel' );		$train = $this->get_args ( 'train' );		$other = $this->get_args ( 'other' );				$inttrain = $this->get_args ( 'inttrain' );				$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";				$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";				$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";		$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;				if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {							if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}									if($receiptClass==2){				if($this->_verificationItinerary($itinerary)){					header ( 'Content-Type:text/html;charset=utf-8' );					die ( '已申请过类此日期的行程' );				}			}						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();							Doo::loadModel ( 'enclosur' );							Doo::loadModel ( 'execute' );			$execute = new execute ();			$executeDetail = $execute->getOne ( array (					'where' => 'mold="报销单执行人"',					'asArray' => true			) );						$aItem = $accountItem->find ( array (					'asArray' => true			) );			$accountJson [$this->AGENCY]=$accountJson [$this->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();			$ag = $tr = $ta = $ot= $it = 0;			$sum = $agencySum = $travelSum = $trainSum =$inttrainSum= $otherSum = 0;							foreach ( $aItem as $key => $value ) {				if ($value ['category'] == $this->AGENCY) {					if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {						array_push ( $accountJson [$this->AGENCY], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $agency [$ag], 2, '.', '' )						) );						$sum += $agency [$ag];						$agencySum += $agency [$ag];					}					$ag ++;				}						if ($value ['category'] == $this->TRAVEL) {					if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {						array_push ( $accountJson [$this->TRAVEL], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $travel [$tr], 2, '.', '' )						) );						$sum += $travel [$tr];						$travelSum += $travel [$tr];					}					$tr ++;				}						if ($value ['category'] == $this->TRAIN) {					if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {						array_push ( $accountJson [$this->TRAIN], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $train [$ta], 2, '.', '' )						) );						$sum += $train [$ta];						$trainSum += $train [$ta];					}					$ta ++;				}						if ($value ['category'] == $this->INTTRAIN) {					if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) {						array_push ( $accountJson [$this->INTTRAIN], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $inttrain [$it], 2, '.', '' )						) );						$sum += $inttrain [$it];						$inttrainSum += $inttrain [$it];					}					$it ++;				}								if ($value ['category'] == $this->OTHER) {					if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {						array_push ( $accountJson [$this->OTHER], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $other [$ot], 2, '.', '' )						) );						$sum += $other [$ot];						$otherSum += $other [$ot];					}					$ot ++;				}			}							$accountJson ['cSum'] = array (					'agencySum' => number_format ( $agencySum, 2, '.', '' ),					'travelSum' => number_format ( $travelSum, 2, '.', '' ),					'trainSum' => number_format ( $trainSum, 2, '.', '' ),					'inttrainSum'=>number_format ( $inttrainSum, 2, '.', '' ),					'otherSum' => number_format ( $otherSum, 2, '.', '' )			);							// 报销单			$receipt->accountItem = json_encode ( $accountJson );			$receipt->staff = $this->staff [0] ['sid'];			$receipt->sum = number_format ( $sum, 2, '.', '' );			$receipt->date = date ( "Y-m-d" );			$receipt->cid = $cid;			$receipt->status = 5;							// 修改审批流程加入角色			$receipt->verify = $verify;							$receipt->executeCopy = $executeDetail ['staff'];							$receipt->receiptOrder = "#B" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );							$order = array (					"\r\n",					"\n",					"\r"			);			$replace = '<br/>';			$explanation = str_replace ( $order, $replace, $explanation );			$receipt->explanation = $explanation;							$receipt->receiptClass = $receiptClass;						$receipt->itinerary=$itinerary;						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1) {				$receipt->coupletNumber = $coupletNumber;			}			$rid = $receipt->insert ();						//记录行程单			$this->_storageItinerary($itinerary,$rid);									// 附件			if (! empty ( $enclosurName )) {				$enclosurArray = explode ( '-', $enclosurName );				foreach ( $enclosurArray as $value ) {					$enclosur = new enclosur ();										$enclosur->name = $value;					$enclosur->rid = $rid;					$enclosur->insert ();				}			}						// 报销详情			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->AGENCY;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->TRAVEL;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			foreach ( $accountJson [$this->TRAIN] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->TRAIN;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			// 内训			foreach ( $accountJson [$this->INTTRAIN] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->INTTRAIN;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			foreach ( $accountJson [$this->OTHER] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->OTHER;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			return true;		} else			return false;	}		function addReceipt() {		// include Doo::conf()->BASE_PATH.'diagnostic/debug.php';				if ($this->_buildFeeData(1)) {			return "/saeaBorad";		} else{			die ( 'illegal request' );		}				}		function addFeeTravel(){		$itinerary = $_POST['itinerary']  ? $_POST['itinerary'] : "";				$itineraryList=json_decode($itinerary,true);				foreach ($itineraryList as $key=>$value){			if(empty($value['departuredate'])||empty($value['departurecity'])){				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请设置出发地和出发日期' );			}		}				if ($this->_buildFeeData(2,$itinerary)) {			return "/saeaBorad?travel=success";		} else{			die ( 'illegal request' );		}	}		function addFeeInternalTrain(){		if ($this->_buildFeeData(3)) {			return "/saeaBorad";		} else{			die ( 'illegal request' );		}	}			function referReceipt() {		// $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0;		Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'verify' );		$verify = new verify ();		$receipt = new receipt ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		Doo::loadModel ( "role" );		$role = new role ();				$receiptDetail = $receipt->find ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and status=5 ',				'asArray' => true		) );		if (empty ( $receiptDetail ))			return "/addReceipt";						foreach ( $receiptDetail as $key => $value ) {				$receiptDetail [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );								$veList = $verify->getOne ( array (						'where' => 'vid=' . $value ['verify'],						'asArray' => true				) );				$v = json_decode ( $veList ['staff'] );				array_push ( $v [0], $veList ['description'] );								foreach ( $v as $n => $m ) {					if ($m ['1'] == 'ROLE') {						$roleInfo = $role->getOne ( array (								'where' => 'rid=' . $m [0],								'asArray' => true						) );						$v [$n] [1] = $roleInfo ['name'];					}				}								$receiptDetail [$key] ['staff'] = $v;				$category = $lCategory->getOne ( array (						'where' => 'cid=' . $value ['cid'],						'asArray' => true				) );				$receiptDetail [$key] ['category'] = $category ['title'];			}			// print_r($receiptDetail);			$data ['receiptDetail'] = $receiptDetail;						$data ['memu'] = "receipt";			$data ['staff'] = $this->staff;			$data ['receiptMemu'] = 'saeaCreate';			$data ['verifyId'] = $this->verifyId;			$data ['executeId'] = $this->executeId;			$this->render ( "/admin/saea_confirm", $data );	}		function editReceipt() {		// edit status 4		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (empty ( $rid )) {			die ( 'illegal request-id' );		}		// echo $rid.'sd';		Doo::loadModel ( 'accountItem' );		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		$verify = new verify ();		$accountItem = new accountItem ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		Doo::loadModel ( "role" );		$role = new role ();		Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();				$receiptDetail = $receipt->getOne ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=4)',				'asArray' => true 		) );		if (empty ( $receiptDetail )) {			die ( 'illegal request-emptyData' );		}		$enclosurList = $enclosur->getEnclosurByRid ( $receiptDetail ['rid'] );		$acItem = $accountItem->find ( array (				'asArray' => true 		) );		$veList = $verify->getVerifyBySubordinate ( 'RECEIPT' );				// 配置编辑信息		$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );		foreach ( $acItem as $key => $value ) {			foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			// 内训			foreach ( $accountItemList [$this->INTTRAIN] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->INTTRAIN && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			foreach ( $accountItemList [$this->OTHER] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}		}				$data ['category'] = $lCategory->find ( array (				'asArray' => true 		) );		$data ['cSum'] = $accountItemList ['cSum'];		$data ['sum'] = $receiptDetail ['sum'];		$data ['enclosurList'] = $enclosurList;		$data ['receiptDetail'] = $receiptDetail;		$data ['veList'] = $veList;		$data ['acItem'] = $acItem;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'saeaBorad';		$data ['verify'] = $receiptDetail ['verify'];		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$data ['rid'] = $ridKey;				if($receiptDetail['receiptClass']==1){			$this->render ( "/receipt/feeAgencyEdi", $data );		}elseif($receiptDetail['receiptClass']==2){			$this->render ( "/receipt/feeTravelEdi", $data );		}elseif($receiptDetail['receiptClass']==3){			$this->render ( "/receipt/feeInternalTrainEdi", $data );		}else{			$this->render ( "/admin/saea_edit", $data );			//die ( 'illegal request-renderHtml' );		}	}				function updateReceipt() {		$agency = $this->get_args ( 'agency' );		$travel = $this->get_args ( 'travel' );		$train = $this->get_args ( 'train' );		$other = $this->get_args ( 'other' );				$inttrain = $this->get_args ( 'inttrain' );						$receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : "";		$itinerary = $this->get_args ( 'itinerary' ) ? $this->get_args ( 'itinerary' ) : "";				$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;		$ridKey = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : 0;				$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";				$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";				$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! empty ( $rid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {						if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();						Doo::loadModel ( 'enclosur' );						Doo::loadModel ( 'execute' );			$execute = new execute ();						$receiptDetail = $receipt->getOne ( array (					'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=7 or status=4)',					'asArray' => true 			) );			if (empty ( $receiptDetail )) {				return "/saeaBorad";			}						//行程单			$this->_storageItinerary($itinerary,$rid);									if ($receiptDetail ['Rtype'] == 1) {				$executeDetail = $execute->getOne ( array (						'where' => 'mold="借款费用执行人"',						'asArray' => true 				) );			} else {				$executeDetail = $execute->getOne ( array (						'where' => 'mold="报销单执行人"',						'asArray' => true 				) );			}			$aItem = $accountItem->find ( array (					'asArray' => true 			) );			$accountJson [$this->AGENCY] = $accountJson [$this->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();			$ag = $tr = $ta = $ot = $it = 0;			$sum = $agencySum = $travelSum = $trainSum = $inttrainSum = $otherSum = 0;						foreach ( $aItem as $key => $value ) {				if ($value ['category'] == $this->AGENCY) {					if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {						array_push ( $accountJson [$this->AGENCY], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $agency [$ag], 2, '.', '' ) 						) );						$sum += $agency [$ag];						$agencySum += $agency [$ag];					}					$ag ++;				}								if ($value ['category'] == $this->TRAVEL) {					if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {						array_push ( $accountJson [$this->TRAVEL], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $travel [$tr], 2, '.', '' ) 						) );						$sum += $travel [$tr];						$travelSum += $travel [$tr];					}					$tr ++;				}								if ($value ['category'] == $this->TRAIN) {					if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {						array_push ( $accountJson [$this->TRAIN], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $train [$ta], 2, '.', '' ) 						) );						$sum += $train [$ta];						$trainSum += $train [$ta];					}					$ta ++;				}								if ($value ['category'] == $this->INTTRAIN) {					if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) {						array_push ( $accountJson [$this->INTTRAIN], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $inttrain [$it], 2, '.', '' ) 						) );						$sum += $inttrain [$it];						$inttrainSum += $inttrain [$it];					}					$it ++;				}								if ($value ['category'] == $this->OTHER) {					if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {						array_push ( $accountJson [$this->OTHER], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $other [$ot], 2, '.', '' ) 						) );						$sum += $other [$ot];						$otherSum += $other [$ot];					}					$ot ++;				}			}			$accountJson ['cSum'] = array (					'agencySum' => number_format ( $agencySum, 2, '.', '' ),					'travelSum' => number_format ( $travelSum, 2, '.', '' ),					'trainSum' => number_format ( $trainSum, 2, '.', '' ),					'inttrainSum' => number_format ( $inttrainSum, 2, '.', '' ),					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 			);						// 报销单			$rid = $receipt->rid = $receiptDetail ['rid'];			$receipt->accountItem = json_encode ( $accountJson );			$receipt->staff = $this->staff [0] ['sid'];			$receipt->sum = number_format ( $sum, 2, '.', '' );			$receipt->date = date ( "Y-m-d" );			$receipt->cid = $cid;						if (($receiptDetail ['status'] != 4)) {				if ($receiptDetail ['Rtype'] == 1) {					$receipt->status = 7;				} else {					$receipt->status = 5;				}			}			if ($receiptDetail != 4 && ! empty ( $verify ))				$receipt->verify = $verify;			$receipt->executeCopy = $executeDetail ['staff'];						$order = array (					"\r\n",					"\n",					"\r" 			);			$replace = '<br/>';			$explanation = str_replace ( $order, $replace, $explanation );			$receipt->explanation = $explanation;						if($receiptClass=='trave'){				$receipt->itinerary=$itinerary;			}						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1)				$receipt->coupletNumber = $coupletNumber;						$receipt->update ();						$receiptDetail = new receiptDetail ();			$receiptDetail->delete ( array (					'where' => 'rid=' . $rid 			) );						// 报销详情			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->AGENCY;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->TRAVEL;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			foreach ( $accountJson [$this->TRAIN] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->TRAIN;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}						// 内训			foreach ( $accountJson [$this->INTTRAIN] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->INTTRAIN;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}						foreach ( $accountJson [$this->OTHER] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->OTHER;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}						// 附件			if (! empty ( $enclosurName )) {				$enclosurArray = explode ( '-', $enclosurName );				foreach ( $enclosurArray as $value ) {					$enclosur = new enclosur ();										$enclosur->name = $value;					$enclosur->rid = $rid;					$enclosur->insert ();				}			}						// return "/referReceipt/".$rid;		}		return "/saeaBorad";	}			function remitAdd() {		Doo::loadModel ( 'accountItem' );		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		$receipt = new receipt ();		$verify = new verify ();		$accountItem = new accountItem ();		Doo::loadModel ( "role" );		$role = new role ();				$acItem = $accountItem->find ( array (				'asArray' => true 		) );				$veList = $verify->getVerifyBySubordinate('REMIT');										$data ['category'] = $lCategory->find ( array (				'asArray' => true 		) );		$data ['veList'] = $veList;		$data ['acItem'] = $acItem;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/admin/remitAdd", $data );	}	function remitAddDo() {		$agency = $this->get_args ( 'agency' );		$travel = $this->get_args ( 'travel' );		$train = $this->get_args ( 'train' );		$other = $this->get_args ( 'other' );		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";				$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";				$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";		$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;				// print_r($agency);die;				if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {						if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();						Doo::loadModel ( 'enclosur' );						Doo::loadModel ( 'execute' );			$execute = new execute ();			$executeDetail = $execute->getOne ( array (					'where' => 'mold="对公汇款执行人"',					'asArray' => true 			) );						// $receiptDetail=$receipt->getOne(array('where'=>'staff='.$this->staff[0]['sid'].' and status=4','asArray'=>true));						$aItem = $accountItem->find ( array (					'where' => '(name like "办公费用" or name like "服务器费用" or name like "邮寄费" or name like "其他费用" or name like "公积金" or name like "社保") and category like "'.$this->AGENCY.'"',					'asArray' => true 			) );			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();			$ag = $tr = $ta = $ot = 0;			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;			print_r($aItem);			foreach ( $aItem as $key => $value ) {				if ($value ['category'] == $this->AGENCY) {					if (isset ( $agency [$ag] )) {						if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {							array_push ( $accountJson [$this->AGENCY], array (									'aid' => $value ['aid'],									'name' => $value ['name'],									'price' => number_format ( $agency [$ag], 2, '.', '' ) 							) );							$sum += $agency [$ag];							$agencySum += $agency [$ag];						}					}					$ag ++;				}			}			$accountJson ['cSum'] = array (					'agencySum' => number_format ( $agencySum, 2, '.', '' ),					'travelSum' => number_format ( $travelSum, 2, '.', '' ),					'trainSum' => number_format ( $trainSum, 2, '.', '' ),					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 			);			//die;			// 报销单			$receipt->accountItem = json_encode ( $accountJson );			$receipt->staff = $this->staff [0] ['sid'];			$receipt->sum = number_format ( $sum, 2, '.', '' );			$receipt->date = date ( "Y-m-d" );			$receipt->cid = $cid;			$receipt->status = 5;						$receipt->Rtype = 2;						// 修改审批流程加入角色			$receipt->verify = $verify;			$receipt->executeCopy = $executeDetail ['staff'];			$receipt->receiptOrder = "#B" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );						$order = array (					"\r\n",					"\n",					"\r" 			);			$replace = '<br/>';			$explanation = str_replace ( $order, $replace, $explanation );			$receipt->explanation = $explanation;						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1)				$receipt->coupletNumber = $coupletNumber;						$rid = $receipt->insert ();						// 附件			if (! empty ( $enclosurName )) {				$enclosurArray = explode ( '-', $enclosurName );				foreach ( $enclosurArray as $value ) {					$enclosur = new enclosur ();										$enclosur->name = $value;					$enclosur->rid = $rid;					$enclosur->insert ();				}				// print_r($enclosurArray);die;			}						// 报销详情			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->AGENCY;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			return "/saeaBorad";		} else			die ( 'illegal request' );	}	function remitEdit() {		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'accountItem' );		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		$verify = new verify ();		$accountItem = new accountItem ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		Doo::loadModel ( "role" );		$role = new role ();		Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();				$receiptDetail = $receipt->getOne ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=4)',				'asArray' => true 		) );		if (empty ( $receiptDetail ))			return "/saeaCreate";				$enclosurList = $enclosur->getEnclosurByRid ( $receiptDetail ['rid'] );		$acItem = $accountItem->find ( array (				'asArray' => true 		) );		$veList = $verify->getVerifyBySubordinate('REMIT'); 								// 配置编辑信息		$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );		foreach ( $acItem as $key => $value ) {			foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			foreach ( $accountItemList [$this->OTHER] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}		}				$data ['category'] = $lCategory->find ( array (				'asArray' => true 		) );				$data ['enclosurList'] = $enclosurList;				$data ['cSum'] = $accountItemList ['cSum'];		$data ['sum'] = $receiptDetail ['sum'];		$data ['receiptDetail'] = $receiptDetail;		$data ['veList'] = $veList;		$data ['acItem'] = $acItem;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'saeaBorad';		$data ['verify'] = $receiptDetail ['verify'];		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$data ['rid'] = $rid;		$data ['ridKey'] = $ridKey;		$this->render ( "/admin/remitEdit", $data );	}	function remitEdiDo() {		$agency = $this->get_args ( 'agency' );		$travel = $this->get_args ( 'travel' );		$train = $this->get_args ( 'train' );		$other = $this->get_args ( 'other' );		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;		$ridKey = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : 0;				$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";				$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";				$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! empty ( $rid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {						if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();			Doo::loadModel ( 'enclosur' );			$enclosur = new enclosur ();						Doo::loadModel ( 'execute' );			$execute = new execute ();			$executeDetail = $execute->getOne ( array (					'where' => 'mold="对公汇款执行人"',					'asArray' => true 			) );						$receiptDetail = $receipt->getOne ( array (					'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=5 or status=7 or status=4)',					'asArray' => true 			) );			if (empty ( $receiptDetail ))				return "/saeaBorad";							$aItem = $accountItem->find ( array (					'where' => '(name like "办公费用" or name like "服务器费用" or name like "邮寄费" or name like "其他费用" or name like "公积金" or name like "社保") and category like "'.$this->AGENCY.'"',					'asArray' => true 			) );			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();			$ag = $tr = $ta = $ot = 0;			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;						foreach ( $aItem as $key => $value ) {				if ($value ['category'] == $this->AGENCY) {					if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {						array_push ( $accountJson [$this->AGENCY], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $agency [$ag], 2, '.', '' ) 						) );						$sum += $agency [$ag];						$agencySum += $agency [$ag];					}					$ag ++;				}			}			$accountJson ['cSum'] = array (					'agencySum' => number_format ( $agencySum, 2, '.', '' ),					'travelSum' => number_format ( $travelSum, 2, '.', '' ),					'trainSum' => number_format ( $trainSum, 2, '.', '' ),					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 			);						// 报销单			$rid = $receipt->rid = $receiptDetail ['rid'];			$receipt->accountItem = json_encode ( $accountJson );			$receipt->staff = $this->staff [0] ['sid'];			$receipt->sum = number_format ( $sum, 2, '.', '' );			$receipt->date = date ( "Y-m-d" );			$receipt->cid = $cid;			if ($receiptDetail ['Rtype'] == 1)				$receipt->status = 7;			else				$receipt->status = 5;						if ($receiptDetail ['status'] != 4 && ! empty ( $verify ))				$receipt->verify = $verify;			$receipt->executeCopy = $executeDetail ['staff'];						$order = array (					"\r\n",					"\n",					"\r" 			);			$replace = '<br/>';			$explanation = str_replace ( $order, $replace, $explanation );			$receipt->explanation = $explanation;						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1)				$receipt->coupletNumber = $coupletNumber;						$receipt->update ();						$receiptDetail = new receiptDetail ();			$receiptDetail->delete ( array (					'where' => 'rid=' . $rid 			) );						// 报销详情			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->AGENCY;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}						// 附件			if (! empty ( $enclosurName )) {				$enclosurArray = explode ( '-', $enclosurName );				foreach ( $enclosurArray as $value ) {					$enclosur = new enclosur ();										$enclosur->name = $value;					$enclosur->rid = $rid;					$enclosur->insert ();				}			}		}		return "/saeaBorad";	}	function remitApproval() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;				if (empty ( $status ))			$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;				$vidList = array ();		$button = 0;				Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'staff' );		$staff = new staff ();		$receipt = new receipt ();		$verify = new verify ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();				// user verify ID		$verifyDetail = $verify->find ( array (				'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',				'asArray' => true 		) );		foreach ( $verifyDetail as $key => $value ) {			array_push ( $vidList, $value ['vid'] );		}		$vid = implode ( ",", $vidList );		if (empty ( $verifyDetail ))			$vid = 0;				$categoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'where' => 'cid=' . $cid,				'asArray' => true 		) );				$ap = "";		if ($status == 4) {			$ap = 4;			$status = 2;		}				// get Receipt By verifyID status 2		$receiptList = $receipt->find ( array (				'where' => 'rid =' . $rid . ' and status=2',				'desc' => 'rid',				'asArray' => true 		) );				if (empty ( $receiptList )) {			die ( 'illegal request' );		}				$Locate = 0;		$roleId = 0;		if ($ap == 4)			$status = 4;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						// print_r($verifyList);			$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff']) {							$roleId = $v [0];						}					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}				// print_r($roleArray);								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$button = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						$endKey = key ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {							$button = 4;							$verifyList [$k] ['status'] = 4;						}					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;						$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );		}				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				// 获取审批日志		Doo::loadModel ( 'receiptLog' );		$receiptLog = new receiptLog ();				$rlList = array ();		$rlInfo = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=4',				'asArray' => true 		) );		$tijdate = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=2',				'asc' => 'rlid',				'asArray' => true 		) );		if (! empty ( $rlInfo )) {			$rlList = $receiptLog->find ( array (					'where' => 'rid=' . $rid,					'asc' => 'rlid',					'asArray' => true 			) );		}				$receiptList [0] ['rlList'] = $rlList;				$enclosurList = $enclosur->find ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$enclosurHtml = '';		foreach ( $enclosurList as $value ) {			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';		}		// print_r($receiptList);		$data ['enclosurHtml'] = $enclosurHtml;		$data ['rolename'] = $rolename ['name'];		$data ['datetij'] = $tijdate ['date'];		$data ['mothHtml'] = $mothHtml;		$data ['rid'] = $rid;		$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $receiptList );		$data ['status'] = $status;		$data ['year'] = $year;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;		$data ['ap'] = $ap;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approvalExpenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/remitApproval", $data );	}	function saeaLoanAdd() {		Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( "role" );		$role = new role ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();				$veList = $verify->getVerifyBySubordinate('LOAN'); 								$data ['category'] = $lCategory->find ( array (				'asArray' => true 		) );		$data ['veList'] = $veList;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/saeaLoanAdd", $data );	}	function saeaLoanAddDo() {		$agency = $this->get_args ( 'agency' );				$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";				$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";		$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;		// die;				if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {						if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();						Doo::loadModel ( 'loanReceipt' );			$loanReceipt = new loanReceipt ();			Doo::loadModel ( 'execute' );			$execute = new execute ();						Doo::loadModel ( 'enclosur' );						$executeDetail = $execute->getOne ( array (					'where' => 'mold="借款执行人"',					'asArray' => true 			) );						$aItem = $accountItem->find ( array (					'asArray' => true 			) );			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = $accountJson ['借款费用'] = array ();			$ag = $tr = $ta = $ot = 0;			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;						array_push ( $accountJson ['借款费用'], array (					'aid' => 0,					'name' => '申请金额',					'price' => number_format ( $agency, 2, '.', '' ) 			) );			$sum += $agency;			$agencySum += $agency;						$accountJson ['cSum'] = array (					'loanSum' => number_format ( $agencySum, 2, '.', '' ),					'agencySum' => number_format ( 0, 2, '.', '' ),					'travelSum' => number_format ( $travelSum, 2, '.', '' ),					'trainSum' => number_format ( $trainSum, 2, '.', '' ),					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 			);						// 借款数据备份			$loanReceipt->loanItem = json_encode ( $accountJson );			$loanReceipt->staff = $this->staff [0] ['sid'];			$loanReceipt->sum = number_format ( $sum, 2, '.', '' );			$loanReceipt->date = date ( "Y-m-d" );			$loanReceipt->cid = $cid;			$loanReceipt->receiptOrder = "#J" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );			$loanReceipt->status = 5;			$loanReceipt->Rtype = 1;						$loanReceipt->verify = $verify;						$receipt->receiptOrder = $receipt->receiptOrder;						// 添加HTML换行符			// var_dump($explanation);			$order = array (					"\r\n",					"\n",					"\r" 			);			$replace = '<br/>';			$explanation = str_replace ( $order, $replace, $explanation );						// $explanation=str_replace('\r',"<br/>",$explanation);			// $explanation=str_replace('\r\n',"<br/>",$explanation);						$loanReceipt->explanation = $explanation;			$loanRid = $loanReceipt->insert ();						// 报销单			$receipt->loanItem = json_encode ( $accountJson );			$receipt->staff = $this->staff [0] ['sid'];			$receipt->sum = number_format ( $sum, 2, '.', '' );			$receipt->date = date ( "Y-m-d" );			$receipt->cid = $cid;			// 特殊状态			$receipt->status = 5;			$receipt->Rtype = 1;			$receipt->loanRid = $loanRid;			// 修改审批流程加入角色			$receipt->verify = $verify;						$receipt->executeCopy = $executeDetail ['staff'];						$receipt->receiptOrder = $loanReceipt->receiptOrder;			$receipt->explanation = $explanation;						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1)				$receipt->coupletNumber = $coupletNumber;						$rid = $receipt->insert ();						return "/saeaBorad";		} else			die ( 'illegal request' );	}	function saeaLoanEdi() {		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( "role" );		$role = new role ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();				$receiptInfo = $receipt->getOne ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );				$veList = $verify->find ( array (				'where'=>'subordinate like "%LOAN%"',				'asArray' => true 		) );				foreach ( $veList as $key => $value ) {			$v = json_decode ( $value ['staff'] );						$list = array ();			foreach ( $v as $n => $m ) {				if ($m ['1'] == 'ROLE') {					$roleInfo = $role->getOne ( array (							'where' => 'rid=' . $m [0],							'asArray' => true 					) );					$v [$n] [1] = $roleInfo ['name'];					array_push ( $list, $roleInfo ['name'] );				} else {					array_push ( $list, $v [$n] [1] );				}			}			$veList [$key] ['staff'] = implode ( '>', $list );		}				$receiptInfo ['loanItem'] = json_decode ( $receiptInfo ['loanItem'], true );				// print_r($receiptInfo);				$data ['receiptInfo'] = $receiptInfo;		$data ['category'] = $lCategory->find ( array (				'asArray' => true 		) );		$data ['veList'] = $veList;		$data ['ridKey'] = $ridKey;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/saeaLoanEdi", $data );	}	function saeaLoanEdiDo() {		$ridKey = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : 0;		$agency = $this->get_args ( 'agency' );				$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";				$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";		$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;		// die;				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {						if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();						Doo::loadModel ( 'loanReceipt' );			$loanReceipt = new loanReceipt ();						Doo::loadModel ( 'enclosur' );						Doo::loadModel ( 'execute' );			$execute = new execute ();			$executeDetail = $execute->getOne ( array (					'where' => 'mold="借款执行人"',					'asArray' => true 			) );						$receiptDetail = $receipt->getOne ( array (					'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=5 or status=4) and rid=' . $rid,					'asArray' => true 			) );			if (empty ( $receiptDetail ))				die ( '参数错误' );						$aItem = $accountItem->find ( array (					'asArray' => true 			) );			$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = $accountJson ['借款费用'] = array ();			$ag = $tr = $ta = $ot = 0;			$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;						array_push ( $accountJson ['借款费用'], array (					'aid' => 0,					'name' => '申请金额',					'price' => number_format ( $agency, 2, '.', '' ) 			) );			$sum += $agency;			$agencySum += $agency;						$accountJson ['cSum'] = array (					'loanSum' => number_format ( $agencySum, 2, '.', '' ),					'agencySum' => number_format ( 0, 2, '.', '' ),					'travelSum' => number_format ( $travelSum, 2, '.', '' ),					'trainSum' => number_format ( $trainSum, 2, '.', '' ),					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 			);						// 报销单			$receipt->loanItem = json_encode ( $accountJson );						$receipt->sum = number_format ( $sum, 2, '.', '' );						$receipt->cid = $cid;			// 特殊状态						// 修改审批流程加入角色			if ($receiptDetail ['status'] != 4)				$receipt->verify = $verify;						$order = array (					"\r\n",					"\n",					"\r" 			);			$replace = '<br/>';			$explanation = str_replace ( $order, $replace, $explanation );			$receipt->explanation = $explanation;						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1)				$receipt->coupletNumber = $coupletNumber;						$receipt->update ( array (					'where' => 'rid=' . $rid 			) );						// 借款数据更新			$loanReceipt->loanItem = json_encode ( $accountJson );			$loanReceipt->sum = number_format ( $sum, 2, '.', '' );			$loanReceipt->cid = $cid;			if ($receiptDetail ['status'] != 4)				$loanReceipt->verify = $verify;			$loanReceipt->explanation = $explanation;			$receipt->executeCopy = $executeDetail ['staff'];						$loanReceipt->update ( array (					'where' => 'rid=' . $receiptDetail ['loanRid'] 			) );		}		return "/saeaBorad";	}				function saeaLoanReceiptAdd() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				$receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : "";				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'loanReceipt' );		$loanReceipt = new loanReceipt ();				Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		$verify = new verify ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				$receiptDetail = $receipt->getOne ( array (				'where' => 'rid=' . $rid,				'desc' => 'rid',				'asArray' => true 		) );				$receiptList = $loanReceipt->find ( array (				'where' => 'rid=' . $receiptDetail ['loanRid'],				'desc' => 'rid',				'asArray' => true 		) );				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;						//			// $receiptList[$key]['BIGsum']=$this->NumToCNMoney($value['sum']);			$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );		}				$data ['receiptList'] = $receiptList;		$data ['receiptDetail'] = $receiptDetail;		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();				$acItem = $accountItem->find ( array (				'asArray' => true 		) );				$veList = $verify->getVerifyBySubordinate('RECEIPT','LOAN');				$data ['rid'] = $rid;				$data ['category'] = $lCategory->find ( array (				'asArray' => true 		) );		$data ['veList'] = $veList;		$data ['acItem'] = $acItem;		$data['itineraryDate']=$this->_itineraryDateMin();				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$data['receiptClass']=$receiptClass;		if($receiptClass=='trave'){			$this->render ( "/receipt/feeLoanReceiptTrave", $data );		}else{			$this->render ( "/receipt/feeLoanReceipt", $data );		}			}		function saeaLoanReceiptAddDo() {		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;				$agency = $this->get_args ( 'agency' );		$travel = $this->get_args ( 'travel' );		$train = $this->get_args ( 'train' );		$other = $this->get_args ( 'other' );        $inttrain = $this->get_args ( 'inttrain' );        $itinerary = $_POST['itinerary'];//$this->get_args ( 'itinerary' ) ? $this->get_args ( 'itinerary' ) : "";        $receiptClass = $this->get_args ( 'receiptClass' ) ? $this->get_args ( 'receiptClass' ) : "";                		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$cid = $this->get_args ( 'cid' ) && is_numeric ( $this->get_args ( 'cid' ) ) ? $this->get_args ( 'cid' ) : 0;		$explanation = $this->get_args ( 'explanation' ) ? $this->get_args ( 'explanation' ) : "";				$enclosurName = $this->get_args ( 'enclosurName' ) ? $this->get_args ( 'enclosurName' ) : "";				$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";		$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;				if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber )) {						if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}						if($receiptClass=='agency'){				$receiptClass=1;			}elseif($receiptClass=='trave'){				$receiptClass=2;								if($this->_verificationItinerary($itinerary)){					header ( 'Content-Type:text/html;charset=utf-8' );					die ( '已申请过类此日期的行程' );				}			}elseif($receiptClass=='internalTrain'){				$receiptClass=3;			}else{				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '借款报销单分类不正确' );			}						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();						Doo::loadModel ( 'enclosur' );						Doo::loadModel ( 'execute' );			$execute = new execute ();			$executeDetail = $execute->getOne ( array (					'where' => 'mold="借款费用执行人"',					'asArray' => true 			) );						$receiptDet = $receipt->getOne ( array (					'where' => 'rid=' . $rid,					'asArray' => true 			) );			// if(!empty($receiptDetail))			// return "/referReceipt/".$receiptDetail['rid'];						$aItem = $accountItem->find ( array (					'asArray' => true 			) );			$accountJson [$this->AGENCY]=$accountJson [$this->INTTRAIN] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();			$ag = $tr = $ta = $ot =$it  = 0;			$sum = $agencySum = $travelSum = $trainSum =$inttrainSum= $otherSum = 0;						foreach ( $aItem as $key => $value ) {				if ($value ['category'] == $this->AGENCY) {					if (is_numeric ( $agency [$ag] ) && $agency [$ag] != 0) {						array_push ( $accountJson [$this->AGENCY], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $agency [$ag], 2, '.', '' ) 						) );						$sum += $agency [$ag];						$agencySum += $agency [$ag];					}					$ag ++;				}								if ($value ['category'] == $this->TRAVEL) {					if (is_numeric ( $travel [$tr] ) && $travel [$tr] != 0) {						array_push ( $accountJson [$this->TRAVEL], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $travel [$tr], 2, '.', '' ) 						) );						$sum += $travel [$tr];						$travelSum += $travel [$tr];					}					$tr ++;				}                if ($value ['category'] == $this->INTTRAIN) {                    if (is_numeric ( $inttrain [$it] ) && $inttrain [$it] != 0) {                        array_push ( $accountJson [$this->INTTRAIN], array (                            'aid' => $value ['aid'],                            'name' => $value ['name'],                            'price' => number_format ( $inttrain [$it], 2, '.', '' )                        ) );                        $sum += $inttrain [$it];                        $inttrainSum += $inttrain [$it];                    }                    $it ++;                }				if ($value ['category'] == $this->TRAIN) {					if (is_numeric ( $train [$ta] ) && $train [$ta] != 0) {						array_push ( $accountJson [$this->TRAIN], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $train [$ta], 2, '.', '' ) 						) );						$sum += $train [$ta];						$trainSum += $train [$ta];					}					$ta ++;				}								if ($value ['category'] == $this->OTHER) {					if (is_numeric ( $other [$ot] ) && $other [$ot] != 0) {						array_push ( $accountJson [$this->OTHER], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $other [$ot], 2, '.', '' ) 						) );						$sum += $other [$ot];						$otherSum += $other [$ot];					}					$ot ++;				}			}			$accountJson ['cSum'] = array (					'agencySum' => number_format ( $agencySum, 2, '.', '' ),					'travelSum' => number_format ( $travelSum, 2, '.', '' ),					'trainSum' => number_format ( $trainSum, 2, '.', '' ),                'inttrainSum'=>number_format ( $inttrainSum, 2, '.', '' ),					'otherSum' => number_format ( $otherSum, 2, '.', '' ) 			);						// 报销单			$receipt->accountItem = json_encode ( $accountJson );			$receipt->staff = $this->staff [0] ['sid'];			$receipt->loanSum = $receiptDet ['sum'];			$receipt->sum = number_format ( $sum, 2, '.', '' );						$receipt->date = date ( "Y-m-d" );			$receipt->pastDate = '0000-00-00';			$receipt->cid = $cid;			$receipt->status = 7;						$receipt->receiptClass=$receiptClass;			if($receiptClass==2){				$receipt->itinerary=$itinerary;								$this->_storageItinerary($itinerary, $rid);							}			// 修改审批流程加入角色			$receipt->verify = $verify;			$receipt->verifyStaff = '';			$receipt->executeStaff = '';			$receipt->executeCopy = $executeDetail ['staff'];						// $receipt->receiptOrder="#B".date("Ymd").mt_rand(1000,9999);			$receipt->explanation = $explanation;						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1)				$receipt->coupletNumber = $coupletNumber;						$receipt->update ( array (					'where' => 'rid=' . $rid 			) );						// 附件			if (! empty ( $enclosurName )) {				$enclosurArray = explode ( '-', $enclosurName );				foreach ( $enclosurArray as $value ) {					$enclosur = new enclosur ();										$enclosur->name = $value;					$enclosur->rid = $rid;					$enclosur->insert ();				}								// print_r($enclosurArray);die;			}						// 报销详情			foreach ( $accountJson [$this->AGENCY] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->AGENCY;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			foreach ( $accountJson [$this->TRAVEL] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->TRAVEL;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}			foreach ( $accountJson [$this->TRAIN] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->TRAIN;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}            //内训            foreach ( $accountJson [$this->INTTRAIN] as $key => $value ) {                $receiptDetail = new receiptDetail ();                $receiptDetail->staff = $this->staff [0] ['sid'];                $receiptDetail->item = $value ['name'];                $receiptDetail->itemCategory = $this->INTTRAIN;                $receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );                $receiptDetail->date = date ( "Y-m-d" );                $receiptDetail->cid = $cid;                $receiptDetail->rid = $rid;                $receiptDetail->status = 4;                $receiptDetail->insert ();            }			foreach ( $accountJson [$this->OTHER] as $key => $value ) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $this->staff [0] ['sid'];				$receiptDetail->item = $value ['name'];				$receiptDetail->itemCategory = $this->OTHER;				$receiptDetail->price = number_format ( $value ['price'], 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $cid;				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			}						return "/saeaBorad";		}		return "/saeaLoanReceiptAdd/" . $rid;	}	function saeaLoanReceiptEdi() {		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'accountItem' );		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		$verify = new verify ();		$accountItem = new accountItem ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( "role" );		$role = new role ();				Doo::loadModel ( 'loanReceipt' );		$loanReceipt = new loanReceipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				$receiptDetail = $receipt->getOne ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=4 or status=7) and rid=' . $rid,				'asArray' => true 		) );		if (empty ( $receiptDetail ))			return "/saeaBorad";				$receiptList = $loanReceipt->find ( array (				'where' => 'rid=' . $receiptDetail ['loanRid'],				'desc' => 'rid',				'asArray' => true 		) );		$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;						//			// $receiptList[$key]['BIGsum']=$this->NumToCNMoney($value['sum']);			$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );		}				$data ['receiptList'] = $receiptList;				$acItem = $accountItem->find ( array (				'asArray' => true 		) );				$veList = $verify->find ( array (				'asArray' => true 		) );				foreach ( $veList as $key => $value ) {			$v = json_decode ( $value ['staff'] );						$list = array ();			foreach ( $v as $n => $m ) {				if ($m ['1'] == 'ROLE') {					$roleInfo = $role->getOne ( array (							'where' => 'rid=' . $m [0],							'asArray' => true 					) );					$v [$n] [1] = $roleInfo ['name'];					array_push ( $list, $roleInfo ['name'] );				} else {					array_push ( $list, $v [$n] [1] );				}			}			$veList [$key] ['staff'] = implode ( '>', $list );		}				// 配置编辑信息		$accountItemList = json_decode ( $receiptDetail ['accountItem'], true );		foreach ( $acItem as $key => $value ) {			foreach ( $accountItemList [$this->AGENCY] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->AGENCY && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			foreach ( $accountItemList [$this->TRAIN] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->TRAIN && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}			foreach ( $accountItemList [$this->TRAVEL] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->TRAVEL && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}            //内训            foreach ( $accountItemList [$this->INTTRAIN] as $k => $v ) {                if ($acItem [$key] ['category'] == $this->INTTRAIN && $acItem [$key] ['name'] == $v ['name']) {                    $acItem [$key] ['price'] = $v ['price'];                }            }			foreach ( $accountItemList [$this->OTHER] as $k => $v ) {				if ($acItem [$key] ['category'] == $this->OTHER && $acItem [$key] ['name'] == $v ['name']) {					$acItem [$key] ['price'] = $v ['price'];				}			}		}				$data ['category'] = $Lcategory->find ( array (				'asArray' => true 		) );		$data ['ridKey'] = $ridKey;		$data ['cSum'] = $accountItemList ['cSum'];		$data ['sum'] = $receiptDetail ['sum'];		$data ['receiptDetail'] = $receiptDetail;		$data ['veList'] = $veList;		$data ['acItem'] = $acItem;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'saeaBorad';		$data ['verify'] = $receiptDetail ['verify'];		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$data ['rid'] = $rid;				if($receiptDetail['receiptClass']==1){ 			$this->render ( "/receipt/feeLoanReceiptAgencyEdi", $data );		}elseif($receiptDetail['receiptClass']==2){			$this->render ( "/receipt/feeLoanReceiptTraveEdi", $data );		}elseif($receiptDetail['receiptClass']==3){			$this->render ( "/receipt/feeLoanReceiptITEdi", $data );		}else{			$this->render ( "/admin/saeaLoanEdiReceipt", $data );		}					}		/**	 * 培训班结算	 */	function receiptTrainAdd() {		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();				$acItem = $accountItem->find ( array (				'asArray' => true 		) );				// 审批组		Doo::loadModel ( 'verify' );		$verify = new verify ();		$veList = $verify->getVerifyBySubordinate('TRAIN');		// 办事处		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		$data ['category'] = $lCategory->getCategory ();		$data ['veList'] = $veList;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['acItem'] = $acItem;				$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/receipt/receiptTrainAdd", $data );	}		/**	 * 添加培训班结算	 */	function receiptTrainAddDo() {//include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';		// 培训班信息		$trainName = $this->get_args ( 'trainName' ) ? $this->get_args ( 'trainName' ) : "";		$trainStartDate = $this->get_args ( 'trainStartDate' ) ? $this->get_args ( 'trainStartDate' ) : "";		$trainEndDate = $this->get_args ( 'trainEndDate' ) ? $this->get_args ( 'trainEndDate' ) : "";		$participants = $this->get_args ( 'participants' ) && is_numeric ( $this->get_args ( 'participants' ) ) ? $this->get_args ( 'participants' ) : 0;		$freeParticipants = $this->get_args ( 'freeParticipants' ) && is_numeric ( $this->get_args ( 'freeParticipants' ) ) ? $this->get_args ( 'freeParticipants' ) : 0;		$trainAddress = $this->get_args ( 'trainAddress' ) ? $this->get_args ( 'trainAddress' ) : "";		$trainRemarks = $this->get_args ( 'trainRemarks' ) ? $this->get_args ( 'trainRemarks' ) : "";		// 发票信息		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";		$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;				//&&! empty ( $participants )		if (! empty ( $verify )  && ! empty ( $cid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber ) && ! empty ( $trainName ) && ! empty ( $trainStartDate ) && ! empty ( $trainEndDate )  && ! empty ( $trainAddress )) {						if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}			Doo::loadModel ( 'execute' );			$execute = new execute ();			$executeDetail = $execute->getOne ( array (					'where' => 'mold="培训班结算"',					'asArray' => true 			) );			if (empty ( $executeDetail )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '未设置执行人' );			}			Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );			$cid = $XDeode->decode ( $cid );						Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			Doo::loadModel ( 'receiptTraining' );			$receiptTraining = new receiptTraining ();						// 创建费用培训班			$item = array (					'cid' => $this->staff [0] ['cid'],					'categoryName' => $this->staff [0] ['category'],					'trainName' => $trainName,					'trainStartDate' => $trainStartDate,					'trainEndDate' => $trainEndDate,					'participants' => $participants,					'freeParticipants'=>$freeParticipants,					'trainAddress' => $trainAddress,					'trainRemarks' => $trainRemarks,					'creator' => $this->staff [0] ['sid'],					'creatorDate' => date ( "Y-m-d H:i:s" ) 			);			$irid = $receiptTraining->addReceiptTraining ( $item );						// 报销单			$receipt->status = 5;			$receipt->trainId = $irid;			$receipt->Rtype = 3;			$receipt->staff = $this->staff [0] ['sid'];			$receipt->cid = $cid;			$receipt->verify = $verify;			$receipt->date = date ( "Y-m-d" );						$receipt->executeCopy = $executeDetail ['staff'];			$receipt->receiptOrder = "#P" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1)				$receipt->coupletNumber = $coupletNumber;						$rid = $receipt->insert ();			$XDeode = new XDeode ( 7 );			return "/receiptTrainEdi/" . $XDeode->encode ( $rid ) . ".html";		} else			die ( 'illegal request' );	}		/**	 * 培训班编辑	 */	function receiptTrainEdi() {		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';		$trainEdiType = $this->get_args ( 'trainEdiType' ) ? $this->get_args ( 'trainEdiType' ) : "INFO";				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'receiptTraining' );		$receiptTraining = new receiptTraining ();				$receiptDetail = $receipt->getReceiptByRid ( $rid );		if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)){			die ('illegal request--status');		}				//如有已入账已收款的发票,自动取消办事处已收款// 		Doo::loadModel ( 'RIExtend' );// 		$RIExtend = new RIExtend ();// 		$RIExtendList=$RIExtend->getRIExtendByRid($rid);// 		if (!empty($RIExtendList)){// 			foreach ($RIExtendList as $key=>$value){// 				$RIExtend = new RIExtend ();// 				$RIExtend->delete(array (// 						'where' => 'iid=' . $value['iid'],// 						'limit' => 1// 				));// 			}// 		}				$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );				// 汇总表合计		// 收入合计--加入开票合计		Doo::loadModel ( 'invoiceTraining' );		$invoiceTraining = new invoiceTraining ();		$invoiceTrainingDetail = array (				'invoiceArriveAmount' => 0,				'RIAmount' => 0,				'invoiceTotalAmount' => 0,				'invoiceCompanyAmount'=>0		);		if ($receiptDetail ['invoiceTrainId'] != 0) {			$invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $receiptDetail ['invoiceTrainId'] );		}				// print_r($invoiceTrainingDetail);		$invoiceArriveAmount = $RIAmount = 0;		if (! empty ( $invoiceTrainingDetail )) {			$invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount'];			$RIAmount = $invoiceTrainingDetail ['RIAmount'];		}		$data ['invoiceTrainingDetail'] = $invoiceTrainingDetail;		//print_r($invoiceTrainingDetail);		// 支出项目		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();				// 项目金额合计		Doo::loadModel ( 'RItem' );		$RItem = new RItem ();		// 讲师获得		Doo::loadModel ( 'RILecturer' );		$RILecturer = new RILecturer ();		$RItemList = $RItem->getRItemByRid ( $rid );		$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );		// 支出项金额详情		$aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount );		// print_r($aiData);			// 利润		$profit=$invoiceArriveAmount - $aiData ['total'];		$companyProfit=$profit * 0.6;		$categoryProfit=$profit * 0.4;				$data ['profit'] = sprintf("%.2f",$profit);		$data ['companyProfit'] = sprintf("%.2f",$companyProfit); 		$data ['categoryProfit'] = sprintf("%.2f",$categoryProfit);  		//发票利润		$data ['invoiceProfit'] = $invoiceTrainingDetail ['invoiceTotalAmount'] - $aiData ['total'];		//发票公司利润		$invoiceCompanyProfit=$data ['invoiceProfit'] * 0.6;		$data ['invoiceCompanyProfit'] = sprintf("%.2f",$invoiceCompanyProfit);  		//办事处利润		$invoiceCategoryProfit=$data ['invoiceProfit'] * 0.4;		$data ['invoiceCategoryProfit'] = sprintf("%.2f",$invoiceCategoryProfit);  				// print_r($aiData['dataList']);		$categoryActualExpenditure= $aiData ['total'] - $aiData ['categoryActualExpenditure'];		$data ['categoryActualExpenditure'] = sprintf("%.2f",$categoryActualExpenditure);   		// 备用金		$sum = 0;		$data ['receiptLoanDetail'] = array (				'sum' => '0.00' 		);		if (! empty ( $receiptDetail ['trainLoanRid'] )) {			//$data ['receiptLoanDetail'] = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] );			$receiptLoanList = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] );			$sum=0;			foreach ($receiptLoanList as $key=>$value){				$sum+=$value['sum'];			}			$data ['receiptLoanDetail'] = array (					'sum' => $sum			);			//$sum = $data ['receiptLoanDetail'] ['sum'];		}				$payment=$sum + $RIAmount - $categoryActualExpenditure;		$data ['payment'] = sprintf("%.2f",$payment);    				$data ['total'] =  sprintf("%.2f",$aiData ['total']); 		$data ['aiCount'] = count ( $aiData ['dataList'] ) + 5;		$data ['aiList'] = $aiData ['dataList'];				// 占比计算		if ($invoiceArriveAmount != 0) {			$data ['totalProportion'] = sprintf("%.2f",$aiData ['total'] / $invoiceArriveAmount* 100)  ;			$data ['profitProportion'] = sprintf("%.2f",$profit / $invoiceArriveAmount*100)  ;  //number_format ( $profit / $invoiceArriveAmount, 2, '.', '' ) * 100;			$data ['sumProportion'] = sprintf("%.2f",$sum / $invoiceArriveAmount*100)  ; //number_format ( $sum / $invoiceArriveAmount, 2, '.', '' ) * 100;			$data ['invoiceTotalAmountProportion'] = sprintf("%.2f",$data ['invoiceTrainingDetail'] ['invoiceCompanyAmount'] / $invoiceArriveAmount*100)  ; 			$data ['RIAmountProportion'] =  sprintf("%.2f",$data ['invoiceTrainingDetail'] ['RIAmount'] / $invoiceArriveAmount*100)  ;  			$data ['companyProfitProportion'] = sprintf("%.2f",$companyProfit / $invoiceArriveAmount*100)  ;  			$data ['categoryProportion'] = sprintf("%.2f",$categoryProfit / $invoiceArriveAmount*100)  ;   			$data ['categoryActualExpenditureProportion'] = sprintf("%.2f",$categoryActualExpenditure / $invoiceArriveAmount*100)  ; 			$data ['paymentProportion'] = sprintf("%.2f",$payment / $invoiceArriveAmount*100)  ;  		} else {			$data ['totalProportion'] = $data ['profitProportion'] = $data ['sumProportion'] = $data ['invoiceTotalAmountProportion'] = $data ['RIAmountProportion'] = $data ['companyProfitProportion'] = $data ['categoryActualExpenditureProportion'] = $data ['paymentProportion'] = $data ['categoryProportion'] = 0;		}		//发票金额占比计算		if ($invoiceTrainingDetail ['invoiceTotalAmount'] != 0) {			//支出			$data ['invoicetotalProportion'] = sprintf("%.2f",$aiData ['total'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ; 			//利润			$data ['invoiceprofitProportion'] = sprintf("%.2f",$data ['invoiceProfit'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ;  			//公司利润			$data ['invoicecompanyProfitProportion'] = sprintf("%.2f", $invoiceCompanyProfit / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ;  			//办事处利润			$data ['invoicecategoryProportion'] = sprintf("%.2f", $invoiceCategoryProfit / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ;  			//公司收款			$data ['invoiceTotalAmountProportionB'] = sprintf("%.2f", $data ['invoiceTrainingDetail'] ['invoiceCompanyAmount'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ;  			//备用金			$data ['invoicesumProportion'] = sprintf("%.2f", $sum / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ;   			//办事处收款			$data ['invoiceRIAmountProportion'] = sprintf("%.2f", $data ['invoiceTrainingDetail'] ['RIAmount'] / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ;  			//办事处实际支出			$data ['ICAEP'] = sprintf("%.2f", $categoryActualExpenditure / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ;   			//付总部款			$data ['invoicepaymentProportion'] = sprintf("%.2f", $payment / $invoiceTrainingDetail ['invoiceTotalAmount']* 100)  ;  		}else{			$data ['invoiceprofitProportion'] =$data ['invoiceRIAmountProportion'] =$data ['invoicetotalProportion'] =$data ['invoiceTotalAmountProportionB'] =$data ['invoicesumProportion'] =$data ['ICAEP'] =$data ['invoicepaymentProportion'] =$data ['invoicecompanyProfitProportion'] =$data ['invoicecategoryProportion'] =0;		}				//讲师人数		Doo::loadModel ( 'RILecturer' );		$RILecturer = new RILecturer ();		$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );		$data['lectureCount']=count($RILecturerList);				// 审批组		Doo::loadModel ( 'verify' );		$verify = new verify ();		$veList = $verify->getVerifyBySubordinate('TRAIN');				// 办事处		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		$data ['category'] = $lCategory->getCategory ();				$data ['receiptTrainingDetail'] = $receiptTrainingDetail;		$data ['receiptDetail'] = $receiptDetail;		$data ['veList'] = $veList;		$data ['trainEdiType'] = $trainEdiType;		$data ['ridKey'] = $ridKey;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/receipt/receiptTrainEdi", $data );	}		/**	 * 培训班借款编辑	 */	function receiptTrainLoanEdi() {		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );				$rid = $XDeode->decode ( $ridKey );				if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'receiptTraining' );		$receiptTraining = new receiptTraining ();		Doo::loadModel ( 'verify' );		$verify = new verify ();				$receiptDetail = $receipt->getReceiptByRid ( $rid );		if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4))			die ();				$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );		// 借款详情HTML		// 获得借款信息		$receiptLoanHtml = '';		if (! empty ( $receiptDetail ['trainLoanRid'] )) {			$receiptLoanList = $receipt->getReceiptInRid ( $receiptDetail ['trainLoanRid'] );						foreach ($receiptLoanList as $key=>$value){				// 获得某费用单审批信息				$verifylist = $verify->getVerifyByRid ( $value ['rid'] );				Doo::loadClass ( 'receipt.func' );				$extendHtml = '<p><a class="button" 						href="javascript:if(window.confirm(\'确认移除?\'))window.location=\'/receiptTrainLoanRemoveDo/' . $receiptDetail ['ridKey'] . '/' . $value ['ridKey'] . '.html\'" data-toggle="modal">移除借款</a></p>';				$receiptLoanHtml .= _getReceiptLoanHtml ( $value, $verifylist, $extendHtml );							}					}				$data ['receiptLoanHtml'] = $receiptLoanHtml;		$data ['receiptTrainingDetail'] = $receiptTrainingDetail;		$data ['receiptDetail'] = $receiptDetail;		$data ['trainEdiType'] = "LOAN";		$data ['ridKey'] = $ridKey;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/receipt/receiptTrainLoanEdi", $data );	}		/**	 * 更新培训班结算基本信息	 */	function receiptTrainInfoEdiDo() {		$rid = $this->get_args ( 'rid' ) ? $this->get_args ( 'rid' ) : "";		$rtid = $this->get_args ( 'rtid' ) ? $this->get_args ( 'rtid' ) : "";				// 培训班信息		$trainName = $this->get_args ( 'trainName' ) ? $this->get_args ( 'trainName' ) : "";		$trainStartDate = $this->get_args ( 'trainStartDate' ) ? $this->get_args ( 'trainStartDate' ) : "";		$trainEndDate = $this->get_args ( 'trainEndDate' ) ? $this->get_args ( 'trainEndDate' ) : "";		$participants = $this->get_args ( 'participants' ) && is_numeric ( $this->get_args ( 'participants' ) ) ? $this->get_args ( 'participants' ) : 0;		$freeParticipants = $this->get_args ( 'freeParticipants' ) && is_numeric ( $this->get_args ( 'freeParticipants' ) ) ? $this->get_args ( 'freeParticipants' ) : 0;		$trainAddress = $this->get_args ( 'trainAddress' ) ? $this->get_args ( 'trainAddress' ) : "";		$trainRemarks = $this->get_args ( 'trainRemarks' ) ? $this->get_args ( 'trainRemarks' ) : "";		// 发票信息		$verify = $this->get_args ( 'verify' ) && is_numeric ( $this->get_args ( 'verify' ) ) ? $this->get_args ( 'verify' ) : 0;		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$remittanceName = $this->get_args ( 'remittanceName' ) ? $this->get_args ( 'remittanceName' ) : "";		$bankName = $this->get_args ( 'bankName' ) ? $this->get_args ( 'bankName' ) : "";		$bankNumber = $this->get_args ( 'bankNumber' ) ? $this->get_args ( 'bankNumber' ) : "";		$coupletNumber = $this->get_args ( 'coupletNumber' ) ? $this->get_args ( 'coupletNumber' ) : "";		$remittanceBankType = $this->get_args ( 'remittanceBankType' ) && is_numeric ( $this->get_args ( 'remittanceBankType' ) ) ? $this->get_args ( 'remittanceBankType' ) : 0;				//&& ! empty ( $participants )		if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $remittanceName ) && ! empty ( $bankName ) && ! empty ( $bankNumber ) && ! empty ( $trainName ) && ! empty ( $trainStartDate ) && ! empty ( $trainEndDate )  && ! empty ( $trainAddress )) {						if ($remittanceBankType == 1 && empty ( $coupletNumber )) {				header ( 'Content-Type:text/html;charset=utf-8' );				die ( '请填写联行号' );			}						Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );			$cid = $XDeode->decode ( $cid );			$rtid = $XDeode->decode ( $rtid );			$rid = $XDeode->decode ( $rid );						if (! is_numeric ( $rtid ) || ! is_numeric ( $rid )) {				die ( 'illegal request-IdError' );			}						Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			Doo::loadModel ( 'receiptTraining' );			$receiptTraining = new receiptTraining ();						// 更新费用培训班			$item = array (					'rtid' => $rtid,					'trainName' => $trainName,					'trainStartDate' => $trainStartDate,					'trainEndDate' => $trainEndDate,					'participants' => $participants,					'freeParticipants'=>$freeParticipants,					'trainAddress' => $trainAddress,					'trainRemarks' => $trainRemarks 			);			$irid = $receiptTraining->setReceiptTrainByCondition ( $item );						// 报销单			$receipt->rid = $rid;			$receipt->cid = $cid;			$receipt->verify = $verify;						$receipt->remittanceName = $remittanceName;			$receipt->bankName = $bankName;			$receipt->bankNumber = $bankNumber;			$receipt->remittanceBankType = $remittanceBankType;			if ($remittanceBankType == 1)				$receipt->coupletNumber = $coupletNumber;						$receipt->update ();			$XDeode = new XDeode ( 7 );			return "/receiptTrainEdi/" . $XDeode->encode ( $rid ) . ".html?trainEdiType=INFO";		} else			die ( 'illegal request' );	}		/**	 * 编辑培训班结算---更新借款	 */	function receiptTrainLoanEdiDo() {		$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";		$ridLoanKey = $this->get_args ( 'ridLoanKey' ) ? $this->get_args ( 'ridLoanKey' ) : "";		if (! empty ( $ridKey ) && ! empty ( $ridLoanKey )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );						$rid = $XDeode->decode ( $ridKey );			$ridLoan = $XDeode->decode ( $ridLoanKey );			if (! is_numeric ( $rid ) || ! is_numeric ( $ridLoan ))				die ( 'illegal request-ridError' );						$receiptDetail = $receipt->getReceiptByRid ( $rid );			$receiptLoanDetail = $receipt->getReceiptByRid ( $ridLoan );			// 不合法的数据if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4))			if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) {				die ( 'illegal request-receiptError' );			}			if ($receiptLoanDetail ['status'] != 8 || $receiptLoanDetail ['Rtype'] != 1) {				die ( 'illegal request-receipLoantError' );			}			// 培训班结算挂钩借款						$receipt = new receipt ();			$trainLoanRid=$ridLoan;			if (!empty($receiptDetail['trainLoanRid'])){				$trainLoanRid=$receiptDetail['trainLoanRid'].','.$ridLoan;			}			$item = array (					'rid' => $rid,					'trainLoanRid' => $trainLoanRid 			);			$receipt->setReceiptByCondition ( $item );			// 更新借款状态变成已挂钩			$receipt = new receipt ();			$item = array (					'rid' => $ridLoan,					'status' => 10,					'statusTrain' => 1 			);			$receipt->setReceiptByCondition ( $item );						$XDeode = new XDeode ( 7 );			return "/receiptTrainLoanEdi/" . $XDeode->encode ( $rid ) . ".html";		} else			die ( 'illegal request' );	}		/**	 * 编辑培训班结算--移除借款	 */	function receiptTrainLoanRemoveDo() {		$ridKey = isset ( $this->params ['ridKey'] ) ? $this->params ['ridKey'] : 0;		$ridLoanKey = isset ( $this->params ['ridLoanKey'] ) ? $this->params ['ridLoanKey'] : 0;				if (! empty ( $ridKey ) || ! empty ( $ridLoanKey )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );						$rid = $XDeode->decode ( $ridKey );			$ridLoan = $XDeode->decode ( $ridLoanKey );						if (! is_numeric ( $rid ) || ! is_numeric ( $ridLoan ))				die ( 'illegal request-ridError' );						$receiptDetail = $receipt->getReceiptByRid ( $rid );			$receiptLoanDetail = $receipt->getReceiptByRid ( $ridLoan );			// 不合法的数据 !($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)			if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) {				die ( 'illegal request-receiptError' );			}			if ($receiptLoanDetail ['status'] != 10 || $receiptLoanDetail ['Rtype'] != 1) {				die ( 'illegal request-receipLoantError' );			}			// 培训班结算挂钩借款			$receipt = new receipt ();						$trainLoanRidArray=explode(",", $receiptDetail['trainLoanRid']);			foreach ($trainLoanRidArray as $key=>$value){				if($value==$ridLoan){					unset($trainLoanRidArray[$key]);				}			}			$trainLoanRidString=implode(",", $trainLoanRidArray);						$item = array (					'rid' => $rid,					'trainLoanRid' => $trainLoanRidString 			);			$receipt->setReceiptByCondition ( $item );			// 更新借款状态变成已挂钩			$receipt = new receipt ();			$item = array (					'rid' => $ridLoan,					'status' => 8,					'statusTrain' => 0 			);			$receipt->setReceiptByCondition ( $item );			$XDeode = new XDeode ( 7 );			return "/receiptTrainLoanEdi/" . $XDeode->encode ( $rid ) . ".html";		} else			die ( 'illegal request' );	}		/**	 * 编辑培训班结算 ---开票	 */	function receiptTrainInvoiceEdi() {		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'receiptTraining' );		$receiptTraining = new receiptTraining ();		Doo::loadModel ( 'invoice' );		$invoice = new invoice ();		Doo::loadModel ( 'invoiceTraining' );		$invoiceTraining = new invoiceTraining ();										$receiptDetail = $receipt->getReceiptByRid ( $rid );		if (! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4))			die ();		$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );				$invoiceList = $invoiceTrainingDetail = array ();		if ($receiptDetail ['invoiceTrainId'] != 0) {			$invoiceList = $invoice->getInvoicePrintedByItid ( $receiptDetail ['invoiceTrainId'] );			$invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $receiptDetail ['invoiceTrainId'] );		}		//print_r($invoiceList);		$data ['invoiceList'] = $invoiceList;		$data ['invoiceTrainingDetail'] = $invoiceTrainingDetail;		$data ['receiptTrainingDetail'] = $receiptTrainingDetail;		$data ['receiptDetail'] = $receiptDetail;		$data ['trainEdiType'] = "INVOICE";		$data ['ridKey'] = $ridKey;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/receipt/receiptTrainInvoiceEdi", $data );	}		/**	 * 编辑培训班结算---更新开票	 */	function receiptTrainInvoiceEdiDo() {		$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";		$itidKey = $this->get_args ( 'itidKey' ) ? $this->get_args ( 'itidKey' ) : "";		if (! empty ( $ridKey ) && ! empty ( $itidKey )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			Doo::loadModel ( 'invoiceTraining' );			$invoiceTraining = new invoiceTraining ();						Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );						$rid = $XDeode->decode ( $ridKey );			$itid = $XDeode->decode ( $itidKey );			if (! is_numeric ( $rid ) || ! is_numeric ( $itid ))				die ( 'illegal request-idError' );						$receiptDetail = $receipt->getReceiptByRid ( $rid );			$invoiceTrainDetail = $invoiceTraining->getInvoiceTrainingByItid ( $itid );			// 不合法的数据			if ((! ($receiptDetail ['status'] == 5 || $receiptDetail ['status'] == 4)) || $receiptDetail ['Rtype'] != 3) {				die ( 'illegal request-receiptError' );			}			if (empty ( $invoiceTrainDetail ) || $invoiceTrainDetail ['bindReceipt'] == 1) {				die ( 'illegal request-receipLoantError' );			}			// 培训班结算挂钩借款			$receipt = new receipt ();			$item = array (					'rid' => $rid,					'invoiceTrainId' => $itid 			);			$receipt->setReceiptByCondition ( $item );						$invoiceTraining = new invoiceTraining ();			$item = array (					'bindReceipt' => 1,					'itid' => $itid 			);			$invoiceTraining->setInvoiceTrainByCondition ( $item );																		$XDeode = new XDeode ( 7 );			return "/receiptTrainInvoiceEdi/" . $XDeode->encode ( $rid ) . ".html";		} else			die ( 'illegal request' );	}		/**	 * 更新培训班结算 收款和取消收款	 */	function receiptTrainReceivables() {		$doType = isset ( $this->params ['doType'] ) ? $this->params ['doType'] : '';		$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";		$iidKey = $this->get_args ( 'iidKey' ) ? $this->get_args ( 'iidKey' ) : "";		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		$rid = $XDeode->decode ( $ridKey );		$iid = $XDeode->decode ( $iidKey );		if (! is_numeric ( $rid ) || ! is_numeric ( $iid ))			die ( 'illegal request-iid' );						Doo::loadModel ( 'RIExtend' );		$RIExtend = new RIExtend ();				if ($doType == 'CONFIRM') {			$RIExtend->rid = $rid;			$RIExtend->iid = $iid;			$RIExtend->RIstatus = 1;			$RIExtend->insert ();						echo json_encode ( array (					'status' => 1,			) );			die ( );		} elseif ($doType == 'CANCEL') {			$RIExtend->delete ( array (					'where' => 'rid=' . $rid . ' and iid=' . $iid,					'limit' => 1 			) );						echo json_encode ( array (					'status' => 1,			) );			die ( );		} else {			echo json_encode ( array (					'status' => 2,			) );			die ( );		}	}		/**	 * 移除挂钩的培训班发票	 */	function receiptTrainReceivablesDelDo() {		$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; // 费用 培训班结算		$itidKey = $this->get_args ( 'itidKey' ) ? $this->get_args ( 'itidKey' ) : ""; // 发票培训班				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'RIExtend' );		$RIExtend = new RIExtend ();		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );				$rid = $XDeode->decode ( $ridKey );		$itid = $XDeode->decode ( $itidKey );				if (is_numeric ( $rid ) && is_numeric ( $itid )) {			$receiptDetail = $receipt->getReceiptByRid ( $rid );			if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)){				die ( 'illegal request-status' );			}						$receipt = new receipt ();			$receipt->rid = $rid;			$receipt->invoiceTrainId = 0;			$receipt->update ();						Doo::loadModel ( 'invoiceTraining' );			$invoiceTraining = new invoiceTraining ();			$item = array (					'bindReceipt' => 0,					'itid' => $itid 			);			$invoiceTraining->setInvoiceTrainByCondition ( $item );						$RIExtend->delete ( array (					'where' => 'rid=' . $rid 			) );			$XDeode = new XDeode ( 7 );			return '/receiptTrainInvoiceEdi/' . $XDeode->encode ( $rid ) . '.html';		} else			die ( 'illegal request-iid' );	}		/**	 * 编辑培训班结算	 */	function receiptTrainItemEdi() {		//include Doo::conf()->BASE_PATH.'diagnostic/debug.php';		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';		$name = $this->get_args ( 'name' ) ? $this->get_args ( 'name' ) : '';				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'receiptTraining' );		$receiptTraining = new receiptTraining ();		Doo::loadModel ( 'RItem' );		$RItem = new RItem ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();				$receiptDetail = $receipt->getReceiptByRid ( $rid );		if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4))			die ();		$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );				$RItemList = $RItem->getRItemByRid ( $rid,$name );		$aiList = $accountItem->getAccountBookByCategory ( '培训班费用' );//print_r($aiList);// 		foreach ($aiList as $key=>$value){//不需要添加税款,在添加收入时自动添加// 			if($value['name']=='税款'){// 				unset($aiList[$key]);break;// 			}// 		}				//print_r($RItemList);		$data ['name'] = $name;		$data ['RItemList'] = $RItemList;		$data ['aiList'] = $aiList;				$data ['receiptTrainingDetail'] = $receiptTrainingDetail;		$data ['receiptDetail'] = $receiptDetail;		$data ['trainEdiType'] = "ITEM";		$data ['ridKey'] = $ridKey;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/receipt/receiptTrainItemEdi", $data );	}		/**	 * 添加支出项  需要修改 费用金额合计	 */	function receiptTrainItemAddDo() {		$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";        $rtidKey = $this->get_args ( 'rtidKey' ) ? $this->get_args ( 'rtidKey' ) : "";		// 支出项信息		$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "";		$price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : 0;		$date = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";		$inputer = $this->get_args ( 'inputer' ) ? $this->get_args ( 'inputer' ) : "";		$describe = $this->get_args ( 'describe' ) ? $this->get_args ( 'describe' ) : "";        //$identifyingTotal = $this->get_args ( 'identifyingTotal' )&&is_numeric($this->get_args ( 'identifyingTotal' )) ? $this->get_args ( 'identifyingTotal' ) : 0;		$payType = isset ( $this->params ['payType'] ) ? $this->params ['payType'] : '';				if (! empty ( $ridKey ) && ! empty ( $item ) &&  is_numeric( $price ) && ! empty ( $date ) && ! empty ( $inputer )) {			Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );			Doo::loadModel ( 'RItem' );			$RItem = new RItem ();						$rid = $XDeode->decode ( $ridKey );            $rtid= $XDeode->decode ( $rtidKey );			if (! is_numeric ( $rid )){				die ( 'illegal request' );			}			Doo::loadModel ( 'receiptDetail' );			$receiptDetail = new receiptDetail ();			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();            Doo::loadModel ( 'receiptTraining' );            $receiptTraining = new receiptTraining ();            $rtDetail=$receiptTraining->getReceiptTrainingByRtid($rtid);            $identifyingTotal=$rtDetail['identifyingTotal']+1;			$order = array (					"\r\n",					"\n",					"\r"			);			$replace = '<br/>';			$describe = str_replace ( $order, $replace, $describe );			$itemData = array (					'rid' => $rid,					'item' => $item,					'price' => $price,											'date' => $date,					'inputer' => $inputer,											'describe' => $describe,					'creater' => $this->staff['0']['username'],					'createrId' => $this->staff['0']['sid'],					'creatDate' => date ( "Y-m-d H:i:s" ),                    'identifying'=>$identifyingTotal			);			if($payType=='company'){				$itemData += array (						'payType' => 1				);			}			$RItem->addRItem($itemData, $receipt, $receiptDetail, $rid, $item, $price, $payType);			//更新支出项标识总数            $itemData = array (                'rtid'=>$rtid,                'identifyingTotal'=>$identifyingTotal            );            $receiptTraining->setReceiptTrainByCondition($itemData);			$XDeode = new XDeode ( 7 );			if($payType=='company'){				return '/receiptTrainItem/approval/' . $XDeode->encode ( $rid ) . '.html';			}else{				return '/receiptTrainItemEdi/' . $XDeode->encode ( $rid ) . '.html';			}		} else			die ( 'illegal request-dataError' );	}		/**	 * 培训班结算-讲师	 */	function receiptTrainLecturerEdi() {		$ridKey = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'receiptTraining' );		$receiptTraining = new receiptTraining ();		Doo::loadModel ( 'RILecturer' );		$RILecturer = new RILecturer ();				Doo::loadModel ( 'lecturer' );		$lecturer = new lecturer ();				$receiptDetail = $receipt->getReceiptByRid ( $rid );		if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4))			die ();		$receiptTrainingDetail = $receiptTraining->getReceiptTrainingByRtid ( $receiptDetail ['trainId'] );				$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );				$lecturerList = $lecturer->getLecturerAll ();		$INSIDEhtml = $OUTSIDEhtml = '';		foreach ( $lecturerList as $key => $value ) {			if ($value ['ltype'] == 'INSIDE') {				$INSIDEhtml .= '<option value="' . $value ['category'] . '-' . $value ['staff'] . '">' . $value ['category'] . '-' . $value ['staff'] . '</option>';			} elseif ($value ['ltype'] == 'OUTSIDE') {				$OUTSIDEhtml .= '<option value="' . $value ['staff'] . '">' . $value ['staff'] . '</option>';			}		}		$data ['INSIDEhtml'] = $INSIDEhtml;		$data ['OUTSIDEhtml'] = $OUTSIDEhtml;		// print_r($RItemList);		$data ['RILecturerList'] = $RILecturerList;				$data ['receiptTrainingDetail'] = $receiptTrainingDetail;		$data ['receiptDetail'] = $receiptDetail;		$data ['trainEdiType'] = "LECTURER";		$data ['ridKey'] = $ridKey;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'saeaBorad';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/receipt/receiptTrainLecturerEdi", $data );	}				/**	 * 添加讲师	 */	function receiptTrainLecturerAddDo() {		$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";				// 支出项信息		$ltype = $this->get_args ( 'ltype' ) ? $this->get_args ( 'ltype' ) : "";		$lecturerName = $this->get_args ( 'lecturerName' ) ? $this->get_args ( 'lecturerName' ) : "";		$schoolDay = $this->get_args ( 'schoolDay' ) ? $this->get_args ( 'schoolDay' ) : "";		$price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : "";		$taxation = $this->get_args ( 'taxation' ) ? $this->get_args ( 'taxation' ) : "";				$fees = $this->get_args ( 'fees' ) ? $this->get_args ( 'fees' ) : "";				if (! empty ( $ridKey ) && ! empty ( $ltype ) && ! empty ( $lecturerName ) && ! empty ( $schoolDay ) && ! empty ( $price )) {			Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );			Doo::loadModel ( 'RILecturer' );			$RILecturer = new RILecturer ();						$rid = $XDeode->decode ( $ridKey );			if (! is_numeric ( $rid ))				die ( 'illegal request' );						if ($ltype == 'OUTSIDE' && empty ( $taxation ))				die ( 'illegal request-taxationError' );						$RILecturer->rid = $rid;			$RILecturer->ltype = $ltype;			if ($ltype == 'OUTSIDE') {				if ($taxation == 'TAXATION') {					$RILecturer->taxation = 1;				} elseif ($taxation == 'NOTAXATION') {					$RILecturer->taxation = 0;				}			}			$RILecturer->lecturerName = $lecturerName;			$RILecturer->schoolDay = $schoolDay;			$RILecturer->price = $price;			$RILecturer->fees=$fees;			$RILecturer->insert ();						// 添加公司汇总			// 报销详情			Doo::loadModel ( 'receiptDetail' );			$receiptDetail = new receiptDetail ();			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();						// 金额总计			$price = $price * $schoolDay;						$rInfo = $receipt->getReceiptByRid ( $rid );			$rdInfo = $receiptDetail->getReceiptDetailByRIC ( $rid, '讲课费', '培训班费用' );			if (empty ( $rdInfo )) {				$receiptDetail = new receiptDetail ();				$receiptDetail->staff = $rInfo ['staff'];				$receiptDetail->item = '讲课费';				$receiptDetail->itemCategory = '培训班费用';				$receiptDetail->price = number_format ( $fees, 2, '.', '' );				$receiptDetail->date = date ( "Y-m-d" );				$receiptDetail->cid = $rInfo ['cid'];				$receiptDetail->rid = $rid;				$receiptDetail->status = 4;				$receiptDetail->insert ();			} else {				$receiptDetail = new receiptDetail ();				$rdInfo ['price'] +=  $fees;				$receiptDetail->price = $rdInfo ['price'];				$receiptDetail->update ( array (						'where' => 'rid=' . $rid . ' and item like "' . '讲课费' . '" and itemCategory like "培训班费用"' 				) );			}			$receipt = new receipt ();			$receipt->sum=$rInfo['sum']+$fees;			$receipt->update ( array (					'where' => 'rid=' . $rid			) );						$XDeode = new XDeode ( 7 );			return '/receiptTrainLecturerEdi/' . $XDeode->encode ( $rid ) . '.html';		} else			die ( 'illegal request' );	}		/**	 * 移除讲师	 */	function receiptTrainLecturerDelDo() {		$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : ""; // 费用 培训班结算		$rlidKey = $this->get_args ( 'rlidKey' ) ? $this->get_args ( 'rlidKey' ) : ""; // 发票培训班				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'RILecturer' );		$RILecturer = new RILecturer ();		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );				$rid = $XDeode->decode ( $ridKey );		$rlid = $XDeode->decode ( $rlidKey );				if (is_numeric ( $rid ) && is_numeric ( $rlid )) {			$receiptDetail = $receipt->getReceiptByRid ( $rid );			if (!($receiptDetail ['status'] == 5||$receiptDetail ['status'] == 4)){				die ( 'illegal request-status' );			}						$detail=$RILecturer->getRILecturerByRlid($rlid);			if (empty($detail)){				die ( 'illegal request-data' );			}			$RILecturer->delete ( array (					'where' => 'rid=' . $rid . ' and rlid=' . $rlid 			) );						//更新费用合计金额			$rInfo = $receipt->getReceiptByRid ( $rid );			$receipt = new receipt ();			$receipt->sum= $receiptDetail['sum']-$detail['price'];			$receipt->update ( array (					'where' => 'rid=' . $rid			) );			Doo::loadModel ( 'receiptDetail' );			$receiptDetail = new receiptDetail ();			$rdInfo = $receiptDetail->getReceiptDetailByRIC ( $rid, '讲课费', '培训班费用' );			$receiptDetail = new receiptDetail ();			$rdInfo ['price'] -= number_format ( $detail['price'], 2, '.', '' );			$receiptDetail->price = $rdInfo ['price'];			$receiptDetail->update ( array (					'where' => 'rid=' . $rid . ' and item like "' . '讲课费' . '" and itemCategory like "培训班费用"'			) );									$XDeode = new XDeode ( 7 );			return '/receiptTrainLecturerEdi/' . $XDeode->encode ( $rid ) . '.html';		} else			die ( 'illegal request-iid' );	}		/**	 * 培训班提交审批	 */	function receiptTrainDo() {		$ridKey = $this->get_args ( 'ridKey' ) ? $this->get_args ( 'ridKey' ) : "";				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		$rid = $XDeode->decode ( $ridKey );				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'receiptDetail' );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();				Doo::loadModel ( "verify" );		$verify = new verify ();				// 审批状态的判定		$receiptDetailList = $receipt->getOne ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=4 or status=5 or status=7)',				'asArray' => true 		) );		if (empty ( $receiptDetailList ))			return "/saeaBorad";				$verifyDetail = $verify->getOne ( array (				'where' => ' vid =' . $receiptDetailList ['verify'],				'asArray' => true 		) );		$verifyDetail = json_decode ( $verifyDetail ['staff'], true );				if (empty ( $receiptDetailList ['nowStaff'] )) {						$nowStaff = "";			$nowStaffList = array ();			if ($verifyDetail [0] [1] == 'ROLE') {				$vStaffString = json_decode ( $verifyDetail [0] [3] );				foreach ( $vStaffString as $key => $value ) {					$staffK = explode ( "_", $value );					array_push ( $nowStaffList, $staffK [0] );				}				$nowStaff = implode ( ',', $nowStaffList );			} else {				$nowStaff = $verifyDetail [0] [0];			}			$receipt->nowStaff = $nowStaff;		}		// echo $nowStaff;		// print_r($verifyDetail);die;				$receipt->rid = $receiptDetailList ['rid'];		$receipt->date = date ( "Y-m-d" );		$receipt->status = 2;		$receipt->update ();				$receiptDetail->status = 2;		$receiptDetail->update ( array (				'where' => 'rid=' . $receiptDetailList ['rid'] 		) );				Doo::loadModel ( "receiptLog" );		$receiptLog = new receiptLog ();		Doo::loadModel ( "verify" );		$verify = new verify ();				$vr = $verify->getOne ( array (				'where' => 'vid=' . $receiptDetailList ['verify'],				'asArray' => true 		) );				$jd = json_decode ( $vr ['staff'] );		$roleId = 0;				foreach ( $jd as $key => $value ) {			if ($value [1] == 'ROLE') {				$pos = strpos ( $value [3], $this->staff [0] ['sid'] );				if ($pos !== false) {					$roleId = $value [0];				}			}		}				// 审批日志		// echo $roleId;die;				if (! empty ( $roleId )) {			Doo::loadModel ( "role" );			$role = new role ();			$roleInfo = $role->getOne ( array (					'where' => 'rid=' . $roleId,					'asArray' => true 			) );						// $receiptLog->rolename = $roleInfo ['name'];		}				$receiptLog->username = $this->staff [0] ['username'];		$receiptLog->uid = $this->staff [0] ['sid'];		$receiptLog->date = date ( "Y-m-d" );		$receiptLog->opinion = '提交审批';		$receiptLog->img = $this->staff [0] ['avatar'];		$receiptLog->status = 2;		$receiptLog->rid = $rid;		$receiptLog->insert ();				// 写入列表项		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		$aItem = $accountItem->getAccountBookByCategory ( '培训班费用' );				// 项目金额合计		Doo::loadModel ( 'RItem' );		$RItem = new RItem ();		// 讲师获得		Doo::loadModel ( 'RILecturer' );		$RILecturer = new RILecturer ();		$RItemList = $RItem->getRItemByRid ( $rid );		$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );		// 支出项金额详情		$aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, 0 );		// print_r($aItem);		// print_r($aiData);				$accountJson [$this->AGENCY] = $accountJson [$this->TRAVEL] = $accountJson [$this->TRAIN] = $accountJson [$this->OTHER] = array ();		$ag = $tr = $ta = $ot = 0;		$sum = $agencySum = $travelSum = $trainSum = $otherSum = 0;				foreach ( $aItem as $key => $value ) {			if ($value ['category'] == $this->TRAIN) {								foreach ( $aiData ['dataList'] as $k => $v ) {					if ($value ['name'] == $v ['name']) {						array_push ( $accountJson [$this->TRAIN], array (								'aid' => $value ['aid'],								'name' => $value ['name'],								'price' => number_format ( $v ['price'], 2, '.', '' ) 						) );						$sum += $v ['price'];						$trainSum += $v ['price'];						unset ( $aiData ['dataList'] [$k] );						break;					}				}			}		}		$accountJson ['cSum'] = array (				'agencySum' => number_format ( $agencySum, 2, '.', '' ),				'travelSum' => number_format ( $travelSum, 2, '.', '' ),				'trainSum' => number_format ( $trainSum, 2, '.', '' ),				'otherSum' => number_format ( $otherSum, 2, '.', '' ) 		);				// 报销单		$receipt = new receipt ();		$receipt->accountItem = json_encode ( $accountJson );		$receipt->sum = number_format ( $sum, 2, '.', '' );		$receipt->update ( array (				'where' => 'rid=' . $rid 		) );		// print_r($accountJson);		// statistics item 统计写入		$dateArray = explode ( "-", $receiptDetailList ['date'] );		$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];				$accountItem = $accountJson;				$stat = $statistics->getOne ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . $dateCondition,				'asArray' => true 		) );		if (empty ( $stat )) {			$statistics->date = date ( "Y-m-d" );			$statistics->cid = $this->staff [0] ['cid'];			$statistics->staff = $this->staff [0] ['sid'];			$statistics->agPrice = 0;			$statistics->rePrice = $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum'];			$statistics->insert ();		} else {			$statistics->rePrice = $stat ['rePrice'] + $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum'];			$statistics->update ( array (					'where' => 'sid=' . $stat ['sid'] 			) );		}				return "/saeaBorad";	}	function confirmation() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'receiptDetail' );		$receipt = new receipt ();		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'statistics' );		Doo::loadModel ( 'itemStatistics' );		$statistics = new statistics ();		$itemStatistics = new itemStatistics ();		Doo::loadModel ( "verify" );		$verify = new verify ();				$receiptDetailList = $receipt->getOne ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=4 or status=5) and Rtype=1 and rid=' . $rid,				'asArray' => true 		) );		if (empty ( $receiptDetailList ))			return "/saeaBorad";				$verifyDetail = $verify->getOne ( array (				'where' => ' vid =' . $receiptDetailList ['verify'],				'asArray' => true 		) );		$verifyDetail = json_decode ( $verifyDetail ['staff'], true );				if (empty ( $receiptDetailList ['nowStaff'] )) {						$nowStaff = "";			$nowStaffList = array ();			if ($verifyDetail [0] [1] == 'ROLE') {				$vStaffString = json_decode ( $verifyDetail [0] [3] );				foreach ( $vStaffString as $key => $value ) {					$staffK = explode ( "_", $value );					array_push ( $nowStaffList, $staffK [0] );				}				$nowStaff = implode ( ',', $nowStaffList );			} else {				$nowStaff = $verifyDetail [0] [0];			}			$receipt->nowStaff = $nowStaff;		}		// echo $nowStaff;		// print_r($verifyDetail);die;				$receipt->rid = $receiptDetailList ['rid'];				$receipt->status = 2;		$receipt->update ();				// 操作日志		Doo::loadModel ( "receiptLog" );		$receiptLog = new receiptLog ();				$verify = new verify ();				$receiptInfo = $receipt->getOne ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$vr = $verify->getOne ( array (				'where' => 'vid=' . $receiptInfo ['verify'],				'asArray' => true 		) );				$jd = json_decode ( $vr ['staff'] );		$roleId = 0;				foreach ( $jd as $key => $value ) {			if ($value [1] == 'ROLE') {				$pos = strpos ( $value [3], $this->staff [0] ['sid'] );				if ($pos !== false) {					$roleId = $value [0];				}			}		}				// 审批日志		// echo $roleId;die;				if (! empty ( $roleId )) {			Doo::loadModel ( "role" );			$role = new role ();			$roleInfo = $role->getOne ( array (					'where' => 'rid=' . $roleId,					'asArray' => true 			) );						// $receiptLog->rolename = $roleInfo ['name'];		}				$receiptLog->username = $this->staff [0] ['username'];		$receiptLog->uid = $this->staff [0] ['sid'];		$receiptLog->date = date ( "Y-m-d" );		$receiptLog->opinion = '提交审批';		$receiptLog->img = $this->staff [0] ['avatar'];		$receiptLog->status = 2;		$receiptLog->rid = $rid;		$receiptLog->insert ();				return "/expenses";	}	function expenses() {		$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";		if (empty ( $item ))			$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "";				$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : "";				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();				Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		$verify = new verify ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				$condition = "";		if ($item == "expenses")			$condition = " and Rtype=1 ";		elseif ($item == "receipts")			$condition = " and Rtype=0 ";		elseif ($item == "remits")			$condition = " and Rtype=2 ";		elseif ($item == "train")		$condition = " and Rtype=3 ";				$dateCondition = " and Year(date) =" . $year;		if (! empty ( $moth )) {			$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $moth;			$stList = $statistics->getOne ( array (					'select' => 'rePrice ,agPrice',					'where' => ' staff=' . $this->staff [0] ['sid'] . $dateCondition,					'asArray' => true 			) );		} else			$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );				if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);				$noPassSum = $receipt->receiptByYear ( $dateCondition, $this->staff [0] ['sid'] );		if (! isset ( $noPassSum ['sum'] ))			$noPassSum ['sum'] = 0;				$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($noPassSum ['sum']) 		);		$receiptList = $receipt->find ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . $condition . $dateCondition,				'desc' => 'rid',				'asArray' => true 		) );				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $receiptList as $key => $value ) {						$receiptList[$key]['balance']='';			if($value['Rtype']==1){				$receiptList[$key]['balance']=$value['sum']-=$value['loanSum'];				$receiptList[$key]['balanceABS']=abs($receiptList[$key]['balance']);			}elseif($value['Rtype']==3){								$payment=$this->_getReceiptTrainPayment($value['invoiceTrainId'],$value['trainLoanRid'],$value['rid']);				$receiptList[$key]['payment']=$payment;				$receiptList[$key]['paymentABS']=abs($payment);			}									$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;						$receiptList [$key] ['ridKey'] =$XDeode->encode( $value ['rid'] );					}				// print_r($receiptList);die;		$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($moth == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {						if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;				$data ['mothHtml'] = $mothHtml;		$data ['receiptList'] = $receiptList;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'expenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$data ['item'] = $item;		$data ['year'] = $year;				$this->render ( "/admin/expenses", $data );	}	function expensesCollect() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();				Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		$verify = new verify ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				Doo::loadModel ( 'loanReceipt' );		$loanReceipt = new loanReceipt ();				$receiptList = $receipt->find ( array (//去掉				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid,				'desc' => 'rid',				'asArray' => true 		) );				$loanList = $loanReceipt->find ( array (				'where' => 'rid=' . $receiptList [0] ['loanRid'],				'desc' => 'rid',				'asArray' => true 		) );		/*		 * $Locate=0;$roleId=0;$button=0; foreach ($loanList as $key=>$value){ $loanList[$key]['Locate']=$Locate;$Locate++; $loanList[$key]['reviseDetail']=array(); if (!empty($value['reviseDetail'])) $loanList[$key]['reviseDetail']=json_decode($value['reviseDetail'],true); $loanList[$key]['accountItem']=json_decode($value['accountItem'],true); $loanList[$key]['loanItem']=json_decode($value['loanItem'],true); $categoryDetil=$Lcategory->getOne(array('where'=>'cid='.$value['cid'],'asArray'=>true)); $loanList[$key]['category']=$categoryDetil['title']; //检测编辑状态 if ($value['status']==3||$value['status']==1||$value['status']==8||$value['status']==9) $verifyList['staff']=$value['verifyBreakup']; else $verifyList=$verify->getOne(array('where'=>'vid='.$value['verify'],'asArray'=>true)); $verifyList=json_decode($verifyList['staff'],true);//status opinion $verifyStaff=json_decode($value['verifyStaff'],true); Doo::loadModel('role'); $role=new role(); $flag=true;$roleKey=0;$endStaffArray=array();$roleArrayCopy=array(); foreach ($verifyList as $k=>$v){ //init verifyStaff if ($v[1]=='ROLE'){ if (!empty($verifyStaff)){ $endStaffArray=end($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']){ // $roleId=$v[0]; // } } $roleVerify=json_decode($v[3],true); $roleKey=$k;$roleArray=array(); $rolename=$role->getOne(array('where'=>'rid='.$v[0],'asArray'=>true)); foreach ($roleVerify as $o=>$p){ $staffID=explode ('_',$p); $staffInfo=$staff->getOne(array('where'=>'sid='.$staffID[0],'asArray'=>true)); //print_r($staffID); $exp=array(0=>$staffInfo['sid'],1=>$staffID[1],2=>$staffInfo['avatar'],'date'=>'','date'=>'','opinion'=>'','status'=>'','rolename'=>$rolename['name']); array_push($roleArray, $exp); } $roleArrayCopy[$v[0]]=$roleArray; //$verifyList[$k]['roleArray']=$roleArray; } $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; $verifyList[$k]['status']=""; if (empty($verifyStaff)){ $verifyList[$k]['date']=""; $verifyList[$k]['opinion']=""; if (($verifyList[0][0]==$this->staff[0]['sid'])&&$flag){ $verifyList[$k]['status']=4; $flag=false; } }else{ foreach ($verifyStaff as $m=>$u){ if ($v[0]==$m){ $verifyList[$k]['date']=$u['date']; $verifyList[$k]['opinion']=$u['opinion']; $verifyList[$k]['status']=$u['status']; $flag=false; break; } } $endStaffArray=end($verifyStaff); if (isset($endStaffArray['ROLE'])){ }else{ // $endKey=key($verifyStaff); // if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){ // $button=4; // $verifyList[$k]['status']=4; // } } } } $rolename['name']=''; if (!empty($roleId)){ Doo::loadModel('role'); $role=new role(); $rolename=$role->getOne(array('where'=>'rid='.$roleId,'asArray'=>true)); } if (!empty($verifyStaff)) $endStaffArray=end($verifyStaff); $KOP=false; foreach ($roleArrayCopy as $P=>$A){ foreach ( $A as $MKI=>$AVL){ if (!empty($verifyStaff)){ //&&$rolename['rid']==$endStaffArray['nextStaff'] if ($this->staff[0]['sid']==$AVL[0]&&isset($endStaffArray['ROLE'])&&$rolename['rid']==$endStaffArray['nextStaff']){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } foreach ($verifyStaff as $m=>$u){ $AVLFK=$AVL[0].'_R'; //echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>'; if (strcmp($AVLFK,$m)==0){//&&isset($u['ROLE'])&&$u['ROLE']==1 $roleArrayCopy[$P][$MKI]['date']=$u['date']; $roleArrayCopy[$P][$MKI]['opinion']=$u['opinion']; $roleArrayCopy[$P][$MKI]['status']=$u['status']; break; } } }else{ if ($this->staff[0]['sid']==$AVL[0]&&$verifyList[0][1]=='ROLE'){ $button=4; $roleArrayCopy[$P][$MKI]['status']=4; } } //$roleArray[$MKI]['rolename']=$rolename['name']; $KOP=true; } } foreach ($roleArrayCopy as $k=>$v){ foreach ($verifyList as $m=>$n){ if ($n[0]==$k){ array_splice($verifyList,$m,1,$v); } } } $loanList[$key]['verifyList']=$verifyList; $loanList[$key]['staffDetail']=$staff->getOne(array('where'=>'sid='.$value['staff'],'asArray'=>true)); $loanList[$key]['button']=$button; //$loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']); } $data['loanList']=$loanList;		 */		$data ['explanation'] = '';		if (! empty ( $loanList ))			$data ['explanation'] = $loanList [0] ['explanation'];				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 8 || $value ['status'] == 9) {				if ($value ['status'] == 8 && $value ['Rtype'] == 1)					$verifyList ['staff'] = $loanList [0] ['verifyBreakup'];				else					$verifyList ['staff'] = $value ['verifyBreakup'];			} else				$verifyList = $verify->getOne ( array (						'where' => 'vid=' . $value ['verify'],						'asArray' => true 				) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion			$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						// 费用执行人相关数据			$executeCopy = json_decode ( $value ['executeCopy'], true );			$executeStaff = json_decode ( $value ['executeStaff'], true );			foreach ( $executeCopy as $k => $v ) {				$executeCopy [$k] ['date'] = '';				$executeCopy [$k] ['opinion'] = '';				$executeCopy [$k] ['status'] = '';				if (! empty ( $executeStaff ))					foreach ( $executeStaff as $m => $u ) {						if ($v [0] == $m) {							$executeCopy [$k] ['date'] = $u ['date'];							$executeCopy [$k] ['opinion'] = $u ['opinion'];							$executeCopy [$k] ['status'] = $u ['status'];							break;						}					}			}						$receiptList [$key] ['executeCopy'] = $executeCopy;			$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;						$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );			$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );			$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );			$receiptList [$key] ['relust'] = $relust;			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );		}  				Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();		$enclosurList = $enclosur->find ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$enclosurHtml = '';		foreach ( $enclosurList as $value ) {			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';		}				$data ['enclosurHtml'] = $enclosurHtml;				//print_r($receiptList[0]['accountItem']['内部培训费用']);				$data ['receiptList'] = $receiptList;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'expenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				if($receiptList[0]['receiptClass']==2){			$this->render ( "/receipt/feeTraveDetail", $data );			//$this->render ( "/admin/expensesCollect", $data );		}else{			$this->render ( "/admin/expensesCollect", $data );		}			}	function approvalExpenses() {		$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : 0;		$year = $rdate = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;				$receiptOrder=$this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) :"";				// echo $rdate;				if (empty ( $status ))			$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;				$page_size = 8;		$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;				$vidList = array ();		$button = 0;				Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();				// user verify ID		$verifyDetail = $verify->find ( array (				'where' => ' (staff not like "%\"' . $this->staff [0] ['sid'] . '\",\"ROLE%") and (staff like "%[\"' . $this->staff [0] ['sid'] . '\",%" or staff like "%\"' . $this->staff [0] ['sid'] . '\_%" )',				'asArray' => true 		) );		foreach ( $verifyDetail as $key => $value ) {			array_push ( $vidList, $value ['vid'] );		}		$vid = implode ( ",", $vidList );		if (empty ( $verifyDetail ))			$vid = 0;						// if ($status==0)			// $dateCondition="";			// else				$dateCondition = " ";				// if (! empty ( $month ))		// $dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month;		if ($status == 'done' || $status == 'termination') {			if (! empty ( $year )) {				$dateCondition = " and Year(pastDate) =" . $year;				if (! empty ( $month ))					$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $month;			}		} elseif ($status == 'finish') {			if (! empty ( $year )) {				$dateCondition = " and Year(pastDate) =" . $year;				if (! empty ( $month ))					$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $month;			}		}				// date ( 'Y-m' )		// if (! empty ( $rdate ) && $status == 'done')		// $dateCondition = " and date_format(pastDate,'%Y-%m')='" . $rdate . "' ";		// elseif (! empty ( $rdate ))		// $dateCondition = " and date_format(date,'%Y-%m')='" . $rdate . "' ";		$categoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'where' => 'cid=' . $cid,				'asArray' => true 		) );		$cateCondition = "";		$staffCondition = "";		$approvalCondition = "";		if (! empty ( $cid )) {			$cateCondition = ' and cid=' . $cid;		}		if (! empty ( $sid )) {			$staffCondition = ' and cid=' . $cid . ' and staff=' . $sid;			$cateCondition = "";		}				$get = "?year=" . $year . "&month=" . $month . "&cid=" . $cid . "&sid=" . $sid;				if ($status == 'pendApproval') {			$approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )';		}		if ($status == 'ongoing') {			$approvalCondition = ' and (status=2 or status=1 or status=6 or status=4) ';		}		if ($status == 'done') {			$approvalCondition = ' and (status=8 or status=9 )  ';		}		if ($status == 'termination') {			$approvalCondition = " and status=3";		}		if ($status == 'finish') {			$approvalCondition = " and (status=1 or status=8 or status=9 or status=10)";		}				$pageinfo ['page'] = array (				'previous' => '' 		);				if(!empty($receiptOrder)){			$pageinfo = $this->get_page ( "CLD_receipt", ' and receiptOrder like "%' . $receiptOrder . '%"', $page, $page_size, "approvalExpenses/" . $status, $get, "" );			$receiptList = $receipt->find ( array ( // $dateCondition					'where' => 'receiptOrder like "%' . $receiptOrder . '%"',					'desc' => 'rid',					'asArray' => true			) );		}else{			if ($status == 'done' || $status == 'termination' || $status == 'finish') { // $dateCondition .				$pageinfo = $this->get_page ( "CLD_receipt", $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ') and status!=5', $page, $page_size, "approvalExpenses/" . $status, $get, "" );									$receiptList = $receipt->find ( array ( // $dateCondition.						'where' => 'status!=5  ' . $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ')',						'limit' => $pageinfo ['lower'] . ',' . $page_size,						'desc' => 'rid',						'asArray' => true				) );			} else {				$receiptList = $receipt->find ( array ( // $dateCondition						'where' => 'status!=5 ' . $cateCondition . $staffCondition . $approvalCondition . $dateCondition . ' and verify in (' . $vid . ')',						'desc' => 'rid',						'asArray' => true				) );				// echo 'status!=5 ' . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')';			}		}								$rLRes = $receipt->find ( array (				'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )' . $cateCondition . $staffCondition . ' and verify in (' . $vid . ')',				'desc' => 'rid',				'asArray' => true 		) );				// echo 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')';		// print_r($receiptList);				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 7 );				$Locate = 0;		//		$reportList = $reportCateList = array ();		foreach ( $receiptList as $key => $value ) {						$receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] );						$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion			$verifyStaff = json_decode ( $value ['verifyStaff'], true );			foreach ( $verifyList as $k => $v ) {				// init verifyStaff				$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if ($v [0] == $this->staff [0] ['sid']) {						$verifyList [$k] ['status'] = 4;						$button = 4;					}				} else {					$flag = true;					foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}						// elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;}						// if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;}						// if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;}					}					if ($flag) { // 检测可编辑						if ($v [0] == $this->staff [0] ['sid']) {							$verifyList [$k] ['status'] = 4;							$button = 4;						}					}				}			}			$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );						array_push ( $reportList, $receiptList [$key] ['staffDetail'] ['sid'] . '-' . $receiptList [$key] ['staffDetail'] ['username'] . '-' . $receiptList [$key] ['staffDetail'] ['category'] );			array_push ( $reportCateList, $receiptList [$key] ['staffDetail'] ['cid'] . '-' . $receiptList [$key] ['staffDetail'] ['category'] );						$receiptList [$key] ['button'] = $button;			$receiptList [$key] ['nowStaffArray'] = explode ( ',', $value ['nowStaff'] );						//获得培训班结算RID 借款费用--已经锁定			if($value['status']==10){				$trainRD=$receipt->getReceiptByTrainLoanRid($value['rid']);				$receiptList [$key]['trainRidKey7']=$trainRD['ridKey7'];			}		}				$reportList = array_unique ( $reportList );		$reportHtml = '';		foreach ( $reportList as $key => $value ) {			$v = explode ( "-", $value );			$reportHtml .= '<option node-all=\'true\' node-cate=\'' . $v [2] . '\' value="' . $v [1] . '">' . $v [1] . '</option>';		}		// print_r($reportList)		$data ['reportHtml'] = $reportHtml;				$reportCateList = array_unique ( $reportCateList );		$reportCateHtml = '';		foreach ( $reportCateList as $key => $value ) {			$v = explode ( "-", $value );			$reportCateHtml .= '<option value="' . $v [1] . '">' . $v [1] . '</option>';		}		// $reportHtml.='<option value="ALL">'.$value[''].'</option>';		$data ['reportCateHtml'] = $reportCateHtml;				// print_r($receiptList);die;		// $data['verifyDetail']=$verifyDetail;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="0' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="0' . $i . '">' . $i . '月</option>';		}		$data ['mothHtml'] = $mothHtml;				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {						if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;				$data ['page'] = $pageinfo;		$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $rLRes );		$data ['status'] = $status;		$data ['year'] = $year;		$data ['month'] = $month;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;				// print_r($receiptList);				$data['receiptOrder']=$receiptOrder;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approvalExpenses';		$data ['verifyId'] = $this->verifyId;				$data ['executeId'] = $this->executeId;		$this->render ( "/admin/approvalExpenses", $data );	}	private function _expensesDoc(){		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		if (! empty ( $rid ) && ! is_numeric ( $rid ))			$rid = $XDeode->decode ( $rid );		if (! is_numeric ( $rid ))			die ( 'illegal request' );				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();				Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		$verify = new verify ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				Doo::loadModel ( 'loanReceipt' );		$loanReceipt = new loanReceipt ();				$receiptList = $receipt->find ( array (				'where' => ' rid=' . $rid,				'desc' => 'rid',				'asArray' => true 		) );				$loanList = array ();		if (! empty ( $receiptList ))			$loanList = $loanReceipt->find ( array (					'where' => 'rid=' . $receiptList [0] ['loanRid'],					'desc' => 'rid',					'asArray' => true 			) );				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $loanList as $key => $value ) {			$loanList [$key] ['Locate'] = $Locate;			$Locate ++;			$loanList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$loanList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$loanList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$loanList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$loanList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 8 || $value ['status'] == 9)				$verifyList ['staff'] = $value ['verifyBreakup'];			else				$verifyList = $verify->getOne ( array (						'where' => 'vid=' . $value ['verify'],						'asArray' => true 				) );						$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion			$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$loanList [$key] ['verifyList'] = $verifyList;			$loanList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$loanList [$key] ['button'] = $button;						//$loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']);		}		$data ['loanList'] = $loanList;				//print_r($loanList);				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 9) {				$verifyList ['staff'] = $value ['verifyBreakup'];			} else				$verifyList = $verify->getOne ( array (						'where' => 'vid=' . $value ['verify'],						'asArray' => true 				) );						$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						if ($verifyList == NULL)				$verifyList = array ();			$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$FC = @$rolename ['name'];			$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						// 费用执行人相关数据			$executeCopy = json_decode ( $value ['executeCopy'], true );			$executeStaff = json_decode ( $value ['executeStaff'], true );			foreach ( $executeCopy as $k => $v ) {				$executeCopy [$k] ['date'] = '';				$executeCopy [$k] ['opinion'] = '';				$executeCopy [$k] ['status'] = '';				if (! empty ( $executeStaff ))					foreach ( $executeStaff as $m => $u ) {						if ($v [0] == $m) {							$executeCopy [$k] ['date'] = $u ['date'];							$executeCopy [$k] ['opinion'] = $u ['opinion'];							$executeCopy [$k] ['status'] = $u ['status'];							break;						}					}			}			$receiptList [$key] ['executeCopy'] = $executeCopy;			// print_r($verifyList);			$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;						$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );			$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );						$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );			$receiptList [$key] ['relust'] = $relust;			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );		}				// print_r($receiptList);				// 获取审批日志		Doo::loadModel ( 'receiptLog' );		$receiptLog = new receiptLog ();				$rlList = array ();		$rlInfo = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=4',				'asArray' => true 		) );//		$tijdate = $receiptLog->getOne ( array (//				'where' => 'rid=' . $rid . ' and status=2',//				'asc' => 'rlid',//				'asArray' => true//		) );		if (! empty ( $rlInfo )) {			$rlList = $receiptLog->find ( array (					'where' => 'rid=' . $rid,					'asc' => 'rlid',					'asArray' => true 			) );		}        $RN=array();		if (!empty( $rolename ['staff'])){            $RN = @json_decode ( $rolename ['staff'] );        }		//		foreach ( $rlList as $key => $value ) {			$rlList [$key] ['rolename'] = '';			foreach ( $RN as $k => $v ) {				$id = explode ( "_", $v );								if ($id [0] == $value ['uid']) {										$rlList [$key] ['rolename'] = $FC;					break;				}			}		}				Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();		$enclosurList = $enclosur->find ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$enclosurHtml = '';		foreach ( $enclosurList as $value ) {			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';		}				$data ['enclosurHtml'] = $enclosurHtml;		$receiptList [0] ['rlList'] = $rlList;		$data ['receiptList'] = $receiptList;				// print_r($receiptList);				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'approvalExpenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		return $data;	}	function expensesDoc() {		$data=$this->_expensesDoc();// 		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : '';		// 		Doo::loadClass ( 'XDeode' );// 		$XDeode = new XDeode ( 5 );// 		if (! empty ( $rid ) && ! is_numeric ( $rid ))// 			$rid = $XDeode->decode ( $rid );// 		if (! is_numeric ( $rid ))// 			die ( 'illegal request' );		// 		Doo::loadModel ( 'receipt' );// 		$receipt = new receipt ();		// 		Doo::loadModel ( 'L_category' );// 		$Lcategory = new L_category ();// 		Doo::loadModel ( 'verify' );// 		Doo::loadModel ( 'statistics' );// 		$statistics = new statistics ();// 		$verify = new verify ();// 		Doo::loadModel ( 'staff' );// 		$staff = new staff ();		// 		Doo::loadModel ( 'loanReceipt' );// 		$loanReceipt = new loanReceipt ();		// 		$receiptList = $receipt->find ( array (// 				'where' => ' rid=' . $rid,// 				'desc' => 'rid',// 				'asArray' => true // 		) );		// 		$loanList = array ();// 		if (! empty ( $receiptList ))// 			$loanList = $loanReceipt->find ( array (// 					'where' => 'rid=' . $receiptList [0] ['loanRid'],// 					'desc' => 'rid',// 					'asArray' => true // 			) );		// 		$Locate = 0;// 		$roleId = 0;// 		$button = 0;// 		foreach ( $loanList as $key => $value ) {// 			$loanList [$key] ['Locate'] = $Locate;// 			$Locate ++;// 			$loanList [$key] ['reviseDetail'] = array ();// 			if (! empty ( $value ['reviseDetail'] ))// 				$loanList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );// 			$loanList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );// 			$loanList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );// 			$categoryDetil = $Lcategory->getOne ( array (// 					'where' => 'cid=' . $value ['cid'],// 					'asArray' => true // 			) );// 			$loanList [$key] ['category'] = $categoryDetil ['title'];			// 			// 检测编辑状态// 			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 8 || $value ['status'] == 9)// 				$verifyList ['staff'] = $value ['verifyBreakup'];// 			else// 				$verifyList = $verify->getOne ( array (// 						'where' => 'vid=' . $value ['verify'],// 						'asArray' => true // 				) );			// 			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion// 			$verifyStaff = json_decode ( $value ['verifyStaff'], true );			// 			Doo::loadModel ( 'role' );// 			$role = new role ();			// 			$flag = true;// 			$roleKey = 0;// 			$endStaffArray = array ();// 			$roleArrayCopy = array ();// 			foreach ( $verifyList as $k => $v ) {// 				// init verifyStaff				// 				if ($v [1] == 'ROLE') {					// 					if (! empty ( $verifyStaff )) {// 						$endStaffArray = end ( $verifyStaff );// 						// if ($v[0]==$endStaffArray['nextStaff']){// 						// $roleId=$v[0];// 						// }// 					}					// 					$roleVerify = json_decode ( $v [3], true );// 					$roleKey = $k;// 					$roleArray = array ();// 					$rolename = $role->getOne ( array (// 							'where' => 'rid=' . $v [0],// 							'asArray' => true // 					) );					// 					foreach ( $roleVerify as $o => $p ) {// 						$staffID = explode ( '_', $p );// 						$staffInfo = $staff->getOne ( array (// 								'where' => 'sid=' . $staffID [0],// 								'asArray' => true // 						) );// 						// print_r($staffID);// 						$exp = array (// 								0 => $staffInfo ['sid'],// 								1 => $staffID [1],// 								2 => $staffInfo ['avatar'],// 								'date' => '',// 								'date' => '',// 								'opinion' => '',// 								'status' => '',// 								'rolename' => $rolename ['name'] // 						);// 						array_push ( $roleArray, $exp );// 					}// 					$roleArrayCopy [$v [0]] = $roleArray;// 					// $verifyList[$k]['roleArray']=$roleArray;// 				}				// 				$verifyList [$k] ['date'] = "";// 				$verifyList [$k] ['opinion'] = "";// 				$verifyList [$k] ['status'] = "";// 				if (empty ( $verifyStaff )) {// 					$verifyList [$k] ['date'] = "";// 					$verifyList [$k] ['opinion'] = "";// 					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {// 						$verifyList [$k] ['status'] = 4;// 						$flag = false;// 					}// 				} else {					// 					foreach ( $verifyStaff as $m => $u ) {// 						if ($v [0] == $m) {// 							$verifyList [$k] ['date'] = $u ['date'];// 							$verifyList [$k] ['opinion'] = $u ['opinion'];// 							$verifyList [$k] ['status'] = $u ['status'];// 							$flag = false;// 							break;// 						}// 					}					// 					$endStaffArray = end ( $verifyStaff );// 					if (isset ( $endStaffArray ['ROLE'] )) {// 					} else {// 						// $endKey=key($verifyStaff);// 						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){// 						// $button=4;// 						// $verifyList[$k]['status']=4;// 						// }// 					}// 				}// 			}			// 			$rolename ['name'] = '';// 			if (! empty ( $roleId )) {// 				Doo::loadModel ( 'role' );// 				$role = new role ();// 				$rolename = $role->getOne ( array (// 						'where' => 'rid=' . $roleId,// 						'asArray' => true // 				) );// 			}			// 			if (! empty ( $verifyStaff ))// 				$endStaffArray = end ( $verifyStaff );			// 			$KOP = false;// 			foreach ( $roleArrayCopy as $P => $A ) {				// 				foreach ( $A as $MKI => $AVL ) {// 					if (! empty ( $verifyStaff )) {// 						// &&$rolename['rid']==$endStaffArray['nextStaff']// 						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {// 							$button = 4;// 							$roleArrayCopy [$P] [$MKI] ['status'] = 4;// 						}						// 						foreach ( $verifyStaff as $m => $u ) {// 							$AVLFK = $AVL [0] . '_R';// 							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';							// 							if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1// 								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];// 								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];// 								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];								// 								break;// 							}// 						}// 					} else {						// 						if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {// 							$button = 4;// 							$roleArrayCopy [$P] [$MKI] ['status'] = 4;// 						}// 					}// 					// $roleArray[$MKI]['rolename']=$rolename['name'];// 					$KOP = true;// 				}// 			}			// 			foreach ( $roleArrayCopy as $k => $v ) {// 				foreach ( $verifyList as $m => $n ) {// 					if ($n [0] == $k) {// 						array_splice ( $verifyList, $m, 1, $v );// 					}// 				}// 			}			// 			$loanList [$key] ['verifyList'] = $verifyList;// 			$loanList [$key] ['staffDetail'] = $staff->getOne ( array (// 					'where' => 'sid=' . $value ['staff'],// 					'asArray' => true // 			) );// 			$loanList [$key] ['button'] = $button;			// 			//$loanList[$key]['sumCN']=$this->NumToCNMoney($value['sum']);// 		}// 		$data ['loanList'] = $loanList;		// 		//print_r($loanList);		// 		$Locate = 0;// 		$roleId = 0;// 		$button = 0;// 		foreach ( $receiptList as $key => $value ) {// 			$receiptList [$key] ['Locate'] = $Locate;// 			$Locate ++;// 			$receiptList [$key] ['reviseDetail'] = array ();// 			if (! empty ( $value ['reviseDetail'] ))// 				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );// 			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );// 			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );// 			$categoryDetil = $Lcategory->getOne ( array (// 					'where' => 'cid=' . $value ['cid'],// 					'asArray' => true // 			) );// 			$receiptList [$key] ['category'] = $categoryDetil ['title'];			// 			// 检测编辑状态// 			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 9) {// 				$verifyList ['staff'] = $value ['verifyBreakup'];// 			} else// 				$verifyList = $verify->getOne ( array (// 						'where' => 'vid=' . $value ['verify'],// 						'asArray' => true // 				) );			// 			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion			// 			$verifyStaff = json_decode ( $value ['verifyStaff'], true );			// 			Doo::loadModel ( 'role' );// 			$role = new role ();			// 			if ($verifyList == NULL)// 				$verifyList = array ();// 			$flag = true;// 			$roleKey = 0;// 			$endStaffArray = array ();// 			$roleArrayCopy = array ();// 			foreach ( $verifyList as $k => $v ) {// 				// init verifyStaff				// 				if ($v [1] == 'ROLE') {					// 					if (! empty ( $verifyStaff )) {// 						$endStaffArray = end ( $verifyStaff );// 						// if ($v[0]==$endStaffArray['nextStaff']){// 						// $roleId=$v[0];// 						// }// 					}					// 					$roleVerify = json_decode ( $v [3], true );// 					$roleKey = $k;// 					$roleArray = array ();// 					$rolename = $role->getOne ( array (// 							'where' => 'rid=' . $v [0],// 							'asArray' => true // 					) );					// 					foreach ( $roleVerify as $o => $p ) {// 						$staffID = explode ( '_', $p );// 						$staffInfo = $staff->getOne ( array (// 								'where' => 'sid=' . $staffID [0],// 								'asArray' => true // 						) );// 						// print_r($staffID);// 						$exp = array (// 								0 => $staffInfo ['sid'],// 								1 => $staffID [1],// 								2 => $staffInfo ['avatar'],// 								'date' => '',// 								'date' => '',// 								'opinion' => '',// 								'status' => '',// 								'rolename' => $rolename ['name'] // 						);// 						array_push ( $roleArray, $exp );// 					}// 					$roleArrayCopy [$v [0]] = $roleArray;// 					// $verifyList[$k]['roleArray']=$roleArray;// 				}				// 				$verifyList [$k] ['date'] = "";// 				$verifyList [$k] ['opinion'] = "";// 				$verifyList [$k] ['status'] = "";// 				if (empty ( $verifyStaff )) {// 					$verifyList [$k] ['date'] = "";// 					$verifyList [$k] ['opinion'] = "";// 					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {// 						$verifyList [$k] ['status'] = 4;// 						$flag = false;// 					}// 				} else {					// 					foreach ( $verifyStaff as $m => $u ) {// 						if ($v [0] == $m) {// 							$verifyList [$k] ['date'] = $u ['date'];// 							$verifyList [$k] ['opinion'] = $u ['opinion'];// 							$verifyList [$k] ['status'] = $u ['status'];// 							$flag = false;// 							break;// 						}// 					}					// 					$endStaffArray = end ( $verifyStaff );// 					if (isset ( $endStaffArray ['ROLE'] )) {// 					} else {// 						// $endKey=key($verifyStaff);// 						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){// 						// $button=4;// 						// $verifyList[$k]['status']=4;// 						// }// 					}// 				}// 			}			// 			$FC = @$rolename ['name'];// 			$rolename ['name'] = '';// 			if (! empty ( $roleId )) {// 				Doo::loadModel ( 'role' );// 				$role = new role ();// 				$rolename = $role->getOne ( array (// 						'where' => 'rid=' . $roleId,// 						'asArray' => true // 				) );// 			}			// 			if (! empty ( $verifyStaff ))// 				$endStaffArray = end ( $verifyStaff );			// 			$KOP = false;// 			foreach ( $roleArrayCopy as $P => $A ) {				// 				foreach ( $A as $MKI => $AVL ) {// 					if (! empty ( $verifyStaff )) {// 						// &&$rolename['rid']==$endStaffArray['nextStaff']// 						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {// 							$button = 4;// 							$roleArrayCopy [$P] [$MKI] ['status'] = 4;// 						}						// 						foreach ( $verifyStaff as $m => $u ) {// 							$AVLFK = $AVL [0] . '_R';// 							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';							// 							if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1// 								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];// 								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];// 								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];								// 								break;// 							}// 						}// 					} else {						// 						if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {// 							$button = 4;// 							$roleArrayCopy [$P] [$MKI] ['status'] = 4;// 						}// 					}// 					// $roleArray[$MKI]['rolename']=$rolename['name'];// 					$KOP = true;// 				}// 			}			// 			foreach ( $roleArrayCopy as $k => $v ) {// 				foreach ( $verifyList as $m => $n ) {// 					if ($n [0] == $k) {// 						array_splice ( $verifyList, $m, 1, $v );// 					}// 				}// 			}			// 			// 费用执行人相关数据// 			$executeCopy = json_decode ( $value ['executeCopy'], true );// 			$executeStaff = json_decode ( $value ['executeStaff'], true );// 			foreach ( $executeCopy as $k => $v ) {// 				$executeCopy [$k] ['date'] = '';// 				$executeCopy [$k] ['opinion'] = '';// 				$executeCopy [$k] ['status'] = '';// 				if (! empty ( $executeStaff ))// 					foreach ( $executeStaff as $m => $u ) {// 						if ($v [0] == $m) {// 							$executeCopy [$k] ['date'] = $u ['date'];// 							$executeCopy [$k] ['opinion'] = $u ['opinion'];// 							$executeCopy [$k] ['status'] = $u ['status'];// 							break;// 						}// 					}// 			}// 			$receiptList [$key] ['executeCopy'] = $executeCopy;// 			// print_r($verifyList);// 			$receiptList [$key] ['verifyList'] = $verifyList;// 			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (// 					'where' => 'sid=' . $value ['staff'],// 					'asArray' => true // 			) );// 			$receiptList [$key] ['button'] = $button;			// 			$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );// 			$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );			// 			$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );// 			$receiptList [$key] ['relust'] = $relust;// 			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );// 		}		// 		// print_r($receiptList);		// 		// 获取审批日志// 		Doo::loadModel ( 'receiptLog' );// 		$receiptLog = new receiptLog ();		// 		$rlList = array ();// 		$rlInfo = $receiptLog->getOne ( array (// 				'where' => 'rid=' . $rid . ' and status=4',// 				'asArray' => true // 		) );// //		$tijdate = $receiptLog->getOne ( array (// //				'where' => 'rid=' . $rid . ' and status=2',// //				'asc' => 'rlid',// //				'asArray' => true// //		) );// 		if (! empty ( $rlInfo )) {// 			$rlList = $receiptLog->find ( array (// 					'where' => 'rid=' . $rid,// 					'asc' => 'rlid',// 					'asArray' => true // 			) );// 		}//         $RN=array();// 		if (!empty( $rolename ['staff'])){//             $RN = @json_decode ( $rolename ['staff'] );//         }// 		//// 		foreach ( $rlList as $key => $value ) {// 			$rlList [$key] ['rolename'] = '';// 			foreach ( $RN as $k => $v ) {// 				$id = explode ( "_", $v );				// 				if ($id [0] == $value ['uid']) {					// 					$rlList [$key] ['rolename'] = $FC;// 					break;// 				}// 			}// 		}		// 		Doo::loadModel ( 'enclosur' );// 		$enclosur = new enclosur ();// 		$enclosurList = $enclosur->find ( array (// 				'where' => 'rid=' . $rid,// 				'asArray' => true // 		) );// 		$enclosurHtml = '';// 		foreach ( $enclosurList as $value ) {// 			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';// 		}		// 		$data ['enclosurHtml'] = $enclosurHtml;// 		$receiptList [0] ['rlList'] = $rlList;// 		$data ['receiptList'] = $receiptList;		// 		// print_r($receiptList);		// 		$data ['memu'] = "receipt";// 		$data ['staff'] = $this->staff;		// 		$data ['receiptMemu'] = 'approvalExpenses';// 		$data ['verifyId'] = $this->verifyId;// 		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/expensesDoc", $data );	}	function expensesDocPrint(){		$data=$this->_expensesDoc();		$this->render ( "/receipt/expensesDocPrint", $data );	}	function expensesEdi() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;				if (empty ( $status ))			$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;				$vidList = array ();		$button = 0;				Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'staff' );		$staff = new staff ();		$receipt = new receipt ();		$verify = new verify ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();				// user verify ID		$verifyDetail = $verify->find ( array (				'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',				'asArray' => true 		) );		foreach ( $verifyDetail as $key => $value ) {			array_push ( $vidList, $value ['vid'] );		}		$vid = implode ( ",", $vidList );		if (empty ( $verifyDetail ))			$vid = 0;				$categoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'where' => 'cid=' . $cid,				'asArray' => true 		) );				$ap = "";		if ($status == 4) {			$ap = 4;			$status = 2;		}				// get Receipt By verifyID status 2		$receiptList = $receipt->find ( array (				'where' => 'rid =' . $rid . ' and status=2',				'desc' => 'rid',				'asArray' => true 		) );				if (empty ( $receiptList )) {			die ( 'illegal request' );		}				$Locate = 0;		$roleId = 0;		if ($ap == 4)			$status = 4;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						// print_r($verifyList);			$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff']) {							$roleId = $v [0];						}					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}				// print_r($roleArray);								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$button = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						$endKey = key ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {							$button = 4;							$verifyList [$k] ['status'] = 4;						}					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}			// print_r($roleArrayCopy);			// echo $roleKey;						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;			$receiptList [$key] ['BIGsum'] = $this->num_to_rmb ( $value ['sum'] );		}				// $data['verifyDetail']=$verifyDetail;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				// 获取审批日志		Doo::loadModel ( 'receiptLog' );		$receiptLog = new receiptLog ();				$rlList = array ();		$rlInfo = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=4',				'asArray' => true 		) );		$tijdate = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=2',				'asc' => 'rlid',				'asArray' => true 		) );		if (! empty ( $rlInfo )) {			$rlList = $receiptLog->find ( array (					'where' => 'rid=' . $rid,					'asc' => 'rlid',					'asArray' => true 			) );		}				$receiptList [0] ['rlList'] = $rlList;				$enclosurList = $enclosur->find ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$enclosurHtml = '';		foreach ( $enclosurList as $value ) {			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';		}				// print_r($receiptList);				$data ['rid'] = $rid;		$data ['enclosurHtml'] = $enclosurHtml;		$data ['rolename'] = $rolename ['name'];		$data ['datetij'] = $tijdate ['date'];		$data ['mothHtml'] = $mothHtml;				$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $receiptList );		$data ['status'] = $status;		$data ['year'] = $year;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;		$data ['ap'] = $ap;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approvalExpenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/expensesEdi", $data );	}	function expensesDefray() {		$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";		$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;		$Locate = $this->get_args ( 'Locate' ) && is_numeric ( $this->get_args ( 'Locate' ) ) ? $this->get_args ( 'Locate' ) : 0;				$amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : 0;				if (! empty ( $rid )) {						Doo::loadModel ( "verify" );			$verify = new verify ();			Doo::loadModel ( "receiptDetail" );			$receiptDetailObj = new receiptDetail ();			Doo::loadModel ( "itemStatistics" );			Doo::loadModel ( "statistics" );			$statistics = new statistics ();			$itemStatistics = new itemStatistics ();						Doo::loadModel ( "receipt" );			$receipt = new receipt ();						Doo::loadModel ( "loanReceipt" );			$loanReceipt = new loanReceipt ();						$receiptDetail = $receipt->getOne ( array (					'where' => 'rid=' . $rid . ' and status=2 ',					'asArray' => true 			) );						$nslist = explode ( ',', $receiptDetail ['nowStaff'] );			$nsflag = true;			foreach ( $nslist as $value ) {				if ($value == $this->staff ['0'] ['sid']) {					$nsflag = false;					break;				}			}			// print_r($nslist);die;						if (empty ( $receiptDetail ) || $nsflag)				return "/approvalExpenses/pendApproval";						$verifyDetail = $verify->getOne ( array (					'where' => ' vid =' . $receiptDetail ['verify'],					'asArray' => true 			) );			$verifyString = $verifyDetail ['staff'];			$verifyDetail = json_decode ( $verifyDetail ['staff'], true );						$verifyStaff = json_decode ( $receiptDetail ['verifyStaff'], true );						if (empty ( $opinion )) {				if ($status == 3)					$opinion = "终止";				else					$opinion = "同意支付";			}						$nowStaff = 0;			$nowStaffList = array ();						if (empty ( $verifyStaff )) {								// 还需加入是否已经进入角色审批				if ($verifyDetail [0] [1] == 'ROLE') {										// print_r($verifyDetail);echo "ddd";					$vStaffString = json_decode ( $verifyDetail [0] [3] );										foreach ( $vStaffString as $key => $value ) {						$staffK = explode ( "_", $value );						if ($staffK [0] != $this->staff [0] ['sid'])							array_push ( $nowStaffList, $staffK [0] );					}										// print_r($verifyDetail);					// die;					if (! empty ( $nowStaffList )) {						$nowStaff = implode ( ',', $nowStaffList );						$verifyStaff = array (								$this->staff [0] ['sid'] . "_R" => array (										'date' => date ( 'Y-m-d' ),										'opinion' => $opinion,										'status' => $status,										'nextStaff' => $verifyDetail [0] [0],										'ROLE' => 1 								) 						);					} else {						$nowStaff = $verifyDetail [1] [0];						$verifyStaff = array (								$this->staff [0] ['sid'] . "_R" => array (										'date' => date ( 'Y-m-d' ),										'opinion' => $opinion,										'status' => $status,										'nextStaff' => $verifyDetail [1] [0] 								) 						);					}				} else {										if ($verifyDetail [1] [1] == 'ROLE') {						$vStaffString = json_decode ( $verifyDetail [1] [3] );						// echo "dd";						foreach ( $vStaffString as $key => $value ) {							$staffK = explode ( "_", $value );							array_push ( $nowStaffList, $staffK [0] );						}						$nowStaff = implode ( ',', $nowStaffList );						$verifyStaff = array (								$this->staff [0] ['sid'] => array (										'date' => date ( 'Y-m-d' ),										'opinion' => $opinion,										'status' => $status,										'nextStaff' => $verifyDetail [1] [0],										'ROLE' => 1 								) 						);					} else {						$nowStaff = $verifyDetail [1] [0];						$verifyStaff = array (								$this->staff [0] ['sid'] => array (										'date' => date ( 'Y-m-d' ),										'opinion' => $opinion,										'status' => $status,										'nextStaff' => $verifyDetail [1] [0] 								) 						);					}				}								if ($status == 3)					$verifyStaff = array (							'final' => $status,							$this->staff [0] ['sid'] => array (									'date' => date ( 'Y-m-d' ),									'opinion' => $opinion,									'status' => $status 							) 					);								$vStaffString = json_encode ( $verifyStaff );				$receipt->nowStaff = $nowStaff;				$receipt->verifyStaff = $vStaffString;								$loanReceipt->nowStaff = $nowStaff;				$loanReceipt->verifyStaff = $vStaffString;			} else {				$VS = end ( $verifyStaff );								// 非角色审批				if (! array_key_exists ( $this->staff [0] ['sid'], $verifyStaff ) && ! isset ( $VS ['ROLE'] )) {					$nextStaff = 0;					$roleSTF = false;					foreach ( $verifyDetail as $key => $value ) {						if ($value [0] == $this->staff [0] ['sid'] && $value [1] != 'ROLE') {							if (isset ( $verifyDetail [$key + 1] )) {								$nextStaff = $verifyDetail [$key + 1] [0];								if ($verifyDetail [$key + 1] [1] == 'ROLE')									$roleSTF = true;							}							break;						}					}										if (! $roleSTF) {						$nowStaff = $nextStaff;						$verifyStaff [$this->staff [0] ['sid']] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status,								'nextStaff' => $nextStaff 						);					} else {						// 获取角色下的所有用户ID						$nowStaffList = array ();						foreach ( $verifyDetail as $vfk ) {							if ($vfk [1] == 'ROLE') {								$vStaffString = json_decode ( $vfk [3] );								foreach ( $vStaffString as $key => $value ) {									$staffK = explode ( "_", $value );									array_push ( $nowStaffList, $staffK [0] );								}							}						}												$nowStaff = implode ( ',', $nowStaffList );						$verifyStaff [$this->staff [0] ['sid']] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status,								'nextStaff' => $nextStaff,								'ROLE' => 0 						);					}										if ($status == 3) {						$verifyStaff ['final'] = $status;						$verifyStaff [$this->staff [0] ['sid']] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status 						);					}					$vStaffString = json_encode ( $verifyStaff );					$receipt->nowStaff = $nowStaff;					$receipt->verifyStaff = $vStaffString;										$loanReceipt->nowStaff = $nowStaff;					$loanReceipt->verifyStaff = $vStaffString;				}								// 角色审批				if (isset ( $VS ['ROLE'] )) {										// 找出角色人 当前审批角色组					$verifyJSStaff = array ();					$nowStaffList2 = array ();					foreach ( $verifyDetail as $key => $value ) {						if ($value [1] == 'ROLE' && $value [0] == $VS ['nextStaff']) {							$verifyJSStaff = json_decode ( $value [3] );							foreach ( $verifyJSStaff as $m ) {								$staffK = explode ( "_", $m );								array_push ( $nowStaffList2, $staffK [0] );							}							// print_r($nowStaffList2);						}					}										$RoleVerifyStaff = array ();					foreach ( $verifyStaff as $key => $value ) {						if (isset ( $value ['ROLE'] ) && $value ['ROLE'] == 1 && $VS ['nextStaff'] == $value ['nextStaff']) {							foreach ( $nowStaffList2 as $m ) {								if ($key == $m . "_R")									$RoleVerifyStaff [$key] = $value;							}						}					}										$jsCount = count ( $verifyJSStaff ) - 1; // echo $jsCount;die;					if ($jsCount == count ( $RoleVerifyStaff )) { // 或者					                                              // 下一个审批人ID												$nextStaff = 0;						$falg = false;						foreach ( $verifyDetail as $key => $value ) {							if ($value [0] == $VS ['nextStaff'] && $value [1] == 'ROLE') {																if (isset ( $verifyDetail [$key + 1] ) && $verifyDetail [$key + 1] [1] == 'ROLE') {									$falg = true;									$vStaffString = json_decode ( $verifyDetail [$key + 1] [3] );									$nowStaffList = array ();									foreach ( $vStaffString as $v ) {										$staffK = explode ( "_", $v );										array_push ( $nowStaffList, $staffK [0] );									}									$nowStaff = implode ( ',', $nowStaffList );																		$nextStaff = $verifyDetail [$key + 1] [0];								} elseif (isset ( $verifyDetail [$key + 1] )) {									$nextStaff = $verifyDetail [$key + 1] [0];									$nowStaff = $nextStaff;								} else									$nowStaff = '';								break;							}						}												if ($falg)							$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (									'date' => date ( 'Y-m-d' ),									'opinion' => $opinion,									'status' => $status,									'nextStaff' => $nextStaff,									'ROLE' => 1 							);						else							$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (									'date' => date ( 'Y-m-d' ),									'opinion' => $opinion,									'status' => $status,									'nextStaff' => $nextStaff 							);												// print_r($verifyStaff);						// echo $nowStaff;die;					} else { // 进入下一个角色或者审批人					         						$nowStaff = str_replace ( $this->staff [0] ['sid'], '', $receiptDetail ['nowStaff'] );												$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status,								'nextStaff' => $VS ['nextStaff'],								'ROLE' => 1 						);					}										if ($status == 3) {						$verifyStaff ['final'] = $status;						$verifyStaff [$this->staff [0] ['sid']] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status 						);					}					$vStaffString = json_encode ( $verifyStaff );					$receipt->verifyStaff = $vStaffString;					$receipt->nowStaff = $nowStaff;										$loanReceipt->nowStaff = $nowStaff;					$loanReceipt->verifyStaff = $vStaffString;									}				// print_r($verifyStaff);die;			}						$roleKey = 0;			$roleId = 0;			$verifyDetailCopy = array ();			foreach ( $verifyDetail as $k => $v ) {				if ($v [1] == 'ROLE') {					$roleId = $v [0];					$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$exp = array (								0 => $staffID [0],								1 => $staffID [1] 						);						array_push ( $roleArray, $exp );					}					$verifyDetailCopy [$v [0]] = $roleArray;				}			}			// print_r($verifyDetail);			foreach ( $verifyDetailCopy as $k => $v ) {				foreach ( $verifyDetail as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyDetail, $m, 1, $v );					}				}			}						// 审批日志			if (! isset ( $verifyStaff ['final'] )) {				Doo::loadModel ( "receiptLog" );				$receiptLog = new receiptLog ();								if (! empty ( $roleId )) {					Doo::loadModel ( "role" );					$role = new role ();					$roleInfo = $role->getOne ( array (							'where' => 'rid=' . $roleId,							'asArray' => true 					) );										$receiptLog->rolename = $roleInfo ['name'];				}								$receiptLog->username = $this->staff [0] ['username'];				$receiptLog->uid = $this->staff [0] ['sid'];				$receiptLog->date = date ( "Y-m-d" );				$receiptLog->opinion = $opinion;				$receiptLog->img = $this->staff [0] ['avatar'];				$receiptLog->status = 1;				$receiptLog->rid = $rid;				$receiptLog->insert ();			}						if (isset ( $verifyStaff ['final'] )) { // rDetail				$receipt->status = 3;				$receipt->verifyBreakup = $verifyString;				$receiptDetailObj->status = 3;				$receiptDetailObj->update ( array (						'where' => 'rid=' . $rid 				) );								// 微信企业号通知				$this->setWXMsg ( $rid, 3 );			} elseif (count ( $verifyStaff ) == count ( $verifyDetail )) { // 要修改 角色的数量				$receipt->status = 6;				$receipt->pastDate = date ( "Y-m-d" );				$receipt->isBK = 1;				$loanReceipt->verifyBreakup = $verifyString;								$loanReceipt->status = 1;				$loanReceipt->pastDate = date ( "Y-m-d" );								//生成流水后 不更新汇款金额				Doo::loadModel ( 'wasteBook' );				$wasteBook = new wasteBook ();				$wbDetail = $wasteBook->getWateBookByAD ( 1, $rid );				if (empty($wbDetail)){					$loanReceipt->amount = $receiptDetail ['amount'];				}												$loanReceipt->update ( array (						'where' => ' rid = ' . $receiptDetail ['loanRid'] 				) );								// 微信企业号通知				$this->setWXMsg ( $rid, 1 );			}						$receipt->amount = $receiptDetail['sum'];			$receipt->update ( array (					'where' => ' rid = ' . $rid 			) );						// 进入下一条审批费用新加需求			$vidList = array ();			$verifyDetail = $verify->find ( array (					'where' => ' (staff not like "%\"' . $this->staff [0] ['sid'] . '\",\"ROLE%") and (staff like "%[\"' . $this->staff [0] ['sid'] . '\",%" or staff like "%\"' . $this->staff [0] ['sid'] . '\_%" )',					'asArray' => true 			) );			foreach ( $verifyDetail as $key => $value ) {				array_push ( $vidList, $value ['vid'] );			}			$vid = implode ( ",", $vidList );			if (empty ( $verifyDetail ))				$vid = 0;						$approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )';			$receipt = new receipt ();			$rd = $receipt->getOne ( array (					'where' => 'status!=5 ' . $approvalCondition . ' and verify in(' . $vid . ')',					'asc' => 'rid',					'asArray' => true 			) );						if (empty ( $rd )) {				return '/approvalExpenses/pendApproval';			}			if ($rd ['Rtype'] == 1) {				if ($rd ['isBK'] == 1) {					return '/receiptburEdi/' . $rd ['rid'];				} else {					return '/expensesEdi/' . $rd ['rid'];				}			} elseif ($rd ['Rtype'] == 2) {				return '/remitApproval/' . $rd ['rid'];			} else {				return '/receiptburEdi/' . $rd ['rid'];			}			// return "/approvalExpenses/pendApproval";		}	}	function ajaxExamineExe() {		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		if (! empty ( $rid )) {						$rLRes = $receipt->find ( array (					'where' => 'executeCopy like \'%["' . $this->staff [0] ['sid'] . '%\' and executeStaff not like \'%{"' . $this->staff [0] ['sid'] . '%\' and (status=1 or status=6) and rid!=' . $rid,					'asArray' => true 			) );			$rLRes [0] ['ridKey'] = $XDeode->encode ( $rLRes [0] ['rid'] );			echo json_encode ( array (					'status' => 1,					'receipt' => $rLRes [0] 			) );			die ();		}		echo json_encode ( array (				'status' => 0,				'receipt' => array () 		) );		die ();	}	function implement() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;		$Rtype = isset ( $this->params ['Rtype'] ) ? $this->params ['Rtype'] : '';				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();				Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'verify' );				$verify = new verify ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				Doo::loadModel ( "execute" );		$execute = new execute ();				$rid = $XDeode->decode ( $rid );				$receiptList = $receipt->find ( array (				'where' => 'executeCopy like \'%["' . $this->staff [0] ['sid'] . '%\' and (status=1 or status=6) and rid=' . $rid,				'desc' => 'rid',				'asArray' => true 		) );				Doo::loadModel ( 'loanReceipt' );		$loanReceipt = new loanReceipt ();				// print_r($receiptList);				$loanList = array ();		if (! isset ( $receiptList ))			$loanList = $loanReceipt->find ( array (					'where' => 'rid=' . $receiptList [0] ['loanRid'],					'desc' => 'rid',					'asArray' => true 			) );				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $loanList as $key => $value ) {			$loanList [$key] ['Locate'] = $Locate;			$Locate ++;			$loanList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$loanList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$loanList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$loanList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$loanList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$loanList [$key] ['verifyList'] = $verifyList;			$loanList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );		}		$data ['loanList'] = $loanList;				$Locate = 0;		$roleId = 0;		$button = 0;		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );				foreach ( $receiptList as $key => $value ) {						$receiptList[$key]['ridKey']=$XDeode->encode ( $value['rid'] );						$button2 = 0;			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						$executeList = json_decode ( $value ['executeCopy'], true );			$executeStaff = array ();			if (! empty ( $value ['executeStaff'] ))				$executeStaff = json_decode ( $value ['executeStaff'], true );						if (isset ( $executeList )) {				foreach ( $executeList as $op => $lo ) {										$executeList [$op] ['date'] = "";					$executeList [$op] ['opinion'] = "";					$executeList [$op] ['status'] = "";										foreach ( $executeStaff as $m => $u ) {						if ($lo [0] == $m) {							$executeList [$op] ['date'] = $u ['date'];							$executeList [$op] ['opinion'] = $u ['opinion'];							$executeList [$op] ['status'] = $u ['status'];							break;						}					}										if ($this->staff [0] ['sid'] == $lo [0] && empty ( $executeList [$op] ['status'] )) {						$button2 = 1;						$executeList [$op] ['status'] = 4;					}				}			}						// 检测编辑状态			if ($value ['status'] == 3 || $value ['status'] == 1 || $value ['status'] == 9) {				$verifyList ['staff'] = $value ['verifyBreakup'];			} else				$verifyList = $verify->getOne ( array (						'where' => 'vid=' . $value ['verify'],						'asArray' => true 				) );						$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						if ($verifyList == NULL)				$verifyList = array ();			$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;						$receiptList [$key] ['executeList'] = $executeList;						$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button2'] = $button2;						$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );			$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );						$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );			$receiptList [$key] ['relust'] = $relust;			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( $relust );						$receiptList [$key] ['amountABS'] = abs ( $value ['amount'] );		}				//执行人是否是最后一位		$executeCopy = json_decode ( $receiptList [0] ['executeCopy'], true );		$executeStaff = json_decode ( $receiptList [0] ['executeStaff'], true );		$executePrimary=count($executeCopy)-1;		$lastOne=true;		if($executePrimary!=count($executeStaff)){			$lastOne=false;		}		$data['lastOne']=$lastOne;						// 是否写入过流水		$accountType = 0;		if ($receiptList [0] ['Rtype'] == 0) {			$accountType = 3;		} elseif ($receiptList [0] ['Rtype'] == 1) {			if (!empty($receiptList [0]['accountItem']) )					$accountType = 2;				else					$accountType = 1;		} elseif ($receiptList [0] ['Rtype'] == 2) {			$accountType = 4;		} elseif ($receiptList [0] ['Rtype'] == 3) {			$accountType = 12;		}		Doo::loadModel ( 'wasteBook' );		$wasteBook = new wasteBook ();		$wbDetail = $wasteBook->getWateBookByAD ( $accountType, $receiptList [0] ['rid'] );		$data ['wbDetail'] = $wbDetail;				$wbDetailLoan=array();		if ($accountType==2){			$wbDetailLoan = $wasteBook->getWateBookByAD ( 1, $receiptList [0] ['rid'] );		}		$data ['wbDetailLoan'] = $wbDetailLoan;				$data['inputDate']=date ( "Y-m-d H:i:s" );		//print_r($wbDetail);				$data ['receiptList'] = $receiptList;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'implement';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				if ($Rtype=="loan"){			$this->render ( "/receipt/receiptImplementLoan", $data );		}elseif($Rtype=="receipt"){			if($receiptList[0]['receiptClass']==2){				$this->render ( "/receipt/receiptImplementTrave", $data );			}else{				$this->render ( "/receipt/receiptImplement", $data );			}					}elseif($Rtype=="public"){			$this->render ( "/receipt/receiptImplementPublic", $data );		}else{			//$this->render ( "/admin/implement", $data );		}	}				function implementDo() {		$rid = $this->get_args ( 'rid' )  ? $this->get_args ( 'rid' ) : "";		$implementOpinions = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";		// 		$amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : '';// 		$accountBank = $this->get_args ( 'accountBank' ) ? $this->get_args ( 'accountBank' ) : "";		// 		$ab = '';// 		if ($accountBank == 'CGBDeposit')// 			$ab = '纵横广发';// 		elseif ($accountBank == 'ICBCDeposit')// 			$ab = '纵横工行';// 		elseif ($accountBank == 'HUADeposit')// 			$ab = '华润银行';// 		elseif ($accountBank == 'PersonalDeposit')// 			$ab = '个人广发';// 		if (empty ( $ab ))// 			die ( 'illegal request--22' );				if (! empty ( $rid )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();						Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );						$rid=$XDeode->decode($rid);			if (!is_numeric($rid)){				die;			}						// $rinfo = $receipt->getOne ( array (			// 'where' => 'rid=' . $rid,			// 'asArray' => true			// ) );												$rinfo = $receipt->getReceiptByRid ( $rid );			// 			$accountType = '';// 			if ($rinfo ['Rtype'] == 1) {// 				if ($rinfo ['loanRid'] != 0)//判断有问题// 					$accountType = 2;// 				else// 					$accountType = 1;// 			} elseif ($rinfo ['Rtype'] == 2) {// 				$accountType = 4;// 			} elseif ($rinfo ['Rtype'] == 0)// 				$accountType = 3;			// 			if (empty ( $accountType ))// 				die ( 'illegal request' );						$executeCopy = json_decode ( $rinfo ['executeCopy'], true );			$executeStaff = json_decode ( $rinfo ['executeStaff'], true );						if (empty ( $executeStaff )) {								$executeStaff = array (						$this->staff [0] ['sid'] => array (								'date' => date ( 'Y-m-d' ),								'opinion' => $implementOpinions,								'status' => 1 						) 				);			} else {								$executeStaff [$this->staff [0] ['sid']] = array (						'date' => date ( 'Y-m-d' ),						'opinion' => $implementOpinions,						'status' => 1 				);			}						if (count ( $executeStaff ) == count ( $executeCopy )) {				$receipt->executeStaff = json_encode ( $executeStaff );				$receipt->status = 8;				if ($rinfo ['Rtype'] == 1 && $rinfo ['isBK'] == 1 && $rinfo ['status'] == 1)					$receipt->status = 9;								if ($rinfo ['status'] == 6) {					$receipt->loanDate = date ( "Y-m-d" );				}								$receipt->executeDate = date ( "Y-m-d" );			} else {				$receipt->executeStaff = json_encode ( $executeStaff );			}			//$receipt->amount = $amount;			$receipt->update ( array (					'where' => 'rid=' . $rid 			) );						// 公司流水记录// 			Doo::loadModel ( 'wasteBook' );// 			$wasteBook = new wasteBook ();			// 			$abDetail = $wasteBook->getAccountBookByAid ( 2, $accountType, $rid );// 			// 银行// 			if (empty ( $abDetail ) && ! empty ( $amount )) {// 				$item = array (// 						'dataID' => $rid,// 						'expensesType' => 2,// 						'accountType' => $accountType,						// 						'accountPriceShow' => $amount,						// 						'accountPrice' => - $amount,// 						'accountBank' => $accountBank,// 						'category' => $rinfo ['category'] [0] ['title'],// 						'cid' => $rinfo ['category'] [0] ['cid'],// 						'name' => $rinfo ['staffDetail'] ['username'],// 						'sid' => $rinfo ['staffDetail'] ['sid'],// 						'inputDate' => date ( "Y-m-d H:i:s" ) // 				);// 				$wasteBook->setAccountBookStatistics ( $item );// 			}		}		//$ridKey = $XDeode->encode ( $rid );				return "/hisImplement";				// return "/implement/" . $ridKey . ".html";	}	function receiptburEdi() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;				if (empty ( $status ))			$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;				$vidList = array ();		$button = 0;				Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'staff' );		$staff = new staff ();		$receipt = new receipt ();		$verify = new verify ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();				Doo::loadModel ( 'loanReceipt' );		$loanReceipt = new loanReceipt ();				// user verify ID		$verifyDetail = $verify->find ( array (				'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',				'asArray' => true 		) );		foreach ( $verifyDetail as $key => $value ) {			array_push ( $vidList, $value ['vid'] );		}		$vid = implode ( ",", $vidList );		if (empty ( $verifyDetail ))			$vid = 0;				$categoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'where' => 'cid=' . $cid,				'asArray' => true 		) );				$ap = "";		if ($status == 4) {			$ap = 4;			$status = 2;		}				// get Receipt By verifyID status 2		$receiptList = $receipt->find ( array (				'where' => 'rid =' . $rid . ' and status=2',				'desc' => 'rid',				'asArray' => true 		) );				if (empty ( $receiptList )) {			die ( 'illegal request' );		}				$loanList = $loanReceipt->find ( array (				'where' => 'rid=' . $receiptList [0] ['loanRid'],				'desc' => 'rid',				'asArray' => true 		) );				$data ['explanation'] = '';		if (! empty ( $loanList ))			$data ['explanation'] = $loanList [0] ['explanation'];				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $loanList as $key => $value ) {			$loanList [$key] ['Locate'] = $Locate;			$Locate ++;			$loanList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$loanList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$loanList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$loanList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$loanList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion			$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff				if ($v [1] == 'ROLE') {					if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );					}					$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$loanList [$key] ['verifyList'] = $verifyList;		}				$htmlLoan = '';		$data ['loanReceiptDate'] = '';		if (isset ( $loanList [0] )) {			foreach ( $loanList [0] ['verifyList'] as $key => $value ) {				if ($value ['status'] == 1)					$htmlLoan .= '<li class="done" >';				elseif ($value ['status'] == 3)					$htmlLoan .= '<li class="undone" >';								$htmlLoan .= '<div class="avtra"><img width="32" src="' . $value [2] . '_2.jpg"></div>';				$htmlLoan .= '<div class="comment"><p class="colGray">' . $value ['1'] . '<span class="fR">' . $value ['date'] . '</span>';				if (isset ( $value ['rolename'] ))					$htmlLoan .= $value ['rolename'];				$htmlLoan .= '</p><p>' . $value ['opinion'] . '</p></div></li>';			}			$data ['loanDate'] = $loanList [0] ['date'];		} else {						$data ['loanReceiptDate'] = ''; // $loanList [0] ['date'];		}		$data ['htmlLoan'] = $htmlLoan;		// $data ['LoanReceipt']=$loanList[0];		// print_r($loanList);				$Locate = 0;		$roleId = 0;		$button = 0;		if ($ap == 4)			$status = 4;				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		foreach ( $receiptList as $key => $value ) {						$receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] );						$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			// 调整金额 代码调整			if (! empty ( $value ['reviseDetail'] )) {								$reviseDetail = json_decode ( $value ['reviseDetail'], true );				foreach ( $reviseDetail as $ry => $re ) {										$reviseDetail [$ry] ['sidKey'] = $XDeode->encode ( $re ['sid'] );					$reviseDetail [$ry] ['reviseKey'] = $XDeode->encode ( $ry );				}								$receiptList [$key] ['reviseDetail'] = $reviseDetail;				// print_r($reviseDetail);			}						$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$receiptList [$key] ['loanItem'] = json_decode ( $value ['loanItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						// print_r($verifyList);			$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff']) {							$roleId = $v [0];						}					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}				// print_r($roleArray);								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$button = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						$endKey = key ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {							$button = 4;							$verifyList [$k] ['status'] = 4;						}					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						// print_r($verifyList);						$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;			$receiptList [$key] ['loanSumCN'] = $this->num_to_rmb ( $value ['loanSum'] );			$receiptList [$key] ['sumCN'] = $this->num_to_rmb ( $value ['sum'] );			$relust = bcsub ( $value ['sum'], $value ['loanSum'], 2 );			$receiptList [$key] ['relust'] = $relust;			$receiptList [$key] ['relustABS'] = abs ( $relust );			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );		}		//print_r($receiptList);die;		// $data['verifyDetail']=$verifyDetail;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				// 获取审批日志		Doo::loadModel ( 'receiptLog' );		$receiptLog = new receiptLog ();				$rlList = array ();		$rlInfo = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=4',				'asArray' => true 		) );		$tijdate = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=2',				'asc' => 'rlid',				'asArray' => true 		) );		if (! empty ( $rlInfo )) {			$rlList = $receiptLog->find ( array (					'where' => 'rid=' . $rid,					'asc' => 'rlid',					'asArray' => true 			) );		}		// echo $rid;		// print_r($receiptList);				$receiptList [0] ['rlList'] = $rlList;				// print_r($receiptList);		$enclosurList = $enclosur->find ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$enclosurHtml = '';		foreach ( $enclosurList as $value ) {			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';		}				$data ['enclosurHtml'] = $enclosurHtml;		$data ['rolename'] = $rolename ['name'];				$data ['mothHtml'] = $mothHtml;				// print_r($receiptList);		$data ['rid'] = $rid;		$data ['tijdate'] = $tijdate ['date'];		$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $receiptList );		$data ['status'] = $status;		$data ['year'] = $year;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;		$data ['ap'] = $ap;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approvalExpenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				if($receiptList[0]['receiptClass']==1){			$this->render ( "/receipt/feeAgencyApproval", $data );		}elseif($receiptList[0]['receiptClass']==2){			//$this->render ( "/admin/receiptburEdi", $data );			$this->render ( "/receipt/feeTraveApproval", $data );		}elseif($receiptList[0]['receiptClass']==3){			$this->render ( "/receipt/feeInternalTrainApproval", $data );		}else{			$this->render ( "/admin/receiptburEdi", $data );		}	}	function hisImplement() {		$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";		if (empty ( $item ))			$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "expenses";				$rdate = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";				$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : 'MONTH';		$day = $this->get_args ( 'day' ) ? $this->get_args ( 'day' ) : 'DAY';		$sop = $this->get_args ( 'sop' ) ? $this->get_args ( 'sop' ) : 'SOP';				$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 'pendImplement';		$cidKey = $this->get_args ( 'cidKey' ) ? $this->get_args ( 'cidKey' ) : 'ALL';				$receiptOrder=$this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) :"";				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		$verify = new verify ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		$XDeode7 = new XDeode ( 7 );		$cid = $XDeode->decode ( $cidKey );				$condition = "";				if ($item == "expenses")			$condition = " and Rtype=1 ";		elseif ($item == "receipts")			$condition = " and Rtype=0 ";		elseif ($item == "remits")			$condition = " and Rtype=2 ";		elseif($item == "train")			$condition = " and Rtype=3 ";				$statusCon = '(status=8 or status=9 or status=1 or status=6 )';		$sopString = $cidString = "";				$lastYear = date ( "Y", strtotime ( "-1 year" ) );				if (empty ( $rdate ))			$dateCondition = " and (Year(date) =" . $year . " or Year(date) = " . $lastYear . ") ";		else			$dateCondition = " and date_format(date,'%Y-%m-%d')='" . $rdate . "' ";				if ($status == 'pendImplement') {			$condition .= ' and (status=1 or status=6) and (executeCopy like "%[\"' . $this->staff [0] ['sid'] . '\"%"  and (executeStaff not like "%{\"' . $this->staff [0] ['sid'] . '\"%" or executeStaff is null ) ) ';		} elseif ($status == 'alerpts') {			$statusCon = '(status=8 or status=9 )';			if (empty ( $rdate )){				$dateCondition = " and Year(date) =" . $year;			}else{								$dateCondition = " and date_format(executeDate,'%Y-%m-%d')='" . $rdate . "' ";			}		}				if ($sop != 'SOP')			$sopString = " and staff=" . $sop;		if ($cidKey != 'ALL')			$cidString = " and cid=" . $cid;					//汇款信息需要提取出来		if(!empty($receiptOrder)){				$receiptList = $receipt->find ( array (					'where' => $statusCon.' and receiptOrder like "%' . $receiptOrder . '%"',					'desc' => 'rid',										'asArray' => true			) );						// 员工筛选			$receiptList2 = $receipt->find ( array (					'where' => $statusCon.' and receiptOrder like "%' . $receiptOrder . '%"',					'desc' => 'rid',					'asArray' => true			) );		}else{			$receiptList = $receipt->find ( array (					'where' => $statusCon . $condition . $dateCondition . $sopString . $cidString,					'desc' => 'rid',										'asArray' => true			) );						// 员工筛选			$receiptList2 = $receipt->find ( array (					'where' => $statusCon . $condition . $dateCondition,					'desc' => 'rid',					'asArray' => true			) );		}				$sopStaff = array ();		foreach ( $receiptList2 as $key => $value ) {			$staffDetail = $staff->getOne ( array (					'select' => 'username',					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$sopStaff [$value ['staff']] = $staffDetail ['username'];		}		// 办事处筛选		$categoryScreen = array ();		$categorList = $Lcategory->getCategory ();		foreach ( $receiptList2 as $key => $value ) {			foreach ( $categorList as $k => $v ) {				if ($value ['cid'] == $v ['cid']) {					$categoryScreen [$v ['cidKey']] = $v ['title'];					break;				}			}		}		$categoryScreenHtml = "";		foreach ( $categoryScreen as $key => $value ) {			if ($cidKey == $key)				$categoryScreenHtml .= '<option value="' . $key . '" selected >' . $value . '</option>';			else				$categoryScreenHtml .= '<option value="' . $key . '" >' . $value . '</option>';		}		$data ['categoryScreenHtml'] = $categoryScreenHtml;		$data ['cidKey'] = $cidKey;				$Locate = 0;		$roleId = 0;		$button = 0;		$staffBatchNumber = 100001;		$remittanceList = array ();		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['ridKey7'] = $XDeode7->encode ( $value ['rid'] );			$receiptList [$key] ['ridKey'] = $XDeode->encode ( $value ['rid'] );			$receiptList [$key] ['Texe'] = 'false';			if (strstr ( $value ['executeCopy'], '["' . $this->staff [0] ['sid'] . '"' ) != false) {				$receiptList [$key] ['Texe'] = 'true';			}			$receiptList [$key] ['TRexe'] = 'true';			if (strstr ( $value ['executeStaff'], '{"' . $this->staff [0] ['sid'] . '"' ) != false) {				$receiptList [$key] ['TRexe'] = 'false';			}						$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );												$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;			$staffDetail = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['staffDetail'] = $staffDetail;			$receiptList [$key] ['button'] = $button;						if ($value['Rtype']==1){			$receiptList [$key] ['relust'] = $value['sum']-$value['loanSum'];			$receiptList [$key] ['relustABS'] = abs($receiptList [$key] ['relust']);			}elseif($value['Rtype']==3){				// 收入合计				Doo::loadModel ( 'invoiceTraining' );				$invoiceTraining = new invoiceTraining ();				$invoiceTrainingDetail = array (						'invoiceArriveAmount' => '0.00',						'RIAmount' => '0.00',						'invoiceTotalAmount' => '0.00',						'invoiceCompanyAmount' => '0.00',						'invoiceArriveAmountM'=>'0.00',						'invoiceCompanyAmountM'=>'0.00'				);				if ($value ['invoiceTrainId'] != 0) {					$invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $value['invoiceTrainId'] );				}				$invoiceArriveAmount = $RIAmount = 0;				if (! empty ( $invoiceTrainingDetail )) {					$invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount'];					$RIAmount = $invoiceTrainingDetail ['RIAmount'];				}									// 备用金				$sum = 0;				if (! empty ( $value ['trainLoanRid'] )) {										$receiptLoanList = $receipt->getReceiptInRid ( $value ['trainLoanRid'] );					foreach ($receiptLoanList as $kll=>$vll){						$sum+=$vll['sum'];					}					// 					$receiptLoanDetailBak = $receipt->getReceiptByRid ( $value ['trainLoanRid'] );// 					$sum = $receiptLoanDetailBak ['sum'];				}									// 支出项金额详情				// 项目金额合计				Doo::loadModel ( 'RItem' );				$RItem = new RItem ();				Doo::loadModel ( 'accountItem' );				$accountItem = new accountItem ();				// 讲师获得				Doo::loadModel ( 'RILecturer' );				$RILecturer = new RILecturer ();				$RItemList = $RItem->getRItemByRid ( $value['rid'] );				$RILecturerList = $RILecturer->getRILecturerByRid ( $value['rid'] );				// 支出项金额详情				$aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount );				$categoryActualExpenditure = $aiData ['total'] - $aiData ['categoryActualExpenditure'];								$payment = $sum + $RIAmount - $categoryActualExpenditure;				$receiptList [$key] ['payment'] =$payment;				$receiptList [$key] ['paymentABS'] =sprintf("%.2f",abs($payment));											}						// 设置导出汇款execl			if (! empty ( $value ['remittanceName'] ) && ! empty ( $value ['bankName'] ) && ! empty ( $value ['bankNumber'] )) {				$remittanceDetail = array (						$staffBatchNumber,						$value ['remittanceName'],						$value ['bankNumber'],						$value ['bankName'],						$value ['remittanceBankType'],						$value ['coupletNumber'],						$value ['sum'] 				);				array_push ( $remittanceList, $remittanceDetail );				$staffBatchNumber ++;			}		}				$data ['remittanceList'] = json_encode ( $remittanceList );				// print_r($receiptList);		$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($moth == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}		$dayHtml = "";		if ($day != "DAY" || $moth != "MONTH") {			for($i = 1; $i <= 31; $i ++) {				if ($day == $i)					$dayHtml .= '<option value="' . $i . '" selected >' . $i . '日</option>';				else					$dayHtml .= '<option value="' . $i . '" >' . $i . '日</option>';			}		}		$sopHtml = "";		foreach ( $sopStaff as $key => $value ) {			if ($sop == $key)				$sopHtml .= '<option value="' . $key . '" selected >' . $value . '</option>';			else				$sopHtml .= '<option value="' . $key . '" >' . $value . '</option>';		}				$data ['status'] = $status;		$data ['rdate'] = $rdate;		$data ['sopHtml'] = $sopHtml;		$data ['dayHtml'] = $dayHtml;		$data ['mothHtml'] = $mothHtml;		$data ['receiptList'] = $receiptList;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'implement';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$data ['item'] = $item;		$data ['year'] = $year;		$data ['moth'] = $moth;		$data['receiptOrder']=$receiptOrder;		$data ['day'] = $day;		$data ['sop'] = $sop;		$this->render ( "/admin/hisImplement", $data );	}	/**	 * 导出汇款信息的exelc	 */	function exportRemittance() {		$remittanceInfo = $_POST ['remittanceInfo']; // $this->get_args ( 'remittanceInfo' ) ? $this->get_args ( 'remittanceInfo' ) : '';		if (empty ( $remittanceInfo ))			die ( 'illegal request' );				$title = array (				'员工编号',				'姓名',				'员工账号',				'员工账户开户行',				'转账类型',				'联行号',				'金额' 		);		$data = json_decode ( $remittanceInfo, true );		if (empty ( $data ))			die ( 'illegal request' );		Doo::loadClass ( 'receipt.func' );		exportExcel ( $title, $data, '批量日常报销-公司账号', './', true );				header ( 'Content-Type:text/html;charset=utf-8' );		die ( '导出' . count ( $data ) . '条数据,<a href="/hisImplement">返回</a>' );	}	function ajaxExamine() {		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();				if (! empty ( $rid )) {			$rLRes = $receipt->find ( array (					'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' ) and rid!=' . $rid,					'asArray' => true 			) );			if(!empty($rLRes)){								Doo::loadClass ( 'XDeode' );				$XDeode = new XDeode ( 7 );				$rLRes [0]['ridKey'] = $XDeode->encode( $rLRes [0]['rid'] );								echo json_encode ( array (						'status' => 1,						'receipt' => $rLRes [0]				) );				die ();			}else{				echo json_encode ( array (						'status' => 1,						'receipt' => array ()				) );				die ();			}					}		echo json_encode ( array (				'status' => 0,				'receipt' => array () 		) );		die ();	}		/*	 * 废弃	 */	function myReceipt() {				// all approval past withdraw		$item = isset ( $this->params ['item'] ) ? $this->params ['item'] : "";		if (empty ( $item ))			$item = $this->get_args ( 'item' ) ? $this->get_args ( 'item' ) : "";				$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : "";				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();				// pre-loaded		if (! empty ( $item ) && ($item == "past" || $item == "withdraw")) {			// have cache			$path = SITE_PATH . $this->MYREVEIPTCACHEPATH . $item . "_" . $year . ".htmls";			if (! empty ( $moth )) // yearPage				$path = SITE_PATH . $this->MYREVEIPTCACHEPATH . $item . "_" . $year . "_" . $moth . ".htmls";						$this->showCache ( $path );		}				Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'verify' );		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		$verify = new verify ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				$condition = " and status!=0 ";		if ($item == "approval")			$condition = " and status=2 ";		elseif ($item == "withdraw")			$condition = " and status=3 ";		elseif ($item == "past")			$condition = " and status=1 ";		elseif ($item == "whdw")			$condition = " and status=4 ";				$dateCondition = " and Year(date) =" . $year;		if (! empty ( $moth )) {			$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $moth;			$stList = $statistics->getOne ( array (					'select' => 'rePrice ,agPrice',					'where' => ' staff=' . $this->staff [0] ['sid'] . $dateCondition,					'asArray' => true 			) );		} else			$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );				if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);				$noPassSum = $receipt->receiptByYear ( $year, $this->staff [0] ['sid'] );				$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice'] - $noPassSum ['sum']) 		);		$receiptList = $receipt->find ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . $condition . $dateCondition,				'desc' => 'rid',				'asArray' => true 		) );				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						// if ($v[0]==$endStaffArray['nextStaff']){						// $roleId=$v[0];						// }					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						// $endKey=key($verifyStaff);						// if ($v[0]==$endStaffArray['nextStaff']&&$endStaffArray['nextStaff']==$this->staff[0]['sid']){						// $button=4;						// $verifyList[$k]['status']=4;						// }					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;		}				// print_r($receiptList);die;		$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($moth == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				$data ['mothHtml'] = $mothHtml;		$data ['receiptList'] = $receiptList;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'receipt';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$data ['item'] = $item;		$data ['year'] = $year;				if (! empty ( $item ) && ($item == "past" || $item == "withdraw")) {			// sufficient condition to generate cache			if (empty ( $moth ) && ($year < date ( "Y" ))) {				$receiptList = $receipt->find ( array (						'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year,						'asArray' => true 				) );				if (empty ( $receiptList )) { // generated files					ob_start ();					$this->render ( "/admin/saea_myList", $data );					$this->cacheFile ( $path );					die ();					// $content = ob_get_contents();					// $fp = fopen($path, "w");					// fwrite($fp, $content);					// fclose($fp);				}			} elseif (! empty ( $moth ) && ($year <= date ( "Y" )) && ($moth < date ( "m" ))) {				$receiptList = $receipt->find ( array (						'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year . ' and Month(date) =' . $moth,						'asArray' => true 				) );				if (empty ( $receiptList )) { // generated files					ob_start ();					$this->render ( "/admin/saea_myList", $data );					$this->cacheFile ( $path );					die ();				}			}		}		$this->render ( "/admin/saea_myList", $data );	}			function approvedReceipt() {		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'receiptDetail' );		$receipt = new receipt ();		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'statistics' );		Doo::loadModel ( 'itemStatistics' );		$statistics = new statistics ();		$itemStatistics = new itemStatistics ();		Doo::loadModel ( "verify" );		$verify = new verify ();				// 审批状态的判定		$receiptDetailList = $receipt->getOne ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . ' and rid=' . $rid . ' and (status=4 or status=5 or status=7)',				'asArray' => true 		) );		if (empty ( $receiptDetailList ))			return "/saeaBorad";				$verifyDetail = $verify->getOne ( array (				'where' => ' vid =' . $receiptDetailList ['verify'],				'asArray' => true 		) );		$verifyDetail = json_decode ( $verifyDetail ['staff'], true );				if (empty ( $receiptDetailList ['nowStaff'] )) {						$nowStaff = "";			$nowStaffList = array ();			if ($verifyDetail [0] [1] == 'ROLE') {				$vStaffString = json_decode ( $verifyDetail [0] [3] );				foreach ( $vStaffString as $key => $value ) {					$staffK = explode ( "_", $value );					array_push ( $nowStaffList, $staffK [0] );				}				$nowStaff = implode ( ',', $nowStaffList );			} else {				$nowStaff = $verifyDetail [0] [0];			}			$receipt->nowStaff = $nowStaff;		}		// echo $nowStaff;		// print_r($verifyDetail);die;				$receipt->rid = $receiptDetailList ['rid'];		$receipt->date = date ( "Y-m-d" );		$receipt->status = 2;		$receipt->update ();				$receiptDetail->status = 2;		$receiptDetail->update ( array (				'where' => 'rid=' . $receiptDetailList ['rid'] 		) );				Doo::loadModel ( "receiptLog" );		$receiptLog = new receiptLog ();		Doo::loadModel ( "verify" );		$verify = new verify ();				$receiptInfo = $receipt->getOne ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$vr = $verify->getOne ( array (				'where' => 'vid=' . $receiptInfo ['verify'],				'asArray' => true 		) );				$jd = json_decode ( $vr ['staff'] );		$roleId = 0;				foreach ( $jd as $key => $value ) {			if ($value [1] == 'ROLE') {				$pos = strpos ( $value [3], $this->staff [0] ['sid'] );				if ($pos !== false) {					$roleId = $value [0];				}			}		}				// 审批日志		// echo $roleId;die;				if (! empty ( $roleId )) {			Doo::loadModel ( "role" );			$role = new role ();			$roleInfo = $role->getOne ( array (					'where' => 'rid=' . $roleId,					'asArray' => true 			) );						// $receiptLog->rolename = $roleInfo ['name'];		}				$receiptLog->username = $this->staff [0] ['username'];		$receiptLog->uid = $this->staff [0] ['sid'];		$receiptLog->date = date ( "Y-m-d" );		$receiptLog->opinion = '提交审批';		$receiptLog->img = $this->staff [0] ['avatar'];		$receiptLog->status = 2;		$receiptLog->rid = $rid;		$receiptLog->insert ();				// statistics item		$dateArray = explode ( "-", $receiptDetailList ['date'] );		$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];				$accountItem = json_decode ( $receiptDetailList ['accountItem'], true );				$stat = $statistics->getOne ( array (				'where' => 'staff=' . $this->staff [0] ['sid'] . $dateCondition,				'asArray' => true 		) );		if (empty ( $stat )) {			$statistics->date = date ( "Y-m-d" );			$statistics->cid = $this->staff [0] ['cid'];			$statistics->staff = $this->staff [0] ['sid'];			$statistics->agPrice = 0;			$statistics->rePrice = $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum'];			$statistics->insert ();		} else {			$statistics->rePrice = $stat ['rePrice'] + $accountItem ['cSum'] ['agencySum'] + $accountItem ['cSum'] ['travelSum'] + $accountItem ['cSum'] ['trainSum'] + $accountItem ['cSum'] ['otherSum'];			$statistics->update ( array (					'where' => 'sid=' . $stat ['sid'] 			) );		}				return "/expenses";	}	function approval() {		$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;				if (empty ( $status ))			$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;				$vidList = array ();		$button = 0;				Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();				// user verify ID		$verifyDetail = $verify->find ( array (				'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',				'asArray' => true 		) );		foreach ( $verifyDetail as $key => $value ) {			array_push ( $vidList, $value ['vid'] );		}		$vid = implode ( ",", $vidList );		if (empty ( $verifyDetail ))			$vid = 0;						/*		 */				$dateCondition = " and Year(date) =" . $year;		if (! empty ( $month ))			$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month;				$categoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'where' => 'cid=' . $cid,				'asArray' => true 		) );		$cateCondition = "";		$staffCondition = "";		$approvalCondition = "";		if (! empty ( $cid ))			$cateCondition = ' and cid=' . $cid;		if (! empty ( $sid )) {			$staffCondition = ' and staff=' . $sid;			$cateCondition = "";		}				// elseif($status==1){		// $approvalCondition=' and staff='.$this->staff[0]['sid'];		// }				if ($status == 2) {			// 查找角色审批人			$approvalCondition = ' and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' ) ';		}		$ap = "";		if ($status == 4) {			$ap = 4;			$status = 2;			$approvalCondition = ' and verifyStaff like "%\"' . $this->staff [0] ['sid'] . '\":{%" ';		}				if ($status == 5) {			$status = 4;			$ap = 5;		}				// echo $vid;		// get Receipt By verifyID status 2 .$approvalCondition		// $receiptList=$receipt->find(array('where'=>'verify in('.$vid.') and status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition,'desc'=>'rid','asArray'=>true));		$receiptList = $receipt->find ( array (				'where' => ' status=' . $status . $dateCondition . $cateCondition . $staffCondition . $approvalCondition,				'desc' => 'rid',				'asArray' => true 		) );				// echo ' status='.$status.$dateCondition.$cateCondition.$staffCondition.$approvalCondition;				$Locate = 0;		if ($ap == 4)			$status = 4;		elseif ($ap == 5)			$status = 5;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion			$verifyStaff = json_decode ( $value ['verifyStaff'], true );			foreach ( $verifyList as $k => $v ) {				// init verifyStaff				$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if ($v [0] == $this->staff [0] ['sid']) {						$verifyList [$k] ['status'] = 4;						$button = 4;					}				} else {					$flag = true;					foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}						// elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;}						// if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;}						// if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;}					}					if ($flag) { // 检测可编辑						if ($v [0] == $this->staff [0] ['sid']) {							$verifyList [$k] ['status'] = 4;							$button = 4;						}					}				}			}			$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;		}		// print_r($receiptList);die;		// $data['verifyDetail']=$verifyDetail;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				$data ['mothHtml'] = $mothHtml;				$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $receiptList );		$data ['status'] = $status;		$data ['year'] = $year;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;		$data ['ap'] = $ap;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approval';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/saea_reportList", $data );	}	function approvalDetails() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;				Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();				$vidList = array ();				$verifyDetail = $verify->find ( array (				'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',				'asArray' => true 		) );		foreach ( $verifyDetail as $key => $value ) {			array_push ( $vidList, $value ['vid'] );		}		$vid = implode ( ",", $vidList );		if (empty ( $verifyDetail ))			$vid = 0;				$categoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'where' => 'cid=' . $cid,				'asArray' => true 		) );				$ap = 0;				$receiptList = $receipt->find ( array (				'where' => 'rid =' . $rid,				'desc' => 'rid',				'asArray' => true 		) );				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						Doo::loadModel ( 'role' );			$role = new role ();						// print_r($verifyList);			$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff']) {							$roleId = $v [0];						}					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}				// print_r($roleArray);								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$button = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						$endKey = key ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {							$button = 4;							$verifyList [$k] ['status'] = 4;						}					}				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;		}				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				// 获取审批日志		Doo::loadModel ( 'receiptLog' );		$receiptLog = new receiptLog ();				$rlList = array ();		$rlInfo = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=4',				'asArray' => true 		) );		$tijdate = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=2',				'asc' => 'rlid',				'asArray' => true 		) );		if (! empty ( $rlInfo )) {			$rlList = $receiptLog->find ( array (					'where' => 'rid=' . $rid,					'asc' => 'rlid',					'asArray' => true 			) );		}				$receiptList [0] ['rlList'] = $rlList;				$enclosurList = $enclosur->find ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$enclosurHtml = '';		foreach ( $enclosurList as $value ) {			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';		}				$data ['enclosurHtml'] = $enclosurHtml;		$data ['rolename'] = $rolename ['name'];		$data ['datetij'] = $tijdate ['date'];		$data ['mothHtml'] = $mothHtml;				$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $receiptList );				$data ['year'] = $year;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;				$data ['status'] = 0;		if ($receiptList [0] ['status'] != 1 && $receiptList [0] ['status'] != 3) {			$ap = 4;		} else			$data ['status'] = $receiptList [0] ['status'];				if ($receiptList [0] ['status'] == 4) {			$data ['status'] = 5;			$ap = 0;		}				$data ['ap'] = $ap;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approval';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/admin/saeaReportListReport", $data );	}	function approvalEdi() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				$status = isset ( $this->params ['status'] ) ? $this->params ['status'] : '';		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;				if (empty ( $status ))			$status = $this->get_args ( 'status' ) ? $this->get_args ( 'status' ) : 2;				$vidList = array ();		$button = 0;				Doo::loadModel ( 'verify' );		Doo::loadModel ( 'receipt' );		Doo::loadModel ( 'staff' );		$staff = new staff ();		$receipt = new receipt ();		$verify = new verify ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();				// user verify ID		$verifyDetail = $verify->find ( array (				'where' => 'staff like "%\"' . $this->staff [0] ['sid'] . '%"',				'asArray' => true 		) );		foreach ( $verifyDetail as $key => $value ) {			array_push ( $vidList, $value ['vid'] );		}		$vid = implode ( ",", $vidList );		if (empty ( $verifyDetail ))			$vid = 0;				$categoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'where' => 'cid=' . $cid,				'asArray' => true 		) );				$ap = "";		if ($status == 4) {			$ap = 4;			$status = 2;		}				// get Receipt By verifyID status 2		$receiptList = $receipt->find ( array (				'where' => 'rid =' . $rid,				'desc' => 'rid',				'asArray' => true 		) );				$Locate = 0;		$roleId = 0;		if ($ap == 4)			$status = 4;		foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];						// 检测编辑状态			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion						$verifyStaff = json_decode ( $value ['verifyStaff'], true );						// print_r($verifyList);			//			// if (empty($verifyStaff)){			// if ($this->staff[0]['sid']==$verifyStaff[0][0]){			// $verifyList[0]['status']=4;$button=4;			// }			//			// }else{			//			// }			// die;			// $a=array("a"=>"red","b"=>"green","c"=>"blue");			// echo array_search("green",$a);			//			Doo::loadModel ( 'role' );			$role = new role ();						// print_r($verifyList);			$flag = true;			$roleKey = 0;			$endStaffArray = array ();			$roleArrayCopy = array ();			foreach ( $verifyList as $k => $v ) {				// init verifyStaff								if ($v [1] == 'ROLE') {										if (! empty ( $verifyStaff )) {						$endStaffArray = end ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff']) {							$roleId = $v [0];						}					}										$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					$rolename = $role->getOne ( array (							'where' => 'rid=' . $v [0],							'asArray' => true 					) );										foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$staffInfo = $staff->getOne ( array (								'where' => 'sid=' . $staffID [0],								'asArray' => true 						) );						// print_r($staffID);						$exp = array (								0 => $staffInfo ['sid'],								1 => $staffID [1],								2 => $staffInfo ['avatar'],								'date' => '',								'date' => '',								'opinion' => '',								'status' => '',								'rolename' => $rolename ['name'] 						);						array_push ( $roleArray, $exp );					}					$roleArrayCopy [$v [0]] = $roleArray;					// $verifyList[$k]['roleArray']=$roleArray;				}				// print_r($roleArray);								$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {						$verifyList [$k] ['status'] = 4;						$button = 4;						$flag = false;					}				} else {										foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}					}										$endStaffArray = end ( $verifyStaff );					if (isset ( $endStaffArray ['ROLE'] )) {					} else {						$endKey = key ( $verifyStaff );						if ($v [0] == $endStaffArray ['nextStaff'] && $endStaffArray ['nextStaff'] == $this->staff [0] ['sid']) {							$button = 4;							$verifyList [$k] ['status'] = 4;						}					}										// print_r($endStaffArray);die;					// if (empty($verifyStaff)){					// if ($this->staff[0]['sid']==$verifyStaff[0][0]){					// $verifyList[$k]['status']=4;$button=4;					// }					//					// }else{					//					// }										// if($flag){//检测可编辑					// if($v[0]==$this->staff[0]['sid']){					// $verifyList[$k]['status']=4;$button=4;					// }					// }				}			}						$rolename ['name'] = '';			if (! empty ( $roleId )) {				Doo::loadModel ( 'role' );				$role = new role ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );			}						if (! empty ( $verifyStaff ))				$endStaffArray = end ( $verifyStaff );						$KOP = false;			foreach ( $roleArrayCopy as $P => $A ) {								foreach ( $A as $MKI => $AVL ) {					if (! empty ( $verifyStaff )) {						// &&$rolename['rid']==$endStaffArray['nextStaff']						if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}												foreach ( $verifyStaff as $m => $u ) {							$AVLFK = $AVL [0] . '_R';							// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';														if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1								$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];								$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];								$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];																break;							}						}					} else {												if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {							$button = 4;							$roleArrayCopy [$P] [$MKI] ['status'] = 4;						}					}					// $roleArray[$MKI]['rolename']=$rolename['name'];					$KOP = true;				}			}			// print_r($roleArrayCopy);			// echo $roleKey;						foreach ( $roleArrayCopy as $k => $v ) {				foreach ( $verifyList as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyList, $m, 1, $v );					}				}			}						// if ($KOP)			// array_splice($verifyList,$roleKey,1,$roleArray);						// print_r($verifyList);			$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;		}				// $data['verifyDetail']=$verifyDetail;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				// 获取审批日志		Doo::loadModel ( 'receiptLog' );		$receiptLog = new receiptLog ();				$rlList = array ();		$rlInfo = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=4',				'asArray' => true 		) );		$tijdate = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=2',				'asc' => 'rlid',				'asArray' => true 		) );		if (! empty ( $rlInfo )) {			$rlList = $receiptLog->find ( array (					'where' => 'rid=' . $rid,					'asc' => 'rlid',					'asArray' => true 			) );		}				$receiptList [0] ['rlList'] = $rlList;				$enclosurList = $enclosur->find ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$enclosurHtml = '';		foreach ( $enclosurList as $value ) {			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';		}				$data ['enclosurHtml'] = $enclosurHtml;		$data ['rolename'] = $rolename ['name'];		$data ['datetij'] = $tijdate ['date'];		$data ['mothHtml'] = $mothHtml;				$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $receiptList );		$data ['status'] = $status;		$data ['year'] = $year;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;		$data ['ap'] = $ap;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approval';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/saeaReportListReport", $data );	}	function remittanceHky() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : date ( "m" );		$day = $this->get_args ( 'day' ) ? $this->get_args ( 'day' ) : 'DAY';				$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;		$page_size = 15;				$get = "?year=" . $year . "&moth=" . $moth . "&day=" . $day;				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				$dateCondition = " and Year(executeDate) =" . $year;		if ($moth != 'MONTH')			$dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth;		if ($day != 'DAY' && $moth != 'MONTH')			$dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth . " and day(executeDate)=" . $day;				$sql = ' (status =8 or status=9 ) and amount>0  ' . $dateCondition;		$table = '(SELECT count(*) FROM CLD_receipt WHERE ' . $sql . ' group by executeDate ) a ';		$pageinfo = $this->get_page ( $table, '  ', $page, $page_size, "remittanceHky", $get, "" );		$limit = $pageinfo ['lower'] . ',' . $page_size;				$dayList = $receipt->find ( array (				'select' => 'executeDate,sum(amount) as amount',				'where' => $sql,				'desc' => 'executeDate',				'groupby' => 'executeDate',				'limit' => $limit,				'asArray' => true 		) );		// print_r($dayList);		foreach ( $dayList as $key => $value ) {			$remitString = "";			$receiptList = $receipt->find ( array (					'select' => 'rid,executeDate,amount,staff,cid',					'where' => '(status =8 or status=9 ) and amount!=0 and executeDate="' . $value ['executeDate'] . '"',					'desc' => 'executeDate',					'asArray' => true 			) );						foreach ( $receiptList as $k => $v ) {				$sinfo = $staff->getOne ( array (						'select' => 'username,category',						'where' => ' sid=' . $v ['staff'],						'asArray' => true 				) );				$remitString .= $sinfo ['category'] . '-' . $sinfo ['username'] . '(' . $v ['amount'] . ')  ';			}			$dayList [$key] ['staff'] = $remitString;			$dayList [$key] ['ridKey'] = strtotime ( $value ['executeDate'] );		}				// print_r($dayList);		$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($moth == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}		$dayHtml = "";		if ($day != "DAY" || $moth != "MONTH") {			for($i = 1; $i <= 31; $i ++) {				if ($day == $i)					$dayHtml .= '<option value="' . $i . '" selected >' . $i . '日</option>';				else					$dayHtml .= '<option value="' . $i . '" >' . $i . '日</option>';			}		}				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {						if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;				$data ['page'] = $pageinfo;		$data ['year'] = $year;		$data ['moth'] = $moth;		$data ['day'] = $day;		$data ['get'] = $get;		$data ['dayHtml'] = $dayHtml;		$data ['mothHtml'] = $mothHtml;		$data ['receiptList'] = $dayList;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'remittanceHky';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/remittanceHky", $data );	}	function remittancep() {		$timeStamp = isset ( $this->params ['timeStamp'] ) && is_numeric ( $this->params ['timeStamp'] ) ? $this->params ['timeStamp'] : 0;				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );				$dateCondition = ' and executeDate="' . date ( 'Y-m-d', $timeStamp ) . '"';				$rplist = $receipt->find ( array (				'where' => ' (status =8 or status=9 ) and amount!=0  ' . $dateCondition,				'asArray' => true 		) );				$dayList = $receipt->find ( array (				'where' => ' (status =8 or status=9 ) and amount!=0  ' . $dateCondition,				'desc' => 'executeDate',				'groupby' => 'staff',				'asArray' => true 		) );				$html = '';		foreach ( $dayList as $key => $value ) {			$sinfo = $staff->getOne ( array (					'select' => 'username,category',					'where' => ' sid=' . $value ['staff'],					'asArray' => true 			) );			$html .= '<table class="table table-bordered table-condensed"><thead><tr><th class="taC" colspan="3">' . $sinfo ['category'] . '-' . $sinfo ['username'] . '</th></tr></thead><tbody>					<tr><td class="taC">费用单号</td><td class="taC">汇款金额</td></tr>';			$au = 0;			foreach ( $rplist as $k => $v ) {				if ($value ['staff'] == $v ['staff']) {					$html .= '<tr><td><a href="#saea-detail" node-invoice="INFO" data-iskey="' . $XDeode->encode ( $v ['rid'] ) . '" data-toggle="modal">' . $v ['receiptOrder'] . '</a></td><td class="taR">¥' . $v ['amount'] . '</td></tr>';					$au += $v ['amount'];				}			}			$html .= '<tr><td>合计</td><td class="taR"><b>¥' . $au . '</b></td></tr></tbody></table>';		}		$data ['html'] = $html;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'remittanceHky';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/remittancep", $data );	}	function ajaxGetReceiptDetails() {		$rid = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );		$rid = $XDeode->decode ( $rid );				if (empty ( $rid )) {			echo json_encode ( array (					'status' => 2,					'msg' => 'illegal request' 			) );			die ();		}				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				$rinfo = $receipt->getOne ( array (				'where' => 'rid= ' . $rid,				'asArray' => true 		) );		$sinfo = $staff->getOne ( array (				'select' => 'username,category',				'where' => ' sid=' . $rinfo ['staff'],				'asArray' => true 		) );				$rinfo ['reviseDetail'] = array ();		if (! empty ( $rinfo ['reviseDetail'] ))			$rinfo ['reviseDetail'] = json_decode ( $rinfo ['reviseDetail'], true );		$rinfo ['accountItem'] = json_decode ( $rinfo ['accountItem'], true );		$rinfo ['loanItem'] = json_decode ( $rinfo ['loanItem'], true );		$rinfo ['category'] = $sinfo ['category'];		$verifyStaff = array ();		if (! empty ( $rinfo ['verifyStaff'] ))			$verifyStaff = json_decode ( $rinfo ['verifyStaff'], true );				$relust = bcsub ( $rinfo ['sum'], $rinfo ['loanSum'], 2 );		$rinfo ['relust'] = $relust;		$rinfo ['relustCN'] = $this->num_to_rmb ( $relust );		$rinfo ['sumCN'] = $this->num_to_rmb ( $rinfo ['sum'] );		$rinfo ['loanSumCN'] = $this->num_to_rmb ( $rinfo ['loanSum'] );		$rinfo ['amountCN'] = $this->num_to_rmb ( $rinfo ['amount'] );				// 费用执行人相关数据		$executeCopy = json_decode ( $rinfo ['executeCopy'], true );		$executeStaff = json_decode ( $rinfo ['executeStaff'], true );		foreach ( $executeCopy as $k => $v ) {			$executeCopy [$k] ['date'] = '';			$executeCopy [$k] ['opinion'] = '';			$executeCopy [$k] ['status'] = '';			if (! empty ( $executeStaff ))				foreach ( $executeStaff as $m => $u ) {					if ($v [0] == $m) {						$executeCopy [$k] ['date'] = $u ['date'];						$executeCopy [$k] ['opinion'] = $u ['opinion'];						$executeCopy [$k] ['status'] = $u ['status'];						break;					}				}		}		$rinfo ['executeCopy'] = $executeCopy;				$html = '<div class="modal-dialog modal-lg"><div class="modal-content"><div class="modal-header"><h3>费用详情</h3></div><div class="modal-body saeaList">';				if ($rinfo ['Rtype'] == 1) { // 借款费用			$html .= '<table class="table table-bordered table-condensed table-hover"><tbody>					<tr><th colspan="2" class="taC">借款费用</th></tr>';						foreach ( $rinfo ['loanItem'] ['借款费用'] as $value ) {				$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';			}			$html .= '<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>						<tr><th style="text-align:center" colspan="2">' . $rinfo ['category'] . '</th></tr>						<tr><th class="taC" colspan="2">费用说明</th>						</tr><tr><td colspan="2">' . $rinfo ['explanation'] . '</td></tr>						<tr class="warning"><td class="taR"><b>(' . $rinfo ['receiptOrder'] . ')本次费用合计</b></td>						<td class="taR"><b style="font-size:24px">¥' . $rinfo ['loanSum'] . '</b><br>' . $rinfo ['loanSumCN'] . '</td></tr>						</tbody></table>';			if ($rinfo ['loanRid'] != 0 && ! empty ( $rinfo ['accountItem'] )) {								$html .= '<table class="table table-bordered table-condensed table-hover"><tbody>';								$html .= '<tr><th colspan="2" class="taC">日常相关费用</th></tr>';				foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {					$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';				}				$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . '</td></tr>';								$html .= '<tr><th colspan="2" class="taC">差旅相关费用</th></tr>';				foreach ( $rinfo ['accountItem'] ['差旅相关费用'] as $value ) {					$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';				}				$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['travelSum'] . '</td></tr>';								$html .= '<tr><th colspan="2" class="taC">培训班费用</th></tr>';				foreach ( $rinfo ['accountItem'] ['培训班费用'] as $value ) {					$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';				}				$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['trainSum'] . '</td></tr>';								$html .= '<tr><th colspan="2" class="taC">其他</th></tr>';				foreach ( $rinfo ['accountItem'] ['其他'] as $value ) {					$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';				}				$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['otherSum'] . '</td></tr>';								$html .= '<tr><th colspan="2" class="taC">报销金额调整</th></tr>';				foreach ( $rinfo ['reviseDetail'] as $value ) {					$html .= '<tr><th><span class="interval">|</span>' . $value ['name'] . ':' . $value ['description'] . '</th>							<td class="taR">¥' . $value ['price'] . '</td></tr>';				}				$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['revisePrice'] . '</td></tr>';								$html .= '<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>						<tr><th style="text-align:center" colspan="2">' . $rinfo ['category'] . '</th></tr>						<tr><th class="taC" colspan="2">报销说明</th></tr>								<tr><td colspan="2">' . $rinfo ['explanation'] . '</td></tr>								<tr class="warning"><td class="taR"><b>(' . $rinfo ['receiptOrder'] . ')本次报销费用合计</b></td>								<td class="colGreed taR"><b style="font-size:24px">¥' . $rinfo ['sum'] . '</b><br>' . $rinfo ['sumCN'] . '</td></tr>								<tr';				if ($rinfo ['relust'] >= 0) {					$html .= 'class="success"';				} else {					$html .= 'class="error"';				}				$html .= '><td class="taR"><b>借款结余</b></td>						<td class="taR"><b style="font-size:24px">¥' . $rinfo ['relust'] . '</b><br>' . $rinfo ['relustCN'] . '</td></tr>	  					</tbody></table>						';			}		} elseif ($rinfo ['Rtype'] == 2) { // 对公汇款						$html .= '<table class="table table-bordered table-condensed table-hover"><tbody>					<tr><th colspan="2" class="taC">办事处相关费用</th></tr>';						foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {				$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';			}			$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . '</td></tr>';						$html .= '<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>						<tr><th style="text-align:center" colspan="2">' . $rinfo ['category'] . '</th></tr>						<tr><th class="taC" colspan="2">费用说明</th>						</tr><tr><td colspan="2">' . $rinfo ['explanation'] . '</td></tr>						<tr class="warning"><td class="taR"><b>(' . $rinfo ['receiptOrder'] . ')本次费用合计</b></td>						<td class="taR"><b style="font-size:24px">¥' . $rinfo ['sum'] . '</b><br>' . $rinfo ['sumCN'] . '</td></tr>						</tbody></table>';		} else {						$html .= '<table class="table table-bordered table-condensed table-hover"><tbody>';						$html .= '<tr><th colspan="2" class="taC">日常相关费用</th></tr>';			foreach ( $rinfo ['accountItem'] ['日常相关费用'] as $value ) {				$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';			}			$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['agencySum'] . '</td></tr>';						$html .= '<tr><th colspan="2" class="taC">差旅相关费用</th></tr>';			foreach ( $rinfo ['accountItem'] ['差旅相关费用'] as $value ) {				$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';			}			$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['travelSum'] . '</td></tr>';						$html .= '<tr><th colspan="2" class="taC">培训班费用</th></tr>';			foreach ( $rinfo ['accountItem'] ['培训班费用'] as $value ) {				$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';			}			$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['trainSum'] . '</td></tr>';						$html .= '<tr><th colspan="2" class="taC">其他</th></tr>';			foreach ( $rinfo ['accountItem'] ['其他'] as $value ) {				$html .= '<tr><th>' . $value ['name'] . '</th>							<td  width="140" class="taR">¥' . $value ['price'] . '</td></tr>';			}			$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['accountItem'] ['cSum'] ['otherSum'] . '</td></tr>';						$html .= '<tr><th colspan="2" class="taC">报销金额调整</th></tr>';			foreach ( $rinfo ['reviseDetail'] as $value ) {				$html .= '<tr><th><span class="interval">|</span>' . $value ['name'] . ':' . $value ['description'] . '</th>							<td class="taR">¥' . $value ['price'] . '</td></tr>';			}			$html .= '<tr><th class="taR">合计</th>						<td class="colGreen taR">¥' . $rinfo ['revisePrice'] . '</td></tr>';						$html .= '<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>						<tr><th style="text-align:center" colspan="2">' . $rinfo ['category'] . '</th></tr>						<tr><th class="taC" colspan="2">报销说明</th></tr>						<tr><td colspan="2">' . $rinfo ['explanation'] . '</td></tr>						<tr class="warning"><td class="taR"><b>(' . $rinfo ['receiptOrder'] . ')本次报销费用合计</b></td>						<td class="colGreed taR"><b style="font-size:24px">¥' . $rinfo ['sum'] . '</b><br>' . $rinfo ['sumCN'] . '</td></tr>';						$html .= '</tbody></table>';						/*			 * <table class="table table-bordered table-condensed table-hover"> <tbody> <tr><th colspan="2" class="taC">日常相关费用</th></tr> <!-- loop receiptList' value.accountItem.日常相关费用 --> <tr><th>{{receiptList' value' value.name}}</th><td width="140" class="taR">¥{{receiptList' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colGreen taR">¥{{receiptList' value.accountItem.cSum.agencySum}}</td></tr> <tr><th colspan="2" class="taC">差旅相关费用</th></tr> <!-- loop receiptDetail' value.accountItem.差旅相关费用 --> <tr><th>{{receiptDetail' value' value.name}}</th><td width="140" class="taR">¥{{receiptDetail' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colGreen taR">¥{{receiptDetail' value.accountItem.cSum.travelSum}}</td></tr> <tr><th colspan="2" class="taC">培训班费用</th></tr> <!-- loop receiptDetail' value.accountItem.培训班费用 --> <tr><th>{{receiptDetail' value' value.name}}</th><td width="140" class="taR">¥{{receiptDetail' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colGreen taR">¥{{receiptDetail' value.accountItem.cSum.trainSum}}</td></tr> <tr><th colspan="2" class="taC">其他</th></tr> <!-- loop receiptDetail' value.accountItem.其他 --> <tr><th>{{receiptDetail' value' value.name}}</th><td width="140" class="taR">¥{{receiptDetail' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colGreen taR">¥{{receiptDetail' value.accountItem.cSum.otherSum}}</td></tr> <tr><th colspan="2" class="taC">报销金额调整</th></tr> <!-- loop receiptList' value.reviseDetail --> <tr><th><span class="interval">|</span>{{receiptList' value' value.name}}:{{receiptList' value' value.description}}</th><td class="taR">¥{{receiptList' value' value.price}}</td></tr> <!-- endloop --> <tr><th class="taR">合计</th><td class="colOrange taR">¥{{receiptList' value.revisePrice}}</td></tr> <tr><th class="taC" colspan="2">产生费用所在办事处</th></tr> <tr><th style="text-align:center" colspan="2">{{receiptDetail' value.category}}</th></tr> <tr><th class="taC" colspan="2">报销说明</th></tr> <tr><td colspan="2">{{receiptDetail' value.explanation}}</td></tr> <tr class="warning"><td class="taR"><b>({{receiptDetail' value.receiptOrder}})本次报销费用合计</b></td> <td class="colGreed taR"><b style="font-size:24px">¥{{receiptDetail' value.sum}}</b><br>{{receiptDetail' value.sumCN}}</td></tr> </tbody> </table>			 */		}		// print_r($verifyStaff);die;		$html .= '<table class="table table-bordered table-condensed"><tbody><tr><th class="taC" width="90">审批人</th><th class="taC">审批意见</th></tr>';		foreach ( $verifyStaff as $key => $value ) {			$key = trim ( strtr ( $key, '_R', '  ' ) );			$sinfo = $staff->getOne ( array (					'select' => 'username',					'where' => ' sid=' . $key,					'asArray' => true 			) );			$html .= '<tr><td>' . $sinfo ['username'] . '</td><td>' . $value ['opinion'] . '</td></tr>';		}		$html .= '</tbody></table>';				$html .= '<table class="table table-bordered table-condensed"><tbody><tr><th class="taC" width="90">执行人</th><th class="taC">执行意见</th></tr>';		foreach ( $rinfo ['executeCopy'] as $value ) {			$html .= '<tr><td>' . $value [1] . '</td><td>' . $value ['opinion'] . '</td></tr>';		}		$html .= '</tbody></table>';				$html .= '<table class="table table-bordered table-condensed"><tr class="warning"><td class="taR"><b>汇款金额</b></td>				<td  width="140" class="taR"><b style="font-size:24px">¥' . $rinfo ['amount'] . '</b><br>' . $rinfo ['amountCN'] . '</td>			</tr></table>';				$html .= '</div><div class="modal-footer"><a href="#" class="button btn-gray" data-dismiss="modal" aria-hidden="true">关闭</a></div></div></div>';				echo json_encode ( array (				'status' => 1,				'html' => $html 		) );				die ();	}		/**	 * 删除附件	 */	function ajaxRemEnclousur() {		$key = $this->get_args ( 'key' ) ? $this->get_args ( 'key' ) : '';				if (empty ( $key ))			echo json_encode ( array (					'status' => 2 			) );		Doo::loadModel ( 'enclosur' );		$enclosur = new enclosur ();				$enclosur->delEnclosurByEid ( $key );				echo json_encode ( array (				'status' => 1 		) );	}	function remittance() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				$dateCondition = " and Year(pastDate) =" . $year;		if (! empty ( $month ))			$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $month;						// get Receipt By verifyID status 1		$receiptList = $receipt->find ( array (				'select' => 'sum(sum) as sum,staff,pastDate',				'where' => ' status=1' . $dateCondition,				'desc' => 'pastDate',				'groupby' => 'staff,pastDate',				'asArray' => true 		) );		$dateList = $receipt->find ( array (				'select' => 'pastDate,verifyStaff',				'where' => ' status=1' . $dateCondition,				'desc' => 'pastDate',				'groupby' => 'pastDate',				'asArray' => true 		) );		$dataList = array ();		foreach ( $dateList as $d => $a ) {			$dataList [$a ['pastDate']] = array ();			$daySum = 0;			foreach ( $receiptList as $key => $value ) {				if ($a ['pastDate'] == $value ['pastDate']) {					$oderList = $receipt->find ( array (							'select' => 'receiptOrder',							'where' => ' status=1 and staff=' . $value ['staff'] . ' and pastDate=\'' . $a ['pastDate'] . '\'',							'asArray' => true 					) );					$list = array ();					$html = "";					foreach ( $oderList as $v ) {						array_push ( $list, $v ['receiptOrder'] );						$html .= '<a class="fL" href="#comment" onclick=showOpinion("' . $v ['receiptOrder'] . '") data="" data-toggle="modal"> ' . $v ['receiptOrder'] . '、</a>';					}					$receiptList [$key] ['receiptOrder'] = $html;					// $receiptList[$key]['receiptOrder']=implode(",", $list);										$sinfo = $staff->getOne ( array (							'select' => 'username ',							'where' => ' sid=' . $value ['staff'],							'asArray' => true 					) );					$receiptList [$key] ['username'] = $sinfo ['username'];					$daySum += $value ['sum'];					array_push ( $dataList [$a ['pastDate']], $receiptList [$key] );				}				$dataList [$a ['pastDate']] ['9999999'] = number_format ( $daySum, 2 );				// $dataList[$a['pastDate']]['8888888']=json_decode($a['verifyStaff'],true);			}		}		// print_r($dataList);		$data ['dataList'] = $dataList;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}		$data ['year'] = $year;		$data ['mothHtml'] = $mothHtml;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approval';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/saeaReportListPay", $data );	}	/**	 * 金额调整,提高稳定性	 * @return string	 */	function revocationAdjustment() {		$sidKey = isset ( $this->params ['sidKey'] ) ? $this->params ['sidKey'] : '';		$price = isset ( $this->params ['price'] ) && is_numeric ( $this->params ['price'] ) ? $this->params ['price'] : - 99999;		$ridKey = isset ( $this->params ['ridKey'] ) ? $this->params ['ridKey'] : '';		$reviseKey = isset ( $this->params ['reviseKey'] ) ? $this->params ['reviseKey'] : '';				if ((! empty ( $sidKey )) && ($price != - 99999) && (! empty ( $ridKey ) && (! empty ( $reviseKey )))) {						Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();						$sid = $XDeode->decode ( $sidKey );			$rid = $XDeode->decode ( $ridKey );			$reviseKey = $XDeode->decode ( $reviseKey );			if (! is_numeric ( $sid ) && ! is_numeric ( $rid ) && ! is_numeric ( $reviseKey ))				die ( 'illegal request' );						$receiptDetail = $receipt->getOne ( array (					'where' => 'rid=' . $rid,					'asArray' => true 			) );						if (empty ( $receiptDetail ) || empty ( $receiptDetail ['reviseDetail'] ))				die ( 'illegal request' );						$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );						if (! isset ( $reviseDetail [$reviseKey] ))				die ( 'illegal request' );			if ($reviseDetail [$reviseKey] ['sid'] == $sid && $reviseDetail [$reviseKey] ['price'] == $price)				unset ( $reviseDetail [$reviseKey] );						$revisePrice = 0;			foreach ( $reviseDetail as $key => $value ) {				$revisePrice += $value ['price'];			}						$reviseDetailString = json_encode ( $reviseDetail );			$receipt->reviseDetail = $reviseDetailString;			$receipt->sum = $receiptDetail ['sum'] - $price;			$receipt->revisePrice = $revisePrice;			$receipt->update ( array (					'where' => 'rid=' . $rid 			) );			return '/receiptburEdi/' . $rid;		} else			die ( 'illegal request2' );	}	function updateApprovalReceipt() {		$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";		$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;		$Locate = $this->get_args ( 'Locate' ) && is_numeric ( $this->get_args ( 'Locate' ) ) ? $this->get_args ( 'Locate' ) : 0;		$amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : 0;				if (! empty ( $rid )) {						Doo::loadModel ( "verify" );			$verify = new verify ();			Doo::loadModel ( "receiptDetail" );			$receiptDetailObj = new receiptDetail ();			Doo::loadModel ( "itemStatistics" );			Doo::loadModel ( "statistics" );			$statistics = new statistics ();			$itemStatistics = new itemStatistics ();						Doo::loadModel ( "receipt" );			$receipt = new receipt ();						$receiptDetail = $receipt->getOne ( array (					'where' => 'rid=' . $rid . ' and status=2 ',					'asArray' => true 			) );						$nslist = explode ( ',', $receiptDetail ['nowStaff'] );			$nsflag = true;			foreach ( $nslist as $value ) {				if ($value == $this->staff ['0'] ['sid']) {					$nsflag = false;					break;				}			}						if (empty ( $receiptDetail ) || $nsflag)				return "/approvalExpenses/pendApproval";							$verifyDetail = $verify->getOne ( array (					'where' => ' vid =' . $receiptDetail ['verify'],					'asArray' => true 			) );			$verifyString = $verifyDetail ['staff'];			$verifyDetail = json_decode ( $verifyDetail ['staff'], true );						$verifyStaff = json_decode ( $receiptDetail ['verifyStaff'], true );						if (empty ( $opinion )) {				if ($status == 3)					$opinion = "终止";				else					$opinion = "同意支付";			}						$nowStaff = 0;			$nowStaffList = array ();						if (empty ( $verifyStaff )) {								// 还需加入是否已经进入角色审批				if ($verifyDetail [0] [1] == 'ROLE') {										$vStaffString = json_decode ( $verifyDetail [0] [3] );										foreach ( $vStaffString as $key => $value ) {						$staffK = explode ( "_", $value );						if ($staffK [0] != $this->staff [0] ['sid'])							array_push ( $nowStaffList, $staffK [0] );					}										// print_r($verifyDetail);					// die;					if (! empty ( $nowStaffList )) {						$nowStaff = implode ( ',', $nowStaffList );						$verifyStaff = array (								$this->staff [0] ['sid'] . "_R" => array (										'date' => date ( 'Y-m-d' ),										'opinion' => $opinion,										'status' => $status,										'nextStaff' => $verifyDetail [0] [0],										'ROLE' => 1 								) 						);					} else {						$nowStaff = $verifyDetail [1] [0];						$verifyStaff = array (								$this->staff [0] ['sid'] . "_R" => array (										'date' => date ( 'Y-m-d' ),										'opinion' => $opinion,										'status' => $status,										'nextStaff' => $verifyDetail [1] [0] 								) 						);					}				} else {										if ($verifyDetail [1] [1] == 'ROLE') {						$vStaffString = json_decode ( $verifyDetail [1] [3] );						// echo "dd";						foreach ( $vStaffString as $key => $value ) {							$staffK = explode ( "_", $value );							array_push ( $nowStaffList, $staffK [0] );						}						$nowStaff = implode ( ',', $nowStaffList );						$verifyStaff = array (								$this->staff [0] ['sid'] => array (										'date' => date ( 'Y-m-d' ),										'opinion' => $opinion,										'status' => $status,										'nextStaff' => $verifyDetail [1] [0],										'ROLE' => 1 								) 						);					} else {						$nowStaff = $verifyDetail [1] [0];						$verifyStaff = array (								$this->staff [0] ['sid'] => array (										'date' => date ( 'Y-m-d' ),										'opinion' => $opinion,										'status' => $status,										'nextStaff' => $verifyDetail [1] [0] 								) 						);					}				}								if ($status == 3)					$verifyStaff = array (							'final' => $status,							$this->staff [0] ['sid'] => array (									'date' => date ( 'Y-m-d' ),									'opinion' => $opinion,									'status' => $status 							) 					);								$vStaffString = json_encode ( $verifyStaff );				$receipt->nowStaff = $nowStaff;				$receipt->verifyStaff = $vStaffString;			} else {				$VS = end ( $verifyStaff );								// 非角色审批				if (! array_key_exists ( $this->staff [0] ['sid'], $verifyStaff ) && ! isset ( $VS ['ROLE'] )) {					$nextStaff = 0;					$roleSTF = false;					foreach ( $verifyDetail as $key => $value ) {						if ($value [0] == $this->staff [0] ['sid'] && $value [1] != 'ROLE') {							if (isset ( $verifyDetail [$key + 1] )) {								$nextStaff = $verifyDetail [$key + 1] [0];								if ($verifyDetail [$key + 1] [1] == 'ROLE')									$roleSTF = true;							}							break;						}					}										if (! $roleSTF) {						$nowStaff = $nextStaff;						$verifyStaff [$this->staff [0] ['sid']] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status,								'nextStaff' => $nextStaff 						);					} else {						// 获取角色下的所有用户ID						$nowStaffList = array ();						foreach ( $verifyDetail as $vfk ) {							if ($vfk [1] == 'ROLE') {								$vStaffString = json_decode ( $vfk [3] );								foreach ( $vStaffString as $key => $value ) {									$staffK = explode ( "_", $value );									array_push ( $nowStaffList, $staffK [0] );								}							}						}												$nowStaff = implode ( ',', $nowStaffList );						$verifyStaff [$this->staff [0] ['sid']] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status,								'nextStaff' => $nextStaff,								'ROLE' => 0 						);					}										if ($status == 3) {						$verifyStaff ['final'] = $status;						$verifyStaff [$this->staff [0] ['sid']] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status 						);					}					$vStaffString = json_encode ( $verifyStaff );					$receipt->nowStaff = $nowStaff;					$receipt->verifyStaff = $vStaffString;				}								// 角色审批				if (isset ( $VS ['ROLE'] )) {										// 找出角色人 当前审批角色组					$verifyJSStaff = array ();					$nowStaffList2 = array ();					foreach ( $verifyDetail as $key => $value ) {						if ($value [1] == 'ROLE' && $value [0] == $VS ['nextStaff']) {							$verifyJSStaff = json_decode ( $value [3] );							foreach ( $verifyJSStaff as $m ) {								$staffK = explode ( "_", $m );								array_push ( $nowStaffList2, $staffK [0] );							}							// print_r($nowStaffList2);						}					}										$RoleVerifyStaff = array ();					foreach ( $verifyStaff as $key => $value ) {						if (isset ( $value ['ROLE'] ) && $value ['ROLE'] == 1 && $VS ['nextStaff'] == $value ['nextStaff']) {							foreach ( $nowStaffList2 as $m ) {								if ($key == $m . "_R")									$RoleVerifyStaff [$key] = $value;							}						}					}										// print_r($verifyStaff);					// print_r($nowStaffList2);					// print_r($RoleVerifyStaff);					// if (!array_key_exists($this->staff[0]['sid'],$RoleVerifyStaff)){					// print_r($verifyJSStaff);					$jsCount = count ( $verifyJSStaff ) - 1; // echo $jsCount;die;					if ($jsCount == count ( $RoleVerifyStaff )) { // 或者					                                              // 下一个审批人ID												$nextStaff = 0;						$falg = false;						foreach ( $verifyDetail as $key => $value ) {							if ($value [0] == $VS ['nextStaff'] && $value [1] == 'ROLE') {																if (isset ( $verifyDetail [$key + 1] ) && $verifyDetail [$key + 1] [1] == 'ROLE') {									$falg = true;									$vStaffString = json_decode ( $verifyDetail [$key + 1] [3] );									$nowStaffList = array ();									foreach ( $vStaffString as $v ) {										$staffK = explode ( "_", $v );										array_push ( $nowStaffList, $staffK [0] );									}									$nowStaff = implode ( ',', $nowStaffList );																		$nextStaff = $verifyDetail [$key + 1] [0];								} elseif (isset ( $verifyDetail [$key + 1] )) {									$nextStaff = $verifyDetail [$key + 1] [0];									$nowStaff = $nextStaff;								} else									$nowStaff = '';								break;							}						}												if ($falg)							$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (									'date' => date ( 'Y-m-d' ),									'opinion' => $opinion,									'status' => $status,									'nextStaff' => $nextStaff,									'ROLE' => 1 							);						else							$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (									'date' => date ( 'Y-m-d' ),									'opinion' => $opinion,									'status' => $status,									'nextStaff' => $nextStaff 							);												// print_r($verifyStaff);						// echo $nowStaff;die;					} else { // 进入下一个角色或者审批人					         						// echo str_replace($this->staff[0]['sid'], '', $receiptDetail['nowStaff']);					         //						$nowStaff = str_replace ( $this->staff [0] ['sid'], '', $receiptDetail ['nowStaff'] );												$verifyStaff [$this->staff [0] ['sid'] . '_R'] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status,								'nextStaff' => $VS ['nextStaff'],								'ROLE' => 1 						);												// print_r($verifyStaff);						// die;					}										if ($status == 3) {						$verifyStaff ['final'] = $status;						$verifyStaff [$this->staff [0] ['sid']] = array (								'date' => date ( 'Y-m-d' ),								'opinion' => $opinion,								'status' => $status 						);					}					$vStaffString = json_encode ( $verifyStaff );					$receipt->verifyStaff = $vStaffString;					$receipt->nowStaff = $nowStaff;										// die;					// }					// print_r($verifyStaff);					// die;				}				// print_r($verifyStaff);die;			}						// print_r($verifyDetail);						$roleKey = 0;			$roleId = 0;			$verifyDetailCopy = array ();			foreach ( $verifyDetail as $k => $v ) {				if ($v [1] == 'ROLE') {					$roleId = $v [0];					$roleVerify = json_decode ( $v [3], true );					$roleKey = $k;					$roleArray = array ();					foreach ( $roleVerify as $o => $p ) {						$staffID = explode ( '_', $p );						$exp = array (								0 => $staffID [0],								1 => $staffID [1] 						);						array_push ( $roleArray, $exp );					}					$verifyDetailCopy [$v [0]] = $roleArray;				}			}			// print_r($verifyDetail);			foreach ( $verifyDetailCopy as $k => $v ) {				foreach ( $verifyDetail as $m => $n ) {					if ($n [0] == $k) {						array_splice ( $verifyDetail, $m, 1, $v );					}				}			}						// die;			// if (!empty($roleArray))			// array_splice($verifyDetail,$roleKey,1,$roleArray);						// echo $roleId;			// print_r($verifyStaff);			// print_r($verifyDetail);			// die;			Doo::loadModel ( "receiptLog" );			$receiptLog = new receiptLog ();			// 审批日志			if (! isset ( $verifyStaff ['final'] )) {								if (! empty ( $roleId )) {					Doo::loadModel ( "role" );					$role = new role ();					$roleInfo = $role->getOne ( array (							'where' => 'rid=' . $roleId,							'asArray' => true 					) );										$receiptLog->rolename = $roleInfo ['name'];				}								$receiptLog->username = $this->staff [0] ['username'];				$receiptLog->uid = $this->staff [0] ['sid'];				$receiptLog->date = date ( "Y-m-d" );				$receiptLog->opinion = $opinion;				$receiptLog->img = $this->staff [0] ['avatar'];				$receiptLog->status = 1;				$receiptLog->rid = $rid;				$receiptLog->insert ();			}						if (isset ( $verifyStaff ['final'] )) { // rDetail				$receipt->verifyBreakup = $verifyString;				$receipt->status = 3;				$receiptDetailObj->status = 3;				$receiptDetailObj->update ( array (						'where' => 'rid=' . $rid 				) );								if (! empty ( $roleId )) {					Doo::loadModel ( "role" );					$role = new role ();					$roleInfo = $role->getOne ( array (							'where' => 'rid=' . $roleId,							'asArray' => true 					) );										$receiptLog->rolename = $roleInfo ['name'];				}								$receiptLog->username = $this->staff [0] ['username'];				$receiptLog->uid = $this->staff [0] ['sid'];				$receiptLog->date = date ( "Y-m-d" );				$receiptLog->opinion = $opinion;				$receiptLog->img = $this->staff [0] ['avatar'];				$receiptLog->status = 3;				$receiptLog->rid = $rid;				$receiptLog->insert ();				//删除行程单				Doo::loadModel ( 'itinerary' );				$itinerary = new itinerary ();				$itinerary->delete ( array (						'where' => 'rid="' . $rid . '"'				) );								// 微信企业号通知				$this->setWXMsg ( $rid, 3 );			} elseif (count ( $verifyStaff ) == count ( $verifyDetail )) { // 要修改 角色的数量				$receipt->status = 1;				$reviseSum = 0;				$receipt->verifyBreakup = $verifyString;				if (! empty ( $receiptDetail ['reviseDetail'] )) { // statistics item rDetail					$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );										foreach ( $reviseDetail as $key => $value ) {						$receiptDetailObj = new receiptDetail ();						$receiptDetailObj->staff = $receiptDetail ['staff']; // $this->staff[0]['sid'];						$receiptDetailObj->item = $value ['description'];						$receiptDetailObj->itemCategory = "报销金额调整";						$receiptDetailObj->price = $value ['price'];						$receiptDetailObj->date = $receiptDetail ['date'];						$receiptDetailObj->cid = $this->staff [0] ['cid'];						$receiptDetailObj->rid = $rid;						$receiptDetailObj->status = 1;						$receiptDetailObj->insert ();						$reviseSum += $value ['price'];					}										$itemStatistics = new itemStatistics ();					$itemStatistics->cid = $receiptDetail ['cid']; // $this->staff[0]['cid'];					$itemStatistics->staff = $receiptDetail ['staff']; // $this->staff[0]['sid'];					$itemStatistics->price = $reviseSum;					$itemStatistics->itemCategory = "报销金额调整";					$itemStatistics->date = $receiptDetail ['date'];					$itemStatistics->insert ();				}				$receiptDetailObj = new receiptDetail ();				$receiptDetailObj->status = 1;				$receiptDetailObj->pastDate = date ( "Y-m-d" );				$receiptDetailObj->update ( array (						'where' => 'rid=' . $rid 				) );								$dateArray = explode ( "-", $receiptDetail ['date'] );				$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];				$stat = $statistics->getOne ( array (						'where' => 'staff=' . $receiptDetail ['staff'] . $dateCondition,						'asArray' => true 				) );				if (empty ( $stat )) {					$statistics->date = $receiptDetail ['date'];					$statistics->cid = $receiptDetail ['cid']; // $this->staff[0]['cid'];					$statistics->staff = $receiptDetail ['staff']; // $this->staff[0]['sid'];					$statistics->agPrice = $receiptDetail ['sum'];					$statistics->rePrice = $reviseSum;					$statistics->insert ();				} else {					$statistics->agPrice = $stat ['agPrice'] + $receiptDetail ['sum'];					$statistics->rePrice = $stat ['rePrice'] + $reviseSum;					$statistics->update ( array (							'where' => 'sid=' . $stat ['sid'] 					) );				}								$dateArray = explode ( "-", $receiptDetail ['date'] );				$dateCondition = " and Year(date) =" . $dateArray [0] . " and Month(date) = " . $dateArray [1];				$accountItem = json_decode ( $receiptDetail ['accountItem'], true );				foreach ( $accountItem ['cSum'] as $key => $value ) {					if ($key == "agencySum") {						$iStatistics = $itemStatistics->getOne ( array (								'where' => 'staff=' . $receiptDetail ['staff'] . ' and itemCategory="' . $this->AGENCY . '"' . $dateCondition,								'asArray' => true 						) );						if (empty ( $iStatistics )) {							$itemStatistics->cid = $receiptDetail ['cid'];							;							$itemStatistics->staff = $receiptDetail ['staff'];							$itemStatistics->price = $value;							$itemStatistics->itemCategory = $this->AGENCY;							$itemStatistics->date = $receiptDetail ['date'];							$itemStatistics->insert ();						} else {							if (! empty ( $value )) {								$itemStatistics->price = $value + $iStatistics ['price'];								$itemStatistics->update ( array (										'where' => 'sid=' . $iStatistics ['sid'] 								) );							}						}					} elseif ($key == "travelSum") {						$iStatistics = $itemStatistics->getOne ( array (								'where' => 'staff=' . $receiptDetail ['staff'] . ' and itemCategory="' . $this->TRAVEL . '"' . $dateCondition,								'asArray' => true 						) );						if (empty ( $iStatistics )) {							$itemStatistics->cid = $receiptDetail ['cid'];							$itemStatistics->staff = $receiptDetail ['staff'];							$itemStatistics->price = $value;							$itemStatistics->itemCategory = $this->TRAVEL;							$itemStatistics->date = $receiptDetail ['date'];							$itemStatistics->insert ();						} else {							if (! empty ( $value )) {								$itemStatistics->price = $value + $iStatistics ['price'];								$itemStatistics->update ( array (										'where' => 'sid=' . $iStatistics ['sid'] 								) );							}						}					} elseif ($key == "trainSum") {						$iStatistics = $itemStatistics->getOne ( array (								'where' => 'staff=' . $receiptDetail ['staff'] . ' and itemCategory="' . $this->TRAIN . '"' . $dateCondition,								'asArray' => true 						) );						if (empty ( $iStatistics )) {							$itemStatistics->cid = $receiptDetail ['cid'];							$itemStatistics->staff = $receiptDetail ['staff'];							$itemStatistics->price = $value;							$itemStatistics->itemCategory = $this->TRAIN;							$itemStatistics->date = $receiptDetail ['date'];							$itemStatistics->insert ();						} else {							if (! empty ( $value )) {								$itemStatistics->price = $value + $iStatistics ['price'];								$itemStatistics->update ( array (										'where' => 'sid=' . $iStatistics ['sid'] 								) );							}						}					} elseif ($key == "otherSum") {						$iStatistics = $itemStatistics->getOne ( array (								'where' => 'staff=' . $receiptDetail ['staff'] . ' and itemCategory="' . $this->OTHER . '"' . $dateCondition,								'asArray' => true 						) );						if (empty ( $iStatistics )) {							$itemStatistics->cid = $receiptDetail ['cid'];							$itemStatistics->staff = $receiptDetail ['staff'];							$itemStatistics->price = $value;							$itemStatistics->itemCategory = $this->OTHER;							$itemStatistics->date = $receiptDetail ['date'];							$itemStatistics->insert ();						} else {							if (! empty ( $value )) {								$itemStatistics->price = $value + $iStatistics ['price'];								$itemStatistics->update ( array (										'where' => 'sid=' . $iStatistics ['sid'] 								) );							}						}					}				}				$receipt->pastDate = date ( "Y-m-d" );								// 微信企业号通知				$this->setWXMsg ( $rid, 1 );			}			//是否有流水			Doo::loadModel ( 'wasteBook' );			$wasteBook = new wasteBook ();			$accountType=3;			if ($receiptDetail['Rtype']==1){				$accountType=2;			}elseif($receiptDetail['Rtype']==2){				$accountType=4;			}			$wbDetail = $wasteBook->getWateBookByAD ( $accountType, $rid );			if (empty($wbDetail)){				$rsum=$receiptDetail['sum']-$receiptDetail['loanSum'];				$receipt->amount = $rsum;//$amount;			}									$receipt->update ( array (					'where' => ' rid = ' . $rid 			) );						// 进入下一条审批费用新加需求			$vidList = array ();			$verifyDetail = $verify->find ( array (					'where' => ' (staff not like "%\"' . $this->staff [0] ['sid'] . '\",\"ROLE%") and (staff like "%[\"' . $this->staff [0] ['sid'] . '\",%" or staff like "%\"' . $this->staff [0] ['sid'] . '\_%" )',					'asArray' => true 			) );			foreach ( $verifyDetail as $key => $value ) {				array_push ( $vidList, $value ['vid'] );			}			$vid = implode ( ",", $vidList );			if (empty ( $verifyDetail ))				$vid = 0;						$approvalCondition = ' and status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )';			$receipt = new receipt ();			$rd = $receipt->getOne ( array (					'where' => 'status!=5 ' . $approvalCondition . ' and verify in(' . $vid . ') and Rtype!=3',					'asc' => 'rid',					'asArray' => true 			) );						if (empty ( $rd )) {				return '/approvalExpenses/pendApproval';			}			if ($rd ['Rtype'] == 1) {				if ($rd ['isBK'] == 1) {					return '/receiptburEdi/' . $rd ['rid'];				} else {					return '/expensesEdi/' . $rd ['rid'];				}			} elseif ($rd ['Rtype'] == 2) {				return '/remitApproval/' . $rd ['rid'];			} else {				return '/receiptburEdi/' . $rd ['rid'];			}			// return "/approvalExpenses/pendApproval";		}	}	function expensesRetreats() {		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				if (! empty ( $rid )) {			// 操作记录			Doo::loadModel ( "receipt" );			$receipt = new receipt ();			Doo::loadModel ( "receiptLog" );			$receiptLog = new receiptLog ();			Doo::loadModel ( "verify" );			$verify = new verify ();						$receiptInfo = $receipt->getOne ( array (					'where' => 'rid=' . $rid,					'asArray' => true 			) );			$vr = $verify->getOne ( array (					'where' => 'vid=' . $receiptInfo ['verify'],					'asArray' => true 			) );						$jd = json_decode ( $vr ['staff'] );			$roleId = 0;						foreach ( $jd as $key => $value ) {				if ($value [1] == 'ROLE') {					$pos = strpos ( $value [3], $this->staff [0] ['sid'] );					if ($pos !== false) {						$roleId = $value [0];					}				}			}						// 审批日志			// echo $roleId;die;						if (! empty ( $roleId )) {				Doo::loadModel ( "role" );				$role = new role ();				$roleInfo = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );								$receiptLog->rolename = $roleInfo ['name'];			}						$receiptLog->username = $this->staff [0] ['username'];			$receiptLog->uid = $this->staff [0] ['sid'];			$receiptLog->date = date ( "Y-m-d" );			$receiptLog->opinion = '撤回';			$receiptLog->img = $this->staff [0] ['avatar'];			$receiptLog->status = 4;			$receiptLog->rid = $rid;			$receiptLog->insert ();						$receipt->status = 4;			$receipt->update ( array (					'where' => 'rid=' . $rid 			) );						// 微信企业号通知			$this->setWXMsg ( $rid, 2 );		}				// echo "ddd";		return '/approvalExpenses/pendApproval';	}	function updateCheReceipt() {		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;		$opinion = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";				// $rid=isset($this->params['rid'])&&is_numeric($this->params['rid'])?$this->params['rid']:0;				if (! empty ( $rid )) {			// 操作记录			Doo::loadModel ( "receipt" );			$receipt = new receipt ();			Doo::loadModel ( "receiptLog" );			$receiptLog = new receiptLog ();			Doo::loadModel ( "verify" );			$verify = new verify ();						$receiptInfo = $receipt->getOne ( array (					'where' => 'rid=' . $rid . ' and status=2',					'asArray' => true 			) );						if (empty ( $receiptInfo )) {				echo json_encode ( array (						'status' => 2 				) );				die ();			}						$vr = $verify->getOne ( array (					'where' => 'vid=' . $receiptInfo ['verify'],					'asArray' => true 			) );						$jd = json_decode ( $vr ['staff'] );			$roleId = 0;						foreach ( $jd as $key => $value ) {				if ($value [1] == 'ROLE') {					$pos = strpos ( $value [3], $this->staff [0] ['sid'] );					if ($pos !== false) {						$roleId = $value [0];					}				}			}						// 审批日志			// echo $roleId;die;						if (! empty ( $roleId )) {				Doo::loadModel ( "role" );				$role = new role ();				$roleInfo = $role->getOne ( array (						'where' => 'rid=' . $roleId,						'asArray' => true 				) );								$receiptLog->rolename = $roleInfo ['name'];			}						$receiptLog->username = $this->staff [0] ['username'];			$receiptLog->uid = $this->staff [0] ['sid'];			$receiptLog->date = date ( "Y-m-d" );			$receiptLog->opinion = $opinion;			$receiptLog->img = $this->staff [0] ['avatar'];			$receiptLog->status = 4;			$receiptLog->rid = $rid;			$receiptLog->insert ();						$receipt->status = 4;			$receipt->update ( array (					'where' => 'rid=' . $rid 			) );						// 微信企业号通知			$this->setWXMsg ( $rid, 2 );						echo json_encode ( array (					'status' => 1 			) );						// Header("HTTP/1.1 303 See Other");			// Header("Location: /approvalExpenses/pendApproval");						die ();		}				echo json_encode ( array (				'status' => 2 		) );		die ();		// echo "ddd";		// return '/saeaBorad';	}	function revisePrice() {		$description = $this->get_args ( 'description' ) ? $this->get_args ( 'description' ) : "";		$price = $this->get_args ( 'price' ) && is_numeric ( $this->get_args ( 'price' ) ) ? $this->get_args ( 'price' ) : 0;		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;				// echo $price;die;				if (! empty ( $rid )) {			Doo::loadModel ( "receipt" );			$receipt = new receipt ();						$receiptDetail = $receipt->getOne ( array (					'where' => 'rid=' . $rid . ' and status=2 ',					'asArray' => true 			) );			if (empty ( $receiptDetail ))				die ( 'illegal request' );						$reviseDetail = array ();			if (empty ( $receiptDetail ['reviseDetail'] )) {				array_push ( $reviseDetail, array (						'sid' => $this->staff [0] ['sid'],						'name' => $this->staff [0] ['username'],						'description' => $description,						'price' => $price 				) );				$reviseDetailString = json_encode ( $reviseDetail );				$receipt->reviseDetail = $reviseDetailString;				$receipt->revisePrice = $price;				$receipt->sum = bcadd ( $receiptDetail ['sum'], $price, 2 );			} else {				$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );				array_push ( $reviseDetail, array (						'sid' => $this->staff [0] ['sid'],						'name' => $this->staff [0] ['username'],						'description' => $description,						'price' => $price 				) );				$reviseDetailString = json_encode ( $reviseDetail );				$receipt->reviseDetail = $reviseDetailString;				$receipt->revisePrice = round ( $price, 2 ) + round ( $receiptDetail ['revisePrice'], 2 );				$receipt->sum = bcadd ( $receiptDetail ['sum'], $price, 2 );			}			$receipt->update ( array (					'where' => 'rid=' . $rid 			) );						if ($receiptDetail ['Rtype'] == 1) {				if ($receiptDetail ['isBK'] == 1) {					return '/receiptburEdi/' . $receiptDetail ['rid'];				}			} elseif ($receiptDetail ['Rtype'] == 2) {			} else {				return '/receiptburEdi/' . $receiptDetail ['rid'];			}		}		die ( 'illegal request' );	}	function personalCollect() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );				$path = SITE_PATH . $this->PERSONALCOLLECTCACHEPATH . "personalCollect_" . $year . ".htmls";		$this->showCache ( $path );				Doo::loadModel ( "receiptDetail" );		Doo::loadModel ( "itemStatistics" );		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		$itemStatistics = new itemStatistics ();		$receiptDetail = new receiptDetail ();				$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,sum(price) as price,itemCategory,Month(date) as month',				'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year,				'groupby' => 'itemCategory,Month(date)',				'asArray' => true 		) );		$data ['itemStatisticsList'] = $itemStatistics->find ( array (				'where' => 'staff=' . $this->staff [0] ['sid'],				'asArray' => true 		) );				// create collect html		$collectArray = array (				'日常相关费用' => array (),				'差旅相关费用' => array (),				'培训班费用' => array (),				'其他' => array () 		);		$adjustment = array ();				$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用' );		array_push ( $collectArray ['日常相关费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用' );		array_push ( $collectArray ['差旅相关费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用' );		array_push ( $collectArray ['培训班费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '其他' );		array_push ( $collectArray ['其他'], $collectHtml );				$data ['collectArray'] = $collectArray;		// statistics html		$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				// Adjustment price html		$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );		array_push ( $adjustment, $collectHtml );		$data ['adjustment'] = $adjustment;				// total price html		$collectHtml = "";		$total = 0;		for($i = 1; $i <= 12; $i ++) {			$sumPrice = 0;			foreach ( $receiptCollectList as $key => $value ) {				if ($value ['month'] == $i) {					$sumPrice += $value ['price'];				}			}			if ($sumPrice == 0)				$collectHtml .= '<td class="taR">-</td>';			else				$collectHtml .= '<td class="taR">¥' . $sumPrice . '</td>';			$total += $sumPrice;		}		$collectHtml .= '<td class="taR colGreen">¥' . $total . '</td>';		$data ['totalPrice'] = $collectHtml;				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {						if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;				$data ['year'] = $year;		$data ['totalYear'] = $total;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'personalCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		// year staff status 2,4		if ($year < date ( "Y" )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			$receiptList = $receipt->find ( array (					'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year,					'asArray' => true 			) );			if (empty ( $receiptList )) {				ob_start ();				$this->render ( "/admin/saea_slist_collect", $data );				$this->cacheFile ( $path );				die ();			}		}		$this->render ( "/admin/saea_slist_collect", $data );	}	function personalCollectDetail() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );				$path = SITE_PATH . $this->PERSONALCOLLECTCACHEPATH . "personalCollectDetail_" . $year . ".htmls";		$this->showCache ( $path );				Doo::loadModel ( "receiptDetail" );		Doo::loadModel ( "itemStatistics" );		Doo::loadModel ( 'statistics' );		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		$statistics = new statistics ();		$itemStatistics = new itemStatistics ();		$receiptDetail = new receiptDetail ();				$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month',				'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year,				'groupby' => 'item,Month(date)',				'asArray' => true 		) );				$accountList = $accountItem->find ( array (				'asArray' => true 		) );				// create CollectDetail HTML		$collectHtml = array ();		foreach ( $accountList as $key => $value ) {			$html = "";			$asum = 0;			for($i = 1; $i <= 12; $i ++) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) {						$asum += $v ['price'];						$html .= '<td class="taR">¥' . $v ['price'] . '</td>';						$falg = false;						break;					}				}				if ($falg)					$html .= '<td class="taR">-</td>';			}			$html .= '<td class="taR colGreen"><b>¥' . $asum . '</b></td>';			$collectHtml [$value ['category']] [$value ['name']] = $html;		}		$data ['collectHtml'] = $collectHtml;				// create Adjustment price html		$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,sum(price) as price,itemCategory,Month(date) as month',				'where' => 'staff=' . $this->staff [0] ['sid'] . " and status=1 and Year(date)=" . $year,				'groupby' => 'itemCategory,Month(date)',				'asArray' => true 		) );				$adjustment = array ();		$collectArray = array (				'日常相关费用' => array (),				'差旅相关费用' => array (),				'培训班费用' => array (),				'其他' => array () 		);				$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' );		array_push ( $collectArray ['日常相关费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' );		array_push ( $collectArray ['差旅相关费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' );		array_push ( $collectArray ['培训班费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' );		array_push ( $collectArray ['其他'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );		array_push ( $adjustment, $collectHtml );				// total price html		$collectHtml = "";		$total = 0;		for($i = 1; $i <= 12; $i ++) {			$sumPrice = 0;			foreach ( $receiptCollectList as $key => $value ) {				if ($value ['month'] == $i) {					$sumPrice += $value ['price'];				}			}			if ($sumPrice == 0)				$collectHtml .= '<td class="taR">-</td>';			else				$collectHtml .= '<td class="taR">¥' . $sumPrice . '</td>';			$total += $sumPrice;		}		$collectHtml .= '<td class="taR colGreen">¥' . $total . '</td>';				// statistics html		$stList = $statistics->statisticsByYear ( $year, $this->staff [0] ['sid'] );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				$data ['collectArray'] = $collectArray;		$data ['adjustment'] = $adjustment;		$data ['totalPrice'] = $collectHtml;		$data ['totalYear'] = $total;		$data ['year'] = $year;				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {						if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'personalCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		// year staff status 2,4		if ($year < date ( "Y" )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			$receiptList = $receipt->find ( array (					'where' => 'staff=' . $this->staff [0] ['sid'] . ' and (status=2 or status=4) and Year(date) =' . $year,					'asArray' => true 			) );			if (empty ( $receiptList )) {				ob_start ();				$this->render ( "/admin/saeaCollectArticles", $data );				$this->cacheFile ( $path );				die ();			}		}				$this->render ( "/admin/saeaCollectArticles", $data );	}	function companyCategoryCollect() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );				$path = SITE_PATH . $this->CATEGORYCOLLECTPATH . "categoryCollect_" . $year . ".htmls";		$this->showCache ( $path );				Doo::loadModel ( 'L_category' );		Doo::loadModel ( 'itemStatistics' );		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		$Lcategory = new L_category ();		$itemStatistics = new itemStatistics ();				Doo::loadModel ( "receiptAuthorityManage" );		$receiptAuthorityManage = new receiptAuthorityManage ();				$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );		$cidList = array ();		foreach ( $imcStaff as $key => $value ) {			array_push ( $cidList, $value ['cid'] );		}		$cidString = implode ( ',', $cidList );				$LcategoryList = $Lcategory->find ( array (				'where' => ' cid in (' . $cidString . ')',				'asArray' => true 		) ); // 'staff='.$this->staff[0]['sid']." and		$itemStatisticsList = $itemStatistics->find ( array (				'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',				'where' => " Year(date)=" . $year,				'groupby' => 'cid,Month(date)',				'asArray' => true 		) );				// ceatre companyCollectHtml		foreach ( $LcategoryList as $value ) {			$html = "";			$asum = 0;			for($i = 1; $i <= 12; $i ++) {				$falg = true;				foreach ( $itemStatisticsList as $v ) {					if ($value ['cid'] == $v ['cid'] && $i == $v ['month']) {						$asum += $v ['price'];						$html .= '<td class="taR">¥' . $v ['price'] . '</td>';						$falg = false;						break;					}				}				if ($falg)					$html .= '<td class="taR">-</td>';			}			$html .= '<td class="taR colGreen"><b>¥' . $asum . '</b></td>';			$collectHtml [$value ['title']] = array (					'html' => $html,					'cid' => $value ['cid'] 			);		}		$data ['companyHtml'] = $collectHtml;				// total price html		$collectHtml = "";		$total = 0;		for($i = 1; $i <= 12; $i ++) {			$sumPrice = 0;			foreach ( $itemStatisticsList as $key => $value ) {				if ($value ['month'] == $i) {					$sumPrice += $value ['price'];				}			}			if ($sumPrice == 0)				$collectHtml .= '<td class="taR">-</td>';			else				$collectHtml .= '<td class="taR">¥' . $sumPrice . '</td>';			$total += $sumPrice;		}		$collectHtml .= '<td class="taR colGreen">¥' . $total . '</td>';		$data ['companyTotalHtml'] = $collectHtml;		$data ['total'] = $total;				// statistics html				// echo $cidString;				$stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'], $cidString );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				$data ['year'] = $year;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'companyCategoryCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {						if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;				// year staff status 2,4		if ($year < date ( "Y" )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			$receiptList = $receipt->find ( array (					'where' => 'Year(date) =' . $year . ' and (status=2 or status=4)',					'asArray' => true 			) );			if (empty ( $receiptList )) {				ob_start ();				$this->render ( "/admin/saeaCompanyCollect", $data );				$this->cacheFile ( $path );				die ();			}		}				$this->render ( "/admin/saeaCompanyCollect", $data );	}	function categoryCollectDetail() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$cid = isset ( $this->params ['cid'] ) && is_numeric ( $this->params ['cid'] ) ? $this->params ['cid'] : 0;				/* $path = SITE_PATH . $this->CATEGORYCOLLECTPATH . "categoryCollectDetail_" . $year . "_" . $cid . ".htmls";		$this->showCache ( $path ); */				Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();				Doo::loadModel ( "receiptAuthorityManage" );		$receiptAuthorityManage = new receiptAuthorityManage ();				$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );		$cidList = array ();		foreach ( $imcStaff as $key => $value ) {			array_push ( $cidList, $value ['cid'] );		}		$cidString = implode ( ',', $cidList );				$LcategoryList = $Lcategory->find ( array (				'where' => 'cid in (' . $cidString . ')',				'asArray' => true 		) );				if ($cid == 0) {			$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;			if ($cid == 0)				$cid = $LcategoryList [0] ['cid'];		}		$data ['LcategoryList'] = $LcategoryList;				$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',				'where' => 'cid=' . $cid . " and status=1 and Year(pastDate)=" . $year,				'groupby' => 'item,Month(pastDate)',				'asArray' => true 		) );		$accountList = $accountItem->find ( array (				'asArray' => true 		) );		// create CollectDetail HTML		$collectHtml = array ();		foreach ( $accountList as $key => $value ) {			$html = "";			$asum = 0;			for($i = 1; $i <= 12; $i ++) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) {						$asum += $v ['price'];						$html .= '<td class="taR">¥' . $v ['price'] . '</td>';						$falg = false;						break;					}				}				if ($falg)					$html .= '<td class="taR">-</td>';			}			$html .= '<td class="taR colGreen"><b>¥' . $asum . '</b></td>';			$collectHtml [$value ['category']] [$value ['name']] = $html;		}		$data ['collectHtml'] = $collectHtml;				// create Adjustment price html		$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,sum(price) as price,itemCategory,Month(pastDate) as month',				'where' => 'cid=' . $cid . " and status=1 and Year(pastDate)=" . $year,				'groupby' => 'itemCategory,Month(pastDate)',				'asArray' => true 		) );				$adjustment = array ();		$collectArray = array (				'日常相关费用' => array (),				'差旅相关费用' => array (),				'培训班费用' => array (),				'内部培训费用'=>array(),				'其他' => array () 		);				$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' );		array_push ( $collectArray ['日常相关费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' );		array_push ( $collectArray ['差旅相关费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' );		array_push ( $collectArray ['培训班费用'], $collectHtml );        $collectHtml = $this->collectHtml ( $receiptCollectList, '内部培训费用', 'b' );        array_push ( $collectArray ['内部培训费用'], $collectHtml );		$collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' );		array_push ( $collectArray ['其他'], $collectHtml );		$data ['collectArray'] = $collectArray;		$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );		array_push ( $adjustment, $collectHtml );		$data ['adjustment'] = $adjustment;				// total price html		$collectHtml = "";		$total = 0;		for($i = 1; $i <= 12; $i ++) {			$sumPrice = 0;			foreach ( $receiptCollectList as $key => $value ) {				if ($value ['month'] == $i) {					$sumPrice += $value ['price'];				}			}			if ($sumPrice == 0)				$collectHtml .= '<td class="taR">-</td>';			else				$collectHtml .= '<td class="taR">¥' . $sumPrice . '</td>';			$total += $sumPrice;		}		$collectHtml .= '<td class="taR colGreen">¥' . $total . '</td>';				// statistics html		$stList = $statistics->statisticsByCid ( $year, $cid );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				$data ['totalYear'] = $total;		$data ['year'] = $year;		$data ['cid'] = $cid;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'companyCategoryCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		// year staff status 2,4		/* if ($year < date ( "Y" )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			$receiptList = $receipt->find ( array (					'where' => 'Year(date) =' . $year . ' and cid =' . $cid . ' and (status=2 or status=4)',					'asArray' => true 			) );			if (empty ( $receiptList )) {				ob_start ();				$this->render ( "/admin/saeaCategoryCollectDetail", $data );				$this->cacheFile ( $path );				die ();			}		} */				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {							if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;						$this->render ( "/admin/saeaCategoryCollectDetail", $data );	}	function staffCollect() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : 'ONJOB';//				$path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollect_" . $year . "_.htmls";		// $this->showCache($path);				Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( 'itemStatistics' );		$itemStatistics = new itemStatistics ();				Doo::loadModel ( "receiptAuthorityManage" );		$receiptAuthorityManage = new receiptAuthorityManage ();				$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );		$cidList = array ();		foreach ( $imcStaff as $key => $value ) {			array_push ( $cidList, $value ['cid'] );		}		$cidString = implode ( ',', $cidList );				$naturecon='';		if ($nature=='ONJOB'){			$naturecon=' and (nature!=4 )';		}elseif($nature=='LEAVEJOB'){			$naturecon=' and (nature=4 )';		}else{			die ( 'illegal request--nature' );		}							// statistics html		$stList = $statistics->statisticsByComPanyYear ( $year, $this->staff [0] ['sid'], $cidString );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				// ---		$staffList = $staff->find ( array (				'where' => 'username !="admin" '.$naturecon,				'asArray' => true 		) );		$LcategoryList = $Lcategory->find ( array (				'asArray' => true 		) ); // 'staff='.$this->staff[0]['sid']." and		$itemStatisticsList = $itemStatistics->find ( array (				'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',				'where' => " Year(date)=" . $year . ' and cid in (' . $cidString . ')',				'groupby' => 'staff,Month(date)',				'asArray' => true 		) );				$categoryList = $staff->find ( array (				'select' => 'COUNT(*) as count,cid,category',				'where' => 'username !="admin" and cid in (' . $cidString . ') '.$naturecon,				'groupby' => 'cid',				'asArray' => true 		) );		// print_r($itemStatisticsList);die;		// ceatre companyCollectHtml		foreach ( $categoryList as $vlu ) {			$count = $vlu ['count'] + 1;			$html = '<th rowspan="' . $count . '">' . $vlu ['category'] . '</th>';			$m1 = 0;			$m2 = 0;			$m3 = 0;			$m4 = 0;			$m5 = 0;			$m6 = 0;			$m7 = 0;			$m8 = 0;			$m9 = 0;			$m10 = 0;			$m11 = 0;			$m12 = 0;			$m13 = 0;			foreach ( $staffList as $value ) {				if ($vlu ['cid'] == $value ['cid']) {										$html .= '<td><a href="/staffCollectDetail/' . $value ['username'] . '">' . $value ['username'] . '</a></td>';					$asum = 0;					for($i = 1; $i <= 12; $i ++) {						$falg = true;						foreach ( $itemStatisticsList as $v ) {							if ($value ['sid'] == $v ['staff'] && $i == $v ['month']) {								if ($v ['month'] == 1)									$m1 += $v ['price'];								if ($v ['month'] == 2)									$m2 += $v ['price'];								if ($v ['month'] == 3)									$m3 += $v ['price'];								if ($v ['month'] == 4)									$m4 += $v ['price'];								if ($v ['month'] == 5)									$m5 += $v ['price'];								if ($v ['month'] == 6)									$m6 += $v ['price'];								if ($v ['month'] == 7)									$m7 += $v ['price'];								if ($v ['month'] == 8)									$m8 += $v ['price'];								if ($v ['month'] == 9)									$m9 += $v ['price'];								if ($v ['month'] == 10)									$m10 += $v ['price'];								if ($v ['month'] == 11)									$m11 += $v ['price'];								if ($v ['month'] == 12)									$m12 += $v ['price'];								$asum += $v ['price'];								$html .= '<td class="taR">¥' . $v ['price'] . '</td>';								$falg = false;								break;							}						}						if ($falg)							$html .= '<td class="taR">-</td>';					}					$m13 += $asum;					$html .= '<td class="taR colGreen"><b>¥' . $asum . '</b></td>';					$collectHtml [$value ['username'] . '_' . $value ['sid']] = array (							'html' => $html,							'sid' => $value ['sid'] 					);					$html = "";				}			}			$hl = '<th class="taR">小计</th><td class="taR">¥' . $m1 . '</td><td class="taR">¥' . $m2 . '</td><td class="taR">¥' . $m3 . '</td><td class="taR">¥' . $m4 . '</td><td class="taR">¥' . $m5 . '</td>				<td class="taR">¥' . $m6 . '</td><td class="taR">¥' . $m7 . '</td><td class="taR">¥' . $m8 . '</td><td class="taR">¥' . $m9 . '</td><td class="taR">¥' . $m10 . '</td><td class="taR">¥' . $m11 . '</td>				<td class="taR">¥' . $m12 . '</td><td class="taR">¥' . $m13 . '</td>';			$collectHtml [$vlu ['cid']] = array (					'html' => $hl,					'sid' => '' 			);		}		$data ['companyHtml'] = $collectHtml;				// total price html		$collectHtml = "";		$total = 0;		for($i = 1; $i <= 12; $i ++) {			$sumPrice = 0;			foreach ( $itemStatisticsList as $key => $value ) {				if ($value ['month'] == $i) {					$sumPrice += $value ['price'];				}			}			if ($sumPrice == 0)				$collectHtml .= '<td class="taR">-</td>';			else				$collectHtml .= '<td class="taR">¥' . $sumPrice . '</td>';			$total += $sumPrice;		}		$collectHtml .= '<td class="taR colGreen">¥' . $total . '</td>';		$data ['companyTotalHtml'] = $collectHtml;		$data ['total'] = $total;				$data ['nature'] =$nature;		$data ['year'] = $year;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'companyCategoryCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		if ($year <= date ( "Y" )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			$receiptList = $receipt->find ( array (					'where' => '(status=2 or status=4) and Year(date) =' . $year,					'asArray' => true 			) );			if (empty ( $receiptList )) { // generated files				ob_start ();				$this->render ( "/admin/saeaStaffCollectB", $data );				$this->cacheFile ( $path );				die ();			}		}				$this->render ( "/admin/saeaStaffCollectB", $data );	}	function staffCollectBak() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : 1;				$path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollect_" . $year . "_" . $month . ".htmls";		$this->showCache ( $path );				Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( 'itemStatistics' );		$itemStatistics = new itemStatistics ();				$itemStatisticsList = $itemStatistics->find ( array (				'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,				'groupby' => 'staff,itemCategory,Month(date)',				'asArray' => true 		) );		$itemCategoryList = $itemStatistics->find ( array (				'select' => 'cid,staff,sum(price) as price,itemCategory,Month(date) as month',				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,				'groupby' => 'cid,itemCategory,Month(date)',				'asArray' => true 		) );				$LcategoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'asArray' => true 		) );				$htmlArray = array ();		foreach ( $LcategoryList as $value ) {			$htmlArray [$value ['title']] = array ();			foreach ( $staffList as $v ) {				if ($value ['cid'] == $v ['cid']) {					$html = "";					$falg = true;					$staffSumPrice = 0;										foreach ( $itemStatisticsList as $a ) {						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "日常相关费用") {							if (empty ( $a ['price'] )) {								$html .= '<td class="taR">-</td>';								$falg = false;								break;							} else {								$staffSumPrice += $a ['price'];								$html .= '<td class="taR">¥' . $a ['price'] . '</td>';								$falg = false;								break;							}						}					}					if ($falg) {						$html .= '<td class="taR">-</td>';						$falg = true;					}										$falg = true;					foreach ( $itemStatisticsList as $a ) {						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "差旅相关费用") {							if (empty ( $a ['price'] )) {								$html .= '<td class="taR">-</td>';								$falg = false;								break;							} else {								$staffSumPrice += $a ['price'];								$html .= '<td class="taR">¥' . $a ['price'] . '</td>';								$falg = false;								break;							}						}					}					if ($falg) {						$html .= '<td class="taR">-</td>';						$falg = true;					}										$falg = true;					foreach ( $itemStatisticsList as $a ) {						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "培训班费用") {							if (empty ( $a ['price'] )) {								$html .= '<td class="taR">-</td>';								$falg = false;								break;							} else {								$staffSumPrice += $a ['price'];								$html .= '<td class="taR">¥' . $a ['price'] . '</td>';								$falg = false;								break;							}						}					}					if ($falg) {						$html .= '<td class="taR">-</td>';						$falg = true;					}										$falg = true;					foreach ( $itemStatisticsList as $a ) {						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "其他") {							if (! empty ( $a ['price'] )) {								$staffSumPrice += $a ['price'];								$html .= '<td class="taR">¥' . $a ['price'] . '</td>';								$falg = false;								break;							} else {								$html .= '<td class="taR">-</td>';								$falg = false;								break;							}						}					}					if ($falg) {						$html .= '<td class="taR">-</td>';						$falg = true;					}										$falg = true;					foreach ( $itemStatisticsList as $a ) {						if ($v ['sid'] == $a ['staff'] && $a ['itemCategory'] == "报销金额调整") {							if (! empty ( $a ['price'] )) {								$staffSumPrice += $a ['price'];								$html .= '<td class="taR">¥' . $a ['price'] . '</td>';								$falg = false;								break;							} else {								$html .= '<td class="taR">-</td>';								$falg = false;								break;							}						}					}					if ($falg) {						$html .= '<td class="taR">-</td>';						$falg = true;					}										$html .= '<td class="colGreen taR">¥' . $staffSumPrice . '</td>';					$htmlArray [$value ['title']] [$v ['username']] = $html;				}			}						/* -- --- */			// 合计费用			$cateHtml = "";			$catePrice = 0;			$cateFalg = true;			foreach ( $itemCategoryList as $l ) {				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "日常相关费用") {					if (empty ( $l ['price'] )) {						$cateHtml .= '<td class="colGreen taR">-</td>';						$cateFalg = false;						break;					} else {						$catePrice += $l ['price'];						$cateHtml .= '<td class="colGreen taR">¥' . $l ['price'] . '</td>';						$cateFalg = false;						break;					}				}			}			if ($cateFalg) {				$cateHtml .= '<td class="colGreen taR">-</td>';				$cateFalg = true;			}						$cateFalg = true;			foreach ( $itemCategoryList as $l ) {				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "差旅相关费用") {					if (empty ( $l ['price'] )) {						$cateHtml .= '<td class="colGreen taR">-</td>';						$cateFalg = false;						break;					} else {						$catePrice += $l ['price'];						$cateHtml .= '<td class="colGreen taR">¥' . $l ['price'] . '</td>';						$cateFalg = false;						break;					}				}			}			if ($cateFalg) {				$cateHtml .= '<td class="colGreen taR">-</td>';				$cateFalg = true;			}						$cateFalg = true;			foreach ( $itemCategoryList as $l ) {				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "培训班费用") {					if (empty ( $l ['price'] )) {						$cateHtml .= '<td class="colGreen taR">-</td>';						$cateFalg = false;						break;					} else {						$catePrice += $l ['price'];						$cateHtml .= '<td class="colGreen taR">¥' . $l ['price'] . '</td>';						$cateFalg = false;						break;					}				}			}			if ($cateFalg) {				$cateHtml .= '<td class="colGreen taR">-</td>';				$cateFalg = true;			}						$cateFalg = true;			foreach ( $itemCategoryList as $l ) {				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "其他") {					if (empty ( $l ['price'] )) {						$cateHtml .= '<td class="colGreen taR">-</td>';						$cateFalg = false;						break;					} else {						$catePrice += $l ['price'];						$cateHtml .= '<td class="colGreen taR">¥' . $l ['price'] . '</td>';						$cateFalg = false;						break;					}				}			}			if ($cateFalg) {				$cateHtml .= '<td class="colGreen taR">-</td>';				$cateFalg = true;			}						$cateFalg = true;			foreach ( $itemCategoryList as $l ) {				if ($value ['cid'] == $l ['cid'] && $l ['itemCategory'] == "报销金额调整") {					if (empty ( $l ['price'] )) {						$cateHtml .= '<td class="colGreen taR">-</td>';						$cateFalg = false;						break;					} else {						$catePrice += $l ['price'];						$cateHtml .= '<td class="colGreen taR">¥' . $l ['price'] . '</td>';						$cateFalg = false;						break;					}				}			}			if ($cateFalg) {				$cateHtml .= '<td class="colGreen taR">-</td>';				$cateFalg = true;			}						$cateHtml .= '<td class="colGreen taR">¥' . $catePrice . '</td>';			$htmlArray [$value ['title']] ['合计'] = $cateHtml;			/* -- --- */		}				// print_r($htmlArray);die;		$data ['htmlArray'] = $htmlArray;				// statistics html		$stList = $statistics->getOne ( array (				'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,				'groupby' => 'Month(date)',				'asArray' => true 		) );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				$monthHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($i == $month)				$monthHtml .= '<option selected value="' . $i . '">' . $i . '</option>';			else				$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';		}				$data ['monthHtml'] = $monthHtml;		$data ['year'] = $year;		$data ['month'] = $month;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'companyCategoryCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		if (! empty ( $month ) && ($year <= date ( "Y" )) && ($month < date ( "m" ))) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			$receiptList = $receipt->find ( array (					'where' => '(status=2 or status=4) and Year(date) =' . $year . ' and Month(date) =' . $month,					'asArray' => true 			) );			if (empty ( $receiptList )) { // generated files				ob_start ();				$this->render ( "/admin/saeaStaffCollect", $data );				$this->cacheFile ( $path );				die ();			}		}				$this->render ( "/admin/saeaStaffCollect", $data );	}	/**	 * 日常收支	 */	function payments() {		// include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';		Doo::loadModel ( "execute" );		$execute = new execute ();		if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) {			die ( 'illegal request' );		}				Doo::loadModel ( "accountBook" );		$accountBook = new accountBook ();				Doo::loadModel ( "accountBookStatistics" );		$accountBookStatistics = new accountBookStatistics ();				$statisticsList = $accountBookStatistics->getStatisticsByMonth ();				$list = $accountBook->getAccountBookByLimit ( 10 );				$data ['date'] = date ( "Y-m-d" );		$data ['statisticsList'] = $statisticsList;		$data ['list'] = $list;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'payments';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/expenses/payments", $data );	}	function paymentsIncomeDo() {		$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "";		$accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : "";		$receivedPrice = is_numeric ( $this->get_args ( 'receivedPrice' ) ) ? $this->get_args ( 'receivedPrice' ) : 0;		$receivedMsg = $this->get_args ( 'receivedMsg' ) ? $this->get_args ( 'receivedMsg' ) : '';		$receivedBank = $this->get_args ( 'receivedBank' ) ? $this->get_args ( 'receivedBank' ) : '';		$receivedDate = $this->get_args ( 'receivedDate' ) ? $this->get_args ( 'receivedDate' ) : '';		$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';				if (! empty ( $accountType ) && ! empty ( $receivedPrice ) && ! empty ( $receivedMsg ) && ! empty ( $receivedBank ) && ! empty ( $receivedDate )) {			Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );			Doo::loadModel ( "accountBook" );			Doo::loadModel ( "accountBookStatistics" );			Doo::loadModel ( 'wasteBook' );						// 记录流水时银行的转换			$accountBank = '';			if ($receivedBank == '纵横广发') {				$accountBank = 'CGBDeposit';			} elseif ($receivedBank == '纵横工行') {				$accountBank = 'ICBCDeposit';			} elseif ($receivedBank == '华润银行') {				$accountBank = 'HUADeposit';			} elseif ($receivedBank == '个人广发') {				$accountBank = 'PersonalDeposit';			}			if (empty ( $accountBank ))				die ( 'illegal request' );			if($accountType == 11 || $accountType == 12){                if($accountType == 11){                    $receivedBank = '纵横广发';                }elseif($accountType == 12){                    $receivedBank = '纵横工行';                }                // 添加一条收入                $accountBook = new accountBook ();                $accountBook->accountType = $accountType;                $accountBook->accountMsg = $accountMsg;                $accountBook->receivedPrice = $receivedPrice;                $accountBook->receivedMsg = $receivedMsg;                $accountBook->receivedBank = $receivedBank;                $accountBook->receivedDate = $receivedDate;                $accountBook->remarks = $remarks;                $accountBook->expensesType = 1;                $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );                $accountBook->inputDate = date ( "Y-m-d H:i:s" );                $accountBook->inputStaff = $this->staff [0] ['sid'];                $inComeId = $accountBook->insert ();                // 收支汇总-添加一条收入日常汇总                $abDetail = $accountBook->getAccountBookByAid ( $inComeId );                $accountBookStatistics = new accountBookStatistics ();                $item = array (                    'date' => date ( "Y-m-d" ),                    'accountType' => $abDetail ['accountType'],                    'accountMsg' => $abDetail ['accountMsg'],                    'aid' => $abDetail ['aid'],                    'inComePrice' => $abDetail ['receivedPrice'],                    'expensesType' => $abDetail ['expensesType']                );                $accountBookStatistics->setAccountBookStatistics ( $item );                //流水支出//                if($accountBank=='CGBDeposit'){//                    $dailyExpenditureType='8';//                }elseif($accountBank=='ICBCDeposit'){//                    $dailyExpenditureType='9';//                }elseif($accountBank=='PersonalDeposit'){//                    $dailyExpenditureType='10';//                }elseif($accountBank=='HUADeposit'){//                    $dailyExpenditureType='11';//                }////                $wasteBook = new wasteBook ();//                $itemWaste = array (//                    'expensesType' => 2,//                    'accountType' => 5,//                    'accountPriceShow' => $receivedPrice,//                    'accountPrice' => - $receivedPrice,//                    'dataID' => $inComeId,//                    'dailyExpenditureType' => $dailyExpenditureType,//                    'accountBank' => $accountBank,//                    'category' => $this->staff [0] ['category'],//                    'cid' => $this->staff [0] ['cid'],//                    'name' => $this->staff [0] ['username'],//                    'sid' => $this->staff [0] ['sid'],//                    'inputDate' => date ( "Y-m-d H:i:s" )//                );//                $wasteBook->setAccountBookStatistics ( $itemWaste );                // 添加收入流水                if($accountType == 11){                    $accountBank = 'CGBDeposit';                }elseif($accountType == 12){                    $accountBank = 'ICBCDeposit';                }                $wasteBook = new wasteBook ();                $itemWaste = array (                    'accountPriceShow' => $receivedPrice,                    'accountPrice' => $receivedPrice,                    'expensesType' => 1,                    'accountType' => 6, // 流水类型                    'dataID' => $inComeId,                    'dailyIncomeType' => $accountType, // $dailyIncomeType,                    'accountBank' => $accountBank,                    'category' => $this->staff [0] ['category'],                    'cid' => $this->staff [0] ['cid'],                    'name' => $this->staff [0] ['username'],                    'sid' => $this->staff [0] ['sid'],                    'inputDate' => date ( "Y-m-d H:i:s" )                );                $wasteBook->setAccountBookStatistics ( $itemWaste );            }elseif($accountType == 7 || $accountType == 9) { // 收入为理财时特殊处理								if ($receivedBank == '个人广发') {					die ( '个人广发  illegal request' );				}				// 添加一条收入				$accountBook = new accountBook ();				$accountBook->accountType = 10;				$accountBook->accountMsg = $accountMsg;				$accountBook->receivedPrice = $receivedPrice;				$accountBook->receivedMsg = $receivedMsg;				$accountBook->receivedBank = $receivedBank;				$accountBook->receivedDate = $receivedDate;				$accountBook->remarks = $remarks;				$accountBook->expensesType = 1;				$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );				$accountBook->inputDate = date ( "Y-m-d H:i:s" );				$accountBook->inputStaff = $this->staff [0] ['sid'];				$inComeId = $accountBook->insert ();				// 收支汇总-添加一条收入日常汇总				$abDetail = $accountBook->getAccountBookByAid ( $inComeId );				$accountBookStatistics = new accountBookStatistics ();				$item = array (						'date' => date ( "Y-m-d" ),						'accountType' => $abDetail ['accountType'],						'accountMsg' => $abDetail ['accountMsg'],						'aid' => $abDetail ['aid'],						'inComePrice' => $abDetail ['receivedPrice'],						'expensesType' => $abDetail ['expensesType'] 				);				$accountBookStatistics->setAccountBookStatistics ( $item );								// 添加收入流水				$wasteBook = new wasteBook ();				$itemWaste = array (						'accountPriceShow' => $receivedPrice,						'accountPrice' => $receivedPrice,						'expensesType' => 1,						'accountType' => 6, // 流水类型						'dataID' => $inComeId,						'dailyIncomeType' => $accountType, // $dailyIncomeType,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );				// 添加一条理财支出				$accountBank = 'CGBDeposit';				$expenditureBank = '纵横广发';				$dailyExpenditureType = 4;				if ($accountType == 9) {					$accountBank = 'ICBCDeposit';					$expenditureBank = '纵横工行';					$dailyExpenditureType = 6;				}				$accountBook = new accountBook ();				$accountBook->expensesType = 2;				$accountBook->expenditureType = $dailyExpenditureType;				$accountBook->expenditureMsg = $accountMsg;				$accountBook->expenditurePrice = $receivedPrice;				$accountBook->expenditureBank = $expenditureBank;				$accountBook->expenditureDate = $receivedDate;				$accountBook->remarks = $remarks;				$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );				$accountBook->inputDate = date ( "Y-m-d H:i:s" );				$accountBook->inputStaff = $this->staff [0] ['sid'];				$id = $accountBook->insert ();				// 收支汇总-添加一条理财支出汇总				$abDetail = $accountBook->getAccountBookByAid ( $id );				$accountBookStatistics = new accountBookStatistics ();				$item = array (						'date' => date ( "Y-m-d" ),						'accountType' => $abDetail ['accountType'],						'accountMsg' => $abDetail ['accountMsg'],						'aid' => $abDetail ['aid'],						'financingPrice' => - $receivedPrice,						'expensesType' => 3 				);				$accountBookStatistics->setAccountBookStatistics ( $item );								// 添加一条支出理财流水				$accountTypeWaste = 5;				if ($accountMsg == '公司固定') {					$accountTypeWaste = 9;				} elseif ($accountMsg == '公司活期') {					$accountTypeWaste = 10;				} elseif ($accountMsg == '个人(GR)') {					$accountBank = 'PersonalDeposit';				}				$itemWaste = array (						'expensesType' => 2,						'accountType' => $accountTypeWaste,						'accountPriceShow' => $receivedPrice,						'accountPrice' => - $receivedPrice,						'dataID' => $id,						'dailyExpenditureType' => $dailyExpenditureType,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );			} elseif ($accountType == 1) {				if ($receivedBank == '个人广发')					die ( 'illegal request' );					// 添加一条收入				$accountBook = new accountBook ();				$accountBook->accountType = $accountType;				$accountBook->accountMsg = $accountMsg;				$accountBook->receivedPrice = $receivedPrice;				$accountBook->receivedMsg = $receivedMsg;				$accountBook->receivedBank = $receivedBank;				$accountBook->receivedDate = $receivedDate;				$accountBook->remarks = $remarks;				$accountBook->expensesType = 1;				$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );				$accountBook->inputDate = date ( "Y-m-d H:i:s" );				$accountBook->inputStaff = $this->staff [0] ['sid'];				$id = $accountBook->insert ();				$abDetail = $accountBook->getAccountBookByAid ( $id );								// 收支汇总-添加一条收入日常汇总				$accountBookStatistics = new accountBookStatistics ();				$item = array (						'date' => date ( "Y-m-d" ),						'accountType' => $abDetail ['accountType'],						'accountMsg' => $abDetail ['accountMsg'],						'aid' => $abDetail ['aid'],						'expensesType' => $abDetail ['expensesType'] 				);				if ($abDetail ['accountType'] == 8) {					$item += array (							'inComePrice' => $abDetail ['receivedPrice'] 					);				} else {					$item += array (							'inComePrice' => $abDetail ['receivedPrice'] 					);				}				$accountBookStatistics->setAccountBookStatistics ( $item );								// 流水存储方向				$itemWaste = array (						'accountType' => 6 				); // 流水类型				   				// if($accountMsg=='银行存款'||$accountMsg=='固定理财收益'){				   				// }else				if ($accountMsg == '活期理财收益') {					$itemWaste = array (							'accountType' => 10 					); // 流水类型				}				// 添加收入流水								$wasteBook = new wasteBook ();				$itemWaste += array (						'accountPrice' => $receivedPrice,						'accountPriceShow' => $receivedPrice,						'expensesType' => 1,												'dailyIncomeType' => $accountType, // $dailyIncomeType,						'dataID' => $id,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );			} else { // 普通日常收入处理			         // 添加一条收入				$accountBook = new accountBook ();				$accountBook->accountType = $accountType;				$accountBook->accountMsg = $accountMsg;				$accountBook->receivedPrice = $receivedPrice;				$accountBook->receivedMsg = $receivedMsg;				$accountBook->receivedBank = $receivedBank;				$accountBook->receivedDate = $receivedDate;				$accountBook->remarks = $remarks;				$accountBook->expensesType = 1;				$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );				$accountBook->inputDate = date ( "Y-m-d H:i:s" );				$accountBook->inputStaff = $this->staff [0] ['sid'];				$id = $accountBook->insert ();								$abDetail = $accountBook->getAccountBookByAid ( $id );				// 收支汇总-添加一条收入日常汇总				$accountBookStatistics = new accountBookStatistics ();				$item = array (						'date' => date ( "Y-m-d" ),						'accountType' => $abDetail ['accountType'],						'accountMsg' => $abDetail ['accountMsg'],						'aid' => $abDetail ['aid'],						'expensesType' => $abDetail ['expensesType'] 				);				if ($abDetail ['accountType'] == 8) {					$item += array (							'inComePrice' => $abDetail ['receivedPrice'] 					);				} else {					$item += array (							'inComePrice' => $abDetail ['receivedPrice'] 					);				}				$accountBookStatistics->setAccountBookStatistics ( $item );								// 添加收入流水				$itemWaste = array (						'accountPrice' => $receivedPrice 				);				if ($receivedBank == '个人广发') {					$itemWaste = array (							'accountPrice' => - $receivedPrice 					);				}				$wasteBook = new wasteBook ();				$itemWaste += array (						'accountPriceShow' => $receivedPrice,						'expensesType' => 1,						'accountType' => 6, // 流水类型						'dailyIncomeType' => $accountType, // $dailyIncomeType,						'dataID' => $id,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );			}		}		return '/payments';	}	function paymentsExpenditureDo() {		$expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : "";		$expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : "";		$expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0;		$expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : '';		$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';		$expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : '';				if (! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) {			// 理财支出特殊处理			Doo::loadModel ( "accountBook" );			Doo::loadModel ( "accountBookStatistics" );			Doo::loadModel ( 'wasteBook' );						$accountBank = '';			if ($expenditureBank == '纵横广发') {				$accountBank = 'CGBDeposit';			} elseif ($expenditureBank == '纵横工行') {				$accountBank = 'ICBCDeposit';			} elseif ($expenditureBank == '华润银行') {				$accountBank = 'HUADeposit';			} elseif ($expenditureBank == '个人广发') {				$accountBank = 'PersonalDeposit';			}			if (empty ( $accountBank ))				die ( 'illegal request' );			if($expenditureType == 8 || $expenditureType == 9){                if($expenditureType == 8 ){                    $expenditureBank='纵横广发';                }elseif($expenditureType == 9){                    $expenditureBank='纵横工行';                }                // 添加一笔日常支出                $accountBook = new accountBook ();                $accountBook->expensesType = 2;                $accountBook->expenditureType = $expenditureType;                $accountBook->expenditureMsg = $expenditureMsg;                $accountBook->expenditurePrice = $expenditurePrice;                $accountBook->expenditureBank = $expenditureBank;                $accountBook->expenditureDate = $expenditureDate;                $accountBook->remarks = $remarks;                $accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );                $accountBook->inputDate = date ( "Y-m-d H:i:s" );                $accountBook->inputStaff = $this->staff [0] ['sid'];                $expenditureId = $accountBook->insert ();                // 添加日常支出汇总                $abDetail = $accountBook->getAccountBookByAid ( $expenditureId );                $accountBookStatistics = new accountBookStatistics ();                $item = array (                    'date' => date ( "Y-m-d" ),                    'expenditureType' => $abDetail ['expenditureType'],                    'expenditureMsg' => $abDetail ['expenditureMsg'],                    'aid' => $abDetail ['aid'],                    'payPrice' => $abDetail ['expenditurePrice'],                    'expensesType' => $abDetail ['expensesType']                );                $accountBookStatistics->setAccountBookStatistics ( $item );                // 公司日常支出流水                if($expenditureType == 8 ){                    $accountBank = 'CGBDeposit';                }elseif($expenditureType == 9){                    $accountBank = 'ICBCDeposit';                }                if($accountBank=='CGBDeposit'){                    $dailyExpenditureType='8';                }elseif($accountBank=='ICBCDeposit'){                    $dailyExpenditureType='9';                }elseif($accountBank=='PersonalDeposit'){                    $dailyExpenditureType='10';                }elseif($accountBank=='HUADeposit'){                    $dailyExpenditureType='11';                }                $wasteBook = new wasteBook ();                $itemWaste = array (                    'expensesType' => 2,                    'accountType' => 5,                    'dailyExpenditureType' => $dailyExpenditureType,                    'accountPriceShow' => $expenditurePrice,                    'accountPrice' => - $expenditurePrice,                    'dataID' => $expenditureId,                    'accountBank' => $accountBank,                    'category' => $this->staff [0] ['category'],                    'cid' => $this->staff [0] ['cid'],                    'name' => $this->staff [0] ['username'],                    'sid' => $this->staff [0] ['sid'],                    'inputDate' => date ( "Y-m-d H:i:s" )                );                $wasteBook->setAccountBookStatistics ( $itemWaste );                // 添加一笔收入流水//                if($expenditureType==8){//                    $dailyIncomeType='11';//                }elseif($expenditureType==9){//                    $dailyIncomeType='12';//                }//                $wasteBook = new wasteBook ();//                $itemWaste = array (//                    'expensesType' => 1,//                    'accountType' => 6,//                    'accountPriceShow' => $expenditurePrice,//                    'accountPrice' => $expenditurePrice,//                    'dataID' => $expenditureId,////                    'dailyIncomeType' => $dailyIncomeType,//                    'accountBank' => $accountBank,//                    'category' => $this->staff [0] ['category'],//                    'cid' => $this->staff [0] ['cid'],//                    'name' => $this->staff [0] ['username'],//                    'sid' => $this->staff [0] ['sid'],//                    'inputDate' => date ( "Y-m-d H:i:s" )//                );//                $wasteBook->setAccountBookStatistics ( $itemWaste );            }elseif ($expenditureType == 4 || $expenditureType == 6) {								if ($expenditureBank == '个人广发') {					die ( '个人广发  illegal request' );				}								// 添加一笔日常支出				$accountBook = new accountBook ();				$accountBook->expensesType = 2;				$accountBook->expenditureType = 7;				$accountBook->expenditureMsg = $expenditureMsg;				$accountBook->expenditurePrice = $expenditurePrice;				$accountBook->expenditureBank = $expenditureBank;				$accountBook->expenditureDate = $expenditureDate;				$accountBook->remarks = $remarks;				$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );				$accountBook->inputDate = date ( "Y-m-d H:i:s" );				$accountBook->inputStaff = $this->staff [0] ['sid'];				$expenditureId = $accountBook->insert ();								// 添加日常支出汇总				$abDetail = $accountBook->getAccountBookByAid ( $expenditureId );				$accountBookStatistics = new accountBookStatistics ();				$item = array (						'date' => date ( "Y-m-d" ),						'expenditureType' => $abDetail ['expenditureType'],						'expenditureMsg' => $abDetail ['expenditureMsg'],						'aid' => $abDetail ['aid'],						'payPrice' => $abDetail ['expenditurePrice'],						'expensesType' => $abDetail ['expensesType'] 				);				$accountBookStatistics->setAccountBookStatistics ( $item );								// 公司日常支出流水				$wasteBook = new wasteBook ();				$itemWaste = array (						'accountPrice' => - $expenditurePrice 				);				if ($expenditureBank == '个人广发') {					$itemWaste = array (							'accountPrice' => $expenditurePrice 					);				}				$itemWaste += array (						'expensesType' => 2,						'accountType' => 5,						'dailyExpenditureType' => $expenditureType,						'accountPriceShow' => $expenditurePrice,						'accountPrice' => - $expenditurePrice,						'dataID' => $expenditureId,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );				// 添加一笔理财收入				$accountBank = 'CGBDeposit';				$dailyIncomeType = 7;				$receivedBank = '纵横广发';				if ($expenditureType == 6) {					$accountBank = 'ICBCDeposit';					$receivedBank = '纵横工行';					$dailyIncomeType = 9;				}				$accountBook = new accountBook ();				$accountBook->expensesType = 1;				$accountBook->accountType = $dailyIncomeType;				$accountBook->accountMsg = $expenditureMsg;				$accountBook->receivedPrice = $expenditurePrice;				$accountBook->receivedBank = $receivedBank;				$accountBook->receivedDate = $expenditureDate;				$accountBook->remarks = $remarks;				$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );				$accountBook->inputDate = date ( "Y-m-d H:i:s" );				$accountBook->inputStaff = $this->staff [0] ['sid'];				$id = $accountBook->insert ();				// 添加日常理财收入汇总				$abDetail = $accountBook->getAccountBookByAid ( $expenditureId );				$accountBookStatistics = new accountBookStatistics ();				$item = array (						'date' => date ( "Y-m-d" ),						'expenditureType' => $abDetail ['expenditureType'],						'expenditureMsg' => $abDetail ['expenditureMsg'],						'aid' => $abDetail ['aid'],						'financingPrice' => $expenditurePrice,						'expensesType' => 3 				);				$accountBookStatistics->setAccountBookStatistics ( $item );				// 添加一笔收入流水				if ($expenditureMsg == '公司固定') {					$accountTypeWaste = 9;				} elseif ($expenditureMsg == '公司活期') {					$accountTypeWaste = 10;				} elseif ($expenditureMsg == '个人(GR)') {					$accountBank = 'PersonalDeposit';				}				$itemWaste = array (						'expensesType' => 1,						'accountType' => $accountTypeWaste,						'accountPriceShow' => $expenditurePrice,						'accountPrice' => $expenditurePrice,						'dataID' => $id,												'dailyIncomeType' => $dailyIncomeType,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );			} else {				// 添加一笔日常支出				$accountBook = new accountBook ();				$accountBook->expensesType = 2;				$accountBook->expenditureType = $expenditureType;				$accountBook->expenditureMsg = $expenditureMsg;				$accountBook->expenditurePrice = $expenditurePrice;				$accountBook->expenditureBank = $expenditureBank;				$accountBook->expenditureDate = $expenditureDate;				$accountBook->remarks = $remarks;				$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );				$accountBook->inputDate = date ( "Y-m-d H:i:s" );				$accountBook->inputStaff = $this->staff [0] ['sid'];				$id = $accountBook->insert ();								// 添加日常支出汇总				$abDetail = $accountBook->getAccountBookByAid ( $id );				$accountBookStatistics = new accountBookStatistics ();				$item = array (						'date' => date ( "Y-m-d" ),						'expenditureType' => $abDetail ['expenditureType'],						'expenditureMsg' => $abDetail ['expenditureMsg'],						'aid' => $abDetail ['aid'],												'expensesType' => $abDetail ['expensesType'] 				);				if ($expenditureType == 5) {					$item += array (							'payPrice' => - $abDetail ['expenditurePrice'] 					);				} else {					$item += array (							'payPrice' => $abDetail ['expenditurePrice'] 					);				}								$accountBookStatistics->setAccountBookStatistics ( $item );								// 公司日常支出流水				$wasteBook = new wasteBook ();				$itemWaste = array (						'accountPrice' => - $expenditurePrice 				);				if ($expenditureBank == '个人广发') {					$itemWaste = array (							'accountPrice' => $expenditurePrice 					);				}				$itemWaste += array (						'expensesType' => 2,						'accountType' => 5,						'accountPriceShow' => $expenditurePrice,						'dataID' => $id,						'dailyExpenditureType' => $expenditureType,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );			}		}		return '/payments';	}		/**	 * 添加支出	 */	function paymentsExpenditureDo_() {		$expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : "";		$expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : "";				$expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0;		$expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : '';				$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';		$expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : '';				if (! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) {						$dailyExpenditureType = '';			$accountTypeWaste = 5;			$accountBank = '';			if ($expenditureBank == '纵横广发') {				$accountBank = 'CGBDeposit';			} elseif ($expenditureBank == '纵横工行') {				$accountBank = 'ICBCDeposit';			} elseif ($expenditureBank == '华润银行') {				$accountBank = 'HUADeposit';			} elseif ($expenditureBank == '个人广发') {				$accountBank = 'PersonalDeposit';			}			if (empty ( $accountBank ))				die ( 'illegal request' );						$itemWaste = array (					'accountPrice' => - $expenditurePrice 			);			if ($expenditureBank == '个人广发') {				$itemWaste = array (						'accountPrice' => $expenditurePrice 				);			}						if ($expenditureType == 4 || $expenditureType == 6) {				$dailyExpenditureType = 4;								if ($expenditureMsg == '公司固定') {					$accountTypeWaste = 9;				} elseif ($expenditureMsg == '公司活期') {					$accountTypeWaste = 10;				} elseif ($expenditureMsg == '个人(GR)') {					$accountBank = 'PersonalDeposit';				}								$itemWaste = array (						'accountPrice' => $expenditurePrice 				);			} elseif ($expenditureType == 1) {				$dailyExpenditureType = 1;			} elseif ($expenditureType == 2) {				$dailyExpenditureType = 2;			} elseif ($expenditureType == 3) {				$dailyExpenditureType = 3;			} elseif ($expenditureType == 5) {				$dailyExpenditureType = 5;			}			if (empty ( $dailyExpenditureType ))				die ( 'illegal request' );						Doo::loadModel ( "accountBook" );			$accountBook = new accountBook ();						$accountBook->expenditureType = $expenditureType;			$accountBook->expenditureMsg = $expenditureMsg;			$accountBook->expenditurePrice = $expenditurePrice;			$accountBook->expenditureBank = $expenditureBank;						$accountBook->expenditureDate = $expenditureDate;			$accountBook->remarks = $remarks;						$accountBook->expensesType = 2;						$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );			$accountBook->inputDate = date ( "Y-m-d H:i:s" );						$accountBook->inputStaff = $this->staff [0] ['sid'];						$id = $accountBook->insert ();						//			$abDetail = $accountBook->getAccountBookByAid ( $id );			Doo::loadModel ( "accountBookStatistics" );			$accountBookStatistics = new accountBookStatistics ();						$item = array (					'date' => date ( "Y-m-d" ),					'expenditureType' => $abDetail ['expenditureType'],					'expenditureMsg' => $abDetail ['expenditureMsg'],					'aid' => $abDetail ['aid'] 			);						if ($abDetail ['expensesType'] == 2) {				if ($abDetail ['expenditureType'] == 4 || $abDetail ['expenditureType'] == 6) {					$item += array (							'financingPrice' => $expenditurePrice,							'expensesType' => 3 					);				} elseif ($abDetail ['expenditureType'] == 5) {					$item += array (							'payPrice' => $abDetail ['expenditurePrice'],							'expensesType' => $abDetail ['expensesType'] 					);				} else {					$item += array (							'payPrice' => $abDetail ['expenditurePrice'],							'expensesType' => $abDetail ['expensesType'] 					);				}			}						$accountBookStatistics->setAccountBookStatistics ( $item );						// 公司流水记录			Doo::loadModel ( 'wasteBook' );			$wasteBook = new wasteBook ();						$abDetail = $wasteBook->getAccountBookByAid ( 2, $accountTypeWaste, $id );			// 银行			if (empty ( $abDetail )) {				$itemWaste += array (						'accountPriceShow' => $expenditurePrice,						'dataID' => $id,						'expensesType' => 2,						'accountType' => $accountTypeWaste,						'dailyExpenditureType' => $expenditureType,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );			}						// 支出类型为4或者6 需要添加一笔收入和收入流水			if ($expenditureType == 4 || $expenditureType == 6) {								$accountBank = 'CGBDeposit';				$dailyIncomeType = 7;				$receivedBank = '纵横广发';				if ($expenditureType == 6) {					$accountBank = 'ICBCDeposit';					$receivedBank = '纵横工行';					$dailyIncomeType = 9;				}				// 添加一笔收入				$accountBook = new accountBook ();				$accountBook->accountType = $dailyIncomeType;				$accountBook->accountMsg = $expenditureMsg;				$accountBook->receivedPrice = $expenditurePrice;								$accountBook->receivedBank = $receivedBank;				$accountBook->receivedDate = $expenditureDate;				$accountBook->remarks = $remarks;				$accountBook->expensesType = 1;				$accountBook->bookSerial = "#IN" . date ( "Ymd" ) . mt_rand ( 1000, 9999 );				$accountBook->inputDate = date ( "Y-m-d H:i:s" );				$accountBook->inputStaff = $this->staff [0] ['sid'];				$id = $accountBook->insert ();								// 添加一笔收入流水				$itemWaste = array (						'accountPriceShow' => $expenditurePrice,						'accountPrice' => - $expenditurePrice,						'dataID' => $id,						'expensesType' => 1,						'accountType' => $accountTypeWaste,						'dailyIncomeType' => $dailyIncomeType,						'accountBank' => $accountBank,						'category' => $this->staff [0] ['category'],						'cid' => $this->staff [0] ['cid'],						'name' => $this->staff [0] ['username'],						'sid' => $this->staff [0] ['sid'],						'inputDate' => date ( "Y-m-d H:i:s" ) 				);				$wasteBook->setAccountBookStatistics ( $itemWaste );			}		}		return '/payments';	}		/**	 * 所有收支	 */	function paymentsAchieve() {		$page_size = 12;		$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;		$expensesType = isset ( $this->params ['expensesType'] ) ? $this->params ['expensesType'] : 'ALL';				$date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : "";		$price = $this->get_args ( 'price' ) ? $this->get_args ( 'price' ) : "";				$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "";		$accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : "";				$expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : "";		$submitType = $this->get_args ( 'submitType' ) ? $this->get_args ( 'submitType' ) : "";				Doo::loadModel ( "accountBookStatistics" );		$accountBookStatistics = new accountBookStatistics ();				$statisticsList = $accountBookStatistics->getStatisticsByMonth ();				$data ['statisticsList'] = $statisticsList;				Doo::loadModel ( "accountBook" );		$accountBook = new accountBook ();				$con = '';		if ($expensesType == 'INCOME')			$con = ' and expensesType=1 ';		elseif ($expensesType == 'PAY')			$con = ' and expensesType=2 ';				$dateArr = explode ( ':', $date );		$D1 = $dateString = '';		$D2 = '';		if (! empty ( $date )) {			$D1 = $dateArr [0];			if (isset ( $dateArr [1] ))				$D2 = $dateArr [1];			else				$D2 = '';			$dateString = $D1 . " : " . $D2;		}		if (! empty ( $D1 ) && ! empty ( $D2 ))			$con .= ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';		elseif (! empty ( $D1 ) && empty ( $D2 ))			$con .= ' and inputDate like "%' . $D1 . '%"  ';				if (! empty ( $price ))			$con .= ' and (receivedPrice=' . $price . ' or expenditurePrice=' . $price . ')';				if ($submitType == 1) {			if ($accountType != '') {				$expenditureType = '';				$con .= ' and accountType=' . $accountType;				if (! empty ( $accountMsg ))					$con .= ' and (accountType=' . $accountType . ' and accountMsg like "%' . $accountMsg . '%")';			}		} elseif ($submitType == 2) {			if ($expenditureType != '') {				$accountType = $accountMsg = '';				$con .= ' and expenditureType=' . $expenditureType;			}		} else {			$accountType = $accountMsg = $expenditureType = '';		}				$sql = "" . $con;		$action = "paymentsAchieve";		$get = '/' . $expensesType; // "?date=" . urlencode ( $date ) . "&MebSea=" . urlencode ( $MebSea );				$pageinfo = $this->get_page ( "CLD_accountBook", $sql, $page, $page_size, $action, $get, "" );		$limit = $pageinfo ['lower'] . ',' . $page_size;		$list = $accountBook->getAccountBookBySql ( $limit, $sql, 'desc' );				$data ['expenditureType'] = $expenditureType;		$data ['accountMsg'] = $accountMsg;		$data ['accountType'] = $accountType;		$data ['inputDate'] = $date;		$data ['price'] = $price;		$data ['expensesType'] = $expensesType;		$data ['page'] = $pageinfo;		$data ['list'] = $list;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'payments';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/expenses/paymentsAchieve", $data );	}	function paymentsIncomeUpdateDo() {		$aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : "";				$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "";		$accountMsg = $this->get_args ( 'accountMsg' . $accountType ) ? $this->get_args ( 'accountMsg' . $accountType ) : "";		$receivedPrice = is_numeric ( $this->get_args ( 'receivedPrice' ) ) ? $this->get_args ( 'receivedPrice' ) : 0;				$receivedMsg = $this->get_args ( 'receivedMsg' ) ? $this->get_args ( 'receivedMsg' ) : '';		$receivedBank = $this->get_args ( 'receivedBank' ) ? $this->get_args ( 'receivedBank' ) : '';		$receivedDate = $this->get_args ( 'receivedDate' ) ? $this->get_args ( 'receivedDate' ) : '';				$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';				if (! empty ( $aidKey ) && ! empty ( $accountType ) && ! empty ( $receivedPrice ) && ! empty ( $receivedMsg ) && ! empty ( $receivedBank ) && ! empty ( $receivedDate )) {						Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );						$aid = $XDeode->decode ( $aidKey );						Doo::loadModel ( "accountBook" );			$accountBook = new accountBook ();						//			$abDetail = $accountBook->getAccountBookByAid ( $aid );						$price = $receivedPrice - $abDetail [inComePrice];			Doo::loadModel ( "accountBookStatistics" );			$accountBookStatistics = new accountBookStatistics ();						if ($abDetail ['accountType'] == 7) {				$item += array (						'date' => date ( "Y-m-d" ),						'financingPrice' => - $price,						'expensesType' => 3,						'aid' => $abDetail ['aid'] 				);			} elseif ($abDetail ['accountType'] == 8) {				$item += array (						'date' => date ( "Y-m-d" ),						'expensesType' => $abDetail ['expensesType'],						'inComePrice' => - $price,						'aid' => $abDetail ['aid'] 				);			} else {								$item = array (						'date' => date ( "Y-m-d" ),						'expensesType' => $abDetail ['expensesType'],						'inComePrice' => $price,						'aid' => $abDetail ['aid'] 				);			}			$accountBookStatistics->setAccountBookStatistics ( $item );						$accountBook->accountType = $accountType;			$accountBook->accountMsg = $accountMsg;			$accountBook->receivedPrice = $receivedPrice;			$accountBook->receivedMsg = $receivedMsg;			$accountBook->receivedBank = $receivedBank;			$accountBook->receivedDate = $receivedDate;			$accountBook->remarks = $remarks;						$accountBook->aid = $aid;						$accountBook->update ();		}		return '/paymentsAchieve';	}	function paymentsExpenditureEdiDo() {		$aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : "";		$expenditureType = $this->get_args ( 'expenditureType' ) ? $this->get_args ( 'expenditureType' ) : "";		$expenditureMsg = $this->get_args ( 'expenditureMsg' . $expenditureType ) ? $this->get_args ( 'expenditureMsg' . $expenditureType ) : "";				$expenditurePrice = is_numeric ( $this->get_args ( 'expenditurePrice' ) ) ? $this->get_args ( 'expenditurePrice' ) : 0;		$expenditureBank = $this->get_args ( 'expenditureBank' ) ? $this->get_args ( 'expenditureBank' ) : '';				$remarks = $this->get_args ( 'remarks' ) ? $this->get_args ( 'remarks' ) : '';		$expenditureDate = $this->get_args ( 'expenditureDate' ) ? $this->get_args ( 'expenditureDate' ) : '';				if (! empty ( $aidKey ) && ! empty ( $expenditureType ) && ! empty ( $expenditurePrice ) && ! empty ( $expenditureBank ) && ! empty ( $expenditureDate )) {						Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );						$aid = $XDeode->decode ( $aidKey );						Doo::loadModel ( "accountBook" );			$accountBook = new accountBook ();						// 汇总信息			$abDetail = $accountBook->getAccountBookByAid ( $aid );						$price = $expenditurePrice - $abDetail [expenditurePrice];			Doo::loadModel ( "accountBookStatistics" );			$accountBookStatistics = new accountBookStatistics ();						if ($abDetail ['expenditureType'] == 4) {				$item += array (						'date' => date ( "Y-m-d" ),						'financingPrice' => $price,						'expensesType' => 3,						'aid' => $abDetail ['aid'] 				);			} elseif ($abDetail ['expenditureType'] == 5) {				$item += array (						'date' => date ( "Y-m-d" ),						'expensesType' => $abDetail ['expensesType'],						'payPrice' => $price,						'aid' => $abDetail ['aid'] 				);			} else {								$item = array (						'date' => date ( "Y-m-d" ),						'expensesType' => $abDetail ['expensesType'],						'payPrice' => $price,						'aid' => $abDetail ['aid'] 				);			}						$accountBookStatistics->setAccountBookStatistics ( $item );						//			$accountBook->expenditureType = $expenditureType;			$accountBook->expenditureMsg = $expenditureMsg;			$accountBook->expenditurePrice = $expenditurePrice;			$accountBook->expenditureBank = $expenditureBank;						$accountBook->remarks = $remarks;			$accountBook->expenditureDate = $expenditureDate;						$accountBook->aid = $aid;						$id = $accountBook->update ();		}		return '/paymentsAchieve';	}	function paymentsDelDo() {		$aidKey = $this->get_args ( 'aidKey' ) ? $this->get_args ( 'aidKey' ) : "";		if (! empty ( $aidKey )) {						Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );						$aid = $XDeode->decode ( $aidKey );						Doo::loadModel ( "accountBook" );			$accountBook = new accountBook ();						$abDetail = $accountBook->getAccountBookByAid ( $aid );						if (empty ( $abDetail ))				die ( 'illegal request' );								// 删除收支			Doo::loadModel ( "accountBookStatistics" );			$accountBookStatistics = new accountBookStatistics ();			$item = array (					'date' => date ( "Y-m-d" ),					'aid' => $abDetail ['aid'] 			);						$accountType = '';			if ($abDetail ['expensesType'] == 1) {				$accountType = 6;								if ($abDetail ['accountType'] != 7) {					$item += array (							'expensesType' => $abDetail ['expensesType'],							'inComePrice' => - $abDetail ['receivedPrice'] 					);				} else {					$item += array (							'financingPrice' => $abDetail ['receivedPrice'],							'expensesType' => 3 					);				}			} elseif ($abDetail ['expensesType'] == 2) {				$accountType = 5;				if ($abDetail ['accountType'] != 7) {					$item += array (							'expensesType' => $abDetail ['expensesType'],							'payPrice' => - $abDetail ['expenditurePrice'] 					);				} else {					$item += array (							'financingPrice' => - $abDetail ['expenditurePrice'],							'expensesType' => 3 					);				}			}						if (($abDetail ['expenditureType'] == 4 || $abDetail ['expenditureType'] == 6) && $abDetail ['expensesType'] == 2) {				if ($abDetail ['expenditureMsg'] == '公司固定')					$accountType = 9;				elseif ($abDetail ['expenditureMsg'] == '公司活期')					$accountType = 10;			}			if (($abDetail ['accountType'] == 7 || $abDetail ['accountType'] == 9) && $abDetail ['expensesType'] == 1) {				if ($abDetail ['accountMsg'] == '公司固定')					$accountType = 9;				elseif ($abDetail ['accountMsg'] == '公司活期')					$accountType = 10;			}						if ($abDetail ['accountMsg'] == '活期理财收益') {				$accountType = 10;			}						$accountBookStatistics->setAccountBookStatistics ( $item );						$accountBook->delete ( array (					'where' => 'aid=' . $aid,					'limit' => 1 			) );						// 删除收入流水			if (! empty ( $accountType )) {				Doo::loadModel ( 'wasteBook' );				$wasteBook = new wasteBook ();				$wasteBook->delete ( array (						'where' => 'dataID=' . $aid . ' and accountType=' . $accountType,						'limit' => 1 				) );			}		}		return '/paymentsAchieve';	}	function paymentsCollect() {		Doo::loadModel ( "execute" );		$execute = new execute ();		if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) {			die ( 'illegal request' );		}				$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$moth = $this->get_args ( 'moth' ) ? $this->get_args ( 'moth' ) : "";				Doo::loadModel ( "accountBookStatistics" );		$accountBookStatistics = new accountBookStatistics ();				Doo::loadClass ( 'receipt.func' );		$statisticsIncome = $accountBookStatistics->getStatisticsByCollect ( $year );		$html = _getPaymentsCollectByYearHtml ( $statisticsIncome );		$data ['html'] = $html ['html'];		$data ['inSum'] = $html ['sum'];				$statisticsPay = $accountBookStatistics->getStatisticsByCollect ( $year, 2 );		$html = _getPaymentsCollectPayByYearHtml ( $statisticsPay );		$data ['payHtml'] = $html ['html'];		$data ['paySum'] = $html ['sum'];				// 余额统计		// $inComePay = $accountBookStatistics->getStatisticsByBalance ( $year, 1 );		// $pay = $accountBookStatistics->getStatisticsByBalance ( $year, 2 );		include './protected/config/wasteBook.conf.php';		Doo::loadModel ( 'wasteBook' );		$wasteBook = new wasteBook ();				$inComePay = $wasteBook->getWasteBookByStatistics ( 1, $year );		$pay = $wasteBook->getWasteBookByStatistics ( 2, $year );				// 获得年份之前所有金额		$detail = $wasteBook->getWasteBookByStatisticsYear ( $year );		// print_r($detail);		// $waste['total'];				$lastBalanceHtml = '<tr><th colspan="2">截至上月余额</th>';				$inComeHtml = '<tr><th colspan="2">收入</th>';		$payHtml = '<tr class="colRed"><th colspan="2">支出</th>';		$BalanceHtml = '<tr><th colspan="2">余额</th>';		$inSum = $paySum = $showInSum = $showPaySum = $balanceSum = 0;		$balanceC = $bakBC = $waste ['total'] + $detail [0] ['accountPrice'];				$limitMonth = date ( 'm' ); // 限制显示月份参数				if (date ( 'Y' ) > $year) {			$limitMonth = 12;		}				for($i = 1; $i <= 12; $i ++) {			$inComeA = $payB = 0;			$falg = true;			foreach ( $inComePay as $key => $value ) {				if ($value ['month'] == $i) {					$falg = false;					$inComeHtml .= '<td class="taR">' . $value ['accountPriceShow'] . '</td>';					$inSum += $value ['accountPrice'];					$showInSum += $value ['accountPriceShow'];					$inComeA = $value ['accountPrice'];					break;				}			}			if ($falg)				$inComeHtml .= '<td class="taR">-</td>';						$payFalg = true;			foreach ( $pay as $key => $value ) {				if ($value ['month'] == $i) {					$payFalg = false;					$payHtml .= '<td class="taR">' . $value ['accountPriceShow'] . '</td>';					$paySum += $value ['accountPrice'];					$showPaySum += $value ['accountPriceShow'];					$payB = $value ['accountPrice'];					break;				}			}			if ($payFalg)				$payHtml .= '<td class="taR">-</td>';						if (empty ( $balanceC ) || $limitMonth < $i)				$lastBalanceHtml .= '<td class="taR">-</td>';			else				$lastBalanceHtml .= '<td class="taR">' . $balanceC . '</td>';						$balanceC = $balanceC + $inComeA + $payB;			$balanceSum += $balanceC;			if (empty ( $balanceC ) || $limitMonth < $i)				$BalanceHtml .= '<td class="taR">-</td>';			else				$BalanceHtml .= '<td class="taR">' . $balanceC . '</td>';						// 余额统计		}		$inComeHtml .= '<td class="taR colGreen">¥' . $showInSum . '</td></tr>';		$data ['inComeHtml'] = $inComeHtml;		$payHtml .= '<td class="taR ">¥' . $showPaySum . '</td></tr>';		$data ['payBalanceHtml'] = $payHtml;				$BalanceHtml .= '<td class="taR ">¥' . $balanceC . '</td></tr>';		$data ['BalanceHtml'] = $BalanceHtml;				$lastBalanceHtml .= '<td class="taR ">' . $balanceC . '</td></tr>';		$data ['lastBalanceHtml'] = $lastBalanceHtml;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($moth == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}		$data ['mothHtml'] = $mothHtml;				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {						if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;				$data ['year'] = $year;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'paymentsCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/expenses/paymentsCollect", $data );	}	function paymentsCollectDay() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$moth = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : '';				if (empty ( $moth ))			return 'paymentsCollect';		Doo::loadModel ( "accountBookStatistics" );		$accountBookStatistics = new accountBookStatistics ();				$i = 2;		$y = 2013;		$day = date ( "t", strtotime ( "$year-$moth" ) );				Doo::loadClass ( 'receipt.func' );		$statisticsIncome = $accountBookStatistics->getStatisticsByCollectDay ( $year, 1, $moth );				$html = _getPaymentsCollectByDayHtml ( $statisticsIncome, $day );		$data ['html'] = $html ['html'];		$data ['inSum'] = $html ['sum'];				$statisticsPay = $accountBookStatistics->getStatisticsByCollectDay ( $year, 2, $moth );		$html = _getPaymentsCollectPayByDayHtml ( $statisticsPay, $day );		$data ['payHtml'] = $html ['html'];		$data ['paySum'] = $html ['sum'];				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($moth == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}		$data ['mothHtml'] = $mothHtml;		$data ['year'] = $year;				// 余额		// $inComePay = $accountBookStatistics->getStatisticsByBalance ( $year, 1, $moth );		// $pay = $accountBookStatistics->getStatisticsByBalance ( $year, 2, $moth );				include './protected/config/wasteBook.conf.php';		Doo::loadModel ( 'wasteBook' );		$wasteBook = new wasteBook ();				$inComePay = $wasteBook->getStatisticsByDay ( 1, $year, $moth );		$pay = $wasteBook->getStatisticsByDay ( 2, $year, $moth );				// 获得年份之前所有金额		$detail = $wasteBook->getWasteBookByStatisticsDay ( $year, $moth );				$lastBalanceHtml = '<tr><th colspan="2">截至上日余额</th>';				$inComeHtml = '<tr><th colspan="2">收入</th>';		$payHtml = '<tr class="colRed"><th colspan="2">支出</th>';		$BalanceHtml = '<tr><th colspan="2">余额</th>';		$dayHtml = '<tr><th class="taC" colspan="2">余额</th>';		$inSum = $paySum = $showPaySum = $showInSum = $balanceSum = 0;		// $balanceC = 0;		$balanceC = $bakBC = $waste ['total'] + $detail [0] ['accountPrice'];				$limitDay = date ( 'd' );				$monthLK = ( int ) date ( 'm' );				if (date ( 'Y' ) > $year) {			$limitDay = cal_days_in_month ( CAL_GREGORIAN, date ( 'm' ), date ( 'Y' ) );		} elseif (date ( 'Y' ) <= $year && $monthLK < $moth) {			$limitDay = 0;		}				for($i = 1; $i <= $day; $i ++) {			$dayHtml .= '<td class="taC">' . $i . '日</td>';			$inComeA = $payB = 0;			$falg = true;			foreach ( $inComePay as $key => $value ) {				if ($value ['day'] == $i) {					$falg = false;					$inComeHtml .= '<td class="taR">' . $value ['accountPriceShow'] . '</td>';					$inSum += $value ['accountPrice'];					$showInSum += $value ['accountPriceShow'];					$inComeA = $value ['accountPrice'];					break;				}			}			if ($falg)				$inComeHtml .= '<td class="taR">-</td>';						$payFalg = true;			foreach ( $pay as $key => $value ) {				if ($value ['day'] == $i) {					$payFalg = false;					$payHtml .= '<td class="taR">' . $value ['accountPriceShow'] . '</td>';					$paySum += $value ['accountPrice'];					$showPaySum += $value ['accountPriceShow'];					$payB = $value ['accountPrice'];					break;				}			}			if ($payFalg)				$payHtml .= '<td class="taR">-</td>';						if (empty ( $balanceC ) || $limitDay < $i)				$lastBalanceHtml .= '<td class="taR">-</td>';			else				$lastBalanceHtml .= '<td class="taR">' . $balanceC . '</td>';						$balanceC = $balanceC + $inComeA + $payB;			$balanceSum += $balanceC;			if (empty ( $balanceC ) || $limitDay < $i)				$BalanceHtml .= '<td class="taR">-</td>';			else				$BalanceHtml .= '<td class="taR">' . $balanceC . '</td>';		}		$inComeHtml .= '<td class="taR colGreen">¥' . $showInSum . '</td></tr>';		$data ['inComeHtml'] = $inComeHtml;		$payHtml .= '<td class="taR ">¥' . $showPaySum . '</td></tr>';		$data ['payBalanceHtml'] = $payHtml;				$BalanceHtml .= '<td class="taR ">¥' . $balanceC . '</td></tr>';		$data ['BalanceHtml'] = $BalanceHtml;		$dayHtml .= '<td class="taR ">总计</td></tr>';		$data ['dayHtml'] = $dayHtml;				$lastBalanceHtml .= '<td class="taR ">' . $balanceC . '</td></tr>';		$data ['lastBalanceHtml'] = $lastBalanceHtml;				$dateHtml = "";		$now = date ( "Y" );		for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {						if ($YEARD <= $now) {				$dateHtml .= '<option ';				if ($year == $YEARD) {					$dateHtml .= 'selected ';				}				$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';			}		}				$data ['dateHtml'] = $dateHtml;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'paymentsCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/expenses/paymentsCollectDay", $data );	}		// 公司流水	function wasteBook() {		Doo::loadModel ( "execute" );		$execute = new execute ();		if (! $execute->isPaymentsShow ( $this->staff [0] ['sid'] )) {			die ( 'illegal request' );		}				include './protected/config/wasteBook.conf.php';		Doo::loadModel ( 'wasteBook' );		$wasteBook = new wasteBook ();				$inComeStatistics = $wasteBook->getWasteBookStatisticsByIncome ();		$waste = $this->getWasteBookStatistics ( $waste, $inComeStatistics );		//		$total = $waste ['bank'] ['CGBDeposit'] + $waste ['bank'] ['ICBCDeposit']+ $waste ['bank'] ['HUADeposit']  + $waste ['bank'] ['PersonalDeposit'] + $waste ['financial'] ['current'] ['CGBDeposit'] + $waste ['financial'] ['current'] ['ICBCDeposit'] + $waste ['financial'] ['fixed'] ['CGBDeposit'] + $waste ['financial'] ['fixed'] ['ICBCDeposit'];		$CGBDeposit_total =$waste ['bank'] ['CGBDeposit']+$waste ['bank'] ['HUADeposit'];				// print_r($waste);				$data ['waste'] = $waste;		$data ['total'] = $total;		$data ['CGBDeposit_total'] = $CGBDeposit_total;		$data['cashBalance']= $CGBDeposit_total+$waste ['bank'] ['ICBCDeposit']+$waste ['bank'] ['PersonalDeposit']+$waste ['financial'] ['current'] ['CGBDeposit']+$waste ['financial'] ['current'] ['ICBCDeposit'];								// 月流水数据结构		$monthStatistics = array ();		$incomeMothStatistics = array ();		$expenditureMothStatistics = array ();		for($i = 1; $i <= 12; $i ++) {			$month = date ( 'Y' ) . '-' . $i;			if ($i < 10)				$month = date ( 'Y' ) . '-0' . $i;			array_push ( $monthStatistics, $month );		}		foreach ( $monthStatistics as $value ) {			$falg = true;			foreach ( $inComeStatistics ['incomeReport'] as $k => $v ) {				if ($value == $v ['inputDate']) {					array_push ( $incomeMothStatistics, $v ['accountPrice'] );					$falg = false;				}			}			if ($falg) {				array_push ( $incomeMothStatistics, '' );			}						$falgEx = true;						foreach ( $inComeStatistics ['expenditureReport'] as $k => $v ) {				if ($value == $v ['inputDate']) {					array_push ( $expenditureMothStatistics, $v ['accountPrice'] );					$falg = false;				}			}			if ($falgEx) {				array_push ( $expenditureMothStatistics, '' );			}		}				$data ['monthStatistics'] = json_encode ( $monthStatistics );		$data ['incomeMothStatistics'] = json_encode ( $incomeMothStatistics );		$data ['expenditureMothStatistics'] = json_encode ( $expenditureMothStatistics );				$expenditureList = $wasteBook->getAccountBookByExpensesType ( 4, 2 );		$incomeList = $wasteBook->getAccountBookByExpensesType ( 4, 1 );		// print_r($incomeList);				$data ['expenditureList'] = $expenditureList;		$data ['incomeList'] = $incomeList;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'wasteBook';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/expenses/wasteBook", $data );	}	function wasteBookIncome() {		$date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : "ALL";		$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "ALL";		$dailyIncomeType = $this->get_args ( 'dailyIncomeType' ) ? $this->get_args ( 'dailyIncomeType' ) : "ALL";				$data ['dailyIncomeType'] = $dailyIncomeType;				Doo::loadModel ( 'wasteBook' );		$wasteBook = new wasteBook ();		Doo::loadModel ( 'L_category' );		$L_category = new L_category ();		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );				// echo $XDeode->encode(1).'<br>';		// echo $XDeode->encode(2).'<br>';		// echo $XDeode->encode(3).'<br>';		// echo $XDeode->encode(4).'<br>';		// echo $XDeode->encode(5).'<br>';		// echo $XDeode->encode(6).'<br>';		// echo $XDeode->encode(7).'<br>';		// echo $XDeode->encode(8).'<br>';		// echo $XDeode->encode(9).'<br>';		// echo $XDeode->encode(10).'<br>';				$year=date("Y");		$theDay=date("Y-m-d");				$dateArr = explode ( ':', $date );		$D1 = '';		$D2 = '';		$con = '';		if (! empty ( $date )) {			$D1 = $dateArr [0];			$D2 = $dateArr [1];		}		if (! empty ( $D1 ) && ! empty ( $D2 ))			$con = ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';		elseif (! empty ( $D1 ) && empty ( $D2 ))			$con = ' and inputDate = "' . $D1 . '"';		else{			$con = '  and DATE_FORMAT(inputDate,"%Y")= "'.$year.'" ';		}				if ($cid != 'ALL') {			$cid = $XDeode->decode ( $cid );			$con .= ' and cid = "' . $cid . '"';		}				if ($accountType != 'ALL') {			if ($accountType == 'INVOICE') {				$con .= ' and (accountType = 7 or accountType = 8)';			} elseif ($accountType == 'PAYMENTS') {				$con .= ' and (accountType = 6 or accountType = 9 or accountType = 10)';				if ($dailyIncomeType != 'ALL') {					$dailyIncomeType = $XDeode->decode ( $dailyIncomeType );					$con .= ' and dailyIncomeType =  ' . $dailyIncomeType;				}			}		}				$incomeList = $wasteBook->getAccountBookByExpensesType ( 0, 1, $con );				$sum = 0;$thsDaySum=0;		foreach ( $incomeList as $key => $value ) {			$sum += $value ['accountPrice'];			if($theDay==date("Y-m-d",strtotime($value['inputDate']))){				$thsDaySum+=$value ['accountPrice'];			}		}		// print_r($incomeList);				// 获得办事和部门		$categoryList = $L_category->getCategory ();				$data ['accountType'] = $accountType;		$data ['cid'] = $cid;		$data ['categoryList'] = $categoryList;		$data ['sum'] = $sum;		$data ['incomeList'] = $incomeList;		$data ['inputDate'] = $date;		$data['year']=$year;				$data ['thsDay'] =$theDay;		$data ['thsDaySum'] =$thsDaySum;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'wasteBook';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/expenses/wasteBookIncome", $data );	}		/**	 * 所有支出	 */	function wasteBookExpenditure() {		$date = $this->get_args ( 'inputDate' ) ? $this->get_args ( 'inputDate' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : "ALL";		$accountType = $this->get_args ( 'accountType' ) ? $this->get_args ( 'accountType' ) : "ALL";		$dailyExpenditureType = $this->get_args ( 'dailyExpenditureType' ) ? $this->get_args ( 'dailyExpenditureType' ) : "ALL";		$data ['dailyExpenditureType'] = $dailyExpenditureType;				$receiptType = $this->get_args ( 'receiptType' ) ? $this->get_args ( 'receiptType' ) : "ALL";		$data ['receiptType'] = $receiptType;				Doo::loadModel ( 'wasteBook' );		$wasteBook = new wasteBook ();		Doo::loadModel ( 'L_category' );		$L_category = new L_category ();		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );				$year=date("Y");		$theDay=date("Y-m-d");				$dateArr = explode ( ':', $date );		$D1 = '';		$D2 = '';		$con = '';		if (! empty ( $date )) {			$D1 = $dateArr [0];			$D2 = $dateArr [1];		}		if (! empty ( $D1 ) && ! empty ( $D2 ))			$con = ' and inputDate BETWEEN "' . $D1 . '" AND "' . $D2 . '" ';		elseif (! empty ( $D1 ) && empty ( $D2 ))			$con = ' and inputDate = "' . $D1 . '"';		else{			$con = '  and DATE_FORMAT(inputDate,"%Y")= "'.$year.'" ';		}								if ($cid != 'ALL') {			$cid = $XDeode->decode ( $cid );			$con .= ' and cid = "' . $cid . '"';		}				if ($accountType != 'ALL') {			if ($accountType == 'INVOICE') {				$con .= ' and accountType = 11';			} elseif ($accountType == 'PAYMENTS') {				$con .= ' and (accountType = 5 or accountType = 9 or accountType = 10)';				if ($dailyExpenditureType != 'ALL') {					$dailyExpenditureType = $XDeode->decode ( $dailyExpenditureType );					$con .= ' and dailyExpenditureType =  ' . $dailyExpenditureType;				}			} elseif ($accountType == 'RECEIPT') {				if ($receiptType == 'ALL') {					$con .= ' and (accountType = 1 or accountType = 2 or accountType = 3 or accountType = 4)';				} else {					$receiptType = $XDeode->decode ( $receiptType );					echo $receiptType;					if ($receiptType == 1) {						$con .= ' and (accountType =  1 or accountType=2)';					} else {						$con .= ' and accountType =  ' . $receiptType;					}				}			}		}				$incomeList = $wasteBook->getAccountBookByExpensesType ( 0, 2, $con );				print_r($incomeList);						$sum = 0;$thsDaySum=0;		foreach ( $incomeList as $key => $value ) {			$sum += $value ['accountPriceShow'];						if($theDay==date("Y-m-d",strtotime($value['inputDate']))){				$thsDaySum+=$value ['accountPriceShow'];			}		}		// print_r($incomeList);				// 获得办事和部门		$categoryList = $L_category->getCategory ();				$data ['accountType'] = $accountType;		$data ['cid'] = $cid;		$data ['categoryList'] = $categoryList;		$data ['sum'] = $sum;		$data ['incomeList'] = $incomeList;		$data ['inputDate'] = $date;		$data['year']=$year;				$data ['thsDay'] =$theDay;		$data ['thsDaySum'] =$thsDaySum;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'wasteBook';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/expenses/wasteBookExpenditure", $data );	}	function ajaxGetWasteinvoiceReceivables() {		$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";				Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );				$irid = $XDeode->decode ( $serial );				Doo::loadModel ( 'invoiceReceivables' );		$invoiceReceivables = new invoiceReceivables ();				$detail = $invoiceReceivables->getInvoiceReceivablesByIrid ( $irid );				echo json_encode ( array (				'status' => 1,				'detail' => $detail 		) );	}	function ajaxGetPaymentsByAid() {		$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";		Doo::loadModel ( "accountBook" );		$accountBook = new accountBook ();			$detail = $accountBook->getAccountBookByAid ( $serial );			echo json_encode ( array (				'status' => 1,				'detail' => $detail		) );	}	function ajaxGetWasteInvoice() {		$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";				Doo::loadModel ( 'invoice' );		$invoice = new invoice ();		Doo::loadModel ( 'invoiceReceivables' );		$invoiceReceivables = new invoiceReceivables ();				$detail = $invoice->getInvoiceByIid ( $serial );		$detailReceivables = $invoiceReceivables->getInvoiceReceivablesByIrid ( $detail ['irid'] );				$detail ['receivablesBank'] = $detailReceivables ['receivablesBank'];				echo json_encode ( array (				'status' => 1,				'detail' => $detail 		) );	}		/**	 */	function ajaxGetWasteReceipt() {		$serial = $this->get_args ( 'serial' ) ? $this->get_args ( 'serial' ) : "";		$accountTypeKey = $this->get_args ( 'accountTypeKey' ) ? $this->get_args ( 'accountTypeKey' ) : "";				Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadClass ( 'XDeode' );		$XDeode = new XDeode ( 5 );				$rid = $XDeode->decode ( $serial );		$accountType= $XDeode->decode ( $accountTypeKey );						// 获得个数据		$detail = $receipt->getReceiptByRid ( $rid );				// 初始化		$detail ['reviseDetail'] = array ();		if (! empty ( $value ['reviseDetail'] ))			$detail ['reviseDetail'] = json_decode ( $detail ['reviseDetail'], true );		$detail ['accountItem'] = json_decode ( $detail ['accountItem'], true );		$detail ['loanItem'] = json_decode ( $detail ['loanItem'], true );		$detail ['loanSumCN'] = $this->num_to_rmb ( $detail ['loanSum'] );		$detail ['sumCN'] = $this->num_to_rmb ( $detail ['sum'] );				// 获得费用html		$html = $this->getWasteReceiptHtml ( $detail ,$accountType);		// 获得费用审批人数据		$detail = $this->getReceiptApproverHtml ( $detail );				// 审批执行		$html .= '<table class="table table-bordered table-condensed"><tbody><tr>								<th class="taC" width="90">审批人</th>								<th class="taC">审批意见</th></tr>';		foreach ( $detail ['verifyList'] as $key => $value ) {			$html .= '<tr>					<td>' . $value [1] . '</td>					<td>' . $value ['opinion'] . '</td>				</tr>			';		}		$html .= '	</tbody></table>';				$html .= '<table class="table table-bordered table-condensed"><tbody><tr>								<th class="taC" width="90">执行人</th>								<th class="taC">执行意见</th></tr>';		foreach ( $detail ['executeCopy'] as $key => $value ) {			$html .= '<tr>					<td>' . $value [1] . '</td>					<td>' . $value ['opinion'] . '</td>				</tr>			';		}		$html .= '	</tbody></table>';		if($accountType==1){			Doo::loadModel ( 'loanReceipt' );			$loanReceipt = new loanReceipt ();			$loanList = $loanReceipt->getOne ( array (					'where' => 'rid=' . $detail ['loanRid'],					'desc' => 'rid',					'asArray' => true			) );									$html .= '<table class="table table-bordered table-condensed">		<tr class="warning">		<td class="taR"><b>汇款金额</b></td>		<td width="140" class="taR"><b style="font-size: 24px">¥'.$loanList['amount'].'</b></td>		</tr>		</table>';		}else{		$html .= '<table class="table table-bordered table-condensed">		<tr class="warning">		<td class="taR"><b>汇款金额</b></td>		<td width="140" class="taR"><b style="font-size: 24px">¥' . $detail ['amount'] . '</b></td>		</tr>		</table>';		}		// print_r($detail['verifyList']);		// header ( 'Content-Type:text/html;charset=utf-8' );		// echo $html;		echo json_encode ( array (				'status' => 1,				'html' => $html,				'detail' => $detail 		) );	}	function getReceiptApproverHtml($detail = array()) {		Doo::loadModel ( 'loanReceipt' );		$loanReceipt = new loanReceipt ();		Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( 'staff' );		$staff = new staff ();				if (empty ( $detail ))			return array ();				$loanList = $loanReceipt->getOne ( array (				'where' => 'rid=' . $detail ['loanRid'],				'desc' => 'rid',				'asArray' => true 		) );				if ($detail ['status'] == 3 || $detail ['status'] == 1 || $detail ['status'] == 8 || $detail ['status'] == 9) {			if ($detail ['status'] == 8 && $detail ['Rtype'] == 1)				$verifyList ['staff'] = $loanList ['verifyBreakup'];			else				$verifyList ['staff'] = $detail ['verifyBreakup'];		} else			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $detail ['verify'],					'asArray' => true 			) );				$verifyList = json_decode ( $verifyList ['staff'], true );				Doo::loadModel ( 'role' );		$role = new role ();				$roleId = 0;		$flag = true;		$roleKey = 0;		$endStaffArray = array ();		$roleArrayCopy = array ();		foreach ( $verifyList as $k => $v ) {			// init verifyStaff						if ($v [1] == 'ROLE') {				if (! empty ( $verifyStaff )) {					$endStaffArray = end ( $verifyStaff );				}								$roleVerify = json_decode ( $v [3], true );				$roleKey = $k;				$roleArray = array ();				$rolename = $role->getOne ( array (						'where' => 'rid=' . $v [0],						'asArray' => true 				) );								foreach ( $roleVerify as $o => $p ) {					$staffID = explode ( '_', $p );					$staffInfo = $staff->getOne ( array (							'where' => 'sid=' . $staffID [0],							'asArray' => true 					) );					// print_r($staffID);					$exp = array (							0 => $staffInfo ['sid'],							1 => $staffID [1],							2 => $staffInfo ['avatar'],							'date' => '',							'date' => '',							'opinion' => '',							'status' => '',							'rolename' => $rolename ['name'] 					);					array_push ( $roleArray, $exp );				}				$roleArrayCopy [$v [0]] = $roleArray;				// $verifyList[$k]['roleArray']=$roleArray;			}						$verifyList [$k] ['date'] = "";			$verifyList [$k] ['opinion'] = "";			$verifyList [$k] ['status'] = "";			if (empty ( $verifyStaff )) {				$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				if (($verifyList [0] [0] == $this->staff [0] ['sid']) && $flag) {					$verifyList [$k] ['status'] = 4;					$flag = false;				}			} else {								foreach ( $verifyStaff as $m => $u ) {					if ($v [0] == $m) {						$verifyList [$k] ['date'] = $u ['date'];						$verifyList [$k] ['opinion'] = $u ['opinion'];						$verifyList [$k] ['status'] = $u ['status'];						$flag = false;						break;					}				}								$endStaffArray = end ( $verifyStaff );			}		}				$rolename ['name'] = '';		if (! empty ( $roleId )) {			Doo::loadModel ( 'role' );			$role = new role ();			$rolename = $role->getOne ( array (					'where' => 'rid=' . $roleId,					'asArray' => true 			) );		}				if (! empty ( $verifyStaff ))			$endStaffArray = end ( $verifyStaff );				$KOP = false;		foreach ( $roleArrayCopy as $P => $A ) {						foreach ( $A as $MKI => $AVL ) {				if (! empty ( $verifyStaff )) {					// &&$rolename['rid']==$endStaffArray['nextStaff']					if ($this->staff [0] ['sid'] == $AVL [0] && isset ( $endStaffArray ['ROLE'] ) && $rolename ['rid'] == $endStaffArray ['nextStaff']) {						$button = 4;						$roleArrayCopy [$P] [$MKI] ['status'] = 4;					}										foreach ( $verifyStaff as $m => $u ) {						$AVLFK = $AVL [0] . '_R';						// echo $AVLFK.'=='.$m;var_dump($AVLFK==$m);echo '<br/>';												if (strcmp ( $AVLFK, $m ) == 0) { // &&isset($u['ROLE'])&&$u['ROLE']==1							$roleArrayCopy [$P] [$MKI] ['date'] = $u ['date'];							$roleArrayCopy [$P] [$MKI] ['opinion'] = $u ['opinion'];							$roleArrayCopy [$P] [$MKI] ['status'] = $u ['status'];														break;						}					}				} else {										if ($this->staff [0] ['sid'] == $AVL [0] && $verifyList [0] [1] == 'ROLE') {						$button = 4;						$roleArrayCopy [$P] [$MKI] ['status'] = 4;					}				}				// $roleArray[$MKI]['rolename']=$rolename['name'];				$KOP = true;			}		}				foreach ( $roleArrayCopy as $k => $v ) {			foreach ( $verifyList as $m => $n ) {				if ($n [0] == $k) {					array_splice ( $verifyList, $m, 1, $v );				}			}		}				// 费用执行人相关数据		$executeCopy = json_decode ( $detail ['executeCopy'], true );		$executeStaff = json_decode ( $detail ['executeStaff'], true );		foreach ( $executeCopy as $k => $v ) {			$executeCopy [$k] ['date'] = '';			$executeCopy [$k] ['opinion'] = '';			$executeCopy [$k] ['status'] = '';			if (! empty ( $executeStaff ))				foreach ( $executeStaff as $m => $u ) {					if ($v [0] == $m) {						$executeCopy [$k] ['date'] = $u ['date'];						$executeCopy [$k] ['opinion'] = $u ['opinion'];						$executeCopy [$k] ['status'] = $u ['status'];						break;					}				}		}				$detail ['executeCopy'] = $executeCopy;		$detail ['verifyList'] = $verifyList;		return $detail;	}	function getWasteReceiptHtml($detail = array(),$accountType=1) {		if (empty ( $detail ))			return '';				$html = '';		if ($detail ['Rtype'] == 0) { // 报销单						$html .= '<table class="table table-bordered table-condensed">						<tbody>					<tr>					<th colspan="2" class="taC">日常相关费用</th>				</tr>';			foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) {				$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';			}			$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . '</td>				</tr>';						$html .= '<tr>					<th colspan="2" class="taC">差旅相关费用</th>				</tr>';			foreach ( $detail ['accountItem'] ['差旅相关费用'] as $key => $value ) {				$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';			}			$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['travelSum'] . '</td>				</tr>';            if(isset($detail ['accountItem'] ['内部培训费用'])){            $html .= '<tr>					<th colspan="2" class="taC">内部培训费用</th>				</tr>';            foreach ( $detail ['accountItem'] ['内部培训费用'] as $key => $value ) {                $html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';            }            $html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['inttrainSum'] . '</td>				</tr>';            }						$html .= '<tr>					<th colspan="2" class="taC">其他</th>				</tr>';			foreach ( $detail ['accountItem'] ['其他'] as $key => $value ) {				$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';			}			$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['otherSum'] . '</td>				</tr>';						$html .= '<tr>					<th colspan="2" class="taC">报销金额调整</th>				</tr>';			foreach ( $detail ['reviseDetail'] as $key => $value ) {				$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';			}			$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['revisePrice'] . '</td>				</tr>';						$html .= '				<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>	  			<tr><th style="text-align:center" colspan="2">' . $detail ['category'] [0] ['title'] . '</th></tr>	  			<tr><th class="taC" colspan="2">报销说明</th></tr>	  						<tr><td colspan="2">' . $detail ['explanation'] . '</td></tr>	  				  			<tr class="warning">								<td class="taR"><b>(' . $detail ['receiptOrder'] . ')本次报销费用合计</b></td>								<td class="colGreed taR"><b style="font-size: 24px">¥' . $detail ['sum'] . '</b><br>' . $detail ['sumCN'] . '</td>							</tr>	  						</tbody>					</table>';		} elseif ($detail ['Rtype'] == 2) {//对公汇款			$html .= '					<table class="table table-bordered table-condensed">						<tbody>					<tr>					<th colspan="2" class="taC">办事处相关费用</th>				</tr>';			foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) {				$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';			}			$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . '</td>				</tr>';						$html .= '				<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>	  			<tr><th style="text-align:center" colspan="2">' . $detail ['category'] [0] ['title'] . '</th></tr>	  			<tr><th class="taC" colspan="2">报销说明</th></tr>	  						<tr><td colspan="2">' . $detail ['explanation'] . '</td></tr>				  			<tr class="warning">								<td class="taR"><b>(' . $detail ['receiptOrder'] . ')本次报销费用合计</b></td>								<td class="colGreed taR"><b style="font-size: 24px">¥' . $detail ['sum'] . '</b><br>' . $detail ['sumCN'] . '</td>							</tr>	  						</tbody>					</table>';		} elseif ($detail ['Rtype'] == 1) {//借款 或者借款报销						Doo::loadModel ( 'loanReceipt' );			$loanReceipt = new loanReceipt ();							$loanList = $loanReceipt->getOne ( array (					'where' => 'rid=' . $detail ['loanRid'],					'desc' => 'rid',					'asArray' => true			) );			// print_r($loanList);							$loanList ['sumCN']=$this->num_to_rmb($loanList ['sum']);							$html .= '<table class="table table-bordered table-condensed">						<tbody>							<tr>								<th colspan="2" class="taC">借款费用</th>							</tr>';			foreach ( $detail ['loanItem'] ['借款费用'] as $key => $value ) {				$html .= '<tr>						<th>' . $value ['name'] . '</th>						<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';			}			$html .= '<tr>								<th class="taC" colspan="2">产生费用所在办事处</th>							</tr>							<tr>								<th style="text-align: center" colspan="2">' . $detail ['category'] [0] ['title'] . '</th>							</tr>							<tr>								<th class="taC" colspan="2">费用说明</th>							</tr>							<tr>								<td colspan="2">' . $loanList ['explanation'] . '</td>							</tr>							<tr class="warning">								<td class="taR"><b>(' . $loanList ['receiptOrder'] . ')本次费用合计</b></td>								<td class="taR"><b style="font-size: 24px">¥' . $loanList ['sum'] . '</b><br>' . $loanList ['sumCN'] . '</td>							</tr>						</tbody>					</table>					';						if ( $accountType==2) {								$balance=$detail ['sum']-$loanList ['sum'];				$balanceCN=$this->num_to_rmb($balance);				$html .= '<table class="table table-bordered table-condensed">						<tbody>					<tr>					<th colspan="2" class="taC">日常相关费用</th>				</tr>';				foreach ( $detail ['accountItem'] ['日常相关费用'] as $key => $value ) {					$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';				}				$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['agencySum'] . '</td>				</tr>';								$html .= '<tr>					<th colspan="2" class="taC">差旅相关费用</th>				</tr>';				foreach ( $detail ['accountItem'] ['差旅相关费用'] as $key => $value ) {					$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';				}				$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['travelSum'] . '</td>				</tr>';                if(isset($detail ['accountItem'] ['内部培训费用'])){                    $html .= '<tr>					<th colspan="2" class="taC">内部培训费用</th>				</tr>';                    foreach ( $detail ['accountItem'] ['内部培训费用'] as $key => $value ) {                        $html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';                    }                    $html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['inttrainSum'] . '</td>				</tr>';                }								$html .= '<tr>					<th colspan="2" class="taC">其他</th>				</tr>';				foreach ( $detail ['accountItem'] ['其他'] as $key => $value ) {					$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';				}				$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['accountItem'] ['cSum'] ['otherSum'] . '</td>				</tr>';								$html .= '<tr>					<th colspan="2" class="taC">报销金额调整</th>				</tr>';				foreach ( $detail ['reviseDetail'] as $key => $value ) {					$html .= '				<tr>					<th>' . $value ['name'] . '</th>					<td width="140" class="taR">¥' . $value ['price'] . '</td>				</tr>';				}				$html .= '				<tr>					<th class="taR">合计</th>					<td class="colGreen taR">¥' . $detail ['revisePrice'] . '</td>				</tr>';								$html .= '				<tr><th class="taC" colspan="2">产生费用所在办事处</th></tr>	  			<tr><th style="text-align:center" colspan="2">' . $detail ['category'] [0] ['title'] . '</th></tr>	  			<tr><th class="taC" colspan="2">报销说明</th></tr>	  						<tr><td colspan="2">' . $detail ['explanation'] . '</td></tr>			  			<tr class="warning">								<td class="taR"><b>(' . $detail ['receiptOrder'] . ')本次报销费用合计</b></td>								<td class="colGreed taR"><b style="font-size: 24px">¥' . $detail ['sum'] . '</b><br>' . $detail ['sumCN'] . '</td>							</tr>				<tr class="success">                                <td class="taR"><b>借款结余</b></td>                                <td class="taR"><b style="font-size:24px">¥'.$balance.'</b><br>'.$balanceCN.'</td>                            </tr>																											  						</tbody>					</table>';			}					}				return $html;	}		/**	 * 计算流水	 */	function getWasteBookStatistics($waste = array(), $inComeStatistics) {		$bakWaste ['bank'] = array (				'CGBDeposit' => 0,				'ICBCDeposit' => 0,				'HUADeposit' => 0,				'PersonalDeposit' => 0 		);				$bakWaste ['financial'] = array (				'current' => array (						'CGBDeposit' => 0,						'ICBCDeposit' => 0 				),				'fixed' => array (						'CGBDeposit' => 0,						'ICBCDeposit' => 0 				) 		);				// 存款		foreach ( $waste ['bank'] as $key => $value ) {			// 收入			foreach ( $inComeStatistics ['incomeStatistics'] as $k => $v ) {				// 广发				if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') {					$waste ['bank'] ['CGBDeposit'] = $value + $v ['accountPrice'];				}				// 工商				if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') {					$waste ['bank'] ['ICBCDeposit'] = $value + $v ['accountPrice'];				}				// 华润				if ($v ['accountBank'] == 'HUADeposit' && $key == 'HUADeposit') {					$waste ['bank'] ['HUADeposit'] = $value + $v ['accountPrice'];				}				// 个人				if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') {					$waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice'];				}			}		}				foreach ( $waste ['bank'] as $key => $value ) {			// 支出			foreach ( $inComeStatistics ['expenditureStatistics'] as $k => $v ) {				// 广发				if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') {										$waste ['bank'] ['CGBDeposit'] = $value + $v ['accountPrice'];				}				// 工商				if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') {					$waste ['bank'] ['ICBCDeposit'] = $value + $v ['accountPrice'];				}				// 华润				if ($v ['accountBank'] == 'HUADeposit' && $key == 'HUADeposit') {					$waste ['bank'] ['HUADeposit'] = $value + $v ['accountPrice'];				}				// 个人				if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') {					$waste ['bank'] ['PersonalDeposit'] = $value + $v ['accountPrice'];				}			}		}				// 活期		foreach ( $waste ['financial'] ['current'] as $key => $value ) {			foreach ( $inComeStatistics ['currentStatistics'] as $k => $v ) {				// 广发				if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') {					$waste ['financial'] ['current'] ['CGBDeposit'] = $value  + $v ['accountPrice'];				}				// 工商				if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') {					$waste ['financial'] ['current'] ['ICBCDeposit'] = $value  + $v ['accountPrice'];				}				// 个人				if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') {					$waste ['bank'] ['PersonalDeposit'] = $value  + $v ['accountPrice'];				}			}		}		// print_r($inComeStatistics ['fixedStatistics']);		// 固期		foreach ( $waste ['financial'] ['fixed'] as $key => $value ) {			foreach ( $inComeStatistics ['fixedStatistics'] as $k => $v ) {				// 广发				if ($v ['accountBank'] == 'CGBDeposit' && $key == 'CGBDeposit') {					$waste ['financial'] ['fixed'] ['CGBDeposit'] = $value  + $v ['accountPrice'];				}				// 工商				if ($v ['accountBank'] == 'ICBCDeposit' && $key == 'ICBCDeposit') {					$waste ['financial'] ['fixed'] ['ICBCDeposit'] = $value  + $v ['accountPrice'];				}				// 个人				if ($v ['accountBank'] == 'PersonalDeposit' && $key == 'PersonalDeposit') {					$waste ['bank'] ['PersonalDeposit'] = $value  + $v ['accountPrice'];				}			}		}				return $waste;	}	function lyt() {		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		$receiptCollectList = $receiptDetail->find ( array (				'where' => 'status=1 ',				'asArray' => true 		) );				foreach ( $receiptCollectList as $key => $value ) {			$receiptDetail = new receiptDetail ();						$receiptDetail->pastDate = $value ['date'];						$receiptDetail->update ( array (					'where' => "rdid= '" . $value ['rdid'] . "'" 			) );		}	}	function staffCollectMonthDetail() {        //include Doo::conf ()->BASE_PATH . 'diagnostic/debug.php';		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		if (! $year)			$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );		if (! $month)			$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;				$nature = $this->get_args ( 'nature' ) ? $this->get_args ( 'nature' ) : "";		if (! $nature){				$nature = isset ( $this->params ['nature'] ) ? $this->params ['nature'] : 'ONJOB';		}		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		Doo::loadModel ( "receiptAuthorityManage" );		$receiptAuthorityManage = new receiptAuthorityManage ();        $aiList=$accountItem->getAccountItem();		$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );		$cidList = array ();		foreach ( $imcStaff as $key => $value ) {			array_push ( $cidList, $value ['cid'] );		}		$cidString = implode ( ',', $cidList );		$naturecon='';		if ($nature=='ONJOB'){			$naturecon=' and (nature!=4 )';		}elseif($nature=='LEAVEJOB'){			$naturecon=' and (nature=4 )';		}else{			die ( 'illegal request--nature' );		}				$staffList = $staff->find ( array (				'where' => 'username!="admin" and cid in (' . $cidString . ')'.$naturecon,				'asArray' => true 		) );		$categoryList = $staff->find ( array (				'select' => 'COUNT(*) as count,cid,category',				'where' => 'username !="admin" and cid in (' . $cidString . ')'.$naturecon,				'groupby' => 'cid',				'asArray' => true 		) );				$list = array ();        foreach($aiList as $key=>$value){            foreach ($value as $v){                $subtotal[$key][$v['name']]=0;            }        }		foreach ( $categoryList as $vlu ) {			$s1 = 0;			$m1 = 0;            $subtotal[$this->AGENCY]['AGENCY']=$subtotal[$this->TRAVEL]['TRAVEL']=$subtotal[$this->INTTRAIN]['INTTRAIN']=$subtotal[$this->TRAIN]['TRAIN']=$subtotal[$this->OTHER]['OTHER']=0;			foreach ( $staffList as $value ) {				if ($vlu ['cid'] == $value ['cid']) {					// pastDate					$receiptCollectList = $receiptDetail->find ( array (							'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',							'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,							'groupby' => 'item,Month(pastDate),itemCategory',							'asArray' => true 					) );					if (! empty ( $receiptCollectList )) {												$receiptL = array (								'日常相关费用' => array (),								'差旅相关费用' => array (),                                '内部培训费用' => array (),								'培训班费用' => array (),								'其他' => array () 						);												$html = "";						$psum = 0;						foreach ( $aiList[$this->AGENCY] as $va ) {							$falg = true;							foreach ( $receiptCollectList as $v ) {								if ($v ['itemCategory'] == '日常相关费用') {									if ($v ['item'] == $va['name']) {                                        $subtotal[$this->AGENCY][$va['name']]+=$v ['price'];										$psum += $v ['price'];										$html .= '<td class="taR">' . $v ['price'] . '</td>';										$falg = false;										break;									}								}							}							if ($falg)								$html .= '<td class="taR">-</td>';						}                        $subtotal[$this->AGENCY]['AGENCY'] += $psum;						if (! empty ( $psum ))							$psum = '<td class="colGreen taR">¥' . $psum . '</td>';						else							$psum = '<td class="colGreen taR">-</td>';						$receiptL ['日常相关费用'] = $psum . $html;												/* ----------------------------------- */						$html = "";						$psum = 0;						foreach ( $aiList[$this->TRAVEL] as $va ) {							$falg = true;							foreach ( $receiptCollectList as $v ) {								if ($v ['itemCategory'] == '差旅相关费用') {									if ($v ['item'] == $va['name']) {                                        $subtotal[$this->TRAVEL][$va['name']]+=$v ['price'];										$psum += $v ['price'];										$html .= '<td class="taR">' . $v ['price'] . '</td>';										$falg = false;										break;									}								}							}							if ($falg)								$html .= '<td class="taR">-</td>';						}                        $subtotal[$this->TRAVEL]['TRAVEL'] += $psum;						if (! empty ( $psum ))							$psum = '<td class="colGreen taR">¥' . $psum . '</td>';						else							$psum = '<td class="colGreen taR">-</td>';						$receiptL ['差旅相关费用'] = $psum . $html;						/* ------------------------------------- */                        $html = "";                        $psum = 0;                        foreach ( $aiList[$this->INTTRAIN] as $va ) {                            $falg = true;                            foreach ( $receiptCollectList as $v ) {                                if ($v ['itemCategory'] == '内部培训费用') {                                    if ($v ['item'] == $va['name']) {                                        $subtotal[$this->INTTRAIN][$va['name']]+=$v ['price'];                                        $psum += $v ['price'];                                        $html .= '<td class="taR">' . $v ['price'] . '</td>';                                        $falg = false;                                        break;                                    }                                }                            }                            if ($falg)                                $html .= '<td class="taR">-</td>';                        }                        $subtotal[$this->INTTRAIN]['INTTRAIN']  += $psum;                        if (! empty ( $psum ))                            $psum = '<td class="colGreen taR">¥' . $psum . '</td>';                        else                            $psum = '<td class="colGreen taR">-</td>';                        $receiptL ['内部培训费用'] = $psum . $html;                        /* ----------------------------------- */						$html = "";						$psum = 0;						foreach ( $aiList[$this->TRAIN] as $va ) {							$falg = true;							foreach ( $receiptCollectList as $v ) {								if ($v ['itemCategory'] == '培训班费用') {																		if ($v ['item'] == $va['name']) {                                        $subtotal[$this->TRAIN][$va['name']]+=$v ['price'];										$psum += $v ['price'];										$html .= '<td class="taR">' . $v ['price'] . '</td>';										$falg = false;										break;									}								}							}							if ($falg)								$html .= '<td class="taR">-</td>';						}                        $subtotal[$this->TRAIN]['TRAIN'] += $psum;						if (! empty ( $psum ))							$psum = '<td class="colGreen taR">¥' . $psum . '</td>';						else							$psum = '<td class="colGreen taR">-</td>';						$receiptL ['培训班费用'] = $psum . $html;												/* ------------------------------------- */						$html = "";						$psum = 0;						foreach ( $aiList[$this->OTHER] as $va ) {														$falg = true;							foreach ( $receiptCollectList as $v ) {																if ($v ['itemCategory'] == '其他') {									if (trim ( $v ['item'] ) == $va['name']) {                                        $subtotal[$this->OTHER][$va['name']]+=$v ['price'];										$psum += $v ['price'];										$html .= '<td class="taR">' . $v ['price'] . '</td>';										$falg = false;										break;									}								}							}							if ($falg)								$html .= '<td class="taR">-</td>';						}                        $subtotal[$this->OTHER]['OTHER'] += $psum;						if (! empty ( $psum ))							$psum = '<td class="colGreen taR">¥' . $psum . '</td>';						else							$psum = '<td class="colGreen taR">-</td>';						$receiptL ['其他'] = $psum . $html;												/* ------------------------------------- */						$html = "";						$psum = 0;						foreach ( $receiptCollectList as $v ) {							if ($v ['itemCategory'] == '报销金额调整') {																if (! empty ( $v ['price'] )) {									$psum += $v ['price'];								}							}						}						$s1 += $psum;						if (! empty ( $psum ))							$psum = '<td class="taR colOrange">¥' . $psum . '</td>';						else							$psum = '<td class="taR colOrange">-</td>';						$receiptL ['报销金额调整'] = $psum . $html;					} else {                        $receiptL [$this->AGENCY] ='<td class="colGreen taR">-</td>';                        foreach ( $aiList[$this->AGENCY] as $va ) {                            $receiptL [$this->AGENCY] .='<td class="taR">-</td>';                        }                        $receiptL [$this->TRAVEL] ='<td class="colGreen taR">-</td>';                        foreach ( $aiList[$this->TRAVEL] as $va ) {                            $receiptL [$this->TRAVEL] .='<td class="taR">-</td>';                        }                        $receiptL [$this->INTTRAIN] ='<td class="colGreen taR">-</td>';                        foreach ( $aiList[$this->INTTRAIN] as $va ) {                            $receiptL [$this->INTTRAIN] .='<td class="taR">-</td>';                        }                        $receiptL [$this->TRAIN] ='<td class="colGreen taR">-</td>';                        foreach ( $aiList[$this->TRAIN] as $va ) {                            $receiptL [$this->TRAIN] .='<td class="taR">-</td>';                        }                        $receiptL [$this->OTHER] ='<td class="colGreen taR">-</td>';                        foreach ( $aiList[$this->OTHER] as $va ) {                            $receiptL [$this->OTHER] .='<td class="taR">-</td>';                        }                        $receiptL ['报销金额调整'] = '<td class="taR colOrange">-</td>';					}										$monthStaffPrice = $receiptDetail->find ( array (							'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',							'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,							'groupby' => 'Month(pastDate)',							'asArray' => true 					) );					// echo 'staff='.$value['sid']." and status=1 and Year(date)=".$year.' and Month(date)='.$month;					if (! empty ( $monthStaffPrice [0] ['price'] )) {						$m1 += $monthStaffPrice [0] ['price'];						$receiptL ['monthStaffPrice'] = '<td><b>¥' . $monthStaffPrice [0] ['price'] . '</b></td>';					} else						$receiptL ['monthStaffPrice'] = '<td><b>-</b></td>';										$receiptL ['usernameEn'] = urlencode ( $value ['username'] );					$list [$value ['username']] = $receiptL;				}			}            $receiptL [$this->AGENCY] ='<td class="colGreen taR">'.$subtotal[$this->AGENCY]['AGENCY'].'</td>';            foreach ( $aiList[$this->AGENCY] as $va ) {                $receiptL [$this->AGENCY] .='<td class="taR">' . $subtotal[$this->AGENCY][$va['name']] . '</td>';                $subtotal[$this->AGENCY][$va['name']]=0;            }            $receiptL [$this->TRAVEL] ='<td class="colGreen taR">'.$subtotal[$this->TRAVEL]['TRAVEL'].'</td>';            foreach ( $aiList[$this->TRAVEL] as $va ) {                $receiptL [$this->TRAVEL] .='<td class="taR">' . $subtotal[$this->TRAVEL][$va['name']] . '</td>';                $subtotal[$this->TRAVEL][$va['name']]=0;            }            $receiptL [$this->INTTRAIN] ='<td class="colGreen taR">'.$subtotal[$this->INTTRAIN]['INTTRAIN'].'</td>';            foreach ( $aiList[$this->INTTRAIN] as $va ) {                $receiptL [$this->INTTRAIN] .='<td class="taR">' . $subtotal[$this->INTTRAIN][$va['name']] . '</td>';                $subtotal[$this->INTTRAIN][$va['name']]=0;            }            $receiptL [$this->TRAIN] ='<td class="colGreen taR">'.$subtotal[$this->TRAIN]['TRAIN'].'</td>';            foreach ( $aiList[$this->TRAIN] as $va ) {                $receiptL [$this->TRAIN] .='<td class="taR">' . $subtotal[$this->TRAIN][$va['name']] . '</td>';                $subtotal[$this->TRAIN][$va['name']]=0;            }            $receiptL [$this->OTHER] ='<td class="colGreen taR">'.$subtotal[$this->OTHER]['OTHER'].'</td>';            foreach ( $aiList[$this->OTHER] as $va ) {                $receiptL [$this->OTHER] .='<td class="taR">' . $subtotal[$this->OTHER][$va['name']] . '</td>';                $subtotal[$this->OTHER][$va['name']]=0;            }			$receiptL ['报销金额调整'] = '<td class="taR colOrange">' . $s1 . '</td>';			$receiptL ['monthStaffPrice'] = '<td><b>¥' . $m1 . '</b></td>';            $receiptL ['usernameEn'] =false;			$list ['<span class=colRed >' . $vlu ['category'] . '小计</span>'] = $receiptL;		}		$data ['list'] = $list;		// print_r($list);		$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',				'where' => " status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,				'groupby' => 'item,Month(pastDate),itemCategory',				'asArray' => true 		) );				$data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList,$aiList );				// statistics html		$stList = $statistics->getOne ( array (				'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,				'groupby' => 'Month(date)',				'asArray' => true 		) );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				$monthHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($i == $month)				$monthHtml .= '<option selected value="' . $i . '">' . $i . '</option>';			else				$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';		}				$data ['monthHtml'] = $monthHtml;		$data ['year'] = $year;		$data ['month'] = $month;		$data ['nature'] = $nature;        $data ['aiList'] = $aiList;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'companyCategoryCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/staffCollectMonthDetail", $data );		// $this->render ( "/admin/saeaStaffCollectDetail", $data );	}	function staffCollectMonthDetail2() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		if (! $year)			$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );		if (! $month)			$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;				Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();				$staffList = $staff->find ( array (				'where' => 'username!="admin"',				'asArray' => true 		) );		$categoryList = $staff->find ( array (				'select' => 'COUNT(*) as count,cid,category',				'where' => 'username !="admin"',				'groupby' => 'cid',				'asArray' => true 		) );				$list = array ();		foreach ( $categoryList as $vlu ) {			// $html='<th rowspan="'.$v['count'].'">'.$v['category'].'</th>';			$r1 = 0;			$r2 = 0;			$r3 = 0;			$r4 = 0;			$r5 = 0;			$r6 = 0;			$r7 = 0;			$r8 = 0;			$r9 = 0;			$r10 = 0;			$r11 = 0;			$r12 = 0;			$r13 = 0;			$r14 = 0;			$r15 = 0;			$c1 = 0;			$c2 = 0;			$c3 = 0;			$c4 = 0;			$c5 = 0;			$c6 = 0;			$p1 = 0;			$p2 = 0;			$p3 = 0;			$p4 = 0;			$p5 = 0;			$p6 = 0;			$p7 = 0;			$p8 = 0;			$p9 = 0;			$t1 = 0;			$t2 = 0;			$t3 = 0;			$t4 = 0;			$t5 = 0;			$s1 = 0;			$m1 = 0;			foreach ( $staffList as $value ) {				if ($vlu ['cid'] == $value ['cid']) {										$receiptCollectList = $receiptDetail->find ( array (							'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month',							'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(date)=" . $year . ' and Month(date)=' . $month,							'groupby' => 'item,Month(date),itemCategory',							'asArray' => true 					) );										if (! empty ( $receiptCollectList )) {												$receiptL = array (								'日常相关费用' => array (),								'差旅相关费用' => array (),								'培训班费用' => array (),								'其他' => array () 						);												$html = "";						$psum = 0;						$item = array (								'市内交通费',								'市内出租费',								'办事处房租',								'电话费',								'水费',								'电费',								'办公费用',								'邮寄费',								'其他费用',								'车辆费用',								'广告费',								'团队建设费',								'物业管理费',								'宽带费' 						);						foreach ( $item as $va ) {							$falg = true;							foreach ( $receiptCollectList as $v ) {								if ($v ['itemCategory'] == '日常相关费用') {																		if ($v ['item'] == $va) {										if ($va == '市内交通费')											$r1 += $v ['price'];										if ($va == '市内出租费')											$r2 += $v ['price'];										if ($va == '办事处房租')											$r3 += $v ['price'];										if ($va == '电话费')											$r4 += $v ['price'];										if ($va == '水费')											$r5 += $v ['price'];										if ($va == '电费')											$r6 += $v ['price'];										if ($va == '办公费用')											$r7 += $v ['price'];										if ($va == '邮寄费')											$r8 += $v ['price'];										if ($va == '其他费用')											$r9 += $v ['price'];										if ($va == '车辆费用')											$r10 += $v ['price'];										if ($va == '广告费')											$r11 += $v ['price'];										if ($va == '团队建设费')											$r13 += $v ['price'];										if ($va == '物业管理费')											$r14 += $v ['price'];										if ($va == '宽带费')											$r15 += $v ['price'];										$psum += $v ['price'];										$html .= '<td class="taR">' . $v ['price'] . '</td>';										$falg = false;										break;									}								}							}							if ($falg)								$html .= '<td class="taR">-</td>';						}												$r12 += $psum;						if (! empty ( $psum ))							$psum = '<td class="colGreen taR">¥' . $psum . '</td>';						else							$psum = '<td class="colGreen taR">-</td>';						$receiptL ['日常相关费用'] = $psum . $html;												/* ----------------------------------- */												$html = "";						$psum = 0;						$item = array (								'往来交通费',								'市内交通费',								'出差住宿费',								'出差补助',								'其他费用' 						);						foreach ( $item as $va ) {							$falg = true;							foreach ( $receiptCollectList as $v ) {								if ($v ['itemCategory'] == '差旅相关费用') {																		if ($v ['item'] == $va) {										if ($va == '往来交通费')											$c1 += $v ['price'];										if ($va == '市内交通费')											$c2 += $v ['price'];										if ($va == '出差住宿费')											$c3 += $v ['price'];										if ($va == '出差补助')											$c4 += $v ['price'];										if ($va == '其他费用')											$c5 += $v ['price'];																				$psum += $v ['price'];										$html .= '<td class="taR">' . $v ['price'] . '</td>';										$falg = false;										break;									}								}							}							if ($falg)								$html .= '<td class="taR">-</td>';						}						$c6 += $psum;						if (! empty ( $psum ))							$psum = '<td class="colGreen taR">¥' . $psum . '</td>';						else							$psum = '<td class="colGreen taR">-</td>';						$receiptL ['差旅相关费用'] = $psum . $html;						/* ------------------------------------- */						$html = "";						$psum = 0;						$item = array (								'场租费',								'薪酬',								'住宿费',								'交通费',								'餐饮费',								'办公费',								'公关费',								'其他' 						);						foreach ( $item as $va ) {							$falg = true;							foreach ( $receiptCollectList as $v ) {								if ($v ['itemCategory'] == '培训班费用') {																		if ($v ['item'] == $va) {																				if ($va == '场租费')											$p1 += $v ['price'];										if ($va == '薪酬')											$p2 += $v ['price'];										if ($va == '住宿费')											$p3 += $v ['price'];										if ($va == '交通费')											$p4 += $v ['price'];										if ($va == '餐饮费')											$p5 += $v ['price'];										if ($va == '办公费')											$p6 += $v ['price'];										if ($va == '公关费')											$p7 += $v ['price'];										if ($va == '其他')											$p8 += $v ['price'];																				$psum += $v ['price'];										$html .= '<td class="taR">' . $v ['price'] . '</td>';										$falg = false;										break;									}								}							}							if ($falg)								$html .= '<td class="taR">-</td>';						}						$p9 += $psum;						if (! empty ( $psum ))							$psum = '<td class="colGreen taR">¥' . $psum . '</td>';						else							$psum = '<td class="colGreen taR">-</td>';						$receiptL ['培训班费用'] = $psum . $html;												/* ------------------------------------- */						$html = "";						$psum = 0;						$item = array (								'公关费',								'广告费',								'借款',								'可自加费用' 						);						foreach ( $item as $va ) {							$falg = true;							foreach ( $receiptCollectList as $v ) {								if ($v ['itemCategory'] == '其他') {																		if ($v ['item'] == $va) {										if ($va == '公关费')											$t1 += $v ['price'];										if ($va == '广告费')											$t2 += $v ['price'];										if ($va == '借款')											$t3 += $v ['price'];										if ($va == '可自加费用')											$t4 += $v ['price'];										$psum += $v ['price'];										$html .= '<td class="taR">' . $v ['price'] . '</td>';										$falg = false;										break;									}								}							}							if ($falg)								$html .= '<td class="taR">-</td>';						}						$t5 += $psum;						if (! empty ( $psum ))							$psum = '<td class="colGreen taR">¥' . $psum . '</td>';						else							$psum = '<td class="colGreen taR">-</td>';						$receiptL ['其他'] = $psum . $html;												/* ------------------------------------- */						$html = "";						$psum = 0;						foreach ( $receiptCollectList as $v ) {							if ($v ['itemCategory'] == '报销金额调整') {																if (! empty ( $v ['price'] )) {									$psum += $v ['price'];								}							}						}						$s1 += $psum;						if (! empty ( $psum ))							$psum = '<td class="taR colOrange">¥' . $psum . '</td>';						else							$psum = '<td class="taR colOrange">-</td>';						$receiptL ['报销金额调整'] = $psum . $html;					} else {						$receiptL ['日常相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';						$receiptL ['差旅相关费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td>		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';						$receiptL ['培训班费用'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>		  						<td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';						$receiptL ['其他'] = '<td class="colGreen taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td><td class="taR">-</td>';						$receiptL ['报销金额调整'] = '<td class="taR colOrange">-</td>';					}										$monthStaffPrice = $receiptDetail->find ( array (							'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month',							'where' => 'staff=' . $value ['sid'] . " and status=1 and Year(date)=" . $year . ' and Month(date)=' . $month,							'asArray' => true 					) );										if (! empty ( $monthStaffPrice [0] ['price'] )) {						$m1 += $monthStaffPrice [0] ['price'];						$receiptL ['monthStaffPrice'] = '<td><b>¥' . $monthStaffPrice [0] ['price'] . '</b></td>';					} else						$receiptL ['monthStaffPrice'] = '<td><b>-</b></td>';					$list [$value ['username']] = $receiptL;				}			}			$receiptL ['日常相关费用'] = '<td class="colGreen taR">' . $r12 . '</td><td class="taR">' . $r1 . '</td><td class="taR">' . $r2 . '</td><td class="taR">' . $r3 . '</td><td class="taR">' . $r4 . '</td><td class="taR">' . $r5 . '</td>		  						<td class="taR">' . $r6 . '</td><td class="taR">' . $r7 . '</td><td class="taR">' . $r8 . '</td><td class="taR">' . $r9 . '</td><td class="taR">' . $r10 . '</td><td class="taR">' . $r11 . '</td><td class="taR">' . $r13 . '</td>		  						<td class="taR">' . $r14 . '</td><td class="taR">' . $r15 . '</td>';			$receiptL ['差旅相关费用'] = '<td class="colGreen taR">' . $c6 . '</td><td class="taR">' . $c1 . '</td>		  						<td class="taR">' . $c2 . '</td><td class="taR">' . $c3 . '</td><td class="taR">' . $c4 . '</td><td class="taR">' . $c5 . '</td>';			$receiptL ['培训班费用'] = '<td class="colGreen taR">' . $p9 . '</td><td class="taR">' . $p1 . '</td><td class="taR">' . $p2 . '</td><td class="taR">' . $p3 . '</td><td class="taR">' . $p4 . '</td>		  						<td class="taR">' . $p5 . '</td><td class="taR">' . $p6 . '</td><td class="taR">' . $p7 . '</td><td class="taR">' . $p8 . '</td>';			$receiptL ['其他'] = '<td class="colGreen taR">' . $t5 . '</td><td class="taR">' . $t1 . '</td><td class="taR">' . $t2 . '</td><td class="taR">' . $t3 . '</td><td class="taR">' . $t4 . '</td>';			$receiptL ['报销金额调整'] = '<td class="taR colOrange">' . $s1 . '</td>';			$receiptL ['monthStaffPrice'] = '<td><b>¥' . $m1 . '</b></td>';			$list ['<span class=colRed >' . $vlu ['category'] . '小计</span>'] = $receiptL;		}		$data ['list'] = $list;				$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,item,sum(price) as price,itemCategory,Month(date) as month',				'where' => " status=1 and Year(date)=" . $year . ' and Month(date)=' . $month,				'groupby' => 'item,Month(date),itemCategory',				'asArray' => true 		) );				$data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList );				// statistics html		$stList = $statistics->getOne ( array (				'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,				'groupby' => 'Month(date)',				'asArray' => true 		) );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				$monthHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($i == $month)				$monthHtml .= '<option selected value="' . $i . '">' . $i . '</option>';			else				$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';		}				$data ['monthHtml'] = $monthHtml;		$data ['year'] = $year;		$data ['month'] = $month;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'companyCategoryCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/staffCollectMonthDetail2", $data );		// $this->render ( "/admin/saeaStaffCollectDetail", $data );	}		/**	 * 用户报销单列表	 */	function receiptStatisticsStaffDetail() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$username = $this->get_args ( 'username' ) ? $this->get_args ( 'username' ) : "";				Doo::loadModel ( "receipt" );		$receipt = new receipt ();		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();				if (! empty ( $username )) {			$username = addslashes ( urldecode ( $username ) );						$staffDetail = $staff->getStaffByName ( $username );			if (empty ( $staffDetail ))				die ( 'illegal request' );						$list = $receipt->getReceiptBySid ( $staffDetail ['sid'], $year, $month );			$itemList = $accountItem->getAccountItem ();			$itemHtml = '';			$categoryHtml = '';			$itemKeyList = array_keys ( $itemList );			$revisePrice = 0;			// 报销单内容详情			foreach ( $list as $key => $value ) {				$accountItemList = json_decode ( $value ['accountItem'], true );				$list [$key] ['accountItemList'] = $accountItemList;				$receiptItemHtml = '';				foreach ( $itemKeyList as $v ) {					if ($v == '日常相关费用')						$receiptItemHtml .= '<td class="colGreen taR">' . $accountItemList ['cSum'] ['agencySum'] . '</td>';					elseif ($v == '差旅相关费用')						$receiptItemHtml .= '<td class="colGreen taR">' . $accountItemList ['cSum'] ['travelSum'] . '</td>';					elseif ($v == '培训班费用')						$receiptItemHtml .= '<td class="colGreen taR">' . $accountItemList ['cSum'] ['trainSum'] . '</td>';                    elseif ($v == '内部培训费用'){                        if (isset($accountItemList ['cSum'] ['inttrainSum'])){                            $receiptItemHtml .= '<td class="colGreen taR">' . $accountItemList ['cSum'] ['inttrainSum'] . '</td>';                        }else{                            $receiptItemHtml .= '<td class="colGreen taR">0</td>';                        }                    }elseif ($v == '其他')						$receiptItemHtml .= '<td class="colGreen taR">' . $accountItemList ['cSum'] ['otherSum'] . '</td>';										foreach ( $itemList [$v] as $ke => $va ) {						$falg = true;						if (! empty ( $accountItemList [$v] )) {							foreach ( $accountItemList [$v] as $ve ) {								if ($va ['name'] == $ve ['name']) {									$receiptItemHtml .= '<td class="taR">' . $ve ['price'] . '</td>';									$falg = false;									break;								}							}						}						if ($falg)							$receiptItemHtml .= '<td class="taR"></td>';					}				}				// 金额调整和费用查看				$revisePrice += $value ['revisePrice'];				$receiptItemHtml .= '<td class="taR">' . $value ['revisePrice'] . '</td>';				$receiptItemHtml .= '<td class="taR"><a href="#detail" data-toggle="modal" id="sen'.$key.'" data="' . htmlspecialchars($value ['explanation']) . '" onclick=showExplanation() >查看</a></td>';				$list [$key] ['receiptItemHtml'] = $receiptItemHtml;			}						// 报销单合计			$receiptTotalList = $receiptDetail->getReceiptTotalItem ( $staffDetail ['sid'], $year, $month );			$rtl = $receiptDetail->getReceiptTotalItemCategory ( $staffDetail ['sid'], $year, $month );						$receiptTotalHtml = '';			// 报销单项目抬头			foreach ( $itemKeyList as $value ) {				$count = count ( $itemList [$value] ) + 1;				$itemHtml .= '<th class="taC" colspan="' . $count . '">' . $value . '</th>';				$categoryHtml .= '<th class="taC">合计</th>';				$sumfalg=true;				foreach ( $rtl as $rtlValue ) {					if ($rtlValue ['itemCategory'] == $value) {						$receiptTotalHtml .= '<th>' . $rtlValue ['price'] . '</th>';						$sumfalg=false;						break;					}				}				if ($sumfalg)					$receiptTotalHtml .= '<th></th>';								foreach ( $itemList [$value] as $k => $v ) {					$categoryHtml .= '<th class="taC">' . $v ['name'] . '</th>';					// 合计					$falg = true;					foreach ( $receiptTotalList as $ve ) {						if ($ve ['itemCategory'] == $value && $ve ['item'] == $v ['name']) {							$receiptTotalHtml .= '<th >' . $ve ['price'] . '</th>';							$falg = false;							break;						}					}					if ($falg)						$receiptTotalHtml .= '<th></th>';				}			}			$receiptTotalHtml .= '<th>' . $revisePrice . '</th>';						$stList = $statistics->getStatisticsBySid ( $staffDetail ['sid'], $year, $month );			if (empty ( $stList ))				$stList = array (						'rePrice' => 0,						'agPrice' => 0 				);			$data ['stList'] = array (					'rePrice' => $stList ['rePrice'],					'agPrice' => $stList ['agPrice'],					'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 			);						$monthHtml = "";			for($i = 1; $i <= 12; $i ++) {				if ($i == $month)					$monthHtml .= '<option selected value="' . $i . '">' . $i . '</option>';				else					$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';			}						$data ['username'] = urlencode ( $username );			$data ['usernameEN'] = $username;			$data ['monthHtml'] = $monthHtml;			$data ['receiptTotalHtml'] = $receiptTotalHtml;			$data ['list'] = $list;			$data ['categoryHtml'] = $categoryHtml;			$data ['itemHtml'] = $itemHtml;			$data ['itemList'] = $itemList;			$data ['year'] = $year;			$data ['month'] = $month;						$data ['memu'] = "receipt";			$data ['staff'] = $this->staff;			$data ['receiptMemu'] = 'companyCategoryCollect';			$data ['verifyId'] = $this->verifyId;			$data ['executeId'] = $this->executeId;			$this->render ( "/admin/receiptStatisticsStaffDetail", $data );		}		die ( 'illegal request' );	}	function companyMonthCollectDetail() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : "";		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		if (! $year)			$year = isset ( $this->params ['year'] ) ? $this->params ['year'] : date ( "Y" );		if (! $month)			$month = isset ( $this->params ['month'] ) ? $this->params ['month'] : 1;				Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();				$staffList = $staff->find ( array (				'where' => 'username!="admin"',				'asArray' => true 		) );				$categoryList = $lCategory->find ( array (				'asArray' => true 		) );        $aiList=$accountItem->getAccountItem();		$list = array ();		foreach ( $categoryList as $value ) {			$receiptCollectList = $receiptDetail->find ( array (					'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',					'where' => 'cid=' . $value ['cid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,					'groupby' => 'item,Month(pastDate),itemCategory',					'asArray' => true 			) );						if (! empty ( $receiptCollectList )) {								$receiptL = array (						'日常相关费用' => array (),						'差旅相关费用' => array (),                    '内部培训费用' => array (),						'培训班费用' => array (),						'其他' => array () 				);								$html = "";				$psum = 0;				foreach ( $aiList[$this->AGENCY] as $va ) {					$falg = true;					foreach ( $receiptCollectList as $v ) {						if ($v ['itemCategory'] == $this->AGENCY) {														if ($v ['item'] == $va['name']) {								$psum += $v ['price'];								$html .= '<td class="taR">' . $v ['price'] . '</td>';								$falg = false;								break;							}						}					}					if ($falg)						$html .= '<td class="taR">-</td>';				}								if (! empty ( $psum ))					$psum = '<td class="colGreen taR">' . $psum . '</td>';				else					$psum = '<td class="colGreen taR">-</td>';				$receiptL [$this->AGENCY] = $psum . $html;								/* ----------------------------------- */								$html = "";				$psum = 0;				foreach (  $aiList[$this->TRAVEL] as $va ) {					$falg = true;					foreach ( $receiptCollectList as $v ) {						if ($v ['itemCategory'] == $this->TRAVEL) {														if ($v ['item'] == $va['name']) {								$psum += $v ['price'];								$html .= '<td class="taR">' . $v ['price'] . '</td>';								$falg = false;								break;							}						}					}					if ($falg)						$html .= '<td class="taR">-</td>';				}				if (! empty ( $psum ))					$psum = '<td class="colGreen taR">' . $psum . '</td>';				else					$psum = '<td class="colGreen taR">-</td>';				$receiptL [$this->TRAVEL] = $psum . $html;                /* ------------------------------------- */                $html = "";                $psum = 0;                foreach ( $aiList[$this->INTTRAIN] as $va ) {                    $falg = true;                    foreach ( $receiptCollectList as $v ) {                        if ($v ['itemCategory'] == $this->INTTRAIN) {                            if ($v ['item'] == $va['name']) {                                $psum += $v ['price'];                                $html .= '<td class="taR">' . $v ['price'] . '</td>';                                $falg = false;                                break;                            }                        }                    }                    if ($falg)                        $html .= '<td class="taR">-</td>';                }                if (! empty ( $psum ))                    $psum = '<td class="colGreen taR">' . $psum . '</td>';                else                    $psum = '<td class="colGreen taR">-</td>';                $receiptL [$this->INTTRAIN] = $psum . $html;				/* ------------------------------------- */				$html = "";				$psum = 0;				foreach ( $aiList[$this->TRAIN] as $va ) {					$falg = true;					foreach ( $receiptCollectList as $v ) {						if ($v ['itemCategory'] == $this->TRAIN) {														if ($v ['item'] == $va['name']) {								$psum += $v ['price'];								$html .= '<td class="taR">' . $v ['price'] . '</td>';								$falg = false;								break;							}						}					}					if ($falg)						$html .= '<td class="taR">-</td>';				}				if (! empty ( $psum ))					$psum = '<td class="colGreen taR">' . $psum . '</td>';				else					$psum = '<td class="colGreen taR">-</td>';				$receiptL [$this->TRAIN] = $psum . $html;								/* ------------------------------------- */				$html = "";				$psum = 0;				foreach ( $aiList[$this->OTHER] as $va ) {					$falg = true;					foreach ( $receiptCollectList as $v ) {						if ($v ['itemCategory'] == $this->OTHER) {														if ($v ['item'] == $va['name']) {								$psum += $v ['price'];								$html .= '<td class="taR">' . $v ['price'] . '</td>';								$falg = false;								break;							}						}					}					if ($falg)						$html .= '<td class="taR">-</td>';				}				if (! empty ( $psum ))					$psum = '<td class="colGreen taR">' . $psum . '</td>';				else					$psum = '<td class="colGreen taR">-</td>';				$receiptL [$this->OTHER] = $psum . $html;								/* ------------------------------------- */				$html = "";				$psum = 0;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '报销金额调整') {												if (! empty ( $v ['price'] ))							$psum += $v ['price'];					}				}								if (! empty ( $psum ))					$psum = '<td class="taR colOrange">' . $psum . '</td>';				else					$psum = '<td class="taR colOrange">-</td>';				$receiptL ['报销金额调整'] = $psum . $html;			} else {                $receiptL [$this->AGENCY] ='<td class="colGreen taR">-</td>';                foreach ( $aiList[$this->AGENCY] as $va ) {                    $receiptL [$this->AGENCY] .='<td class="taR">-</td>';                }                $receiptL [$this->TRAVEL] ='<td class="colGreen taR">-</td>';                foreach ( $aiList[$this->TRAVEL] as $va ) {                    $receiptL [$this->TRAVEL] .='<td class="taR">-</td>';                }                $receiptL [$this->INTTRAIN] ='<td class="colGreen taR">-</td>';                foreach ( $aiList[$this->INTTRAIN] as $va ) {                    $receiptL [$this->INTTRAIN] .='<td class="taR">-</td>';                }                $receiptL [$this->TRAIN] ='<td class="colGreen taR">-</td>';                foreach ( $aiList[$this->TRAIN] as $va ) {                    $receiptL [$this->TRAIN] .='<td class="taR">-</td>';                }                $receiptL [$this->OTHER] ='<td class="colGreen taR">-</td>';                foreach ( $aiList[$this->OTHER] as $va ) {                    $receiptL [$this->OTHER] .='<td class="taR">-</td>';                }				$receiptL ['报销金额调整'] = '<td class="taR colOrange">-</td>';			}						$monthStaffPrice = $receiptDetail->find ( array (					'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',					'where' => 'cid=' . $value ['cid'] . " and status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,					'asArray' => true 			) );						if (! empty ( $monthStaffPrice [0] ['price'] ))				$receiptL ['monthStaffPrice'] = '<td><b>' . $monthStaffPrice [0] ['price'] . '</b></td>';			else				$receiptL ['monthStaffPrice'] = '<td><b>-</b></td>';			$list [$value ['title']] = $receiptL;		}				$data ['list'] = $list;				$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',				'where' => " status=1 and Year(pastDate)=" . $year . ' and Month(pastDate)=' . $month,				'groupby' => 'item,Month(pastDate),itemCategory',				'asArray' => true 		) );				$data ['monthPriceHtml'] = $this->_getMonthCollectDetail ( $receiptCollectList,$aiList );				 //print_r($data['monthPriceHtml']);		// foreach ($data['monthPriceHtml'] as $value){		// echo $value;		// }		// die;		// statistics html		$stList = $statistics->getOne ( array (				'select' => 'sum(rePrice) as rePrice,sum(agPrice) as agPrice',				'where' => 'Month(date)=' . $month . " and Year(date)=" . $year,				'groupby' => 'Month(date)',				'asArray' => true 		) );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				$monthHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($i == $month)				$monthHtml .= '<option selected value="' . $i . '">' . $i . '</option>';			else				$monthHtml .= '<option value="' . $i . '">' . $i . '</option>';		}        $data ['aiList'] = $aiList;                $dateHtml = "";        $now = date ( "Y" );        for($YEARD = 2050; $YEARD >= 2004; $YEARD --) {        		        	if ($YEARD <= $now) {        		$dateHtml .= '<option ';        		if ($year == $YEARD) {        			$dateHtml .= 'selected ';        		}        		$dateHtml .= 'value="' . $YEARD . '">' . $YEARD . '</option>';        	}        }                $data ['dateHtml'] = $dateHtml;		$data ['monthHtml'] = $monthHtml;		$data ['year'] = $year;		$data ['month'] = $month;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'companyCategoryCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;				$this->render ( "/admin/companyMonthCollectDetail", $data );	}	function staffCollectDetail() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );		$staffname = $this->get_args ( 'username' ) ? $this->get_args ( 'username' ) : "";		$pcid = $this->get_args ( 'category' ) ? $this->get_args ( 'category' ) : "";		if (! $staffname) {			$staffname = isset ( $this->params ['staffname'] ) ? $this->params ['staffname'] : "";			$staffname = urldecode ( $staffname );		}				Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( "receiptDetail" );		$receiptDetail = new receiptDetail ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		Doo::loadModel ( 'statistics' );		$statistics = new statistics ();		Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();				Doo::loadModel ( "receiptAuthorityManage" );		$receiptAuthorityManage = new receiptAuthorityManage ();				$imcStaff = $receiptAuthorityManage->getInvoiceCMByStaff ( $this->staff [0] ['sid'] );		$cidList = array ();		foreach ( $imcStaff as $key => $value ) {			array_push ( $cidList, $value ['cid'] );		}		$cidString = implode ( ',', $cidList );				$staffList = $staff->find ( array (				'where' => ' cid in (' . $cidString . ')',				'asArray' => true 		) );				$stHtml = '';		$stTitle = "";		$staffId = 0;		$cid = 0;		$ocid = 0;		foreach ( $staffList as $value ) {			if ($value ['username'] == $staffname && $value ['username'] != 'admin') {				$stTitle = $value ['category'] . '-' . $value ['username'];				$staffId = $value ['sid'];				$cid = $value ['cid'];				$ocid = $value ['cid'];				if (! empty ( $value ['othercid'] ))					$cid = $value ['cid'] . ',' . $value ['othercid'];				$stHtml .= '<option selected value="' . $value ['username'] . '">' . $value ['category'] . '-' . $value ['username'] . '</option>';			} elseif ($value ['username'] != 'admin')				$stHtml .= '<option value="' . $value ['username'] . '">' . $value ['category'] . '-' . $value ['username'] . '</option>';		}		$data ['lCategoryHtml'] = $lCategory->find ( array (				'where' => 'cid in(' . $cid . ')',				'asArray' => true 		) );		if (empty ( $pcid ))			$pcid = $ocid;				$data ['ocid'] = $pcid;				$path = SITE_PATH . $this->STAFFCOLLECTPATH . "staffCollectDetail_" . $year . "_" . $staffId . ".htmls";		$this->showCache ( $path );				//		$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,item,sum(price) as price,itemCategory,Month(pastDate) as month',				'where' => 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year,				'groupby' => 'item,Month(pastDate),itemCategory',				'asArray' => true 		) );		// echo 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year;		// print_r($receiptCollectList);		$accountList = $accountItem->find ( array (				'asArray' => true 		) );		// create CollectDetail HTML		$collectHtml = array ();		foreach ( $accountList as $key => $value ) {			$html = "";			$asum = 0;			for($i = 1; $i <= 12; $i ++) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($value ['category'] == $v ['itemCategory'] && $v ['item'] == $value ['name'] && $i == $v ['month']) {												if ($v ['item'] == '可自加费用') {							// echo $v ['item'].'/'.$v ['price'].'/'.$v ['month'].$v ['itemCategory'].'<br/>';						}						$asum += $v ['price'];						$html .= '<td class="taR">' . $v ['price'] . '</td>';						$falg = false;						break;					}				}				if ($falg)					$html .= '<td class="taR">-</td>';			}			$html .= '<td class="taR colGreen"><b>' . $asum . '</b></td>';			$collectHtml [$value ['category']] [$value ['name']] = $html;		}		$data ['collectHtml'] = $collectHtml;				// print_r($collectHtml);				// create Adjustment price html		$receiptCollectList = $receiptDetail->find ( array (				'select' => 'staff,sum(price) as price,itemCategory,Month(pastDate) as month',				'where' => 'staff=' . $staffId . " and cid=" . $pcid . " and status=1 and Year(pastDate)=" . $year,				'groupby' => 'itemCategory,Month(pastDate)',				'asArray' => true 		) );				$adjustment = array ();		$collectArray = array (				'日常相关费用' => array (),				'差旅相关费用' => array (),				'培训班费用' => array (),            '内部培训费用'=>array(),				'其他' => array () 		);				$collectHtml = $this->collectHtml ( $receiptCollectList, '日常相关费用', 'b' );		array_push ( $collectArray ['日常相关费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '差旅相关费用', 'b' );		array_push ( $collectArray ['差旅相关费用'], $collectHtml );				$collectHtml = $this->collectHtml ( $receiptCollectList, '培训班费用', 'b' );		array_push ( $collectArray ['培训班费用'], $collectHtml );        $collectHtml = $this->collectHtml ( $receiptCollectList, '内部培训费用', 'b' );        array_push ( $collectArray ['内部培训费用'], $collectHtml );		$collectHtml = $this->collectHtml ( $receiptCollectList, '其他', 'b' );		array_push ( $collectArray ['其他'], $collectHtml );				$data ['collectArray'] = $collectArray;				$collectHtml = $this->collectHtml ( $receiptCollectList, '报销金额调整' );		array_push ( $adjustment, $collectHtml );		$data ['adjustment'] = $adjustment;				// total price html		$collectHtml = "";		$total = 0;		for($i = 1; $i <= 12; $i ++) {			$sumPrice = 0;			foreach ( $receiptCollectList as $key => $value ) {				if ($value ['month'] == $i) {					$sumPrice += $value ['price'];				}			}			if ($sumPrice == 0)				$collectHtml .= '<td class="taR">-</td>';			else				$collectHtml .= '<td class="taR">¥' . $sumPrice . '</td>';			$total += $sumPrice;		}		$collectHtml .= '<td class="taR colGreen">¥' . $total . '</td>';				// statistics html		$stList = $statistics->statisticsByYear ( $year, $staffId );		if (empty ( $stList ))			$stList = array (					'rePrice' => 0,					'agPrice' => 0 			);		$data ['stList'] = array (				'rePrice' => $stList ['rePrice'],				'agPrice' => $stList ['agPrice'],				'skPrice' => ($stList ['rePrice'] - $stList ['agPrice']) 		);				$data ['totalPrice'] = $collectHtml;		$data ['totalYear'] = $total;				$data ['stHtml'] = $stHtml;		$data ['year'] = $year;		$data ['stTitle'] = $stTitle;				$data ['staffname'] = urlencode ( $staffname );				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'companyCategoryCollect';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		if ($year < date ( "Y" )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			$receiptList = $receipt->find ( array (					'where' => 'staff=' . $staffId . ' and (status=2 or status=4) and Year(date) =' . $year,					'asArray' => true 			) );			if (empty ( $receiptList )) { // generated files				ob_start ();				$this->render ( "/admin/saeaStaffCollectDetail", $data );				$this->cacheFile ( $path );				die ();			}		}				$this->render ( "/admin/saeaStaffCollectDetail", $data );	}	function BUGFLAG() {		$status = isset ( $this->params ['status'] ) && is_numeric ( $this->params ['status'] ) ? $this->params ['status'] : 0;		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( 'Y' );		$month = $this->get_args ( 'month' ) ? $this->get_args ( 'month' ) : "";		$cid = $this->get_args ( 'cid' ) ? $this->get_args ( 'cid' ) : 0;		$sid = $this->get_args ( 'sid' ) ? $this->get_args ( 'sid' ) : 0;				if (empty ( $status ))			$status = $this->get_args ( 'status' ) && is_numeric ( $this->get_args ( 'status' ) ) ? $this->get_args ( 'status' ) : 0;				$page_size = 12;		$page = isset ( $this->params ['page'] ) && is_numeric ( $this->params ['page'] ) ? $this->params ['page'] : 1;				$vidList = array ();		$button = 0;				Doo::loadModel ( 'verify' );		$verify = new verify ();		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();				$dateCondition = " and Year(date) =" . $year;				if (! empty ( $month ))			$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month;				$categoryList = $Lcategory->find ( array (				'asArray' => true 		) );		$staffList = $staff->find ( array (				'where' => 'cid=' . $cid,				'asArray' => true 		) );		$cateCondition = "";		$staffCondition = "";		$approvalCondition = "";		if (! empty ( $cid ))			$cateCondition = ' and cid=' . $cid;		if (! empty ( $sid )) {			$staffCondition = ' and staff=' . $sid;			$cateCondition = "";		}				$approvalCondition = " and status=" . $status;		if ($status == 2) {			// 查找角色审批人			$approvalCondition = ' and status=' . $status . ' and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )';		}				if ($status == 5) { // and verifyStaff like "%\"'.$this->staff[0]['sid'].'\":{%"			$approvalCondition = ' and status=2  ';		}				if ($status == 1) {			$approvalCondition = ' and (status=' . $status . ' or status=6)  ';		}				// nowStaff like "%'.$this->staff[0]['sid'].'%"		$pageinfo ['page'] = array (				'previous' => '' 		);		if ($status == 0) {			$pageinfo = $this->get_page ( "CLD_receipt", $dateCondition . $cateCondition . $staffCondition . '  and status!=5', $page, $page_size, "approvalExpenses", "", "" );						$receiptList = $receipt->find ( array (					'where' => 'status!=5  ' . $dateCondition . $cateCondition . $staffCondition,					'limit' => $pageinfo ['lower'] . ',' . $page_size,					'desc' => 'rid',					'asArray' => true 			) );			// echo 'status!=5 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')';		} else			$receiptList = $receipt->find ( array (					'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition,					'desc' => 'rid',					'asArray' => true 			) );				$rLRes = $receipt->find ( array (				'where' => 'status=2 and (nowStaff like "%,' . $this->staff [0] ['sid'] . '%" or nowStaff like "%' . $this->staff [0] ['sid'] . ',%" or nowStaff=' . $this->staff [0] ['sid'] . ' )' . $cateCondition . $staffCondition,				'desc' => 'rid',				'asArray' => true 		) );				// echo '1 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')';		// print_r($pageinfo);				$Locate = 0;				foreach ( $receiptList as $key => $value ) {			$receiptList [$key] ['Locate'] = $Locate;			$Locate ++;			$receiptList [$key] ['reviseDetail'] = array ();			if (! empty ( $value ['reviseDetail'] ))				$receiptList [$key] ['reviseDetail'] = json_decode ( $value ['reviseDetail'], true );			$receiptList [$key] ['accountItem'] = json_decode ( $value ['accountItem'], true );			$categoryDetil = $Lcategory->getOne ( array (					'where' => 'cid=' . $value ['cid'],					'asArray' => true 			) );			$receiptList [$key] ['category'] = $categoryDetil ['title'];			$verifyList = $verify->getOne ( array (					'where' => 'vid=' . $value ['verify'],					'asArray' => true 			) );			$verifyList = json_decode ( $verifyList ['staff'], true ); // status opinion			$verifyStaff = json_decode ( $value ['verifyStaff'], true );			foreach ( $verifyList as $k => $v ) {				// init verifyStaff				$verifyList [$k] ['date'] = "";				$verifyList [$k] ['opinion'] = "";				$verifyList [$k] ['status'] = "";				if (empty ( $verifyStaff )) {					$verifyList [$k] ['date'] = "";					$verifyList [$k] ['opinion'] = "";					if ($v [0] == $this->staff [0] ['sid']) {						$verifyList [$k] ['status'] = 4;						$button = 4;					}				} else {					$flag = true;					foreach ( $verifyStaff as $m => $u ) {						if ($v [0] == $m) {							$verifyList [$k] ['date'] = $u ['date'];							$verifyList [$k] ['opinion'] = $u ['opinion'];							$verifyList [$k] ['status'] = $u ['status'];							$flag = false;							break;						}						// elseif($v[0]==$this->staff[0]['sid']){$verifyList[$k]['status']=4;break;}						// if ($v[0]==$this->staff[0]['sid']&&$m!=$this->staff[0]['sid']){$verifyList[$k]['status']=4;}						// if($v[0]==$this->staff[0]['sid']&&$v[0]==$m){if ($u['status']!=1&&$u['status']!=3)$button=4;}					}					if ($flag) { // 检测可编辑						if ($v [0] == $this->staff [0] ['sid']) {							$verifyList [$k] ['status'] = 4;							$button = 4;						}					}				}			}			$receiptList [$key] ['verifyList'] = $verifyList;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$receiptList [$key] ['button'] = $button;			$receiptList [$key] ['nowStaffArray'] = explode ( ',', $value ['nowStaff'] );		}		// print_r($receiptList);die;		// $data['verifyDetail']=$verifyDetail;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}		$data ['mothHtml'] = $mothHtml;				$data ['page'] = $pageinfo;		$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $rLRes );		$data ['status'] = $status;		$data ['year'] = $year;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;				// print_r($receiptList);				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approvalExpenses';		$data ['verifyId'] = $this->verifyId;				$data ['executeId'] = $this->executeId;		$this->render ( "/admin/FALG", $data );	}	function ajaxGetReceiptOrder() {		$receiptOrder = $this->get_args ( 'receiptOrder' ) ? $this->get_args ( 'receiptOrder' ) : "";				if (! empty ( $receiptOrder )) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			Doo::loadModel ( 'staff' );			$staff = new staff ();						$receiptInfo = $receipt->getOne ( array (					'where' => ' receiptOrder="' . $receiptOrder . '"',					'asArray' => true 			) );			$verifyStaff = json_decode ( $receiptInfo ['verifyStaff'], true );						$html = '<div class="control-group"><div class="controls clearfix"><table class="table table table-bordered"><tbody>         			<tr><td>单号:<b>' . $receiptOrder . '</b></td><td>金额:<b class="colOrange">¥' . $receiptInfo ['sum'] . '</b></td></tr>         		</tbody></table><table class="table table table-bordered"><tbody>';			foreach ( $verifyStaff as $key => $value ) {				$staffInfo = $staff->getOne ( array (						'select' => 'username',						'where' => ' sid="' . $key . '"',						'asArray' => true 				) );				$html .= '<tr><th width="70">' . $staffInfo ['username'] . '</th><td>' . $value ['opinion'] . '</td></tr>';			}			$html .= '</tbody></table></div></div>';			echo json_encode ( array (					'status' => 1,					'receiptHtml' => $html 			) );			die ();		}		echo json_encode ( array (				'status' => 2,				'receiptHtml' => '' 		) );		die ();	}	function _getMonthCollectDetail($receiptCollectList,$aiList) {		if (! empty ( $receiptCollectList )) {						$receiptL = array (					'日常相关费用' => array (),					'差旅相关费用' => array (),					'内部培训费用'=>array(),					'培训班费用' => array (),					'其他' => array () 			);						$html = "";			$psum = 0;			foreach ( $aiList[$this->AGENCY] as $value ) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '日常相关费用') {												if ($v ['item'] == $value['name']) {							$psum += $v ['price'];							$html .= '<td class="taR">' . $v ['price'] . '</td>';							$falg = false;							break;						}					}				}				if ($falg)					$html .= '<td class="taR">-</td>';			}						if (! empty ( $psum ))				$psum = '<td class="colGreen taR">' . $psum . '</td>';			else				$psum = '<td class="colGreen taR">-</td>';			$receiptL ['日常相关费用'] = $psum . $html;						/* ----------------------------------- */						$html = "";			$psum = 0;			foreach ( $aiList[$this->TRAVEL] as $value ) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '差旅相关费用') {						if ($v ['item'] == $value['name']) {							$psum += $v ['price'];							$html .= '<td class="taR">' . $v ['price'] . '</td>';							$falg = false;							break;						}					}				}				if ($falg)					$html .= '<td class="taR">-</td>';			}						if (! empty ( $psum ))				$psum = '<td class="colGreen taR">' . $psum . '</td>';			else				$psum = '<td class="colGreen taR">-</td>';			$receiptL ['差旅相关费用'] = $psum . $html;            /* ----------------------------------- */            $html = "";            $psum = 0;            foreach ( $aiList[$this->INTTRAIN] as $value ) {                $falg = true;                foreach ( $receiptCollectList as $v ) {                    if ($v ['itemCategory'] == '内部培训费用') {                        if ($v ['item'] == $value['name']) {                            $psum += $v ['price'];                            $html .= '<td class="taR">' . $v ['price'] . '</td>';                            $falg = false;                            break;                        }                    }                }                if ($falg)                    $html .= '<td class="taR">-</td>';            }            if (! empty ( $psum ))                $psum = '<td class="colGreen taR">' . $psum . '</td>';            else                $psum = '<td class="colGreen taR">-</td>';            $receiptL ['内部培训费用'] = $psum . $html;			/* ------------------------------------- */			$html = "";			$psum = 0;			foreach ( $aiList[$this->TRAIN] as $value ) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '培训班费用') {						if ($v ['item'] == $value['name']) {							$psum += $v ['price'];							$html .= '<td class="taR">' . $v ['price'] . '</td>';							$falg = false;							break;						}					}				}				if ($falg)					$html .= '<td class="taR">-</td>';			}						if (! empty ( $psum ))				$psum = '<td class="colGreen taR">' . $psum . '</td>';			else				$psum = '<td class="colGreen taR">-</td>';			$receiptL ['培训班费用'] = $psum . $html;						/* ------------------------------------- */			$html = "";			$psum = 0;			foreach ( $aiList[$this->OTHER] as $value ) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '其他') {						if ($v ['item'] == $value['name']) {							$psum += $v ['price'];							$html .= '<td class="taR">' . $v ['price'] . '</td>';							$falg = false;							break;						}					}				}				if ($falg)					$html .= '<td class="taR">-</td>';			}						if (! empty ( $psum ))				$psum = '<td class="colGreen taR">' . $psum . '</td>';			else				$psum = '<td class="colGreen taR">-</td>';			$receiptL ['其他'] = $psum . $html;						/* ------------------------------------- */			$html = "";			$psum = 0;			foreach ( $receiptCollectList as $v ) {				if ($v ['itemCategory'] == '报销金额调整') {										if (! empty ( $v ['price'] ))						$psum += $v ['price'];				}			}						if (! empty ( $psum ))				$psum = '<td class="taR colOrange">' . $psum . '</td>';			else				$psum = '<td class="taR colOrange">-</td>';			$receiptL ['报销金额调整'] = $psum . $html;		} else {            $receiptL [$this->AGENCY] ='<td class="colGreen taR">-</td>';            foreach ( $aiList[$this->AGENCY] as $va ) {                $receiptL [$this->AGENCY] .='<td class="taR">-</td>';            }            $receiptL [$this->TRAVEL] ='<td class="colGreen taR">-</td>';            foreach ( $aiList[$this->TRAVEL] as $va ) {                $receiptL [$this->TRAVEL] .='<td class="taR">-</td>';            }            $receiptL [$this->INTTRAIN] ='<td class="colGreen taR">-</td>';            foreach ( $aiList[$this->INTTRAIN] as $va ) {                $receiptL [$this->INTTRAIN] .='<td class="taR">-</td>';            }            $receiptL [$this->TRAIN] ='<td class="colGreen taR">-</td>';            foreach ( $aiList[$this->TRAIN] as $va ) {                $receiptL [$this->TRAIN] .='<td class="taR">-</td>';            }            $receiptL [$this->OTHER] ='<td class="colGreen taR">-</td>';            foreach ( $aiList[$this->OTHER] as $va ) {                $receiptL [$this->OTHER] .='<td class="taR">-</td>';            }            $receiptL ['报销金额调整'] = '<td class="taR colOrange">-</td>';		}		return $receiptL;	}	function eMail() {		Doo::loadModel ( 'staff' );		$staff = new staff ();		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		Doo::loadModel ( 'L_category' );		$Lcategory = new L_category ();		Doo::loadModel ( "verify" );		$verify = new verify ();				$staffList = $staff->find ( array (				'asArray' => true 		) );				foreach ( $staffList as $key => $value ) {						if ($value ['username'] != 'admin') {				// 提交人								$receiptList = $receipt->find ( array (						'where' => 'staff=' . $value ['sid'] . ' and status=1 and notice=0',						'asArray' => true 				) );				if (! empty ( $receiptList )) {										$html = '<br><div><style></style>    <table style="background-color:#fff; width:100%;" cellpadding="0" cellspacing="0"><tbody>      <tr><td><table style="background-color:#fff; width:640px;" cellpadding="0" cellspacing="0" align="center"><tbody>          <tr><td style="background-color:#8E0950;padding:30px 0 40px;" align="center">           <span style="vertical-align:bottom;font-size:20px;color:#fff;">CLD 邮件提醒</span>           </td></tr><tr><td><table style="background-color:#fff;border:1px solid #ddd;border-bottom:0px;width:100%;" cellpadding="0" cellspacing="0" align="left">             <tbody><tr>               <td style="padding: 0 40px;" align="left">               <p style="margin-top:40px;margin-bottom:20px;color:#383838;font-size:20px;line-height:32px;">Hi,' . $value ['username'] . '</p>               </td></tr><tr>               <td style="padding: 0 40px;" align="left"><p style="margin-top:0px;margin-bottom:40px;color:#383838;font-size:20px;line-height:32px;">美好的一天从今天开始,您需要关注以下事项:</p></td>              </tr>             </tbody> </table></td> </tr> <tr><td>            <table style="background-color:#f5f6f7;width:100%;padding:0 0 20px;border-left:1px solid #ddd;border-right:1px solid #ddd;" cellpadding="0" cellspacing="0" align="left">             <tbody> <tr><td>             <p style="margin-top:20px;margin-bottom:10px;margin-left:40px;color:#383838;font-size:18px;font-weight:bold;line-height:36px;">             	以下报销单完成了审批,等着收款吧:</p>             </td></tr><tr><td><table style="width:100%;padding-right:30px;" cellpadding="0" cellspacing="0" align="left"> <tbody>';										foreach ( $receiptList as $k => $v ) {						$category = $Lcategory->getOne ( array (								'where' => 'cid=' . $v ['cid'],								'asArray' => true 						) );						$html .= '                  <tr>                  <td style="border-left:7px solid transparent;" align="left" width="30px"><br></td>                   <td align="left">                    <p style="font-size:16px;line-height:22px;margin:0">' . $v ['receiptOrder'] . '</p></td>                   <td style="" align="left"><p style="font-size:16px;line-height:22px;margin:0">' . $category ['title'] . '</p></td>                   <td style="" align="left"><p style="font-size:16px;line-height:22px;margin:0">¥' . $v ['sum'] . '元</p></td>                   <td align="right"><span class="past" style="font-size:16px;line-height:22px;">' . $v ['date'] . '</span></td>                  </tr>';					}										$html .= ' </tbody></table></td></tr></tbody></table></td></tr>          <tr><td style="height:150px;border:1px solid #ddd;border-top:none;background-color:#fff;" align="center"><a href="http://cld.smartcost.com.cn/approval" style="display:block;height:50px;width:260px;background-color:#0390ff;font-weight:normal;font-size:18px;color:white;line-height:50px;text-align:center;text-decoration:none;border-radius:3px;">立即登录</a></td>          </tr></tbody></table></td> </tr></tbody></table> </div><br>';										if (filter_var ( $value ['email'], FILTER_VALIDATE_EMAIL )) {						$this->SMail ( $value ['email'], "CLD提醒您,您的报销单已同意支付", $html );						$this->SMail ( '1971614655@qq.com', "CLD提醒您,您的报销单已同意支付", $html );						$this->SMail ( 'cpthought@vip.qq.com', "CLD提醒您,您的报销单已同意支付", $html );						$receipt = new receipt ();						$receipt->notice = 1;						$receipt->update ( array (								'where' => 'staff=' . $value ['sid'] . ' and status=1 and notice=0' 						) );					}				}								// 审批人				$verifyList = $verify->find ( array (						'where' => " staff like '%[\"" . $value ['sid'] . "\",%'",						'asArray' => true 				) );				$html = '<br><div><style></style> <table style="background-color:#fff; width:100%;" cellpadding="0" cellspacing="0">     <tbody><tr><td><table style="background-color:#fff; width:640px;" cellpadding="0" cellspacing="0" align="center"><tbody><tr>           <td style="background-color:#8E0950;padding:30px 0 40px;" align="center">           <span style="vertical-align:bottom;font-size:20px;color:#fff;">CLD 邮件提醒</span></td>          </tr><tr><td><table style="background-color:#fff;border:1px solid #ddd;border-bottom:0px;width:100%;" cellpadding="0" cellspacing="0" align="left">             <tbody><tr><td style="padding: 0 40px;" align="left">               <p style="margin-top:40px;margin-bottom:20px;color:#383838;font-size:20px;line-height:32px;">Hi,' . $value ['username'] . '</p>               </td></tr><tr><td style="padding: 0 40px;" align="left"><p style="margin-top:0px;margin-bottom:40px;color:#383838;font-size:20px;line-height:32px;">美好的一天从今天开始,您需要关注以下事项:</p></td>              </tr></tbody></table></td> </tr> <tr><td><table style="background-color:#f5f6f7;width:100%;padding:0 0 20px;border-left:1px solid #ddd;border-right:1px solid #ddd;" cellpadding="0" cellspacing="0" align="left">             <tbody><tr><td><p style="margin-top:20px;margin-bottom:10px;margin-left:40px;color:#383838;font-size:18px;font-weight:bold;line-height:36px;">以下报销单需要您的审批:</p></td>              </tr><tr><td><table style="width:100%;padding-right:30px;" cellpadding="0" cellspacing="0" align="left"><tbody>';								foreach ( $verifyList as $k => $v ) {					$receiptList = $receipt->find ( array (							'where' => "verify=" . $v ['vid'] . " and status=2 and verifyStaff not like '%{\"" . $value ['sid'] . "\":%'",							'asArray' => true 					) );					foreach ( $receiptList as $r => $l ) {						$category = $Lcategory->getOne ( array (								'where' => 'cid=' . $l ['cid'],								'asArray' => true 						) );						$staffDetile = $staff->getOne ( array (								'where' => 'sid=' . $l ['staff'],								'asArray' => true 						) );						$html .= '	                  <tr>	                  <td style="border-left:7px solid transparent;" align="left" width="30px"><br></td>	                   <td align="left">	                    <p style="font-size:16px;line-height:22px;margin:0">' . $l ['receiptOrder'] . '</p></td>	                   <td style="" align="left"><p style="font-size:16px;line-height:22px;margin:0">' . $category ['title'] . '-' . $staffDetile ['username'] . '</p></td>	                   <td style="" align="left"><p style="font-size:16px;line-height:22px;margin:0">¥' . $l ['sum'] . '元</p></td>	                   <td align="right"><span class="past" style="font-size:16px;line-height:22px;">' . $l ['date'] . '</span></td>	                  </tr>';					}				}				$html .= '                  </tbody></table></td></tr> </tbody></table></td></tr><tr>           <td style="height:150px;border:1px solid #ddd;border-top:none;background-color:#fff;" align="center"><a href="http://cld.smartcost.com.cn/approval" style="display:block;height:50px;width:260px;background-color:#0390ff;font-weight:normal;font-size:18px;color:white;line-height:50px;text-align:center;text-decoration:none;border-radius:3px;">立即登录</a></td>          </tr></tbody></table></td></tr></tbody></table></div><br>';								if ((filter_var ( $value ['email'], FILTER_VALIDATE_EMAIL )) && (! empty ( $verifyList )) && (! empty ( $receiptList ))) {					$this->SMail ( $value ['email'], "CLD提醒您,有需要你审批的报销单", $html );					// $receipt=new receipt();					// $receipt->notice=1;					// $receipt->update(array('where'=>'staff='.$value['sid'].' and status=1 and notice=0'));				}			}		}	}	function setWXMsg($rid, $type) {		Doo::loadModel ( "receipt" );		$receipt = new receipt ();		$receiptDetail = $receipt->getOne ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		if (! empty ( $receiptDetail )) {			Doo::loadModel ( 'staff' );			$staff = new staff ();			$staffmsg = $staff->getOne ( array (					'where' => "sid='" . $receiptDetail ['staff'] . "'",					'asArray' => TRUE 			) );			if (! empty ( $staffmsg ['wxid'] )) {				require_once (SITE_PATH . '/protected/class/client.php');				$client = new client ( 'http://m.cld.smartcost.com.cn/' );				$user = $staffmsg ['wxid'];				$receiptName = '';				$msg = '';				switch ($receiptDetail ['Rtype']) {					case 0 :						$receiptName = '报销';						break;					case 1 :						$receiptName = '借款';						break;					case 2 :						$receiptName = '对公汇款';						break;				}				switch ($type) {					case 1 :						$msg = '太好了,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已同意支付。';						break;					case 2 :						$msg = '注意,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已被撤回,请及时处理。';						break;					case 3 :						$msg = '很遗憾,您的' . $receiptName . ' ' . $receiptDetail ['receiptOrder'] . ',¥' . $receiptDetail ['sum'] . ',已被终止。';						break;				}								// $result = $client->SendMsg ( $user, $msg, 'text' );			}		}	}		// Email发送函数	function SMail($toemail, $subject, $contents) {		Doo::loadClass ( 'class.phpmailer' );		$mail = new PHPMailer ();		$mail->From = "postmaster@support.zhzdwk.com"; // 发送邮箱全名		$mail->FromName = "=?UTF-8?B?" . base64_encode ( "CLD" ) . "?="; // 发送人昵称		$mail->Username = "postmaster@websupport.sendcloud.org"; // 用户名		$mail->Password = "cDO1GjtY1seH"; // 密码		$mail->CharSet = "UTF8";		$mail->SMTPAuth = true;		$mail->Host = "smtpcloud.sohu.com"; // 邮件主机的smtp地址		$mail->Mailer = "smtp";		$mail->Port = 25;		$mail->Subject = "=?UTF-8?B?" . base64_encode ( $subject ) . "?=";		$mail->MsgHTML ( $contents );		$mail->AddAddress ( $toemail );		$mail->CharSet = "UTF-8";		return $mail->Send ();	}	function h5Upload() {		$POST_MAX_SIZE = ini_get ( 'post_max_size' );		$unit = strtoupper ( substr ( $POST_MAX_SIZE, - 1 ) );		$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));				if (( int ) $_SERVER ['CONTENT_LENGTH'] > $multiplier * ( int ) $POST_MAX_SIZE && $POST_MAX_SIZE) {			header ( "HTTP/1.1 500 Internal Server Error" );			echo "POST exceeded maximum allowed size.";			exit ( 0 );		}				// Settings		$save_path = DOO::conf ()->SITE_PATH . "upload/swfupload/"; // The path were we will save the file (getcwd() may not be reliable and should be tested in your environment)		$upload_name = "Filedata";		$max_file_size_in_bytes = 2147483647; // 2GB in bytes		$extension_whitelist = array (				"doc",				"txt",				"jpg",				"gif",				"png" 		); // Allowed file extensions		$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)		                                                         		// Other variables		$MAX_FILENAME_LENGTH = 260;		$file_name = "";		$file_extension = "";		$uploadErrors = array (				0 => "文件上传成功",				1 => "上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置",				2 => "上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置",				3 => "上传的文件仅为部分文件",				4 => "没有文件上传",				6 => "缺少临时文件夹" 		);				$nk = time ();		$file_name = $nk . '.' . $this->_GetFileEXT ( $_FILES [$upload_name] ['name'] ); // preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));				if (! @move_uploaded_file ( $_FILES [$upload_name] ["tmp_name"], $save_path . $file_name )) {			echo "文件无法保存.";			exit ( 0 );		}				// Return output to the browser (only supported by SWFUpload for Flash Player 9)				echo json_encode ( array (				'filename' => $file_name,				'id' => $nk 		) );		exit ( 0 );	}	function swfupload() {		$POST_MAX_SIZE = ini_get ( 'post_max_size' );		$unit = strtoupper ( substr ( $POST_MAX_SIZE, - 1 ) );		$multiplier = ($unit == 'M' ? 1048576 : ($unit == 'K' ? 1024 : ($unit == 'G' ? 1073741824 : 1)));				if (( int ) $_SERVER ['CONTENT_LENGTH'] > $multiplier * ( int ) $POST_MAX_SIZE && $POST_MAX_SIZE) {			header ( "HTTP/1.1 500 Internal Server Error" );			echo "POST exceeded maximum allowed size.";			exit ( 0 );		}				// Settings		$save_path = DOO::conf ()->SITE_PATH . "upload/swfupload/"; // The path were we will save the file (getcwd() may not be reliable and should be tested in your environment)		$upload_name = "Filedata";		$max_file_size_in_bytes = 2147483647; // 2GB in bytes		$extension_whitelist = array (				"doc",				"txt",				"jpg",				"gif",				"png" 		); // Allowed file extensions		$valid_chars_regex = '.A-Z0-9_ !@#$%^&()+={}\[\]\',~`-'; // Characters allowed in the file name (in a Regular Expression format)		                                                         		// Other variables		$MAX_FILENAME_LENGTH = 260;		$file_name = "";		$file_extension = "";		$uploadErrors = array (				0 => "文件上传成功",				1 => "上传的文件超过了 php.ini 文件中的 upload_max_filesize directive 里的设置",				2 => "上传的文件超过了 HTML form 文件中的 MAX_FILE_SIZE directive 里的设置",				3 => "上传的文件仅为部分文件",				4 => "没有文件上传",				6 => "缺少临时文件夹" 		);				$nk = time ();		$file_name = $nk . '.' . $this->_GetFileEXT ( $_FILES [$upload_name] ['name'] ); // preg_replace('/[^'.$valid_chars_regex.']|\.+$/i', "", basename($_FILES[$upload_name]['name']));				if (! @move_uploaded_file ( $_FILES [$upload_name] ["tmp_name"], $save_path . $file_name )) {			echo "文件无法保存.";			exit ( 0 );		}				// Return output to the browser (only supported by SWFUpload for Flash Player 9)				echo json_encode ( array (				'filename' => $file_name,				'id' => $nk 		) );		exit ( 0 );	}	function _GetFileEXT($filename) {		$pics = explode ( '.', $filename );				$num = count ( $pics );				return $pics [$num - 1];	}		/**	 * 获取get或者POST值	 * @param string $name 属性名称	 * @return fixed 值	 */	function get_args($name) {		if (isset ( $_GET [$name] )) {			if (is_array ( $_GET [$name] ))				return $_GET [$name];			else				return addslashes ( $_GET [$name] );		} elseif (isset ( $_POST [$name] )) {			if (is_array ( $_POST [$name] ))				return $_POST [$name];			else				return addslashes ( $_POST [$name] );		} else			return false;	}	function num_to_rmb($num) {		$c1 = "零壹贰叁肆伍陆柒捌玖";		$c2 = "分角元拾佰仟万拾佰仟亿";		// 精确到分后面就不要了,所以只留两个小数位		$num = round ( $num, 2 );		// 将数字转化为整数		$num = $num * 100;		if (strlen ( $num ) > 10) {			return "金额太大,请检查";		}		$i = 0;		$c = "";		while ( 1 ) {			if ($i == 0) {				// 获取最后一位数字				$n = substr ( $num, strlen ( $num ) - 1, 1 );			} else {				$n = $num % 10;			}			// 每次将最后一位数字转化为中文			$p1 = substr ( $c1, 3 * $n, 3 );			$p2 = substr ( $c2, 3 * $i, 3 );						if ($n != '0' || ($n == '0' && ($p2 == '亿' || $p2 == '万' || $p2 == '元'))) {				$c = $p1 . $p2 . $c;			} else {				$c = $p1 . $c;			}			$i = $i + 1;			// 去掉数字最后一位了						$num = $num / 10;			// echo $num.'</br>';			$num = ( int ) $num;			// $num =floor($num);			// $num = round ( $num, 0, PHP_ROUND_HALF_DOWN );			// echo $num.'</br>';			// 结束循环			if ($num == 0) {				break;			}		}		// echo $c.'</br>';		$j = 0;		$slen = strlen ( $c );		while ( $j < $slen ) {			// utf8一个汉字相当3个字符			$m = substr ( $c, $j, 6 );			// 处理数字中很多0的情况,每次循环去掉一个汉字“零”			if ($m == '零元' || $m == '零万' || $m == '零亿' || $m == '零零') {				$left = substr ( $c, 0, $j );				$right = substr ( $c, $j + 3 );				$c = $left . $right;				$j = $j - 3;				$slen = $slen - 3;			}			$j = $j + 3;		}		// 这个是为了去掉类似23.0中最后一个“零”字		if (substr ( $c, strlen ( $c ) - 3, 3 ) == '零') {			$c = substr ( $c, 0, strlen ( $c ) - 3 );		}		// 将处理的汉字加上“整”		if (empty ( $c )) {			return "零元整";		} else {			return $c . "整";		}	}		/**	 * 获得分页数据	 * @param unknown_type $table	 * @param unknown_type $condition	 * @param unknown_type $on_page	 * @param unknown_type $page_size	 */	function get_page($table = "", $condition = "", $on_page = 1, $page_size = 20, $action = "", $get = "", $other = "page") {		$page_c = "";		$page ['previous'] = $this->get_previous ( $on_page );		$page ['on_page'] = $on_page;		$total_count = $this->get_table_count ( $table, $condition );		$total = intval ( $total_count / $page_size );				$page ['total_page'] = ($total_count % $page_size) == 0 ? $total : $total + 1;		$page ['total_data'] = $total_count;		$page ['next'] = $on_page == $page ['total_page'] ? $page ['total_page'] : $on_page + 1;				$i = 1;		$page_max = 1;		$page_width = 3;				if ($on_page >= $page_width) {			$page_max = intval ( $on_page / $page_width ) + 1;			$i = intval ( $on_page / $page_width ) * $page_width - 1;		}				for(; $i <= $page ['total_page']; $i ++) {			if ($i == $on_page)				$page_c .= '<li class="active"><a href="javascript:void(0)">' . $i . '</a></li>';			else				$page_c .= '<li><a href="/' . $action . '/' . $i . $get . '">' . $i . '</a></li>';						if ($i == ($page_width * $page_max))				break;		}				$page ['page'] = $page_c;		$page ['lower'] = (-- $on_page) * $page_size;		return $page;	}		/**	 * 获取总页数	 * @param unknown_type $table	 * @param unknown_type $condition	 */	public function get_table_count($table = "", $condition = "") {		// $sql = "select count(*) as count from " . $table . " where 1 " . $condition;		$sql = "select count(*) as count from " . $table . " where 1 " . $condition;				// echo $sql;die;		$query = Doo::db ()->query ( $sql );		$result = $query->fetch ();		return $result ['count'];	}	/**	 * 获取上一页	 * @param unknown_type $on_page	 */	function get_previous($on_page = 1) {		return $on_page != 0 ? $on_page - 1 : $on_page;	}		function _getReceiptTrainPayment($invoiceTrainId,$trainLoanRid,$rid){		// 收入合计		Doo::loadModel ( 'invoiceTraining' );		$invoiceTraining = new invoiceTraining ();		Doo::loadModel ( 'receipt' );		$receipt = new receipt ();		$invoiceTrainingDetail = array (				'invoiceArriveAmount' => '0.00',				'RIAmount' => '0.00',				'invoiceTotalAmount' => '0.00',				'invoiceCompanyAmount' => '0.00',				'invoiceArriveAmountM'=>'0.00',				'invoiceCompanyAmountM'=>'0.00'		);		if ($invoiceTrainId != 0) {			$invoiceTrainingDetail = $invoiceTraining->getInvoiceTrainingByItid ( $invoiceTrainId );		}		$invoiceArriveAmount = $RIAmount = 0;		if (! empty ( $invoiceTrainingDetail )) {			$invoiceArriveAmount = $invoiceTrainingDetail ['invoiceArriveAmount'];			$RIAmount = $invoiceTrainingDetail ['RIAmount'];		}					// 备用金		$sum = 0;		if (! empty ( $trainLoanRid )) {						$receiptLoanList = $receipt->getReceiptInRid ( $trainLoanRid );			foreach ($receiptLoanList as $key=>$value){				$sum+=$value['sum'];			}						// 			$receiptLoanDetailBak = $receipt->getReceiptByRid ( $trainLoanRid );// 			$sum = $receiptLoanDetailBak ['sum'];		}					// 支出项金额详情		// 项目金额合计		Doo::loadModel ( 'RItem' );		$RItem = new RItem ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();		// 讲师获得		Doo::loadModel ( 'RILecturer' );		$RILecturer = new RILecturer ();		$RItemList = $RItem->getRItemByRid ($rid );		$RILecturerList = $RILecturer->getRILecturerByRid ( $rid );		// 支出项金额详情		$aiData = $accountItem->getTrainingDetail ( $RItemList, $RILecturerList, $invoiceArriveAmount );		$categoryActualExpenditure = $aiData ['total'] - $aiData ['categoryActualExpenditure'];					$payment = $sum + $RIAmount - $categoryActualExpenditure;		return $payment;	}	}?>
 |