| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570 | <?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 = "其他";	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;	}	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 (						'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 );								$this->verifyId = $list;				$this->staff = $staff->getUserByIdList ( $_COOKIE ["staff"] );								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() {		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 ();				Doo::loadModel ( "receiptLog" );		$receiptLog = new receiptLog ();				$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] ['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);				$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 ( "/admin/saeaBorad", $data );	}	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->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 );		}				$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' ) : "";				// print_r($agency);die;				if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation )) {						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 "社保"',					'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 (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, '.', '' ) 			);						// 报销单			$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 );			$receipt->explanation = $explanation;			$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() {		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;		// echo $rid;		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 ();				$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";				$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->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 ['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;				$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;		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;				if (! empty ( $explanation )) {						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();						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 "社保"',					'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'];			$receipt->explanation = $explanation;			$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 ();			}			// return "/referReceipt/".$rid;		}		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->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 );		}				$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' ) : "";				// die;				if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation )) {						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;			$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;			$rid = $receipt->insert ();			return "/saeaBorad";		}else 			die ( 'illegal request' );	}	function saeaLoanEdi() {		$rid = isset ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				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 (				'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 );				$data ['receiptInfo'] = $receiptInfo;		$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/saeaLoanEdi", $data );	}	function saeaLoanEdiDo() {		$rid = $this->get_args ( 'rid' ) && is_numeric ( $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' ) : "";				// die;				if (! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid )) {						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;						$receipt->explanation = $explanation;			$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;				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 ();				$receiptDe = $receipt->getOne ( array (				'where' => 'rid=' . $rid,				'desc' => 'rid',				'asArray' => true 		) );				$receiptList = $loanReceipt->find ( array (				'where' => 'rid=' . $receiptDe ['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;				Doo::loadModel ( 'L_category' );		$lCategory = new L_category ();		Doo::loadModel ( 'accountItem' );		$accountItem = new accountItem ();				$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 );		}				$data ['rid'] = $rid;				$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/saeaLoanAddReceipt", $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' );		$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' ) : "";				if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation ) && ! empty ( $rid )) {						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->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 ++;				}								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->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, '.', '' ),					'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 = '';			$receipt->cid = $cid;			$receipt->status = 7;						// 修改审批流程加入角色			$receipt->verify = $verify;			$receipt->verifyStaff = '';			$receipt->executeStaff = '';			$receipt->executeCopy = $executeDetail ['staff'];						// $receipt->receiptOrder="#B".date("Ymd").mt_rand(1000,9999);			$receipt->explanation = $explanation;			$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->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() {		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;		// echo $rid;		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->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 ['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;				$this->render ( "/admin/saeaLoanEdiReceipt", $data );	}	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::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 ";				$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] ['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'] = '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;		 */				$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 = $value ['sum'] - $value ['loanSum'];			$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);				$data ['receiptList'] = $receiptList;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'expenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/expensesCollect", $data );	}	function approvalExpenses() {		$status = isset ( $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;				$rdate = $this->get_args ( 'date' ) ? $this->get_args ( 'date' ) : "";				//echo $rdate;				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 ();				// 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 = " and Year(date) =" . $year;/*				if (! empty ( $month ))			$dateCondition = " and Year(date) =" . $year . " and Month(date) = " . $month;		 		if($status == 'done'){ 			$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";		}				// $approvalCondition = " and status=" . $status;		// if ($status == 2) {		// // 查找角色审批人				// }		// if ($status == 5) { // and verifyStaff like "%\"'.$this->staff[0]['sid'].'\":{%"		// $approvalCondition = ' and status=2 ';		// }				// if ($status == 1) {		// $approvalCondition = ' and (status=' . $status . ' or status=6) ';		// }				// if ($status == 8) {		// $approvalCondition = ' and (status=' . $status . ' or status=9 ) ';		// }				// nowStaff like "%'.$this->staff[0]['sid'].'%"		$pageinfo ['page'] = array (				'previous' => '' 		);		// if ($status == 0) {		// $pageinfo = $this->get_page ( "CLD_receipt", $dateCondition . $cateCondition . $staffCondition . ' and verify in (' . $vid . ') and status!=5', $page, $page_size, "approvalExpenses", "", "" );				// $receiptList = $receipt->find ( array (		// 'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . ' and verify in (' . $vid . ')',		// 'limit' => $pageinfo ['lower'] . ',' . $page_size,		// 'desc' => 'rid',		// 'asArray' => true		// ) );		// //echo 'status!=5 '.$dateCondition.$cateCondition.$staffCondition.' and verify in ('.$vid.')';		// } else		if ($status == 'done' || $status == 'termination') {			$pageinfo = $this->get_page ( "CLD_receipt", $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ') and status!=5', $page, $page_size, "approvalExpenses/".$status, $get, "" );						$receiptList = $receipt->find ( array (					'where' => 'status!=5  ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')',					'limit' => $pageinfo ['lower'] . ',' . $page_size,					'desc' => 'rid',					'asArray' => true 			) );		} else			$receiptList = $receipt->find ( array (					'where' => 'status!=5 ' . $dateCondition . $cateCondition . $staffCondition . $approvalCondition . ' and verify in (' . $vid . ')',					'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;						$reportList=$reportCateList=array();		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 			) );						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'] );		}						$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="' . $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/approvalExpenses", $data );	}	function expensesDoc() {		$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' => ' 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;						// }					}				}			}						$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 = $value ['sum'] - $value ['loanSum'];			$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 			) );		}				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;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;				$data ['receiptMemu'] = 'approvalExpenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/expensesDoc", $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 			) );												if (empty ( $receiptDetail )||$receiptDetail['nowStaff']!=$this->staff['0']['sid'])				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 { // 进入下一个角色或者审批人					         						// 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;										$loanReceipt->nowStaff = $nowStaff;					$loanReceipt->verifyStaff = $vStaffString;										// 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 );					}				}			}						// 审批日志			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" );								$loanReceipt->amount = $receiptDetail ['amount'];								$loanReceipt->update ( array (						'where' => ' rid = ' . $receiptDetail ['loanRid'] 				) );								// 微信企业号通知				$this->setWXMsg ( $rid, 1 );			}						$receipt->amount = $amount;						$receipt->update ( array (					'where' => ' rid = ' . $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;		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;		foreach ( $receiptList as $key => $value ) {			$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 = $value ['sum'] - $value ['loanSum'];			$receiptList [$key] ['relust'] = $relust;			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( $relust );		}				// print_r($receiptList[$key]['executeList']);				$data ['receiptList'] = $receiptList;		$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'implement';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$this->render ( "/admin/implement", $data );	}	function implementDo() {		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;		$implementOpinions = $this->get_args ( 'opinion' ) ? $this->get_args ( 'opinion' ) : "";		$amount = $this->get_args ( 'amount' ) && is_numeric ( $this->get_args ( 'amount' ) ) ? $this->get_args ( 'amount' ) : '';				if (! empty ( $rid ) && $amount != '') {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();			Doo::loadClass ( 'XDeode' );			$XDeode = new XDeode ( 5 );						$rinfo = $receipt->getOne ( array (					'where' => 'rid=' . $rid,					'asArray' => true 			) );						$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 			) );		}		$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 		) );				$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 = '';		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'];		}		$data ['htmlLoan'] = $htmlLoan;		$data['loanReceiptDate']=$loanList [0] ['date'];		//$data ['LoanReceipt']=$loanList[0];		// print_r($loanList);				$Locate = 0;		$roleId = 0;		$button = 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 );			$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 = $value ['sum'] - $value ['loanSum'];			$receiptList [$key] ['relust'] = $relust;			$receiptList [$key] ['relustCN'] = $this->num_to_rmb ( abs ( $relust ) );		}		// print_r($receiptList);die;		// $data['verifyDetail']=$verifyDetail;				$mothHtml = "";		for($i = 1; $i <= 12; $i ++) {			if ($month == $i)				$mothHtml .= '<option selected value="' . $i . '">' . $i . '月</option>';			else				$mothHtml .= '<option value="' . $i . '">' . $i . '月</option>';		}				// 获取审批日志		Doo::loadModel ( 'receiptLog' );		$receiptLog = new receiptLog ();				$rlList = array ();		$rlInfo = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=4',				'asArray' => true 		) );		$tijdate = $receiptLog->getOne ( array (				'where' => 'rid=' . $rid . ' and status=2',				'asc' => 'rlid',				'asArray' => true 		) );		if (! empty ( $rlInfo )) {			$rlList = $receiptLog->find ( array (					'where' => 'rid=' . $rid,					'asc' => 'rlid',					'asArray' => true 			) );		}		// echo $rid;		// print_r($receiptList);				$receiptList [0] ['rlList'] = $rlList;				// print_r($receiptList);				$enclosurList = $enclosur->find ( array (				'where' => 'rid=' . $rid,				'asArray' => true 		) );		$enclosurHtml = '';		foreach ( $enclosurList as $value ) {			$enclosurHtml .= '<a href="/upload/swfupload/' . $value ['name'] . '" class="sFile" target="_blank">' . $value ['name'] . '</a>';		}				$data ['enclosurHtml'] = $enclosurHtml;		$data ['rolename'] = $rolename ['name'];				$data ['mothHtml'] = $mothHtml;				 //print_r($receiptList);		$data ['rid'] = $rid;		$data ['tijdate'] = $tijdate ['date'];		$data ['receiptList'] = $receiptList;		$data ['receiptApprovalCount'] = count ( $receiptList );		$data ['status'] = $status;		$data ['year'] = $year;		$data ['categoryList'] = $categoryList;		$data ['staffList'] = $staffList;		$data ['cid'] = $cid;		$data ['sid'] = $sid;		$data ['ap'] = $ap;				$data ['memu'] = "receipt";		$data ['staff'] = $this->staff;		$data ['receiptMemu'] = 'approvalExpenses';		$data ['verifyId'] = $this->verifyId;		$data ['executeId'] = $this->executeId;		$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' ) : "pendImplement";						$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';		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 );				$condition = "";		if ($item == "expenses")			$condition = " and Rtype=1 ";		elseif ($item == "receipts")			$condition = " and Rtype=0 ";		elseif ($item == "remits")			$condition = " and Rtype=2 ";		elseif($item =="pendImplement"){			$condition = ' and (status=1 or status=6) and (executeCopy like "%[\"' . $this->staff [0] ['sid'] . '\"%" and executeStaff not like "%{\"' . $this->staff [0] ['sid'] . '\"%" ) ';		}						//'and (executeCopy like "%["' . $this->staff [0] ['sid'] . '"%" and executeStaff not like "%{"' . $this->staff [0] ['sid'] . '"%" )';							$statusCon = '(status=8 or status=9 or status=1 or status=6 )';		$sopString = "";				if (empty($rdate))			$dateCondition = " and Year(date) =" . $year;		else 			$dateCondition=" and date_format(date,'%Y-%m-%d')='".$rdate."' ";				if ($item == 'teipts') {			$statusCon = '(status=1 or status=6 )';			$dateCondition=" and date_format(pastDate,'%Y-%m-%d')='".$rdate."' ";					} elseif ($item == '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 ($item == 'teipts') {			$statusCon = '(status=1 or status=6 )';			$dateCondition = " and Year(pastDate) =" . $year;			if ($moth != 'MONTH')				$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $moth;			if ($day != 'DAY')				$dateCondition = " and Year(pastDate) =" . $year . " and Month(pastDate) = " . $moth . " and day(pastDate)=" . $day;		} elseif ($item == 'alerpts') {			$statusCon = '(status=8 or status=9 )';			$dateCondition = " and Year(executeDate) =" . $year;			if ($moth != 'MONTH')				$dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth;			if ($day != 'DAY')				$dateCondition = " and Year(executeDate) =" . $year . " and Month(executeDate) = " . $moth . " and day(executeDate)=" . $day;		}		*/				if ($sop != 'SOP')			$sopString = " and staff=" . $sop;								// $noPassSum=$receipt->receiptByYear($year,$this->staff[0]['sid']); and (status=1 or status=6)				$receiptList = $receipt->find ( array (				'where' => $statusCon . $condition . $dateCondition . $sopString,				'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 (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );			$sopStaff [$value ['staff']] = $staffDetail ['username'];		}				$Locate = 0;		$roleId = 0;		$button = 0;		foreach ( $receiptList as $key => $value ) {			$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;			$receiptList [$key] ['staffDetail'] = $staff->getOne ( array (					'where' => 'sid=' . $value ['staff'],					'asArray' => true 			) );						$receiptList [$key] ['button'] = $button;		}				// 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['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 ['day'] = $day;		$data ['sop'] = $sop;		$this->render ( "/admin/hisImplement", $data );	}	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 			) );			echo json_encode ( array (					'status' => 1,					'receipt' => $rLRes [0] 			) );			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 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->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 );		}				$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 );	}	function addReceipt() {		// include Doo::conf()->BASE_PATH.'diagnostic/debug.php';		$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' ) : "";				if (! empty ( $verify ) && ! empty ( $cid ) && ! empty ( $explanation )) {						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));			// if(!empty($receiptDetail))			// return "/referReceipt/".$receiptDetail['rid'];						$aItem = $accountItem->find ( array (					'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 ++;				}								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->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, '.', '' ),					'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 );			$receipt->explanation = $explanation;			$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 ();			}			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->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";		}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		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;		// echo $rid;		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 ();				$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";				$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->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 ['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;				$this->render ( "/admin/saea_edit", $data );	}	function updateReceipt() {		$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;		$rid = $this->get_args ( 'rid' ) && is_numeric ( $this->get_args ( 'rid' ) ) ? $this->get_args ( 'rid' ) : 0;				if (! empty ( $explanation )) {						Doo::loadModel ( 'receipt' );			Doo::loadModel ( 'receiptDetail' );			Doo::loadModel ( 'accountItem' );			$accountItem = new accountItem ();			$receipt = new receipt ();						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";						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->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 ++;				}								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->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, '.', '' ),					'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'];						$receipt->explanation = $explanation;			$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->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 "/referReceipt/".$rid;		}		return "/saeaBorad";	}	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>';			}		}				$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 = $rinfo ['sum'] - $rinfo ['loanSum'];		$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 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 );	}	function revocationAdjustment() {		$sid = isset ( $this->params ['sid'] ) && is_numeric ( $this->params ['sid'] ) ? $this->params ['sid'] : 0;		$price = isset ( $this->params ['price'] ) && is_numeric ( $this->params ['price'] ) ? $this->params ['price'] : - 99999;		$rid = isset ( $this->params ['rid'] ) && is_numeric ( $this->params ['rid'] ) ? $this->params ['rid'] : 0;				// echo $price;die;				if ((! empty ( $sid )) && ($price != - 99999) && (! empty ( $rid ))) {			Doo::loadModel ( 'receipt' );			$receipt = new receipt ();						$receiptDetail = $receipt->getOne ( array (					'where' => 'rid=' . $rid,					'asArray' => true 			) );			if (empty ( $receiptDetail ['reviseDetail'] ))				return "/approval";						$reviseDetail = json_decode ( $receiptDetail ['reviseDetail'], true );			$RD = array ();			foreach ( $reviseDetail as $key => $value ) {				if ($value ['price'] == $price && $value ['sid'] == $sid)					continue;				array_push ( $RD, $value );			}						$reviseDetailString = json_encode ( $RD );			$receipt->reviseDetail = $reviseDetailString;			$receipt->sum = $receiptDetail ['sum'] - $price;			$receipt->revisePrice = $receiptDetail ['revisePrice'] - $price;			$receipt->update ( array (					'where' => 'rid=' . $rid 			) );		}		// approvalEdi/37		return "/approvalEdi/" . $rid;	}	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 			) );						if (empty ( $receiptDetail ))				return "/approval";						$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 ();								// 微信企业号通知				$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 );			}			$receipt->amount = $amount;			$receipt->update ( array (					'where' => ' rid = ' . $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 ))				return "/approval";						$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 			) );		}		return '/approvalEdi/' . $rid;	}	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;		$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;				$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 ();				$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,				'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		$stList = $statistics->statisticsByComPanyYear ( $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 ['year'] = $year;				$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 (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 ();				$LcategoryList = $Lcategory->find ( array (				'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 () 		);				$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 ();			}		}				$this->render ( "/admin/saeaCategoryCollectDetail", $data );	}	function staffCollect() {		$year = $this->get_args ( 'year' ) ? $this->get_args ( 'year' ) : date ( "Y" );				$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 ();				/*		 * $stList=$statistics->getOne(array('select'=>'sum(rePrice) as rePrice,sum(agPrice) as agPrice', 'where'=>" 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']));		 */				// statistics html		$stList = $statistics->statisticsByComPanyYear ( $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']) 		);				// ---		$staffList = $staff->find ( array (				'where' => 'username !="admin"',				'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,				'groupby' => 'staff,Month(date)',				'asArray' => true 		) );		$categoryList = $staff->find ( array (				'select' => 'COUNT(*) as count,cid,category',				'where' => 'username !="admin"',				'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']] = 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 ['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 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() {		$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;			$r16=0;			$r17=0;			$r18=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']) {					// 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 ($value['sid']==42){					// print_r($receiptCollectList);die;					// }										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'];										if ($va == '公积金')											$r16 += $v ['price'];										if ($va == '社保')											$r17 += $v ['price'];										if ($va == '人员薪酬')											$r18 += $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 ($value['sid']==42){									//									// echo var_dump($v['item']);									// echo var_dump($va);									// echo var_dump($v['item']==" ".$va);									// echo $v['item']."==".$va."/<br/>";									// //print_r( $receiptCollectList);//echo $va;									// }																		if (trim ( $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>		  						<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(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>';					$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><td class="taR">' . $r18 . '</td> <td class="taR">' . $r16 . '</td><td class="taR">' . $r17 . '</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(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 );				// 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/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 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 		) );				$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 () 				);								$html = "";				$psum = 0;				$item = array (						'市内交通费',						'市内出租费',						'办事处房租',						'电话费',						'水费',						'电费',						'办公费用',						'邮寄费',						'其他费用',						'车辆费用',						'广告费',						'团队建设费' 				);				foreach ( $item as $va ) {					$falg = true;					foreach ( $receiptCollectList as $v ) {						if ($v ['itemCategory'] == '日常相关费用') {														if ($v ['item'] == $va) {								$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;				$item = array (						'往来交通费',						'市内交通费',						'出差住宿费',						'出差补助',						'其他费用' 				);				foreach ( $item as $va ) {					$falg = true;					foreach ( $receiptCollectList as $v ) {						if ($v ['itemCategory'] == '差旅相关费用') {														if ($v ['item'] == $va) {								$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;				$item = array (						'场租费',						'薪酬',						'住宿费',						'交通费',						'餐饮费',						'办公费',						'公关费',						'其他' 				);				foreach ( $item as $va ) {					$falg = true;					foreach ( $receiptCollectList as $v ) {						if ($v ['itemCategory'] == '培训班费用') {														if ($v ['item'] == $va) {								$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;				$item = array (						'公关费',						'广告费',						'借款',						'可自加费用' 				);				foreach ( $item as $va ) {					$falg = true;					foreach ( $receiptCollectList as $v ) {						if ($v ['itemCategory'] == '其他') {														if ($v ['item'] == $va) {								$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 ['日常相关费用'] = '<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(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 );				// 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 ['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 ();				$staffList = $staff->find ( array (				'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 () 		);				$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 ['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) {		if (! empty ( $receiptCollectList )) {						$receiptL = array (					'日常相关费用' => array (),					'差旅相关费用' => array (),					'培训班费用' => array (),					'其他' => array () 			);						$html = "";			$psum = 0;			$item = array (					'市内交通费',					'市内出租费',					'办事处房租',					'电话费',					'水费',					'电费',					'办公费用',					'邮寄费',					'其他费用',					'车辆费用',					'广告费',					'团队建设费',					'物业管理费',					'宽带费' 			);			foreach ( $item as $value ) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '日常相关费用') {												if ($v ['item'] == $value) {							$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;			$item = array (					'往来交通费',					'市内交通费',					'出差住宿费',					'出差补助',					'其他费用' 			);			foreach ( $item as $value ) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '差旅相关费用') {						if ($v ['item'] == $value) {							$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;			$item = array (					'场租费',					'薪酬',					'住宿费',					'交通费',					'餐饮费',					'办公费',					'公关费',					'其他' 			);			foreach ( $item as $value ) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '培训班费用') {						if ($v ['item'] == $value) {							$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;			$item = array (					'公关费',					'广告费',					'借款',					'可自加费用' 			);			foreach ( $item as $value ) {				$falg = true;				foreach ( $receiptCollectList as $v ) {					if ($v ['itemCategory'] == '其他') {						if ($v ['item'] == $value) {							$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 ['日常相关费用'] = '<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>';		}		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 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;			$num = ( int ) $num;			// 结束循环			if ($num == 0) {				break;			}		}		$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;	}}?>
 |