report_content_download.php 85 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546
  1. <?php
  2. /* * **************************
  3. * File : report_content_download.php
  4. * Author : Cygnusa
  5. * @2020
  6. * ************************** */
  7. // included in reportdownload.php
  8. // content_report_v2
  9. function content_report_v2() {
  10. global $conn;
  11. try {
  12. $lang = "en_us";
  13. $pageData = $conn->loadJSON($lang);
  14. //$_SESSION["userid"]=1;
  15. if(isset($_SESSION["userid"]))
  16. {
  17. $page = escape_str($_REQUEST["page"]);
  18. $zm_email = escape_str($_REQUEST["zm_email"]);
  19. $rm_email = escape_str($_REQUEST["rm_email"]);
  20. $am_email = escape_str($_REQUEST["am_email"]);
  21. $user_cond='';
  22. if(($am_email!='all' && $am_email!='')||($rm_email!='all' && $rm_email!='')||($zm_email!='all' && $zm_email!=''))
  23. {
  24. $mcond='';
  25. $mcond=($am_email!='all' && $am_email!='')?" AND d.am_email='".$am_email."'":'';
  26. $mcond.=($rm_email!='all' && $rm_email!='')?" AND d.rm_email='".$rm_email."'":'';
  27. $mcond.=($zm_email!='all' && $zm_email!='')?" AND d.zm_email='".$zm_email."'":'';
  28. //AM
  29. $user_cond=$mcond;
  30. }else
  31. {
  32. //PAN
  33. $user_cond='';
  34. }
  35. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  36. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  37. $objPHPExcel = new PHPExcel();
  38. $objPHPExcel->setActiveSheetIndex(0);
  39. $row+=2;
  40. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CONTENT REPORT");
  41. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":F".$row);
  42. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  43. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  44. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  45. $cateid = escape_str($_REQUEST["cateid"]);
  46. $query_str = "SELECT `cateid`, `catename` FROM ".TABLE_CATEGORY." WHERE cateid='".$cateid."' LIMIT 1";
  47. $cat_arr=$conn->getQueryValue($query_str);
  48. if(!count($cat_arr)>0)
  49. {
  50. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  51. }
  52. $row++;
  53. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CATEGORY : ".$cat_arr[0]->catename);
  54. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  55. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  56. $row++;
  57. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,'F'.$row);
  58. setCellBorder($bordercells_arr,$objPHPExcel);
  59. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  60. //Dashboard
  61. //Learning
  62. //Assessment
  63. //Feedback
  64. $header_arr=array('S.No','Topic', 'Content Title','Content type','No. of DSE Viewed','No. of DSE Completed');
  65. $i=0;
  66. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  67. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  68. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  69. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  70. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  71. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  72. $i=0;
  73. foreach($header_arr as $val)
  74. {
  75. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  76. }
  77. //GET ALL CONTENTS OF CATEGORY
  78. $query_str="SELECT c.assettopicid,ca.cateid,c.title,t.topicname,c.contentid,c.title,f.filetypeid 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.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid ORDER BY t.position ASC,t.assettopicid ASC,c.contentid ASC ";
  79. $contentresult_arr=$conn->getQueryValue($query_str);
  80. if(count($contentresult_arr))
  81. {
  82. $sno=1;
  83. foreach($contentresult_arr as $res_content)
  84. {
  85. //'#','Topic', 'Content','Content type','DSE Completed'
  86. $i=0;
  87. $row++;
  88. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$res_content->contentid."' ) 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.is_deleted=0 AND u.role>7 AND u.role<14 AND e.is_current=1 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  89. $count_arr=$conn->getQueryValue($count_str);
  90. $res_content->total_view=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  91. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  92. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->topicname);
  93. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->title);
  94. switch($res_content->filetypeid)
  95. {
  96. case '1':$file_type_str='PDF';
  97. break;
  98. case '2':$file_type_str='MP4';
  99. break;
  100. case '3':$file_type_str='MP3';
  101. break;
  102. default:$file_type_str='';
  103. break;
  104. }
  105. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$file_type_str);
  106. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_view);
  107. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE status=2 AND contentid='".$res_content->contentid."' ) 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.is_deleted=0 AND u.role>7 AND u.role<14 AND e.is_current=1 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  108. $count_arr=$conn->getQueryValue($count_str);
  109. $res_content->total_completed=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  110. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_completed);
  111. }
  112. }
  113. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  114. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  115. $fpath="../".S3_REPORT_URL;
  116. $filename="content_report_". uniqid().".xlsx";
  117. $objWriter->save($fpath.$filename);
  118. //S3 UPLOAD
  119. //S3 LIB
  120. require (dirname(__FILE__).'/awsfileserver.php');
  121. //S3 OBJ
  122. $s3=awsfileserver::connectS3();
  123. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  124. //DELETE AFTER MOVE TO S3
  125. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  126. $obj = new stdClass();
  127. $obj->key_name=S3_REPORT_URL.$filename;
  128. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  129. $returnarr=array("report_url"=>$url);
  130. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  131. }else{
  132. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  133. }
  134. }catch (PDOException $e) {
  135. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  136. }
  137. }
  138. // content_report_list_v2
  139. function content_report_list_v2() {
  140. global $conn;
  141. try {
  142. $lang = "en_us";
  143. $pageData = $conn->loadJSON($lang);
  144. //$_SESSION["userid"]=1;
  145. if(isset($_SESSION["userid"]))
  146. {
  147. $page = escape_str($_REQUEST["page"]);
  148. $zm_email = escape_str($_REQUEST["zm_email"]);
  149. $rm_email = escape_str($_REQUEST["rm_email"]);
  150. $am_email = escape_str($_REQUEST["am_email"]);
  151. $user_cond='';
  152. if(($am_email!='all' && $am_email!='')||($rm_email!='all' && $rm_email!='')||($zm_email!='all' && $zm_email!=''))
  153. {
  154. $mcond='';
  155. $mcond=($am_email!='all' && $am_email!='')?" AND d.am_email='".$am_email."'":'';
  156. $mcond.=($rm_email!='all' && $rm_email!='')?" AND d.rm_email='".$rm_email."'":'';
  157. $mcond.=($zm_email!='all' && $zm_email!='')?" AND d.zm_email='".$zm_email."'":'';
  158. //AM
  159. $user_cond=$mcond;
  160. }else
  161. {
  162. //PAN
  163. $user_cond='';
  164. }
  165. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  166. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  167. $objPHPExcel = new PHPExcel();
  168. $objPHPExcel->setActiveSheetIndex(0);
  169. $row+=2;
  170. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CONTENT REPORT");
  171. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":L".$row);
  172. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  173. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  174. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  175. $assettopicid = escape_str($_REQUEST["assettopicid"]);
  176. $contentid = escape_str($_REQUEST["contentid"]);
  177. //CONTENT
  178. $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 c.contentid ='".$contentid."' AND c.assettopicid='".$assettopicid."' AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid LIMIT 1 ";
  179. $content_arr=$conn->getQueryValue($query_str);
  180. if(!count($content_arr)>0)
  181. {
  182. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  183. }
  184. $row++;
  185. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"TOPIC : ".$content_arr[0]->topicname);
  186. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  187. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  188. $row++;
  189. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CONTENT : ".$content_arr[0]->title);
  190. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  191. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  192. $row++;
  193. $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);
  194. setCellBorder($bordercells_arr,$objPHPExcel);
  195. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  196. $header_arr=array('Title','SMPIN', 'DSE Name','Segment','Mobile','Status','Completed on','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  197. $i=0;
  198. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  199. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  200. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  201. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  202. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  203. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  204. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  205. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  206. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  207. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  208. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  209. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  210. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  211. $i=0;
  212. foreach($header_arr as $val)
  213. {
  214. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  215. }
  216. //GET ALL USER
  217. $content_user_str="SELECT u.smpin,u.fname,u.lname,u.mobileno,u.dealer_code,u.segment,c.completeddate,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,CASE WHEN c.status=0 THEN 'Started' WHEN c.status=1 THEN 'In progress' WHEN c.status=2 THEN 'Completed' ELSE 'In progress' END as content_status ,c.status as cstatus FROM (SELECT id,userid,contentid,status,completeddate,modified_on FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$contentid."' AND assettopicid='".$assettopicid."') 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 e.is_current=1 ".$user_cond." GROUP BY c.userid ORDER BY c.status DESC,c.modified_on ASC ";
  218. $contentresult_arr=$conn->getQueryValue($content_user_str);
  219. if(count($contentresult_arr))
  220. {
  221. $sno=1;
  222. foreach($contentresult_arr as $res_user)
  223. {
  224. //$header_arr=array('#','SMPIN', 'DSE Name','Mobile','Completed on','Dealer Code','Dealer Name','Zone','ZM','RM','AM');
  225. $i=0;
  226. $row++;
  227. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  228. $objPHPExcel->getActiveSheet()->getStyle('B'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  229. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->smpin);
  230. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->fname." ".$res_user->lname);
  231. switch($res_user->segment)
  232. {
  233. case '0':$segment_str='Student Learner'; break;
  234. case '1':$segment_str='Parents/Guardian'; break;
  235. case '2':$segment_str='Instructor'; break;
  236. default:$segment_str='Student Learner'; break;
  237. }
  238. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$segment_str);
  239. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->mobileno);
  240. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->content_status);
  241. switch($res_user->cstatus)
  242. {
  243. case '0': $color='D3D3D3';break;
  244. case '1': $color='FFA500'; break;
  245. case '2': $color='008000';break;
  246. default:$color='D3D3D3';break;
  247. }
  248. $objPHPExcel->getActiveSheet()->getStyle('F'.$row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB($color);
  249. $objPHPExcel->getActiveSheet()->getStyle('G'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  250. $completeddate=($res_user->completeddate!='0000-00-00 00:00:00')?date('d-m-Y',strtotime($res_user->completeddate)):'';
  251. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$completeddate);
  252. $objPHPExcel->getActiveSheet()->getStyle('H'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  253. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->dealer_code);
  254. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->dealer_name);
  255. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->zone);
  256. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->zm_name);
  257. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->rm_name);
  258. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->am_name);
  259. }
  260. }
  261. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  262. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  263. $fpath="../".S3_REPORT_URL;
  264. $filename="user_content_report_". uniqid().".xlsx";
  265. $objWriter->save($fpath.$filename);
  266. //S3 UPLOAD
  267. //S3 LIB
  268. require (dirname(__FILE__).'/awsfileserver.php');
  269. //S3 OBJ
  270. $s3=awsfileserver::connectS3();
  271. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  272. //DELETE AFTER MOVE TO S3
  273. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  274. $obj = new stdClass();
  275. $obj->key_name=S3_REPORT_URL.$filename;
  276. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  277. $returnarr=array("report_url"=>$url);
  278. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  279. }else{
  280. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  281. }
  282. }catch (PDOException $e) {
  283. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  284. }
  285. }
  286. function content_report_zm() {
  287. global $conn;
  288. try {
  289. $lang = "en_us";
  290. $pageData = $conn->loadJSON($lang);
  291. //$_SESSION["userid"]=1;
  292. if(isset($_SESSION["userid"]))
  293. {
  294. $page = escape_str($_REQUEST["page"]);
  295. $user_cond='';
  296. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  297. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  298. $objPHPExcel = new PHPExcel();
  299. $objPHPExcel->setActiveSheetIndex(0);
  300. $row+=2;
  301. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"ZM CONTENT REPORT");
  302. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":F".$row);
  303. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  304. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  305. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  306. $cateid = escape_str($_REQUEST["cateid"]);
  307. $query_str = "SELECT `cateid`, `catename` FROM ".TABLE_CATEGORY." WHERE cateid='".$cateid."' LIMIT 1";
  308. $cat_arr=$conn->getQueryValue($query_str);
  309. if(!count($cat_arr)>0)
  310. {
  311. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  312. }
  313. $row++;
  314. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CATEGORY : ".$cat_arr[0]->catename);
  315. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  316. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  317. $row++;
  318. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,'F'.$row);
  319. setCellBorder($bordercells_arr,$objPHPExcel);
  320. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  321. //Dashboard
  322. //Learning
  323. //Assessment
  324. //Feedback
  325. $header_arr=array('S.No','Topic', 'Content Title','Content type','No. of ZM Viewed','No. of ZM Completed');
  326. $i=0;
  327. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  328. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  329. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  330. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  331. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  332. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  333. $i=0;
  334. foreach($header_arr as $val)
  335. {
  336. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  337. }
  338. //GET ALL CONTENTS OF CATEGORY
  339. $query_str="SELECT c.assettopicid,ca.cateid,c.title,t.topicname,c.contentid,c.title,f.filetypeid 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 (c.filter_role='' OR FIND_IN_SET(4,c.filter_role)) AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid ORDER BY t.position ASC,t.assettopicid ASC,c.contentid ASC ";
  340. $contentresult_arr=$conn->getQueryValue($query_str);
  341. if(count($contentresult_arr))
  342. {
  343. $sno=1;
  344. foreach($contentresult_arr as $res_content)
  345. {
  346. //'#','Topic', 'Content','Content type','DSE Completed'
  347. $i=0;
  348. $row++;
  349. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$res_content->contentid."' ) c JOIN ".TABLE_USER." u ON u.userid=c.userid WHERE u.is_deleted=0 AND u.role=4 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  350. $count_arr=$conn->getQueryValue($count_str);
  351. $res_content->total_view=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  352. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  353. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->topicname);
  354. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->title);
  355. switch($res_content->filetypeid)
  356. {
  357. case '1':$file_type_str='PDF';
  358. break;
  359. case '2':$file_type_str='MP4';
  360. break;
  361. case '3':$file_type_str='MP3';
  362. break;
  363. default:$file_type_str='';
  364. break;
  365. }
  366. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$file_type_str);
  367. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_view);
  368. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE status=2 AND contentid='".$res_content->contentid."' ) c JOIN ".TABLE_USER." u ON u.userid=c.userid WHERE u.is_deleted=0 AND u.role=4 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  369. $count_arr=$conn->getQueryValue($count_str);
  370. $res_content->total_completed=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  371. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_completed);
  372. }
  373. }
  374. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  375. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  376. $fpath="../".S3_REPORT_URL;
  377. $filename="content_report_". uniqid().".xlsx";
  378. $objWriter->save($fpath.$filename);
  379. //S3 UPLOAD
  380. //S3 LIB
  381. require (dirname(__FILE__).'/awsfileserver.php');
  382. //S3 OBJ
  383. $s3=awsfileserver::connectS3();
  384. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  385. //DELETE AFTER MOVE TO S3
  386. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  387. $obj = new stdClass();
  388. $obj->key_name=S3_REPORT_URL.$filename;
  389. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  390. $returnarr=array("report_url"=>$url);
  391. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  392. }else{
  393. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  394. }
  395. }catch (PDOException $e) {
  396. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  397. }
  398. }
  399. function content_report_trainer() {
  400. global $conn;
  401. try {
  402. $lang = "en_us";
  403. $pageData = $conn->loadJSON($lang);
  404. //$_SESSION["userid"]=1;
  405. if(isset($_SESSION["userid"]))
  406. {
  407. $page = escape_str($_REQUEST["page"]);
  408. $user_cond='';
  409. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  410. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  411. $objPHPExcel = new PHPExcel();
  412. $objPHPExcel->setActiveSheetIndex(0);
  413. $row+=2;
  414. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"TRAINER CONTENT REPORT");
  415. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":F".$row);
  416. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  417. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  418. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  419. $cateid = escape_str($_REQUEST["cateid"]);
  420. $query_str = "SELECT `cateid`, `catename` FROM ".TABLE_CATEGORY." WHERE cateid='".$cateid."' LIMIT 1";
  421. $cat_arr=$conn->getQueryValue($query_str);
  422. if(!count($cat_arr)>0)
  423. {
  424. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  425. }
  426. $row++;
  427. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CATEGORY : ".$cat_arr[0]->catename);
  428. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  429. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  430. $row++;
  431. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,'F'.$row);
  432. setCellBorder($bordercells_arr,$objPHPExcel);
  433. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  434. //Dashboard
  435. //Learning
  436. //Assessment
  437. //Feedback
  438. $header_arr=array('S.No','Topic', 'Content Title','Content type','No. of Trainer Viewed','No. of Trainer Completed');
  439. $i=0;
  440. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  441. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  442. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  443. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  444. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  445. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  446. $i=0;
  447. foreach($header_arr as $val)
  448. {
  449. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  450. }
  451. //GET ALL CONTENTS OF CATEGORY
  452. $query_str="SELECT c.assettopicid,ca.cateid,c.title,t.topicname,c.contentid,c.title,f.filetypeid 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 (c.filter_role='' OR FIND_IN_SET(5,c.filter_role)) AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid ORDER BY t.position ASC,t.assettopicid ASC,c.contentid ASC ";
  453. $contentresult_arr=$conn->getQueryValue($query_str);
  454. if(count($contentresult_arr))
  455. {
  456. $sno=1;
  457. foreach($contentresult_arr as $res_content)
  458. {
  459. //'#','Topic', 'Content','Content type','DSE Completed'
  460. $i=0;
  461. $row++;
  462. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$res_content->contentid."' ) c JOIN ".TABLE_USER." u ON u.userid=c.userid WHERE u.is_deleted=0 AND u.role=5 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  463. $count_arr=$conn->getQueryValue($count_str);
  464. $res_content->total_view=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  465. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  466. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->topicname);
  467. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->title);
  468. switch($res_content->filetypeid)
  469. {
  470. case '1':$file_type_str='PDF';
  471. break;
  472. case '2':$file_type_str='MP4';
  473. break;
  474. case '3':$file_type_str='MP3';
  475. break;
  476. default:$file_type_str='';
  477. break;
  478. }
  479. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$file_type_str);
  480. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_view);
  481. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE status=2 AND contentid='".$res_content->contentid."' ) c JOIN ".TABLE_USER." u ON u.userid=c.userid WHERE u.is_deleted=0 AND u.role=5 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  482. $count_arr=$conn->getQueryValue($count_str);
  483. $res_content->total_completed=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  484. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_completed);
  485. }
  486. }
  487. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  488. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  489. $fpath="../".S3_REPORT_URL;
  490. $filename="content_report_". uniqid().".xlsx";
  491. $objWriter->save($fpath.$filename);
  492. //S3 UPLOAD
  493. //S3 LIB
  494. require (dirname(__FILE__).'/awsfileserver.php');
  495. //S3 OBJ
  496. $s3=awsfileserver::connectS3();
  497. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  498. //DELETE AFTER MOVE TO S3
  499. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  500. $obj = new stdClass();
  501. $obj->key_name=S3_REPORT_URL.$filename;
  502. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  503. $returnarr=array("report_url"=>$url);
  504. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  505. }else{
  506. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  507. }
  508. }catch (PDOException $e) {
  509. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  510. }
  511. }
  512. function content_report_rm() {
  513. global $conn;
  514. try {
  515. $lang = "en_us";
  516. $pageData = $conn->loadJSON($lang);
  517. //$_SESSION["userid"]=1;
  518. if(isset($_SESSION["userid"]))
  519. {
  520. $page = escape_str($_REQUEST["page"]);
  521. $zm_email = escape_str($_REQUEST["zm_email"]);
  522. $user_cond='';
  523. if( ($zm_email!='all' && $zm_email!=''))
  524. {
  525. $mcond='';
  526. $mcond.=($zm_email!='all' && $zm_email!='')?" AND d.zm_email='".$zm_email."'":'';
  527. //AM
  528. $user_cond=$mcond;
  529. }else
  530. {
  531. //PAN
  532. $user_cond='';
  533. }
  534. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  535. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  536. $objPHPExcel = new PHPExcel();
  537. $objPHPExcel->setActiveSheetIndex(0);
  538. $row+=2;
  539. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"RM CONTENT REPORT");
  540. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":F".$row);
  541. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  542. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  543. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  544. $cateid = escape_str($_REQUEST["cateid"]);
  545. $query_str = "SELECT `cateid`, `catename` FROM ".TABLE_CATEGORY." WHERE cateid='".$cateid."' LIMIT 1";
  546. $cat_arr=$conn->getQueryValue($query_str);
  547. if(!count($cat_arr)>0)
  548. {
  549. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  550. }
  551. $row++;
  552. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CATEGORY : ".$cat_arr[0]->catename);
  553. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  554. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  555. $row++;
  556. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,'F'.$row);
  557. setCellBorder($bordercells_arr,$objPHPExcel);
  558. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  559. //Dashboard
  560. //Learning
  561. //Assessment
  562. //Feedback
  563. $header_arr=array('S.No','Topic', 'Content Title','Content type','No. of RM Viewed','No. of RM Completed');
  564. $i=0;
  565. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  566. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  567. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  568. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  569. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  570. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  571. $i=0;
  572. foreach($header_arr as $val)
  573. {
  574. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  575. }
  576. //GET ALL CONTENTS OF CATEGORY
  577. $query_str="SELECT c.assettopicid,ca.cateid,c.title,t.topicname,c.contentid,c.title,f.filetypeid 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 (c.filter_role='' OR FIND_IN_SET(6,c.filter_role)) AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid ORDER BY t.position ASC,t.assettopicid ASC,c.contentid ASC ";
  578. $contentresult_arr=$conn->getQueryValue($query_str);
  579. if(count($contentresult_arr))
  580. {
  581. $sno=1;
  582. foreach($contentresult_arr as $res_content)
  583. {
  584. //'#','Topic', 'Content','Content type','DSE Completed'
  585. $i=0;
  586. $row++;
  587. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$res_content->contentid."' ) c JOIN ".TABLE_USER." u ON u.userid=c.userid JOIN ".DMS_DEALER." as d ON d.rm_email=u.emailid WHERE u.is_deleted=0 AND u.role=6 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  588. $count_arr=$conn->getQueryValue($count_str);
  589. $res_content->total_view=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  590. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  591. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->topicname);
  592. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->title);
  593. switch($res_content->filetypeid)
  594. {
  595. case '1':$file_type_str='PDF';
  596. break;
  597. case '2':$file_type_str='MP4';
  598. break;
  599. case '3':$file_type_str='MP3';
  600. break;
  601. default:$file_type_str='';
  602. break;
  603. }
  604. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$file_type_str);
  605. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_view);
  606. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE status=2 AND contentid='".$res_content->contentid."' ) c JOIN ".TABLE_USER." u ON u.userid=c.userid JOIN ".DMS_DEALER." as d ON d.rm_email=u.emailid WHERE u.is_deleted=0 AND u.role=6 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  607. $count_arr=$conn->getQueryValue($count_str);
  608. $res_content->total_completed=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  609. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_completed);
  610. }
  611. }
  612. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  613. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  614. $fpath="../".S3_REPORT_URL;
  615. $filename="content_report_". uniqid().".xlsx";
  616. $objWriter->save($fpath.$filename);
  617. //S3 UPLOAD
  618. //S3 LIB
  619. require (dirname(__FILE__).'/awsfileserver.php');
  620. //S3 OBJ
  621. $s3=awsfileserver::connectS3();
  622. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  623. //DELETE AFTER MOVE TO S3
  624. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  625. $obj = new stdClass();
  626. $obj->key_name=S3_REPORT_URL.$filename;
  627. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  628. $returnarr=array("report_url"=>$url);
  629. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  630. }else{
  631. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  632. }
  633. }catch (PDOException $e) {
  634. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  635. }
  636. }
  637. function content_report_am() {
  638. global $conn;
  639. try {
  640. $lang = "en_us";
  641. $pageData = $conn->loadJSON($lang);
  642. //$_SESSION["userid"]=1;
  643. if(isset($_SESSION["userid"]))
  644. {
  645. $page = escape_str($_REQUEST["page"]);
  646. $zm_email = escape_str($_REQUEST["zm_email"]);
  647. $rm_email = escape_str($_REQUEST["rm_email"]);
  648. $user_cond='';
  649. if( ($rm_email!='all' && $rm_email!='')||($zm_email!='all' && $zm_email!=''))
  650. {
  651. $mcond='';
  652. $mcond.=($rm_email!='all' && $rm_email!='')?" AND d.rm_email='".$rm_email."'":'';
  653. $mcond.=($zm_email!='all' && $zm_email!='')?" AND d.zm_email='".$zm_email."'":'';
  654. //AM
  655. $user_cond=$mcond;
  656. }else
  657. {
  658. //PAN
  659. $user_cond='';
  660. }
  661. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  662. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  663. $objPHPExcel = new PHPExcel();
  664. $objPHPExcel->setActiveSheetIndex(0);
  665. $row+=2;
  666. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"AM CONTENT REPORT");
  667. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":F".$row);
  668. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  669. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  670. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  671. $cateid = escape_str($_REQUEST["cateid"]);
  672. $query_str = "SELECT `cateid`, `catename` FROM ".TABLE_CATEGORY." WHERE cateid='".$cateid."' LIMIT 1";
  673. $cat_arr=$conn->getQueryValue($query_str);
  674. if(!count($cat_arr)>0)
  675. {
  676. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  677. }
  678. $row++;
  679. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CATEGORY : ".$cat_arr[0]->catename);
  680. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  681. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  682. $row++;
  683. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,'F'.$row);
  684. setCellBorder($bordercells_arr,$objPHPExcel);
  685. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  686. //Dashboard
  687. //Learning
  688. //Assessment
  689. //Feedback
  690. $header_arr=array('S.No','Topic', 'Content Title','Content type','No. of AM Viewed','No. of AM Completed');
  691. $i=0;
  692. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  693. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  694. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('45');
  695. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  696. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  697. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  698. $i=0;
  699. foreach($header_arr as $val)
  700. {
  701. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  702. }
  703. //GET ALL CONTENTS OF CATEGORY
  704. $query_str="SELECT c.assettopicid,ca.cateid,c.title,t.topicname,c.contentid,c.title,f.filetypeid 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 (c.filter_role='' OR FIND_IN_SET(7,c.filter_role)) AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid ORDER BY t.position ASC,t.assettopicid ASC,c.contentid ASC ";
  705. $contentresult_arr=$conn->getQueryValue($query_str);
  706. if(count($contentresult_arr))
  707. {
  708. $sno=1;
  709. foreach($contentresult_arr as $res_content)
  710. {
  711. //'#','Topic', 'Content','Content type','DSE Completed'
  712. $i=0;
  713. $row++;
  714. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$res_content->contentid."' ) c JOIN ".TABLE_USER." u ON u.userid=c.userid JOIN ".DMS_DEALER." as d ON d.am_email=u.emailid WHERE u.is_deleted=0 AND u.role=7 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  715. $count_arr=$conn->getQueryValue($count_str);
  716. $res_content->total_view=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  717. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  718. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->topicname);
  719. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->title);
  720. switch($res_content->filetypeid)
  721. {
  722. case '1':$file_type_str='PDF';
  723. break;
  724. case '2':$file_type_str='MP4';
  725. break;
  726. case '3':$file_type_str='MP3';
  727. break;
  728. default:$file_type_str='';
  729. break;
  730. }
  731. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$file_type_str);
  732. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_view);
  733. $count_str="SELECT COUNT(c.userid) as total_view FROM (SELECT userid,contentid FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE status=2 AND contentid='".$res_content->contentid."' ) c JOIN ".TABLE_USER." u ON u.userid=c.userid JOIN ".DMS_DEALER." as d ON d.am_email=u.emailid WHERE u.is_deleted=0 AND u.role=7 ".$user_cond." GROUP BY c.contentid LIMIT 1";
  734. $count_arr=$conn->getQueryValue($count_str);
  735. $res_content->total_completed=(count($count_arr)>0)?$count_arr[0]->total_view:0;
  736. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_content->total_completed);
  737. }
  738. }
  739. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  740. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  741. $fpath="../".S3_REPORT_URL;
  742. $filename="content_report_". uniqid().".xlsx";
  743. $objWriter->save($fpath.$filename);
  744. //S3 UPLOAD
  745. //S3 LIB
  746. require (dirname(__FILE__).'/awsfileserver.php');
  747. //S3 OBJ
  748. $s3=awsfileserver::connectS3();
  749. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  750. //DELETE AFTER MOVE TO S3
  751. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  752. $obj = new stdClass();
  753. $obj->key_name=S3_REPORT_URL.$filename;
  754. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  755. $returnarr=array("report_url"=>$url);
  756. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  757. }else{
  758. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  759. }
  760. }catch (PDOException $e) {
  761. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  762. }
  763. }
  764. // content_report_list_zm
  765. function content_report_list_zm() {
  766. global $conn;
  767. try {
  768. $lang = "en_us";
  769. $pageData = $conn->loadJSON($lang);
  770. //$_SESSION["userid"]=1;
  771. if(isset($_SESSION["userid"]))
  772. {
  773. $page = escape_str($_REQUEST["page"]);
  774. $user_cond='';
  775. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  776. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  777. $objPHPExcel = new PHPExcel();
  778. $objPHPExcel->setActiveSheetIndex(0);
  779. $row+=2;
  780. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"ZM CONTENT REPORT");
  781. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":L".$row);
  782. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  783. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  784. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  785. $assettopicid = escape_str($_REQUEST["assettopicid"]);
  786. $contentid = escape_str($_REQUEST["contentid"]);
  787. //CONTENT
  788. $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 c.contentid ='".$contentid."' AND c.assettopicid='".$assettopicid."' AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid LIMIT 1 ";
  789. $content_arr=$conn->getQueryValue($query_str);
  790. if(!count($content_arr)>0)
  791. {
  792. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  793. }
  794. $row++;
  795. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"TOPIC : ".$content_arr[0]->topicname);
  796. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  797. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  798. $row++;
  799. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CONTENT : ".$content_arr[0]->title);
  800. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  801. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  802. $row++;
  803. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,"F".$row,"G".$row);
  804. setCellBorder($bordercells_arr,$objPHPExcel);
  805. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  806. $header_arr=array('S.No','EMP CODE', 'Name','Mobile','Email','Status','Completed on');
  807. $i=0;
  808. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  809. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  810. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  811. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  812. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  813. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  814. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  815. $i=0;
  816. foreach($header_arr as $val)
  817. {
  818. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  819. }
  820. //GET ALL USER
  821. $content_user_str="SELECT u.emp_code,u.fname,u.lname,u.mobileno,u.emailid,c.completeddate,CASE WHEN c.status=0 THEN 'Started' WHEN c.status=1 THEN 'In progress' WHEN c.status=2 THEN 'Completed' ELSE 'In progress' END as content_status ,c.status as cstatus FROM (SELECT id,userid,contentid,status,completeddate,modified_on FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$contentid."' AND assettopicid='".$assettopicid."') c JOIN ".TABLE_USER." u ON u.userid=c.userid WHERE u.role=4 ".$user_cond." GROUP BY c.userid ORDER BY c.status DESC,c.modified_on ASC ";
  822. $contentresult_arr=$conn->getQueryValue($content_user_str);
  823. if(count($contentresult_arr))
  824. {
  825. $sno=1;
  826. foreach($contentresult_arr as $res_user)
  827. {
  828. //array('#','EMP CODE', 'Name','Mobile','Email','Status','Completed on');
  829. $i=0;
  830. $row++;
  831. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  832. $objPHPExcel->getActiveSheet()->getStyle('B'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  833. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emp_code);
  834. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,trim($res_user->fname." ".$res_user->lname));
  835. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->mobileno);
  836. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emailid);
  837. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->content_status);
  838. switch($res_user->cstatus)
  839. {
  840. case '0': $color='D3D3D3';break;
  841. case '1': $color='FFA500'; break;
  842. case '2': $color='008000';break;
  843. default:$color='D3D3D3';break;
  844. }
  845. $objPHPExcel->getActiveSheet()->getStyle('F'.$row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB($color);
  846. $completeddate=($res_user->completeddate!='0000-00-00 00:00:00')?date('d-m-Y',strtotime($res_user->completeddate)):'';
  847. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$completeddate);
  848. }
  849. }
  850. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  851. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  852. $fpath="../".S3_REPORT_URL;
  853. $filename="user_content_report_". uniqid().".xlsx";
  854. $objWriter->save($fpath.$filename);
  855. //S3 UPLOAD
  856. //S3 LIB
  857. require (dirname(__FILE__).'/awsfileserver.php');
  858. //S3 OBJ
  859. $s3=awsfileserver::connectS3();
  860. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  861. //DELETE AFTER MOVE TO S3
  862. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  863. $obj = new stdClass();
  864. $obj->key_name=S3_REPORT_URL.$filename;
  865. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  866. $returnarr=array("report_url"=>$url);
  867. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  868. }else{
  869. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  870. }
  871. }catch (PDOException $e) {
  872. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  873. }
  874. }
  875. // content_report_list_trainer
  876. function content_report_list_trainer() {
  877. global $conn;
  878. try {
  879. $lang = "en_us";
  880. $pageData = $conn->loadJSON($lang);
  881. //$_SESSION["userid"]=1;
  882. if(isset($_SESSION["userid"]))
  883. {
  884. $page = escape_str($_REQUEST["page"]);
  885. $user_cond='';
  886. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  887. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  888. $objPHPExcel = new PHPExcel();
  889. $objPHPExcel->setActiveSheetIndex(0);
  890. $row+=2;
  891. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"TRAINER CONTENT REPORT");
  892. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":L".$row);
  893. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  894. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  895. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  896. $assettopicid = escape_str($_REQUEST["assettopicid"]);
  897. $contentid = escape_str($_REQUEST["contentid"]);
  898. //CONTENT
  899. $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 c.contentid ='".$contentid."' AND c.assettopicid='".$assettopicid."' AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid LIMIT 1 ";
  900. $content_arr=$conn->getQueryValue($query_str);
  901. if(!count($content_arr)>0)
  902. {
  903. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  904. }
  905. $row++;
  906. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"TOPIC : ".$content_arr[0]->topicname);
  907. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  908. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  909. $row++;
  910. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CONTENT : ".$content_arr[0]->title);
  911. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  912. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  913. $row++;
  914. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,"F".$row,"G".$row);
  915. setCellBorder($bordercells_arr,$objPHPExcel);
  916. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  917. $header_arr=array('S.No','EMP CODE', 'Name','Mobile','Email','Status','Completed on');
  918. $i=0;
  919. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  920. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  921. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  922. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  923. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  924. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  925. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  926. $i=0;
  927. foreach($header_arr as $val)
  928. {
  929. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  930. }
  931. //GET ALL USER
  932. $content_user_str="SELECT u.emp_code,u.fname,u.lname,u.mobileno,u.emailid,c.completeddate,CASE WHEN c.status=0 THEN 'Started' WHEN c.status=1 THEN 'In progress' WHEN c.status=2 THEN 'Completed' ELSE 'In progress' END as content_status ,c.status as cstatus FROM (SELECT id,userid,contentid,status,completeddate,modified_on FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$contentid."' AND assettopicid='".$assettopicid."') c JOIN ".TABLE_USER." u ON u.userid=c.userid WHERE u.role=5 ".$user_cond." GROUP BY c.userid ORDER BY c.status DESC,c.modified_on ASC ";
  933. $contentresult_arr=$conn->getQueryValue($content_user_str);
  934. if(count($contentresult_arr))
  935. {
  936. $sno=1;
  937. foreach($contentresult_arr as $res_user)
  938. {
  939. //array('#','EMP CODE', 'Name','Mobile','Email','Status','Completed on');
  940. $i=0;
  941. $row++;
  942. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  943. $objPHPExcel->getActiveSheet()->getStyle('B'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  944. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emp_code);
  945. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,trim($res_user->fname." ".$res_user->lname));
  946. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->mobileno);
  947. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emailid);
  948. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->content_status);
  949. switch($res_user->cstatus)
  950. {
  951. case '0': $color='D3D3D3';break;
  952. case '1': $color='FFA500'; break;
  953. case '2': $color='008000';break;
  954. default:$color='D3D3D3';break;
  955. }
  956. $objPHPExcel->getActiveSheet()->getStyle('F'.$row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB($color);
  957. $completeddate=($res_user->completeddate!='0000-00-00 00:00:00')?date('d-m-Y',strtotime($res_user->completeddate)):'';
  958. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$completeddate);
  959. }
  960. }
  961. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  962. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  963. $fpath="../".S3_REPORT_URL;
  964. $filename="user_content_report_". uniqid().".xlsx";
  965. $objWriter->save($fpath.$filename);
  966. //S3 UPLOAD
  967. //S3 LIB
  968. require (dirname(__FILE__).'/awsfileserver.php');
  969. //S3 OBJ
  970. $s3=awsfileserver::connectS3();
  971. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  972. //DELETE AFTER MOVE TO S3
  973. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  974. $obj = new stdClass();
  975. $obj->key_name=S3_REPORT_URL.$filename;
  976. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  977. $returnarr=array("report_url"=>$url);
  978. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  979. }else{
  980. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  981. }
  982. }catch (PDOException $e) {
  983. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  984. }
  985. }
  986. // content_report_list_rm
  987. function content_report_list_rm() {
  988. global $conn;
  989. try {
  990. $lang = "en_us";
  991. $pageData = $conn->loadJSON($lang);
  992. //$_SESSION["userid"]=1;
  993. if(isset($_SESSION["userid"]))
  994. {
  995. $page = escape_str($_REQUEST["page"]);
  996. $zm_email = escape_str($_REQUEST["zm_email"]);
  997. $user_cond='';
  998. if( ($zm_email!='all' && $zm_email!=''))
  999. {
  1000. $mcond='';
  1001. $mcond.=($zm_email!='all' && $zm_email!='')?" AND d.zm_email='".$zm_email."'":'';
  1002. //AM
  1003. $user_cond=$mcond;
  1004. }else
  1005. {
  1006. //PAN
  1007. $user_cond='';
  1008. }
  1009. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  1010. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  1011. $objPHPExcel = new PHPExcel();
  1012. $objPHPExcel->setActiveSheetIndex(0);
  1013. $row+=2;
  1014. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"RM CONTENT REPORT");
  1015. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":L".$row);
  1016. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1017. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  1018. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  1019. $assettopicid = escape_str($_REQUEST["assettopicid"]);
  1020. $contentid = escape_str($_REQUEST["contentid"]);
  1021. //CONTENT
  1022. $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 c.contentid ='".$contentid."' AND c.assettopicid='".$assettopicid."' AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid LIMIT 1 ";
  1023. $content_arr=$conn->getQueryValue($query_str);
  1024. if(!count($content_arr)>0)
  1025. {
  1026. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  1027. }
  1028. $row++;
  1029. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"TOPIC : ".$content_arr[0]->topicname);
  1030. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  1031. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  1032. $row++;
  1033. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CONTENT : ".$content_arr[0]->title);
  1034. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  1035. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  1036. $row++;
  1037. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,"F".$row,"G".$row);
  1038. setCellBorder($bordercells_arr,$objPHPExcel);
  1039. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1040. $header_arr=array('S.No','EMP CODE', 'Name','Mobile','Email','Status','Completed on');
  1041. $i=0;
  1042. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1043. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1044. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  1045. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1046. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1047. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1048. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1049. $i=0;
  1050. foreach($header_arr as $val)
  1051. {
  1052. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  1053. }
  1054. //GET ALL USER
  1055. $content_user_str="SELECT u.emp_code,u.fname,u.lname,u.mobileno,u.emailid,c.completeddate,CASE WHEN c.status=0 THEN 'Started' WHEN c.status=1 THEN 'In progress' WHEN c.status=2 THEN 'Completed' ELSE 'In progress' END as content_status ,c.status as cstatus FROM (SELECT id,userid,contentid,status,completeddate,modified_on FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$contentid."' AND assettopicid='".$assettopicid."') c JOIN ".TABLE_USER." u ON u.userid=c.userid JOIN ".DMS_DEALER." as d ON d.rm_email=u.emailid WHERE u.role=6 ".$user_cond." GROUP BY c.userid ORDER BY c.status DESC,c.modified_on ASC ";
  1056. $contentresult_arr=$conn->getQueryValue($content_user_str);
  1057. if(count($contentresult_arr))
  1058. {
  1059. $sno=1;
  1060. foreach($contentresult_arr as $res_user)
  1061. {
  1062. //array('#','EMP CODE', 'Name','Mobile','Email','Status','Completed on');
  1063. $i=0;
  1064. $row++;
  1065. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  1066. $objPHPExcel->getActiveSheet()->getStyle('B'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1067. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emp_code);
  1068. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,trim($res_user->fname." ".$res_user->lname));
  1069. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->mobileno);
  1070. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emailid);
  1071. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->content_status);
  1072. switch($res_user->cstatus)
  1073. {
  1074. case '0': $color='D3D3D3';break;
  1075. case '1': $color='FFA500'; break;
  1076. case '2': $color='008000';break;
  1077. default:$color='D3D3D3';break;
  1078. }
  1079. $objPHPExcel->getActiveSheet()->getStyle('F'.$row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB($color);
  1080. $completeddate=($res_user->completeddate!='0000-00-00 00:00:00')?date('d-m-Y',strtotime($res_user->completeddate)):'';
  1081. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$completeddate);
  1082. }
  1083. }
  1084. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  1085. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1086. $fpath="../".S3_REPORT_URL;
  1087. $filename="user_content_report_". uniqid().".xlsx";
  1088. $objWriter->save($fpath.$filename);
  1089. //S3 UPLOAD
  1090. //S3 LIB
  1091. require (dirname(__FILE__).'/awsfileserver.php');
  1092. //S3 OBJ
  1093. $s3=awsfileserver::connectS3();
  1094. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  1095. //DELETE AFTER MOVE TO S3
  1096. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  1097. $obj = new stdClass();
  1098. $obj->key_name=S3_REPORT_URL.$filename;
  1099. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  1100. $returnarr=array("report_url"=>$url);
  1101. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  1102. }else{
  1103. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  1104. }
  1105. }catch (PDOException $e) {
  1106. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  1107. }
  1108. }
  1109. // content_report_list_am
  1110. function content_report_list_am() {
  1111. global $conn;
  1112. try {
  1113. $lang = "en_us";
  1114. $pageData = $conn->loadJSON($lang);
  1115. //$_SESSION["userid"]=1;
  1116. if(isset($_SESSION["userid"]))
  1117. {
  1118. $page = escape_str($_REQUEST["page"]);
  1119. $zm_email = escape_str($_REQUEST["zm_email"]);
  1120. $rm_email = escape_str($_REQUEST["rm_email"]);
  1121. $user_cond='';
  1122. if( ($rm_email!='all' && $rm_email!='')||($zm_email!='all' && $zm_email!=''))
  1123. {
  1124. $mcond='';
  1125. $mcond.=($rm_email!='all' && $rm_email!='')?" AND d.rm_email='".$rm_email."'":'';
  1126. $mcond.=($zm_email!='all' && $zm_email!='')?" AND d.zm_email='".$zm_email."'":'';
  1127. //AM
  1128. $user_cond=$mcond;
  1129. }else
  1130. {
  1131. //PAN
  1132. $user_cond='';
  1133. }
  1134. require_once dirname(__FILE__) .DIRECTORY_SEPARATOR. 'PHPExcel.php';
  1135. require_once dirname(__FILE__) . DIRECTORY_SEPARATOR.'PHPExcel/Writer/Excel2007.php';
  1136. $objPHPExcel = new PHPExcel();
  1137. $objPHPExcel->setActiveSheetIndex(0);
  1138. $row+=2;
  1139. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"AM CONTENT REPORT");
  1140. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":L".$row);
  1141. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getAlignment()->setHorizontal(PHPExcel_Style_Alignment::HORIZONTAL_CENTER);
  1142. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  1143. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setSize(14);
  1144. $assettopicid = escape_str($_REQUEST["assettopicid"]);
  1145. $contentid = escape_str($_REQUEST["contentid"]);
  1146. //CONTENT
  1147. $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 c.contentid ='".$contentid."' AND c.assettopicid='".$assettopicid."' AND t.is_deleted='0' AND c.is_deleted='0' GROUP BY c.contentid LIMIT 1 ";
  1148. $content_arr=$conn->getQueryValue($query_str);
  1149. if(!count($content_arr)>0)
  1150. {
  1151. $conn->message(false,$conn->getMessage($lang,'report','error2'));
  1152. }
  1153. $row++;
  1154. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"TOPIC : ".$content_arr[0]->topicname);
  1155. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  1156. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  1157. $row++;
  1158. $objPHPExcel->getActiveSheet()->SetCellValue('A'.$row,"CONTENT : ".$content_arr[0]->title);
  1159. $objPHPExcel->getActiveSheet()->getStyle("A".$row)->getFont()->setBold(true);
  1160. $objPHPExcel->getActiveSheet()->mergeCells("A".$row.":D".$row);
  1161. $row++;
  1162. $bordercells_arr=array("A".$row,"B".$row,"C".$row,"D".$row,"E".$row,"F".$row,"G".$row);
  1163. setCellBorder($bordercells_arr,$objPHPExcel);
  1164. $objPHPExcel->getActiveSheet()->getRowDimension(1)->setRowHeight(-1);
  1165. $header_arr=array('S.No','EMP CODE', 'Name','Mobile','Email','Status','Completed on');
  1166. $i=0;
  1167. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1168. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1169. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('30');
  1170. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1171. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('25');
  1172. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('15');
  1173. $objPHPExcel->getActiveSheet()->getColumnDimension(getColumnFromNumber($i++))->setWidth('20');
  1174. $i=0;
  1175. foreach($header_arr as $val)
  1176. {
  1177. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$val);
  1178. }
  1179. //GET ALL USER
  1180. $content_user_str="SELECT u.emp_code,u.fname,u.lname,u.mobileno,u.emailid,u.dealer_code,u.segment,c.completeddate,d.dealer_name,d.zone,d.`zm_name`,d.`rm_name`,d.`am_name`,CASE WHEN c.status=0 THEN 'Started' WHEN c.status=1 THEN 'In progress' WHEN c.status=2 THEN 'Completed' ELSE 'In progress' END as content_status ,c.status as cstatus FROM (SELECT id,userid,contentid,status,completeddate,modified_on FROM `".TABLE_USER_COMPLETE_CONTENT."` WHERE contentid='".$contentid."' AND assettopicid='".$assettopicid."') c JOIN ".TABLE_USER." u ON u.userid=c.userid JOIN ".DMS_DEALER." as d ON d.am_email=u.emailid WHERE u.role=7 ".$user_cond." GROUP BY c.userid ORDER BY c.status DESC,c.modified_on ASC ";
  1181. $contentresult_arr=$conn->getQueryValue($content_user_str);
  1182. if(count($contentresult_arr))
  1183. {
  1184. $sno=1;
  1185. foreach($contentresult_arr as $res_user)
  1186. {
  1187. //array('#','EMP CODE', 'Name','Mobile','Email','Status','Completed on');
  1188. $i=0;
  1189. $row++;
  1190. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$sno++);
  1191. $objPHPExcel->getActiveSheet()->getStyle('B'.$row)->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);
  1192. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emp_code);
  1193. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,trim($res_user->fname." ".$res_user->lname));
  1194. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->mobileno);
  1195. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->emailid);
  1196. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$res_user->content_status);
  1197. switch($res_user->cstatus)
  1198. {
  1199. case '0': $color='D3D3D3';break;
  1200. case '1': $color='FFA500'; break;
  1201. case '2': $color='008000';break;
  1202. default:$color='D3D3D3';break;
  1203. }
  1204. $objPHPExcel->getActiveSheet()->getStyle('F'.$row)->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB($color);
  1205. $completeddate=($res_user->completeddate!='0000-00-00 00:00:00')?date('d-m-Y',strtotime($res_user->completeddate)):'';
  1206. $objPHPExcel->getActiveSheet()->SetCellValue(getColumnFromNumber($i++).$row,$completeddate);
  1207. }
  1208. }
  1209. $objPHPExcel->getActiveSheet()->setTitle('CONTENT REPORT');
  1210. $objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);
  1211. $fpath="../".S3_REPORT_URL;
  1212. $filename="user_content_report_". uniqid().".xlsx";
  1213. $objWriter->save($fpath.$filename);
  1214. //S3 UPLOAD
  1215. //S3 LIB
  1216. require (dirname(__FILE__).'/awsfileserver.php');
  1217. //S3 OBJ
  1218. $s3=awsfileserver::connectS3();
  1219. awsfileserver::checkupload($s3,S3_BUCKET,S3_REPORT_URL.$filename,dirname(__FILE__)."/../".S3_REPORT_URL.$filename);
  1220. //DELETE AFTER MOVE TO S3
  1221. @unlink(dirname(__FILE__).'/../'.S3_REPORT_URL.$filename);
  1222. $obj = new stdClass();
  1223. $obj->key_name=S3_REPORT_URL.$filename;
  1224. $url=awsfileserver::getS3Url($s3,S3_BUCKET,$obj);
  1225. $returnarr=array("report_url"=>$url);
  1226. $conn->message(true,$conn->getMessage($lang,'report','success1'), $returnarr);
  1227. }else{
  1228. $conn->message(false,$conn->getMessage($lang,'report','error1'));
  1229. }
  1230. }catch (PDOException $e) {
  1231. $conn->message(false,$conn->getMessage($lang,'report','error4'));
  1232. }
  1233. }
  1234. ?>