reportdownload.php 500 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846
  1. <?php
  2. /* * **************************
  3. * File : reportdownload.php
  4. * Author : Cygnusa
  5. * @2019
  6. * ************************** */
  7. include "Connection.php";
  8. $conn = new Connection();
  9. $_SESSION["userid"] = 1;
  10. if (isset($_REQUEST["funName"])) {
  11. $db = $conn->getConnection();
  12. $fun = $_REQUEST["funName"];
  13. switch ($fun) {
  14. case "user_registration":
  15. case "inactive_user_registration":
  16. case "page_access":
  17. case "content_report":
  18. case "accumulation_report":
  19. case "redemption_report":
  20. case "redemptionapproved_report":
  21. case "assessment_report":
  22. case "sales_report":
  23. case "certification_report":
  24. case "setsalestarget_report":
  25. case "attrition_report":
  26. case "activeinactive_report":
  27. case "customerexperiencelogin":
  28. case "enquiry":
  29. case "user_registration_mail":
  30. case "emp_activeinactive_mail":
  31. case "customerexperiencefeedback":
  32. case "user_registration_percent":
  33. case "inactive_user_table":
  34. case "page_access_v2":
  35. case "points_report_v2":
  36. case "points_report_list_v2":
  37. case 'sales_report_v2':
  38. case 'sales_report_list_v2':
  39. case 'certification_report_v2':
  40. case 'certification_report_list_v2':
  41. case 'enquiry_report_v2':
  42. case 'customerexperience_report_v2':
  43. case 'assessment_report_v2':
  44. case 'assessment_report_list_v2':
  45. case "setsalestarget_report_v2":
  46. case "setsalestarget_report_list_v2":
  47. case 'enquiry_report_v3':
  48. case "setsalestarget_report_v3":
  49. case "useraccess_data":
  50. case "bulletin_report":
  51. case "bulletin_report_list":
  52. case "rewardpoint_data":
  53. $fun();
  54. break;
  55. case "content_report_v2":
  56. case "content_report_list_v2":
  57. case "content_report_zm":
  58. case "content_report_trainer":
  59. case "content_report_rm":
  60. case "content_report_am":
  61. case "content_report_list_zm":
  62. case "content_report_list_trainer":
  63. case "content_report_list_rm":
  64. case "content_report_list_am":
  65. require_once "report_content_download.php";
  66. $fun();
  67. break;
  68. // case 'enquirystatusexport':
  69. // case 'overallratioexport':
  70. // case 'convertedsalesexport':
  71. // case 'achievedvstargetexport':
  72. // case 'productivityexport':
  73. case 'enquirystatusdseexport':
  74. case 'enquirytestridedseexport':
  75. case 'enquiryconversionratiodseexport':
  76. case 'productivitydseexport':
  77. case 'enquiry_dealer_report_terms_condition':
  78. case 'temp_suspension':
  79. // case 'overallratiodseexport':
  80. // case 'convertedsalesdseexport':
  81. // case 'achievedvstargetdseexport':
  82. // case 'productivitydseexport':
  83. // case 'enquiry_report_terms_condition':
  84. // case 'enquiry_dealer_report_terms_condition':
  85. require_once "report_enquiry_download.php";
  86. $fun();
  87. break;
  88. default:
  89. $conn->message(false, "PAGE NOT FOUND");exit;
  90. break;
  91. }
  92. }
  93. //setCellBorder
  94. function setCellBorder($columns, $objPHPExcel)
  95. {
  96. for ($i = 0; $i < count($columns); $i++) {
  97. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  98. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  99. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  100. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  101. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("0A64B5");
  102. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFont()->setSize(12)->getColor()->setRGB("FFFFFF");
  103. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFont()->setBold(true);
  104. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getAlignment()->setWrapText(true);
  105. }
  106. }
  107. //isValidDateTimeString
  108. function isValidDateTimeString($str_dt, $str_dateformat, $str_timezone)
  109. {
  110. $date = DateTime::createFromFormat($str_dateformat, $str_dt, new DateTimeZone($str_timezone));
  111. return $date && $date->format($str_dateformat) == $str_dt;
  112. }
  113. //isValidDateTimeString
  114. function getReportFormat($from_date, $to_date)
  115. {
  116. $data_arr = array();
  117. //check same month
  118. if (date('Y-m', strtotime($from_date)) == date('Y-m', strtotime($to_date))) {
  119. $data_arr = array('type' => 'date');
  120. $data_arr['date'][] = $from_date;
  121. $temp_date = $from_date;
  122. while (strtotime($temp_date) < strtotime($to_date)) {
  123. $temp_date = date('Y-m-d', strtotime('+1 day', strtotime($temp_date)));
  124. $data_arr['date'][] = $temp_date;
  125. }
  126. $data_arr['from_date'] = $from_date;
  127. $data_arr['to_date'] = $to_date;
  128. } else {
  129. $data_arr = array('type' => 'month');
  130. $data_arr['date'][] = $from_date;
  131. $temp_date = date('Y-m', strtotime($from_date)) . "-01";
  132. $end_month = date('Y-m', strtotime($to_date)) . "-01";
  133. while (strtotime($temp_date) < strtotime($end_month)) {
  134. $temp_date = date('Y-m', strtotime('+1 month', strtotime($temp_date))) . "-01";
  135. $data_arr['date'][] = $temp_date;
  136. }
  137. $data_arr['from_date'] = $from_date;
  138. $data_arr['to_date'] = $to_date;
  139. }
  140. return $data_arr;
  141. }
  142. function converttype()
  143. {
  144. $_REQUEST['datetype'] = (isset($_REQUEST["datetype"])) ? escape_str($_REQUEST["datetype"]) : '0';
  145. switch ($_REQUEST['datetype']) {
  146. case "1":
  147. $_REQUEST["from_date"] = date('Y-m', strtotime('-1 month', strtotime(NOW))) . "-01";
  148. $_REQUEST["to_date"] = date('Y-m-t', strtotime('-1 month', strtotime(NOW)));
  149. break;
  150. case "2":
  151. $_REQUEST["from_date"] = date('Y-m-d', strtotime('-4 month', strtotime(NOW)));
  152. $_REQUEST["to_date"] = date('Y-m-t', strtotime('-1 month', strtotime(NOW)));
  153. break;
  154. case "3":
  155. $cur_month = date('n', strtotime(NOW));
  156. if ($cur_month <= 3) {
  157. $_REQUEST["from_date"] = date('Y', strtotime(NOW)) . "-10-01";
  158. $_REQUEST["to_date"] = (date('Y', strtotime(NOW)) - 1) . "-12-31";
  159. } else if ($cur_month >= 4 && $cur_month <= 6) {
  160. $_REQUEST["from_date"] = date('Y', strtotime(NOW)) . "-01-01";
  161. $_REQUEST["to_date"] = (date('Y', strtotime(NOW)) - 1) . "-03-31";
  162. } else if ($cur_month >= 7 && $cur_month <= 9) {
  163. $_REQUEST["from_date"] = date('Y', strtotime(NOW)) . "-04-01";
  164. $_REQUEST["to_date"] = (date('Y', strtotime(NOW)) - 1) . "-06-30";
  165. } else if ($cur_month >= 10 && $cur_month <= 12) {
  166. $_REQUEST["from_date"] = date('Y', strtotime(NOW)) . "-07-01";
  167. $_REQUEST["to_date"] = (date('Y', strtotime(NOW)) - 1) . "-09-30";
  168. }
  169. break;
  170. case "4":
  171. break;
  172. default:
  173. $_REQUEST['datetype'] = 0;
  174. //$_REQUEST["from_date"]=date('Y',strtotime(NOW))."-07-01";
  175. //$_REQUEST["to_date"]=(date('Y',strtotime(NOW))-1)."-09-30";
  176. break;
  177. }
  178. }
  179. // user_registration
  180. function user_registration()
  181. {
  182. global $conn;
  183. try {
  184. $lang = "en_us";
  185. $pageData = $conn->loadJSON($lang);
  186. //$_SESSION["userid"]=1;
  187. if (isset($_SESSION["userid"])) {
  188. //CONVERT converttype()
  189. converttype();
  190. $datetype = escape_str($_REQUEST['datetype']);
  191. $from_date = escape_str($_REQUEST["from_date"]);
  192. $to_date = escape_str($_REQUEST["to_date"]);
  193. if ($datetype != 4) //FOR ALL LIST
  194. {
  195. if (!($from_date != '' && $to_date != '')) {
  196. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  197. }
  198. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  199. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  200. }
  201. }
  202. // $data_arr=getReportFormat($from_date,$to_date);
  203. $zm_email = escape_str($_REQUEST["zm_email"]);
  204. $rm_email = escape_str($_REQUEST["rm_email"]);
  205. $am_email = escape_str($_REQUEST["am_email"]);
  206. $user_cond = '';
  207. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  208. $mcond = '';
  209. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  210. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  211. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  212. //AM
  213. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE is_deleted='0' AND status=1 " . $mcond . ")";
  214. } else {
  215. //PAN
  216. $user_cond = '';
  217. }
  218. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  219. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  220. $objPHPExcel = new PHPExcel();
  221. $objPHPExcel->setActiveSheetIndex(0);
  222. $row += 2;
  223. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER REGISTRATION");
  224. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":Q" . $row);
  225. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  226. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  227. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  228. if ($datetype != 4) {
  229. $row++;
  230. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  231. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  232. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  233. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  234. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  235. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  236. }
  237. $row++;
  238. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, 'L' . $row, 'M' . $row, 'N' . $row, 'O' . $row, 'P' . $row, 'Q' . $row);
  239. setCellBorder($bordercells_arr, $objPHPExcel);
  240. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  241. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Register Date & Time', 'Status', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM', 'DOJ', '(DOJ - Star Reg Date)in days', '(DOJ - Current Date)in days', '(HYPER-M App Date - DOJ)in days', 'Segment');
  242. $i = 0;
  243. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  244. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  245. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  246. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  247. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  248. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  249. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  250. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  251. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  252. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  253. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  254. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  255. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  256. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  257. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  258. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  259. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  260. $i = 0;
  261. foreach ($header_arr as $val) {
  262. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  263. }
  264. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  265. if ($datetype != 4) {
  266. $user_cond .= " AND u.created_on>='" . $from_date . " 00:00:00' AND u.created_on<='" . $to_date . " 23:59:59'";
  267. }
  268. if ($regtype == '1') {
  269. //$query_str="SELECT modified_on FROM ".DMS_EMPLOYEE." ORDER BY modified_on DESC LIMIT 1 ";
  270. //$data_arr=$conn->getQueryValue($query_str);
  271. $user_cond .= " AND e.is_current=1";
  272. //$query_str="SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.doj,u.created_on,u.status,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,e.created_on as emp_created_on,e.segment FROM ".TABLE_USER." u JOIN ".DMS_EMPLOYEE." e ON u.smpin=e.smpin LEFT JOIN ".DMS_DEALER." d ON u.dealer_code=d.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 ".$user_cond." ";
  273. //$query_str="SELECT e.smpin,e.fname,e.lname,e.mobile as mobileno,e.dealer_code,e.date_of_join as doj,e.created_on as emp_created_on,e.segment,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,u.created_on,u.status,u.userid FROM ".DMS_EMPLOYEE." e LEFT JOIN ".TABLE_USER." u ON u.smpin=e.smpin AND u.is_deleted=0 LEFT JOIN ".DMS_DEALER." d ON u.dealer_code=d.dealer_code WHERE ".$user_cond." ";
  274. } else {
  275. //$query_str="SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.doj,u.created_on,u.status,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,e.created_on as emp_created_on,e.segment FROM ".TABLE_USER." u JOIN ".DMS_EMPLOYEE." e ON u.smpin=e.smpin LEFT JOIN ".DMS_DEALER." d ON u.dealer_code=d.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 ".$user_cond." ";
  276. }
  277. $query_str = "SELECT e.smpin,e.fname,e.lname,e.mobile as mobileno,e.dealer_code,e.date_of_join as doj,e.created_on as emp_created_on,e.segment,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,u.created_on,u.status,u.userid FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER . " u ON u.smpin=e.smpin AND u.is_deleted=0 LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status=1 " . $user_cond . " ORDER BY e.id ASC";
  278. $user_arr = $conn->getQueryValue($query_str);
  279. if (count($user_arr) > 0) {
  280. $sno = 1;
  281. foreach ($user_arr as $mkey => $res_user) {
  282. $i = 0;
  283. $row++;
  284. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  285. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  286. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  287. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  288. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  289. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  290. $reg_date = '';
  291. if ($res_user->userid > 0) {
  292. $reg_date = date('d-m-Y h:i A', strtotime($res_user->created_on));
  293. }
  294. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $reg_date);
  295. $status = ($res_user->status == '1') ? "Active" : "Inactive";
  296. if ($status == 'Active') {
  297. $color = '008000';
  298. } else if ($status == 'Inactive') {
  299. $color = 'FF0000';
  300. //$objPHPExcel->getActiveSheet()->getStyle('F'.$row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  301. }
  302. if (!$res_user->userid > 0) {
  303. $color = 'FF0000';
  304. $status = "Not Registered";
  305. }
  306. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $status);
  307. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB($color);
  308. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  309. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  310. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  311. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  312. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  313. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  314. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  315. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->doj);
  316. $diff = 0;
  317. if ($res_user->userid > 0) {
  318. $doj_date = $res_user->doj;
  319. $reg_date = $res_user->created_on;
  320. $emp_created_date = $res_user->emp_created_on;
  321. $doj_date_str = new DateTime($doj_date);
  322. $reg_date_str = new DateTime($reg_date);
  323. $diff = $reg_date_str->diff($doj_date_str)->format("%a");
  324. }
  325. $column_row = getColumnFromNumber($i++) . $row;
  326. $objPHPExcel->getActiveSheet()->SetCellValue($column_row, $diff);
  327. if ($diff > 7) {
  328. $objPHPExcel->getActiveSheet()->getStyle($column_row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  329. //$objPHPExcel->getActiveSheet()->getStyle($column_row)->getFont()->setSize(12)->getColor()->setRGB("FFFFFF");
  330. }
  331. $cur_date_str = new DateTime(CUR_DATE);
  332. $diff2 = $cur_date_str->diff($doj_date_str)->format("%a");
  333. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $diff2);
  334. $doj_date_str = new DateTime($doj_date);
  335. $emp_created_date_str = new DateTime($emp_created_date);
  336. $diff3 = $emp_created_date_str->diff($doj_date_str)->format("%a");
  337. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $diff3);
  338. $segment_str = '';
  339. switch ($res_user->segment) {
  340. case '1':$segment_str = 'Parents/Guardian';
  341. break;
  342. case '2':$segment_str = 'Instructor';
  343. break;
  344. default:$segment_str = 'Student Learner';
  345. break;
  346. }
  347. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  348. }
  349. }
  350. $objPHPExcel->getActiveSheet()->setTitle('REGISTRATION REPORT');
  351. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  352. $fpath = "../" . S3_REPORT_URL;
  353. $filename = "user_registration_report_" . uniqid() . ".xlsx";
  354. $objWriter->save($fpath . $filename);
  355. //S3 UPLOAD
  356. //S3 LIB
  357. require dirname(__FILE__) . '/awsfileserver.php';
  358. //S3 OBJ
  359. $s3 = awsfileserver::connectS3();
  360. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  361. //DELETE AFTER MOVE TO S3
  362. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  363. $obj = new stdClass();
  364. $obj->key_name = S3_REPORT_URL . $filename;
  365. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  366. $returnarr = array("report_url" => $url);
  367. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  368. } else {
  369. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  370. }
  371. } catch (PDOException $e) {
  372. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  373. }
  374. }
  375. // user_registration
  376. function inactive_user_registration()
  377. {
  378. global $conn;
  379. try {
  380. $lang = "en_us";
  381. $pageData = $conn->loadJSON($lang);
  382. //$_SESSION["userid"]=1;
  383. if (isset($_SESSION["userid"])) {
  384. //CONVERT converttype()
  385. converttype();
  386. //$from_date = escape_str($_REQUEST["from_date"]);
  387. //$to_date = escape_str($_REQUEST["to_date"]);
  388. //if(!($from_date!='' && $to_date!='')) $conn->message(false,$conn->getMessage($lang,'report','error6'));
  389. //if(!(isValidDateTimeString($from_date,'Y-m-d','Asia/Kolkata') && isValidDateTimeString($to_date,'Y-m-d','Asia/Kolkata'))) $conn->message(false,$conn->getMessage($lang,'report','error7'));
  390. // $data_arr=getReportFormat($from_date,$to_date);
  391. $zm_email = escape_str($_REQUEST["zm_email"]);
  392. $rm_email = escape_str($_REQUEST["rm_email"]);
  393. $am_email = escape_str($_REQUEST["am_email"]);
  394. $user_cond = '';
  395. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  396. $mcond = '';
  397. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  398. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  399. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  400. //AM
  401. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  402. } else {
  403. //PAN
  404. $user_cond = '';
  405. }
  406. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  407. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  408. $objPHPExcel = new PHPExcel();
  409. $objPHPExcel->setActiveSheetIndex(0);
  410. $row += 2;
  411. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "INACTIVE USER REPORT");
  412. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  413. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  414. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  415. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  416. $row++;
  417. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  418. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  419. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  420. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  421. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  422. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  423. $row++;
  424. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row);
  425. setCellBorder($bordercells_arr, $objPHPExcel);
  426. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  427. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Register Date & Time', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  428. $i = 0;
  429. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  430. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  431. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  432. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  433. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  434. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  435. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  436. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  437. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  438. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  439. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  440. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  441. $i = 0;
  442. foreach ($header_arr as $val) {
  443. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  444. }
  445. $tablejoin = '';
  446. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  447. if ($regtype == '1') {
  448. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  449. $user_cond .= " AND e.is_current=1 ";
  450. }
  451. //$query_str="SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.created_on,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM ".TABLE_USER." u LEFT JOIN ".DMS_DEALER." d ON u.dealer_code=d.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND u.status=2 AND u.created_on>='".$from_date." 00:00:00' AND u.created_on<='".$to_date." 23:59:59' ".$user_cond." ";
  452. $query_str = "SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.created_on,u.segment,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER . " u " . $tablejoin . " LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND u.status=2 " . $user_cond . " ";
  453. $user_arr = $conn->getQueryValue($query_str);
  454. if (count($user_arr) > 0) {
  455. $sno = 1;
  456. foreach ($user_arr as $mkey => $res_user) {
  457. $i = 0;
  458. $row++;
  459. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  460. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  461. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  462. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  463. switch ($res_user->segment) {
  464. case '0':$segment_str = 'Student Learner';
  465. break;
  466. case '1':$segment_str = 'Parents/Guardian';
  467. break;
  468. case '2':$segment_str = 'Instructor';
  469. break;
  470. default:$segment_str = 'Student Learner';
  471. break;
  472. }
  473. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  474. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  475. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  476. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  477. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  478. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  479. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  480. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  481. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  482. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  483. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  484. }
  485. }
  486. $objPHPExcel->getActiveSheet()->setTitle('INACTIVE USER REPORT');
  487. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  488. $fpath = "../" . S3_REPORT_URL;
  489. $filename = "inactive_user_registration_report_" . uniqid() . ".xlsx";
  490. $objWriter->save($fpath . $filename);
  491. //S3 UPLOAD
  492. //S3 LIB
  493. require dirname(__FILE__) . '/awsfileserver.php';
  494. //S3 OBJ
  495. $s3 = awsfileserver::connectS3();
  496. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  497. //DELETE AFTER MOVE TO S3
  498. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  499. $obj = new stdClass();
  500. $obj->key_name = S3_REPORT_URL . $filename;
  501. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  502. $returnarr = array("report_url" => $url);
  503. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  504. } else {
  505. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  506. }
  507. } catch (PDOException $e) {
  508. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  509. }
  510. }
  511. // page_access
  512. function page_access()
  513. {
  514. global $conn;
  515. try {
  516. $lang = "en_us";
  517. $pageData = $conn->loadJSON($lang);
  518. //$_SESSION["userid"]=1;
  519. if (isset($_SESSION["userid"])) {
  520. $page = escape_str($_REQUEST["page"]);
  521. $zm_email = escape_str($_REQUEST["zm_email"]);
  522. $rm_email = escape_str($_REQUEST["rm_email"]);
  523. $am_email = escape_str($_REQUEST["am_email"]);
  524. $user_cond = '';
  525. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  526. $mcond = '';
  527. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  528. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  529. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  530. //AM
  531. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  532. } else {
  533. //PAN
  534. $user_cond = '';
  535. }
  536. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  537. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  538. $objPHPExcel = new PHPExcel();
  539. $objPHPExcel->setActiveSheetIndex(0);
  540. $row += 2;
  541. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER ACCESS REPORT");
  542. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  543. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  544. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  545. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  546. $row++;
  547. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "PAGE :");
  548. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  549. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, $page);
  550. $row++;
  551. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row);
  552. setCellBorder($bordercells_arr, $objPHPExcel);
  553. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  554. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Last access', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  555. $i = 0;
  556. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  557. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  558. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  559. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  560. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  561. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  562. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  563. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  564. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  565. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  566. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  567. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  568. $i = 0;
  569. foreach ($header_arr as $val) {
  570. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  571. }
  572. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,MAX(ac.created_on) as last_access,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER_ACCESSCOUNT . " as ac JOIN " . TABLE_USER . " as u ON ac.smpin=u.smpin LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND ac.page='" . $page . "' " . $user_cond . " GROUP BY ac.smpin ORDER BY last_access DESC ";
  573. $user_arr = $conn->getQueryValue($query_str);
  574. if (count($user_arr) > 0) {
  575. $sno = 1;
  576. foreach ($user_arr as $mkey => $res_user) {
  577. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Last access','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  578. $i = 0;
  579. $row++;
  580. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  581. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  582. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  583. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  584. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  585. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  586. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  587. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->last_access)));
  588. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  589. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  590. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  591. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  592. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  593. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  594. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  595. }
  596. }
  597. $objPHPExcel->getActiveSheet()->setTitle('ACCESS REPORT');
  598. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  599. $fpath = "../" . S3_REPORT_URL;
  600. $filename = "user_access_report_" . uniqid() . ".xlsx";
  601. $objWriter->save($fpath . $filename);
  602. //S3 UPLOAD
  603. //S3 LIB
  604. require dirname(__FILE__) . '/awsfileserver.php';
  605. //S3 OBJ
  606. $s3 = awsfileserver::connectS3();
  607. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  608. //DELETE AFTER MOVE TO S3
  609. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  610. $obj = new stdClass();
  611. $obj->key_name = S3_REPORT_URL . $filename;
  612. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  613. $returnarr = array("report_url" => $url);
  614. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  615. } else {
  616. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  617. }
  618. } catch (PDOException $e) {
  619. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  620. }
  621. }
  622. // content_report
  623. function content_report()
  624. {
  625. global $conn;
  626. try {
  627. $lang = "en_us";
  628. $pageData = $conn->loadJSON($lang);
  629. //$_SESSION["userid"]=1;
  630. if (isset($_SESSION["userid"])) {
  631. //CONVERT converttype()
  632. converttype();
  633. $from_date = escape_str($_REQUEST["from_date"]);
  634. $to_date = escape_str($_REQUEST["to_date"]);
  635. $cateid = escape_str($_REQUEST["cateid"]);
  636. $type = escape_str($_REQUEST["type"]);
  637. if (!($from_date != '' && $to_date != '' && $cateid != '')) {
  638. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  639. }
  640. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  641. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  642. }
  643. $zm_email = escape_str($_REQUEST["zm_email"]);
  644. $rm_email = escape_str($_REQUEST["rm_email"]);
  645. $am_email = escape_str($_REQUEST["am_email"]);
  646. $user_cond = '';
  647. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  648. $mcond = '';
  649. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  650. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  651. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  652. //AM
  653. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  654. } else {
  655. //PAN
  656. $user_cond = '';
  657. }
  658. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  659. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  660. $objPHPExcel = new PHPExcel();
  661. $objPHPExcel->setActiveSheetIndex(0);
  662. $row += 2;
  663. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CONTENT ACCESS REPORT");
  664. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":Z" . $row);
  665. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  666. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  667. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  668. $row++;
  669. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  670. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  671. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  672. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  673. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  674. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  675. $query_str = "SELECT `cateid`, `catename` FROM " . TABLE_CATEGORY . " WHERE cateid='" . $cateid . "' LIMIT 1";
  676. $cat_arr = $conn->getQueryValue($query_str);
  677. if (!count($cat_arr) > 0) {
  678. $conn->message(false, $conn->getMessage($lang, 'report', 'error2'));
  679. }
  680. $row++;
  681. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CATEGORY :");
  682. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":B" . $row);
  683. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  684. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, $cat_arr[0]->catename);
  685. if ($type != '') {
  686. $excond = " AND f.filetypeid='" . $type . "'";
  687. }
  688. //GET ALL CONTENTS OF CATEGORY
  689. $query_str = "SELECT c.assettopicid,ca.cateid,c.title,t.topicname,c.contentid,c.title FROM `" . TABLE_ASSET_CONTENT . "` as c LEFT JOIN " . TABLE_ASSET_TOPIC . " as t ON c.assettopicid=t.assettopicid LEFT JOIN " . TABLE_CATEGORY . " as ca ON ca.cateid=t.cateid LEFT JOIN " . TABLE_ASSET_FILE . " as f ON f.contentid=c.contentid WHERE ca.cateid ='" . $cateid . "' AND t.status='1' AND t.is_deleted='0' AND c.status='1' AND c.is_deleted='0' " . $excond . " GROUP BY c.contentid ORDER BY t.position ASC,t.assettopicid ASC,c.contentid ASC ";
  690. $contentresult_arr = $conn->getQueryValue($query_str);
  691. $row += 2;
  692. $i = 0;
  693. if (count($contentresult_arr)) {
  694. //SETTING HEADER
  695. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row);
  696. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Dealer Code', 'Dealer Name', 'Zone');
  697. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  698. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  699. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  700. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  701. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  702. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  703. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  704. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  705. $BStyle = array('borders' => array('outline' => array('style' => PHPExcel_Style_Border::BORDER_THIN)));
  706. // print_r($contentresult_arr);
  707. foreach ($contentresult_arr as $res_content) {
  708. $column = $i++;
  709. $bordercells_arr[] = getColumnFromNumber($column) . $row;
  710. $header_arr[] = $res_content->title;
  711. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($column))->setWidth('25');
  712. $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($column) . $row)->getAlignment()->setWrapText(true);
  713. $objPHPExcel->getActiveSheet()->getStyle(getColumnFromNumber($column) . $row)->applyFromArray($BStyle);
  714. }
  715. $objPHPExcel->getActiveSheet()->getStyle("I" . ($row - 1) . ":" . getColumnFromNumber($column) . ($row - 1))->applyFromArray($BStyle);
  716. $objPHPExcel->getActiveSheet()->SetCellValue('I' . ($row - 1), "CONTENT ACCESS COUNT");
  717. $objPHPExcel->getActiveSheet()->mergeCells("I" . ($row - 1) . ":" . getColumnFromNumber($column) . ($row - 1));
  718. $objPHPExcel->getActiveSheet()->getStyle("I" . ($row - 1))->getFont()->setBold(true);
  719. $objPHPExcel->getActiveSheet()->getStyle("I" . ($row - 1))->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  720. $column = $i++;
  721. $bordercells_arr[] = getColumnFromNumber($column) . $row; //ZM
  722. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($column))->setWidth('25');
  723. //$objPHPExcel->getActiveSheet()->mergeCells(getColumnFromNumber($column).($row-1).":".getColumnFromNumber($column).$row);
  724. $column = $i++;
  725. $bordercells_arr[] = getColumnFromNumber($column) . $row; //RM
  726. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($column))->setWidth('25');
  727. //$objPHPExcel->getActiveSheet()->mergeCells(getColumnFromNumber($column).($row-1).":".getColumnFromNumber($column).$row);
  728. $column = $i;
  729. $bordercells_arr[] = getColumnFromNumber($column) . $row; //AM
  730. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($column))->setWidth('25');
  731. //$objPHPExcel->getActiveSheet()->mergeCells(getColumnFromNumber($column).($row-1).":".getColumnFromNumber($column).$row);
  732. $header_arr[] = "ZM";
  733. $header_arr[] = "RM";
  734. $header_arr[] = "AM";
  735. setCellBorder(array("I" . ($row - 1)), $objPHPExcel);
  736. //$objPHPExcel->getStyle("H".($row-1).":".getColumnFromNumber($column).($row-1))->applyFromArray(array('borders' => array('allborders' => array('style' => PHPExcel_Style_Border::BORDER_THIN,'color' => array('rgb' => 'DDDDDD')))));
  737. setCellBorder($bordercells_arr, $objPHPExcel);
  738. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  739. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  740. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  741. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  742. $i = 0;
  743. foreach ($header_arr as $val) {
  744. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  745. }
  746. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`, d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER_ACCESSCOUNT . " as ac JOIN " . TABLE_USER . " as u ON ac.smpin=u.smpin LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND ac.page='learning' AND ac.created_on>='" . $from_date . " 00:00:00' AND ac.created_on<='" . $to_date . " 23:59:59' AND ac.cateid ='" . $cateid . "' " . $user_cond . " GROUP BY ac.smpin ORDER BY COUNT(ac.id) DESC ";
  747. $user_arr = $conn->getQueryValue($query_str);
  748. if (count($user_arr) > 0) {
  749. $sno = 1;
  750. foreach ($user_arr as $mkey => $res_user) {
  751. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Dealer Code','Dealer Name','Zone');
  752. $i = 0;
  753. $row++;
  754. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  755. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  756. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  757. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  758. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  759. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  760. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  761. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  762. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  763. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  764. //USER CONTENT COUNT
  765. foreach ($contentresult_arr as $res_content) {
  766. $query_str = "SELECT COUNT(id) as ucount FROM " . TABLE_USER_ACCESSCOUNT . " WHERE smpin='" . $res_user->smpin . "' AND contentid='" . $res_content->contentid . "' AND page='learning' AND created_on>='" . $from_date . " 00:00:00' AND created_on<='" . $to_date . " 23:59:59' LIMIT 1 ";
  767. $countresult_arr = $conn->getQueryValue($query_str);
  768. $count = (count($countresult_arr) > 0) ? $countresult_arr[0]->ucount : '0';
  769. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $count);
  770. }
  771. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  772. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  773. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  774. }
  775. }
  776. } else {
  777. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "NO RECORD FOUND ");
  778. }
  779. $objPHPExcel->getActiveSheet()->setTitle('USER CONTENT REPORT');
  780. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  781. $fpath = "../" . S3_REPORT_URL;
  782. $filename = "user_content_report_" . uniqid() . ".xlsx";
  783. $objWriter->save($fpath . $filename);
  784. //S3 UPLOAD
  785. //S3 LIB
  786. require dirname(__FILE__) . '/awsfileserver.php';
  787. //S3 OBJ
  788. $s3 = awsfileserver::connectS3();
  789. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  790. //DELETE AFTER MOVE TO S3
  791. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  792. $obj = new stdClass();
  793. $obj->key_name = S3_REPORT_URL . $filename;
  794. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  795. $returnarr = array("report_url" => $url);
  796. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  797. } else {
  798. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  799. }
  800. } catch (PDOException $e) {
  801. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  802. }
  803. }
  804. // accumulation_report
  805. function accumulation_report()
  806. {
  807. global $conn;
  808. try {
  809. $lang = "en_us";
  810. $pageData = $conn->loadJSON($lang);
  811. //$_SESSION["userid"]=1;
  812. if (isset($_SESSION["userid"])) {
  813. //CONVERT converttype()
  814. converttype();
  815. $from_date = escape_str($_REQUEST["from_date"]);
  816. $to_date = escape_str($_REQUEST["to_date"]);
  817. if (!($from_date != '' && $to_date != '')) {
  818. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  819. }
  820. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  821. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  822. }
  823. $zm_email = escape_str($_REQUEST["zm_email"]);
  824. $rm_email = escape_str($_REQUEST["rm_email"]);
  825. $am_email = escape_str($_REQUEST["am_email"]);
  826. $user_cond = '';
  827. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  828. $mcond = '';
  829. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  830. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  831. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  832. //AM
  833. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  834. } else {
  835. //PAN
  836. $user_cond = '';
  837. }
  838. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  839. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  840. $objPHPExcel = new PHPExcel();
  841. $objPHPExcel->setActiveSheetIndex(0);
  842. $row += 2;
  843. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ACCUMULATION REPORT");
  844. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  845. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  846. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  847. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  848. $row++;
  849. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  850. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  851. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  852. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  853. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  854. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  855. $row++;
  856. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row);
  857. setCellBorder($bordercells_arr, $objPHPExcel);
  858. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  859. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Points', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  860. $i = 0;
  861. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  862. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  863. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  864. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  865. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  866. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  867. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  868. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  869. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  870. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  871. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  872. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  873. $i = 0;
  874. foreach ($header_arr as $val) {
  875. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  876. }
  877. $top_50 = escape_str($_REQUEST["top_50"]);
  878. $limit_cond = '';
  879. if ($top_50 == '1') {
  880. $limit_cond = " LIMIT 0,50";
  881. }
  882. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,SUM(h.points) as sum_points,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER_EPOINTS_HISTORY . " as h JOIN " . TABLE_USER . " as u ON h.smpin=u.smpin LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='C' AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' " . $user_cond . " GROUP BY h.smpin ORDER BY sum_points DESC,u.userid ASC " . $limit_cond;
  883. $user_arr = $conn->getQueryValue($query_str);
  884. if (count($user_arr) > 0) {
  885. $sno = 1;
  886. foreach ($user_arr as $mkey => $res_user) {
  887. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Points','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  888. $i = 0;
  889. $row++;
  890. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  891. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  892. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  893. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  894. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  895. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  896. $sum_points = ($res_user->sum_points) ? $res_user->sum_points : '0';
  897. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sum_points);
  898. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  899. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  900. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  901. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  902. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  903. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  904. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  905. }
  906. }
  907. $objPHPExcel->getActiveSheet()->setTitle('ACCUMULATION REPORT');
  908. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  909. $fpath = "../" . S3_REPORT_URL;
  910. $filename = "user_accumulation_report_" . uniqid() . ".xlsx";
  911. $objWriter->save($fpath . $filename);
  912. //S3 UPLOAD
  913. //S3 LIB
  914. require dirname(__FILE__) . '/awsfileserver.php';
  915. //S3 OBJ
  916. $s3 = awsfileserver::connectS3();
  917. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  918. //DELETE AFTER MOVE TO S3
  919. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  920. $obj = new stdClass();
  921. $obj->key_name = S3_REPORT_URL . $filename;
  922. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  923. $returnarr = array("report_url" => $url);
  924. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  925. } else {
  926. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  927. }
  928. } catch (PDOException $e) {
  929. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  930. }
  931. }
  932. // redemption_report
  933. function redemption_report()
  934. {
  935. global $conn;
  936. try {
  937. $lang = "en_us";
  938. $pageData = $conn->loadJSON($lang);
  939. //$_SESSION["userid"]=1;
  940. if (isset($_SESSION["userid"])) {
  941. //CONVERT converttype()
  942. converttype();
  943. $from_date = escape_str($_REQUEST["from_date"]);
  944. $to_date = escape_str($_REQUEST["to_date"]);
  945. if (!($from_date != '' && $to_date != '')) {
  946. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  947. }
  948. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  949. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  950. }
  951. $zm_email = escape_str($_REQUEST["zm_email"]);
  952. $rm_email = escape_str($_REQUEST["rm_email"]);
  953. $am_email = escape_str($_REQUEST["am_email"]);
  954. $user_cond = '';
  955. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  956. $mcond = '';
  957. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  958. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  959. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  960. //AM
  961. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  962. } else {
  963. //PAN
  964. $user_cond = '';
  965. }
  966. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  967. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  968. $objPHPExcel = new PHPExcel();
  969. $objPHPExcel->setActiveSheetIndex(0);
  970. $row += 2;
  971. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "REDEMPTION REPORT");
  972. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  973. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  974. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  975. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  976. $row++;
  977. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  978. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  979. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  980. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  981. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  982. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  983. $row++;
  984. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row);
  985. setCellBorder($bordercells_arr, $objPHPExcel);
  986. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  987. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Points', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  988. $i = 0;
  989. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  990. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  991. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  992. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  993. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  994. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  995. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  996. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  997. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  998. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  999. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1000. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1001. $i = 0;
  1002. foreach ($header_arr as $val) {
  1003. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  1004. }
  1005. $limit_cond = '';
  1006. if ($top_50 == '1') {
  1007. $limit_cond = " LIMIT 0,50";
  1008. }
  1009. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,SUM(h.points) as sum_points,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER_EPOINTS_HISTORY . " as h JOIN " . TABLE_USER . " as u ON h.smpin=u.smpin LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='D' AND h.created_on>='" . $from_date . " 00:00:00' AND h.created_on<='" . $to_date . " 23:59:59' " . $user_cond . " GROUP BY h.smpin ORDER BY sum_points DESC,u.userid ASC " . $limit_cond;
  1010. $user_arr = $conn->getQueryValue($query_str);
  1011. if (count($user_arr) > 0) {
  1012. $sno = 1;
  1013. foreach ($user_arr as $mkey => $res_user) {
  1014. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Points','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  1015. $i = 0;
  1016. $row++;
  1017. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  1018. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1019. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  1020. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  1021. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  1022. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  1023. $sum_points = ($res_user->sum_points) ? $res_user->sum_points : '0';
  1024. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sum_points);
  1025. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1026. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  1027. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  1028. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  1029. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  1030. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  1031. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  1032. }
  1033. }
  1034. $objPHPExcel->getActiveSheet()->setTitle('REDEMPTION REPORT');
  1035. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1036. $fpath = "../" . S3_REPORT_URL;
  1037. $filename = "user_redemption_report_" . uniqid() . ".xlsx";
  1038. $objWriter->save($fpath . $filename);
  1039. //S3 UPLOAD
  1040. //S3 LIB
  1041. require dirname(__FILE__) . '/awsfileserver.php';
  1042. //S3 OBJ
  1043. $s3 = awsfileserver::connectS3();
  1044. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  1045. //DELETE AFTER MOVE TO S3
  1046. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  1047. $obj = new stdClass();
  1048. $obj->key_name = S3_REPORT_URL . $filename;
  1049. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  1050. $returnarr = array("report_url" => $url);
  1051. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  1052. } else {
  1053. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1054. }
  1055. } catch (PDOException $e) {
  1056. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1057. }
  1058. }
  1059. // redemptionapproved_report
  1060. function redemptionapproved_report()
  1061. {
  1062. global $conn;
  1063. try {
  1064. $lang = "en_us";
  1065. $pageData = $conn->loadJSON($lang);
  1066. //$_SESSION["userid"]=1;
  1067. if (isset($_SESSION["userid"])) {
  1068. //CONVERT converttype()
  1069. converttype();
  1070. $from_date = escape_str($_REQUEST["from_date"]);
  1071. $to_date = escape_str($_REQUEST["to_date"]);
  1072. if (!($from_date != '' && $to_date != '')) {
  1073. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  1074. }
  1075. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  1076. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  1077. }
  1078. $zm_email = escape_str($_REQUEST["zm_email"]);
  1079. $rm_email = escape_str($_REQUEST["rm_email"]);
  1080. $am_email = escape_str($_REQUEST["am_email"]);
  1081. $user_cond = '';
  1082. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  1083. $mcond = '';
  1084. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  1085. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  1086. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  1087. //AM
  1088. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  1089. } else {
  1090. //PAN
  1091. $user_cond = '';
  1092. }
  1093. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  1094. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  1095. $objPHPExcel = new PHPExcel();
  1096. $objPHPExcel->setActiveSheetIndex(0);
  1097. $row += 2;
  1098. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "APPROVAL REPORT");
  1099. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  1100. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1101. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1102. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  1103. $row++;
  1104. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  1105. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1106. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  1107. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  1108. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  1109. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  1110. $row++;
  1111. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row);
  1112. setCellBorder($bordercells_arr, $objPHPExcel);
  1113. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1114. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Points', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  1115. $i = 0;
  1116. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1117. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1118. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  1119. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1120. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1121. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1122. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1123. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1124. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1125. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1126. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1127. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1128. $i = 0;
  1129. foreach ($header_arr as $val) {
  1130. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  1131. }
  1132. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,SUM(h.points) as sum_points,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER_WALLET_APPROVE . " as h JOIN " . TABLE_USER . " as u ON h.smpin=u.smpin LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.is_approved='1' AND h.modified_on>='" . $from_date . " 00:00:00' AND h.modified_on<='" . $to_date . " 23:59:59' " . $user_cond . " GROUP BY h.smpin ORDER BY sum_points DESC,u.userid ASC ";
  1133. $user_arr = $conn->getQueryValue($query_str);
  1134. if (count($user_arr) > 0) {
  1135. $sno = 1;
  1136. foreach ($user_arr as $mkey => $res_user) {
  1137. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Last access','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  1138. $i = 0;
  1139. $row++;
  1140. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  1141. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1142. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  1143. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  1144. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  1145. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  1146. $sum_points = ($res_user->sum_points) ? $res_user->sum_points : '0';
  1147. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sum_points);
  1148. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1149. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  1150. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  1151. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  1152. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  1153. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  1154. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  1155. }
  1156. }
  1157. $objPHPExcel->getActiveSheet()->setTitle('APPROVAL REPORT');
  1158. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1159. $fpath = "../" . S3_REPORT_URL;
  1160. $filename = "user_approval_report_" . uniqid() . ".xlsx";
  1161. $objWriter->save($fpath . $filename);
  1162. //S3 UPLOAD
  1163. //S3 LIB
  1164. require dirname(__FILE__) . '/awsfileserver.php';
  1165. //S3 OBJ
  1166. $s3 = awsfileserver::connectS3();
  1167. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  1168. //DELETE AFTER MOVE TO S3
  1169. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  1170. $obj = new stdClass();
  1171. $obj->key_name = S3_REPORT_URL . $filename;
  1172. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  1173. $returnarr = array("report_url" => $url);
  1174. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  1175. } else {
  1176. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1177. }
  1178. } catch (PDOException $e) {
  1179. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1180. }
  1181. }
  1182. // assessment_report
  1183. function assessment_report()
  1184. {
  1185. global $conn;
  1186. try {
  1187. $lang = "en_us";
  1188. $pageData = $conn->loadJSON($lang);
  1189. //$_SESSION["userid"]=1;
  1190. if (isset($_SESSION["userid"])) {
  1191. $assessmentid = escape_str($_REQUEST["assessmentid"]);
  1192. $query_str = "SELECT `assessmentid`,`atype`, `lvl_id`, `assessmentname`,user_type,pass_score FROM " . TABLE_ASSESSMENT . " WHERE status=1 AND assettypeid=1 AND assessmentid='" . $assessmentid . "'";
  1193. $assessment_arr = $conn->getQueryValue($query_str);
  1194. if (!($assessmentid != '' && count($assessment_arr) > 0)) {
  1195. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  1196. }
  1197. $zm_email = escape_str($_REQUEST["zm_email"]);
  1198. $rm_email = escape_str($_REQUEST["rm_email"]);
  1199. $am_email = escape_str($_REQUEST["am_email"]);
  1200. $top_50 = escape_str($_REQUEST["top_50"]);
  1201. $user_cond = '';
  1202. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  1203. $mcond = '';
  1204. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  1205. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  1206. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  1207. //AM
  1208. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  1209. } else {
  1210. //PAN
  1211. $user_cond = '';
  1212. }
  1213. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  1214. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  1215. $objPHPExcel = new PHPExcel();
  1216. $objPHPExcel->setActiveSheetIndex(0);
  1217. $row += 2;
  1218. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT");
  1219. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":P" . $row);
  1220. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1221. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1222. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  1223. $row++;
  1224. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT :" . $assessment_arr[0]->assessmentname);
  1225. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":D" . $row);
  1226. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1227. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, '');
  1228. $row++;
  1229. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, 'O' . $row, "P" . $row);
  1230. setCellBorder($bordercells_arr, $objPHPExcel);
  1231. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1232. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Score', 'Timetaken in Minutes', 'Completed Time', 'Result Category', 'Result', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  1233. $i = 0;
  1234. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1235. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1236. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  1237. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1238. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1239. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1240. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1241. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1242. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1243. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1244. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1245. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1246. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1247. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1248. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1249. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1250. $i = 0;
  1251. foreach ($header_arr as $val) {
  1252. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  1253. }
  1254. $limit_cond = '';
  1255. if ($top_50 == '1') {
  1256. $limit_cond = " LIMIT 0,50";
  1257. }
  1258. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,highscore as score,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,ar.time_taken,ar.modified_on as completed_time FROM " . TABLE_ASSESSMENT_USER . " as au JOIN " . TABLE_ASSESSMENTRESULT . " as ar ON au.highscorearid=ar.arid JOIN " . TABLE_USER . " as u ON au.userid=u.userid LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND au.assessmentid='" . $assessmentid . "' AND au.highscorearid!=0 " . $user_cond . " GROUP BY au.userid ORDER BY au.highscore DESC,ar.time_taken ASC,au.modified_on ASC " . $limit_cond;
  1259. $user_arr = $conn->getQueryValue($query_str);
  1260. if (count($user_arr) > 0) {
  1261. $sno = 1;
  1262. foreach ($user_arr as $mkey => $res_user) {
  1263. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Score','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  1264. $i = 0;
  1265. $row++;
  1266. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  1267. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1268. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  1269. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  1270. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  1271. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  1272. $score = ($res_user->score) ? $res_user->score : '0';
  1273. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $score);
  1274. $timetaken = (isset($res_user->time_taken)) ? round($res_user->time_taken / 60) : "0";
  1275. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken);
  1276. $completed_time = (isset($res_user->completed_time)) ? date('d-m-Y h:i A', strtotime($res_user->completed_time)) : "-";
  1277. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $completed_time);
  1278. switch (true) {
  1279. case ($score < 50): $cat_str = 'Below 50%';
  1280. break;
  1281. case ($score >= 50 && $score < 80): $cat_str = '50% to 79%';
  1282. break;
  1283. case ($score >= 80): $cat_str = '80% to 100%';
  1284. break;
  1285. }
  1286. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $cat_str);
  1287. $result_str = ($score >= $assessment_arr[0]->pass_score) ? "Pass" : "Fail";
  1288. $column_str = getColumnFromNumber($i++) . $row;
  1289. if ($result_str == 'Pass') {
  1290. $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000");
  1291. } else {
  1292. $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  1293. }
  1294. $objPHPExcel->getActiveSheet()->SetCellValue($column_str, $result_str);
  1295. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1296. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  1297. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  1298. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  1299. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  1300. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  1301. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  1302. }
  1303. }
  1304. $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT');
  1305. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1306. $fpath = "../" . S3_REPORT_URL;
  1307. $filename = "assessment_report_" . uniqid() . ".xlsx";
  1308. $objWriter->save($fpath . $filename);
  1309. //S3 UPLOAD
  1310. //S3 LIB
  1311. require dirname(__FILE__) . '/awsfileserver.php';
  1312. //S3 OBJ
  1313. $s3 = awsfileserver::connectS3();
  1314. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  1315. //DELETE AFTER MOVE TO S3
  1316. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  1317. $obj = new stdClass();
  1318. $obj->key_name = S3_REPORT_URL . $filename;
  1319. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  1320. $returnarr = array("report_url" => $url);
  1321. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  1322. } else {
  1323. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1324. }
  1325. } catch (PDOException $e) {
  1326. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1327. }
  1328. }
  1329. // sales_report
  1330. function sales_report()
  1331. {
  1332. global $conn;
  1333. try {
  1334. $lang = "en_us";
  1335. $pageData = $conn->loadJSON($lang);
  1336. //$_SESSION["userid"]=1;
  1337. if (isset($_SESSION["userid"])) {
  1338. //CONVERT converttype()
  1339. converttype();
  1340. $from_date = escape_str($_REQUEST["from_date"]);
  1341. $to_date = escape_str($_REQUEST["to_date"]);
  1342. if (!($from_date != '' && $to_date != '')) {
  1343. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  1344. }
  1345. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  1346. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  1347. }
  1348. $zm_email = escape_str($_REQUEST["zm_email"]);
  1349. $rm_email = escape_str($_REQUEST["rm_email"]);
  1350. $am_email = escape_str($_REQUEST["am_email"]);
  1351. $user_cond = '';
  1352. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  1353. $mcond = '';
  1354. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  1355. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  1356. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  1357. //AM
  1358. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  1359. } else {
  1360. //PAN
  1361. $user_cond = '';
  1362. }
  1363. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  1364. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  1365. $objPHPExcel = new PHPExcel();
  1366. $objPHPExcel->setActiveSheetIndex(0);
  1367. $row += 2;
  1368. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SALES REPORT");
  1369. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  1370. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1371. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1372. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  1373. $row++;
  1374. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  1375. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1376. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  1377. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  1378. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  1379. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  1380. $row++;
  1381. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row);
  1382. setCellBorder($bordercells_arr, $objPHPExcel);
  1383. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1384. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Total Sales', 'Total Target', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  1385. $i = 0;
  1386. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1387. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1388. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  1389. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1390. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1391. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1392. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1393. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1394. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1395. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1396. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1397. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1398. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1399. $i = 0;
  1400. foreach ($header_arr as $val) {
  1401. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  1402. }
  1403. $top_50 = escape_str($_REQUEST["top_50"]);
  1404. $limit_cond = '';
  1405. if ($top_50 == '1') {
  1406. $limit_cond = " LIMIT 0,50";
  1407. }
  1408. //$query_str="SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,COALESCE(SUM(s.sales_count),0) as tot_sales,COALESCE(SUM(t.target),0) as tot_target,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM ".TABLE_USER." as u LEFT JOIN (SELECT * FROM ".DMS_EMPLOYEE_SALES." WHERE sale_date>='".$from_date."' AND sale_date<='".$to_date."' )as s ON s.smpin=u.smpin LEFT JOIN (SELECT * FROM ".TABLE_USER_SALETARGET." WHERE sale_month>='".$from_date."' AND sale_month<='".$to_date."' )as t ON t.smpin=u.smpin LEFT JOIN ".DMS_DEALER." as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 ".$user_cond." GROUP BY u.smpin ORDER BY tot_sales,tot_target DESC,u.userid ASC ".$limit_cond;
  1409. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER . " as u LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $user_cond . " GROUP BY u.smpin ORDER BY u.userid ASC " . $limit_cond;
  1410. $user_arr = $conn->getQueryValue($query_str);
  1411. if (count($user_arr) > 0) {
  1412. $sno = 1;
  1413. foreach ($user_arr as $mkey => $res_user) {
  1414. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Total Sales','Total Target','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  1415. $i = 0;
  1416. $row++;
  1417. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  1418. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1419. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  1420. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  1421. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  1422. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  1423. $getsales_str = "SELECT COALESCE(SUM(sales_count),0) as tot_sales FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' AND smpin='" . $res_user->smpin . "' GROUP BY smpin ";
  1424. $getsales_arr = $conn->getQueryValue($getsales_str);
  1425. $tot_sales = (count($getsales_arr) > 0 && $getsales_arr[0]->tot_sales > 0) ? $getsales_arr[0]->tot_sales : '0';
  1426. //$tot_sales=($res_user->tot_sales)?$res_user->tot_sales:'0';
  1427. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_sales);
  1428. $gettarget_str = "SELECT COALESCE(SUM(target),0) as tot_target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND smpin='" . $res_user->smpin . "' GROUP BY smpin ";
  1429. $gettarget_arr = $conn->getQueryValue($gettarget_str);
  1430. $tot_target = (count($gettarget_arr) > 0 && $gettarget_arr[0]->tot_target > 0) ? $gettarget_arr[0]->tot_target : '0';
  1431. //$tot_target=($res_user->tot_target)?$res_user->tot_target:'0';
  1432. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_target);
  1433. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1434. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  1435. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  1436. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  1437. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  1438. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  1439. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  1440. }
  1441. }
  1442. $objPHPExcel->getActiveSheet()->setTitle('SALES REPORT');
  1443. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1444. $fpath = "../" . S3_REPORT_URL;
  1445. $filename = "sales_report_" . uniqid() . ".xlsx";
  1446. $objWriter->save($fpath . $filename);
  1447. //S3 UPLOAD
  1448. //S3 LIB
  1449. require dirname(__FILE__) . '/awsfileserver.php';
  1450. //S3 OBJ
  1451. $s3 = awsfileserver::connectS3();
  1452. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  1453. //DELETE AFTER MOVE TO S3
  1454. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  1455. $obj = new stdClass();
  1456. $obj->key_name = S3_REPORT_URL . $filename;
  1457. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  1458. $returnarr = array("report_url" => $url);
  1459. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  1460. } else {
  1461. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1462. }
  1463. } catch (PDOException $e) {
  1464. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1465. }
  1466. }
  1467. // certification_report
  1468. function certification_report()
  1469. {
  1470. global $conn;
  1471. try {
  1472. $lang = "en_us";
  1473. $pageData = $conn->loadJSON($lang);
  1474. //$_SESSION["userid"]=1;
  1475. if (isset($_SESSION["userid"])) {
  1476. $zm_email = escape_str($_REQUEST["zm_email"]);
  1477. $rm_email = escape_str($_REQUEST["rm_email"]);
  1478. $am_email = escape_str($_REQUEST["am_email"]);
  1479. $user_cond = '';
  1480. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  1481. $mcond = '';
  1482. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  1483. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  1484. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  1485. //AM
  1486. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  1487. } else {
  1488. //PAN
  1489. $user_cond = '';
  1490. }
  1491. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  1492. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  1493. $objPHPExcel = new PHPExcel();
  1494. $objPHPExcel->setActiveSheetIndex(0);
  1495. $row += 2;
  1496. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CERTIFICATION REPORT");
  1497. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  1498. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1499. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1500. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  1501. $row++;
  1502. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  1503. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1504. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  1505. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  1506. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  1507. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  1508. $row++;
  1509. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, "O" . $row);
  1510. setCellBorder($bordercells_arr, $objPHPExcel);
  1511. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1512. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Base Status', 'Bronze Status', 'Silver Status', 'Gold Status', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  1513. $i = 0;
  1514. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1515. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1516. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  1517. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1518. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1519. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1520. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1521. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1522. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1523. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1524. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1525. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1526. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1527. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1528. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1529. $i = 0;
  1530. foreach ($header_arr as $val) {
  1531. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  1532. }
  1533. $tablejoin = '';
  1534. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  1535. if ($regtype == '1') {
  1536. //$query_str="SELECT modified_on FROM ".DMS_EMPLOYEE." ORDER BY modified_on DESC LIMIT 1 ";
  1537. //$data_arr=$conn->getQueryValue($query_str);
  1538. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  1539. $user_cond .= " AND e.is_current=1 ";
  1540. }
  1541. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,CASE WHEN a.id iS NULL THEN 'Not completed' ELSE 'Completed' END as base_status,CASE WHEN b.id iS NULL THEN 'Not completed' ELSE 'Completed' END as bronze_status,CASE WHEN c.id iS NULL THEN 'Not completed' ELSE 'Completed' END as silver_status,CASE WHEN e.id iS NULL THEN 'Not completed' ELSE 'Completed' END as gold_status,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER . " as u " . $tablejoin . " LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code LEFT JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=1 AND status=3) as a ON a.smpin=u.smpin LEFT JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=2 AND status=3) as b ON b.smpin=u.smpin LEFT JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=4 AND status=3) as c ON c.smpin=u.smpin LEFT JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=6 AND status=3) as e ON e.smpin=u.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND u.status=1 " . $user_cond . " GROUP BY u.smpin ORDER BY gold_status ASC,silver_status ASC,bronze_status ASC,base_status ASC,userid DESC ";
  1542. $user_arr = $conn->getQueryValue($query_str);
  1543. if (count($user_arr) > 0) {
  1544. $sno = 1;
  1545. foreach ($user_arr as $mkey => $res_user) {
  1546. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Total Sales','Total Target','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  1547. $i = 0;
  1548. $row++;
  1549. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  1550. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1551. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  1552. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  1553. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  1554. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  1555. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->base_status);
  1556. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->bronze_status);
  1557. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->silver_status);
  1558. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->gold_status);
  1559. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1560. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  1561. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  1562. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  1563. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  1564. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  1565. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  1566. }
  1567. }
  1568. $objPHPExcel->getActiveSheet()->setTitle('CERTIFICATION REPORT');
  1569. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1570. $fpath = "../" . S3_REPORT_URL;
  1571. $filename = "certification_" . uniqid() . ".xlsx";
  1572. $objWriter->save($fpath . $filename);
  1573. //S3 UPLOAD
  1574. //S3 LIB
  1575. require dirname(__FILE__) . '/awsfileserver.php';
  1576. //S3 OBJ
  1577. $s3 = awsfileserver::connectS3();
  1578. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  1579. //DELETE AFTER MOVE TO S3
  1580. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  1581. $obj = new stdClass();
  1582. $obj->key_name = S3_REPORT_URL . $filename;
  1583. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  1584. $returnarr = array("report_url" => $url);
  1585. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  1586. } else {
  1587. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1588. }
  1589. } catch (PDOException $e) {
  1590. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1591. }
  1592. }
  1593. // setsalestarget_report
  1594. function setsalestarget_report()
  1595. {
  1596. global $conn;
  1597. try {
  1598. $lang = "en_us";
  1599. $pageData = $conn->loadJSON($lang);
  1600. //$_SESSION["userid"]=1;
  1601. if (isset($_SESSION["userid"])) {
  1602. $month = escape_str($_REQUEST["month"]);
  1603. $year = escape_str($_REQUEST["year"]);
  1604. if (!($month != '' && $year != '')) {
  1605. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  1606. }
  1607. $from_date = date('Y-m-d', strtotime($year . "-" . $month . "-01"));
  1608. $to_date = date('Y-m-t', strtotime($year . "-" . $month . "-01"));
  1609. $zm_email = escape_str($_REQUEST["zm_email"]);
  1610. $rm_email = escape_str($_REQUEST["rm_email"]);
  1611. $am_email = escape_str($_REQUEST["am_email"]);
  1612. $user_cond = '';
  1613. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  1614. $mcond = '';
  1615. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  1616. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  1617. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  1618. //AM
  1619. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  1620. } else {
  1621. //PAN
  1622. $user_cond = '';
  1623. }
  1624. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  1625. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  1626. $objPHPExcel = new PHPExcel();
  1627. $objPHPExcel->setActiveSheetIndex(0);
  1628. $row += 2;
  1629. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SET SALES REPORT");
  1630. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  1631. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1632. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1633. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  1634. $row++;
  1635. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "MONTH :");
  1636. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1637. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('M-Y', strtotime($from_date)));
  1638. $row++;
  1639. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row);
  1640. setCellBorder($bordercells_arr, $objPHPExcel);
  1641. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1642. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Email', 'Total Target', 'Target Status', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  1643. $i = 0;
  1644. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1645. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1646. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  1647. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1648. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1649. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1650. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1651. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1652. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1653. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1654. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1655. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1656. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1657. $i = 0;
  1658. foreach ($header_arr as $val) {
  1659. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  1660. }
  1661. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`, COALESCE(SUM(t.target),0) as tot_target,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER . " as u LEFT JOIN (SELECT * FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' )as t ON t.smpin=u.smpin LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $user_cond . " GROUP BY u.smpin ORDER BY tot_target DESC,u.userid ASC ";
  1662. $user_arr = $conn->getQueryValue($query_str);
  1663. if (count($user_arr) > 0) {
  1664. $sno = 1;
  1665. foreach ($user_arr as $mkey => $res_user) {
  1666. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Total Sales','Total Target','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  1667. $i = 0;
  1668. $row++;
  1669. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  1670. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1671. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  1672. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  1673. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  1674. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  1675. $tot_target = ($res_user->tot_target) ? $res_user->tot_target : '0';
  1676. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_target);
  1677. $statusquery_str = "SELECT * FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE smpin='" . $res_user->smpin . "' AND sale_month='" . $from_date . "' ORDER BY id DESC LIMIT 1";
  1678. $sales_arr = $conn->getQueryValue($statusquery_str);
  1679. if (count($sales_arr) > 0) {
  1680. switch ($sales_arr[0]->status) {
  1681. case '1':
  1682. $sale_status_str = 'Waiting';
  1683. break;
  1684. case '2':
  1685. $sale_status_str = 'Approval';
  1686. break;
  1687. case '3':
  1688. $sale_status_str = 'Modification';
  1689. break;
  1690. }
  1691. } else {
  1692. $data_arr[$ukey]->sale_status = '0';
  1693. $data_arr[$ukey]->sale_status_str = 'No Action';
  1694. }
  1695. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sale_status_str);
  1696. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1697. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  1698. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  1699. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  1700. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  1701. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  1702. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  1703. }
  1704. }
  1705. $objPHPExcel->getActiveSheet()->setTitle('SALES REPORT');
  1706. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1707. $fpath = "../" . S3_REPORT_URL;
  1708. $filename = "setsales_report_" . uniqid() . ".xlsx";
  1709. $objWriter->save($fpath . $filename);
  1710. //S3 UPLOAD
  1711. //S3 LIB
  1712. require dirname(__FILE__) . '/awsfileserver.php';
  1713. //S3 OBJ
  1714. $s3 = awsfileserver::connectS3();
  1715. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  1716. //DELETE AFTER MOVE TO S3
  1717. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  1718. $obj = new stdClass();
  1719. $obj->key_name = S3_REPORT_URL . $filename;
  1720. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  1721. $returnarr = array("report_url" => $url);
  1722. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  1723. } else {
  1724. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1725. }
  1726. } catch (PDOException $e) {
  1727. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1728. }
  1729. }
  1730. // activeinactive_report
  1731. function activeinactive_report()
  1732. {
  1733. global $conn;
  1734. try {
  1735. $lang = "en_us";
  1736. $pageData = $conn->loadJSON($lang);
  1737. //$_SESSION["userid"]=1;
  1738. if (isset($_SESSION["userid"])) {
  1739. $zm_email = escape_str($_REQUEST["zm_email"]);
  1740. $rm_email = escape_str($_REQUEST["rm_email"]);
  1741. $am_email = escape_str($_REQUEST["am_email"]);
  1742. $dealer_code = escape_str($_REQUEST["dealer_code"]);
  1743. $user_cond = '';
  1744. if (($dealer_code != 'all' && $dealer_code != '') && ($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  1745. $mcond = '';
  1746. $mcond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND dealer_code='" . $dealer_code . "'" : '';
  1747. $mcond .= ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  1748. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  1749. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  1750. //AM
  1751. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  1752. } else {
  1753. //PAN
  1754. $user_cond = '';
  1755. }
  1756. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  1757. $user_reg_cond = '';
  1758. if ($regtype == '1') {
  1759. //$query_str="SELECT modified_on FROM ".DMS_EMPLOYEE." ORDER BY modified_on DESC LIMIT 1 ";
  1760. //$data_arr=$conn->getQueryValue($query_str);
  1761. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  1762. $user_reg_cond = " AND e.is_current=1 ";
  1763. }
  1764. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  1765. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  1766. $objPHPExcel = new PHPExcel();
  1767. $objPHPExcel->setActiveSheetIndex(0);
  1768. $row += 2;
  1769. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER ACTIVE/INACTIVE");
  1770. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  1771. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1772. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1773. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  1774. $row++;
  1775. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row);
  1776. setCellBorder($bordercells_arr, $objPHPExcel);
  1777. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1778. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Register Date & Time', 'Status', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  1779. $i = 0;
  1780. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1781. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1782. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  1783. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1784. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1785. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1786. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1787. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1788. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1789. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1790. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1791. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1792. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1793. $i = 0;
  1794. foreach ($header_arr as $val) {
  1795. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  1796. }
  1797. //$query_str="SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.created_on,u.status,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM ".TABLE_USER." u LEFT JOIN ".DMS_DEALER." d ON u.dealer_code=d.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND u.created_on>='".$from_date." 00:00:00' AND u.created_on<='".$to_date." 23:59:59' ".$user_cond." ";
  1798. $query_str = "SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.created_on,u.status,u.segment,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER . " u LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code " . $tablejoin . " WHERE d.status=1 AND d.is_deleted='0' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $user_cond . $user_reg_cond . " ";
  1799. $user_arr = $conn->getQueryValue($query_str);
  1800. if (count($user_arr) > 0) {
  1801. $sno = 1;
  1802. foreach ($user_arr as $mkey => $res_user) {
  1803. $i = 0;
  1804. $row++;
  1805. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  1806. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1807. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  1808. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  1809. switch ($res_user->segment) {
  1810. case '0':$segment_str = 'Student Learner';
  1811. break;
  1812. case '1':$segment_str = 'Parents/Guardian';
  1813. break;
  1814. case '2':$segment_str = 'Instructor';
  1815. break;
  1816. default:$segment_str = 'Student Learner';
  1817. break;
  1818. }
  1819. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  1820. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  1821. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1822. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  1823. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1824. $status_str = ($res_user->status == 1) ? "Active" : "Inactive";
  1825. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $status_str);
  1826. if ($status_str == 'Active') {
  1827. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000");
  1828. } else if ($status_str == 'Inactive') {
  1829. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  1830. }
  1831. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  1832. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  1833. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  1834. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  1835. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  1836. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  1837. }
  1838. }
  1839. $objPHPExcel->getActiveSheet()->setTitle('USER ACTIVE & INACTIVE REPORT');
  1840. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1841. $fpath = "../" . S3_REPORT_URL;
  1842. $filename = "user_status_report_" . uniqid() . ".xlsx";
  1843. $objWriter->save($fpath . $filename);
  1844. //S3 UPLOAD
  1845. //S3 LIB
  1846. require dirname(__FILE__) . '/awsfileserver.php';
  1847. //S3 OBJ
  1848. $s3 = awsfileserver::connectS3();
  1849. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  1850. //DELETE AFTER MOVE TO S3
  1851. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  1852. $obj = new stdClass();
  1853. $obj->key_name = S3_REPORT_URL . $filename;
  1854. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  1855. $returnarr = array("report_url" => $url);
  1856. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  1857. } else {
  1858. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  1859. }
  1860. } catch (PDOException $e) {
  1861. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  1862. }
  1863. }
  1864. function getmonthReportFormat($from_date, $to_date)
  1865. {
  1866. $data_arr = array();
  1867. $data_arr = array('type' => 'month');
  1868. $data_arr['date'][] = $from_date;
  1869. $temp_date = date('Y-m', strtotime($from_date)) . "-01";
  1870. $end_month = date('Y-m', strtotime($to_date)) . "-01";
  1871. while (strtotime($temp_date) < strtotime($end_month)) {
  1872. $temp_date = date('Y-m', strtotime('+1 month', strtotime($temp_date))) . "-01";
  1873. $data_arr['date'][] = $temp_date;
  1874. }
  1875. $data_arr['from_date'] = $from_date;
  1876. $data_arr['to_date'] = $to_date;
  1877. return $data_arr;
  1878. }
  1879. // attrition_report
  1880. function attrition_report()
  1881. {
  1882. global $conn;
  1883. try {
  1884. $lang = "en_us";
  1885. $pageData = $conn->loadJSON($lang);
  1886. //$_SESSION["userid"]=1;
  1887. if (isset($_SESSION["userid"])) {
  1888. //CONVERT converttype()
  1889. converttype();
  1890. $from_date = escape_str($_REQUEST["from_date"]);
  1891. $to_date = escape_str($_REQUEST["to_date"]);
  1892. if (!($from_date != '' && $to_date != '')) {
  1893. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  1894. }
  1895. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  1896. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  1897. }
  1898. $data_arr = getmonthReportFormat($from_date, $to_date);
  1899. $zm_email = escape_str($_REQUEST["zm_email"]);
  1900. $rm_email = escape_str($_REQUEST["rm_email"]);
  1901. $am_email = escape_str($_REQUEST["am_email"]);
  1902. $user_cond = '';
  1903. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  1904. $mcond = '';
  1905. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  1906. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  1907. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  1908. //AM
  1909. $user_cond = " AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  1910. } else {
  1911. //PAN
  1912. $user_cond = '';
  1913. }
  1914. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  1915. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  1916. $objPHPExcel = new PHPExcel();
  1917. $objPHPExcel->setActiveSheetIndex(0);
  1918. $row += 2;
  1919. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER ACTIVE/INACTIVE");
  1920. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  1921. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1922. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  1923. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  1924. //
  1925. // $row++;
  1926. //
  1927. // $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"FROM DATE :");
  1928. // $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  1929. // $objPHPExcel->getActiveSheet()->SetCellValue('B'.$row,date('d-M-Y',strtotime($from_date)));
  1930. //
  1931. //
  1932. // $objPHPExcel->getActiveSheet()->SetCellValue('C'.$row,"TO DATE :");
  1933. // $objPHPExcel->getActiveSheet()->getStyle("C".$row)->getFont()->setBold(true);
  1934. // $objPHPExcel->getActiveSheet()->SetCellValue('D'.$row,date('d-M-Y',strtotime($to_date)));
  1935. $row++;
  1936. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row);
  1937. setCellBorder($bordercells_arr, $objPHPExcel);
  1938. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1939. $header_arr = array('S.No', 'Month & year', 'Active user', 'Inactive user', 'Attrition');
  1940. $i = 0;
  1941. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1942. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1943. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1944. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1945. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1946. $i = 0;
  1947. foreach ($header_arr as $val) {
  1948. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  1949. }
  1950. $label_arr = array();
  1951. $valarr = array();
  1952. $sno = 1;
  1953. //INCATIVE COND
  1954. $inactivecond = " AND (module='AUTOMATIC INACTIVE' OR module='MANUAL INACTIVE')";
  1955. foreach ($data_arr['date'] as $res) {
  1956. $la_str = strtoupper(date('M Y', strtotime($res)));
  1957. $label_arr[] = $la_str;
  1958. //STARTING USER COUNT
  1959. $startquery_str = "SELECT COUNT(userid) as ucount FROM " . TABLE_USER . " WHERE role>7 and role!=14 and role!=16 AND is_deleted=0 AND created_on<'" . $res . " 00:00:00' " . $user_cond . " LIMIT 1 ";
  1960. $startresult_arr = $conn->getQueryValue($startquery_str);
  1961. $startcount = (count($startresult_arr) > 0) ? $startresult_arr[0]->ucount : '0';
  1962. //ACTIVE USERS
  1963. $activequery_str = "SELECT COUNT(userid) as ucount FROM " . TABLE_USER . " WHERE role>7 and role!=14 and role!=16 AND is_deleted=0 AND DATE_FORMAT(created_on,'%Y-%m')='" . date('Y-m', strtotime($res)) . "' " . $user_cond . " LIMIT 1 ";
  1964. $activeresult_arr = $conn->getQueryValue($activequery_str);
  1965. $activecount = (count($activeresult_arr) > 0) ? $activeresult_arr[0]->ucount : '0';
  1966. //INACTIVE USERS
  1967. $inactivequery_str = "SELECT COUNT(u.userid) as ucount FROM (SELECT userid FROM " . TABLE_USER . " WHERE role>7 and role!=14 and role!=16 AND is_deleted=0 " . $user_cond . ") as u JOIN " . TABLE_USER_LOG . " as l ON u.userid=l.userid WHERE DATE_FORMAT(created_on,'%Y-%m')='" . date('Y-m', strtotime($res)) . "' " . $inactivecond . " LIMIT 1 ";
  1968. $inactiveresult_arr = $conn->getQueryValue($inactivequery_str);
  1969. $inactivecount = (count($inactiveresult_arr) > 0) ? $inactiveresult_arr[0]->ucount : '0';
  1970. $divideby = $startcount + $activecount;
  1971. $rate = ($divideby > 0) ? (($inactivecount * 100) / ($divideby)) : 0;
  1972. $i = 0;
  1973. $row++;
  1974. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  1975. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1976. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $la_str);
  1977. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $activecount);
  1978. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $inactivecount);
  1979. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $rate);
  1980. }
  1981. $objPHPExcel->getActiveSheet()->setTitle('ATTRITION REPORT');
  1982. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1983. $fpath = "../" . S3_REPORT_URL;
  1984. $filename = "attrition_report_" . uniqid() . ".xlsx";
  1985. $objWriter->save($fpath . $filename);
  1986. //S3 UPLOAD
  1987. //S3 LIB
  1988. require dirname(__FILE__) . '/awsfileserver.php';
  1989. //S3 OBJ
  1990. $s3 = awsfileserver::connectS3();
  1991. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  1992. //DELETE AFTER MOVE TO S3
  1993. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  1994. $obj = new stdClass();
  1995. $obj->key_name = S3_REPORT_URL . $filename;
  1996. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  1997. $returnarr = array("report_url" => $url);
  1998. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  1999. } else {
  2000. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  2001. }
  2002. } catch (PDOException $e) {
  2003. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  2004. }
  2005. }
  2006. // customerexperiencelogin
  2007. function customerexperiencelogin()
  2008. {
  2009. global $conn;
  2010. try {
  2011. $lang = "en_us";
  2012. $pageData = $conn->loadJSON($lang);
  2013. //$_SESSION["userid"]=1;
  2014. if (isset($_SESSION["userid"])) {
  2015. $page = escape_str($_REQUEST["page"]);
  2016. $zm_email = escape_str($_REQUEST["zm_email"]);
  2017. $rm_email = escape_str($_REQUEST["rm_email"]);
  2018. $am_email = escape_str($_REQUEST["am_email"]);
  2019. $from_date = escape_str($_REQUEST["from_date"]);
  2020. $to_date = escape_str($_REQUEST["to_date"]);
  2021. if (!($from_date != '' && $to_date != '')) {
  2022. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  2023. }
  2024. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  2025. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  2026. }
  2027. $user_cond = '';
  2028. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  2029. $mcond = '';
  2030. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  2031. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  2032. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  2033. //AM
  2034. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  2035. } else {
  2036. //PAN
  2037. $user_cond = '';
  2038. }
  2039. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  2040. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  2041. $objPHPExcel = new PHPExcel();
  2042. $objPHPExcel->setActiveSheetIndex(0);
  2043. $row += 2;
  2044. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CUSTOMER EXPERIENCE REPORT");
  2045. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":N" . $row);
  2046. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  2047. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  2048. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  2049. $row++;
  2050. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row);
  2051. setCellBorder($bordercells_arr, $objPHPExcel);
  2052. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  2053. $header_arr = array('S.No', 'Name', 'Email', 'Mobile', 'Age', 'SMPIN', 'DSE Name', 'Created on', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM'); //12
  2054. $i = 0;
  2055. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2056. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2057. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2058. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10');
  2059. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10');
  2060. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10'); //smpin
  2061. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //dse
  2062. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2063. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2064. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2065. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2066. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2067. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2068. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2069. $i = 0;
  2070. foreach ($header_arr as $val) {
  2071. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  2072. }
  2073. $query_str = "SELECT u.`userid`,c.`salutation`,c. `firstname`, c.`lastname`, c.`email`,c. `mobile`,c. `age`,c.smpin,c.dsename,c.created_on,d.`zone`, d.`zm_name`, d.`rm_name`,d.`am_name` FROM " . TABLE__CUSTOMEREXP . " as c JOIN " . TABLE_USER . " as u ON c.userid=u.userid JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.is_deleted=0 AND c.created_on>='" . $from_date . " 00:00:00' AND c.created_on<='" . $to_date . " 23:59:59' " . $user_cond . " ORDER BY c.created_on ASC ";
  2074. $user_arr = $conn->getQueryValue($query_str);
  2075. if (count($user_arr) > 0) {
  2076. $sno = 1;
  2077. foreach ($user_arr as $mkey => $res_user) {
  2078. $i = 0;
  2079. $row++;
  2080. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  2081. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->salutation . " " . $res_user->firstname . " " . $res_user->lastname);
  2082. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->email);
  2083. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile);
  2084. $objPHPExcel->getActiveSheet()->getStyle('D' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2085. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->age);
  2086. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  2087. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dsename);
  2088. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  2089. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  2090. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2091. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  2092. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  2093. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  2094. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  2095. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  2096. }
  2097. }
  2098. $objPHPExcel->getActiveSheet()->setTitle('CUSTOMER EXPERIENCE REPORT');
  2099. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  2100. $fpath = "../" . S3_REPORT_URL;
  2101. $filename = "customer_experience_report_" . uniqid() . ".xlsx";
  2102. $objWriter->save($fpath . $filename);
  2103. //S3 UPLOAD
  2104. //S3 LIB
  2105. require dirname(__FILE__) . '/awsfileserver.php';
  2106. //S3 OBJ
  2107. $s3 = awsfileserver::connectS3();
  2108. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  2109. //DELETE AFTER MOVE TO S3
  2110. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  2111. $obj = new stdClass();
  2112. $obj->key_name = S3_REPORT_URL . $filename;
  2113. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  2114. $returnarr = array("report_url" => $url);
  2115. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  2116. } else {
  2117. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  2118. }
  2119. } catch (PDOException $e) {
  2120. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  2121. }
  2122. }
  2123. // enquiry
  2124. function enquiry()
  2125. {
  2126. global $conn;
  2127. try {
  2128. $lang = "en_us";
  2129. $pageData = $conn->loadJSON($lang);
  2130. //$_SESSION["userid"]=1;
  2131. if (isset($_SESSION["userid"])) {
  2132. $page = escape_str($_REQUEST["page"]);
  2133. $zm_email = escape_str($_REQUEST["zm_email"]);
  2134. $rm_email = escape_str($_REQUEST["rm_email"]);
  2135. $am_email = escape_str($_REQUEST["am_email"]);
  2136. $from_date = escape_str($_REQUEST["from_date"]);
  2137. $to_date = escape_str($_REQUEST["to_date"]);
  2138. if (!($from_date != '' && $to_date != '')) {
  2139. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  2140. }
  2141. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  2142. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  2143. }
  2144. $user_cond = '';
  2145. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  2146. $mcond = '';
  2147. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  2148. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  2149. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  2150. //AM
  2151. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  2152. } else {
  2153. //PAN
  2154. $user_cond = '';
  2155. }
  2156. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  2157. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  2158. $objPHPExcel = new PHPExcel();
  2159. $objPHPExcel->setActiveSheetIndex(0);
  2160. $row += 2;
  2161. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CUSTOMER EXPERIENCE REPORT");
  2162. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":L" . $row);
  2163. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  2164. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  2165. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  2166. $row++;
  2167. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row);
  2168. setCellBorder($bordercells_arr, $objPHPExcel);
  2169. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  2170. $header_arr = array('S.No', 'Name', 'Email', 'Mobile', 'Model', "Variant", 'Created on', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM'); //12
  2171. $i = 0;
  2172. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2173. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2174. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2175. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2176. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2177. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2178. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2179. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2180. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2181. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2182. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2183. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2184. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2185. $i = 0;
  2186. foreach ($header_arr as $val) {
  2187. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  2188. }
  2189. $query_str = "SELECT c.`name`, c.`mobile`, c.`email`,c.`model_id`, c.`variant_id`, d.`dealer_code`, d.`dealer_name`,d. `city`, d.`state`, d.`zm_name`, d.`rm_name`, d.`am_name`,m.model_name,v.title as variant_name FROM " . TABLE_EXPLORE_ENQUIRY . " as c JOIN " . TABLE_USER . " as u ON c.user_id=u.userid LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code JOIN " . TABLE_COMPARE_MODEL . " as m ON m.model_id=c.model_id JOIN " . TABLE_MODEL_VARIANT . " v ON c.variant_id=v.id WHERE u.is_deleted=0 AND c.created_on>='" . $from_date . " 00:00:00' AND c.created_on<='" . $to_date . " 23:59:59' " . $user_cond . " ORDER BY c.created_on ASC ";
  2190. $user_arr = $conn->getQueryValue($query_str);
  2191. if (count($user_arr) > 0) {
  2192. $sno = 1;
  2193. foreach ($user_arr as $mkey => $res_user) {
  2194. $i = 0;
  2195. $row++;
  2196. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  2197. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->name);
  2198. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile);
  2199. $objPHPExcel->getActiveSheet()->getStyle('C' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2200. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->model_name);
  2201. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->variant_name);
  2202. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  2203. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  2204. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2205. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  2206. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  2207. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  2208. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  2209. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  2210. }
  2211. }
  2212. $objPHPExcel->getActiveSheet()->setTitle('ENQUIRY REPORT');
  2213. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  2214. $fpath = "../" . S3_REPORT_URL;
  2215. $filename = "enquiry_report_" . uniqid() . ".xlsx";
  2216. $objWriter->save($fpath . $filename);
  2217. //S3 UPLOAD
  2218. //S3 LIB
  2219. require dirname(__FILE__) . '/awsfileserver.php';
  2220. //S3 OBJ
  2221. $s3 = awsfileserver::connectS3();
  2222. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  2223. //DELETE AFTER MOVE TO S3
  2224. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  2225. $obj = new stdClass();
  2226. $obj->key_name = S3_REPORT_URL . $filename;
  2227. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  2228. $returnarr = array("report_url" => $url);
  2229. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  2230. } else {
  2231. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  2232. }
  2233. } catch (PDOException $e) {
  2234. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  2235. }
  2236. }
  2237. // user_registration_mail
  2238. function user_registration_mail()
  2239. {
  2240. global $conn;
  2241. try {
  2242. $lang = "en_us";
  2243. $pageData = $conn->loadJSON($lang);
  2244. $user_cond = '';
  2245. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  2246. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  2247. $objPHPExcel = new PHPExcel();
  2248. $objPHPExcel->setActiveSheetIndex(0);
  2249. $row += 2;
  2250. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER REGISTRATION");
  2251. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":Q" . $row);
  2252. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  2253. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  2254. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  2255. $row++;
  2256. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, 'L' . $row, 'M' . $row, 'N' . $row, 'O' . $row, 'P' . $row, 'Q' . $row);
  2257. setCellBorder($bordercells_arr, $objPHPExcel);
  2258. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  2259. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Register Date & Time', 'Status', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM', 'DOJ', '(DOJ - HYPER-M Reg Date)in days', '(DOJ - Current Date)in days', '(HYPER-M App Date - DOJ)in days', 'Segment');
  2260. $i = 0;
  2261. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2262. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2263. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2264. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2265. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2266. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2267. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2268. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2269. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2270. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2271. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2272. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2273. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2274. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2275. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2276. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2277. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2278. $i = 0;
  2279. foreach ($header_arr as $val) {
  2280. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  2281. }
  2282. $user_cond .= " AND e.is_current=1";
  2283. $query_str = "SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.doj,u.status,u.created_on,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,e.created_on as emp_created_on,e.segment FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $user_cond . " ";
  2284. $user_arr = $conn->getQueryValue($query_str);
  2285. if (count($user_arr) > 0) {
  2286. $sno = 1;
  2287. foreach ($user_arr as $mkey => $res_user) {
  2288. $i = 0;
  2289. $row++;
  2290. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  2291. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2292. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  2293. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  2294. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  2295. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2296. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  2297. $status = ($res_user->status == '1') ? "Active" : "Inactive";
  2298. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $status);
  2299. if ($status == 'Active') {
  2300. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000");
  2301. } else if ($status == 'Inactive') {
  2302. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  2303. }
  2304. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2305. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  2306. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  2307. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  2308. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  2309. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  2310. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  2311. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->doj);
  2312. $doj_date = $res_user->doj;
  2313. $reg_date = $res_user->created_on;
  2314. $emp_created_date = $res_user->emp_created_on;
  2315. $doj_date_str = new DateTime($doj_date);
  2316. $reg_date_str = new DateTime($reg_date);
  2317. $diff = $reg_date_str->diff($doj_date_str)->format("%a");
  2318. $column_row = getColumnFromNumber($i++) . $row;
  2319. $objPHPExcel->getActiveSheet()->SetCellValue($column_row, $diff);
  2320. if ($diff > 7) {
  2321. $objPHPExcel->getActiveSheet()->getStyle($column_row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  2322. //$objPHPExcel->getActiveSheet()->getStyle($column_row)->getFont()->setSize(12)->getColor()->setRGB("FFFFFF");
  2323. }
  2324. $cur_date_str = new DateTime(CUR_DATE);
  2325. $diff2 = $cur_date_str->diff($doj_date_str)->format("%a");
  2326. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $diff2);
  2327. $doj_date_str = new DateTime($doj_date);
  2328. $emp_created_date_str = new DateTime($emp_created_date);
  2329. $diff3 = $emp_created_date_str->diff($doj_date_str)->format("%a");
  2330. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $diff3);
  2331. $segment_str = '';
  2332. switch ($res_user->segment) {
  2333. case '1':$segment_str = 'Parents/Guardian';
  2334. break;
  2335. case '2':$segment_str = 'Instructor';
  2336. break;
  2337. }
  2338. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  2339. }
  2340. }
  2341. $objPHPExcel->getActiveSheet()->setTitle('REGISTRATION REPORT');
  2342. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  2343. $fpath = "../" . S3_REPORT_URL;
  2344. $filename = "user_registration_report_" . uniqid() . ".xlsx";
  2345. $objWriter->save($fpath . $filename);
  2346. //S3 UPLOAD
  2347. //S3 LIB
  2348. require dirname(__FILE__) . '/awsfileserver.php';
  2349. //S3 OBJ
  2350. $s3 = awsfileserver::connectS3();
  2351. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  2352. //DELETE AFTER MOVE TO S3
  2353. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  2354. $obj = new stdClass();
  2355. $obj->key_name = S3_REPORT_URL . $filename;
  2356. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  2357. $returnarr = array("report_url" => $url);
  2358. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  2359. } catch (PDOException $e) {
  2360. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  2361. }
  2362. }
  2363. //emp_activeinactive_mail
  2364. function emp_activeinactive_mail()
  2365. {
  2366. global $conn;
  2367. try {
  2368. $lang = "en_us";
  2369. $pageData = $conn->loadJSON($lang);
  2370. $user_cond = '';
  2371. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  2372. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  2373. $objPHPExcel = new PHPExcel();
  2374. $objPHPExcel->setActiveSheetIndex(0);
  2375. $row += 2;
  2376. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "EMPLOYEE STATUS REPORT");
  2377. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":N" . $row);
  2378. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  2379. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  2380. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  2381. $row++;
  2382. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, 'L' . $row, 'M' . $row, 'N' . $row, 'O' . $row);
  2383. setCellBorder($bordercells_arr, $objPHPExcel);
  2384. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  2385. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Created on', 'Register Date & Time', 'Status', 'Inactivated On', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  2386. $i = 0;
  2387. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2388. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2389. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2390. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2391. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2392. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2393. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2394. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2395. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2396. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2397. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2398. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2399. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2400. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2401. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2402. $i = 0;
  2403. foreach ($header_arr as $val) {
  2404. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  2405. }
  2406. $query_str = "SELECT e.smpin,e.fname,e.lname,e.mobile,e.dealer_code,e.segment,u.userid,u.status,u.is_deleted,u.inactivated_on,u.created_on,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,e.created_on as emp_created_on FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER . " u ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.is_current=1 GROUP BY e.id ";
  2407. $user_arr = $conn->getQueryValue($query_str);
  2408. if (count($user_arr) > 0) {
  2409. $sno = 1;
  2410. foreach ($user_arr as $mkey => $res_user) {
  2411. // $header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Created on','Register Date & Time','Status','Inactivated On','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  2412. $i = 0;
  2413. $row++;
  2414. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  2415. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2416. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  2417. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  2418. $segment_str = '-';
  2419. switch ($res_user->segment) {
  2420. case '1':$segment_str = 'Parents/Guardian';
  2421. break;
  2422. case '2':$segment_str = 'Instructor';
  2423. break;
  2424. }
  2425. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  2426. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile);
  2427. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2428. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->emp_created_on)));
  2429. $reg_created_on = ($res_user->userid) ? date('d-m-Y h:i A', strtotime($res_user->created_on)) : '';
  2430. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2431. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $reg_created_on);
  2432. $inactive_on = '';
  2433. if ($res_user->userid) {
  2434. $status = ($res_user->status == '1') ? "Active" : "Inactive";
  2435. if ($status == 'Active' && $res_user->is_deleted == '1') {
  2436. $status = "Deleted";
  2437. }
  2438. $inactive_on = ($status == 'Inactive') ? date('d-m-Y h:i A', strtotime($res_user->inactivated_on)) : "";
  2439. } else {
  2440. $status = "Not registered";
  2441. }
  2442. if ($status == 'Active') {
  2443. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000");
  2444. } else if ($status == 'Inactive') {
  2445. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  2446. } else if ($status == 'Deleted') {
  2447. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  2448. } else {
  2449. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("7676FF");
  2450. }
  2451. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $status);
  2452. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $inactive_on);
  2453. $objPHPExcel->getActiveSheet()->getStyle('I' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2454. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  2455. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  2456. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  2457. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  2458. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  2459. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  2460. }
  2461. }
  2462. $objPHPExcel->getActiveSheet()->setTitle('EMPLOYEE STATUS REPORT');
  2463. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  2464. $fpath = "../" . S3_REPORT_URL;
  2465. $filename = "employee_status_report_" . uniqid() . ".xlsx";
  2466. $objWriter->save($fpath . $filename);
  2467. //S3 UPLOAD
  2468. //S3 LIB
  2469. require dirname(__FILE__) . '/awsfileserver.php';
  2470. //S3 OBJ
  2471. $s3 = awsfileserver::connectS3();
  2472. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  2473. //DELETE AFTER MOVE TO S3
  2474. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  2475. $obj = new stdClass();
  2476. $obj->key_name = S3_REPORT_URL . $filename;
  2477. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  2478. $returnarr = array("report_url" => $url);
  2479. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  2480. } catch (PDOException $e) {
  2481. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  2482. }
  2483. }
  2484. // customerexperiencefeedback
  2485. function customerexperiencefeedback()
  2486. {
  2487. global $conn;
  2488. try {
  2489. $lang = "en_us";
  2490. $pageData = $conn->loadJSON($lang);
  2491. //$_SESSION["userid"]=1;
  2492. if (isset($_SESSION["userid"])) {
  2493. $user_cond = '';
  2494. $from_date = escape_str($_REQUEST["from_date"]);
  2495. $to_date = escape_str($_REQUEST["to_date"]);
  2496. $zm_email = escape_str($_REQUEST["zm_email"]);
  2497. $rm_email = escape_str($_REQUEST["rm_email"]);
  2498. $am_email = escape_str($_REQUEST["am_email"]);
  2499. if (!($from_date != '' && $to_date != '')) {
  2500. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  2501. }
  2502. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  2503. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  2504. }
  2505. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  2506. $mcond = '';
  2507. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  2508. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  2509. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  2510. //AM
  2511. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  2512. } else {
  2513. //PAN
  2514. $user_cond = '';
  2515. }
  2516. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  2517. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  2518. $objPHPExcel = new PHPExcel();
  2519. $objPHPExcel->setActiveSheetIndex(0);
  2520. $row += 2;
  2521. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CUSTOMER EXPERIENCE FEEDBACK");
  2522. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":O" . $row);
  2523. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  2524. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  2525. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  2526. $row++;
  2527. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, 'L' . $row, 'M' . $row, 'N' . $row);
  2528. $query_str = "SELECT q.id,r.survey_rating,q.questiontext,q.questiontypeid FROM " . TABLE__FEEDBACKRESULT . " r JOIN " . TABLE__EXPQUESTION . " as q ON r.qid=q.id GROUP BY r.qid";
  2529. $ques_arr = $conn->getQueryValue($query_str);
  2530. if (count($ques_arr) > 0) {
  2531. $i = 14;
  2532. foreach ($ques_arr as $mkey => $res_user) {
  2533. $bordercells_arr[] = getColumnFromNumber($i++) . $row;
  2534. }
  2535. }
  2536. setCellBorder($bordercells_arr, $objPHPExcel);
  2537. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  2538. $header_arr = array('S.No', 'Name', 'Email', 'Mobile', 'Age', 'SMPIN', 'DSE Name', 'Created on', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM'); //12
  2539. if (count($ques_arr) > 0) {
  2540. $i = 13;
  2541. foreach ($ques_arr as $mkey => $res_ques) {
  2542. $header_arr[] = $res_ques->questiontext;
  2543. }
  2544. }
  2545. $i = 0;
  2546. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2547. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2548. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2549. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2550. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2551. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2552. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2553. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  2554. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2555. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2556. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2557. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  2558. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2559. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2560. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2561. if (count($ques_arr) > 0) {
  2562. foreach ($ques_arr as $mkey => $res_user) {
  2563. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('40');
  2564. }
  2565. }
  2566. $i = 0;
  2567. foreach ($header_arr as $val) {
  2568. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  2569. }
  2570. $query_str = "SELECT u.`userid`,c.`salutation`,c. `firstname`, c.`lastname`, c.`email`,c. `mobile`,c. `age`,c.smpin,c.dsename,d.`dealer_code`, d.`dealer_name`,d. `city`, d.`state`, d.`zm_name`, d.`rm_name`, d.`am_name`,f.id,f.created_on FROM " . TABLE__FEEDBACKUSER . " f JOIN " . TABLE__CUSTOMEREXP . " as c ON f.customerid=c.id JOIN " . TABLE_USER . " as u ON c.userid=u.userid JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.is_deleted=0 AND c.created_on>='" . $from_date . " 00:00:00' AND c.created_on<='" . $to_date . " 23:59:59' " . $user_cond . " ORDER BY f.created_on,c.created_on DESC";
  2571. $user_arr = $conn->getQueryValue($query_str);
  2572. if (count($user_arr) > 0) {
  2573. $sno = 1;
  2574. foreach ($user_arr as $mkey => $res_user) {
  2575. $i = 0;
  2576. $row++;
  2577. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  2578. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->salutation . " " . $res_user->firstname . " " . $res_user->lastname);
  2579. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->email);
  2580. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile);
  2581. $objPHPExcel->getActiveSheet()->getStyle('D' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2582. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->age);
  2583. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  2584. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2585. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dsename);
  2586. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  2587. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  2588. $objPHPExcel->getActiveSheet()->getStyle('I' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2589. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  2590. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  2591. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  2592. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  2593. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  2594. if (count($ques_arr) > 0) {
  2595. foreach ($ques_arr as $res_ques) {
  2596. $query_str = "SELECT r.survey_rating FROM " . TABLE__FEEDBACKRESULT . " r WHERE r.arid='" . $res_user->id . "' AND r.qid='" . $res_ques->id . "' LIMIT 1";
  2597. $feedresult_arr = $conn->getQueryValue($query_str);
  2598. $rating = (count($feedresult_arr) > 0) ? $feedresult_arr[0]->survey_rating : '';
  2599. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $rating);
  2600. }
  2601. }
  2602. }
  2603. }
  2604. $objPHPExcel->getActiveSheet()->setTitle('FEEDBACK REPORT');
  2605. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  2606. $fpath = "../" . S3_REPORT_URL;
  2607. $filename = "customer_experience_feedback_report_" . uniqid() . ".xlsx";
  2608. $objWriter->save($fpath . $filename);
  2609. //S3 UPLOAD
  2610. //S3 LIB
  2611. require dirname(__FILE__) . '/awsfileserver.php';
  2612. //S3 OBJ
  2613. $s3 = awsfileserver::connectS3();
  2614. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  2615. //DELETE AFTER MOVE TO S3
  2616. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  2617. $obj = new stdClass();
  2618. $obj->key_name = S3_REPORT_URL . $filename;
  2619. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  2620. $returnarr = array("report_url" => $url);
  2621. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  2622. } else {
  2623. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  2624. }
  2625. } catch (PDOException $e) {
  2626. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  2627. }
  2628. }
  2629. // user_registration_percent
  2630. function user_registration_percent()
  2631. {
  2632. global $conn;
  2633. try {
  2634. $lang = "en_us";
  2635. $pageData = $conn->loadJSON($lang);
  2636. //$_SESSION["userid"]=1;
  2637. if (isset($_SESSION["userid"])) {
  2638. //CONVERT converttype()
  2639. converttype();
  2640. $datetype = escape_str($_REQUEST['datetype']);
  2641. $from_date = escape_str($_REQUEST["from_date"]);
  2642. $to_date = escape_str($_REQUEST["to_date"]);
  2643. if ($datetype != 4) //FOR ALL LIST
  2644. {
  2645. if (!($from_date != '' && $to_date != '')) {
  2646. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  2647. }
  2648. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  2649. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  2650. }
  2651. }
  2652. // $data_arr=getReportFormat($from_date,$to_date);
  2653. $zm_email = escape_str($_REQUEST["zm_email"]);
  2654. $rm_email = escape_str($_REQUEST["rm_email"]);
  2655. $am_email = escape_str($_REQUEST["am_email"]);
  2656. $user_cond = '';
  2657. $returnarr = array();
  2658. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  2659. $mcond = '';
  2660. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  2661. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  2662. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  2663. //AM
  2664. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  2665. } else {
  2666. //PAN
  2667. $user_cond = '';
  2668. }
  2669. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  2670. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  2671. $objPHPExcel = new PHPExcel();
  2672. $objPHPExcel->setActiveSheetIndex(0);
  2673. $row += 2;
  2674. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER REGISTRATION PERCENTAGE");
  2675. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":D" . $row);
  2676. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  2677. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  2678. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  2679. if ($datetype != 4) //FOR ALL LIST
  2680. {
  2681. $row++;
  2682. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  2683. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  2684. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  2685. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  2686. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  2687. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  2688. }
  2689. $row++;
  2690. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row);
  2691. setCellBorder($bordercells_arr, $objPHPExcel);
  2692. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  2693. $header_arr = array('Users', 'Employee Count', 'Registered Count', 'Percentage %');
  2694. $i = 0;
  2695. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2696. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2697. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2698. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2699. $i = 0;
  2700. foreach ($header_arr as $val) {
  2701. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  2702. }
  2703. //$returnarr=array();
  2704. $tablejoin = '';
  2705. $user_reg_cond = '';
  2706. $emp_reg_cond = '';
  2707. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  2708. if ($regtype == '1') {
  2709. //$query_str="SELECT modified_on FROM ".DMS_EMPLOYEE." ORDER BY modified_on DESC LIMIT 1 ";
  2710. //$data_arr=$conn->getQueryValue($query_str);
  2711. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  2712. $user_reg_cond = " AND e.is_current=1 ";
  2713. $emp_reg_cond = " AND is_current=1 ";
  2714. }
  2715. if ($datetype != 4) //FOR ALL LIST
  2716. {
  2717. $user_reg_cond .= " AND u.created_on>='" . $from_date . " 00:00:00' AND u.created_on<='" . $to_date . " 23:59:59' ";
  2718. }
  2719. if ($am_email != 'all' && $am_email != '') {
  2720. //AM
  2721. //$user_cond=" AND am_email='".$am_email."' ";
  2722. $type = "am";
  2723. } else if ($rm_email != 'all' && $rm_email != '') {
  2724. //RM
  2725. //$user_cond=" AND rm_email='".$rm_email."'";
  2726. $type = "rm";
  2727. } else if ($zm_email != 'all' && $zm_email != '') {
  2728. //ZM
  2729. //$user_cond=" AND zm_email='".$zm_email."' ";
  2730. $type = "zm";
  2731. } else {
  2732. //PAN
  2733. $user_cond = '';
  2734. $type = "pan";
  2735. }
  2736. if ($type == 'pan') {
  2737. //GET ALL ZM
  2738. $getzmquery_str = "SELECT zm_name,zm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' GROUP BY zm_email";
  2739. $getzm_data = $conn->getQueryValue($getzmquery_str);
  2740. if (count($getzm_data) > 0) {
  2741. foreach ($getzm_data as $val) {
  2742. $percent = 0;
  2743. //GET EMPLOYEE DATA
  2744. $emp_query_str = "SELECT COUNT(id) as total_employee FROM " . DMS_EMPLOYEE . " WHERE status=1 AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted='0') " . $emp_reg_cond;
  2745. $emp_data = $conn->getQueryValue($emp_query_str);
  2746. $employee_count = (count($emp_data) > 0) ? $emp_data[0]->total_employee : 0;
  2747. //GET EMPLOYEE REGISTER
  2748. $reg_query_str = "SELECT COUNT(u.userid) as total_reg FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted='0' ) AND u.role>7 AND u.role<16 AND u.role!='14' " . $user_reg_cond;
  2749. $reg_data = $conn->getQueryValue($reg_query_str);
  2750. $reg_count = (count($reg_data) > 0) ? $reg_data[0]->total_reg : 0;
  2751. $percent = ($employee_count > 0) ? round(($reg_count / $employee_count) * 100) : 0;
  2752. $returnarr[] = array("name" => $val->zm_name, 'email' => $val->zm_email, 'emp_count' => $employee_count, 'reg_count' => $reg_count, "percent" => $percent);
  2753. }
  2754. }
  2755. } else if ($type == 'zm') {
  2756. //GET ALL RM
  2757. $getrmquery_str = "SELECT rm_name,rm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . " GROUP BY rm_email";
  2758. $getrm_data = $conn->getQueryValue($getrmquery_str);
  2759. if (count($getrm_data) > 0) {
  2760. foreach ($getrm_data as $val) {
  2761. $percent = 0;
  2762. //GET EMPLOYEE DATA
  2763. // $emp_query_str="SELECT COUNT(id) as total_employee FROM ".DMS_EMPLOYEE." WHERE status=1 AND dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE rm_email='".$val->rm_email."') ".$emp_reg_cond;
  2764. $emp_query_str = "SELECT COUNT(id) as total_employee FROM " . DMS_EMPLOYEE . " WHERE status=1 AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' " . $user_cond . ") " . $emp_reg_cond;
  2765. $emp_data = $conn->getQueryValue($emp_query_str);
  2766. $employee_count = (count($emp_data) > 0) ? $emp_data[0]->total_employee : 0;
  2767. //GET EMPLOYEE REGISTER
  2768. $reg_query_str = "SELECT COUNT(u.userid) as total_reg FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' " . $user_cond . " AND status=1 AND is_deleted='0') AND u.role>7 AND u.role<16 AND u.role!='14' " . $user_reg_cond;
  2769. $reg_data = $conn->getQueryValue($reg_query_str);
  2770. $reg_count = (count($reg_data) > 0) ? $reg_data[0]->total_reg : 0;
  2771. $percent = ($employee_count > 0) ? round(($reg_count / $employee_count) * 100) : 0;
  2772. $returnarr[] = array("name" => $val->rm_name, 'email' => $val->rm_email, 'emp_count' => $employee_count, 'reg_count' => $reg_count, "percent" => $percent);
  2773. }
  2774. }
  2775. } else if ($type == 'rm') {
  2776. //GET ALL AM
  2777. $getamquery_str = "SELECT am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . " GROUP BY am_email";
  2778. $getam_data = $conn->getQueryValue($getamquery_str);
  2779. if (count($getam_data) > 0) {
  2780. foreach ($getam_data as $val) {
  2781. $percent = 0;
  2782. //GET EMPLOYEE DATA
  2783. $emp_query_str = "SELECT COUNT(id) as total_employee FROM " . DMS_EMPLOYEE . " WHERE status=1 AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' " . $user_cond . " AND status=1 AND is_deleted='0') " . $emp_reg_cond;
  2784. $emp_data = $conn->getQueryValue($emp_query_str);
  2785. $employee_count = (count($emp_data) > 0) ? $emp_data[0]->total_employee : 0;
  2786. //GET EMPLOYEE REGISTER
  2787. $reg_query_str = "SELECT COUNT(u.userid) as total_reg FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' " . $user_cond . " AND status=1 AND is_deleted='0') AND u.role>7 AND u.role<16 AND u.role!='14' " . $user_reg_cond;
  2788. $reg_data = $conn->getQueryValue($reg_query_str);
  2789. $reg_count = (count($reg_data) > 0) ? $reg_data[0]->total_reg : 0;
  2790. $percent = ($employee_count > 0) ? round(($reg_count / $employee_count) * 100) : 0;
  2791. $returnarr[] = array("name" => $val->am_name, 'email' => $val->am_email, 'emp_count' => $employee_count, 'reg_count' => $reg_count, "percent" => $percent);
  2792. }
  2793. }
  2794. } else if ($type == 'am') {
  2795. //GET ALL DEALER
  2796. $getdealerquery_str = "SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . "";
  2797. $getdealer_data = $conn->getQueryValue($getdealerquery_str);
  2798. if (count($getdealer_data) > 0) {
  2799. foreach ($getdealer_data as $val) {
  2800. $percent = 0;
  2801. //GET EMPLOYEE DATA
  2802. $dealer_query_str = "SELECT COUNT(id) as total_employee FROM " . DMS_EMPLOYEE . " WHERE status=1 AND dealer_code='" . $val->dealer_code . "' " . $emp_reg_cond;
  2803. $emp_data = $conn->getQueryValue($dealer_query_str);
  2804. $employee_count = (count($emp_data) > 0) ? $emp_data[0]->total_employee : 0;
  2805. //GET EMPLOYEE REGISTER
  2806. $reg_query_str = "SELECT COUNT(u.userid) as total_reg FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code='" . $val->dealer_code . "' AND u.role>7 AND u.role<16 AND u.role!='14' " . $user_reg_cond;
  2807. $reg_data = $conn->getQueryValue($reg_query_str);
  2808. $reg_count = (count($reg_data) > 0) ? $reg_data[0]->total_reg : 0;
  2809. $percent = ($employee_count > 0) ? round(($reg_count / $employee_count) * 100) : 0;
  2810. $returnarr[] = array("name" => $val->dealer_name . " - " . $val->dealer_code, 'dealer_code' => $val->dealer_code, 'emp_count' => $employee_count, 'reg_count' => $reg_count, "percent" => $percent);
  2811. }
  2812. }
  2813. }
  2814. $emp_query_str = "SELECT COUNT(id) as total_employee FROM " . DMS_EMPLOYEE . " WHERE status=1 AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . ") " . $emp_reg_cond;
  2815. $emp_data = $conn->getQueryValue($emp_query_str);
  2816. $employee_count = (count($emp_data) > 0) ? $emp_data[0]->total_employee : 0;
  2817. //GET EMPLOYEE REGISTER
  2818. $reg_query_str = "SELECT COUNT(u.userid) as total_reg FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . " ) AND u.role>7 AND u.role<16 AND u.role!='14' " . $user_reg_cond;
  2819. $reg_data = $conn->getQueryValue($reg_query_str);
  2820. $reg_count = (count($reg_data) > 0) ? $reg_data[0]->total_reg : 0;
  2821. $percent = ($employee_count > 0) ? round(($reg_count / $employee_count) * 100) : 0;
  2822. $total_arr = array('emp_count' => $employee_count, 'reg_count' => $reg_count, "percent" => $percent);
  2823. //print_r($returnarr);
  2824. if (count($returnarr) > 0) {
  2825. $sno = 1;
  2826. foreach ($returnarr as $mkey => $res_user) {
  2827. // $header_arr=array('Users', 'Employee Count','Registered Count','Percentage %');
  2828. $i = 0;
  2829. $row++;
  2830. // $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  2831. //$objPHPExcel->getActiveSheet()->getStyle('B'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  2832. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['name']);
  2833. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['emp_count']);
  2834. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['reg_count']);
  2835. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['percent']);
  2836. }
  2837. }
  2838. //TOTAL
  2839. $row += 2;
  2840. $i = 0;
  2841. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "Total");
  2842. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['emp_count']);
  2843. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['reg_count']);
  2844. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['percent']);
  2845. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row);
  2846. setCellBorder($bordercells_arr, $objPHPExcel);
  2847. $objPHPExcel->getActiveSheet()->setTitle('REGISTRATION REPORT');
  2848. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  2849. $fpath = "../" . S3_REPORT_URL;
  2850. $filename = "user_registration_percentange_report_" . uniqid() . ".xlsx";
  2851. $objWriter->save($fpath . $filename);
  2852. //S3 UPLOAD
  2853. //S3 LIB
  2854. require dirname(__FILE__) . '/awsfileserver.php';
  2855. //S3 OBJ
  2856. $s3 = awsfileserver::connectS3();
  2857. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  2858. //DELETE AFTER MOVE TO S3
  2859. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  2860. $obj = new stdClass();
  2861. $obj->key_name = S3_REPORT_URL . $filename;
  2862. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  2863. $returnarr = array("report_url" => $url);
  2864. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  2865. } else {
  2866. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  2867. }
  2868. } catch (PDOException $e) {
  2869. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  2870. }
  2871. }
  2872. // inactive_user_table
  2873. function inactive_user_table()
  2874. {
  2875. global $conn;
  2876. try {
  2877. $lang = "en_us";
  2878. $pageData = $conn->loadJSON($lang);
  2879. //$_SESSION["userid"]=1;
  2880. if (isset($_SESSION["userid"])) {
  2881. $zm_email = escape_str($_REQUEST["zm_email"]);
  2882. $rm_email = escape_str($_REQUEST["rm_email"]);
  2883. $am_email = escape_str($_REQUEST["am_email"]);
  2884. $user_cond = '';
  2885. $returnarr = array();
  2886. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  2887. $mcond = '';
  2888. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  2889. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  2890. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  2891. //AM
  2892. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . ")";
  2893. } else {
  2894. //PAN
  2895. $user_cond = '';
  2896. }
  2897. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  2898. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  2899. $objPHPExcel = new PHPExcel();
  2900. $objPHPExcel->setActiveSheetIndex(0);
  2901. $row += 2;
  2902. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER ACTIVE INCATIVE REPORT");
  2903. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":D" . $row);
  2904. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  2905. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  2906. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  2907. $row++;
  2908. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row);
  2909. setCellBorder($bordercells_arr, $objPHPExcel);
  2910. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  2911. $header_arr = array('Users', 'Active Count', 'Inactive Count');
  2912. $i = 0;
  2913. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  2914. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2915. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  2916. $i = 0;
  2917. foreach ($header_arr as $val) {
  2918. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  2919. }
  2920. //$returnarr=array();
  2921. $tablejoin = '';
  2922. $user_reg_cond = '';
  2923. $emp_reg_cond = '';
  2924. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  2925. if ($regtype == '1') {
  2926. //$query_str="SELECT modified_on FROM ".DMS_EMPLOYEE." ORDER BY modified_on DESC LIMIT 1 ";
  2927. //$data_arr=$conn->getQueryValue($query_str);
  2928. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  2929. $user_reg_cond = " AND e.is_current=1 ";
  2930. $emp_reg_cond = " AND is_current=1 ";
  2931. }
  2932. //$user_reg_cond.=" AND u.created_on>='".$from_date." 00:00:00' AND u.created_on<='".$to_date." 23:59:59' ";
  2933. if ($am_email != 'all' && $am_email != '') {
  2934. //AM
  2935. //$user_cond=" AND am_email='".$am_email."' ";
  2936. $type = "am";
  2937. } else if ($rm_email != 'all' && $rm_email != '') {
  2938. //RM
  2939. //$user_cond=" AND rm_email='".$rm_email."'";
  2940. $type = "rm";
  2941. } else if ($zm_email != 'all' && $zm_email != '') {
  2942. //ZM
  2943. //$user_cond=" AND zm_email='".$zm_email."' ";
  2944. $type = "zm";
  2945. } else {
  2946. //PAN
  2947. $user_cond = '';
  2948. $type = "pan";
  2949. }
  2950. if ($type == 'pan') {
  2951. //GET ALL ZM
  2952. $getzmquery_str = "SELECT zm_name,zm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' GROUP BY zm_email";
  2953. $getzm_data = $conn->getQueryValue($getzmquery_str);
  2954. if (count($getzm_data) > 0) {
  2955. foreach ($getzm_data as $val) {
  2956. //ACTIVE USER
  2957. $active_query_str = "SELECT COUNT(u.userid) as total_act FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted='0' ) AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status=1 " . $user_reg_cond;
  2958. $active_data = $conn->getQueryValue($active_query_str);
  2959. $active_count = (count($active_data) > 0) ? $active_data[0]->total_act : 0;
  2960. //INACTIVE USER
  2961. $inactive_query_str = "SELECT COUNT(u.userid) as total_inact FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted='0' ) AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status!=1 " . $user_reg_cond;
  2962. $inactive_data = $conn->getQueryValue($inactive_query_str);
  2963. $inactive_count = (count($inactive_data) > 0) ? $inactive_data[0]->total_inact : 0;
  2964. $returnarr[] = array("name" => $val->zm_name, 'email' => $val->zm_email, 'active_count' => $active_count, 'inactive_count' => $inactive_count);
  2965. }
  2966. }
  2967. } else if ($type == 'zm') {
  2968. //GET ALL RM
  2969. $getrmquery_str = "SELECT rm_name,rm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . " GROUP BY rm_email";
  2970. $getrm_data = $conn->getQueryValue($getrmquery_str);
  2971. if (count($getrm_data) > 0) {
  2972. foreach ($getrm_data as $val) {
  2973. //ACTIVE USER
  2974. $active_query_str = "SELECT COUNT(u.userid) as total_act FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' AND status=1 AND is_deleted='0' ) AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status=1 " . $user_reg_cond;
  2975. $active_data = $conn->getQueryValue($active_query_str);
  2976. $active_count = (count($active_data) > 0) ? $active_data[0]->total_act : 0;
  2977. //INACTIVE USER
  2978. $inactive_query_str = "SELECT COUNT(u.userid) as total_inact FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' AND status=1 AND is_deleted='0' ) AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status!=1 " . $user_reg_cond;
  2979. $inactive_data = $conn->getQueryValue($inactive_query_str);
  2980. $inactive_count = (count($inactive_data) > 0) ? $inactive_data[0]->total_inact : 0;
  2981. $returnarr[] = array("name" => $val->rm_name, 'email' => $val->rm_email, 'active_count' => $active_count, 'inactive_count' => $inactive_count);
  2982. }
  2983. }
  2984. } else if ($type == 'rm') {
  2985. //GET ALL AM
  2986. $getamquery_str = "SELECT am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . " GROUP BY am_email";
  2987. $getam_data = $conn->getQueryValue($getamquery_str);
  2988. if (count($getam_data) > 0) {
  2989. foreach ($getam_data as $val) {
  2990. //ACTIVE USER
  2991. $active_query_str = "SELECT COUNT(u.userid) as total_act FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' AND status=1 AND is_deleted='0' ) AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status=1 AND u.is_deleted=0 " . $user_reg_cond;
  2992. $active_data = $conn->getQueryValue($active_query_str);
  2993. $active_count = (count($active_data) > 0) ? $active_data[0]->total_act : 0;
  2994. //INACTIVE USER
  2995. $inactive_query_str = "SELECT COUNT(u.userid) as total_inact FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' AND status=1 AND is_deleted='0' ) AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status!=1 AND u.is_deleted=0 " . $user_reg_cond;
  2996. $inactive_data = $conn->getQueryValue($inactive_query_str);
  2997. $inactive_count = (count($inactive_data) > 0) ? $inactive_data[0]->total_inact : 0;
  2998. $returnarr[] = array("name" => $val->am_name, 'email' => $val->am_email, 'active_count' => $active_count, 'inactive_count' => $inactive_count);
  2999. }
  3000. }
  3001. } else if ($type == 'am') {
  3002. //GET ALL DEALER
  3003. $getdealerquery_str = "SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . "";
  3004. $getdealer_data = $conn->getQueryValue($getdealerquery_str);
  3005. if (count($getdealer_data) > 0) {
  3006. foreach ($getdealer_data as $val) {
  3007. //ACTIVE USER
  3008. $active_query_str = "SELECT COUNT(u.userid) as total_act FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code='" . $val->dealer_code . "' AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status=1 AND u.is_deleted=0 " . $user_reg_cond;
  3009. $active_data = $conn->getQueryValue($active_query_str);
  3010. $active_count = (count($active_data) > 0) ? $active_data[0]->total_act : 0;
  3011. //INACTIVE USER
  3012. $inactive_query_str = "SELECT COUNT(u.userid) as total_inact FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code='" . $val->dealer_code . "' AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status!=1 AND u.is_deleted=0 " . $user_reg_cond;
  3013. $inactive_data = $conn->getQueryValue($inactive_query_str);
  3014. $inactive_count = (count($inactive_data) > 0) ? $inactive_data[0]->total_inact : 0;
  3015. $returnarr[] = array("name" => $val->dealer_name . " - " . $val->dealer_code, 'dealer_code' => $val->dealer_code, 'active_count' => $active_count, 'inactive_count' => $inactive_count);
  3016. }
  3017. }
  3018. }
  3019. $active_query_str = "SELECT COUNT(u.userid) as total_act FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . " ) AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status=1 AND u.is_deleted=0 " . $user_reg_cond;
  3020. $active_data = $conn->getQueryValue($active_query_str);
  3021. $active_count = (count($active_data) > 0) ? $active_data[0]->total_act : 0;
  3022. //INACTIVE USER
  3023. $inactive_query_str = "SELECT COUNT(u.userid) as total_inact FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.is_deleted=0 AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $user_cond . " ) AND u.role>7 AND u.role<16 AND u.role!='14' AND u.status!=1 AND u.is_deleted=0 " . $user_reg_cond;
  3024. $inactive_data = $conn->getQueryValue($inactive_query_str);
  3025. $inactive_count = (count($inactive_data) > 0) ? $inactive_data[0]->total_inact : 0;
  3026. $total_arr = array('active_count' => $active_count, 'inactive_count' => $inactive_count);
  3027. if (count($returnarr) > 0) {
  3028. $sno = 1;
  3029. foreach ($returnarr as $mkey => $res_user) {
  3030. // $header_arr=array('Users', 'Employee Count','Registered Count','Percentage %');
  3031. $i = 0;
  3032. $row++;
  3033. // $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  3034. //$objPHPExcel->getActiveSheet()->getStyle('B'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3035. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['name']);
  3036. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['active_count']);
  3037. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['inactive_count']);
  3038. }
  3039. }
  3040. //TOTAL
  3041. $row += 2;
  3042. $i = 0;
  3043. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "Total");
  3044. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['active_count']);
  3045. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['inactive_count']);
  3046. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row);
  3047. setCellBorder($bordercells_arr, $objPHPExcel);
  3048. $objPHPExcel->getActiveSheet()->setTitle('USER ACTIVE REPORT');
  3049. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  3050. $fpath = "../" . S3_REPORT_URL;
  3051. $filename = "user_active_report_" . uniqid() . ".xlsx";
  3052. $objWriter->save($fpath . $filename);
  3053. //S3 UPLOAD
  3054. //S3 LIB
  3055. require dirname(__FILE__) . '/awsfileserver.php';
  3056. //S3 OBJ
  3057. $s3 = awsfileserver::connectS3();
  3058. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  3059. //DELETE AFTER MOVE TO S3
  3060. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  3061. $obj = new stdClass();
  3062. $obj->key_name = S3_REPORT_URL . $filename;
  3063. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  3064. $returnarr = array("report_url" => $url);
  3065. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  3066. } else {
  3067. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  3068. }
  3069. } catch (PDOException $e) {
  3070. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  3071. }
  3072. }
  3073. // page_access_v2
  3074. function page_access_v2()
  3075. {
  3076. global $conn;
  3077. try {
  3078. $lang = "en_us";
  3079. $pageData = $conn->loadJSON($lang);
  3080. //$_SESSION["userid"]=1;
  3081. if (isset($_SESSION["userid"])) {
  3082. $page = escape_str($_REQUEST["page"]);
  3083. $zm_email = escape_str($_REQUEST["zm_email"]);
  3084. $rm_email = escape_str($_REQUEST["rm_email"]);
  3085. $am_email = escape_str($_REQUEST["am_email"]);
  3086. $user_cond = '';
  3087. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  3088. $mcond = '';
  3089. $mcond = ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  3090. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  3091. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  3092. //AM
  3093. $user_cond = $mcond;
  3094. } else {
  3095. //PAN
  3096. $user_cond = '';
  3097. }
  3098. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  3099. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  3100. $objPHPExcel = new PHPExcel();
  3101. $objPHPExcel->setActiveSheetIndex(0);
  3102. $row += 2;
  3103. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER ACCESS REPORT");
  3104. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  3105. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  3106. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  3107. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  3108. // $row++;
  3109. // $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"PAGE :");
  3110. // $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  3111. // $objPHPExcel->getActiveSheet()->SetCellValue('B'.$row,$page);
  3112. $row++;
  3113. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, "O" . $row, "P" . $row);
  3114. setCellBorder($bordercells_arr, $objPHPExcel);
  3115. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  3116. //Dashboard
  3117. //Learning
  3118. //Assessment
  3119. //Feedback
  3120. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Email', 'Dashboard Last access', 'Learning Last access', 'Assessment Last access', 'Feedback Last access', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  3121. $i = 0;
  3122. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3123. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3124. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  3125. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3126. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3127. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  3128. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3129. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3130. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3131. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3132. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3133. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3134. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3135. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3136. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3137. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3138. $i = 0;
  3139. foreach ($header_arr as $val) {
  3140. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  3141. }
  3142. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  3143. $tablejoin = '';
  3144. if ($regtype == '1') {
  3145. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  3146. $user_cond .= " AND e.is_current=1 ";
  3147. }
  3148. //$query_str="SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,MAX(ac.created_on) as last_access,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM ".TABLE_USER_ACCESSCOUNT." as ac JOIN ".TABLE_USER." as u ON ac.smpin=u.smpin LEFT JOIN ".DMS_DEALER." as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND ac.page='".$page."' ".$user_cond." GROUP BY ac.smpin ORDER BY last_access DESC ";
  3149. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,u.segment,COALESCE(acd.last_access,'') as dashboard_last_access,COALESCE(acl.last_access,'') as learning_last_access,COALESCE(aca.last_access,'') as assessment_last_access,COALESCE(acf.last_access,'') as feedback_last_access,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER . " as u " . $tablejoin . " LEFT JOIN (SELECT smpin,MAX(created_on) as last_access FROM " . TABLE_USER_ACCESSCOUNT . " WHERE page='Dashboard' GROUP BY smpin )as acd ON u.smpin=acd.smpin LEFT JOIN (SELECT smpin,MAX(created_on) as last_access FROM " . TABLE_USER_ACCESSCOUNT . " WHERE page='Learning' GROUP BY smpin )as acl ON u.smpin=acl.smpin LEFT JOIN (SELECT smpin,MAX(created_on) as last_access FROM " . TABLE_USER_ACCESSCOUNT . " WHERE page='Assessment' GROUP BY smpin )as aca ON u.smpin=aca.smpin LEFT JOIN (SELECT smpin,MAX(created_on) as last_access FROM " . TABLE_USER_ACCESSCOUNT . " WHERE page='Feedback' GROUP BY smpin )as acf ON u.smpin=acf.smpin JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $user_cond . " GROUP BY u.userid ORDER BY dashboard_last_access DESC,u.userid ASC ";
  3150. $user_arr = $conn->getQueryValue($query_str);
  3151. if (count($user_arr) > 0) {
  3152. $sno = 1;
  3153. foreach ($user_arr as $mkey => $res_user) {
  3154. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Last access','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  3155. $i = 0;
  3156. $row++;
  3157. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  3158. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3159. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  3160. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  3161. switch ($res_user->segment) {
  3162. case '0':$segment_str = 'Student Learner';
  3163. break;
  3164. case '1':$segment_str = 'Parents/Guardian';
  3165. break;
  3166. case '2':$segment_str = 'Instructor';
  3167. break;
  3168. default:$segment_str = 'Student Learner';
  3169. break;
  3170. }
  3171. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  3172. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  3173. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  3174. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3175. $dashboard_last_access = ($res_user->dashboard_last_access != '') ? date('d-m-Y h:i A', strtotime($res_user->dashboard_last_access)) : '';
  3176. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dashboard_last_access);
  3177. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3178. $learning_last_access = ($res_user->learning_last_access != '') ? date('d-m-Y h:i A', strtotime($res_user->learning_last_access)) : '';
  3179. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $learning_last_access);
  3180. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3181. $assessment_last_access = ($res_user->assessment_last_access != '') ? date('d-m-Y h:i A', strtotime($res_user->assessment_last_access)) : '';
  3182. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $assessment_last_access);
  3183. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3184. $feedback_last_access = ($res_user->feedback_last_access != '') ? date('d-m-Y h:i A', strtotime($res_user->feedback_last_access)) : '';
  3185. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $feedback_last_access);
  3186. $objPHPExcel->getActiveSheet()->getStyle('I' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3187. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  3188. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  3189. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  3190. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  3191. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  3192. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  3193. }
  3194. }
  3195. $objPHPExcel->getActiveSheet()->setTitle('ACCESS REPORT');
  3196. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  3197. $fpath = "../" . S3_REPORT_URL;
  3198. $filename = "user_access_report_" . uniqid() . ".xlsx";
  3199. $objWriter->save($fpath . $filename);
  3200. //S3 UPLOAD
  3201. //S3 LIB
  3202. require dirname(__FILE__) . '/awsfileserver.php';
  3203. //S3 OBJ
  3204. $s3 = awsfileserver::connectS3();
  3205. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  3206. //DELETE AFTER MOVE TO S3
  3207. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  3208. $obj = new stdClass();
  3209. $obj->key_name = S3_REPORT_URL . $filename;
  3210. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  3211. $returnarr = array("report_url" => $url);
  3212. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  3213. } else {
  3214. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  3215. }
  3216. } catch (PDOException $e) {
  3217. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  3218. }
  3219. }
  3220. // points_report_v2
  3221. function points_report_v2()
  3222. {
  3223. global $conn;
  3224. try {
  3225. $lang = "en_us";
  3226. $pageData = $conn->loadJSON($lang);
  3227. //$_SESSION["userid"]=1;
  3228. if (isset($_SESSION["userid"])) {
  3229. $zm_email = escape_str($_REQUEST["zm_email"]);
  3230. $rm_email = escape_str($_REQUEST["rm_email"]);
  3231. $am_email = escape_str($_REQUEST["am_email"]);
  3232. $user_cond = '';
  3233. $returnarr = array();
  3234. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  3235. $mcond = '';
  3236. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  3237. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  3238. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  3239. //AM
  3240. //$user_cond=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE is_deleted='0' ".$mcond.")";
  3241. } else {
  3242. //PAN
  3243. //$user_cond='';
  3244. }
  3245. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  3246. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  3247. $objPHPExcel = new PHPExcel();
  3248. $objPHPExcel->setActiveSheetIndex(0);
  3249. $row += 2;
  3250. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER REWARD POINTS");
  3251. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row);
  3252. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  3253. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  3254. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  3255. $row++;
  3256. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row);
  3257. setCellBorder($bordercells_arr, $objPHPExcel);
  3258. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  3259. $header_arr = array('Users', 'Accumulation Points', 'Redemption Points', 'Approved Points', 'Count of DLR/BR', 'Total DSEs', 'HYPER-M App Registered DSE');
  3260. $i = 0;
  3261. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  3262. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3263. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3264. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3265. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3266. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3267. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3268. $i = 0;
  3269. foreach ($header_arr as $val) {
  3270. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  3271. }
  3272. $tablejoin = '';
  3273. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  3274. if ($am_email != 'all' && $am_email != '') {
  3275. //AM
  3276. $type = "am";
  3277. } else if ($rm_email != 'all' && $rm_email != '') {
  3278. //RM
  3279. $type = "rm";
  3280. } else if ($zm_email != 'all' && $zm_email != '') {
  3281. //ZM
  3282. $type = "zm";
  3283. } else {
  3284. //PAN
  3285. $user_cond = '';
  3286. $type = "pan";
  3287. }
  3288. $emp_cond = '';
  3289. if ($regtype == '1') {
  3290. //$query_str="SELECT modified_on FROM ".DMS_EMPLOYEE." ORDER BY modified_on DESC LIMIT 1 ";
  3291. //$data_arr=$conn->getQueryValue($query_str);
  3292. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  3293. $user_cond .= " AND e.is_current=1 ";
  3294. $emp_cond = ' AND u.is_current=1 ';
  3295. }
  3296. if ($type == 'pan') {
  3297. //GET ALL ZM
  3298. $getzmquery_str = "SELECT zm_name,zm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' GROUP BY zm_email";
  3299. $getzm_data = $conn->getQueryValue($getzmquery_str);
  3300. if (count($getzm_data) > 0) {
  3301. foreach ($getzm_data as $val) {
  3302. $accumulation_point = 0;
  3303. $redemption_point = 0;
  3304. $approved_point = 0;
  3305. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' " . $mcond . " AND status=1 AND is_deleted='0' )";
  3306. //ACCUMULATION POINT
  3307. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='C' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3308. $result_arr = $conn->getQueryValue($query_str);
  3309. $accumulation_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3310. //REDEMPTION POINT
  3311. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='D' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3312. $result_arr = $conn->getQueryValue($query_str);
  3313. $redemption_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3314. //APPROVED POINT
  3315. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_WALLET_APPROVE . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.is_approved='1' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3316. $result_arr = $conn->getQueryValue($query_str);
  3317. $approved_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3318. //DEALER COUNT
  3319. $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $val->zm_email . "' ";
  3320. $getdealercount_data = $conn->getQueryValue($getdealercount_str);
  3321. $dealer_count = $getdealercount_data[0]->dealer_count;
  3322. //DSE COUNT
  3323. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $emp_cond . $manager_cond . " LIMIT 1 ";
  3324. $dsecount_arr = $conn->getQueryValue($query_str);
  3325. $dse_count = $dsecount_arr[0]->emp_count;
  3326. //REG DSE COUNT
  3327. $query_str = "SELECT COUNT(u.userid) emp_count FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.role>7 AND u.role<14 AND u.is_deleted=0 " . $user_cond . $manager_cond . " LIMIT 1 ";
  3328. $dsecount_arr = $conn->getQueryValue($query_str);
  3329. $regdse_count = $dsecount_arr[0]->emp_count;
  3330. $returnarr[] = array("name" => $val->zm_name, 'email' => $val->zm_email, 'accumulation_point' => $accumulation_point, 'redemption_point' => $redemption_point, "approved_point" => $approved_point, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'regdse_count' => $regdse_count);
  3331. }
  3332. }
  3333. } else if ($type == 'zm') {
  3334. //GET ALL RM
  3335. $getrmquery_str = "SELECT rm_name,rm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . " GROUP BY rm_email";
  3336. $getrm_data = $conn->getQueryValue($getrmquery_str);
  3337. if (count($getrm_data) > 0) {
  3338. foreach ($getrm_data as $val) {
  3339. $accumulation_point = 0;
  3340. $redemption_point = 0;
  3341. $approved_point = 0;
  3342. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' " . $mcond . " AND status=1 AND is_deleted='0' )";
  3343. //ACCUMULATION POINT
  3344. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='C' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3345. $result_arr = $conn->getQueryValue($query_str);
  3346. $accumulation_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3347. //REDEMPTION POINT
  3348. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='D' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3349. $result_arr = $conn->getQueryValue($query_str);
  3350. $redemption_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3351. //APPROVED POINT
  3352. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_WALLET_APPROVE . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.is_approved='1' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3353. $result_arr = $conn->getQueryValue($query_str);
  3354. $approved_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3355. //DEALER COUNT
  3356. $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND rm_email='" . $val->rm_email . "' " . $mcond;
  3357. $getdealercount_data = $conn->getQueryValue($getdealercount_str);
  3358. $dealer_count = $getdealercount_data[0]->dealer_count;
  3359. //DSE COUNT
  3360. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $emp_cond . $manager_cond . " LIMIT 1 ";
  3361. $dsecount_arr = $conn->getQueryValue($query_str);
  3362. $dse_count = $dsecount_arr[0]->emp_count;
  3363. //REG DSE COUNT
  3364. $query_str = "SELECT COUNT(u.userid) emp_count FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.role>7 AND u.role<14 AND u.is_deleted=0 " . $user_cond . $manager_cond . " LIMIT 1 ";
  3365. $dsecount_arr = $conn->getQueryValue($query_str);
  3366. $regdse_count = $dsecount_arr[0]->emp_count;
  3367. $returnarr[] = array("name" => $val->rm_name, 'email' => $val->rm_email, 'accumulation_point' => $accumulation_point, 'redemption_point' => $redemption_point, "approved_point" => $approved_point, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'regdse_count' => $regdse_count);
  3368. }
  3369. }
  3370. } else if ($type == 'rm') {
  3371. //GET ALL AM
  3372. $getamquery_str = "SELECT am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . " GROUP BY am_email";
  3373. $getam_data = $conn->getQueryValue($getamquery_str);
  3374. if (count($getam_data) > 0) {
  3375. foreach ($getam_data as $val) {
  3376. $accumulation_point = 0;
  3377. $redemption_point = 0;
  3378. $approved_point = 0;
  3379. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' " . $mcond . " AND status=1 AND is_deleted='0' )";
  3380. //ACCUMULATION POINT
  3381. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='C' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3382. $result_arr = $conn->getQueryValue($query_str);
  3383. $accumulation_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3384. //REDEMPTION POINT
  3385. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='D' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3386. $result_arr = $conn->getQueryValue($query_str);
  3387. $redemption_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3388. //APPROVED POINT
  3389. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_WALLET_APPROVE . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.is_approved='1' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3390. $result_arr = $conn->getQueryValue($query_str);
  3391. $approved_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3392. //DEALER COUNT
  3393. $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND am_email='" . $val->am_email . "' " . $mcond;
  3394. $getdealercount_data = $conn->getQueryValue($getdealercount_str);
  3395. $dealer_count = $getdealercount_data[0]->dealer_count;
  3396. //DSE COUNT
  3397. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $emp_cond . $manager_cond . " LIMIT 1 ";
  3398. $dsecount_arr = $conn->getQueryValue($query_str);
  3399. $dse_count = $dsecount_arr[0]->emp_count;
  3400. //REG DSE COUNT
  3401. $query_str = "SELECT COUNT(u.userid) emp_count FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.role>7 AND u.role<14 AND u.is_deleted=0 " . $user_cond . $manager_cond . " LIMIT 1 ";
  3402. $dsecount_arr = $conn->getQueryValue($query_str);
  3403. $regdse_count = $dsecount_arr[0]->emp_count;
  3404. $returnarr[] = array("name" => $val->am_name, 'email' => $val->am_email, 'accumulation_point' => $accumulation_point, 'redemption_point' => $redemption_point, "approved_point" => $approved_point, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'regdse_count' => $regdse_count);
  3405. }
  3406. }
  3407. } else if ($type == 'am') {
  3408. //GET ALL DEALER
  3409. $getdealerquery_str = "SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted='0' " . $mcond . " ";
  3410. $getdealer_data = $conn->getQueryValue($getdealerquery_str);
  3411. if (count($getdealer_data) > 0) {
  3412. foreach ($getdealer_data as $val) {
  3413. $accumulation_point = 0;
  3414. $redemption_point = 0;
  3415. $approved_point = 0;
  3416. $manager_cond = " AND u.dealer_code='" . $val->dealer_code . "' ";
  3417. //ACCUMULATION POINT
  3418. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='C' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3419. $result_arr = $conn->getQueryValue($query_str);
  3420. $accumulation_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3421. //REDEMPTION POINT
  3422. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='D' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3423. $result_arr = $conn->getQueryValue($query_str);
  3424. $redemption_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3425. //APPROVED POINT
  3426. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_WALLET_APPROVE . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.is_approved='1' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3427. $result_arr = $conn->getQueryValue($query_str);
  3428. $approved_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3429. $dealer_count = "1";
  3430. //DSE COUNT
  3431. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $emp_cond . $manager_cond . " LIMIT 1 ";
  3432. $dsecount_arr = $conn->getQueryValue($query_str);
  3433. $dse_count = $dsecount_arr[0]->emp_count;
  3434. //REG DSE COUNT
  3435. $query_str = "SELECT COUNT(u.userid) emp_count FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.role>7 AND u.role<14 AND u.is_deleted=0 " . $user_cond . $manager_cond . " LIMIT 1 ";
  3436. $dsecount_arr = $conn->getQueryValue($query_str);
  3437. $regdse_count = $dsecount_arr[0]->emp_count;
  3438. $returnarr[] = array("name" => $val->dealer_name . " - " . $val->dealer_code, 'dealer_code' => $val->dealer_code, 'accumulation_point' => $accumulation_point, 'redemption_point' => $redemption_point, "approved_point" => $approved_point, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'regdse_count' => $regdse_count);
  3439. }
  3440. }
  3441. }
  3442. $manager_cond = ($mcond != '') ? " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted='0' " . $mcond . " )" : " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted='0' )";
  3443. //ACCUMULATION POINT
  3444. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='C' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3445. $result_arr = $conn->getQueryValue($query_str);
  3446. $accumulation_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3447. //REDEMPTION POINT
  3448. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_EPOINTS_HISTORY . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.transaction_type='D' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3449. $result_arr = $conn->getQueryValue($query_str);
  3450. $redemption_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3451. //APPROVED POINT
  3452. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER . " u " . $tablejoin . " JOIN " . TABLE_USER_WALLET_APPROVE . " h ON u.smpin=h.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND h.is_approved='1' " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3453. $result_arr = $conn->getQueryValue($query_str);
  3454. $approved_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3455. //DEALER COUNT
  3456. $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond;
  3457. $getdealercount_data = $conn->getQueryValue($getdealercount_str);
  3458. $dealer_count = $getdealercount_data[0]->dealer_count;
  3459. //DSE COUNT
  3460. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $emp_cond . $manager_cond . " LIMIT 1 ";
  3461. $dsecount_arr = $conn->getQueryValue($query_str);
  3462. $dse_count = $dsecount_arr[0]->emp_count;
  3463. //REG DSE COUNT
  3464. $query_str = "SELECT COUNT(u.userid) emp_count FROM " . TABLE_USER . " u " . $tablejoin . " WHERE u.role>7 AND u.role<14 AND u.is_deleted=0 " . $user_cond . $manager_cond . " LIMIT 1 ";
  3465. $dsecount_arr = $conn->getQueryValue($query_str);
  3466. $regdse_count = $dsecount_arr[0]->emp_count;
  3467. $total_arr = array('accumulation_point' => $accumulation_point, 'redemption_point' => $redemption_point, "approved_point" => $approved_point, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'regdse_count' => $regdse_count);
  3468. if (count($returnarr) > 0) {
  3469. $sno = 1;
  3470. foreach ($returnarr as $mkey => $res_user) {
  3471. // $header_arr=array('Users', 'Employee Count','Registered Count','Percentage %');
  3472. $i = 0;
  3473. $row++;
  3474. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['name']);
  3475. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['accumulation_point']);
  3476. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['redemption_point']);
  3477. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['approved_point']);
  3478. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['dealer_count']);
  3479. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['dse_count']);
  3480. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['regdse_count']);
  3481. }
  3482. }
  3483. //TOTAL
  3484. $row += 2;
  3485. $i = 0;
  3486. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "Total");
  3487. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['accumulation_point']);
  3488. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['redemption_point']);
  3489. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['approved_point']);
  3490. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['dealer_count']);
  3491. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['dse_count']);
  3492. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['regdse_count']);
  3493. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row);
  3494. setCellBorder($bordercells_arr, $objPHPExcel);
  3495. $objPHPExcel->getActiveSheet()->setTitle('REWARD POINTS REPORT');
  3496. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  3497. $fpath = "../" . S3_REPORT_URL;
  3498. $filename = "user_reward_points_report_" . uniqid() . ".xlsx";
  3499. $objWriter->save($fpath . $filename);
  3500. //S3 UPLOAD
  3501. //S3 LIB
  3502. require dirname(__FILE__) . '/awsfileserver.php';
  3503. //S3 OBJ
  3504. $s3 = awsfileserver::connectS3();
  3505. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  3506. //DELETE AFTER MOVE TO S3
  3507. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  3508. $obj = new stdClass();
  3509. $obj->key_name = S3_REPORT_URL . $filename;
  3510. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  3511. $returnarr = array("report_url" => $url);
  3512. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  3513. } else {
  3514. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  3515. }
  3516. } catch (PDOException $e) {
  3517. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  3518. }
  3519. }
  3520. // points_report_list_v2
  3521. function points_report_list_v2()
  3522. {
  3523. global $conn;
  3524. try {
  3525. $lang = "en_us";
  3526. $pageData = $conn->loadJSON($lang);
  3527. if (isset($_SESSION["userid"])) {
  3528. $zm_email = escape_str($_REQUEST["zm_email"]);
  3529. $rm_email = escape_str($_REQUEST["rm_email"]);
  3530. $am_email = escape_str($_REQUEST["am_email"]);
  3531. $user_cond = '';
  3532. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  3533. $mcond = '';
  3534. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  3535. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  3536. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  3537. //AM
  3538. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . ")";
  3539. } else {
  3540. //PAN
  3541. $user_cond = '';
  3542. }
  3543. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  3544. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  3545. $objPHPExcel = new PHPExcel();
  3546. $objPHPExcel->setActiveSheetIndex(0);
  3547. $row += 2;
  3548. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER REWARD POINTS");
  3549. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":M" . $row);
  3550. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  3551. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  3552. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  3553. $row++;
  3554. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, 'L' . $row, 'M' . $row, 'N' . $row);
  3555. setCellBorder($bordercells_arr, $objPHPExcel);
  3556. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  3557. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM', 'Accumulation Points', 'Redemption Point', 'Approved Point');
  3558. $i = 0;
  3559. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3560. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3561. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  3562. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3563. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3564. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3565. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3566. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3567. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3568. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3569. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3570. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  3571. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  3572. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  3573. $i = 0;
  3574. foreach ($header_arr as $val) {
  3575. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  3576. }
  3577. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  3578. if ($regtype == '1') {
  3579. $user_cond .= " AND e.is_current=1";
  3580. $query_str = "SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.doj,u.created_on,u.status,u.segment,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,e.created_on as emp_created_on FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $user_cond . " ";
  3581. } else {
  3582. $query_str = "SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.doj,u.created_on,u.status,u.segment,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,e.created_on as emp_created_on FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin LEFT JOIN " . DMS_DEALER . " d ON u.dealer_code=d.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $user_cond . " ";
  3583. }
  3584. $user_arr = $conn->getQueryValue($query_str);
  3585. if (count($user_arr) > 0) {
  3586. $sno = 1;
  3587. foreach ($user_arr as $mkey => $res_user) {
  3588. $i = 0;
  3589. $row++;
  3590. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  3591. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3592. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  3593. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  3594. switch ($res_user->segment) {
  3595. case '0':$segment_str = 'Student Learner';
  3596. break;
  3597. case '1':$segment_str = 'Parents/Guardian';
  3598. break;
  3599. case '2':$segment_str = 'Instructor';
  3600. break;
  3601. default:$segment_str = 'Student Learner';
  3602. break;
  3603. }
  3604. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  3605. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  3606. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3607. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  3608. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  3609. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  3610. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  3611. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  3612. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  3613. //ACCUMULATION POINT
  3614. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER_EPOINTS_HISTORY . " h WHERE h.smpin='" . $res_user->smpin . "' AND h.transaction_type='C' LIMIT 1 ";
  3615. $result_arr = $conn->getQueryValue($query_str);
  3616. $accumulation_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3617. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $accumulation_point);
  3618. //REDEMPTION POINT
  3619. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER_EPOINTS_HISTORY . " h WHERE h.smpin='" . $res_user->smpin . "' AND h.transaction_type='D' LIMIT 1 ";
  3620. $result_arr = $conn->getQueryValue($query_str);
  3621. $redemption_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3622. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $redemption_point);
  3623. //APPROVED POINT
  3624. $query_str = "SELECT SUM(h.points) as sumpoints FROM " . TABLE_USER_WALLET_APPROVE . " h WHERE h.is_approved='1' AND h.smpin='" . $res_user->smpin . "' LIMIT 1 ";
  3625. $result_arr = $conn->getQueryValue($query_str);
  3626. $approved_point = (count($result_arr) > 0 && $result_arr[0]->sumpoints) ? $result_arr[0]->sumpoints : '0';
  3627. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $approved_point);
  3628. }
  3629. }
  3630. $objPHPExcel->getActiveSheet()->setTitle('USER REWARD POINTS REPORT');
  3631. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  3632. $fpath = "../" . S3_REPORT_URL;
  3633. $filename = "user_reward_points_report_" . uniqid() . ".xlsx";
  3634. $objWriter->save($fpath . $filename);
  3635. //S3 UPLOAD
  3636. //S3 LIB
  3637. require dirname(__FILE__) . '/awsfileserver.php';
  3638. //S3 OBJ
  3639. $s3 = awsfileserver::connectS3();
  3640. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  3641. //DELETE AFTER MOVE TO S3
  3642. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  3643. $obj = new stdClass();
  3644. $obj->key_name = S3_REPORT_URL . $filename;
  3645. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  3646. $returnarr = array("report_url" => $url);
  3647. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  3648. } else {
  3649. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  3650. }
  3651. } catch (PDOException $e) {
  3652. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  3653. }
  3654. }
  3655. // sales_report_v2
  3656. function sales_report_v2()
  3657. {
  3658. global $conn;
  3659. try {
  3660. $lang = "en_us";
  3661. $pageData = $conn->loadJSON($lang);
  3662. //$_SESSION["userid"]=1;
  3663. if (isset($_SESSION["userid"])) {
  3664. $zm_email = escape_str($_REQUEST["zm_email"]);
  3665. $rm_email = escape_str($_REQUEST["rm_email"]);
  3666. $am_email = escape_str($_REQUEST["am_email"]);
  3667. $month = escape_str($_REQUEST["month"]);
  3668. $year = escape_str($_REQUEST["year"]);
  3669. if (!($month != '' && $year != '')) {
  3670. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  3671. }
  3672. $from_date = date('Y-m', strtotime($year . "-" . $month . "-01")) . "-01";
  3673. $to_date = date('Y-m-t', strtotime($year . "-" . $month . "-01"));
  3674. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  3675. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  3676. }
  3677. $user_cond = '';
  3678. $returnarr = array();
  3679. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  3680. $mcond = '';
  3681. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  3682. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  3683. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  3684. //AM
  3685. //$user_cond=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE is_deleted='0' ".$mcond.")";
  3686. } else {
  3687. //PAN
  3688. //$user_cond='';
  3689. }
  3690. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  3691. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  3692. $objPHPExcel = new PHPExcel();
  3693. $objPHPExcel->setActiveSheetIndex(0);
  3694. $row += 2;
  3695. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER SALES & TARGET REPORT");
  3696. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":D" . $row);
  3697. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  3698. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  3699. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  3700. $row++;
  3701. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "MONTH & YEAR :");
  3702. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  3703. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('F Y', strtotime($from_date)));
  3704. $objPHPExcel->getActiveSheet()->mergeCells("B" . $row . ":D" . $row);
  3705. $row++;
  3706. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row);
  3707. setCellBorder($bordercells_arr, $objPHPExcel);
  3708. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  3709. $header_arr = array('Users', 'Sales', 'Target');
  3710. $i = 0;
  3711. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  3712. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3713. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3714. $i = 0;
  3715. foreach ($header_arr as $val) {
  3716. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  3717. }
  3718. $tablejoin = '';
  3719. if ($am_email != 'all' && $am_email != '') {
  3720. //AM
  3721. $type = "am";
  3722. } else if ($rm_email != 'all' && $rm_email != '') {
  3723. //RM
  3724. $type = "rm";
  3725. } else if ($zm_email != 'all' && $zm_email != '') {
  3726. //ZM
  3727. $type = "zm";
  3728. } else {
  3729. //PAN
  3730. $user_cond = '';
  3731. $type = "pan";
  3732. }
  3733. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  3734. if ($regtype == '1') {
  3735. //$tablejoin=" JOIN ".DMS_EMPLOYEE." e ON u.smpin=e.smpin";
  3736. $user_cond .= " AND u.is_current=1 ";
  3737. }
  3738. if ($type == 'pan') {
  3739. //GET ALL ZM
  3740. $getzmquery_str = "SELECT zm_name,zm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 GROUP BY zm_email";
  3741. $getzm_data = $conn->getQueryValue($getzmquery_str);
  3742. if (count($getzm_data) > 0) {
  3743. foreach ($getzm_data as $val) {
  3744. $total_target = 0;
  3745. $total_sales = 0;
  3746. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted=0 )";
  3747. //TOTAL SALES
  3748. $query_str = "SELECT SUM(s.sales_count) as total_sales FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3749. $q1 = $query_str;
  3750. $result_arr = $conn->getQueryValue($query_str);
  3751. $total_sales = (count($result_arr) > 0 && $result_arr[0]->total_sales) ? $result_arr[0]->total_sales : '0';
  3752. //TOTAL TARGET
  3753. $query_str = "SELECT SUM(s.target) as total_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3754. $q2 = $query_str;
  3755. $result_arr = $conn->getQueryValue($query_str);
  3756. $total_target = (count($result_arr) > 0 && $result_arr[0]->total_target) ? $result_arr[0]->total_target : '0';
  3757. $returnarr[] = array("name" => $val->zm_name, 'email' => $val->zm_email, 'sales' => $total_sales, 'target' => $total_target);
  3758. }
  3759. }
  3760. } else if ($type == 'zm') {
  3761. //GET ALL RM
  3762. $getrmquery_str = "SELECT rm_name,rm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY rm_email";
  3763. $getrm_data = $conn->getQueryValue($getrmquery_str);
  3764. if (count($getrm_data) > 0) {
  3765. foreach ($getrm_data as $val) {
  3766. $total_target = 0;
  3767. $total_sales = 0;
  3768. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  3769. //TOTAL SALES
  3770. $query_str = "SELECT SUM(s.sales_count) as total_sales FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3771. $result_arr = $conn->getQueryValue($query_str);
  3772. $total_sales = (count($result_arr) > 0 && $result_arr[0]->total_sales) ? $result_arr[0]->total_sales : '0';
  3773. //TOTAL TARGET
  3774. $query_str = "SELECT SUM(s.target) as total_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3775. $result_arr = $conn->getQueryValue($query_str);
  3776. $total_target = (count($result_arr) > 0 && $result_arr[0]->total_target) ? $result_arr[0]->total_target : '0';
  3777. $returnarr[] = array("name" => $val->rm_name, 'email' => $val->rm_email, 'sales' => $total_sales, 'target' => $total_target);
  3778. }
  3779. }
  3780. } else if ($type == 'rm') {
  3781. //GET ALL AM
  3782. $getamquery_str = "SELECT am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY am_email";
  3783. $getam_data = $conn->getQueryValue($getamquery_str);
  3784. if (count($getam_data) > 0) {
  3785. foreach ($getam_data as $val) {
  3786. $total_target = 0;
  3787. $total_sales = 0;
  3788. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  3789. //TOTAL SALES
  3790. $query_str = "SELECT SUM(s.sales_count) as total_sales FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3791. $result_arr = $conn->getQueryValue($query_str);
  3792. $total_sales = (count($result_arr) > 0 && $result_arr[0]->total_sales) ? $result_arr[0]->total_sales : '0';
  3793. //TOTAL TARGET
  3794. $query_str = "SELECT SUM(s.target) as total_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3795. $result_arr = $conn->getQueryValue($query_str);
  3796. $total_target = (count($result_arr) > 0 && $result_arr[0]->total_target) ? $result_arr[0]->total_target : '0';
  3797. $returnarr[] = array("name" => $val->am_name, 'email' => $val->am_email, 'sales' => $total_sales, 'target' => $total_target);
  3798. }
  3799. }
  3800. } else if ($type == 'am') {
  3801. //GET ALL DEALER
  3802. $getdealerquery_str = "SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " ";
  3803. $getdealer_data = $conn->getQueryValue($getdealerquery_str);
  3804. if (count($getdealer_data) > 0) {
  3805. foreach ($getdealer_data as $val) {
  3806. $total_target = 0;
  3807. $total_sales = 0;
  3808. $manager_cond = " AND u.dealer_code='" . $val->dealer_code . "' ";
  3809. //TOTAL SALES
  3810. $query_str = "SELECT SUM(s.sales_count) as total_sales FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3811. $result_arr = $conn->getQueryValue($query_str);
  3812. $total_sales = (count($result_arr) > 0 && $result_arr[0]->total_sales) ? $result_arr[0]->total_sales : '0';
  3813. //TOTAL TARGET
  3814. $query_str = "SELECT SUM(s.target) as total_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3815. $result_arr = $conn->getQueryValue($query_str);
  3816. $total_target = (count($result_arr) > 0 && $result_arr[0]->total_target) ? $result_arr[0]->total_target : '0';
  3817. $returnarr[] = array("name" => $val->dealer_name . " - " . $val->dealer_code, 'dealer_code' => $val->dealer_code, 'sales' => $total_sales, 'target' => $total_target);
  3818. }
  3819. }
  3820. }
  3821. $manager_cond = ($mcond != '') ? " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted=0 " . $mcond . " )" : " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted=0 )";
  3822. //TOTAL SALES
  3823. $query_str = "SELECT SUM(s.sales_count) as total_sales FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,sale_date,sales_count FROM " . DMS_EMPLOYEE_SALES . " WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3824. $result_arr = $conn->getQueryValue($query_str);
  3825. $total_sales = (count($result_arr) > 0 && $result_arr[0]->total_sales) ? $result_arr[0]->total_sales : '0';
  3826. //TOTAL TARGET
  3827. $query_str = "SELECT SUM(s.target) as total_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT smpin,target FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "') s ON u.smpin=s.smpin WHERE u.status=1 " . $user_cond . " " . $manager_cond . " LIMIT 1 ";
  3828. $result_arr = $conn->getQueryValue($query_str);
  3829. $total_target = (count($result_arr) > 0 && $result_arr[0]->total_target) ? $result_arr[0]->total_target : '0';
  3830. $total_arr = array('sales' => $total_sales, 'target' => $total_target);
  3831. if (count($returnarr) > 0) {
  3832. $sno = 1;
  3833. foreach ($returnarr as $mkey => $res_user) {
  3834. // $header_arr=array('Users', 'Employee Count','Registered Count','Percentage %');
  3835. $i = 0;
  3836. $row++;
  3837. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['name']);
  3838. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['sales']);
  3839. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['target']);
  3840. }
  3841. }
  3842. //TOTAL
  3843. $row += 2;
  3844. $i = 0;
  3845. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "Total");
  3846. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['sales']);
  3847. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['target']);
  3848. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row);
  3849. setCellBorder($bordercells_arr, $objPHPExcel);
  3850. $objPHPExcel->getActiveSheet()->setTitle('SALES & TARGET REPORT');
  3851. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  3852. $fpath = "../" . S3_REPORT_URL;
  3853. $filename = "user_sales_target_report_" . uniqid() . ".xlsx";
  3854. $objWriter->save($fpath . $filename);
  3855. //S3 UPLOAD
  3856. //S3 LIB
  3857. require dirname(__FILE__) . '/awsfileserver.php';
  3858. //S3 OBJ
  3859. $s3 = awsfileserver::connectS3();
  3860. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  3861. //DELETE AFTER MOVE TO S3
  3862. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  3863. $obj = new stdClass();
  3864. $obj->key_name = S3_REPORT_URL . $filename;
  3865. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  3866. $returnarr = array("report_url" => $url);
  3867. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  3868. } else {
  3869. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  3870. }
  3871. } catch (PDOException $e) {
  3872. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  3873. }
  3874. }
  3875. // sales_report_list_v2
  3876. function sales_report_list_v2()
  3877. {
  3878. global $conn;
  3879. try {
  3880. $lang = "en_us";
  3881. $pageData = $conn->loadJSON($lang);
  3882. if (isset($_SESSION["userid"])) {
  3883. $zm_email = escape_str($_REQUEST["zm_email"]);
  3884. $rm_email = escape_str($_REQUEST["rm_email"]);
  3885. $am_email = escape_str($_REQUEST["am_email"]);
  3886. $month = escape_str($_REQUEST["month"]);
  3887. $year = escape_str($_REQUEST["year"]);
  3888. if (!($month != '' && $year != '')) {
  3889. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  3890. }
  3891. $from_date = date('Y-m', strtotime($year . "-" . $month . "-01")) . "-01";
  3892. $to_date = date('Y-m-t', strtotime($year . "-" . $month . "-01"));
  3893. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  3894. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  3895. }
  3896. $user_cond = '';
  3897. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  3898. $mcond = '';
  3899. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  3900. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  3901. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  3902. //AM
  3903. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . ")";
  3904. } else {
  3905. //PAN
  3906. $user_cond = '';
  3907. }
  3908. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  3909. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  3910. $objPHPExcel = new PHPExcel();
  3911. $objPHPExcel->setActiveSheetIndex(0);
  3912. $row += 2;
  3913. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER SALE & TARGET REPORT");
  3914. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":L" . $row);
  3915. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  3916. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  3917. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  3918. $row++;
  3919. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "MONTH & YEAR :");
  3920. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  3921. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('F Y', strtotime($from_date)));
  3922. $objPHPExcel->getActiveSheet()->mergeCells("B" . $row . ":D" . $row);
  3923. $row++;
  3924. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, 'L' . $row, 'M' . $row);
  3925. setCellBorder($bordercells_arr, $objPHPExcel);
  3926. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  3927. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM', 'Sales', 'Target');
  3928. $i = 0;
  3929. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3930. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3931. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  3932. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3933. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3934. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3935. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3936. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  3937. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3938. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3939. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  3940. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  3941. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  3942. $i = 0;
  3943. foreach ($header_arr as $val) {
  3944. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  3945. }
  3946. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  3947. if ($regtype == '1') {
  3948. $user_cond .= " AND e.is_current=1";
  3949. $query_str = "SELECT e.smpin,e.fname,e.lname,e.mobile as mobileno,e.dealer_code,e.segment,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status=1 " . $user_cond . " ";
  3950. } else {
  3951. $query_str = "SELECT e.smpin,e.fname,e.lname,e.mobile as mobileno,e.dealer_code,e.segment,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . DMS_DEALER . " d ON e.dealer_code=d.dealer_code WHERE e.status=1 " . $user_cond . " ";
  3952. }
  3953. $user_arr = $conn->getQueryValue($query_str);
  3954. if (count($user_arr) > 0) {
  3955. $sno = 1;
  3956. foreach ($user_arr as $mkey => $res_user) {
  3957. $i = 0;
  3958. $row++;
  3959. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  3960. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3961. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  3962. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  3963. switch ($res_user->segment) {
  3964. case '0':$segment_str = 'Student Learner';
  3965. break;
  3966. case '1':$segment_str = 'Parents/Guardian';
  3967. break;
  3968. case '2':$segment_str = 'Instructor';
  3969. break;
  3970. default:$segment_str = 'Student Learner';
  3971. break;
  3972. }
  3973. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  3974. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  3975. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  3976. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  3977. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  3978. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  3979. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  3980. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  3981. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  3982. //TOTAL SALES
  3983. $query_str = "SELECT SUM(s.sales_count) as total_sales FROM " . DMS_EMPLOYEE_SALES . " s WHERE sale_date>='" . $from_date . "' AND sale_date<='" . $to_date . "' AND s.smpin='" . $res_user->smpin . "' LIMIT 1 ";
  3984. $result_arr = $conn->getQueryValue($query_str);
  3985. $total_sales = (count($result_arr) > 0 && $result_arr[0]->total_sales) ? $result_arr[0]->total_sales : '0';
  3986. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_sales);
  3987. //TOTAL TARGET
  3988. $query_str = "SELECT SUM(s.target) as total_target FROM " . TABLE_USER_SALETARGET . " s WHERE s.smpin='" . $res_user->smpin . "' AND sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' LIMIT 1 ";
  3989. $result_arr = $conn->getQueryValue($query_str);
  3990. $total_target = (count($result_arr) > 0 && $result_arr[0]->total_target) ? $result_arr[0]->total_target : '0';
  3991. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_target);
  3992. }
  3993. }
  3994. $objPHPExcel->getActiveSheet()->setTitle('USER SALE & TARGET REPORT');
  3995. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  3996. $fpath = "../" . S3_REPORT_URL;
  3997. $filename = "user_sales_target_report_" . uniqid() . ".xlsx";
  3998. $objWriter->save($fpath . $filename);
  3999. //S3 UPLOAD
  4000. //S3 LIB
  4001. require dirname(__FILE__) . '/awsfileserver.php';
  4002. //S3 OBJ
  4003. $s3 = awsfileserver::connectS3();
  4004. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  4005. //DELETE AFTER MOVE TO S3
  4006. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  4007. $obj = new stdClass();
  4008. $obj->key_name = S3_REPORT_URL . $filename;
  4009. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  4010. $returnarr = array("report_url" => $url);
  4011. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  4012. } else {
  4013. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  4014. }
  4015. } catch (PDOException $e) {
  4016. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  4017. }
  4018. }
  4019. // certification_report_v2
  4020. function certification_report_v2()
  4021. {
  4022. global $conn;
  4023. try {
  4024. $lang = "en_us";
  4025. $pageData = $conn->loadJSON($lang);
  4026. //$_SESSION["userid"]=1;
  4027. if (isset($_SESSION["userid"])) {
  4028. $zm_email = escape_str($_REQUEST["zm_email"]);
  4029. $rm_email = escape_str($_REQUEST["rm_email"]);
  4030. $am_email = escape_str($_REQUEST["am_email"]);
  4031. $user_cond = '';
  4032. $returnarr = array();
  4033. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  4034. $mcond = '';
  4035. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  4036. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  4037. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  4038. //AM
  4039. //$user_cond=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE is_deleted='0' ".$mcond.")";
  4040. } else {
  4041. //PAN
  4042. //$user_cond='';
  4043. }
  4044. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  4045. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  4046. $objPHPExcel = new PHPExcel();
  4047. $objPHPExcel->setActiveSheetIndex(0);
  4048. $row += 2;
  4049. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER CERTIFICATION REPORT");
  4050. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row);
  4051. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  4052. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  4053. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  4054. $row++;
  4055. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row);
  4056. setCellBorder($bordercells_arr, $objPHPExcel);
  4057. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  4058. $header_arr = array('Users', 'Base Completed', 'Bronze Completed', 'Silver Completed', 'Gold Completed');
  4059. $i = 0;
  4060. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  4061. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4062. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4063. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4064. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4065. $i = 0;
  4066. foreach ($header_arr as $val) {
  4067. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  4068. }
  4069. $tablejoin = '';
  4070. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  4071. if ($regtype == '1') {
  4072. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  4073. $user_cond = " AND e.is_current=1 ";
  4074. }
  4075. if ($am_email != 'all' && $am_email != '') {
  4076. //AM
  4077. $type = "am";
  4078. } else if ($rm_email != 'all' && $rm_email != '') {
  4079. //RM
  4080. $type = "rm";
  4081. } else if ($zm_email != 'all' && $zm_email != '') {
  4082. //ZM
  4083. $type = "zm";
  4084. } else {
  4085. //PAN
  4086. $user_cond = '';
  4087. $type = "pan";
  4088. }
  4089. if ($type == 'pan') {
  4090. //GET ALL ZM
  4091. $getzmquery_str = "SELECT zm_name,zm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 GROUP BY zm_email";
  4092. $getzm_data = $conn->getQueryValue($getzmquery_str);
  4093. if (count($getzm_data) > 0) {
  4094. foreach ($getzm_data as $val) {
  4095. $base_count = 0;
  4096. $bronze_count = 0;
  4097. $silver_count = 0;
  4098. $gold_count = 0;
  4099. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted=0 )";
  4100. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=1 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4101. $base_arr = $conn->getQueryValue($query_str);
  4102. $base_count = (count($base_arr) > 0) ? $base_arr[0]->learn_count : '0';
  4103. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=2 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4104. $bronze_arr = $conn->getQueryValue($query_str);
  4105. $bronze_count = (count($bronze_arr) > 0) ? $bronze_arr[0]->learn_count : '0';
  4106. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=4 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4107. $silver_arr = $conn->getQueryValue($query_str);
  4108. $silver_count = (count($silver_arr) > 0) ? $silver_arr[0]->learn_count : '0';
  4109. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=6 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4110. $gold_arr = $conn->getQueryValue($query_str);
  4111. $gold_count = (count($gold_arr) > 0) ? $gold_arr[0]->learn_count : '0';
  4112. $returnarr[] = array("name" => $val->zm_name, 'email' => $val->zm_email, 'base' => $base_count, 'bronze' => $bronze_count, 'silver' => $silver_count, 'gold' => $gold_count);
  4113. }
  4114. }
  4115. } else if ($type == 'zm') {
  4116. //GET ALL RM
  4117. $getrmquery_str = "SELECT rm_name,rm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY rm_email";
  4118. $getrm_data = $conn->getQueryValue($getrmquery_str);
  4119. if (count($getrm_data) > 0) {
  4120. foreach ($getrm_data as $val) {
  4121. $base_count = 0;
  4122. $bronze_count = 0;
  4123. $silver_count = 0;
  4124. $gold_count = 0;
  4125. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  4126. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=1 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4127. $base_arr = $conn->getQueryValue($query_str);
  4128. $base_count = (count($base_arr) > 0) ? $base_arr[0]->learn_count : '0';
  4129. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=2 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4130. $bronze_arr = $conn->getQueryValue($query_str);
  4131. $bronze_count = (count($bronze_arr) > 0) ? $bronze_arr[0]->learn_count : '0';
  4132. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=4 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4133. $silver_arr = $conn->getQueryValue($query_str);
  4134. $silver_count = (count($silver_arr) > 0) ? $silver_arr[0]->learn_count : '0';
  4135. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=6 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4136. $gold_arr = $conn->getQueryValue($query_str);
  4137. $gold_count = (count($gold_arr) > 0) ? $gold_arr[0]->learn_count : '0';
  4138. $returnarr[] = array("name" => $val->rm_name, 'email' => $val->rm_email, 'base' => $base_count, 'bronze' => $bronze_count, 'silver' => $silver_count, 'gold' => $gold_count);
  4139. }
  4140. }
  4141. } else if ($type == 'rm') {
  4142. //GET ALL AM
  4143. $getamquery_str = "SELECT am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY am_email";
  4144. $getam_data = $conn->getQueryValue($getamquery_str);
  4145. if (count($getam_data) > 0) {
  4146. foreach ($getam_data as $val) {
  4147. $base_count = 0;
  4148. $bronze_count = 0;
  4149. $silver_count = 0;
  4150. $gold_count = 0;
  4151. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  4152. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=1 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4153. $base_arr = $conn->getQueryValue($query_str);
  4154. $base_count = (count($base_arr) > 0) ? $base_arr[0]->learn_count : '0';
  4155. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=2 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4156. $bronze_arr = $conn->getQueryValue($query_str);
  4157. $bronze_count = (count($bronze_arr) > 0) ? $bronze_arr[0]->learn_count : '0';
  4158. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=4 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4159. $silver_arr = $conn->getQueryValue($query_str);
  4160. $silver_count = (count($silver_arr) > 0) ? $silver_arr[0]->learn_count : '0';
  4161. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=6 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4162. $gold_arr = $conn->getQueryValue($query_str);
  4163. $gold_count = (count($gold_arr) > 0) ? $gold_arr[0]->learn_count : '0';
  4164. $returnarr[] = array("name" => $val->am_name, 'email' => $val->am_email, 'base' => $base_count, 'bronze' => $bronze_count, 'silver' => $silver_count, 'gold' => $gold_count);
  4165. }
  4166. }
  4167. } else if ($type == 'am') {
  4168. //GET ALL DEALER
  4169. $getdealerquery_str = "SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " ";
  4170. $getdealer_data = $conn->getQueryValue($getdealerquery_str);
  4171. if (count($getdealer_data) > 0) {
  4172. foreach ($getdealer_data as $val) {
  4173. $base_count = 0;
  4174. $bronze_count = 0;
  4175. $silver_count = 0;
  4176. $gold_count = 0;
  4177. $manager_cond = " AND u.dealer_code='" . $val->dealer_code . "' ";
  4178. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=1 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4179. $base_arr = $conn->getQueryValue($query_str);
  4180. $base_count = (count($base_arr) > 0) ? $base_arr[0]->learn_count : '0';
  4181. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=2 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4182. $bronze_arr = $conn->getQueryValue($query_str);
  4183. $bronze_count = (count($bronze_arr) > 0) ? $bronze_arr[0]->learn_count : '0';
  4184. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=4 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4185. $silver_arr = $conn->getQueryValue($query_str);
  4186. $silver_count = (count($silver_arr) > 0) ? $silver_arr[0]->learn_count : '0';
  4187. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=6 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4188. $gold_arr = $conn->getQueryValue($query_str);
  4189. $gold_count = (count($gold_arr) > 0) ? $gold_arr[0]->learn_count : '0';
  4190. $returnarr[] = array("name" => $val->dealer_name . " - " . $val->dealer_code, 'dealer_code' => $val->dealer_code, 'base' => $base_count, 'bronze' => $bronze_count, 'silver' => $silver_count, 'gold' => $gold_count);
  4191. }
  4192. }
  4193. }
  4194. $manager_cond = ($mcond != '') ? " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' " . $mcond . " AND status=1 AND is_deleted=0 )" : " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted=0 )";
  4195. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=1 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4196. $base_arr = $conn->getQueryValue($query_str);
  4197. $base_count = (count($base_arr) > 0) ? $base_arr[0]->learn_count : '0';
  4198. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=2 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4199. $bronze_arr = $conn->getQueryValue($query_str);
  4200. $bronze_count = (count($bronze_arr) > 0) ? $bronze_arr[0]->learn_count : '0';
  4201. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=4 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4202. $silver_arr = $conn->getQueryValue($query_str);
  4203. $silver_count = (count($silver_arr) > 0) ? $silver_arr[0]->learn_count : '0';
  4204. $query_str = "SELECT COUNT(l.id) as learn_count FROM " . TABLE_USER . " u " . $tablejoin . " JOIN (SELECT id,smpin FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=6 AND status=3 ) l ON u.smpin=l.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0" . $user_cond . $manager_cond . " LIMIT 1 ";
  4205. $gold_arr = $conn->getQueryValue($query_str);
  4206. $gold_count = (count($gold_arr) > 0) ? $gold_arr[0]->learn_count : '0';
  4207. $total_arr = array('base' => $base_count, 'bronze' => $bronze_count, 'silver' => $silver_count, 'gold' => $gold_count);
  4208. if (count($returnarr) > 0) {
  4209. $sno = 1;
  4210. foreach ($returnarr as $mkey => $res_user) {
  4211. // $header_arr=array('Users', 'Employee Count','Registered Count','Percentage %');
  4212. $i = 0;
  4213. $row++;
  4214. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['name']);
  4215. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['base']);
  4216. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['bronze']);
  4217. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['silver']);
  4218. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['gold']);
  4219. }
  4220. }
  4221. //TOTAL
  4222. $row += 2;
  4223. $i = 0;
  4224. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "Total");
  4225. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['base']);
  4226. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['bronze']);
  4227. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['silver']);
  4228. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['gold']);
  4229. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row);
  4230. setCellBorder($bordercells_arr, $objPHPExcel);
  4231. $objPHPExcel->getActiveSheet()->setTitle('CERTIFICATION REPORT');
  4232. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  4233. $fpath = "../" . S3_REPORT_URL;
  4234. $filename = "user_certification_report_" . uniqid() . ".xlsx";
  4235. $objWriter->save($fpath . $filename);
  4236. //S3 UPLOAD
  4237. //S3 LIB
  4238. require dirname(__FILE__) . '/awsfileserver.php';
  4239. //S3 OBJ
  4240. $s3 = awsfileserver::connectS3();
  4241. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  4242. //DELETE AFTER MOVE TO S3
  4243. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  4244. $obj = new stdClass();
  4245. $obj->key_name = S3_REPORT_URL . $filename;
  4246. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  4247. $returnarr = array("report_url" => $url);
  4248. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  4249. } else {
  4250. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  4251. }
  4252. } catch (PDOException $e) {
  4253. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  4254. }
  4255. }
  4256. // certification_report_list_v2
  4257. function certification_report_list_v2()
  4258. {
  4259. global $conn;
  4260. try {
  4261. $lang = "en_us";
  4262. $pageData = $conn->loadJSON($lang);
  4263. //$_SESSION["userid"]=1;
  4264. if (isset($_SESSION["userid"])) {
  4265. $zm_email = escape_str($_REQUEST["zm_email"]);
  4266. $rm_email = escape_str($_REQUEST["rm_email"]);
  4267. $am_email = escape_str($_REQUEST["am_email"]);
  4268. $user_cond = '';
  4269. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  4270. $mcond = '';
  4271. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  4272. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  4273. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  4274. //AM
  4275. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . ")";
  4276. } else {
  4277. //PAN
  4278. $user_cond = '';
  4279. }
  4280. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  4281. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  4282. $objPHPExcel = new PHPExcel();
  4283. $objPHPExcel->setActiveSheetIndex(0);
  4284. $row += 2;
  4285. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CERTIFICATION REPORT");
  4286. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  4287. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  4288. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  4289. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  4290. $row++;
  4291. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, "O" . $row, "P" . $row, "Q" . $row, "R" . $row, "S" . $row, "T" . $row, "U" . $row, "V" . $row);
  4292. setCellBorder($bordercells_arr, $objPHPExcel);
  4293. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  4294. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Email', 'Base', 'Bronze', 'Silver Level 1 Status', 'Silver Level 2 Status', 'Gold Level 2 Status', 'Gold Level 2 Status', 'Base Completed date', 'Bronze Completed date', 'Silver Completed date', 'Gold Completed date', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  4295. $i = 0;
  4296. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4297. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4298. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  4299. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4300. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4301. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  4302. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4303. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4304. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4305. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4306. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4307. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4308. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4309. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4310. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4311. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4312. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4313. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4314. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4315. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4316. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4317. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4318. $i = 0;
  4319. foreach ($header_arr as $val) {
  4320. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  4321. }
  4322. $tablejoin = '';
  4323. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  4324. if ($regtype == '1') {
  4325. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  4326. $user_cond .= " AND e.is_current=1 ";
  4327. }
  4328. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`,u.segment,a.status as base_status,b.status as bronze_status,c.status as silver_status,d.status as gold_status,a.created_on as base_created_on,b.created_on as bronze_created_on,c.created_on as silver_created_on,d.created_on as gold_created_on,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM " . TABLE_USER . " as u " . $tablejoin . " LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code LEFT JOIN (SELECT id,smpin,status,created_on FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=1) as a ON a.smpin=u.smpin LEFT JOIN (SELECT id,smpin,status,created_on FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=2) as b ON b.smpin=u.smpin LEFT JOIN (SELECT id,smpin,status,created_on FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=4) as c ON c.smpin=u.smpin LEFT JOIN (SELECT id,smpin,status,created_on FROM " . TABLE_USER_LEARNING . " WHERE lvl_id=6) as f ON f.smpin=u.smpin WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $user_cond . " GROUP BY u.smpin ORDER BY gold_status ASC,silver_status ASC,bronze_status ASC,base_status ASC,u.userid DESC ";
  4329. $user_arr = $conn->getQueryValue($query_str);
  4330. if (count($user_arr) > 0) {
  4331. $sno = 1;
  4332. foreach ($user_arr as $mkey => $res_user) {
  4333. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Total Sales','Total Target','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  4334. $i = 0;
  4335. $row++;
  4336. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  4337. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  4338. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  4339. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  4340. switch ($res_user->segment) {
  4341. case '0':$segment_str = 'Student Learner';
  4342. break;
  4343. case '1':$segment_str = 'Parents/Guardian';
  4344. break;
  4345. case '2':$segment_str = 'Instructor';
  4346. break;
  4347. default:$segment_str = 'Student Learner';
  4348. break;
  4349. }
  4350. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  4351. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  4352. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  4353. $base_date_str = '';
  4354. $bronze_date_str = '';
  4355. $silver_date_str = '';
  4356. $gold_date_str = '';
  4357. //,a.created_on as base_created_on,b.created_on as bronze_created_on,c.created_on as silver_created_on,d.created_on as gold_created_on
  4358. switch ($res_user->base_status) {
  4359. case "0":$base_lvl1_str = 'Not Started';
  4360. $base_lvl2_str = 'Not Started';
  4361. break;
  4362. case "6":$base_lvl1_str = 'Failed';
  4363. $base_lvl2_str = 'Not Started';
  4364. $base_date_str = date('d-m-Y', strtotime($res_user->base_created_on));
  4365. break;
  4366. case "7":$base_lvl1_str = 'Completed';
  4367. $base_lvl2_str = 'Not Started';
  4368. break; // same
  4369. case "4":$base_lvl1_str = 'Completed';
  4370. $base_lvl2_str = 'Not Started';
  4371. break; // same
  4372. case "2":$base_lvl1_str = 'Completed';
  4373. $base_lvl2_str = 'Failed';
  4374. $base_date_str = date('d-m-Y', strtotime($res_user->base_created_on));
  4375. break;
  4376. case "3":$base_lvl1_str = 'Completed';
  4377. $base_lvl2_str = 'Completed';
  4378. $base_date_str = date('d-m-Y', strtotime($res_user->base_created_on));
  4379. break;
  4380. default:$base_lvl1_str = 'Not Started';
  4381. $base_lvl2_str = 'Not Started';
  4382. break;
  4383. }
  4384. switch ($res_user->bronze_status) {
  4385. case "0":$bronze_lvl1_str = 'Not Started';
  4386. $bronze_lvl2_str = 'Not Started';
  4387. break;
  4388. case "6":$bronze_lvl1_str = 'Failed';
  4389. $bronze_lvl2_str = 'Not Started';
  4390. $bronze_date_str = date('d-m-Y', strtotime($res_user->bronze_created_on));
  4391. break;
  4392. case "7":$bronze_lvl1_str = 'Completed';
  4393. $bronze_lvl2_str = 'Not Started';
  4394. break; // same
  4395. case "4":$bronze_lvl1_str = 'Completed';
  4396. $bronze_lvl2_str = 'Not Started';
  4397. break; // same
  4398. case "2":$bronze_lvl1_str = 'Completed';
  4399. $bronze_lvl2_str = 'Failed';
  4400. $bronze_date_str = date('d-m-Y', strtotime($res_user->bronze_created_on));
  4401. break;
  4402. case "3":$bronze_lvl1_str = 'Completed';
  4403. $bronze_lvl2_str = 'Completed';
  4404. $bronze_date_str = date('d-m-Y', strtotime($res_user->bronze_created_on));
  4405. break;
  4406. default:$bronze_lvl1_str = 'Not Started';
  4407. $bronze_lvl2_str = 'Not Started';
  4408. break;
  4409. }
  4410. switch ($res_user->silver_status) {
  4411. case "0":$silver_lvl1_str = 'Not Started';
  4412. $silver_lvl2_str = 'Not Started';
  4413. break;
  4414. case "6":$silver_lvl1_str = 'Failed';
  4415. $silver_lvl2_str = 'Not Started';
  4416. $silver_date_str = date('d-m-Y', strtotime($res_user->silver_created_on));
  4417. break;
  4418. case "7":$silver_lvl1_str = 'Completed';
  4419. $silver_lvl2_str = 'Not Started';
  4420. break; // same
  4421. case "4":$silver_lvl1_str = 'Completed';
  4422. $silver_lvl2_str = 'Not Started';
  4423. break; // same
  4424. case "2":$silver_lvl1_str = 'Completed';
  4425. $silver_lvl2_str = 'Failed';
  4426. $silver_date_str = date('d-m-Y', strtotime($res_user->silver_created_on));
  4427. break;
  4428. case "3":$silver_lvl1_str = 'Completed';
  4429. $silver_lvl2_str = 'Completed';
  4430. $silver_date_str = date('d-m-Y', strtotime($res_user->silver_created_on));
  4431. break;
  4432. default:$silver_lvl1_str = 'Not Started';
  4433. $silver_lvl2_str = 'Not Started';
  4434. break;
  4435. }
  4436. switch ($res_user->gold_status) {
  4437. case "0":$gold_lvl1_str = 'Not Started';
  4438. $gold_lvl2_str = 'Not Started';
  4439. break;
  4440. case "6":$gold_lvl1_str = 'Failed';
  4441. $gold_lvl2_str = 'Not Started';
  4442. $gold_date_str = date('d-m-Y', strtotime($res_user->gold_created_on));
  4443. break;
  4444. case "7":$gold_lvl1_str = 'Completed';
  4445. $gold_lvl2_str = 'Not Started';
  4446. break; // same
  4447. case "4":$gold_lvl1_str = 'Completed';
  4448. $gold_lvl2_str = 'Not Started';
  4449. break; // same
  4450. case "2":$gold_lvl1_str = 'Completed';
  4451. $gold_lvl2_str = 'Failed';
  4452. $gold_date_str = date('d-m-Y', strtotime($res_user->gold_created_on));
  4453. break;
  4454. case "3":$gold_lvl1_str = 'Completed';
  4455. $gold_lvl2_str = 'Completed';
  4456. $gold_date_str = date('d-m-Y', strtotime($res_user->gold_created_on));
  4457. break;
  4458. default:$gold_lvl1_str = 'Not Started';
  4459. $gold_lvl2_str = 'Not Started';
  4460. break;
  4461. }
  4462. //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$base_lvl1_str);
  4463. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $base_lvl2_str);
  4464. //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$bronze_lvl1_str);
  4465. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $bronze_lvl2_str);
  4466. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $silver_lvl1_str);
  4467. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $silver_lvl2_str);
  4468. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $gold_lvl1_str);
  4469. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $gold_lvl2_str);
  4470. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $base_date_str);
  4471. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $bronze_date_str);
  4472. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $silver_date_str);
  4473. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $gold_date_str);
  4474. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  4475. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  4476. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  4477. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  4478. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  4479. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  4480. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  4481. }
  4482. }
  4483. $objPHPExcel->getActiveSheet()->setTitle('CERTIFICATION REPORT');
  4484. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  4485. $fpath = "../" . S3_REPORT_URL;
  4486. $filename = "certification_" . uniqid() . ".xlsx";
  4487. $objWriter->save($fpath . $filename);
  4488. //S3 UPLOAD
  4489. //S3 LIB
  4490. require dirname(__FILE__) . '/awsfileserver.php';
  4491. //S3 OBJ
  4492. $s3 = awsfileserver::connectS3();
  4493. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  4494. //DELETE AFTER MOVE TO S3
  4495. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  4496. $obj = new stdClass();
  4497. $obj->key_name = S3_REPORT_URL . $filename;
  4498. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  4499. $returnarr = array("report_url" => $url);
  4500. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  4501. } else {
  4502. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  4503. }
  4504. } catch (PDOException $e) {
  4505. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  4506. }
  4507. }
  4508. // enquiry_report_v2
  4509. function enquiry_report_v2()
  4510. {
  4511. global $conn;
  4512. try {
  4513. $lang = "en_us";
  4514. $pageData = $conn->loadJSON($lang);
  4515. //$_SESSION["userid"]=1;
  4516. if (isset($_SESSION["userid"])) {
  4517. $zm_email = escape_str($_REQUEST["zm_email"]);
  4518. $rm_email = escape_str($_REQUEST["rm_email"]);
  4519. $am_email = escape_str($_REQUEST["am_email"]);
  4520. $from_date = escape_str($_REQUEST["from_date"]);
  4521. $to_date = escape_str($_REQUEST["to_date"]);
  4522. if (!($from_date != '' && $to_date != '')) {
  4523. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  4524. }
  4525. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  4526. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  4527. }
  4528. $user_cond = '';
  4529. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  4530. $mcond = '';
  4531. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  4532. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  4533. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  4534. //AM
  4535. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . ")";
  4536. } else {
  4537. //PAN
  4538. $user_cond = '';
  4539. }
  4540. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  4541. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  4542. $objPHPExcel = new PHPExcel();
  4543. $objPHPExcel->setActiveSheetIndex(0);
  4544. $row += 2;
  4545. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ENQUIRY REPORT");
  4546. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":Q" . $row);
  4547. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  4548. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  4549. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  4550. $row++;
  4551. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  4552. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  4553. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  4554. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  4555. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  4556. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  4557. $row++;
  4558. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, "O" . $row, "P" . $row, "Q" . $row);
  4559. setCellBorder($bordercells_arr, $objPHPExcel);
  4560. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  4561. $header_arr = array('S.No', 'Source', 'SMPIN', 'DSE', 'Model Name', 'Variant Name', 'Name', 'Mobile', 'Email', 'Created On', 'Brochure', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  4562. $i = 0;
  4563. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4564. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4565. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  4566. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4567. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  4568. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  4569. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  4570. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4571. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4572. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4573. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4574. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4575. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4576. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4577. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4578. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4579. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4580. $i = 0;
  4581. foreach ($header_arr as $val) {
  4582. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  4583. }
  4584. $type = escape_str($_REQUEST["type"]);
  4585. if (!empty($type) && $type != '') {
  4586. switch ($type) {
  4587. case '0':$user_cond .= ' AND e.customerid=0';
  4588. break;
  4589. case '1':$user_cond .= ' AND e.customerid!=0';
  4590. break;
  4591. }
  4592. }
  4593. $query_str = "SELECT SQL_CALC_FOUND_ROWS e.id,CASE WHEN e.customerid=0 THEN 'HYPERM App' WHEN e.customerid!=0 THEN 'Customer Experience App' END as source_type,CASE WHEN e.customerid=0 THEN u.smpin WHEN e.customerid!=0 THEN c.smpin END as enq_smpin,CASE WHEN e.customerid=0 THEN CONCAT(u.fname,u.lname) WHEN e.customerid!=0 THEN c.dsename END as enq_dsename , m.model_name,v.title as variant_name ,d.`dealer_code`, d.`dealer_name`,d.zone,d.`zm_name`, d.`rm_name`, d.`am_name`, e.`name`, e.`mobile`, e.`email`, e.is_brochure, e.created_on
  4594. FROM " . TABLE_EXPLORE_ENQUIRY . " as e
  4595. JOIN " . TABLE_USER . " as u ON e.user_id=u.userid
  4596. JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code
  4597. JOIN " . TABLE_COMPARE_MODEL . " as m ON m.model_id=e.model_id
  4598. JOIN " . TABLE_MODEL_VARIANT . " v ON e.variant_id=v.id
  4599. LEFT JOIN " . TABLE__CUSTOMEREXP . " c ON c.id=e.customerid
  4600. WHERE e.created_on>='" . $from_date . " 00:00:00' AND e.created_on<='" . $to_date . " 23:59:59' " . $user_cond . " ORDER BY e.id ASC";
  4601. $user_arr = $conn->getQueryValue($query_str);
  4602. if (count($user_arr) > 0) {
  4603. $sno = 1;
  4604. foreach ($user_arr as $mkey => $res_user) {
  4605. $i = 0;
  4606. $row++;
  4607. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  4608. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->source_type);
  4609. $objPHPExcel->getActiveSheet()->getStyle('C' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  4610. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->enq_smpin);
  4611. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->enq_dsename);
  4612. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->model_name);
  4613. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->variant_name);
  4614. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->name);
  4615. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile);
  4616. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->email);
  4617. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  4618. $brochure_status = ($res_user->is_brochure == '1') ? "Shared" : "Not Shared";
  4619. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $brochure_status);
  4620. $objPHPExcel->getActiveSheet()->getStyle('L' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  4621. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  4622. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  4623. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  4624. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  4625. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  4626. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  4627. }
  4628. }
  4629. $objPHPExcel->getActiveSheet()->setTitle('ENQUIRY REPORT');
  4630. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  4631. $fpath = "../" . S3_REPORT_URL;
  4632. $filename = "enquiry_" . uniqid() . ".xlsx";
  4633. $objWriter->save($fpath . $filename);
  4634. //S3 UPLOAD
  4635. //S3 LIB
  4636. require dirname(__FILE__) . '/awsfileserver.php';
  4637. //S3 OBJ
  4638. $s3 = awsfileserver::connectS3();
  4639. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  4640. //DELETE AFTER MOVE TO S3
  4641. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  4642. $obj = new stdClass();
  4643. $obj->key_name = S3_REPORT_URL . $filename;
  4644. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  4645. $returnarr = array("report_url" => $url);
  4646. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  4647. } else {
  4648. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  4649. }
  4650. } catch (PDOException $e) {
  4651. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  4652. }
  4653. }
  4654. // customerexperience_report_v2
  4655. function customerexperience_report_v2()
  4656. {
  4657. global $conn;
  4658. try {
  4659. $lang = "en_us";
  4660. $pageData = $conn->loadJSON($lang);
  4661. //$_SESSION["userid"]=1;
  4662. if (isset($_SESSION["userid"])) {
  4663. $zm_email = escape_str($_REQUEST["zm_email"]);
  4664. $rm_email = escape_str($_REQUEST["rm_email"]);
  4665. $am_email = escape_str($_REQUEST["am_email"]);
  4666. $from_date = escape_str($_REQUEST["from_date"]);
  4667. $to_date = escape_str($_REQUEST["to_date"]);
  4668. if (!($from_date != '' && $to_date != '')) {
  4669. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  4670. }
  4671. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  4672. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  4673. }
  4674. $user_cond = '';
  4675. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  4676. $mcond = '';
  4677. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  4678. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  4679. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  4680. //AM
  4681. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . ")";
  4682. } else {
  4683. //PAN
  4684. $user_cond = '';
  4685. }
  4686. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  4687. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  4688. $objPHPExcel = new PHPExcel();
  4689. $objPHPExcel->setActiveSheetIndex(0);
  4690. $row += 2;
  4691. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "CUSTOMER EXPERIENCE FORM REPORT");
  4692. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":N" . $row);
  4693. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  4694. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  4695. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  4696. $row++;
  4697. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  4698. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  4699. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  4700. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  4701. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  4702. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  4703. $row++;
  4704. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row);
  4705. setCellBorder($bordercells_arr, $objPHPExcel);
  4706. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  4707. $header_arr = array('S.No', 'Name', 'Mobile', 'Email', 'Age', 'SMPIN', 'DSE', 'Created On', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  4708. $i = 0;
  4709. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4710. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  4711. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4712. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4713. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4714. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4715. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  4716. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4717. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4718. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4719. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  4720. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4721. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4722. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4723. $i = 0;
  4724. foreach ($header_arr as $val) {
  4725. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  4726. }
  4727. $query_str = "SELECT SQL_CALC_FOUND_ROWS c.`salutation`, c.`firstname`, c.`lastname`, c.`email`, c.`mobile`, c.`age`, c.`smpin`, c.`dsename` ,c.`created_on`,d.`dealer_code`, d.`dealer_name`,d.zone,d.`zm_name`, d.`rm_name`, d.`am_name` FROM " . TABLE__CUSTOMEREXP . " as c JOIN " . TABLE_USER . " as u ON c.userid=u.userid JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE c.created_on>='" . $from_date . " 00:00:00' AND c.created_on<='" . $to_date . " 23:59:59' " . $user_cond . " ORDER BY c.id ASC";
  4728. $user_arr = $conn->getQueryValue($query_str);
  4729. if (count($user_arr) > 0) {
  4730. $sno = 1;
  4731. foreach ($user_arr as $mkey => $res_user) {
  4732. //$header_arr=array('S.No','Name','Mobile','Email','Age','SMPIN','DSE','Created On','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  4733. $i = 0;
  4734. $row++;
  4735. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  4736. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->salutation . " " . $res_user->firstname . " " . $res_user->lastname);
  4737. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobile);
  4738. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->email);
  4739. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->age);
  4740. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  4741. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  4742. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dsename);
  4743. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  4744. $objPHPExcel->getActiveSheet()->getStyle('I' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  4745. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  4746. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  4747. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  4748. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  4749. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  4750. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  4751. }
  4752. }
  4753. $objPHPExcel->getActiveSheet()->setTitle('CUSTOMER EXPERIENCE REPORT');
  4754. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  4755. $fpath = "../" . S3_REPORT_URL;
  4756. $filename = "customer_experience_" . uniqid() . ".xlsx";
  4757. $objWriter->save($fpath . $filename);
  4758. //S3 UPLOAD
  4759. //S3 LIB
  4760. require dirname(__FILE__) . '/awsfileserver.php';
  4761. //S3 OBJ
  4762. $s3 = awsfileserver::connectS3();
  4763. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  4764. //DELETE AFTER MOVE TO S3
  4765. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  4766. $obj = new stdClass();
  4767. $obj->key_name = S3_REPORT_URL . $filename;
  4768. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  4769. $returnarr = array("report_url" => $url);
  4770. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  4771. } else {
  4772. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  4773. }
  4774. } catch (PDOException $e) {
  4775. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  4776. }
  4777. }
  4778. // assessment_report_v2
  4779. function assessment_report_v2()
  4780. {
  4781. global $conn;
  4782. try {
  4783. $lang = "en_us";
  4784. $pageData = $conn->loadJSON($lang);
  4785. //$_SESSION["userid"]=1;
  4786. if (isset($_SESSION["userid"])) {
  4787. $assessmentid = escape_str($_REQUEST["assessmentid"]);
  4788. $query_str = "SELECT `assessmentid`,`atype`, `lvl_id`, `assessmentname`,user_type,pass_score FROM " . TABLE_ASSESSMENT . " WHERE status=1 AND assettypeid=1 AND assessmentid='" . $assessmentid . "'";
  4789. $assessment_arr = $conn->getQueryValue($query_str);
  4790. if (!($assessmentid != '' && count($assessment_arr) > 0)) {
  4791. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  4792. }
  4793. $zm_email = escape_str($_REQUEST["zm_email"]);
  4794. $rm_email = escape_str($_REQUEST["rm_email"]);
  4795. $am_email = escape_str($_REQUEST["am_email"]);
  4796. $user_cond = '';
  4797. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  4798. $mcond = '';
  4799. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  4800. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  4801. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  4802. //AM
  4803. //$user_cond=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE is_deleted='0' ".$mcond.")";
  4804. } else {
  4805. //PAN
  4806. //$user_cond='';
  4807. }
  4808. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  4809. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  4810. $objPHPExcel = new PHPExcel();
  4811. $objPHPExcel->setActiveSheetIndex(0);
  4812. $row += 2;
  4813. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT");
  4814. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row);
  4815. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  4816. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  4817. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  4818. $row++;
  4819. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT :" . $assessment_arr[0]->assessmentname);
  4820. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":B" . $row);
  4821. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  4822. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, '');
  4823. $row++;
  4824. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row);
  4825. setCellBorder($bordercells_arr, $objPHPExcel);
  4826. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  4827. $header_arr = array('Users', 'Below 50%', '50% to 79%', '80% to 100%', 'Total Participant');
  4828. $i = 0;
  4829. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  4830. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4831. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4832. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4833. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  4834. $i = 0;
  4835. foreach ($header_arr as $val) {
  4836. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  4837. }
  4838. if ($am_email != 'all' && $am_email != '') {
  4839. //AM
  4840. $type = "am";
  4841. } else if ($rm_email != 'all' && $rm_email != '') {
  4842. //RM
  4843. $type = "rm";
  4844. } else if ($zm_email != 'all' && $zm_email != '') {
  4845. //ZM
  4846. $type = "zm";
  4847. } else {
  4848. //PAN
  4849. $user_cond = '';
  4850. $type = "pan";
  4851. }
  4852. $returnarr = array();
  4853. $score_arr = array();
  4854. $score_arr[] = array("from" => 0, 'to' => 49);
  4855. $score_arr[] = array("from" => 50, 'to' => 79);
  4856. $score_arr[] = array("from" => 80, 'to' => 100);
  4857. if ($type == 'pan') {
  4858. //GET ALL ZM
  4859. $getzmquery_str = "SELECT zm_name,zm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 GROUP BY zm_email";
  4860. $getzm_data = $conn->getQueryValue($getzmquery_str);
  4861. if (count($getzm_data) > 0) {
  4862. foreach ($getzm_data as $val) {
  4863. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted=0 )";
  4864. $rarr = array("name" => $val->zm_name, 'email' => $val->zm_email);
  4865. $m = 1;
  4866. if (count($score_arr) > 0) {
  4867. foreach ($score_arr as $res_score) {
  4868. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND au.highscore>='" . $res_score['from'] . "' AND au.highscore<='" . $res_score['to'] . "' " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4869. $result_arr = $conn->getQueryValue($query_str);
  4870. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4871. $rarr['level_' . ($m++)] = $usercount;
  4872. }
  4873. }
  4874. //TOTAL
  4875. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4876. $result_arr = $conn->getQueryValue($query_str);
  4877. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4878. $rarr['total'] = $usercount;
  4879. $returnarr[] = $rarr;
  4880. }
  4881. }
  4882. } else if ($type == 'zm') {
  4883. //GET ALL RM
  4884. $getrmquery_str = "SELECT rm_name,rm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY rm_email";
  4885. $getrm_data = $conn->getQueryValue($getrmquery_str);
  4886. if (count($getrm_data) > 0) {
  4887. foreach ($getrm_data as $val) {
  4888. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  4889. $rarr = array("name" => $val->rm_name, 'email' => $val->rm_email);
  4890. $m = 1;
  4891. if (count($score_arr) > 0) {
  4892. foreach ($score_arr as $res_score) {
  4893. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND au.highscore>='" . $res_score['from'] . "' AND au.highscore<='" . $res_score['to'] . "' " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4894. $result_arr = $conn->getQueryValue($query_str);
  4895. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4896. $rarr['level_' . ($m++)] = $usercount;
  4897. }
  4898. }
  4899. //TOTAL
  4900. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4901. $result_arr = $conn->getQueryValue($query_str);
  4902. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4903. $rarr['total'] = $usercount;
  4904. $returnarr[] = $rarr;
  4905. }
  4906. }
  4907. } else if ($type == 'rm') {
  4908. //GET ALL AM
  4909. $getamquery_str = "SELECT am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY am_email";
  4910. $getam_data = $conn->getQueryValue($getamquery_str);
  4911. if (count($getam_data) > 0) {
  4912. foreach ($getam_data as $val) {
  4913. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  4914. $rarr = array("name" => $val->am_name, 'email' => $val->am_email);
  4915. $m = 1;
  4916. if (count($score_arr) > 0) {
  4917. foreach ($score_arr as $res_score) {
  4918. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND au.highscore>='" . $res_score['from'] . "' AND au.highscore<='" . $res_score['to'] . "' " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4919. $result_arr = $conn->getQueryValue($query_str);
  4920. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4921. $rarr['level_' . ($m++)] = $usercount;
  4922. }
  4923. }
  4924. //TOTAL
  4925. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4926. $result_arr = $conn->getQueryValue($query_str);
  4927. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4928. $rarr['total'] = $usercount;
  4929. $returnarr[] = $rarr;
  4930. }
  4931. }
  4932. } else if ($type == 'am') {
  4933. //GET ALL DEALER
  4934. $getdealerquery_str = "SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " ";
  4935. $getdealer_data = $conn->getQueryValue($getdealerquery_str);
  4936. if (count($getdealer_data) > 0) {
  4937. foreach ($getdealer_data as $val) {
  4938. $manager_cond = " AND u.dealer_code='" . $val->dealer_code . "' ";
  4939. $rarr = array("name" => $val->dealer_name . " - " . $val->dealer_code, 'dealer_code' => $val->dealer_code);
  4940. $m = 1;
  4941. if (count($score_arr) > 0) {
  4942. foreach ($score_arr as $res_score) {
  4943. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND au.highscore>='" . $res_score['from'] . "' AND au.highscore<='" . $res_score['to'] . "' " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4944. $result_arr = $conn->getQueryValue($query_str);
  4945. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4946. $rarr['level_' . ($m++)] = $usercount;
  4947. }
  4948. }
  4949. //TOTAL
  4950. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4951. $result_arr = $conn->getQueryValue($query_str);
  4952. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4953. $rarr['total'] = $usercount;
  4954. $returnarr[] = $rarr;
  4955. }
  4956. }
  4957. }
  4958. $rarr = array();
  4959. $manager_cond = ($mcond != '') ? " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted=0 " . $mcond . " )" : " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted=0 )";
  4960. if (count($score_arr) > 0) {
  4961. $m = 1;
  4962. foreach ($score_arr as $res_score) {
  4963. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND au.highscore>='" . $res_score['from'] . "' AND au.highscore<='" . $res_score['to'] . "' " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4964. $result_arr = $conn->getQueryValue($query_str);
  4965. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4966. $rarr['level_' . ($m++)] = $usercount;
  4967. }
  4968. }
  4969. //TOTAL
  4970. $query_str = "SELECT count(au.userid) as usercount FROM `" . TABLE_ASSESSMENT_USER . "` as au JOIN " . TABLE_USER . " as u ON au.userid=u.userid WHERE au.assessmentid='" . $assessmentid . "' AND u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 " . $manager_cond . " GROUP BY au.assessmentid LIMIT 1";
  4971. $result_arr = $conn->getQueryValue($query_str);
  4972. $usercount = (count($result_arr) > 0 && $result_arr[0]->usercount) ? $result_arr[0]->usercount : '0';
  4973. $rarr['total'] = $usercount;
  4974. $total_arr = $rarr;
  4975. if (count($returnarr) > 0) {
  4976. $sno = 1;
  4977. foreach ($returnarr as $mkey => $res_user) {
  4978. // $header_arr=array('Users', 'Employee Count','Registered Count','Percentage %');
  4979. $i = 0;
  4980. $row++;
  4981. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['name']);
  4982. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['level_1']);
  4983. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['level_2']);
  4984. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['level_3']);
  4985. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['total']);
  4986. }
  4987. }
  4988. //TOTAL
  4989. $row += 2;
  4990. $i = 0;
  4991. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "Total");
  4992. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['level_1']);
  4993. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['level_2']);
  4994. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['level_3']);
  4995. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['total']);
  4996. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row);
  4997. setCellBorder($bordercells_arr, $objPHPExcel);
  4998. $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT');
  4999. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  5000. $fpath = "../" . S3_REPORT_URL;
  5001. $filename = "assessment_report_" . uniqid() . ".xlsx";
  5002. $objWriter->save($fpath . $filename);
  5003. //S3 UPLOAD
  5004. //S3 LIB
  5005. require dirname(__FILE__) . '/awsfileserver.php';
  5006. //S3 OBJ
  5007. $s3 = awsfileserver::connectS3();
  5008. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  5009. //DELETE AFTER MOVE TO S3
  5010. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  5011. $obj = new stdClass();
  5012. $obj->key_name = S3_REPORT_URL . $filename;
  5013. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  5014. $returnarr = array("report_url" => $url);
  5015. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  5016. } else {
  5017. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  5018. }
  5019. } catch (PDOException $e) {
  5020. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  5021. }
  5022. }
  5023. // assessment_report_list_v2
  5024. function assessment_report_list_v2()
  5025. {
  5026. global $conn;
  5027. try {
  5028. $lang = "en_us";
  5029. $pageData = $conn->loadJSON($lang);
  5030. //$_SESSION["userid"]=1;
  5031. if (isset($_SESSION["userid"])) {
  5032. $assessmentid = escape_str($_REQUEST["assessmentid"]);
  5033. $query_str = "SELECT `assessmentid`,`atype`, `lvl_id`, `assessmentname`,user_type,pass_score FROM " . TABLE_ASSESSMENT . " WHERE status=1 AND assettypeid=1 AND assessmentid='" . $assessmentid . "'";
  5034. $assessment_arr = $conn->getQueryValue($query_str);
  5035. if (!($assessmentid != '' && count($assessment_arr) > 0)) {
  5036. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  5037. }
  5038. $zm_email = escape_str($_REQUEST["zm_email"]);
  5039. $rm_email = escape_str($_REQUEST["rm_email"]);
  5040. $am_email = escape_str($_REQUEST["am_email"]);
  5041. $top_50 = escape_str($_REQUEST["top_50"]);
  5042. $user_cond = '';
  5043. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  5044. $mcond = '';
  5045. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  5046. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  5047. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  5048. //AM
  5049. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . ")";
  5050. } else {
  5051. //PAN
  5052. $user_cond = '';
  5053. }
  5054. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  5055. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  5056. $objPHPExcel = new PHPExcel();
  5057. $objPHPExcel->setActiveSheetIndex(0);
  5058. $row += 2;
  5059. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT REPORT");
  5060. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":P" . $row);
  5061. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  5062. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5063. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  5064. $row++;
  5065. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ASSESSMENT :" . $assessment_arr[0]->assessmentname);
  5066. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":D" . $row);
  5067. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5068. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, '');
  5069. $row++;
  5070. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, 'O' . $row, "P" . $row, "Q" . $row);
  5071. setCellBorder($bordercells_arr, $objPHPExcel);
  5072. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  5073. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Email', 'Score', 'Timetaken in Minutes', 'Completed Time', 'Result Category', 'Result', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  5074. $i = 0;
  5075. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5076. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5077. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5078. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5079. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5080. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  5081. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5082. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5083. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5084. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5085. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5086. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5087. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5088. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5089. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5090. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5091. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5092. $i = 0;
  5093. foreach ($header_arr as $val) {
  5094. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  5095. }
  5096. $limit_cond = '';
  5097. if ($top_50 == '1') {
  5098. $limit_cond = " LIMIT 0,50";
  5099. }
  5100. $query_str = "SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.segment,u.`dealer_code`,highscore as score,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,ar.time_taken,ar.modified_on as completed_time FROM " . TABLE_ASSESSMENT_USER . " as au JOIN " . TABLE_ASSESSMENTRESULT . " as ar ON au.highscorearid=ar.arid JOIN " . TABLE_USER . " as u ON au.userid=u.userid LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 AND au.assessmentid='" . $assessmentid . "' AND au.highscorearid!=0 " . $user_cond . " GROUP BY au.userid ORDER BY au.highscore DESC,ar.time_taken ASC,au.modified_on ASC " . $limit_cond;
  5101. $user_arr = $conn->getQueryValue($query_str);
  5102. if (count($user_arr) > 0) {
  5103. $sno = 1;
  5104. foreach ($user_arr as $mkey => $res_user) {
  5105. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Email','Score','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  5106. $i = 0;
  5107. $row++;
  5108. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  5109. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  5110. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  5111. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  5112. switch ($res_user->segment) {
  5113. case '0':$segment_str = 'Student Learner';
  5114. break;
  5115. case '1':$segment_str = 'Parents/Guardian';
  5116. break;
  5117. case '2':$segment_str = 'Instructor';
  5118. break;
  5119. default:$segment_str = 'Student Learner';
  5120. break;
  5121. }
  5122. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  5123. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  5124. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->emailid);
  5125. $score = ($res_user->score) ? $res_user->score : '0';
  5126. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $score);
  5127. $timetaken = (isset($res_user->time_taken)) ? round($res_user->time_taken / 60) : "0";
  5128. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $timetaken);
  5129. $completed_time = (isset($res_user->completed_time)) ? date('d-m-Y h:i A', strtotime($res_user->completed_time)) : "-";
  5130. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $completed_time);
  5131. switch (true) {
  5132. case ($score < 50): $cat_str = 'Below 50%';
  5133. break;
  5134. case ($score >= 50 && $score < 80): $cat_str = '50% to 79%';
  5135. break;
  5136. case ($score >= 80): $cat_str = '80% to 100%';
  5137. break;
  5138. }
  5139. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $cat_str);
  5140. $result_str = ($score >= $assessment_arr[0]->pass_score) ? "Pass" : "Fail";
  5141. $column_str = getColumnFromNumber($i++) . $row;
  5142. if ($result_str == 'Pass') {
  5143. $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("008000");
  5144. } else {
  5145. $objPHPExcel->getActiveSheet()->getStyle($column_str)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  5146. }
  5147. $objPHPExcel->getActiveSheet()->SetCellValue($column_str, $result_str);
  5148. $objPHPExcel->getActiveSheet()->getStyle('G' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  5149. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  5150. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  5151. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  5152. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  5153. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  5154. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  5155. }
  5156. }
  5157. $objPHPExcel->getActiveSheet()->setTitle('ASSESSMENT REPORT');
  5158. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  5159. $fpath = "../" . S3_REPORT_URL;
  5160. $filename = "assessment_report_" . uniqid() . ".xlsx";
  5161. $objWriter->save($fpath . $filename);
  5162. //S3 UPLOAD
  5163. //S3 LIB
  5164. require dirname(__FILE__) . '/awsfileserver.php';
  5165. //S3 OBJ
  5166. $s3 = awsfileserver::connectS3();
  5167. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  5168. //DELETE AFTER MOVE TO S3
  5169. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  5170. $obj = new stdClass();
  5171. $obj->key_name = S3_REPORT_URL . $filename;
  5172. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  5173. $returnarr = array("report_url" => $url);
  5174. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  5175. } else {
  5176. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  5177. }
  5178. } catch (PDOException $e) {
  5179. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  5180. }
  5181. }
  5182. // setsalestarget_report_v2
  5183. function setsalestarget_report_v2()
  5184. {
  5185. global $conn;
  5186. try {
  5187. $lang = "en_us";
  5188. $pageData = $conn->loadJSON($lang);
  5189. //$_SESSION["userid"]=1;
  5190. if (isset($_SESSION["userid"])) {
  5191. $zm_email = escape_str($_REQUEST["zm_email"]);
  5192. $rm_email = escape_str($_REQUEST["rm_email"]);
  5193. $am_email = escape_str($_REQUEST["am_email"]);
  5194. $month = escape_str($_REQUEST["month"]);
  5195. $year = escape_str($_REQUEST["year"]);
  5196. if (!($month != '' && $year != '')) {
  5197. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  5198. }
  5199. $from_date = date('Y-m-d', strtotime($year . "-" . $month . "-01"));
  5200. $to_date = date('Y-m-t', strtotime($year . "-" . $month . "-01"));
  5201. $user_cond = '';
  5202. $returnarr = array();
  5203. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  5204. $mcond = '';
  5205. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  5206. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  5207. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  5208. //AM
  5209. //$user_cond=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE is_deleted='0' ".$mcond.")";
  5210. } else {
  5211. //PAN
  5212. //$user_cond='';
  5213. }
  5214. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  5215. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  5216. $objPHPExcel = new PHPExcel();
  5217. $objPHPExcel->setActiveSheetIndex(0);
  5218. $row += 2;
  5219. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SET SALES TARGET REPORT");
  5220. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row);
  5221. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  5222. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5223. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  5224. $row++;
  5225. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "MONTH & YEAR :");
  5226. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5227. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('F Y', strtotime($from_date)));
  5228. $objPHPExcel->getActiveSheet()->mergeCells("B" . $row . ":D" . $row);
  5229. $row++;
  5230. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row);
  5231. setCellBorder($bordercells_arr, $objPHPExcel);
  5232. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  5233. $header_arr = array('Users', 'Target Set by Dealer', 'Target Approved by AM', "Auto Approved Target", "Total");
  5234. $i = 0;
  5235. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5236. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5237. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5238. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5239. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5240. $i = 0;
  5241. foreach ($header_arr as $val) {
  5242. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  5243. }
  5244. $tablejoin = '';
  5245. if ($am_email != 'all' && $am_email != '') {
  5246. //AM
  5247. $type = "am";
  5248. } else if ($rm_email != 'all' && $rm_email != '') {
  5249. //RM
  5250. $type = "rm";
  5251. } else if ($zm_email != 'all' && $zm_email != '') {
  5252. //ZM
  5253. $type = "zm";
  5254. } else {
  5255. //PAN
  5256. $user_cond = '';
  5257. $type = "pan";
  5258. }
  5259. $mcond = '';
  5260. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  5261. $mcond = '';
  5262. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  5263. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  5264. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  5265. }
  5266. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  5267. if ($regtype == '1') {
  5268. //$tablejoin=" JOIN ".DMS_EMPLOYEE." e ON u.smpin=e.smpin";
  5269. $user_cond .= " AND u.is_current=1 ";
  5270. }
  5271. if ($type == 'pan') {
  5272. //GET ALL ZM
  5273. $getzmquery_str = "SELECT zm_name,zm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 GROUP BY zm_email";
  5274. $getzm_data = $conn->getQueryValue($getzmquery_str);
  5275. if (count($getzm_data) > 0) {
  5276. foreach ($getzm_data as $val) {
  5277. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted=0 )";
  5278. $query_str = "SELECT SUM(t.target) as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN " . TABLE_USER_SALETARGET . " t ON u.smpin=t.smpin WHERE u.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $user_cond . $manager_cond . " LIMIT 1 ";
  5279. $count_arr = $conn->getQueryValue($query_str);
  5280. $total_target = (count($count_arr) > 0 && $count_arr[0]->tot_target) ? $count_arr[0]->tot_target : '0';
  5281. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status=1 AND roleid=14 ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5282. $sales_arr = $conn->getQueryValue($query_str);
  5283. $dealer_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5284. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status IN(2,3) AND roleid=7) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5285. $sales_arr = $conn->getQueryValue($query_str);
  5286. $am_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5287. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5288. $sales_arr = $conn->getQueryValue($query_str);
  5289. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5290. $returnarr[] = array("name" => $val->zm_name, 'email' => $val->zm_email, 'total_target' => $total_target, 'dealer_target' => $dealer_target, 'am_target' => $am_target, 'auto_target' => $auto_target);
  5291. }
  5292. }
  5293. } else if ($type == 'zm') {
  5294. //GET ALL RM
  5295. $getrmquery_str = "SELECT rm_name,rm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY rm_email";
  5296. $getrm_data = $conn->getQueryValue($getrmquery_str);
  5297. if (count($getrm_data) > 0) {
  5298. foreach ($getrm_data as $val) {
  5299. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  5300. $query_str = "SELECT SUM(t.target) as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN " . TABLE_USER_SALETARGET . " t ON u.smpin=t.smpin WHERE u.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $user_cond . $manager_cond . " LIMIT 1 ";
  5301. $count_arr = $conn->getQueryValue($query_str);
  5302. $total_target = (count($count_arr) > 0 && $count_arr[0]->tot_target) ? $count_arr[0]->tot_target : '0';
  5303. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status=1 AND roleid=14 ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5304. $sales_arr = $conn->getQueryValue($query_str);
  5305. $dealer_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5306. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status IN(2,3) AND roleid=7) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5307. $sales_arr = $conn->getQueryValue($query_str);
  5308. $am_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5309. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5310. $sales_arr = $conn->getQueryValue($query_str);
  5311. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5312. $returnarr[] = array("name" => $val->rm_name, 'email' => $val->rm_email, 'total_target' => $total_target, 'dealer_target' => $dealer_target, 'am_target' => $am_target, 'auto_target' => $auto_target);
  5313. }
  5314. }
  5315. } else if ($type == 'rm') {
  5316. //GET ALL AM
  5317. $getamquery_str = "SELECT am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY am_email";
  5318. $getam_data = $conn->getQueryValue($getamquery_str);
  5319. if (count($getam_data) > 0) {
  5320. foreach ($getam_data as $val) {
  5321. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  5322. $query_str = "SELECT SUM(t.target) as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN " . TABLE_USER_SALETARGET . " t ON u.smpin=t.smpin WHERE u.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $user_cond . $manager_cond . " LIMIT 1 ";
  5323. $count_arr = $conn->getQueryValue($query_str);
  5324. $total_target = (count($count_arr) > 0 && $count_arr[0]->tot_target) ? $count_arr[0]->tot_target : '0';
  5325. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status=1 AND roleid=14 ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5326. $sales_arr = $conn->getQueryValue($query_str);
  5327. $dealer_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5328. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status IN(2,3) AND roleid=7) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5329. $sales_arr = $conn->getQueryValue($query_str);
  5330. $am_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5331. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5332. $sales_arr = $conn->getQueryValue($query_str);
  5333. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5334. $returnarr[] = array("name" => $val->am_name, 'email' => $val->am_email, 'total_target' => $total_target, 'dealer_target' => $dealer_target, 'am_target' => $am_target, 'auto_target' => $auto_target);
  5335. }
  5336. }
  5337. } else if ($type == 'am') {
  5338. //GET ALL DEALER
  5339. $getdealerquery_str = "SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " ";
  5340. $getdealer_data = $conn->getQueryValue($getdealerquery_str);
  5341. if (count($getdealer_data) > 0) {
  5342. foreach ($getdealer_data as $val) {
  5343. $manager_cond = " AND u.dealer_code='" . $val->dealer_code . "' ";
  5344. $query_str = "SELECT SUM(t.target) as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN " . TABLE_USER_SALETARGET . " t ON u.smpin=t.smpin WHERE u.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $user_cond . $manager_cond . " LIMIT 1 ";
  5345. $count_arr = $conn->getQueryValue($query_str);
  5346. $total_target = (count($count_arr) > 0 && $count_arr[0]->tot_target) ? $count_arr[0]->tot_target : '0';
  5347. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status=1 AND roleid=14 ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5348. $sales_arr = $conn->getQueryValue($query_str);
  5349. $dealer_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5350. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status IN(2,3) AND roleid=7) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5351. $sales_arr = $conn->getQueryValue($query_str);
  5352. $am_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5353. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5354. $sales_arr = $conn->getQueryValue($query_str);
  5355. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5356. $returnarr[] = array("name" => $val->dealer_name . " - " . $val->dealer_code, 'dealer_code' => $val->dealer_code, 'total_target' => $total_target, 'dealer_target' => $dealer_target, 'am_target' => $am_target, 'auto_target' => $auto_target);
  5357. }
  5358. }
  5359. }
  5360. $manager_cond = ($mcond != '') ? " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted=0 " . $mcond . " )" : " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE dealer_code!='' AND status=1 AND is_deleted=0 )";
  5361. $query_str = "SELECT SUM(t.target) as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN " . TABLE_USER_SALETARGET . " t ON u.smpin=t.smpin WHERE u.status=1 AND t.sale_month>='" . $from_date . "' AND t.sale_month<='" . $to_date . "' " . $user_cond . $manager_cond . " LIMIT 1 ";
  5362. $count_arr = $conn->getQueryValue($query_str);
  5363. $total_target = (count($count_arr) > 0 && $count_arr[0]->tot_target) ? $count_arr[0]->tot_target : '0';
  5364. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status=1 AND roleid=14 ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5365. $sales_arr = $conn->getQueryValue($query_str);
  5366. $dealer_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5367. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND status IN(2,3) AND roleid=7) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month JOIN (SELECT max(id) as maxid FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' GROUP by smpin ) as a ON a.maxid=s.id WHERE u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5368. $sales_arr = $conn->getQueryValue($query_str);
  5369. $am_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5370. $query_str = "SELECT SUM(t.target)as tot_target FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5371. $sales_arr = $conn->getQueryValue($query_str);
  5372. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->tot_target) ? $sales_arr[0]->tot_target : '0';
  5373. $total_arr = array('total_target' => $total_target, 'dealer_target' => $dealer_target, 'am_target' => $am_target, 'auto_target' => $auto_target);
  5374. if (count($returnarr) > 0) {
  5375. $sno = 1;
  5376. foreach ($returnarr as $mkey => $res_user) {
  5377. // $header_arr=array('Users', 'Employee Count','Registered Count','Percentage %');
  5378. $i = 0;
  5379. $row++;
  5380. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['name']);
  5381. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['dealer_target']);
  5382. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['am_target']);
  5383. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['auto_target']);
  5384. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['total_target']);
  5385. }
  5386. }
  5387. //TOTAL
  5388. $row += 2;
  5389. $i = 0;
  5390. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "Total");
  5391. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['dealer_target']);
  5392. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['am_target']);
  5393. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['auto_target']);
  5394. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['total_target']);
  5395. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row);
  5396. setCellBorder($bordercells_arr, $objPHPExcel);
  5397. $objPHPExcel->getActiveSheet()->setTitle('SET SALES TARGET REPORT');
  5398. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  5399. $fpath = "../" . S3_REPORT_URL;
  5400. $filename = "setsales_report_" . uniqid() . ".xlsx";
  5401. $objWriter->save($fpath . $filename);
  5402. //S3 UPLOAD
  5403. //S3 LIB
  5404. require dirname(__FILE__) . '/awsfileserver.php';
  5405. //S3 OBJ
  5406. $s3 = awsfileserver::connectS3();
  5407. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  5408. //DELETE AFTER MOVE TO S3
  5409. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  5410. $obj = new stdClass();
  5411. $obj->key_name = S3_REPORT_URL . $filename;
  5412. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  5413. $returnarr = array("report_url" => $url);
  5414. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  5415. } else {
  5416. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  5417. }
  5418. } catch (PDOException $e) {
  5419. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  5420. }
  5421. }
  5422. // setsalestarget_report_list_v2
  5423. function setsalestarget_report_list_v2()
  5424. {
  5425. global $conn;
  5426. try {
  5427. $lang = "en_us";
  5428. $pageData = $conn->loadJSON($lang);
  5429. //$_SESSION["userid"]=1;
  5430. if (isset($_SESSION["userid"])) {
  5431. $month = escape_str($_REQUEST["month"]);
  5432. $year = escape_str($_REQUEST["year"]);
  5433. if (!($month != '' && $year != '')) {
  5434. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  5435. }
  5436. $from_date = date('Y-m-d', strtotime($year . "-" . $month . "-01"));
  5437. $to_date = date('Y-m-t', strtotime($year . "-" . $month . "-01"));
  5438. $zm_email = escape_str($_REQUEST["zm_email"]);
  5439. $rm_email = escape_str($_REQUEST["rm_email"]);
  5440. $am_email = escape_str($_REQUEST["am_email"]);
  5441. $user_cond = '';
  5442. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  5443. $mcond = '';
  5444. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  5445. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  5446. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  5447. //AM
  5448. $user_cond = " AND d.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . ")";
  5449. } else {
  5450. //PAN
  5451. $user_cond = " AND d.is_deleted=0 AND d.status=1";
  5452. }
  5453. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  5454. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  5455. $objPHPExcel = new PHPExcel();
  5456. $objPHPExcel->setActiveSheetIndex(0);
  5457. $row += 2;
  5458. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SET SALES REPORT");
  5459. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":K" . $row);
  5460. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  5461. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5462. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  5463. $row++;
  5464. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "MONTH & YEAR :");
  5465. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5466. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('M-Y', strtotime($from_date)));
  5467. $objPHPExcel->getActiveSheet()->mergeCells("B" . $row . ":D" . $row);
  5468. $row++;
  5469. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, "O" . $row);
  5470. setCellBorder($bordercells_arr, $objPHPExcel);
  5471. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  5472. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'Mobile', 'Total Target', 'Target Status -Dealer', 'Target Status -AM', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  5473. $i = 0;
  5474. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //#
  5475. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5476. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5477. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //Segment
  5478. //$objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5479. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //mobile
  5480. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //total
  5481. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //Target Status -Dealer
  5482. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15'); //Target Status -AM
  5483. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5484. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5485. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5486. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5487. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5488. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5489. $i = 0;
  5490. foreach ($header_arr as $val) {
  5491. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  5492. }
  5493. //u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0
  5494. $_REQUEST["regtype"] = isset($_REQUEST["regtype"]) ? $_REQUEST["regtype"] : 1;
  5495. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  5496. if ($regtype == '1') {
  5497. $user_cond .= " AND u.is_current=1 ";
  5498. }
  5499. //$query_str="SELECT u.`userid`,u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u. `mobileno`,u.`dealer_code`, COALESCE(SUM(t.target),0) as tot_target,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name` FROM ".TABLE_USER." as u LEFT JOIN (SELECT * FROM ".TABLE_USER_SALETARGET." WHERE sale_month>='".$from_date."' AND sale_month<='".$to_date."' )as t ON t.smpin=u.smpin LEFT JOIN ".DMS_DEALER." as d ON d.dealer_code=u.dealer_code WHERE u.role>7 and u.role!=14 and u.role!=16 AND u.is_deleted=0 ".$user_cond." GROUP BY u.smpin ORDER BY tot_target DESC,u.userid ASC ";
  5500. $query_str = "SELECT u. `smpin`, u. `fname`,u. `lname`,u. `emailid`,u.mobile as mobileno,u.`dealer_code`, COALESCE(SUM(t.target),0) as tot_target,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,u.segment FROM " . DMS_EMPLOYEE . " as u LEFT JOIN (SELECT * FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' )as t ON t.smpin=u.smpin LEFT JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.status=1 " . $user_cond . " GROUP BY u.smpin ORDER BY tot_target DESC,u.id ASC ";
  5501. $user_arr = $conn->getQueryValue($query_str);
  5502. if (count($user_arr) > 0) {
  5503. $sno = 1;
  5504. foreach ($user_arr as $mkey => $res_user) {
  5505. //'#','SMPIN','Segment', 'DSE Name','Mobile','Email','Total Target','Target Status -Dealer','Target Status -AM','Dealer Code','Dealer Name','Zone','ZM','RM','AM'
  5506. $i = 0;
  5507. $row++;
  5508. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  5509. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  5510. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  5511. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  5512. $segment_str = '-';
  5513. switch ($res_user->segment) {
  5514. case '1':$segment_str = 'Parents/Guardian';
  5515. break;
  5516. case '2':$segment_str = 'Instructor';
  5517. break;
  5518. default:$segment_str = 'Student Learner';
  5519. break;
  5520. }
  5521. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  5522. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  5523. //$objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emailid);
  5524. $tot_target = ($res_user->tot_target) ? $res_user->tot_target : '0';
  5525. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $tot_target);
  5526. $statusquery_str = "SELECT id FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE smpin='" . $res_user->smpin . "' AND sale_month='" . $from_date . "' AND roleid=14 LIMIT 1";
  5527. $sales_arr = $conn->getQueryValue($statusquery_str);
  5528. $dealer_sale_status_str = (count($sales_arr) > 0) ? "Target Set by dealer" : "Target Auto set";
  5529. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $dealer_sale_status_str);
  5530. $statusquery_str = "SELECT id,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE smpin='" . $res_user->smpin . "' AND sale_month='" . $from_date . "' AND roleid=7 LIMIT 1";
  5531. $sales_arr = $conn->getQueryValue($statusquery_str);
  5532. $am_sale_status_str = (count($sales_arr) > 0) ? "Target Approved by AM" : "Target Auto set";
  5533. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $am_sale_status_str);
  5534. $objPHPExcel->getActiveSheet()->getStyle('H' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  5535. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  5536. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  5537. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  5538. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  5539. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  5540. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  5541. }
  5542. }
  5543. $objPHPExcel->getActiveSheet()->setTitle('SET SALES REPORT');
  5544. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  5545. $fpath = "../" . S3_REPORT_URL;
  5546. $filename = "setsales_report_" . uniqid() . ".xlsx";
  5547. $objWriter->save($fpath . $filename);
  5548. //S3 UPLOAD
  5549. //S3 LIB
  5550. require dirname(__FILE__) . '/awsfileserver.php';
  5551. //S3 OBJ
  5552. $s3 = awsfileserver::connectS3();
  5553. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  5554. //DELETE AFTER MOVE TO S3
  5555. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  5556. $obj = new stdClass();
  5557. $obj->key_name = S3_REPORT_URL . $filename;
  5558. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  5559. $returnarr = array("report_url" => $url);
  5560. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  5561. } else {
  5562. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  5563. }
  5564. } catch (PDOException $e) {
  5565. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  5566. }
  5567. }
  5568. // enquiry_report_v3
  5569. function enquiry_report_v3()
  5570. {
  5571. global $conn;
  5572. try {
  5573. $lang = "en_us";
  5574. $pageData = $conn->loadJSON($lang);
  5575. //$_SESSION["userid"]=1;
  5576. if (isset($_SESSION["userid"])) {
  5577. $zm_email = escape_str($_REQUEST["zm_email"]);
  5578. $rm_email = escape_str($_REQUEST["rm_email"]);
  5579. $am_email = escape_str($_REQUEST["am_email"]);
  5580. $from_date = escape_str($_REQUEST["from_date"]);
  5581. $to_date = escape_str($_REQUEST["to_date"]);
  5582. if (!($from_date != '' && $to_date != '')) {
  5583. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  5584. }
  5585. if (!(isValidDateTimeString($from_date, 'Y-m-d', 'Asia/Kolkata') && isValidDateTimeString($to_date, 'Y-m-d', 'Asia/Kolkata'))) {
  5586. $conn->message(false, $conn->getMessage($lang, 'report', 'error7'));
  5587. }
  5588. $user_cond = '';
  5589. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  5590. $mcond = '';
  5591. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  5592. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  5593. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  5594. //AM
  5595. $user_cond = $mcond;
  5596. } else {
  5597. //PAN
  5598. $user_cond = '';
  5599. }
  5600. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  5601. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  5602. $objPHPExcel = new PHPExcel();
  5603. $objPHPExcel->setActiveSheetIndex(0);
  5604. $row += 2;
  5605. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "ENQUIRY REPORT");
  5606. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":Q" . $row);
  5607. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  5608. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5609. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  5610. $row++;
  5611. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "FROM DATE :");
  5612. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5613. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('d-M-Y', strtotime($from_date)));
  5614. $objPHPExcel->getActiveSheet()->SetCellValue('C' . $row, "TO DATE :");
  5615. $objPHPExcel->getActiveSheet()->getStyle("C" . $row)->getFont()->setBold(true);
  5616. $objPHPExcel->getActiveSheet()->SetCellValue('D' . $row, date('d-M-Y', strtotime($to_date)));
  5617. $row++;
  5618. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row, "L" . $row, "M" . $row, "N" . $row, "O" . $row, "P" . $row, "Q" . $row, 'R' . $row, 'S' . $row);
  5619. setCellBorder($bordercells_arr, $objPHPExcel);
  5620. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  5621. $header_arr = array('S.No', "Name", "Email", "Mobile", "Age", "Smpin", "Dse Name", "Model", "Variant", "Source", "Created On", "Brochure", "Dealer code", "Dealer", "State", "City", "ZM", "RM", "AM");
  5622. $i = 0;
  5623. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5624. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5625. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  5626. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  5627. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5628. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5629. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  5630. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  5631. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  5632. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  5633. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  5634. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5635. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5636. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  5637. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5638. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5639. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5640. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5641. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  5642. $i = 0;
  5643. foreach ($header_arr as $val) {
  5644. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  5645. }
  5646. $type = escape_str($_REQUEST["type"]);
  5647. // if(!empty($type)&& $type!='' )
  5648. // {
  5649. // switch($type)
  5650. // {
  5651. // case '0':$user_cond.=' AND e.customerid=0'; break;
  5652. // case '1':$user_cond.=' AND e.customerid!=0';break;
  5653. // }
  5654. // }
  5655. $query_str = "SELECT c.id as cust_id,coalesce(enq.id,'0') as enq_id,IF(ISNULL(enq.created_on),'0', '1') enquiry_status,c.created_on,'' as model_name,'' as variant_name,d.`dealer_code`, d.`dealer_name`,d.`city`,d.`state`,d.`zm_name`, d.`rm_name`, d.`am_name` ,'Customer Experience App' as source_type,CONCAT(CONCAT(c.salutation, ' ', c.firstname), ' ', c.lastname)as name,c. `mobile`, c.`email`,c.`age`,0 as is_brochure, CASE WHEN c.smpin='' THEN u.smpin ELSE c.smpin END AS smpin,CASE WHEN c.dsename='' THEN CONCAT(u.fname, ' ', u.lname) ELSE c.dsename END AS dsename
  5656. FROM " . TABLE__CUSTOMEREXP . " as c
  5657. JOIN " . TABLE_USER . " as u ON c.userid=u.userid
  5658. JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code
  5659. LEFT JOIN " . TABLE_EXPLORE_ENQUIRY . " enq ON enq.customerid=c.id
  5660. WHERE c.created_on>='" . $from_date . "' AND c.created_on<='" . $to_date . "' " . $user_cond . "
  5661. UNION
  5662. SELECT '0' as cust_id,e.id as enq_id,'1' as enquiry_status,e.created_on,m.model_name,v.title as variant_name ,d.`dealer_code`, d.`dealer_name`,d.`city`,d.`state`,d.`zm_name`, d.`rm_name`, d.`am_name` ,'DSE App' as source_type, e.`name`, e.`mobile`, e.`email`,'' as age, e.is_brochure,u.smpin as smpin, CONCAT(u.fname, ' ', u.lname) as dsename
  5663. FROM " . TABLE_EXPLORE_ENQUIRY . " as e
  5664. JOIN " . TABLE_USER . " as u ON e.user_id=u.userid
  5665. JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code
  5666. JOIN " . TABLE_COMPARE_MODEL . " as m ON m.model_id=e.model_id
  5667. JOIN " . TABLE_MODEL_VARIANT . " v ON e.variant_id=v.id
  5668. WHERE e.customerid=0 AND e.created_on>='" . $from_date . "' AND e.created_on<='" . $to_date . "' " . $user_cond . " ORDER BY created_on ASC";
  5669. $user_arr = $conn->getQueryValue($query_str);
  5670. if (count($user_arr) > 0) {
  5671. $sno = 1;
  5672. foreach ($user_arr as $key => $res_user) {
  5673. if ($res_user->enquiry_status == 0) {
  5674. $user_arr[$key]->brochure_status = ($res_user->is_brochure == '1') ? "Shared" : "Not Shared";
  5675. $user_arr[$key]->created_on_str = date('d-m-Y h:i A', strtotime($res_user->created_on));
  5676. } else {
  5677. $get_enq_data = $conn->getQueryValue("SELECT e.id as enq_id, e.created_on,m.model_name,v.title as variant_name ,d.`dealer_code`, d.`dealer_name`,d.`city`,d.`state`,d.`zm_name`, d.`rm_name`, d.`am_name` ,'DSE App' as source_type, e.`name`, e.`mobile`, e.`email`, e.is_brochure FROM " . TABLE_EXPLORE_ENQUIRY . " as e
  5678. JOIN " . TABLE_USER . " as u ON e.user_id=u.userid
  5679. JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code
  5680. JOIN " . TABLE_COMPARE_MODEL . " as m ON m.model_id=e.model_id
  5681. JOIN " . TABLE_MODEL_VARIANT . " v ON e.variant_id=v.id
  5682. WHERE e.id='" . $res_user->enq_id . "' LIMIT 1");
  5683. if (count($get_enq_data) > 0) {
  5684. $user_arr[$key]->brochure_status = ($get_enq_data[0]->is_brochure == '1') ? "Shared" : "Not Shared";
  5685. $user_arr[$key]->model_name = $get_enq_data[0]->model_name;
  5686. $user_arr[$key]->variant_name = $get_enq_data[0]->variant_name;
  5687. $user_arr[$key]->created_on = $get_enq_data[0]->created_on;
  5688. $user_arr[$key]->created_on_str = date('d-m-Y h:i A', strtotime($get_enq_data[0]->created_on));
  5689. $user_arr[$key]->name = $get_enq_data[0]->name;
  5690. $user_arr[$key]->email = $get_enq_data[0]->email;
  5691. $user_arr[$key]->mobile = $get_enq_data[0]->mobile;
  5692. }
  5693. }
  5694. $i = 0;
  5695. //'#',"Name","Email","Mobile","Age","Smpin","Dse Name","Model","Variant","Source","Created On","Brochure","Dealer code","Dealer","State","City","ZM","RM","AM"
  5696. $row++;
  5697. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  5698. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_arr[$key]->name);
  5699. //$objPHPExcel->getActiveSheet()->getStyle('C'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  5700. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_arr[$key]->email);
  5701. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_arr[$key]->mobile);
  5702. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->age);
  5703. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  5704. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  5705. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dsename);
  5706. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->model_name);
  5707. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->variant_name);
  5708. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->source_type);
  5709. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  5710. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $user_arr[$key]->brochure_status);
  5711. $objPHPExcel->getActiveSheet()->getStyle('L' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  5712. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  5713. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  5714. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->state);
  5715. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->city);
  5716. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  5717. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  5718. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  5719. }
  5720. }
  5721. $objPHPExcel->getActiveSheet()->setTitle('ENQUIRY REPORT');
  5722. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  5723. $fpath = "../" . S3_REPORT_URL;
  5724. $filename = "enquiry_" . uniqid() . ".xlsx";
  5725. $objWriter->save($fpath . $filename);
  5726. //S3 UPLOAD
  5727. //S3 LIB
  5728. require dirname(__FILE__) . '/awsfileserver.php';
  5729. //S3 OBJ
  5730. $s3 = awsfileserver::connectS3();
  5731. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  5732. //DELETE AFTER MOVE TO S3
  5733. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  5734. $obj = new stdClass();
  5735. $obj->key_name = S3_REPORT_URL . $filename;
  5736. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  5737. $returnarr = array("report_url" => $url);
  5738. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  5739. } else {
  5740. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  5741. }
  5742. } catch (PDOException $e) {
  5743. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  5744. }
  5745. }
  5746. // setsalestarget_report_v3
  5747. function setsalestarget_report_v3()
  5748. {
  5749. global $conn;
  5750. try {
  5751. $lang = "en_us";
  5752. $pageData = $conn->loadJSON($lang);
  5753. //$_SESSION["userid"]=1;
  5754. if (isset($_SESSION["userid"])) {
  5755. $zm_email = escape_str($_REQUEST["zm_email"]);
  5756. $rm_email = escape_str($_REQUEST["rm_email"]);
  5757. $am_email = escape_str($_REQUEST["am_email"]);
  5758. $month = escape_str($_REQUEST["month"]);
  5759. $year = escape_str($_REQUEST["year"]);
  5760. if (!($month != '' && $year != '')) {
  5761. $conn->message(false, $conn->getMessage($lang, 'report', 'error6'));
  5762. }
  5763. $from_date = date('Y-m-d', strtotime($year . "-" . $month . "-01"));
  5764. $to_date = date('Y-m-t', strtotime($year . "-" . $month . "-01"));
  5765. $user_cond = '';
  5766. $returnarr = array();
  5767. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  5768. $mcond = '';
  5769. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  5770. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  5771. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  5772. //AM
  5773. //$user_cond=" AND u.dealer_code IN (SELECT dealer_code FROM ".DMS_DEALER." WHERE is_deleted='0' ".$mcond.")";
  5774. } else {
  5775. //PAN
  5776. //$user_cond='';
  5777. }
  5778. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  5779. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  5780. $objPHPExcel = new PHPExcel();
  5781. $objPHPExcel->setActiveSheetIndex(0);
  5782. $row += 2;
  5783. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SET SALES TARGET REPORT");
  5784. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row);
  5785. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  5786. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5787. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  5788. $row++;
  5789. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "MONTH & YEAR :");
  5790. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  5791. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, date('F Y', strtotime($from_date)));
  5792. $objPHPExcel->getActiveSheet()->mergeCells("B" . $row . ":E" . $row);
  5793. $row++;
  5794. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row);
  5795. setCellBorder($bordercells_arr, $objPHPExcel);
  5796. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  5797. $header_arr = array('Users', 'Dealer Count', 'DSE count', "Target Set by Dealers", "Target Approved by AMs", "Target Modified by AMs", "Auto Target Set");
  5798. $i = 0;
  5799. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5800. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5801. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5802. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5803. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5804. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5805. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  5806. $i = 0;
  5807. foreach ($header_arr as $val) {
  5808. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  5809. }
  5810. $tablejoin = '';
  5811. if ($am_email != 'all' && $am_email != '') {
  5812. //AM
  5813. $type = "am";
  5814. } else if ($rm_email != 'all' && $rm_email != '') {
  5815. //RM
  5816. $type = "rm";
  5817. } else if ($zm_email != 'all' && $zm_email != '') {
  5818. //ZM
  5819. $type = "zm";
  5820. } else {
  5821. //PAN
  5822. $user_cond = '';
  5823. $type = "pan";
  5824. }
  5825. $mcond = '';
  5826. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  5827. $mcond = '';
  5828. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  5829. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  5830. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  5831. }
  5832. $regtype = (escape_str($_REQUEST["regtype"]) == '1' || !isset($_REQUEST["regtype"])) ? "1" : "0";
  5833. if ($regtype == '1') {
  5834. //$tablejoin=" JOIN ".DMS_EMPLOYEE." e ON u.smpin=e.smpin";
  5835. $user_cond .= " AND u.is_current=1 ";
  5836. }
  5837. if ($type == 'pan') {
  5838. //GET ALL ZM
  5839. $getzmquery_str = "SELECT zm_name,zm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 GROUP BY zm_email";
  5840. $getzm_data = $conn->getQueryValue($getzmquery_str);
  5841. if (count($getzm_data) > 0) {
  5842. foreach ($getzm_data as $val) {
  5843. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $val->zm_email . "' AND status=1 AND is_deleted=0 )";
  5844. //DEALER COUNT
  5845. $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND zm_email='" . $val->zm_email . "' ";
  5846. $getdealercount_data = $conn->getQueryValue($getdealercount_str);
  5847. $dealer_count = $getdealercount_data[0]->dealer_count;
  5848. //DSE COUNT
  5849. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5850. $dsecount_arr = $conn->getQueryValue($query_str);
  5851. $dse_count = $dsecount_arr[0]->emp_count;
  5852. //Target Set by Dealers
  5853. $get_dealer_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=14)as s ON e.smpin=s.smpin LIMIT 1 ";
  5854. $get_dealerupdated_arr = $conn->getQueryValue($get_dealer_updated_str);
  5855. $dealer_target_set_dse_count = $get_dealerupdated_arr[0]->emp_count;
  5856. //Target Approved by AMs
  5857. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=2)as s ON e.smpin=s.smpin LIMIT 1 ";
  5858. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5859. $am_target_set_dse_count = $get_am_arr[0]->emp_count;
  5860. //Target Modified by AMs
  5861. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=3)as s ON e.smpin=s.smpin LIMIT 1 ";
  5862. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5863. $am_target_mod_dse_count = $get_am_arr[0]->emp_count;
  5864. //Auto Target Set
  5865. $query_str = "SELECT COUNT(DISTINCT u.id) emp_count FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5866. $sales_arr = $conn->getQueryValue($query_str);
  5867. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->emp_count) ? $sales_arr[0]->emp_count : '0';
  5868. $returnarr[] = array("name" => $val->zm_name, 'email' => $val->zm_email, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'dealer_target_set_dse_count' => $dealer_target_set_dse_count, 'am_target_set_dse_count' => $am_target_set_dse_count, 'am_target_mod_dse_count' => $am_target_mod_dse_count, 'auto_target' => $auto_target);
  5869. }
  5870. }
  5871. } else if ($type == 'zm') {
  5872. //GET ALL RM
  5873. $getrmquery_str = "SELECT rm_name,rm_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY rm_email";
  5874. $getrm_data = $conn->getQueryValue($getrmquery_str);
  5875. if (count($getrm_data) > 0) {
  5876. foreach ($getrm_data as $val) {
  5877. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $val->rm_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  5878. //DEALER COUNT
  5879. $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND rm_email='" . $val->zm_email . "' " . $mcond;
  5880. $getdealercount_data = $conn->getQueryValue($getdealercount_str);
  5881. $dealer_count = $getdealercount_data[0]->dealer_count;
  5882. //DSE COUNT
  5883. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5884. $dsecount_arr = $conn->getQueryValue($query_str);
  5885. $dse_count = $dsecount_arr[0]->emp_count;
  5886. //Target Set by Dealers
  5887. $get_dealer_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=14)as s ON e.smpin=s.smpin LIMIT 1 ";
  5888. $get_dealerupdated_arr = $conn->getQueryValue($get_dealer_updated_str);
  5889. $dealer_target_set_dse_count = $get_dealerupdated_arr[0]->emp_count;
  5890. //Target Approved by AMs
  5891. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=2 )as s ON e.smpin=s.smpin LIMIT 1 ";
  5892. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5893. $am_target_set_dse_count = $get_am_arr[0]->emp_count;
  5894. //Target Modified by AMs
  5895. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=3)as s ON e.smpin=s.smpin LIMIT 1 ";
  5896. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5897. $am_target_mod_dse_count = $get_am_arr[0]->emp_count;
  5898. //Auto Target Set
  5899. $query_str = "SELECT COUNT(DISTINCT u.id) emp_count FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5900. $sales_arr = $conn->getQueryValue($query_str);
  5901. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->emp_count) ? $sales_arr[0]->emp_count : '0';
  5902. $returnarr[] = array("name" => $val->rm_name, 'email' => $val->rm_email, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'dealer_target_set_dse_count' => $dealer_target_set_dse_count, 'am_target_set_dse_count' => $am_target_set_dse_count, 'am_target_mod_dse_count' => $am_target_mod_dse_count, 'auto_target' => $auto_target);
  5903. }
  5904. }
  5905. } else if ($type == 'rm') {
  5906. //GET ALL AM
  5907. $getamquery_str = "SELECT am_name,am_email FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " GROUP BY am_email";
  5908. $getam_data = $conn->getQueryValue($getamquery_str);
  5909. if (count($getam_data) > 0) {
  5910. foreach ($getam_data as $val) {
  5911. $manager_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $val->am_email . "' AND status=1 AND is_deleted=0 " . $mcond . " )";
  5912. //DEALER COUNT
  5913. $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND am_email='" . $val->am_email . "' " . $mcond;
  5914. $getdealercount_data = $conn->getQueryValue($getdealercount_str);
  5915. $dealer_count = $getdealercount_data[0]->dealer_count;
  5916. //DSE COUNT
  5917. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5918. $dsecount_arr = $conn->getQueryValue($query_str);
  5919. $dse_count = $dsecount_arr[0]->emp_count;
  5920. //Target Set by Dealers
  5921. $get_dealer_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=14)as s ON e.smpin=s.smpin LIMIT 1 ";
  5922. $get_dealerupdated_arr = $conn->getQueryValue($get_dealer_updated_str);
  5923. $dealer_target_set_dse_count = $get_dealerupdated_arr[0]->emp_count;
  5924. //Target Approved by AMs
  5925. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=2)as s ON e.smpin=s.smpin LIMIT 1 ";
  5926. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5927. $am_target_set_dse_count = $get_am_arr[0]->emp_count;
  5928. //Target Modified by AMs
  5929. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=3)as s ON e.smpin=s.smpin LIMIT 1 ";
  5930. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5931. $am_target_mod_dse_count = $get_am_arr[0]->emp_count;
  5932. //Auto Target Set
  5933. $query_str = "SELECT COUNT(DISTINCT u.id) emp_count FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5934. $sales_arr = $conn->getQueryValue($query_str);
  5935. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->emp_count) ? $sales_arr[0]->emp_count : '0';
  5936. $returnarr[] = array("name" => $val->am_name, 'email' => $val->am_email, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'dealer_target_set_dse_count' => $dealer_target_set_dse_count, 'am_target_set_dse_count' => $am_target_set_dse_count, 'am_target_mod_dse_count' => $am_target_mod_dse_count, 'auto_target' => $auto_target);
  5937. }
  5938. }
  5939. } else if ($type == 'am') {
  5940. //GET ALL DEALER
  5941. $getdealerquery_str = "SELECT dealer_code,dealer_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " ";
  5942. $getdealer_data = $conn->getQueryValue($getdealerquery_str);
  5943. if (count($getdealer_data) > 0) {
  5944. foreach ($getdealer_data as $val) {
  5945. $manager_cond = " AND u.dealer_code='" . $val->dealer_code . "' ";
  5946. //DEALER COUNT
  5947. //$getdealercount_str="SELECT COUNT(id) dealer_count FROM ".DMS_DEALER." WHERE status=1 AND is_deleted=0 AND dealer_code='".$val->dealer_code."' ".$mcond." ";
  5948. //$getdealercount_data=$conn->getQueryValue($getdealercount_str);
  5949. $dealer_count = 1;
  5950. //DSE COUNT
  5951. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5952. $dsecount_arr = $conn->getQueryValue($query_str);
  5953. $dse_count = $dsecount_arr[0]->emp_count;
  5954. //Target Set by Dealers
  5955. $get_dealer_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=14)as s ON e.smpin=s.smpin LIMIT 1 ";
  5956. $get_dealerupdated_arr = $conn->getQueryValue($get_dealer_updated_str);
  5957. $dealer_target_set_dse_count = $get_dealerupdated_arr[0]->emp_count;
  5958. //Target Approved by AMs
  5959. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=2)as s ON e.smpin=s.smpin LIMIT 1 ";
  5960. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5961. $am_target_set_dse_count = $get_am_arr[0]->emp_count;
  5962. //Target Modified by AMs
  5963. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=3)as s ON e.smpin=s.smpin LIMIT 1 ";
  5964. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5965. $am_target_mod_dse_count = $get_am_arr[0]->emp_count;
  5966. //Auto Target Set
  5967. $query_str = "SELECT COUNT(DISTINCT u.id) emp_count FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5968. $sales_arr = $conn->getQueryValue($query_str);
  5969. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->emp_count) ? $sales_arr[0]->emp_count : '0';
  5970. $returnarr[] = array("name" => $val->dealer_name . " - " . $val->dealer_code, 'dealer_code' => $val->dealer_code, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'dealer_target_set_dse_count' => $dealer_target_set_dse_count, 'am_target_set_dse_count' => $am_target_set_dse_count, 'am_target_mod_dse_count' => $am_target_mod_dse_count, 'auto_target' => $auto_target);
  5971. }
  5972. }
  5973. }
  5974. $manager_cond = ($mcond != '') ? " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND dealer_code!='' " . $mcond . " )" : " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND dealer_code!='' )";
  5975. //DEALER COUNT
  5976. $getdealercount_str = "SELECT COUNT(id) dealer_count FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 " . $mcond . " ";
  5977. $getdealercount_data = $conn->getQueryValue($getdealercount_str);
  5978. $dealer_count = $getdealercount_data[0]->dealer_count;
  5979. //DSE COUNT
  5980. $query_str = "SELECT COUNT(u.id) emp_count FROM " . DMS_EMPLOYEE . " u WHERE u.role IN (SELECT rolename FROM `" . TABLE_ROLE . "` WHERE id>7 AND id<14) AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5981. $dsecount_arr = $conn->getQueryValue($query_str);
  5982. $dse_count = $dsecount_arr[0]->emp_count;
  5983. //Target Set by Dealers
  5984. $get_dealer_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=14)as s ON e.smpin=s.smpin LIMIT 1 ";
  5985. $get_dealerupdated_arr = $conn->getQueryValue($get_dealer_updated_str);
  5986. $dealer_target_set_dse_count = $get_dealerupdated_arr[0]->emp_count;
  5987. //Target Approved by AMs
  5988. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=2)as s ON e.smpin=s.smpin LIMIT 1 ";
  5989. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5990. $am_target_set_dse_count = $get_am_arr[0]->emp_count;
  5991. //Target Modified by AMs
  5992. $get_am_updated_str = "SELECT COUNT(DISTINCT e.id) emp_count FROM (SELECT id,dealer_code,smpin FROM " . DMS_EMPLOYEE . " u WHERE status=1 " . $user_cond . $manager_cond . " )as e JOIN (SELECT id,smpin FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' AND roleid=7 AND status=3)as s ON e.smpin=s.smpin LIMIT 1 ";
  5993. $get_am_arr = $conn->getQueryValue($get_am_updated_str);
  5994. $am_target_mod_dse_count = $get_am_arr[0]->emp_count;
  5995. //Auto Target Set
  5996. $query_str = "SELECT COUNT(DISTINCT u.id) emp_count FROM " . DMS_EMPLOYEE . " u " . $tablejoin . " JOIN (SELECT id,smpin,target,sale_month FROM " . TABLE_USER_SALETARGET . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) t ON u.smpin=t.smpin LEFT JOIN (SELECT id,smpin,sale_month,status FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE sale_month>='" . $from_date . "' AND sale_month<='" . $to_date . "' ) s ON s.smpin=t.smpin AND t.sale_month=s.sale_month WHERE s.id IS NULL AND u.status=1 " . $user_cond . $manager_cond . " LIMIT 1 ";
  5997. $sales_arr = $conn->getQueryValue($query_str);
  5998. $auto_target = (count($sales_arr) > 0 && $sales_arr[0]->emp_count) ? $sales_arr[0]->emp_count : '0';
  5999. $total_arr = array('dealer_count' => $dealer_count, 'dealer_count' => $dealer_count, 'dse_count' => $dse_count, 'dealer_target_set_dse_count' => $dealer_target_set_dse_count, 'am_target_set_dse_count' => $am_target_set_dse_count, 'am_target_mod_dse_count' => $am_target_mod_dse_count, 'auto_target' => $auto_target);
  6000. if (count($returnarr) > 0) {
  6001. $sno = 1;
  6002. foreach ($returnarr as $mkey => $res_user) {
  6003. // $header_arr=array('Users', 'Employee Count','Registered Count','Percentage %');
  6004. $i = 0;
  6005. $row++;
  6006. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['name']);
  6007. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['dealer_count']);
  6008. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['dse_count']);
  6009. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['dealer_target_set_dse_count']);
  6010. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['am_target_set_dse_count']);
  6011. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['am_target_mod_dse_count']);
  6012. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user['auto_target']);
  6013. }
  6014. }
  6015. //TOTAL
  6016. $row += 2;
  6017. $i = 0;
  6018. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, "Total");
  6019. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['dealer_count']);
  6020. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['dse_count']);
  6021. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['dealer_target_set_dse_count']);
  6022. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['am_target_set_dse_count']);
  6023. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['am_target_mod_dse_count']);
  6024. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $total_arr['auto_target']);
  6025. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row);
  6026. setCellBorder($bordercells_arr, $objPHPExcel);
  6027. $objPHPExcel->getActiveSheet()->setTitle('SET SALES TARGET REPORT');
  6028. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  6029. $fpath = "../" . S3_REPORT_URL;
  6030. $filename = "setsales_report_" . uniqid() . ".xlsx";
  6031. $objWriter->save($fpath . $filename);
  6032. //S3 UPLOAD
  6033. //S3 LIB
  6034. require dirname(__FILE__) . '/awsfileserver.php';
  6035. //S3 OBJ
  6036. $s3 = awsfileserver::connectS3();
  6037. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  6038. //DELETE AFTER MOVE TO S3
  6039. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  6040. $obj = new stdClass();
  6041. $obj->key_name = S3_REPORT_URL . $filename;
  6042. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  6043. $returnarr = array("report_url" => $url);
  6044. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  6045. } else {
  6046. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  6047. }
  6048. } catch (PDOException $e) {
  6049. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  6050. }
  6051. }
  6052. // useraccess_data
  6053. function useraccess_data()
  6054. {
  6055. global $conn;
  6056. try {
  6057. $lang = "en_us";
  6058. $pageData = $conn->loadJSON($lang);
  6059. $_SESSION["userid"] = 1;
  6060. if (isset($_SESSION["userid"])) {
  6061. $page = escape_str($_REQUEST["page"]);
  6062. $zm_email = escape_str($_REQUEST["zm_email"]);
  6063. $rm_email = escape_str($_REQUEST["rm_email"]);
  6064. $am_email = escape_str($_REQUEST["am_email"]);
  6065. $user_cond = '';
  6066. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  6067. $mcond = '';
  6068. $mcond = ($am_email != 'all' && $am_email != '') ? " AND am_email='" . $am_email . "'" : '';
  6069. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND rm_email='" . $rm_email . "'" : '';
  6070. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND zm_email='" . $zm_email . "'" : '';
  6071. //AM
  6072. $user_cond = $mcond;
  6073. } else {
  6074. //PAN
  6075. $user_cond = '';
  6076. }
  6077. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  6078. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  6079. $objPHPExcel = new PHPExcel();
  6080. $objPHPExcel->setActiveSheetIndex(0);
  6081. $from_date = date('Y-m-d', strtotime(CUR_DATE));
  6082. //$to_date=date('Y-m-t',strtotime(CUR_DATE));
  6083. $to_date = date('Y-m-d', strtotime(CUR_DATE));
  6084. $row += 2;
  6085. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "USER LOGIN REPORT - " . date('d-M-Y', strtotime($from_date)));
  6086. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":J" . $row);
  6087. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  6088. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  6089. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  6090. $regtype = (escape_str($_REQUEST["regtype"]) == '1') ? "1" : "0";
  6091. if ($regtype == '1') {
  6092. //$query_str="SELECT modified_on FROM ".DMS_EMPLOYEE." ORDER BY modified_on DESC LIMIT 1 ";
  6093. //$data_arr=$conn->getQueryValue($query_str);
  6094. $tablejoin = " JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin";
  6095. $user_reg_cond = " AND e.is_current=1 ";
  6096. }
  6097. // Search
  6098. if (!empty($key)) {
  6099. $ucond .= " and (smpin like '%" . $key . "%' OR fname like '%" . $key . "%' OR lname like '%" . $key . "%' ) ";
  6100. }
  6101. $row++;
  6102. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, 'K' . $row);
  6103. setCellBorder($bordercells_arr, $objPHPExcel);
  6104. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  6105. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Segment', 'last Access', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  6106. $i = 0;
  6107. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6108. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6109. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  6110. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6111. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  6112. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6113. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  6114. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6115. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  6116. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  6117. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  6118. $i = 0;
  6119. foreach ($header_arr as $val) {
  6120. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  6121. }
  6122. //GET ALL USER
  6123. $user_str = "SELECT u.*,l.created_on,d.dealer_name,d.zone,d.zm_name,d.rm_name,d.am_name FROM (SELECT userid,smpin,fname,lname,dealer_code,segment FROM " . TABLE_USER . " WHERE is_deleted=0 AND role>7 AND role<14 AND status=1 " . $ucond . " )u " . $tablejoin . " JOIN (SELECT userid,MAX(created_on)as created_on FROM " . TABLE_USER_LOG . " WHERE created_on>='" . $from_date . " 00:00:00' AND created_on<='" . $to_date . " 23:59:59' GROUP BY userid) l ON l.userid=u.userid JOIN (SELECT dealer_code,dealer_name,zone,zm_name,rm_name,am_name FROM " . DMS_DEALER . " WHERE status=1 AND is_deleted=0 AND dealer_code!='' " . $user_cond . " )d ON u.dealer_code=d.dealer_code GROUP BY u.userid ORDER BY l.created_on,u.userid ";
  6124. $result_arr = $conn->getQueryValue($user_str);
  6125. if (count($result_arr)) {
  6126. $sno = 1;
  6127. foreach ($result_arr as $res_user) {
  6128. //'#','SMPIN', 'DSE Name','last Access','Dealer Code','Dealer Name','Zone','ZM','RM','AM'
  6129. $i = 0;
  6130. $row++;
  6131. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  6132. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  6133. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  6134. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  6135. switch ($res_user->segment) {
  6136. case '0':$segment_str = 'Student Learner';
  6137. break;
  6138. case '1':$segment_str = 'Parents/Guardian';
  6139. break;
  6140. case '2':$segment_str = 'Instructor';
  6141. break;
  6142. default:$segment_str = 'Student Learner';
  6143. break;
  6144. }
  6145. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $segment_str);
  6146. $time_str = date('d-m-Y h:i A', strtotime($res_user->created_on));
  6147. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $time_str);
  6148. $objPHPExcel->getActiveSheet()->getStyle('E' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  6149. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  6150. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  6151. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  6152. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  6153. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  6154. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  6155. }
  6156. }
  6157. $objPHPExcel->getActiveSheet()->setTitle('USER LOGIN REPORT');
  6158. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  6159. $fpath = "../" . S3_REPORT_URL;
  6160. $filename = "user_login_report_" . uniqid() . ".xlsx";
  6161. $objWriter->save($fpath . $filename);
  6162. //S3 UPLOAD
  6163. //S3 LIB
  6164. require dirname(__FILE__) . '/awsfileserver.php';
  6165. //S3 OBJ
  6166. $s3 = awsfileserver::connectS3();
  6167. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  6168. //DELETE AFTER MOVE TO S3
  6169. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  6170. $obj = new stdClass();
  6171. $obj->key_name = S3_REPORT_URL . $filename;
  6172. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  6173. $returnarr = array("report_url" => $url);
  6174. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  6175. } else {
  6176. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  6177. }
  6178. } catch (PDOException $e) {
  6179. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  6180. }
  6181. }
  6182. // bulletin_report_list
  6183. function bulletin_report_list()
  6184. {
  6185. global $conn;
  6186. try {
  6187. $lang = "en_us";
  6188. $pageData = $conn->loadJSON($lang);
  6189. //$_SESSION["userid"]=1;
  6190. if (isset($_SESSION["userid"])) {
  6191. $page = escape_str($_REQUEST["page"]);
  6192. $zm_email = escape_str($_REQUEST["zm_email"]);
  6193. $rm_email = escape_str($_REQUEST["rm_email"]);
  6194. $am_email = escape_str($_REQUEST["am_email"]);
  6195. $user_cond = '';
  6196. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  6197. $mcond = '';
  6198. $mcond = ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  6199. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  6200. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  6201. //AM
  6202. $user_cond = $mcond;
  6203. } else {
  6204. //PAN
  6205. $user_cond = '';
  6206. }
  6207. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  6208. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  6209. $objPHPExcel = new PHPExcel();
  6210. $objPHPExcel->setActiveSheetIndex(0);
  6211. $row += 2;
  6212. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "BULLETIN VIEW REPORT");
  6213. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":L" . $row);
  6214. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  6215. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  6216. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  6217. $bulletin_id = escape_str($_REQUEST["bulletin_id"]);
  6218. //BULLETIN
  6219. $query_str = "SELECT `bulletin_id`, `bulletin_title`, `bulletin_sdesc`, `bulletin_desc` FROM " . TABLE_BULLETIN . " WHERE `status`='1' AND `is_deleted`=0 AND bulletin_id='" . $bulletin_id . "' LIMIT 1 ";
  6220. $content_arr = $conn->getQueryValue($query_str);
  6221. if (!count($content_arr) > 0) {
  6222. $conn->message(false, $conn->getMessage($lang, 'report', 'error2'));
  6223. }
  6224. $row++;
  6225. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "BULLETIN : " . $content_arr[0]->bulletin_title);
  6226. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  6227. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":D" . $row);
  6228. $row++;
  6229. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row, "F" . $row, "G" . $row, "H" . $row, "I" . $row, "J" . $row, "K" . $row);
  6230. setCellBorder($bordercells_arr, $objPHPExcel);
  6231. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  6232. $header_arr = array('S.No', 'SMPIN', 'DSE Name', 'Mobile', 'Viewed on', 'Dealer Code', 'Dealer Name', 'Zone', 'ZM', 'RM', 'AM');
  6233. $i = 0;
  6234. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6235. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6236. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  6237. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6238. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  6239. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6240. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  6241. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6242. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  6243. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  6244. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  6245. $i = 0;
  6246. foreach ($header_arr as $val) {
  6247. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  6248. }
  6249. //GET ALL USER
  6250. $content_user_str = "SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.status,u.created_on,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,c.created_on FROM (SELECT id,userid,created_on FROM `" . TABLE_BULLETINSTATUS . "` WHERE bulletin_id='" . $bulletin_id . "') c JOIN " . TABLE_USER . " u ON u.userid=c.userid JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE e.is_current=1 " . $user_cond . " ORDER BY c.id DESC";
  6251. $contentresult_arr = $conn->getQueryValue($content_user_str);
  6252. if (count($contentresult_arr)) {
  6253. $sno = 1;
  6254. foreach ($contentresult_arr as $res_user) {
  6255. //$header_arr=array('S.No','SMPIN', 'DSE Name','Mobile','Completed on','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  6256. $i = 0;
  6257. $row++;
  6258. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  6259. $objPHPExcel->getActiveSheet()->getStyle('B' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  6260. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->smpin);
  6261. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->fname . " " . $res_user->lname);
  6262. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->mobileno);
  6263. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res_user->created_on)));
  6264. $objPHPExcel->getActiveSheet()->getStyle('F' . $row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  6265. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_code);
  6266. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->dealer_name);
  6267. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zone);
  6268. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->zm_name);
  6269. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->rm_name);
  6270. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_user->am_name);
  6271. }
  6272. }
  6273. $objPHPExcel->getActiveSheet()->setTitle('BULLETIN REPORT');
  6274. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  6275. $fpath = "../" . S3_REPORT_URL;
  6276. $filename = "user_bulletin_report_" . uniqid() . ".xlsx";
  6277. $objWriter->save($fpath . $filename);
  6278. //S3 UPLOAD
  6279. //S3 LIB
  6280. require dirname(__FILE__) . '/awsfileserver.php';
  6281. //S3 OBJ
  6282. $s3 = awsfileserver::connectS3();
  6283. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  6284. //DELETE AFTER MOVE TO S3
  6285. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  6286. $obj = new stdClass();
  6287. $obj->key_name = S3_REPORT_URL . $filename;
  6288. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  6289. $returnarr = array("report_url" => $url);
  6290. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  6291. } else {
  6292. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  6293. }
  6294. } catch (PDOException $e) {
  6295. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  6296. }
  6297. }
  6298. // bulletin_report
  6299. function bulletin_report()
  6300. {
  6301. global $conn;
  6302. try {
  6303. $lang = "en_us";
  6304. $pageData = $conn->loadJSON($lang);
  6305. //$_SESSION["userid"]=1;
  6306. if (isset($_SESSION["userid"])) {
  6307. $zm_email = escape_str($_REQUEST["zm_email"]);
  6308. $rm_email = escape_str($_REQUEST["rm_email"]);
  6309. $am_email = escape_str($_REQUEST["am_email"]);
  6310. $user_cond = '';
  6311. if (($am_email != 'all' && $am_email != '') || ($rm_email != 'all' && $rm_email != '') || ($zm_email != 'all' && $zm_email != '')) {
  6312. $mcond = '';
  6313. $mcond = ($am_email != 'all' && $am_email != '') ? " AND d.am_email='" . $am_email . "'" : '';
  6314. $mcond .= ($rm_email != 'all' && $rm_email != '') ? " AND d.rm_email='" . $rm_email . "'" : '';
  6315. $mcond .= ($zm_email != 'all' && $zm_email != '') ? " AND d.zm_email='" . $zm_email . "'" : '';
  6316. //AM
  6317. $user_cond = $mcond;
  6318. } else {
  6319. //PAN
  6320. $user_cond = '';
  6321. }
  6322. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  6323. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  6324. $objPHPExcel = new PHPExcel();
  6325. $objPHPExcel->setActiveSheetIndex(0);
  6326. $row += 2;
  6327. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "BULLETIN REPORT");
  6328. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":C" . $row);
  6329. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  6330. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  6331. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  6332. $row++;
  6333. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row);
  6334. setCellBorder($bordercells_arr, $objPHPExcel);
  6335. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  6336. //Dashboard
  6337. //Learning
  6338. //Assessment
  6339. //Feedback
  6340. $header_arr = array('S.No', 'Title', 'No. of DSE Viewed');
  6341. $i = 0;
  6342. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6343. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  6344. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  6345. $i = 0;
  6346. foreach ($header_arr as $val) {
  6347. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  6348. }
  6349. //GET ALL CONTENTS OF CATEGORY
  6350. $query_str = "SELECT `bulletin_id`, `bulletin_title`, `bulletin_sdesc`, `bulletin_desc` FROM " . TABLE_BULLETIN . " WHERE `status`='1' AND `is_deleted`=0 ORDER BY bulletin_id ASC ";
  6351. $contentresult_arr = $conn->getQueryValue($query_str);
  6352. if (count($contentresult_arr)) {
  6353. $sno = 1;
  6354. foreach ($contentresult_arr as $res_content) {
  6355. //'#','Topic', 'Content','Content type','DSE Completed'
  6356. $i = 0;
  6357. $row++;
  6358. $count_str = "SELECT COUNT(DISTINCT c.userid) as total_view FROM (SELECT userid,bulletin_id FROM `" . TABLE_BULLETINSTATUS . "` WHERE bulletin_id='" . $res_content->bulletin_id . "' ) c JOIN " . TABLE_USER . " u ON u.userid=c.userid JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin JOIN " . DMS_DEALER . " as d ON d.dealer_code=u.dealer_code WHERE u.role>7 AND u.role<14 AND u.is_deleted=0 AND e.is_current=1 " . $user_cond . " GROUP BY c.bulletin_id LIMIT 1";
  6359. $count_arr = $conn->getQueryValue($count_str);
  6360. $res_content->total_view = (count($count_arr) > 0) ? $count_arr[0]->total_view : 0;
  6361. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  6362. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_content->bulletin_title);
  6363. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res_content->total_view);
  6364. }
  6365. }
  6366. $objPHPExcel->getActiveSheet()->setTitle('BULLETIN REPORT');
  6367. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  6368. $fpath = "../" . S3_REPORT_URL;
  6369. $filename = "bulletin_report_" . uniqid() . ".xlsx";
  6370. $objWriter->save($fpath . $filename);
  6371. //S3 UPLOAD
  6372. //S3 LIB
  6373. require dirname(__FILE__) . '/awsfileserver.php';
  6374. //S3 OBJ
  6375. $s3 = awsfileserver::connectS3();
  6376. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  6377. //DELETE AFTER MOVE TO S3
  6378. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  6379. $obj = new stdClass();
  6380. $obj->key_name = S3_REPORT_URL . $filename;
  6381. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  6382. $returnarr = array("report_url" => $url);
  6383. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  6384. } else {
  6385. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  6386. }
  6387. } catch (PDOException $e) {
  6388. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  6389. }
  6390. }
  6391. // rewardpoint_data
  6392. function rewardpoint_data()
  6393. {
  6394. global $conn;
  6395. try {
  6396. $lang = "en_us";
  6397. $pageData = $conn->loadJSON($lang);
  6398. //$_SESSION["userid"]=1;
  6399. if (isset($_SESSION["userid"])) {
  6400. $smpin = escape_str($_REQUEST["smpin"]);
  6401. //CHECK DEALER
  6402. $query_str = "SELECT * FROM " . DMS_EMPLOYEE . " WHERE status=1 AND smpin='" . $smpin . "' LIMIT 1";
  6403. $smpin_data = $conn->getQueryValue($query_str);
  6404. if (!count($smpin_data) > 0) {
  6405. $conn->message(false, $conn->getMessage($lang, 'report', 'error8'));
  6406. }
  6407. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel.php';
  6408. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR . 'PHPExcel/Writer/Excel2007.php';
  6409. $objPHPExcel = new PHPExcel();
  6410. $objPHPExcel->setActiveSheetIndex(0);
  6411. $row += 2;
  6412. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "REWARD POINT HISTORY REPORT");
  6413. $objPHPExcel->getActiveSheet()->mergeCells("A" . $row . ":E" . $row);
  6414. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  6415. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  6416. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setSize(14);
  6417. $row++;
  6418. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "EMPLOYE :");
  6419. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  6420. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, $smpin_data[0]->fname . " " . $smpin_data[0]->lname . " - " . $smpin_data[0]->smpin);
  6421. $objPHPExcel->getActiveSheet()->mergeCells("B" . $row . ":E" . $row);
  6422. $row++;
  6423. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SMPIN :");
  6424. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  6425. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, $smpin_data[0]->smpin);
  6426. $objPHPExcel->getActiveSheet()->mergeCells("B" . $row . ":E" . $row);
  6427. $segment_str = '';
  6428. switch ($smpin_data[0]->segment) {
  6429. case '1':$segment_str = 'Parents/Guardian';
  6430. break;
  6431. case '2':$segment_str = 'Instructor';
  6432. break;
  6433. default:$segment_str = 'Student Learner';
  6434. break;
  6435. }
  6436. $row++;
  6437. $objPHPExcel->getActiveSheet()->SetCellValue('A' . $row, "SEGMENT :");
  6438. $objPHPExcel->getActiveSheet()->getStyle("A" . $row)->getFont()->setBold(true);
  6439. $objPHPExcel->getActiveSheet()->SetCellValue('B' . $row, $segment_str);
  6440. $objPHPExcel->getActiveSheet()->mergeCells("B" . $row . ":E" . $row);
  6441. $row++;
  6442. $bordercells_arr = array("A" . $row, "B" . $row, "C" . $row, "D" . $row, "E" . $row);
  6443. setCellBorder($bordercells_arr, $objPHPExcel);
  6444. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  6445. //Dashboard
  6446. //Learning
  6447. //Assessment
  6448. //Feedback
  6449. $header_arr = array('S.No', 'Description', "Points", "Type", "Date");
  6450. $i = 0;
  6451. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10');
  6452. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  6453. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('10');
  6454. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6455. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  6456. $i = 0;
  6457. foreach ($header_arr as $val) {
  6458. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $val);
  6459. }
  6460. //HISTORY
  6461. $query_str = "SELECT * FROM " . TABLE_USER_EPOINTS_HISTORY . " WHERE smpin='" . $smpin . "' ORDER BY hid DESC ";
  6462. $result_arr = $conn->getQueryValue($query_str);
  6463. if (count($result_arr)) {
  6464. $sno = 1;
  6465. foreach ($result_arr as $res) {
  6466. //'#','Topic', 'Content','Content type','DSE Completed'
  6467. $i = 0;
  6468. $row++;
  6469. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $sno++);
  6470. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res->description);
  6471. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $res->points);
  6472. $type_str = ($res->transaction_type == 'C') ? "Credit" : "Debit";
  6473. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, $type_str);
  6474. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++) . $row, date('d-m-Y h:i A', strtotime($res->created_on)));
  6475. }
  6476. }
  6477. $objPHPExcel->getActiveSheet()->setTitle('REWARD POINT REPORT');
  6478. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  6479. $fpath = "../" . S3_REPORT_URL;
  6480. $filename = "reward_report_" . uniqid() . ".xlsx";
  6481. $objWriter->save($fpath . $filename);
  6482. //S3 UPLOAD
  6483. //S3 LIB
  6484. require dirname(__FILE__) . '/awsfileserver.php';
  6485. //S3 OBJ
  6486. $s3 = awsfileserver::connectS3();
  6487. awsfileserver::checkupload($s3, S3_BUCKET, S3_REPORT_URL . $filename, dirname(__FILE__) . "/../" . S3_REPORT_URL . $filename);
  6488. //DELETE AFTER MOVE TO S3
  6489. @unlink(dirname(__FILE__) . '/../' . S3_REPORT_URL . $filename);
  6490. $obj = new stdClass();
  6491. $obj->key_name = S3_REPORT_URL . $filename;
  6492. $url = awsfileserver::getS3Url($s3, S3_BUCKET, $obj);
  6493. $returnarr = array("report_url" => $url);
  6494. $conn->message(true, $conn->getMessage($lang, 'report', 'success1'), $returnarr);
  6495. } else {
  6496. $conn->message(false, $conn->getMessage($lang, 'report', 'error1'));
  6497. }
  6498. } catch (PDOException $e) {
  6499. $conn->message(false, $conn->getMessage($lang, 'report', 'error4'));
  6500. }
  6501. }