1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576 |
- <?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";
- }
- 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
- ) );
-
- // $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] = $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 ();
-
- // 执行数据备份
- // $executeCopy->rid=$rid;
- // $executeCopy->staff=$executeDetail['staff'];
- // $executeCopy->eid=$executeDetail['eid'];
- // $ecid=$executeCopy->insert();
- }
- return "/saeaBorad";
- }
- 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 "/referReceipt/".$rid;
- }
- return "/saeaBorad";
- }
- 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;
- }
- }
- ?>
|