training.php 47 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024
  1. <?php
  2. include "Connection.php";
  3. require_once(dirname(__FILE__)."/_api/global.php");
  4. $conn = new Connection();
  5. if(isset($_REQUEST["funName"])) {
  6. $db = $conn->getConnection();
  7. $fun = $_REQUEST["funName"];
  8. switch($fun) {
  9. case "participantlist":
  10. case "trainerlist":
  11. case "traininglist":
  12. case "addtraining":
  13. case "edittraining":
  14. case "deletetraining":
  15. case "trainingdetails":
  16. case "batchlist":
  17. case "batchuserlist":
  18. //case "addbatch":
  19. //case "editbatch":
  20. //case "deletebatch":
  21. $fun();
  22. break;
  23. }
  24. }
  25. // PARTICIPANT LIST
  26. function participantlist() {
  27. global $conn;
  28. try {
  29. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  30. if(isset($_SESSION["userid"]))
  31. {
  32. $dealercond='';
  33. $cond='';
  34. //GET LEVEL
  35. $lvl_id=(isset($_REQUEST["lvl_id"]) )?escape_str($_REQUEST["lvl_id"]):$conn->message(false,$conn->getMessage($lang,'training','error5'));
  36. if((isset($_REQUEST["zone"])))
  37. {
  38. $zone = (isset($_REQUEST["zone"]))?escape_str($_REQUEST["zone"]):'';
  39. if($zone)
  40. {
  41. $zone_arr=@explode(',',$zone);
  42. $zone_quotes = array_map("quotes_array", $zone_arr);
  43. $dealercond.=" AND zone IN (".@implode(',',$zone_quotes).")";
  44. }else
  45. {
  46. $dealercond.=" AND zone IN ('')";
  47. }
  48. }
  49. if(isset($_REQUEST["city"]) )
  50. {
  51. $city = (isset($_REQUEST["city"]) )?escape_str($_REQUEST["city"]):'';
  52. if($city)
  53. {
  54. $city_arr=@explode(',',$city);
  55. $city_quotes = array_map("quotes_array", $city_arr);
  56. $dealercond.=" AND city IN (".@implode(',',$city_quotes).")";
  57. }else
  58. {
  59. $dealercond.=" AND city IN ('')";
  60. }
  61. }
  62. if((isset($_REQUEST["dealer"])))
  63. {
  64. $dealer = (isset($_REQUEST["dealer"]))?escape_str($_REQUEST["dealer"]):'';
  65. if($dealer)
  66. {
  67. $dealer_arr=@explode(',',$dealer);
  68. $dealer_quotes = array_map("quotes_array", $dealer_arr);
  69. $cond.=" AND dealer IN (".@implode(',',$dealer_quotes).")";
  70. $dealer_code_cond=" AND dealer_code IN (".@implode(',',$dealer_quotes).")";
  71. }else
  72. {
  73. $cond.=" AND dealer IN ('')";
  74. $dealer_code_cond=" AND dealer_code IN ('')";
  75. }
  76. }
  77. //FOR EDIT SCHEDULE
  78. if((isset($_REQUEST["schedule_id"])))
  79. {
  80. $edit_cond=" AND s.schedule_id!='".escape_str($_REQUEST["schedule_id"])."'";
  81. }
  82. $user_cond=(isset($_REQUEST["user_type"]) && $_REQUEST["user_type"]=='1')?" AND role=15":" AND role>7 AND role<14";
  83. $data_arr=array();
  84. $dealercond=($dealercond!='')?" AND dealer_code IN (SELECT * FROM ".DMS_DEALER." WHERE status='1' AND ".$dealercond.")":"";
  85. $dealer_arr=$conn->getQueryValue("SELECT * FROM ".DMS_DEALER." WHERE status='1' ".$dealer_code_cond.$dealercond);
  86. if(count($dealer_arr)>0)
  87. {
  88. foreach($dealer_arr as $res_dealer)
  89. {
  90. $arr=new stdClass();
  91. $query_str = "SELECT userid,`smpin`, CONCAT(fname,lname) as name FROM ".TABLE_USER." WHERE status='1' ".$user_cond." AND is_deleted='0' AND dealer_code='".$res_dealer->dealer_code."' AND smpin IN (SELECT smpin FROM ".TABLE_USER_LEARNING." WHERE current_status='1' AND lvl_id='".$lvl_id."') AND userid NOT IN (SELECT p.userid FROM ".TABLE_TRAINING_PARTICIPANT." p JOIN ".TABLE_TRAINING_SCHEDULE." s ON p.schedule_id=s.schedule_id WHERE s.status<4 AND s.is_deleted=0 ".$edit_cond.") ORDER BY dealer_code";
  92. $user_arr=$conn->getQueryValue($query_str);
  93. if(count($user_arr)>0)
  94. {
  95. $arr->user =$user_arr;
  96. $arr->dealer_code=$res_dealer->dealer_code;
  97. $arr->dealer_name=$res_dealer->dealer_name;
  98. $data_arr[]=$arr;
  99. }
  100. }
  101. }
  102. $conn->message(true,$conn->getMessage($lang,'training','success1'), $data_arr);
  103. }else {
  104. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  105. }
  106. }
  107. catch(PDOException $e) {
  108. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  109. }
  110. }
  111. //TRAINING LIST
  112. function traininglist () {
  113. global $conn;
  114. try {
  115. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  116. $pn = escape_str($_REQUEST["pn"]);
  117. $nr = escape_str($_REQUEST["nr"]);
  118. $key = escape_str($_REQUEST["key"]);
  119. if(isset($_SESSION["userid"])) {
  120. $excond='';
  121. $month = escape_str($_REQUEST["month"]);
  122. $year = escape_str($_REQUEST["year"]);
  123. if ($month!='' && $year!='') {
  124. $startmonth=date('Y-m-d',strtotime($year."-".$month."-01"))." 00:00:00";
  125. $nextmonth=date('Y-m-d',strtotime('+1 month',strtotime($startmonth)))." 23:59:59";
  126. $excond .= " AND ((a.start_date BETWEEN CAST('".$startmonth."' AS DATE) AND CAST('".$nextmonth."' AS DATE)) OR (a.end_date BETWEEN CAST('".$startmonth."' AS DATE)AND CAST('".$nextmonth."' AS DATE))OR ( CAST('".$startmonth."' AS DATE) BETWEEN a.start_date AND a.end_date) OR ( CAST('".$nextmonth."' AS DATE) BETWEEN a.start_date AND a.end_date))";
  127. }
  128. if ($key!='') {
  129. $excond .= " AND a.schedule_name like '%".$key."%' ";
  130. }
  131. //PAGINATION
  132. if (!empty($pn) and !empty($nr)) {
  133. // Navigation
  134. $limitcond = " limit ".(($pn - 1) * $nr).", " . $nr;
  135. }
  136. $query_str = "SELECT SQL_CALC_FOUND_ROWS a.`schedule_id`, a.`lvl_id`, a.`schedule_name`, a.`trainer_id`, a.`start_date`, a.`end_date`, a.`ques_count`, a.`location`,a.assessmentname,a.assessmenttime, a.`assessment_type`, a.`buffer_day`, a.`filter_zone`, a.`filter_region`, a.`filter_dealer`, a.`is_deleted`, a.`status`, a.`created_on`, a.`modified_on`,l.lvl_name FROM ".TABLE_TRAINING_SCHEDULE." as a JOIN ".TABLE_TRAINING_LEVEL." as l ON l.lvl_id=a.lvl_id WHERE a.is_deleted='0' ".$excond." ORDER BY a.schedule_id DESC ".$limitcond;
  137. $query = $conn->query($query_str);
  138. // Total records
  139. $rows_query = $conn->query("SELECT FOUND_ROWS() as total_records");
  140. $rows_result = $rows_query->fetchAll(PDO::FETCH_OBJ);
  141. $total_records = $rows_result[0]->total_records;
  142. $training_arr= $query->fetchAll(PDO::FETCH_OBJ);
  143. $check_result_arr=array();
  144. if(count($training_arr)>0)
  145. {
  146. foreach($training_arr as $akey=>$res_train)
  147. {
  148. $assessment_type_str="";
  149. switch($res_train->assessment_type)
  150. {
  151. case "0":
  152. $assessment_type_str="Pre Assessment";
  153. break;
  154. case "1":
  155. $assessment_type_str="Post Assessment";
  156. break;
  157. }
  158. $schedule__status_str="";
  159. switch($res_train->status)
  160. {
  161. case "1":
  162. if(strtotime($res_train->start_date)>strtotime(NOW))
  163. {
  164. $schedule__status_str="Not Started";
  165. }else if(strtotime($res_train->end_date)>strtotime(NOW))
  166. {
  167. $schedule__status_str="Expired";
  168. }else
  169. {
  170. $schedule__status_str="In-progress";
  171. }
  172. break;
  173. case "2":
  174. $schedule__status_str="Closed";
  175. break;
  176. case "3":
  177. $schedule__status_str="Closed";
  178. break;
  179. case "4":
  180. $schedule__status_str="Closed";
  181. break;
  182. }
  183. $training_arr[$akey]->assessment_type_str=$assessment_type_str;
  184. //EDITABLE CHECK
  185. $training_arr[$akey]->is_edit='1';
  186. if(strtotime($res_train->start_date)<strtotime(NOW))
  187. {
  188. $training_arr[$akey]->is_edit='0';
  189. }else
  190. {
  191. if($res_train->status=='1')
  192. {
  193. if($res_train->assessment_type=='0' && $res_train->status=='1')
  194. {
  195. $assess_str = "SELECT au.* FROM ".TABLE_ASSESSMENT_USER." as au JOIN ".TABLE_TRAINING_ASSESSMENT." as ta ON ta.assessmentid=au.assessmentid AND au.userid=ta.userid WHERE ta.schedule_id='".$res_train->schedule_id."' LIMIT 1 ";
  196. $assess_arr=$conn->getQueryValue($assess_str);
  197. $training_arr[$akey]->is_edit=(count($assess_arr)>0)?"0":"1";
  198. }
  199. }else
  200. {
  201. $training_arr[$akey]->is_edit='0';
  202. }
  203. }
  204. $training_arr[$akey]->starttime=date('H:i',strtotime($res_train->start_date));
  205. $training_arr[$akey]->endtime=date('H:i',strtotime($res_train->end_date));
  206. $training_arr[$akey]->startdate=date('Y-m-d',strtotime($res_train->start_date));
  207. $training_arr[$akey]->enddate=date('Y-m-d',strtotime($res_train->end_date));
  208. }
  209. }
  210. if (!empty($pn) and !empty($nr)){
  211. $arr['total_records'] = $total_records;
  212. }
  213. $arr['training'] = $training_arr;
  214. if(count($arr) != 0){
  215. $conn->message(true,$conn->getMessage($lang,'training','success1'), $arr);
  216. }else{
  217. $conn->message(false,$conn->getMessage($lang,'training','error2'));
  218. }
  219. }
  220. else{
  221. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  222. }
  223. }
  224. catch(PDOException $e){
  225. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  226. }
  227. }
  228. //ADD TRAINING
  229. function addtraining () {
  230. global $conn;
  231. try {
  232. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  233. if(isset($_SESSION["userid"]))
  234. {
  235. $schedule_name = escape_str($_REQUEST["schedule_name"]);
  236. $lvl_id = escape_str($_REQUEST["lvl_id"]);
  237. $ques_count=escape_str($_REQUEST["ques_count"]);
  238. $startdate=escape_str($_REQUEST["startdate"]);
  239. $enddate=escape_str($_REQUEST["enddate"]);
  240. if(!( $startdate!='' && $enddate!='' ))
  241. {
  242. $conn->message(false,"DATA MISSING");
  243. }
  244. $starttime=escape_str($_REQUEST["starttime"]);
  245. $endtime=escape_str($_REQUEST["endtime"]);
  246. if($starttime!='' && $endtime!='')
  247. {
  248. $startdate.=" ".$starttime;
  249. $enddate.=" ".$endtime;
  250. }else
  251. {
  252. $startdate.=" 00:00:00";
  253. $enddate.=" 23:59:59";
  254. }
  255. $trainer_id=escape_str($_REQUEST["trainer_id"]);
  256. $filter_region='';
  257. $filter_dealer='';
  258. // $filter_region=escape_str($_REQUEST["filter_region"]);
  259. //$filter_dealer=escape_str($_REQUEST["filter_dealer"]);
  260. $travel_desc=escape_str($_REQUEST["travel_desc"]);
  261. $hotel_desc=escape_str($_REQUEST["hotel_desc"]);
  262. $assessment_type=escape_str($_REQUEST["assessment_type"]); //0-Before,1-After
  263. $assessmentname=escape_str($_REQUEST["assessmentname"]);
  264. if(!in_array($assessment_type, array('0','1','2')))$conn->message(false,$conn->getMessage($lang,'training','error6'));
  265. $randomcond=escape_str($_REQUEST["randomcond"]);
  266. $assessmenttime=escape_str($_REQUEST["assessmenttime"]);
  267. //$buffer_day=escape_str($_REQUEST["buffer_day"]);
  268. $buffer_day='1';
  269. $location='';
  270. $participant_json=$_REQUEST["participant"];
  271. $participant_arr=json_decode($participant_json);
  272. $user_type=escape_str($_REQUEST["user_type"]);
  273. //VALIDATION
  274. if(!($schedule_name!='' && $lvl_id!='' && $ques_count>0 && $startdate!='' && $enddate!='' && $trainer_id!='' && $travel_desc!='' && $hotel_desc!='' && $assessmentname!='' && $randomcond!='' && $assessmenttime!='' && $buffer_day>0 && $participant_json!='' && count($participant_arr)>0))
  275. {
  276. $conn->message(false,"DATA MISSING");
  277. }
  278. //CHECK QUESTION COUNT EXIST
  279. $ques_count_valid='0';
  280. $q_count=0;
  281. $assess_str = "SELECT COUNT(id) as ques_count FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' LIMIT 1";
  282. $assess_arr=$conn->getQueryValue($assess_str);
  283. if(count($assess_arr)>0)
  284. {
  285. $ques_count_valid=($ques_count<=$assess_arr[0]->ques_count)?'1':'0';
  286. $q_count=$assess_arr[0]->ques_count;
  287. }
  288. if($ques_count_valid=='0') $conn->message(false,'Add Question\'s in Question Bank for selected Category. Total Question for selected Category : '.$q_count);
  289. //INSERT
  290. $insert_qry = "INSERT INTO ".TABLE_TRAINING_SCHEDULE ." ( `lvl_id`, `user_type`, `schedule_name`, `trainer_id`, `start_date`, `end_date`, `assessmentname`, `assessmenttime`, `randomcond`, `ques_count`, `location`, `assessment_type`, `buffer_day`, `filter_zone`, `filter_region`, `filter_dealer`, `travel_desc`, `hotel_desc`, `is_deleted`, `status`, `created_on`, `modified_on`) VALUES ( '".$lvl_id."','".$user_type."','".$schedule_name."', '".$trainer_id."','".$startdate."', '".$enddate."','".$assessmentname."','".$assessmenttime."','".$randomcond."','".$ques_count."','".$location."','".$assessment_type."','".$buffer_day."','".$filter_zone."','".$filter_region."','".$filter_dealer."','".$travel_desc."','".$hotel_desc."','0','1','".NOW."', '".NOW."')";
  291. $conn->query($insert_qry);
  292. $schedule_id = $conn->lastinsetid();
  293. if(count($participant_arr)>0)
  294. {
  295. foreach($participant_arr as $userid)
  296. {
  297. $ins_participant_arr[] =" ( '".$schedule_id."', '".$userid."', '0', '0', '0', '".$_SESSION["userid"]."','".NOW."', '".NOW."')";
  298. }
  299. $insert_qry = "INSERT INTO ".TABLE_TRAINING_PARTICIPANT ." ( `schedule_id`, `userid`, `is_attendance`, `score`, `assessment_score`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_participant_arr);
  300. $conn->query($insert_qry);
  301. }
  302. if($assessment_type!=2){
  303. //GET ASSESSMENT START DATE
  304. $assessment_startdate=($assessment_type=='0')?NOW:date('Y-m-d H:i:s',strtotime($enddate));
  305. //GET ASSESSMENT END DATE
  306. $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
  307. }
  308. if($assessment_type==2)
  309. {
  310. //GET ASSESSMENT START DATE
  311. $assessment_startdate=NOW;
  312. //GET ASSESSMENT END DATE
  313. $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
  314. //INSERT ASSESSMENT
  315. $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT ." ( `atype`, `lvl_id`, `assessmentname`, `description`, `assessmentimage`, `assessmenttype`, `assettypeid`, `assessmenttimetype`, `assessmenttime`, `attemptslimit`, `publisheddate`, `enddate`, `randomcond`, `filter_role`, `filter_zone`, `filter_region`, `filter_dealer`, `assessmentnotification`, `total_question`,`schedule_id`, `status`, `creatorid`, `created_on`, `modified_on`) VALUES ('1','".$lvl_id."','".$assessmentname."','".$assessmentname."','','1','1','1','".$assessmenttime."','1','".$assessment_startdate."','".$assessment_enddate."','".$randomcond."','','','','','','".$ques_count."','".$schedule_id."','1','".$_SESSION["userid"]."','".NOW."','".NOW."')";
  316. $conn->query($insert_qry);
  317. $assessmentid = $conn->lastinsetid();
  318. if(count($participant_arr)>0)
  319. {
  320. foreach($participant_arr as $userid)
  321. {
  322. $ins_assess_arr[] =" ( '".$assessmentid."','".$schedule_id."', '".$userid."', '0')";
  323. }
  324. }
  325. //ASSESSMENT PARTICPANT ADD
  326. $insert_qry = "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." ( `assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ".@implode(',',$ins_assess_arr);
  327. $conn->query($insert_qry);
  328. //ASSESSMENT QUESTION ADD
  329. $rcond=($randomcond)?"ORDER BY RAND()":"ORDER BY id ASC";
  330. $ques_str = "SELECT * FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' ".$rcond." LIMIT ".$ques_count;
  331. $ques_arr=$conn->getQueryValue($ques_str);
  332. if(count($ques_arr)>0)
  333. {
  334. foreach($ques_arr as $res_ques)
  335. {
  336. $ins_ques_arr[] =" ( '".$assessmentid."','".$res_ques->id."', '1', '".$_SESSION["userid"]."','".NOW."', '".NOW."')";
  337. }
  338. //ASSESSMENT QUESTION
  339. $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT_QUESTION ." (`assessmentid`, `qid`, `is_mandatory`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_ques_arr);
  340. $conn->query($insert_qry);
  341. }
  342. //GET ASSESSMENT START DATE
  343. $assessment_startdate=date('Y-m-d H:i:s',strtotime($enddate));
  344. //GET ASSESSMENT END DATE
  345. $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
  346. $ins_ques_arr=array();
  347. $ins_assess_arr=array();
  348. }
  349. //INSERT ASSESSMENT
  350. $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT ." ( `atype`, `lvl_id`, `assessmentname`, `description`, `assessmentimage`, `assessmenttype`, `assettypeid`, `assessmenttimetype`, `assessmenttime`, `attemptslimit`, `publisheddate`, `enddate`, `randomcond`, `filter_role`, `filter_zone`, `filter_region`, `filter_dealer`, `assessmentnotification`, `total_question`,`schedule_id`, `status`, `creatorid`, `created_on`, `modified_on`) VALUES ('1','".$lvl_id."','".$assessmentname."','".$assessmentname."','','1','1','1','".$assessmenttime."','1','".$assessment_startdate."','".$assessment_enddate."','".$randomcond."','','','','','','".$ques_count."','".$schedule_id."','1','".$_SESSION["userid"]."','".NOW."','".NOW."')";
  351. $conn->query($insert_qry);
  352. $assessmentid = $conn->lastinsetid();
  353. if(count($participant_arr)>0)
  354. {
  355. foreach($participant_arr as $userid)
  356. {
  357. $ins_assess_arr[] =" ( '".$assessmentid."','".$schedule_id."', '".$userid."', '0')";
  358. }
  359. }
  360. //ASSESSMENT PARTICPANT ADD
  361. $insert_qry = "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." ( `assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ".@implode(',',$ins_assess_arr);
  362. $conn->query($insert_qry);
  363. //ASSESSMENT QUESTION ADD
  364. $rcond=($randomcond)?"ORDER BY RAND()":"ORDER BY id ASC";
  365. $ques_str = "SELECT * FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' ".$rcond." LIMIT ".$ques_count;
  366. $ques_arr=$conn->getQueryValue($ques_str);
  367. if(count($ques_arr)>0)
  368. {
  369. foreach($ques_arr as $res_ques)
  370. {
  371. $ins_ques_arr[] =" ( '".$assessmentid."','".$res_ques->id."', '1', '".$_SESSION["userid"]."','".NOW."', '".NOW."')";
  372. }
  373. //ASSESSMENT QUESTION
  374. $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT_QUESTION ." (`assessmentid`, `qid`, `is_mandatory`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_ques_arr);
  375. $conn->query($insert_qry);
  376. }
  377. sendScheduleNotification($schedule_id);
  378. $conn->message(true,$conn->getMessage($lang,'training','success1'));
  379. }
  380. else{
  381. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  382. }
  383. }
  384. catch(PDOException $e){
  385. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  386. }
  387. }
  388. //EDIT TRAINING
  389. function edittraining () {
  390. global $conn;
  391. try {
  392. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  393. if(isset($_SESSION["userid"]))
  394. {
  395. $schedule_id = escape_str($_REQUEST["schedule_id"]);
  396. //CHECK TRAINING
  397. $check_result_str = "SELECT * FROM `".TABLE_TRAINING_SCHEDULE."` WHERE schedule_id='".$schedule_id."' AND is_deleted='0' LIMIT 1";
  398. $check_result_arr=$conn->getQueryValue($check_result_str);
  399. if(!count($check_result_arr)>0)
  400. {
  401. $conn->message(false,$conn->getMessage($lang,'training','error7'));
  402. }
  403. $is_edit='1';
  404. if(strtotime($check_result_arr[0]->start_date)<strtotime(NOW))
  405. {
  406. $is_edit='0';
  407. }else
  408. {
  409. if($check_result_arr[0]->status=='1')
  410. {
  411. if($check_result_arr[0]->assessment_type=='0' && $check_result_arr[0]->status=='1')
  412. {
  413. $assess_str = "SELECT au.* FROM ".TABLE_ASSESSMENT_USER." as au JOIN ".TABLE_TRAINING_ASSESSMENT." as ta ON ta.assessmentid=au.assessmentid AND au.userid=ta.userid WHERE ta.schedule_id='".$check_result_arr[0]->schedule_id."' LIMIT 1 ";
  414. $assess_arr=$conn->getQueryValue($assess_str);
  415. $is_edit=(count($assess_arr)>0)?"0":"1";
  416. }
  417. }else
  418. {
  419. $is_edit='0';
  420. }
  421. }
  422. if($is_edit=='1') $conn->message(false,$conn->getMessage($lang,'training','error8'));
  423. $schedule_name = escape_str($_REQUEST["schedule_name"]);
  424. $lvl_id = escape_str($_REQUEST["lvl_id"]);
  425. $ques_count=escape_str($_REQUEST["ques_count"]);
  426. $startdate=escape_str($_REQUEST["startdate"]);
  427. $enddate=escape_str($_REQUEST["enddate"]);
  428. if(!( $startdate!='' && $enddate!='' ))
  429. {
  430. $conn->message(false,"DATA MISSING");
  431. }
  432. $starttime=escape_str($_REQUEST["starttime"]);
  433. $endtime=escape_str($_REQUEST["endtime"]);
  434. if($starttime!='' && $endtime!='')
  435. {
  436. $startdate.=" ".$starttime;
  437. $enddate.=" ".$endtime;
  438. }else
  439. {
  440. $startdate.=" 00:00:00";
  441. $enddate.=" 23:59:59";
  442. }
  443. $trainer_id=escape_str($_REQUEST["trainer_id"]);
  444. $filter_region=escape_str($_REQUEST["filter_region"]);
  445. $filter_dealer=escape_str($_REQUEST["filter_dealer"]);
  446. $travel_desc=escape_str($_REQUEST["travel_desc"]);
  447. $hotel_desc=escape_str($_REQUEST["hotel_desc"]);
  448. $assessment_type=escape_str($_REQUEST["assessment_type"]); //0-Before,1-After
  449. $assessmentname=escape_str($_REQUEST["assessmentname"]);
  450. if(!in_array($assessment_type, array('0','1','2')))$conn->message(false,$conn->getMessage($lang,'training','error6'));
  451. $randomcond=escape_str($_REQUEST["randomcond"]);
  452. $assessmenttime=escape_str($_REQUEST["assessmenttime"]);
  453. $buffer_day=escape_str($_REQUEST["buffer_day"]);
  454. $location='';
  455. $participant_json=$_REQUEST["participant"];
  456. $participant_arr=json_decode($participant_json);
  457. //VALIDATION
  458. if(!($schedule_id!='' && $schedule_name!='' && $lvl_id!='' && $ques_count>0 && $startdate!='' && $enddate!='' && $trainer_id!='' && $travel_desc!='' && $hotel_desc!='' && $assessmentname!='' && $randomcond!='' && $assessmenttime!='' && $buffer_day>0 && $participant_json!='' && count($participant_arr)>0))
  459. {
  460. $conn->message(false,"DATA MISSING");
  461. }
  462. //CHECK QUESTION COUNT EXIST
  463. $ques_count_valid='0';
  464. $q_count=0;
  465. $assess_str = "SELECT COUNT(id) as ques_count FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' LIMIT 1";
  466. $assess_arr=$conn->getQueryValue($assess_str);
  467. if(count($assess_arr)>0)
  468. {
  469. $ques_count_valid=($ques_count<=$assess_arr[0]->ques_count)?'1':'0';
  470. $q_count=$assess_arr[0]->ques_count;
  471. }
  472. if($ques_count_valid=='0') $conn->message(false,'Question in Question bank less than Question count. Total Question count: '.$q_count);
  473. //UPDATE
  474. $update_qry = "UPDATE ".TABLE_TRAINING_SCHEDULE ." SET lvl_id='".$lvl_id."' , `schedule_name`='".$schedule_name."', `trainer_id`='".$trainer_id."', `start_date`='".$startdate."', `end_date`='".$enddate."', `assessmentname`='".$assessmentname."', `assessmenttime`='".$assessmenttime."', `randomcond`='".$randomcond."', `ques_count`='".$ques_count."', `assessment_type`='".$assessment_type."', `buffer_day`='".$buffer_day."', `filter_zone`='".$filter_zone."', `filter_region`='".$filter_region."', `filter_dealer`='".$filter_dealer."', `travel_desc`='".$travel_desc."', `hotel_desc`='".$hotel_desc."', `modified_on`='".NOW."' WHERE schedule_id='".$schedule_id."'";
  475. $conn->query($update_qry);
  476. //DELETE FROM
  477. $delete_qry = "DELETE FROM ".TABLE_TRAINING_PARTICIPANT." WHERE schedule_id='".$schedule_id."'";
  478. $conn->query($delete_qry);
  479. $select_str=" SELECT * FROM ".TABLE_TRAINING_ASSESSMENT." WHERE schedule_id='".$schedule_id."'";
  480. $select_arr=$conn->getQueryValue($select_str);
  481. if(count($select_arr)>0)
  482. {
  483. //DELETE ASSESSMENT
  484. $delete_qry = "DELETE FROM ".TABLE_ASSESSMENT." WHERE assessmentid='".$select_arr[0]->assessmentid."'";
  485. $conn->query($delete_qry);
  486. //DELETE ASSESSMENT QUESTION.
  487. $delete_qry = "DELETE FROM ".TABLE_ASSESSMENT_QUESTION." WHERE assessmentid='".$select_arr[0]->assessmentid."'";
  488. $conn->query($delete_qry);
  489. //DELETE TRAINING ASSESSMENT
  490. $delete_qry = "DELETE FROM ".TABLE_TRAINING_ASSESSMENT." WHERE schedule_id='".$schedule_id."'";
  491. $conn->query($delete_qry);
  492. }
  493. if(count($participant_arr)>0)
  494. {
  495. foreach($participant_arr as $userid)
  496. {
  497. $ins_participant_arr[] =" ( '".$schedule_id."', '".$userid."', '0', '0', '0', '".$_SESSION["userid"]."','".NOW."', '".NOW."')";
  498. }
  499. $insert_qry = "INSERT INTO ".TABLE_TRAINING_PARTICIPANT ." ( `schedule_id`, `userid`, `is_attendance`, `score`, `assessment_score`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_participant_arr);
  500. $conn->query($insert_qry);
  501. }
  502. if($assessment_type!=2){
  503. //START DATE
  504. $assessment_startdate=($assessment_type=='0')?NOW:date('Y-m-d H:i:s',strtotime($enddate));
  505. //GET ASSESSMENT END DATE
  506. $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
  507. }
  508. if($assessment_type==2){
  509. //GET ASSESSMENT START DATE
  510. $assessment_startdate=NOW;
  511. //GET ASSESSMENT END DATE
  512. $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
  513. //INSERT ASSESSMENT
  514. $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT ." ( `atype`, `lvl_id`, `assessmentname`, `description`, `assessmentimage`, `assessmenttype`, `assettypeid`, `assessmenttimetype`, `assessmenttime`, `attemptslimit`, `publisheddate`, `enddate`, `randomcond`, `filter_role`, `filter_zone`, `filter_region`, `filter_dealer`, `assessmentnotification`, `total_question`,schedule_id, `status`, `creatorid`, `created_on`, `modified_on`) VALUES ('1','".$lvl_id."','".$assessmentname."','".$assessmentname."','','1','1','1','".$assessmenttime."','1','".$assessment_startdate."','".$assessment_enddate."','".$randomcond."','','','','','','".$ques_count."','".$schedule_id."','1','".$_SESSION["userid"]."','".NOW."','".NOW."')";
  515. $conn->query($insert_qry);
  516. $assessmentid = $conn->lastinsetid();
  517. if(count($participant_arr)>0)
  518. {
  519. foreach($participant_arr as $userid)
  520. {
  521. $ins_assess_arr[] =" ( '".$assessmentid."','".$schedule_id."', '".$userid."', '0' )";
  522. }
  523. //ASSESSMENT PARTICPANT ADD
  524. $insert_qry = "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." ( `assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ".@implode(',',$ins_assess_arr);
  525. $conn->query($insert_qry);
  526. }
  527. //ASSESSMENT QUESTION ADD
  528. $rcond=($randomcond)?"ORDER BY RAND()":"ORDER BY id ASC";
  529. $ques_str = "SELECT * FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' ".$rcond." LIMIT ".$ques_count;
  530. $ques_arr=$conn->getQueryValue($ques_str);
  531. if(count($ques_arr)>0)
  532. {
  533. foreach($ques_arr as $res_ques)
  534. {
  535. $ins_ques_arr[] =" ( '".$assessmentid."','".$res_ques->id."', '1', '".$_SESSION["userid"]."','".NOW."', '".NOW."')";
  536. }
  537. //ASSESSMENT QUESTION
  538. $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT_QUESTION ." (`assessmentid`, `qid`, `is_mandatory`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_ques_arr);
  539. $conn->query($insert_qry);
  540. }
  541. //GET ASSESSMENT START DATE
  542. $assessment_startdate=date('Y-m-d H:i:s',strtotime($enddate));
  543. //GET ASSESSMENT END DATE
  544. $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
  545. $ins_ques_arr=array();
  546. $ins_assess_arr=array();
  547. }
  548. //INSERT ASSESSMENT
  549. $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT ." ( `atype`, `lvl_id`, `assessmentname`, `description`, `assessmentimage`, `assessmenttype`, `assettypeid`, `assessmenttimetype`, `assessmenttime`, `attemptslimit`, `publisheddate`, `enddate`, `randomcond`, `filter_role`, `filter_zone`, `filter_region`, `filter_dealer`, `assessmentnotification`, `total_question`,schedule_id, `status`, `creatorid`, `created_on`, `modified_on`) VALUES ('1','".$lvl_id."','".$assessmentname."','".$assessmentname."','','1','1','1','".$assessmenttime."','1','".$assessment_startdate."','".$assessment_enddate."','".$randomcond."','','','','','','".$ques_count."','".$schedule_id."','1','".$_SESSION["userid"]."','".NOW."','".NOW."')";
  550. $conn->query($insert_qry);
  551. $assessmentid = $conn->lastinsetid();
  552. if(count($participant_arr)>0)
  553. {
  554. foreach($participant_arr as $userid)
  555. {
  556. $ins_assess_arr[] =" ( '".$assessmentid."','".$schedule_id."', '".$userid."', '0' )";
  557. }
  558. //ASSESSMENT PARTICPANT ADD
  559. $insert_qry = "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." ( `assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ".@implode(',',$ins_assess_arr);
  560. $conn->query($insert_qry);
  561. }
  562. //ASSESSMENT QUESTION ADD
  563. $rcond=($randomcond)?"ORDER BY RAND()":"ORDER BY id ASC";
  564. $ques_str = "SELECT * FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' ".$rcond." LIMIT ".$ques_count;
  565. $ques_arr=$conn->getQueryValue($ques_str);
  566. if(count($ques_arr)>0)
  567. {
  568. foreach($ques_arr as $res_ques)
  569. {
  570. $ins_ques_arr[] =" ( '".$assessmentid."','".$res_ques->id."', '1', '".$_SESSION["userid"]."','".NOW."', '".NOW."')";
  571. }
  572. //ASSESSMENT QUESTION
  573. $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT_QUESTION ." (`assessmentid`, `qid`, `is_mandatory`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_ques_arr);
  574. $conn->query($insert_qry);
  575. }
  576. $conn->message(true,$conn->getMessage($lang,'training','success1'));
  577. }
  578. else{
  579. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  580. }
  581. }
  582. catch(PDOException $e){
  583. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  584. }
  585. }
  586. // TRAINER LIST
  587. function trainerlist() {
  588. global $conn;
  589. try {
  590. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  591. if(isset($_SESSION["userid"]))
  592. {
  593. $query_str = "SELECT u.userid, CONCAT(u.fname,u.lname) as name,h.zone,u.emp_code FROM ".TABLE_USER." as u JOIN ".DMS_HOUSER." as h ON u.emp_code=h.emp_code WHERE u.role=5 AND u.status='1' AND u.is_deleted='0' ORDER BY h.zone,u.emp_code";
  594. $user_arr=$conn->getQueryValue($query_str);
  595. $conn->message(true,$conn->getMessage($lang,'training','success1'), $user_arr);
  596. }else {
  597. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  598. }
  599. }
  600. catch(PDOException $e) {
  601. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  602. }
  603. }
  604. // TRAINING DETAILS
  605. function trainingdetails() {
  606. global $conn;
  607. try {
  608. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  609. if(isset($_SESSION["userid"]))
  610. {
  611. $schedule_id=escape_str($_REQUEST["schedule_id"]);
  612. //CHECK TRAINING
  613. $check_result_str = "SELECT * FROM `".TABLE_TRAINING_SCHEDULE."` WHERE schedule_id='".$schedule_id."' AND is_deleted='0' LIMIT 1";
  614. $check_result_arr=$conn->getQueryValue($check_result_str);
  615. if(!count($check_result_arr)>0)
  616. {
  617. $conn->message(false,$conn->getMessage($lang,'training','error7'));
  618. }
  619. //GET ALL PARTICIPANT
  620. $check_result_arr[0]->participants=array();
  621. $participant_str = "SELECT u.userid,u.`smpin`, CONCAT(u.fname,u.lname) as name FROM `".TABLE_TRAINING_PARTICIPANT."` as p JOIN ".TABLE_USER." as u ON p.userid=u.userid WHERE u.is_deleted='0' AND u.status='1' AND p.schedule_id='".$schedule_id."' GROUP BY p.userid";
  622. $participant_arr=$conn->getQueryValue($participant_str);
  623. if(count($participant_arr)>0)
  624. {
  625. $user_arr=array();
  626. $parr=array();
  627. foreach($participant_arr as $res_p)
  628. {
  629. $user_arr[]=$res_p->userid;
  630. $parr[]=$res_p;
  631. }
  632. $check_result_arr[0]->participant_id=$user_arr;
  633. $check_result_arr[0]->participants=$parr;
  634. $check_result_arr[0]->startdate=date('Y-m-d',strtotime($check_result_arr[0]->start_date));
  635. $check_result_arr[0]->enddate=date('Y-m-d',strtotime($check_result_arr[0]->end_date));
  636. $check_result_arr[0]->starttime=date('H:i',strtotime($check_result_arr[0]->start_date));
  637. $check_result_arr[0]->endtime=date('H:i',strtotime($check_result_arr[0]->end_date));
  638. }
  639. $conn->message(true,$conn->getMessage($lang,'training','success1'), $check_result_arr);
  640. }else {
  641. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  642. }
  643. }
  644. catch(PDOException $e) {
  645. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  646. }
  647. }
  648. // DELETE TRAINING
  649. function deletetraining() {
  650. global $conn;
  651. try {
  652. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  653. if(isset($_SESSION["userid"]))
  654. {
  655. $schedule_id=escape_str($_REQUEST["schedule_id"]);
  656. //CHECK TRAINING
  657. $check_result_str = "SELECT * FROM `".TABLE_TRAINING_SCHEDULE."` WHERE schedule_id='".$schedule_id."' AND is_deleted='0' LIMIT 1";
  658. $check_result_arr=$conn->getQueryValue($check_result_str);
  659. if(!count($check_result_arr)>0)
  660. {
  661. $conn->message(false,$conn->getMessage($lang,'training','error7'));
  662. }
  663. $is_edit='1';
  664. if(strtotime($check_result_arr[0]->start_date)<strtotime(NOW))
  665. {
  666. $is_edit='0';
  667. }else
  668. {
  669. if($check_result_arr[0]->status=='1')
  670. {
  671. if($check_result_arr[0]->assessment_type=='0' && $check_result_arr[0]->status=='1')
  672. {
  673. $assess_str = "SELECT au.* FROM ".TABLE_ASSESSMENT_USER." as au JOIN ".TABLE_TRAINING_ASSESSMENT." as ta ON ta.assessmentid=au.assessmentid AND au.userid=ta.userid WHERE ta.schedule_id='".$check_result_arr[0]->schedule_id."' LIMIT 1 ";
  674. $assess_arr=$conn->getQueryValue($assess_str);
  675. $is_edit=(count($assess_arr)>0)?"0":"1";
  676. }
  677. }else
  678. {
  679. $is_edit='0';
  680. }
  681. }
  682. if($is_edit=='1') $conn->message(false,$conn->getMessage($lang,'training','error8'));
  683. $conn->executeQuery("DELETE FROM ".TABLE_TRAINING_SCHEDULE." WHERE schedule_id='".$schedule_id."'");
  684. $conn->executeQuery("DELETE FROM ".TABLE_TRAINING_PARTICIPANT." WHERE schedule_id='".$schedule_id."'");
  685. $assess_str = "SELECT * FROM `".TABLE_TRAINING_ASSESSMENT."` WHERE schedule_id='".$schedule_id."' LIMIT 1";
  686. $assess_arr=$conn->getQueryValue($assess_str);
  687. if(count($assess_arr)>0)
  688. {
  689. $assessmentid=$assess_arr[0]->assessmentid;
  690. //$conn->executeQuery("DELETE FROM ".TABLE_TRAINING_PARTICIPANT." WHERE schedule_id='".$schedule_id."'");
  691. $conn->executeQuery("DELETE FROM ".TABLE_ASSESSMENT." WHERE assessmentid='".$assessmentid."'");
  692. $conn->executeQuery("DELETE FROM ".TABLE_ASSESSMENT_QUESTION." WHERE assessmentid='".$assessmentid."'");
  693. }
  694. $conn->message(true,$conn->getMessage($lang,'training','success1'), $check_result_arr);
  695. }else {
  696. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  697. }
  698. }
  699. catch(PDOException $e) {
  700. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  701. }
  702. }
  703. function sendScheduleNotification ($schedule_id)
  704. {
  705. global $conn;
  706. $query_str = "SELECT * FROM `".TABLE_TRAINING_PARTICIPANT."` WHERE schedule_id='".$schedule_id."' ";
  707. $part_arr=$conn->getQueryValue($query_str);
  708. if(count($part_arr)>0)
  709. {
  710. $obj=new stdClass();
  711. $notificationdata= json_encode($obj);
  712. $notificationtype='5';
  713. $query_str = "SELECT * FROM `".TABLE_TRAINING_SCHEDULE."` WHERE schedule_id='".$schedule_id."' limit 1 ";
  714. $schedule_arr=$conn->getQueryValue($query_str);
  715. $notificationtext="New Training Scheduled - `".$schedule_arr[0]->schedule_name."` from date : ".date('d M Y',strtotime($schedule_arr[0]->start_date))." - ".date('d M Y',strtotime($schedule_arr[0]->end_date));
  716. $user_arr=array();
  717. if(count($check_user_arr)>0)
  718. {
  719. foreach ($part_arr as $res_user)
  720. {
  721. $user_arr[]=$res_user->userid;
  722. }
  723. //INSERT NOTITFICATION
  724. $conn->executeQuery("INSERT INTO `".TABLE_NOTIFICATION."` ( `notificationtitle`, `notificationtext`, `notificationdata`, `notificationtype`, `status`, `publisheddate`, `created_on`, `modified_on`) VALUES ('".escape_str($schedule_arr[0]->schedule_name)."','".escape_str($notificationtext)."','".$notificationdata."','".$notificationtype."' ,'1','".NOW."','".NOW."','".NOW."')");
  725. $notificationid=$conn->lastinsetid();
  726. $data=array('notification_id'=>$notificationid,'title'=>$assessment_arr[0]->schedule_name,'message'=>$notificationtext,'notificationtype'=>$notificationtype,'notificationdata'=>$notificationdata,'created_date'=>NOW);
  727. if(count($user_arr)>0)
  728. {
  729. $ins_arr=array();
  730. foreach($user_arr as $res)
  731. {
  732. $ins_arr[]=" ('".$notificationid."', '".$res."', '0', '".NOW."')";
  733. }
  734. $insert_chunk=array_chunk($ins_arr, 1000);
  735. foreach($insert_chunk as $chunk_ins)
  736. {
  737. $conn->executeQuery("INSERT INTO ".TABLE_NOTIFICATION_USER."(`notificationid`, `userid`, `status`, `created_on`) VALUES ".@implode(',',$chunk_ins)." ON DUPLICATE KEY UPDATE `status` =0");
  738. }
  739. $usertokenarr['ios']=array();
  740. $usertokenarr['android']=array();
  741. $user_device_str = "SELECT ud.devicetype,ud.token FROM `".TABLE_USER_DEVICES."` as ud JOIN (SELECT userid FROM ".TABLE_NOTIFICATION_USER." WHERE notificationid='".$notificationid."') as u ON ud.userid=u.userid WHERE ud.is_deleted='0' AND (devicetype='ios' OR devicetype='android') AND token!=''";
  742. $user_device_arr = $conn->getQueryValue($user_device_str);
  743. if(count($user_device_arr)>0)
  744. {
  745. foreach($user_device_arr as $res_user)
  746. {
  747. if(strtolower($res_user->devicetype)=='ios')
  748. {
  749. $usertokenarr['ios'][]=$res_user->token;
  750. }else if(strtolower($res_user->devicetype)=='android')
  751. {
  752. $usertokenarr['android'][]=$res_user->token;
  753. }
  754. }
  755. // $conn->sendUserNotification($data,$usertokenarr);
  756. }
  757. }
  758. }
  759. }
  760. }
  761. // BATCH LIST
  762. function batchlist() {
  763. global $conn;
  764. try {
  765. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  766. $userid = escape_str($_REQUEST["userid"]);
  767. $pn = escape_str($_REQUEST["pn"]);
  768. $nr = escape_str($_REQUEST["nr"]);
  769. $limitcond='';
  770. if(isset($_SESSION["userid"]))
  771. {
  772. //PAGINATION
  773. if (!empty($pn) and !empty($nr)) {
  774. // Navigation
  775. $limitcond = " limit ".(($pn - 1) * $nr).", " . $nr;
  776. }
  777. $check_str = "SELECT * FROM ".TABLE_TRAINERBATCH." WHERE trainerid='".$userid."'".$limitcond;
  778. $check_result_arr=$conn->getQueryValue($check_str);
  779. if(count($check_result_arr)>0)
  780. {
  781. $conn->message(true,$conn->getMessage($lang,'training','success1'), $check_result_arr);
  782. }else{
  783. $conn->message(false,$conn->getMessage($lang,'training','error7'));
  784. }
  785. }else {
  786. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  787. }
  788. }
  789. catch(PDOException $e) {
  790. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  791. }
  792. }
  793. // BATCH USER LIST
  794. function batchuserlist() {
  795. global $conn;
  796. try {
  797. $lang = (isset($_REQUEST["lang"]))?$_REQUEST["lang"]:'en_us';
  798. $batchid = escape_str($_REQUEST["batchid"]);
  799. $pn = escape_str($_REQUEST["pn"]);
  800. $nr = escape_str($_REQUEST["nr"]);
  801. $limitcond='';
  802. if(isset($_SESSION["userid"]))
  803. {
  804. //PAGINATION
  805. if (!empty($pn) and !empty($nr)) {
  806. // Navigation
  807. $limitcond = " limit ".(($pn - 1) * $nr).", " . $nr;
  808. }
  809. // $check_str = "SELECT * FROM ".TABLE_TRAINERBATCHUSER." WHERE batchid='".$batchid."'".$limitcond;
  810. $check_str = "SELECT b.smpin,u.fname,u.lname,u.dealer_code,d.dealer_name FROM ".TABLE_TRAINERBATCHUSER." b JOIN ".TABLE_USER." u ON u.smpin=b.smpin JOIN ".DMS_DEALER." d ON d.dealer_code=u.dealer_code WHERE u.role>7 AND u.role<14 AND b.batchid='".$batchid."' GROUP BY b.smpin ORDER BY u.smpin ASC,u.userid ASC $limitcond";
  811. $batch_result_arr=$conn->getQueryValue($check_str);
  812. if(count($batch_result_arr)>0)
  813. {
  814. $conn->message(true,$conn->getMessage($lang,'training','success1'), $batch_result_arr);
  815. }else{
  816. $conn->message(false,$conn->getMessage($lang,'training','error7'));
  817. }
  818. }else {
  819. $conn->message(false,$conn->getMessage($lang,'training','error1'));
  820. }
  821. }
  822. catch(PDOException $e) {
  823. $conn->message(false,$conn->getMessage($lang,'training','error4'));
  824. }
  825. }
  826. ?>