assessment.php 47 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907
  1. <?php
  2. include "Connection.php";
  3. $conn = new Connection();
  4. if (isset($_REQUEST["funName"])) {
  5. $db = $conn->getConnection();
  6. $fun = $_REQUEST["funName"];
  7. switch ($fun) {
  8. case "assessmentlist":
  9. case "addassessment":
  10. case "editassessment":
  11. case "assessmentdetails":
  12. case "deleteassessment":
  13. case "assessmentpushnotification":
  14. case "assessmentpushnotificationbackend":
  15. $fun();
  16. break;
  17. default:
  18. $conn->message(false, "PAGE NOT FOUND");exit;
  19. break;
  20. }
  21. } else {
  22. $conn->message(false, "PAGE NOT FOUND");exit;
  23. }
  24. //Getting ASSESSMENTLIST
  25. function assessmentlist()
  26. {
  27. global $conn;
  28. try {
  29. $lang = (isset($_REQUEST["lang"])) ? $_REQUEST["lang"] : 'en_us';
  30. $pn = escape_str($_REQUEST["pn"]);
  31. $nr = escape_str($_REQUEST["nr"]);
  32. $key = escape_str($_REQUEST["key"]);
  33. $cateid = escape_str($_REQUEST['cateid']);
  34. //$trainingid = escape_str ($_REQUEST["trainingid"]);
  35. if (isset($_SESSION["userid"])) {
  36. $excond = '';
  37. if ($key != '') {
  38. $excond .= " AND a.assessmentname like '%" . $key . "%' ";
  39. }
  40. //PAGINATION
  41. if (!empty($pn) and !empty($nr)) {
  42. // Navigation
  43. $limitcond = " limit " . (($pn - 1) * $nr) . ", " . $nr;
  44. }
  45. $query_str = "SELECT `id`, `rolename` FROM " . TABLE_ROLE . " WHERE status=1 " . $cond;
  46. $role_arr = $conn->getQueryValue($query_str);
  47. if (count($role_arr) > 0) {
  48. foreach ($role_arr as $res) {
  49. $data_role[$res->id] = $res;
  50. }
  51. }
  52. $query_str = "SELECT SQL_CALC_FOUND_ROWS a.`assessmentid`,a.`user_type`, a.`assessmentname`,a.`description`,a.`assessmenttype`,a.`assettypeid`,a. `assessmenttimetype` ,a.`assessmenttime`,a.`randomcond`,a.`created_on`,a.publisheddate,a.enddate,a.assessmentnotification,a.attemptslimit,a.`filter_role`, a.`filter_zone`, a.`filter_region`, a.`filter_dealer`,a.segment FROM " . TABLE_ASSESSMENT . " a WHERE a.assettypeid='1' AND a.atype='0' AND a.status='1' " . $excond . " ORDER BY a.assessmentid DESC " . $limitcond;
  53. $query = $conn->query($query_str);
  54. // Total records
  55. $rows_query = $conn->query("SELECT FOUND_ROWS() as total_records");
  56. $rows_result = $rows_query->fetchAll(PDO::FETCH_OBJ);
  57. $total_records = $rows_result[0]->total_records;
  58. $assessment_arr = $query->fetchAll(PDO::FETCH_OBJ);
  59. if (count($assessment_arr) > 0) {
  60. foreach ($assessment_arr as $akey => $res_assess) {
  61. $assessment_arr[$akey]->publishedtime = date('H:i', strtotime($res_assess->publisheddate));
  62. $assessment_arr[$akey]->endtime = date('H:i', strtotime($res_assess->endtime));
  63. $assessment_arr[$akey]->publisheddate = date('Y-m-d', strtotime($res_assess->publisheddate));
  64. $assessment_arr[$akey]->enddate = date('Y-m-d', strtotime($res_assess->enddate));
  65. //EDITABLE CHECK
  66. $check_result_str = "SELECT id FROM `" . TABLE_ASSESSMENT_USER . "` WHERE assessmentid='" . $assessmentid . "' LIMIT 1";
  67. $check_result_arr = $conn->getQueryValue($check_result_str);
  68. $assessment_arr[$akey]->is_edit = (count($check_result_arr) > 0) ? "0" : "1";
  69. $assessment_arr[$akey]->filter_role = ($res_assess->filter_role != '') ? @explode(',', $res_assess->filter_role) : array();
  70. $assessment_arr[$akey]->filter_role_name = array();
  71. $role_data = array();
  72. if (count($assessment_arr[$akey]->filter_role) > 0) {
  73. foreach ($assessment_arr[$akey]->filter_role as $data) {
  74. $role_data[] = $data_role[$data];
  75. }
  76. $assessment_arr[$akey]->filter_role_name = $role_data;
  77. }
  78. $filter_zone_arr = array();
  79. $assessment_arr[$akey]->filter_zone = ($res_assess->filter_zone != '') ? @explode(',', $res_assess->filter_zone) : array();
  80. if (count($assessment_arr[$akey]->filter_zone) > 0) {
  81. foreach ($assessment_arr[$akey]->filter_zone as $res_zone) {
  82. $filter_zone_arr[] = array('zone' => $res_zone);
  83. }
  84. $assessment_arr[$akey]->filter_zone = $filter_zone_arr;
  85. }
  86. $filter_region_arr = array();
  87. $assessment_arr[$akey]->filter_region = ($res_assess->filter_region != '') ? @explode(',', $res_assess->filter_region) : array();
  88. if (count($assessment_arr[$akey]->filter_region) > 0) {
  89. foreach ($assessment_arr[$akey]->filter_region as $res_region) {
  90. $filter_region_arr[] = array('city' => $res_region);
  91. }
  92. $assessment_arr[$akey]->filter_region = $filter_region_arr;
  93. }
  94. $filter_dealer_arr = array();
  95. $assessment_arr[$akey]->filter_dealer = ($res_assess->filter_dealer != '') ? @explode(',', $res_assess->filter_dealer) : array();
  96. if (count($assessment_arr[$akey]->filter_dealer) > 0) {
  97. $dealer_quotes = array_map("quotes_array", $assessment_arr[$akey]->filter_dealer);
  98. $query_str = "SELECT `dealer_code`, `dealer_name` FROM " . DMS_DEALER . " WHERE status='1' AND is_deleted='0' AND dealer_code IN (" . @implode(',', $dealer_quotes) . ") GROUP BY dealer_code ";
  99. $query = $conn->query($query_str);
  100. $deal_arr = $query->fetchAll(PDO::FETCH_OBJ);
  101. $assessment_arr[$akey]->filter_dealer = $deal_arr;
  102. }
  103. }
  104. }
  105. if (!empty($pn) and !empty($nr)) {
  106. $arr['total_records'] = $total_records;
  107. }
  108. $arr['assessment'] = $assessment_arr;
  109. if (count($arr) != 0) {
  110. $conn->message(true, $conn->getMessage($lang, 'assessment', 'success1'), $arr);
  111. } else {
  112. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error2'));
  113. }
  114. } else {
  115. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error1'));
  116. }
  117. } catch (PDOException $e) {
  118. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error4'));
  119. }
  120. }
  121. //ADDASSESSMENT
  122. function addassessment()
  123. {
  124. global $conn;
  125. try {
  126. //print_r($_REQUEST);
  127. $lang = (isset($_REQUEST["lang"])) ? $_REQUEST["lang"] : 'en_us';
  128. if (isset($_SESSION["userid"])) {
  129. $assessmentname = escape_str($_REQUEST["assessmentname"]);
  130. //$assessmenttype = escape_str($_REQUEST["assessmenttype"]);
  131. $assessmenttype = 1;
  132. $assessmenttimetype = escape_str($_REQUEST["assessmenttimetype"]);
  133. $assessmenttime = ($assessmenttimetype == '1') ? escape_str($_REQUEST["assessmenttime"]) : '0';
  134. $randomcond = escape_str($_REQUEST["randomcond"]);
  135. $assessmentnotification = escape_str($_REQUEST["assessmentnotification"]); //COMMA SEPERATE
  136. if ($assessmentnotification != '') {
  137. $assessmentnotification_arr = @explode(',', $assessmentnotification);
  138. foreach ($assessmentnotification_arr as $days) {
  139. if ($days != '') {
  140. if (!is_numeric($days)) {$conn->message(false, $conn->getMessage($lang, 'assessment', 'error10'));}
  141. }
  142. }
  143. } else {
  144. $assessmentnotification = 1;
  145. }
  146. $segment = (isset($_REQUEST["segment"])) ? escape_str($_REQUEST["segment"]) : 0;
  147. $assessmentpoints = (escape_str($_REQUEST["assessmentpoints"])) ? escape_str($_REQUEST["assessmentpoints"]) : 0;
  148. $total_question = escape_str($_REQUEST["total_question"]);
  149. $atype = escape_str($_REQUEST["atype"]);
  150. $is_notification = (escape_str($_REQUEST["is_notification"]) != '1') ? "1" : "0";
  151. $attemptslimit = escape_str($_REQUEST["attemptslimit"]);
  152. $publisheddate = escape_str($_REQUEST["publisheddate"]);
  153. $enddate = escape_str($_REQUEST["enddate"]);
  154. if (isset($_REQUEST['pass_score'])) {
  155. $pass_score = escape_str($_REQUEST['pass_score']);
  156. } else {
  157. $pass_score = 80;
  158. }
  159. if (!(is_numeric($pass_score) && $pass_score > 0 && $pass_score <= 100)) {
  160. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error11'));
  161. }
  162. //$user_type =(isset($_REQUEST["user_type"]))?escape_str($_REQUEST["user_type"]):0;
  163. $publishedtime = escape_str($_REQUEST["publishedtime"]);
  164. $endtime = escape_str($_REQUEST["endtime"]);
  165. if ($publishedtime != '' && $endtime != '') {
  166. $publisheddate .= " " . $publishedtime;
  167. $enddate .= " " . $endtime;
  168. } else {
  169. $publisheddate .= " 00:00:00";
  170. $enddate .= " 23:59:59";
  171. }
  172. if (strtotime($enddate) < NOW) {
  173. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error9'));
  174. }
  175. $user_type = (isset($_REQUEST["user_type"])) ? escape_str($_REQUEST["user_type"]) : 0;
  176. if ($user_type == '0') {
  177. $filter_role = (is_string($_REQUEST["filter_role"])) ? escape_str($_REQUEST["filter_role"]) : '';
  178. //$filter_role=@implode(',',$_REQUEST["filter_role"]);
  179. $filter_zone = (is_string($_REQUEST["filter_zone"])) ? escape_str($_REQUEST["filter_zone"]) : '';
  180. //$filter_zone=@implode(',',$_REQUEST["filter_zone"]);
  181. $filter_region = (is_string($_REQUEST["filter_region"])) ? escape_str($_REQUEST["filter_region"]) : '';
  182. //$filter_region=@implode(',',$_REQUEST["filter_region"]);
  183. $filter_dealer = (is_string($_REQUEST["filter_dealer"])) ? escape_str($_REQUEST["filter_dealer"]) : '';
  184. //$filter_dealer=@implode(',',$_REQUEST["filter_dealer"]);
  185. } else {
  186. $filter_role = '';
  187. $filter_zone = '';
  188. $filter_region = '';
  189. $filter_dealer = '';
  190. }
  191. //assessmenttime validation
  192. $filter_options = array('options' => array('min_range' => 0));
  193. if (!(filter_var($assessmenttime, FILTER_VALIDATE_INT, $filter_options) !== false)) {$conn->message(false, 'Assessment Time should be integer and above 0');exit;}
  194. $question_arr = json_decode($_REQUEST["question_json"]); //question_json [{ "qid":10,"is_mandatory":1},{ "qid":12,"is_mandatory":1}]
  195. //VALIDATION CHECK
  196. if (!($assessmentname != '' && $assessmenttype != '' && $randomcond != '' && $assessmentnotification != '' && $_REQUEST["question_json"] != '' && $attemptslimit != '' && $publisheddate != '' && $enddate != '' && $attemptslimit != '' && $total_question != '' && count($question_arr) > 0 && $total_question > 0)) {
  197. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error5'));
  198. }
  199. //VALIDATE QUESTION COUNT
  200. if (count($question_arr) < $total_question) {
  201. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error6'));
  202. }
  203. //INSERT ASSESSMENT
  204. $insert_qry = "INSERT INTO " . TABLE_ASSESSMENT . " ( `atype`,`user_type`,segment, `assessmentname`, `description`, `assessmenttype`, `assettypeid`, `assessmenttimetype` , `assessmenttime`,`attemptslimit`, `publisheddate`, `enddate`,`randomcond`, `filter_role`, `filter_zone`, `filter_region`, `filter_dealer`, `assessmentnotification`,`assessmentpoints`,`total_question`, pass_score ,`status`, `creatorid`, `created_on`, `modified_on`) VALUES ( '" . $atype . "','" . $user_type . "','" . $segment . "','" . $assessmentname . "', '" . $description . "','" . $assessmenttype . "', '1','" . $assessmenttimetype . "','" . $assessmenttime . "','" . $attemptslimit . "','" . $publisheddate . "', '" . $enddate . "','" . $randomcond . "','" . $filter_role . "','" . $filter_zone . "','" . $filter_region . "','" . $filter_dealer . "','" . $assessmentnotification . "','" . $assessmentpoints . "','" . $total_question . "','" . $pass_score . "','1','" . $_SESSION["userid"] . "', '" . NOW . "', '" . NOW . "')";
  205. $conn->query($insert_qry);
  206. $assessmentid = $conn->lastinsetid();
  207. //INSERT ASSESSMENT QUESTION
  208. if (count($question_arr) > 0) {
  209. $insert_question_arr = array();
  210. foreach ($question_arr as $res_ques) {
  211. $insert_ques_arr[] = "('" . $assessmentid . "', '" . $res_ques->qid . "', '" . $res_ques->is_mandatory . "','" . $_SESSION["userid"] . "', '" . NOW . "', '" . NOW . "')";
  212. }
  213. $insert_ques_qry = "INSERT INTO `" . TABLE_ASSESSMENT_QUESTION . "`( `assessmentid`, `qid`, `is_mandatory`, `creatorid`, `created_on`, `modified_on`) VALUES " . @implode(',', $insert_ques_arr);
  214. $conn->query($insert_ques_qry);
  215. }
  216. if ($is_notification) {
  217. sendAssessmentNotification($assessmentid);
  218. }
  219. $conn->message(true, $conn->getMessage($lang, 'assessment', 'success1'), getAssessment($assessmentid));
  220. } else {
  221. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error1'));
  222. }
  223. } catch (PDOException $e) {
  224. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error4'));
  225. }
  226. }
  227. //EDITASSESSMENT
  228. function editassessment()
  229. {
  230. global $conn;
  231. try {
  232. //print_r($_REQUEST);
  233. $lang = (isset($_REQUEST["lang"])) ? $_REQUEST["lang"] : 'en_us';
  234. if (isset($_SESSION["userid"])) {
  235. $assessmentid = escape_str($_REQUEST["assessmentid"]);
  236. $assessmentname = escape_str($_REQUEST["assessmentname"]);
  237. $assessmenttype = 1;
  238. $assessmenttimetype = escape_str($_REQUEST["assessmenttimetype"]);
  239. $assessmenttime = ($assessmenttimetype == '1') ? escape_str($_REQUEST["assessmenttime"]) : '0';
  240. $randomcond = escape_str($_REQUEST["randomcond"]);
  241. $segment = (isset($_REQUEST["segment"])) ? escape_str($_REQUEST["segment"]) : 0;
  242. $assessmentnotification = escape_str($_REQUEST["assessmentnotification"]); //COMMA SEPERATE
  243. if ($assessmentnotification != '') {
  244. $assessmentnotification_arr = @explode(',', $assessmentnotification);
  245. foreach ($assessmentnotification_arr as $days) {
  246. if ($days != '') {
  247. if (!is_numeric($days)) {$conn->message(false, $conn->getMessage($lang, 'assessment', 'error10'));}
  248. }
  249. }
  250. } else {
  251. $assessmentnotification = 1;
  252. }
  253. if (isset($_REQUEST['pass_score'])) {
  254. $pass_score = escape_str($_REQUEST['pass_score']);
  255. } else {
  256. $pass_score = 80;
  257. }
  258. if (!(is_numeric($pass_score) && $pass_score > 0 && $pass_score <= 100)) {
  259. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error11'));
  260. }
  261. $assessmentpoints = (escape_str($_REQUEST["assessmentpoints"])) ? escape_str($_REQUEST["assessmentpoints"]) : 0;
  262. $total_question = escape_str($_REQUEST["total_question"]);
  263. $question_arr = json_decode($_REQUEST["question_json"]); //question_json [{ "qid":10,"is_mandatory":1},{ "qid":12,"is_mandatory":1}]
  264. $attemptslimit = escape_str($_REQUEST["attemptslimit"]);
  265. $publisheddate = escape_str($_REQUEST["publisheddate"]);
  266. $enddate = escape_str($_REQUEST["enddate"]);
  267. $publishedtime = escape_str($_REQUEST["publishedtime"]);
  268. $endtime = escape_str($_REQUEST["endtime"]);
  269. if ($publishedtime != '' && $endtime != '') {
  270. $publisheddate .= " " . $publishedtime;
  271. $enddate .= " " . $endtime;
  272. } else {
  273. $publisheddate .= " 00:00:00";
  274. $enddate .= " 23:59:59";
  275. }
  276. //$user_type =(isset($_REQUEST["user_type"]))?escape_str($_REQUEST["user_type"]):0;
  277. $filter_role = (is_string($_REQUEST["filter_role"])) ? escape_str($_REQUEST["filter_role"]) : '';
  278. //$filter_role=@implode(',',$_REQUEST["filter_role"]);
  279. $filter_zone = (is_string($_REQUEST["filter_zone"])) ? escape_str($_REQUEST["filter_zone"]) : '';
  280. //$filter_zone=@implode(',',$_REQUEST["filter_zone"]);
  281. $filter_region = (is_string($_REQUEST["filter_region"])) ? escape_str($_REQUEST["filter_region"]) : '';
  282. //$filter_region=@implode(',',$_REQUEST["filter_region"]);
  283. $filter_dealer = (is_string($_REQUEST["filter_dealer"])) ? escape_str($_REQUEST["filter_dealer"]) : '';
  284. //VALIDATION CHECK
  285. if (!($assessmentid != '' && $assessmentname != '' && $assessmenttype != '' && $randomcond != '' && $assessmentnotification != '' && $attemptslimit != '' && $publisheddate != '' && $enddate != '' && $_REQUEST["question_json"] != '' && count($question_arr) > 0 && $total_question != '' && $total_question > 0)) {
  286. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error5'));
  287. }
  288. //assessmenttime validation
  289. $filter_options = array('options' => array('min_range' => 0));
  290. if (!(filter_var($assessmenttime, FILTER_VALIDATE_INT, $filter_options) !== false)) {echo $conn->message(false, 'Assessment Time should be integer and above 0');exit;}
  291. //VALIDATE QUESTION COUNT
  292. if (count($question_arr) < $total_question) {
  293. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error6'));
  294. }
  295. //CHECK ASSESSMENT USER ALREADY ADDED
  296. $check_result_str = "SELECT id FROM `" . TABLE_ASSESSMENT_USER . "` WHERE assessmentid='" . $assessmentid . "' LIMIT 1";
  297. $check_result_arr = $conn->getQueryValue($check_result_str);
  298. if (count($check_result_arr) > 0) {
  299. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error7'));
  300. }
  301. //UPDATE ASSESSMENT
  302. $update_qry = "UPDATE " . TABLE_ASSESSMENT . " SET segment='" . $segment . "',`assessmentname`='" . $assessmentname . "' , `description`='" . $description . "',assessmenttimetype='" . $assessmenttimetype . "', `assessmenttime`='" . $assessmenttime . "',attemptslimit='" . $attemptslimit . "',`publisheddate`='" . $publisheddate . "', `enddate`='" . $enddate . "', `randomcond`='" . $randomcond . "', `filter_role`='" . $filter_role . "', `filter_zone`='" . $filter_zone . "', `filter_region`='" . $filter_region . "', `filter_dealer`='" . $filter_dealer . "', `assessmentnotification`='" . $assessmentnotification . "',assessmentpoints='" . $assessmentpoints . "',total_question='" . $total_question . "',pass_score='" . $pass_score . "', `modified_on`='" . NOW . "' WHERE assessmentid='" . $assessmentid . "'";
  303. $conn->query($update_qry);
  304. //INSERT ASSESSMENT QUESTION
  305. if (count($question_arr) > 0) {
  306. //DELETE OLD SUPPLIER DATA
  307. $delete_ques_qry = "DELETE FROM " . TABLE_ASSESSMENT_QUESTION . " WHERE assessmentid='" . $assessmentid . "'";
  308. $conn->query($delete_ques_qry);
  309. $insert_question_arr = array();
  310. foreach ($question_arr as $res_ques) {
  311. $insert_ques_arr[] = " ('" . $assessmentid . "','" . $res_ques->qid . "', '" . $res_ques->is_mandatory . "','" . $_SESSION["userid"] . "', '" . NOW . "', '" . NOW . "')";
  312. }
  313. $insert_ques_qry = "INSERT INTO `" . TABLE_ASSESSMENT_QUESTION . "`( `assessmentid`, `qid`, `is_mandatory`, `creatorid`, `created_on`, `modified_on`) VALUES " . @implode(',', $insert_ques_arr);
  314. $conn->query($insert_ques_qry);
  315. }
  316. $conn->message(true, $conn->getMessage($lang, 'assessment', 'success1'), getAssessment($assessmentid));
  317. } else {
  318. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error1'));
  319. }
  320. } catch (PDOException $e) {
  321. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error4'));
  322. }
  323. }
  324. // DELETEASSESSMENT
  325. function deleteassessment()
  326. {
  327. global $conn;
  328. try {
  329. //print_r($_REQUEST);
  330. $lang = (isset($_REQUEST["lang"])) ? $_REQUEST["lang"] : 'en_us';
  331. if (isset($_SESSION["userid"])) {
  332. $assessmentid = escape_str($_REQUEST["assessmentid"]);
  333. //VALIDATION CHECK
  334. if (!($assessmentid != '')) {
  335. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error5'));
  336. }
  337. //CHECK ASSESSMENT USER ALREADY ADDED
  338. $check_result_str = "SELECT id FROM `" . TABLE_ASSESSMENT_USER . "` WHERE assessmentid='" . $assessmentid . "' LIMIT 1";
  339. $check_result_arr = $conn->getQueryValue($check_result_str);
  340. if (count($check_result_arr) > 0) {
  341. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error8'));
  342. }
  343. //DELETE TABLE_ASSESSMENT
  344. $update_qry = "UPDATE " . TABLE_ASSESSMENT . " SET `status`='0' WHERE assessmentid='" . $assessmentid . "'";
  345. $conn->query($update_qry);
  346. $conn->message(true, $conn->getMessage($lang, 'assessment', 'success1'));
  347. } else {
  348. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error1'));
  349. }
  350. } catch (PDOException $e) {
  351. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error4'));
  352. }
  353. }
  354. function sendAssessmentNotification($assessmentid)
  355. {
  356. global $conn;
  357. $assessment_str = "SELECT * FROM `" . TABLE_ASSESSMENT . "` WHERE assessmentid='" . $assessmentid . "' AND assettypeid='1' LIMIT 1";
  358. $assessment_arr = $conn->getQueryValue($assessment_str);
  359. if (count($assessment_arr) > 0) {
  360. $obj = new stdClass();
  361. $obj->id = $assessment_arr[0]->assessmentid;
  362. $obj->assessmentid = $assessment_arr[0]->assessmentid;
  363. $notificationdata = json_encode($obj);
  364. $notificationtype = '2';
  365. $publisheddate = $assessment_arr[0]->publisheddate;
  366. $enddate = $assessment_arr[0]->enddate;
  367. $notificationtext = "New Assessment - `" . $assessment_arr[0]->assessmentname . "` assigned for date : " . date('d M Y', strtotime($publisheddate)) . " - " . date('d M Y', strtotime($enddate));
  368. //ROLE
  369. if ($assessment_arr[0]->filter_role != '') {
  370. $role_arr = @explode(',', $assessment_arr[0]->filter_role);
  371. if (count($role_arr) > 0) {
  372. $user_cond .= " AND role IN (" . $assessment_arr[0]->filter_role . ")";
  373. }
  374. }
  375. //ZONE
  376. if ($assessment_arr[0]->filter_zone != '') {
  377. $zone_arr = @explode(',', $assessment_arr[0]->filter_zone);
  378. if (count($zone_arr) > 0) {
  379. $zone_quotes = array_map("quotes_array", $zone_arr);
  380. $user_cond .= " AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zone IN (" . @implode(',', $zone_quotes) . "))";
  381. }
  382. }
  383. //REGION
  384. if ($assessment_arr[0]->filter_region != '') {
  385. $region_arr = @explode(',', $assessment_arr[0]->filter_region);
  386. if (count($region_arr) > 0) {
  387. $region_quotes = array_map("quotes_array", $region_arr);
  388. $user_cond .= " AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE city IN (" . @implode(',', $region_quotes) . "))";
  389. }
  390. }
  391. //DEALER
  392. if ($assessment_arr[0]->filter_dealer != '') {
  393. $dealer_arr = @explode(',', $assessment_arr[0]->filter_dealer);
  394. if (count($dealer_arr) > 0) {
  395. $dealer_quotes = array_map("quotes_array", $dealer_arr);
  396. $user_cond .= " AND dealer_code IN (" . @implode(',', $dealer_quotes) . ")";
  397. }
  398. }
  399. //0- Normal DSE, 1-Super bike, 2- HO, 3-Zonal Manager, 4- Trainer, 5-Regional Manager, 6-Area Manager, 7-Dealer, 8-Customer Experience
  400. //$user_cond.=($assessment_arr[0]->user_type=='0')?" AND role>7 AND role<14":" AND role=15";
  401. switch ($assessment_arr[0]->user_type) {
  402. case '0':$user_cond .= " AND role>7 AND role<14";
  403. break;
  404. case '1':$user_cond .= " AND role=15";
  405. break;
  406. case '2':$user_cond .= " AND role=3";
  407. break;
  408. case '3':$user_cond .= " AND role=4";
  409. break;
  410. case '4':$user_cond .= " AND role=5";
  411. break;
  412. case '5':$user_cond .= " AND role=6";
  413. break;
  414. case '6':$user_cond .= " AND role=7";
  415. break;
  416. case '7':$user_cond .= " AND role=14";
  417. break;
  418. case '8':$user_cond .= " AND role=16";
  419. break;
  420. default:$user_cond .= " AND role>7 AND role<14";
  421. break;
  422. }
  423. switch ($assessment_arr[0]->segment) {
  424. case '1':$user_cond .= ' AND (segment=0 OR segment=1)';
  425. break;
  426. case '2':$user_cond .= ' AND (segment=0 OR segment=2)';
  427. break;
  428. default: //$user_cond.=' AND segment=0';
  429. break;
  430. }
  431. //CHECK USER EXIST FOR NOTIFICATION
  432. $check_user_str = " SELECT userid FROM " . TABLE_USER . " WHERE status='1' AND is_deleted='0' " . $user_cond;
  433. $check_user_arr = $conn->getQueryValue($check_user_str);
  434. $user_arr = array();
  435. if (count($check_user_arr) > 0) {
  436. foreach ($check_user_arr as $res_user) {
  437. $user_arr[] = $res_user->userid;
  438. }
  439. //INSERT NOTITFICATION
  440. $conn->executeQuery("INSERT INTO `" . TABLE_NOTIFICATION . "` ( `notificationtitle`, `notificationtext`, `notificationdata`, `notificationtype`, `status`, `publisheddate`, `created_on`, `modified_on`) VALUES ('" . escape_str($assessment_arr[0]->assessmentname) . "','" . escape_str($notificationtext) . "','" . $notificationdata . "','" . $notificationtype . "' ,'1','" . NOW . "','" . NOW . "','" . NOW . "')");
  441. $notificationid = $conn->lastinsetid();
  442. $data = array('notification_id' => $notificationid, 'title' => $assessment_arr[0]->assessmentname, 'message' => $notificationtext, 'notificationtype' => $notificationtype, 'notificationdata' => $notificationdata, 'created_date' => NOW);
  443. if (count($user_arr) > 0) {
  444. $ins_arr = array();
  445. foreach ($user_arr as $res) {
  446. $ins_arr[] = " ('" . $notificationid . "', '" . $res . "', '0', '" . NOW . "')";
  447. }
  448. $insert_chunk = array_chunk($ins_arr, 1000);
  449. foreach ($insert_chunk as $chunk_ins) {
  450. $conn->executeQuery("INSERT INTO " . TABLE_NOTIFICATION_USER . "(`notificationid`, `userid`, `status`, `created_on`) VALUES " . @implode(',', $chunk_ins) . " ON DUPLICATE KEY UPDATE `status` =0");
  451. }
  452. $usertokenarr['ios'] = array();
  453. $usertokenarr['android'] = array();
  454. $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!=''";
  455. $user_device_arr = $conn->getQueryValue($user_device_str);
  456. if (count($user_device_arr) > 0) {
  457. foreach ($user_device_arr as $res_user) {
  458. if (strtolower($res_user->devicetype) == 'ios') {
  459. $usertokenarr['ios'][] = $res_user->token;
  460. } else if (strtolower($res_user->devicetype) == 'android') {
  461. $usertokenarr['android'][] = $res_user->token;
  462. }
  463. }
  464. // $conn->sendUserNotification($data, $usertokenarr);
  465. }
  466. }
  467. }
  468. }
  469. }
  470. // GET ASSESSMENT
  471. function getAssessment($assessmentid)
  472. {
  473. global $conn;
  474. $data_arr = array();
  475. if ($assessmentid != '') {
  476. $query_str = "SELECT `id`, `rolename` FROM " . TABLE_ROLE . " WHERE status=1 ";
  477. $role_arr = $conn->getQueryValue($query_str);
  478. if (count($role_arr) > 0) {
  479. foreach ($role_arr as $res) {
  480. $data_role[$res->id] = $res;
  481. }
  482. }
  483. $data_arr = $conn->getQueryValue("SELECT a.`assessmentid`,a.`user_type`, a.`assessmentname`,a.`description`,a.`assessmenttype`,a.`assettypeid`,a. `assessmenttimetype` ,a.`assessmenttime`,a.`randomcond`,a.`created_on`,a.publisheddate,a.enddate, a.`filter_role`, a.`filter_zone`, a.`filter_region`, a.`filter_dealer`,a.segment FROM " . TABLE_ASSESSMENT . " a WHERE a.assettypeid='1' AND a.status='1' AND a.assessmentid='" . $assessmentid . "' LIMIT 1");
  484. if (count($data_arr) > 0) {
  485. $check_result_str = "SELECT id FROM `" . TABLE_ASSESSMENT_USER . "` WHERE assessmentid='" . $assessmentid . "' LIMIT 1";
  486. $check_result_arr = $conn->getQueryValue($check_result_str);
  487. $data_arr[0]->is_edit = (count($check_result_arr) > 0) ? "0" : "1";
  488. $data_arr[0]->publishedtime = date('H:i', strtotime($data_arr[0]->publisheddate));
  489. $data_arr[0]->endtime = date('H:i', strtotime($data_arr[0]->enddate));
  490. $data_arr[0]->publisheddate = date('Y-m-d', strtotime($data_arr[0]->publisheddate));
  491. $data_arr[0]->enddate = date('Y-m-d', strtotime($data_arr[0]->enddate));
  492. $data_arr[0]->filter_role = ($data_arr[0]->filter_role != '') ? @explode(',', $data_arr[0]->filter_role) : array();
  493. $data_arr[0]->filter_role_name = array();
  494. $role_data = array();
  495. if (count($data_arr[0]->filter_role) > 0) {
  496. foreach ($data_arr[0]->filter_role as $data) {
  497. $role_data[] = $data_role[$data];
  498. }
  499. $data_arr[0]->filter_role_name = $role_data;
  500. }
  501. $filter_zone_arr = array();
  502. $data_arr[0]->filter_zone = ($data_arr[0]->filter_zone != '') ? @explode(',', $data_arr[0]->filter_zone) : array();
  503. if (count($data_arr[0]->filter_zone) > 0) {
  504. foreach ($data_arr[0]->filter_zone as $res_zone) {
  505. $filter_zone_arr[] = array('zone' => $res_zone);
  506. }
  507. $data_arr[0]->filter_zone = $filter_zone_arr;
  508. }
  509. $filter_region_arr = array();
  510. $data_arr[0]->filter_region = ($data_arr[0]->filter_region != '') ? @explode(',', $data_arr[0]->filter_region) : array();
  511. if (count($data_arr[0]->filter_region) > 0) {
  512. foreach ($data_arr[0]->filter_region as $res_region) {
  513. $filter_region_arr[] = array('city' => $res_region);
  514. }
  515. $data_arr[0]->filter_region = $filter_region_arr;
  516. }
  517. $filter_dealer_arr = array();
  518. $data_arr[0]->filter_dealer = ($data_arr[0]->filter_dealer != '') ? @explode(',', $data_arr[0]->filter_dealer) : array();
  519. if (count($data_arr[0]->filter_dealer) > 0) {
  520. $dealer_quotes = array_map("quotes_array", $data_arr[0]->filter_dealer);
  521. $query_str = "SELECT `dealer_code`, `dealer_name` FROM " . DMS_DEALER . " WHERE status='1' AND is_deleted='0' AND dealer_code IN (" . @implode(',', $dealer_quotes) . ") GROUP BY dealer_code ";
  522. $query = $conn->query($query_str);
  523. $deal_arr = $query->fetchAll(PDO::FETCH_OBJ);
  524. $data_arr[0]->filter_dealer = $deal_arr;
  525. }
  526. }
  527. $data_arr = (count($data_arr) > 0) ? $data_arr[0] : array();
  528. }
  529. return $data_arr;
  530. }
  531. // GET ASSESSMENTDETAILS
  532. function assessmentdetails()
  533. {
  534. global $conn;
  535. try {
  536. //print_r($_REQUEST);
  537. $lang = (isset($_REQUEST["lang"])) ? $_REQUEST["lang"] : 'en_us';
  538. if (isset($_SESSION["userid"])) {
  539. $assessmentid = escape_str($_REQUEST["assessmentid"]);
  540. //VALIDATION CHECK
  541. if (!($assessmentid != '')) {
  542. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error2'));
  543. }
  544. $query_str = "SELECT `id`, `rolename` FROM " . TABLE_ROLE . " WHERE status=1 ";
  545. $role_arr = $conn->getQueryValue($query_str);
  546. if (count($role_arr) > 0) {
  547. foreach ($role_arr as $res) {
  548. $data_role[$res->id] = $res;
  549. }
  550. }
  551. $check_assessment_str = "SELECT * FROM `" . TABLE_ASSESSMENT . "` WHERE assessmentid='" . $assessmentid . "' AND status='1' AND assettypeid='1' LIMIT 1";
  552. $check_assessment_arr = $conn->getQueryValue($check_assessment_str);
  553. if (!(count($check_assessment_arr) > 0)) {
  554. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error3'));
  555. }
  556. $check_assessment_arr[0]->publishedtime = date('H:i', strtotime($check_assessment_arr[0]->publisheddate));
  557. $check_assessment_arr[0]->endtime = date('H:i', strtotime($check_assessment_arr[0]->enddate));
  558. $check_assessment_arr[0]->publisheddate = date('Y-m-d', strtotime($check_assessment_arr[0]->publisheddate));
  559. $check_assessment_arr[0]->enddate = date('Y-m-d', strtotime($check_assessment_arr[0]->enddate));
  560. $check_assessment_arr[0]->question_arr = array();
  561. $assessment_ques_str = "SELECT aq.`assessmentid`, aq.`qid`, aq.`is_mandatory`,q.`questiontypeid`,q.`questiontext` ,q.tag FROM `" . TABLE_ASSESSMENT_QUESTION . "` aq JOIN " . TABLE_QUESTION . " as q ON aq.qid=q.id WHERE aq.assessmentid='" . $assessmentid . "' ";
  562. $assessment_ques_arr = $conn->getQueryValue($assessment_ques_str);
  563. $check_assessment_arr[0]->question_arr = (count($assessment_ques_arr) > 0) ? $assessment_ques_arr : array();
  564. $check_assessment_arr[0]->questionList = array();
  565. $check_assessment_arr[0]->is_mandatory = array();
  566. if (count($assessment_ques_arr) > 0) {
  567. foreach ($assessment_ques_arr as $res_asses) {
  568. $qid = $res_asses->qid;
  569. $questionList[$qid] = true;
  570. $is_mandatory[$qid] = $res_asses->is_mandatory;
  571. }
  572. $check_assessment_arr[0]->questionList = $questionList;
  573. $check_assessment_arr[0]->is_mandatory = $is_mandatory;
  574. }
  575. $check_assessment_arr[0]->filter_role = ($check_assessment_arr[0]->filter_role != '') ? @explode(',', $check_assessment_arr[0]->filter_role) : array();
  576. $check_assessment_arr[0]->filter_role_name = array();
  577. $role_data = array();
  578. if (count($check_assessment_arr[0]->filter_role) > 0) {
  579. foreach ($check_assessment_arr[0]->filter_role as $data) {
  580. $role_data[] = $data_role[$data];
  581. }
  582. $check_assessment_arr[0]->filter_role_name = $role_data;
  583. }
  584. $filter_zone_arr = array();
  585. $check_assessment_arr[0]->filter_zone = ($check_assessment_arr[0]->filter_zone != '') ? @explode(',', $check_assessment_arr[0]->filter_zone) : array();
  586. if (count($check_assessment_arr[0]->filter_zone) > 0) {
  587. foreach ($check_assessment_arr[0]->filter_zone as $res_zone) {
  588. $filter_zone_arr[] = array('zone' => $res_zone);
  589. }
  590. $check_assessment_arr[0]->filter_zone = $filter_zone_arr;
  591. }
  592. $filter_region_arr = array();
  593. $check_assessment_arr[0]->filter_region = ($check_assessment_arr[0]->filter_region != '') ? @explode(',', $check_assessment_arr[0]->filter_region) : array();
  594. if (count($check_assessment_arr[0]->filter_region) > 0) {
  595. foreach ($check_assessment_arr[0]->filter_region as $res_region) {
  596. $filter_region_arr[] = array('city' => $res_region);
  597. }
  598. $check_assessment_arr[0]->filter_region = $filter_region_arr;
  599. }
  600. $filter_dealer_arr = array();
  601. $check_assessment_arr[0]->filter_dealer = ($check_assessment_arr[0]->filter_dealer != '') ? @explode(',', $check_assessment_arr[0]->filter_dealer) : array();
  602. if (count($check_assessment_arr[0]->filter_dealer) > 0) {
  603. $dealer_quotes = array_map("quotes_array", $check_assessment_arr[0]->filter_dealer);
  604. $query_str = "SELECT `dealer_code`, `dealer_name` FROM " . DMS_DEALER . " WHERE status='1' AND is_deleted='0' AND dealer_code IN (" . @implode(',', $dealer_quotes) . ") GROUP BY dealer_code ";
  605. $query = $conn->query($query_str);
  606. $deal_arr = $query->fetchAll(PDO::FETCH_OBJ);
  607. $check_assessment_arr[0]->filter_dealer = $deal_arr;
  608. }
  609. $arr = $check_assessment_arr[0];
  610. $conn->message(true, $conn->getMessage($lang, 'assessment', 'success1'), $arr);
  611. } else {
  612. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error1'));
  613. }
  614. } catch (PDOException $e) {
  615. $conn->message(false, $conn->getMessage($lang, 'assessment', 'error4'));
  616. }
  617. }
  618. function assessmentpushnotification()
  619. {
  620. global $conn;
  621. $assessmentid = escape_str($_REQUEST["assessmentid"]);
  622. $lang = 'en_us';
  623. sendAssessmentNotification($assessmentid);
  624. $conn->message(true, $conn->getMessage($lang, 'assessment', 'success1'), array());
  625. }
  626. function assessmentpushnotificationbackend()
  627. {
  628. global $conn;
  629. $assessmentid = escape_str($_REQUEST["assessmentid"]);
  630. $lang = 'en_us';
  631. sendAssessmentNotificationnew($assessmentid);
  632. $conn->message(true, $conn->getMessage($lang, 'assessment', 'success1'), array());
  633. }
  634. function sendAssessmentNotificationnew($assessmentid)
  635. {
  636. global $conn;
  637. $assessment_str = "SELECT * FROM `" . TABLE_ASSESSMENT . "` WHERE assessmentid='" . $assessmentid . "' AND assettypeid='1' AND enddate>'" . NOW . "' LIMIT 1";
  638. $assessment_arr = $conn->getQueryValue($assessment_str);
  639. if (count($assessment_arr) > 0) {
  640. $obj = new stdClass();
  641. $obj->id = $assessment_arr[0]->assessmentid;
  642. $obj->assessmentid = $assessment_arr[0]->assessmentid;
  643. $notificationdata = json_encode($obj);
  644. $notificationtype = '2';
  645. $notificationtitle = $assessment_arr[0]->assessmentname;
  646. if ($assessment_arr[0]->user_type == '0') {
  647. if (strtotime($assessment_arr[0]->publisheddate) > strtotime(NOW)) {
  648. $notificationtext = ($assessment_arr[0]->assessmentpoints > 0) ? "Dear Employee," . PHP_EOL . " EXCELLENT OPORTUNITY to earn " . $assessment_arr[0]->assessmentpoints . " reward points by clearing the " . $notificationtitle . " with " . $assessment_arr[0]->pass_score . "% and above score " . PHP_EOL . " Quiz will be live from " . date('dS M', strtotime($assessment_arr[0]->publisheddate)) . " to " . date('dS M', strtotime($assessment_arr[0]->enddate)) : "Dear Employee," . PHP_EOL . " Quiz - " . $notificationtitle . " will be live from " . date('dS M', strtotime($assessment_arr[0]->publisheddate)) . " to " . date('dS M', strtotime($assessment_arr[0]->enddate));
  649. } else {
  650. $notificationtext = ($assessment_arr[0]->assessmentpoints > 0) ? "Dear Employee," . PHP_EOL . " Hurry up...!!! Clear the Quiz with " . $assessment_arr[0]->pass_score . "% & above marks to win " . $assessment_arr[0]->assessmentpoints . " Reward points, Quiz is live till " . date('dS F', strtotime($assessment_arr[0]->enddate)) : "Dear Employee," . PHP_EOL . " Hurry up...!!! Quiz - " . $notificationtitle . " is live till " . date('dS F', strtotime($assessment_arr[0]->enddate));
  651. }
  652. if ($assessment_arr[0]->assessmentid == 28 || $assessment_arr[0]->assessmentid == 29) {
  653. $notificationtext = "Dear Employee," . PHP_EOL . " Premier league - SSPL is now live. Great Opportunity to win 250 Reward Points by clearing the Quiz with 80% & above score. Hurry up...!!! Quiz is live till 14th Mar.";
  654. }
  655. } else {
  656. if (strtotime($assessment_arr[0]->publisheddate) > strtotime(NOW)) {
  657. $notificationtext = "Dear Sales Team," . PHP_EOL . " " . $notificationtitle . " will be live on HYPER-M App between " . date('dS M h:i A', strtotime($assessment_arr[0]->publisheddate)) . " to " . date('dS M h:i A', strtotime($assessment_arr[0]->enddate)) . " Attempt and score highest to be on the top of the leaderboard.";
  658. } else {
  659. $notificationtext = "Dear Sales team," . PHP_EOL . "Hurry up...!!! Quiz is live now, appear before quiz window closes.";
  660. }
  661. }
  662. if ($assessment_arr[0]->user_type == '0' || $assessment_arr[0]->user_type == '1') {
  663. //ROLE
  664. if ($assessment_arr[0]->filter_role != '') {
  665. $role_arr = @explode(',', $assessment_arr[0]->filter_role);
  666. if (count($role_arr) > 0) {
  667. $user_cond .= " AND role IN (" . $assessment_arr[0]->filter_role . ")";
  668. }
  669. }
  670. //ZONE
  671. if ($assessment_arr[0]->filter_zone != '') {
  672. $zone_arr = @explode(',', $assessment_arr[0]->filter_zone);
  673. if (count($zone_arr) > 0) {
  674. $zone_quotes = array_map("quotes_array", $zone_arr);
  675. $user_cond .= " AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zone IN (" . @implode(',', $zone_quotes) . "))";
  676. }
  677. }
  678. //REGION
  679. if ($assessment_arr[0]->filter_region != '') {
  680. $region_arr = @explode(',', $assessment_arr[0]->filter_region);
  681. if (count($region_arr) > 0) {
  682. $region_quotes = array_map("quotes_array", $region_arr);
  683. $user_cond .= " AND dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE city IN (" . @implode(',', $region_quotes) . "))";
  684. }
  685. }
  686. //DEALER
  687. if ($assessment_arr[0]->filter_dealer != '') {
  688. $dealer_arr = @explode(',', $assessment_arr[0]->filter_dealer);
  689. if (count($dealer_arr) > 0) {
  690. $dealer_quotes = array_map("quotes_array", $dealer_arr);
  691. $user_cond .= " AND dealer_code IN (" . @implode(',', $dealer_quotes) . ")";
  692. }
  693. }
  694. $user_cond .= ($assessment_arr[0]->user_type == '0') ? " AND role>7 AND role<14" : " AND role=15";
  695. switch ($assessment_arr[0]->segment) {
  696. case '1':$user_cond .= ' AND segment=1';
  697. break;
  698. case '2':$user_cond .= ' AND segment=2';
  699. break;
  700. default: //$user_cond.=' AND segment=0';
  701. break;
  702. }
  703. } else {
  704. switch ($assessment_arr[0]->user_type) {
  705. //HO Manager
  706. case '2':
  707. $user_cond .= " AND role=3";
  708. break;
  709. //Zonal Manager
  710. case '3':
  711. $user_cond .= " AND role=4 ";
  712. break;
  713. //Trainer
  714. case '4':
  715. $user_cond .= " AND role=5 ";
  716. break;
  717. //Regional Manager
  718. case '5':
  719. $user_cond .= " AND role=6 ";
  720. break;
  721. //Area Manager
  722. case '6':
  723. $user_cond .= " AND role=7 ";
  724. break;
  725. //Dealer
  726. case '7':
  727. $user_cond .= " AND role=14 ";
  728. break;
  729. //Customer Experience
  730. case '8':
  731. $user_cond .= " AND role=16 ";
  732. break;
  733. }
  734. }
  735. //CHECK USER EXIST FOR NOTIFICATION
  736. // $check_user_str = " SELECT userid FROM " . TABLE_USER . " WHERE status='1' AND is_deleted='0' AND userid NOT IN (SELECT userid FROM `tbl__assessmentuser` WHERE assessmentid='" . $assessmentid . "' AND highscorearid>0) " . $user_cond;
  737. // $check_user_arr = $conn->getQueryValue($check_user_str);
  738. // $user_arr = array();
  739. // if (count($check_user_arr) > 0) {
  740. // foreach ($check_user_arr as $res_user) {
  741. // $user_arr[] = $res_user->userid;
  742. // }
  743. // //INSERT NOTITFICATION
  744. // $conn->executeQuery("INSERT INTO `" . TABLE_NOTIFICATION . "` ( `notificationtitle`, `notificationtext`, `notificationdata`, `notificationtype`, `status`, `publisheddate`, `created_on`, `modified_on`) VALUES ('" . $notificationtitle . "','" . escape_str($notificationtext) . "','" . $notificationdata . "','" . $notificationtype . "' ,'1','" . NOW . "','" . NOW . "','" . NOW . "')");
  745. // $notificationid = $conn->lastinsetid();
  746. // $data = array('notification_id' => $notificationid, 'title' => $assessment_arr[0]->assessmentname, 'message' => $notificationtext, 'notificationtype' => $notificationtype, 'notificationdata' => $notificationdata, 'created_date' => NOW);
  747. // if (count($user_arr) > 0) {
  748. // $ins_arr = array();
  749. // foreach ($user_arr as $res) {
  750. // $ins_arr[] = " ('" . $notificationid . "', '" . $res . "', '0', '" . NOW . "')";
  751. // }
  752. // $insert_chunk = array_chunk($ins_arr, 1000);
  753. // foreach ($insert_chunk as $chunk_ins) {
  754. // $conn->executeQuery("INSERT INTO " . TABLE_NOTIFICATION_USER . "(`notificationid`, `userid`, `status`, `created_on`) VALUES " . @implode(',', $chunk_ins) . " ON DUPLICATE KEY UPDATE `status` =0");
  755. // }
  756. // $usertokenarr['ios'] = array();
  757. // $usertokenarr['android'] = array();
  758. // $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!=''";
  759. // $user_device_arr = $conn->getQueryValue($user_device_str);
  760. // if (count($user_device_arr) > 0) {
  761. // foreach ($user_device_arr as $res_user) {
  762. // if (strtolower($res_user->devicetype) == 'ios') {
  763. // $usertokenarr['ios'][] = $res_user->token;
  764. // } else if (strtolower($res_user->devicetype) == 'android') {
  765. // $usertokenarr['android'][] = $res_user->token;
  766. // }
  767. // }
  768. // $conn->sendUserNotification($data, $usertokenarr);
  769. // }
  770. // }
  771. // }
  772. } else {
  773. $conn->message(false, "ASSESSMENT NOT FOUND", array());
  774. }
  775. }