| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695126961269712698126991270012701127021270312704127051270612707127081270912710127111271212713127141271512716127171271812719127201272112722127231272412725127261272712728127291273012731127321273312734127351273612737127381273912740127411274212743127441274512746127471274812749127501275112752127531275412755127561275712758127591276012761127621276312764127651276612767127681276912770127711277212773127741277512776127771277812779127801278112782127831278412785127861278712788127891279012791127921279312794127951279612797127981279912800128011280212803128041280512806128071280812809128101281112812128131281412815128161281712818128191282012821128221282312824128251282612827128281282912830128311283212833128341283512836128371283812839128401284112842128431284412845128461284712848128491285012851128521285312854128551285612857128581285912860128611286212863128641286512866128671286812869128701287112872128731287412875128761287712878128791288012881128821288312884128851288612887128881288912890128911289212893128941289512896128971289812899129001290112902129031290412905129061290712908129091291012911129121291312914129151291612917129181291912920129211292212923129241292512926129271292812929129301293112932129331293412935129361293712938129391294012941129421294312944129451294612947129481294912950129511295212953129541295512956129571295812959129601296112962129631296412965129661296712968129691297012971129721297312974129751297612977129781297912980129811298212983129841298512986129871298812989129901299112992129931299412995129961299712998129991300013001130021300313004130051300613007130081300913010130111301213013130141301513016130171301813019130201302113022130231302413025130261302713028130291303013031130321303313034130351303613037130381303913040130411304213043130441304513046130471304813049130501305113052130531305413055130561305713058130591306013061130621306313064130651306613067130681306913070130711307213073130741307513076130771307813079130801308113082130831308413085130861308713088130891309013091130921309313094130951309613097130981309913100131011310213103131041310513106131071310813109131101311113112131131311413115131161311713118131191312013121131221312313124131251312613127131281312913130131311313213133131341313513136131371313813139131401314113142131431314413145131461314713148131491315013151131521315313154131551315613157131581315913160131611316213163131641316513166131671316813169131701317113172131731317413175131761317713178131791318013181131821318313184131851318613187131881318913190131911319213193131941319513196131971319813199132001320113202132031320413205132061320713208132091321013211132121321313214132151321613217132181321913220132211322213223132241322513226132271322813229132301323113232132331323413235132361323713238132391324013241132421324313244132451324613247132481324913250132511325213253132541325513256132571325813259132601326113262132631326413265132661326713268132691327013271132721327313274132751327613277132781327913280132811328213283132841328513286132871328813289132901329113292132931329413295132961329713298132991330013301133021330313304133051330613307133081330913310133111331213313133141331513316133171331813319133201332113322133231332413325133261332713328133291333013331133321333313334133351333613337133381333913340133411334213343133441334513346133471334813349133501335113352133531335413355133561335713358133591336013361133621336313364133651336613367133681336913370133711337213373133741337513376133771337813379133801338113382133831338413385133861338713388133891339013391133921339313394133951339613397133981339913400134011340213403134041340513406134071340813409134101341113412134131341413415134161341713418134191342013421134221342313424134251342613427134281342913430134311343213433134341343513436134371343813439134401344113442134431344413445134461344713448134491345013451134521345313454134551345613457134581345913460134611346213463134641346513466134671346813469134701347113472134731347413475134761347713478134791348013481134821348313484134851348613487134881348913490134911349213493134941349513496134971349813499135001350113502135031350413505135061350713508135091351013511135121351313514135151351613517135181351913520135211352213523135241352513526135271352813529135301353113532135331353413535135361353713538135391354013541135421354313544135451354613547135481354913550135511355213553135541355513556135571355813559135601356113562135631356413565135661356713568135691357013571135721357313574135751357613577135781357913580135811358213583135841358513586135871358813589135901359113592135931359413595135961359713598135991360013601136021360313604136051360613607136081360913610136111361213613136141361513616136171361813619136201362113622136231362413625136261362713628136291363013631136321363313634136351363613637136381363913640136411364213643136441364513646136471364813649136501365113652136531365413655136561365713658136591366013661136621366313664136651366613667136681366913670136711367213673136741367513676136771367813679136801368113682136831368413685136861368713688136891369013691136921369313694136951369613697136981369913700137011370213703137041370513706137071370813709137101371113712137131371413715137161371713718137191372013721137221372313724137251372613727137281372913730137311373213733137341373513736137371373813739137401374113742137431374413745137461374713748137491375013751137521375313754137551375613757137581375913760137611376213763137641376513766137671376813769137701377113772137731377413775137761377713778137791378013781137821378313784137851378613787137881378913790137911379213793137941379513796137971379813799138001380113802138031380413805138061380713808138091381013811138121381313814138151381613817138181381913820138211382213823138241382513826138271382813829138301383113832138331383413835138361383713838138391384013841138421384313844138451384613847138481384913850138511385213853138541385513856138571385813859138601386113862138631386413865138661386713868138691387013871138721387313874138751387613877138781387913880138811388213883138841388513886138871388813889138901389113892138931389413895138961389713898138991390013901139021390313904139051390613907139081390913910139111391213913139141391513916139171391813919139201392113922139231392413925139261392713928139291393013931139321393313934139351393613937139381393913940139411394213943139441394513946139471394813949139501395113952139531395413955139561395713958139591396013961139621396313964139651396613967139681396913970139711397213973139741397513976139771397813979139801398113982139831398413985139861398713988139891399013991139921399313994139951399613997139981399914000140011400214003140041400514006140071400814009140101401114012140131401414015140161401714018140191402014021140221402314024140251402614027140281402914030140311403214033140341403514036140371403814039140401404114042140431404414045140461404714048140491405014051140521405314054140551405614057140581405914060140611406214063140641406514066140671406814069140701407114072140731407414075140761407714078140791408014081140821408314084140851408614087140881408914090140911409214093140941409514096140971409814099141001410114102141031410414105141061410714108141091411014111141121411314114141151411614117141181411914120141211412214123141241412514126141271412814129141301413114132141331413414135141361413714138141391414014141141421414314144141451414614147141481414914150141511415214153141541415514156141571415814159141601416114162141631416414165141661416714168141691417014171141721417314174141751417614177141781417914180141811418214183141841418514186141871418814189141901419114192141931419414195141961419714198141991420014201142021420314204142051420614207142081420914210142111421214213142141421514216142171421814219142201422114222142231422414225142261422714228142291423014231142321423314234142351423614237142381423914240142411424214243142441424514246142471424814249142501425114252142531425414255142561425714258142591426014261142621426314264142651426614267142681426914270142711427214273142741427514276142771427814279142801428114282142831428414285142861428714288142891429014291142921429314294142951429614297142981429914300143011430214303143041430514306143071430814309143101431114312143131431414315143161431714318143191432014321143221432314324143251432614327143281432914330143311433214333143341433514336143371433814339143401434114342143431434414345143461434714348143491435014351143521435314354143551435614357143581435914360143611436214363143641436514366143671436814369143701437114372143731437414375143761437714378143791438014381143821438314384143851438614387143881438914390143911439214393143941439514396143971439814399144001440114402144031440414405144061440714408144091441014411144121441314414144151441614417144181441914420144211442214423144241442514426144271442814429144301443114432144331443414435144361443714438144391444014441144421444314444144451444614447144481444914450144511445214453144541445514456144571445814459144601446114462144631446414465144661446714468144691447014471144721447314474144751447614477144781447914480144811448214483144841448514486144871448814489144901449114492144931449414495144961449714498144991450014501145021450314504145051450614507145081450914510145111451214513145141451514516145171451814519145201452114522145231452414525145261452714528145291453014531145321453314534145351453614537145381453914540145411454214543145441454514546145471454814549145501455114552145531455414555145561455714558145591456014561145621456314564145651456614567145681456914570145711457214573145741457514576145771457814579145801458114582145831458414585145861458714588145891459014591145921459314594145951459614597145981459914600146011460214603146041460514606146071460814609146101461114612146131461414615146161461714618146191462014621146221462314624146251462614627146281462914630146311463214633146341463514636146371463814639146401464114642146431464414645146461464714648146491465014651146521465314654146551465614657146581465914660146611466214663146641466514666146671466814669146701467114672146731467414675146761467714678146791468014681146821468314684146851468614687146881468914690146911469214693146941469514696146971469814699147001470114702147031470414705147061470714708147091471014711147121471314714147151471614717147181471914720147211472214723147241472514726147271472814729147301473114732147331473414735147361473714738147391474014741147421474314744147451474614747147481474914750147511475214753147541475514756147571475814759147601476114762147631476414765147661476714768147691477014771147721477314774147751477614777147781477914780147811478214783147841478514786147871478814789147901479114792147931479414795147961479714798147991480014801148021480314804148051480614807148081480914810148111481214813148141481514816148171481814819148201482114822148231482414825148261482714828148291483014831148321483314834148351483614837148381483914840148411484214843148441484514846148471484814849148501485114852148531485414855148561485714858148591486014861148621486314864148651486614867148681486914870148711487214873148741487514876148771487814879148801488114882148831488414885148861488714888148891489014891148921489314894148951489614897148981489914900149011490214903149041490514906149071490814909149101491114912149131491414915149161491714918149191492014921149221492314924149251492614927149281492914930149311493214933149341493514936149371493814939149401494114942149431494414945149461494714948149491495014951149521495314954149551495614957149581495914960149611496214963149641496514966149671496814969149701497114972149731497414975149761497714978149791498014981149821498314984149851498614987149881498914990149911499214993149941499514996149971499814999150001500115002150031500415005150061500715008150091501015011150121501315014150151501615017150181501915020150211502215023150241502515026150271502815029150301503115032150331503415035150361503715038150391504015041150421504315044150451504615047150481504915050150511505215053150541505515056150571505815059150601506115062150631506415065150661506715068150691507015071150721507315074150751507615077150781507915080150811508215083150841508515086150871508815089150901509115092150931509415095150961509715098150991510015101151021510315104151051510615107151081510915110151111511215113151141511515116151171511815119151201512115122151231512415125151261512715128151291513015131151321513315134151351513615137151381513915140151411514215143151441514515146151471514815149151501515115152151531515415155151561515715158151591516015161151621516315164151651516615167151681516915170151711517215173151741517515176151771517815179151801518115182151831518415185151861518715188151891519015191151921519315194151951519615197151981519915200152011520215203152041520515206152071520815209152101521115212152131521415215152161521715218152191522015221152221522315224152251522615227152281522915230152311523215233152341523515236152371523815239152401524115242152431524415245152461524715248152491525015251152521525315254152551525615257152581525915260152611526215263152641526515266152671526815269152701527115272152731527415275152761527715278152791528015281152821528315284152851528615287152881528915290152911529215293152941529515296152971529815299153001530115302153031530415305153061530715308153091531015311153121531315314153151531615317153181531915320153211532215323153241532515326153271532815329153301533115332153331533415335153361533715338153391534015341153421534315344153451534615347153481534915350153511535215353153541535515356153571535815359153601536115362153631536415365153661536715368153691537015371153721537315374153751537615377153781537915380153811538215383153841538515386153871538815389153901539115392153931539415395153961539715398153991540015401154021540315404154051540615407154081540915410154111541215413154141541515416154171541815419154201542115422154231542415425154261542715428154291543015431154321543315434154351543615437154381543915440154411544215443154441544515446154471544815449154501545115452154531545415455154561545715458154591546015461154621546315464154651546615467154681546915470154711547215473154741547515476154771547815479154801548115482154831548415485154861548715488154891549015491154921549315494154951549615497154981549915500155011550215503155041550515506155071550815509155101551115512155131551415515155161551715518155191552015521155221552315524155251552615527155281552915530155311553215533155341553515536155371553815539155401554115542155431554415545155461554715548155491555015551155521555315554155551555615557155581555915560155611556215563155641556515566155671556815569155701557115572155731557415575155761557715578155791558015581155821558315584155851558615587155881558915590155911559215593155941559515596155971559815599156001560115602156031560415605156061560715608156091561015611156121561315614156151561615617156181561915620156211562215623156241562515626156271562815629156301563115632156331563415635156361563715638156391564015641156421564315644156451564615647156481564915650156511565215653156541565515656156571565815659156601566115662156631566415665156661566715668156691567015671156721567315674156751567615677156781567915680156811568215683156841568515686156871568815689156901569115692156931569415695156961569715698156991570015701157021570315704157051570615707157081570915710157111571215713157141571515716157171571815719157201572115722157231572415725157261572715728157291573015731157321573315734157351573615737157381573915740157411574215743157441574515746157471574815749157501575115752157531575415755157561575715758157591576015761157621576315764157651576615767157681576915770157711577215773157741577515776157771577815779157801578115782157831578415785157861578715788157891579015791157921579315794157951579615797157981579915800158011580215803158041580515806158071580815809158101581115812158131581415815158161581715818158191582015821158221582315824158251582615827158281582915830158311583215833158341583515836158371583815839158401584115842158431584415845158461584715848158491585015851158521585315854158551585615857158581585915860158611586215863158641586515866158671586815869158701587115872158731587415875158761587715878158791588015881158821588315884158851588615887158881588915890158911589215893158941589515896158971589815899159001590115902159031590415905159061590715908159091591015911159121591315914159151591615917159181591915920159211592215923159241592515926159271592815929159301593115932159331593415935159361593715938159391594015941159421594315944159451594615947159481594915950159511595215953159541595515956159571595815959159601596115962159631596415965159661596715968159691597015971159721597315974159751597615977159781597915980159811598215983159841598515986159871598815989159901599115992159931599415995159961599715998159991600016001160021600316004160051600616007160081600916010160111601216013160141601516016160171601816019160201602116022160231602416025160261602716028160291603016031160321603316034160351603616037160381603916040160411604216043160441604516046160471604816049160501605116052160531605416055160561605716058160591606016061160621606316064160651606616067160681606916070160711607216073160741607516076160771607816079160801608116082160831608416085160861608716088160891609016091160921609316094160951609616097160981609916100161011610216103161041610516106161071610816109161101611116112161131611416115161161611716118161191612016121161221612316124161251612616127161281612916130161311613216133161341613516136161371613816139161401614116142161431614416145161461614716148161491615016151161521615316154161551615616157161581615916160161611616216163161641616516166161671616816169161701617116172161731617416175161761617716178161791618016181161821618316184161851618616187161881618916190161911619216193161941619516196161971619816199162001620116202162031620416205162061620716208162091621016211162121621316214162151621616217162181621916220162211622216223162241622516226162271622816229162301623116232162331623416235162361623716238162391624016241162421624316244162451624616247162481624916250162511625216253162541625516256162571625816259162601626116262162631626416265162661626716268162691627016271162721627316274162751627616277162781627916280162811628216283162841628516286162871628816289162901629116292162931629416295162961629716298162991630016301163021630316304163051630616307163081630916310163111631216313163141631516316163171631816319163201632116322163231632416325163261632716328163291633016331163321633316334163351633616337163381633916340163411634216343163441634516346163471634816349163501635116352163531635416355163561635716358163591636016361163621636316364163651636616367163681636916370163711637216373163741637516376163771637816379163801638116382163831638416385163861638716388163891639016391163921639316394163951639616397163981639916400164011640216403164041640516406164071640816409164101641116412164131641416415164161641716418164191642016421164221642316424164251642616427164281642916430164311643216433164341643516436164371643816439164401644116442164431644416445164461644716448164491645016451164521645316454164551645616457164581645916460164611646216463164641646516466164671646816469164701647116472164731647416475164761647716478164791648016481164821648316484164851648616487164881648916490164911649216493164941649516496164971649816499165001650116502165031650416505165061650716508165091651016511165121651316514165151651616517165181651916520165211652216523165241652516526165271652816529165301653116532165331653416535165361653716538165391654016541165421654316544165451654616547165481654916550165511655216553165541655516556165571655816559165601656116562165631656416565165661656716568165691657016571165721657316574165751657616577165781657916580165811658216583165841658516586165871658816589165901659116592165931659416595165961659716598165991660016601166021660316604166051660616607166081660916610166111661216613166141661516616166171661816619166201662116622166231662416625166261662716628166291663016631166321663316634166351663616637166381663916640166411664216643166441664516646166471664816649166501665116652166531665416655166561665716658166591666016661166621666316664166651666616667166681666916670166711667216673166741667516676166771667816679166801668116682166831668416685166861668716688166891669016691166921669316694166951669616697166981669916700167011670216703167041670516706167071670816709167101671116712167131671416715167161671716718167191672016721167221672316724167251672616727167281672916730167311673216733167341673516736167371673816739167401674116742167431674416745167461674716748167491675016751167521675316754167551675616757167581675916760167611676216763167641676516766167671676816769167701677116772167731677416775167761677716778167791678016781167821678316784167851678616787167881678916790167911679216793167941679516796167971679816799168001680116802168031680416805168061680716808168091681016811168121681316814168151681616817168181681916820168211682216823168241682516826168271682816829168301683116832168331683416835168361683716838168391684016841168421684316844168451684616847168481684916850168511685216853168541685516856168571685816859168601686116862168631686416865168661686716868168691687016871168721687316874168751687616877168781687916880168811688216883168841688516886168871688816889168901689116892168931689416895168961689716898168991690016901169021690316904169051690616907169081690916910169111691216913169141691516916169171691816919169201692116922169231692416925169261692716928169291693016931169321693316934169351693616937169381693916940169411694216943169441694516946169471694816949169501695116952169531695416955169561695716958169591696016961169621696316964169651696616967169681696916970169711697216973169741697516976169771697816979169801698116982169831698416985169861698716988169891699016991169921699316994169951699616997169981699917000170011700217003170041700517006170071700817009170101701117012170131701417015170161701717018170191702017021170221702317024170251702617027170281702917030170311703217033170341703517036170371703817039170401704117042170431704417045170461704717048170491705017051170521705317054170551705617057170581705917060170611706217063170641706517066170671706817069170701707117072170731707417075170761707717078170791708017081170821708317084170851708617087170881708917090170911709217093170941709517096170971709817099171001710117102171031710417105171061710717108171091711017111171121711317114171151711617117171181711917120171211712217123171241712517126171271712817129171301713117132171331713417135171361713717138171391714017141171421714317144171451714617147171481714917150171511715217153171541715517156171571715817159171601716117162171631716417165171661716717168171691717017171171721717317174171751717617177171781717917180171811718217183171841718517186171871718817189171901719117192171931719417195171961719717198171991720017201172021720317204172051720617207172081720917210172111721217213172141721517216172171721817219172201722117222172231722417225172261722717228172291723017231172321723317234172351723617237172381723917240172411724217243172441724517246172471724817249172501725117252172531725417255172561725717258172591726017261172621726317264172651726617267172681726917270172711727217273172741727517276172771727817279172801728117282172831728417285172861728717288172891729017291172921729317294172951729617297172981729917300173011730217303173041730517306173071730817309173101731117312173131731417315173161731717318173191732017321173221732317324173251732617327173281732917330173311733217333173341733517336173371733817339173401734117342173431734417345173461734717348173491735017351173521735317354173551735617357173581735917360173611736217363173641736517366173671736817369173701737117372173731737417375173761737717378173791738017381173821738317384173851738617387173881738917390173911739217393173941739517396173971739817399174001740117402174031740417405174061740717408174091741017411174121741317414174151741617417174181741917420174211742217423174241742517426174271742817429174301743117432174331743417435 | <?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;				$receiptList[0]['itinerary']=str_replace('\n','<br/>',$receiptList[0]['itinerary']);			$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-bank' );			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--no man' );					// 添加一条收入				$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'];				//$waste ['bank'] ['ICBCDeposit']=sprintf("%.2f", round($waste ['bank'] ['ICBCDeposit'], 2));				// 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 );				$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 );				foreach ($incomeList as $key=>$value){			if(($value['accountType']==6||$value['accountType']==9||$value['accountType']==10)&&$value['synPaymentDate']==0){				$wasteBook = new wasteBook ();				$wasteBook->wid = $value['wid'];				$wasteBook->synPaymentDate = 1;				$wasteBook->inputDate = $value['data']['receivedDate'];				$wasteBook->update();			}		}						$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 );				foreach ($incomeList as $key=>$value){			if(($value['accountType']==5||$value['accountType']==9||$value['accountType']==10)&&$value['synPaymentDate']==0){				$wasteBook = new wasteBook ();				$wasteBook->wid = $value['wid'];				$wasteBook->synPaymentDate = 1;				$wasteBook->inputDate = $value['data']['expenditureDate'];				$wasteBook->update();			}		}				$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;	}	}?>
 |