projectfunctions.php 129 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199
  1. <?php
  2. /****************************
  3. * File : projectfunctions.php
  4. * Author : Cygnusa
  5. * @2018
  6. *
  7. * Project functions
  8. *
  9. ***************************/
  10. class projectfunc
  11. {
  12. /* /////////////////////////////////// DEVELOPER ERROR /////////////////////////////////// */
  13. public static function callErrorMsg($parent, $data)
  14. {
  15. if (!isset($data)) {
  16. $parent->response(array('response' => 'failed', 'message' => 'PHP UNDEFINED ERROR'), 500);
  17. }
  18. if (!isset($data['message']) || $data['message'] == '' || $data['message'] == null) {
  19. $parent->response(array('response' => 'failed', 'message' => 'PHP UNDEFINED ERROR'), 500);
  20. }
  21. $parent->response(array('response' => 'failed', 'message' => $data['message']), 500);
  22. }
  23. /* ///////////////////////////////////////////////////////////////////////////////////// */
  24. /* /////////////////////////////////// SUPPLIER STATUS /////////////////////////////////// */
  25. public static function checkUserPasswordExpiry($parent, $userid = 0)
  26. {
  27. // if(isset($parent->current_user_id)&& isset($parent->current_user_data->last_password_change))
  28. // {
  29. // //DATA FROM current_user_data
  30. // $is_password_expiry='0';
  31. // if($parent->current_user_data->last_password_change!='0000-00-00 00:00:00')
  32. // {
  33. //
  34. // $password_exipry_date=globalfunc::generateExpiryDate($parent,PASSWORD_EXPIRY_DAY);
  35. // //$password_exipry_date."<".$parent->current_user_data->last_password_change." |";
  36. // $is_password_expiry=(strtotime( $password_exipry_date)> strtotime($parent->current_user_data->last_password_change))?"1":"0";
  37. // $parent->current_user_data->is_password_expiry= $is_password_expiry;
  38. // }
  39. // }else if(isset($parent->current_user_id))
  40. // {
  41. // //DATA FROM current_user_data not available
  42. // $is_password_expiry='0';
  43. // $parent->current_user_data->is_password_expiry=$is_password_expiry;
  44. // $user_qry_str="SELECT * FROM ".TABLE_USER." WHERE is_deleted='0' AND status='1' AND userid='".$parent->current_user_id."' LIMIT 1";
  45. // $user_arr=$parent->getQueryValue($user_qry_str);
  46. //
  47. // if(count($user_arr)>0)
  48. // {
  49. // if($user_arr[0]->last_password_change!='0000-00-00 00:00:00')
  50. // {
  51. // $password_exipry_date=globalfunc::generateExpiryDate($parent,PASSWORD_EXPIRY_DAY);
  52. // $is_password_expiry=(strtotime($password_exipry_date)> strtotime($user_arr[0]->last_password_change))?"1":"0";
  53. // $parent->current_user_data->is_password_expiry= $is_password_expiry;
  54. // }
  55. // }
  56. //
  57. // }else if($userid!='0')
  58. // {
  59. // $is_password_expiry='0';
  60. // //DATA FROM userid
  61. // $user_qry_str="SELECT * FROM ".TABLE_USER." WHERE is_deleted='0' AND status='1' AND userid='".$userid."' LIMIT 1";
  62. // $user_arr=$parent->getQueryValue($user_qry_str);
  63. //
  64. // if(count($user_arr)>0)
  65. // {
  66. // if($user_arr[0]->last_password_change!='0000-00-00 00:00:00')
  67. // {
  68. // $password_exipry_date=globalfunc::generateExpiryDate($parent,PASSWORD_EXPIRY_DAY);
  69. // $is_password_expiry=(strtotime($password_exipry_date)> strtotime($user_arr[0]->last_password_change))?"1":"0";
  70. // $parent->current_user_data->is_password_expiry= $is_password_expiry;
  71. // }
  72. // }
  73. // }
  74. return '0';
  75. //return $is_password_expiry;
  76. }
  77. /* ///////////////////////////////////////////////////////////////////////////////////// */
  78. /* /////////////////////////////////// CONTENT STATUS /////////////////////////////////// */
  79. public static function getContentStatus($parent, $contentid, $userid = 0)
  80. {
  81. if ($userid == 0 && $parent->current_user_id) {
  82. $userid = $parent->current_user_id;
  83. }
  84. $status = '0'; //0-Not Started, 1-In progress, 2-Completed
  85. if (!isset($contentid)) {
  86. self::callErrorMsg($parent, array('message' => 'projectfunctions(getContentStatus):REQUIRED contentid'));
  87. }
  88. //GET COUNT OF USER TRAINING TOPIC CONTENT STATUS
  89. $get_user_content_str = "SELECT * FROM " . TABLE_USER_COMPLETE_CONTENT . " WHERE contentid='" . $contentid . "' AND userid='" . $userid . "' AND status>0 LIMIT 1";
  90. $get_user_content_arr = $parent->getQueryValue($get_user_content_str);
  91. if (count($get_user_content_arr) > 0) {
  92. $status = (string) $get_user_content_arr[0]->status;
  93. }
  94. switch ($status) {
  95. case '0':$status_str = 'Not Started';
  96. break;
  97. case '1':$status_str = 'In progress';
  98. break;
  99. case '2':$status_str = 'Completed';
  100. break;
  101. default:$status_str = 'undefined';
  102. break;
  103. }
  104. return array('status' => $status, 'status_str' => $status_str);
  105. }
  106. /* ///////////////////////////////////////////////////////////////////////////////////// */
  107. /* /////////////////////////////////// PDF CROS ISSUE FIX /////////////////////////////////// */
  108. public static function pdfUrlStr($parent, $s3_url_str)
  109. {
  110. $s3_url_arr = @explode('?', $s3_url_str);
  111. $s3_split_url_str = @explode('amazonaws.com/', $s3_url_arr[0]);
  112. $encode_file_url = @base64_encode($s3_split_url_str[1]);
  113. return SITE_URL . "_api/" . $parent->device_type . "/" . $parent->lang . "/pdfviewer/" . $encode_file_url;
  114. }
  115. /* ///////////////////////////////////////////////////////////////////////////////////// */
  116. /* /////////////////////////////////// USER LEARNING LEVEL /////////////////////////////////// */
  117. public static function userLearningLevel($parent, $userid = 0)
  118. {
  119. //0-Not Started Grey, 1-Current Orange ,2 failed red,3 Completed Green
  120. //$lvl_arr=array('basic'=>'10','bronze'=>'3','silver'=>'1','gold'=>'1');
  121. if ($userid == 0 && $parent->current_user_id) {
  122. $userid = $parent->current_user_id;
  123. }
  124. $user_learnpath_str = "SELECT COALESCE(a.status,0) as basic,COALESCE(b.status,0) as bronze,COALESCE(c.status,0) as silver,COALESCE(d.status,0) as gold FROM
  125. (SELECT COUNT(l.lvl_id) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l RIGHT JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.userid='" . $userid . "' AND l.lvl_id=1) as a,
  126. (SELECT COUNT(l.lvl_id) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l RIGHT JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.userid='" . $userid . "' AND l.lvl_id=2) as b,
  127. (SELECT COUNT(l.lvl_id) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l RIGHT JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.userid='" . $userid . "' AND l.lvl_id=4) as c,
  128. (SELECT COUNT(l.lvl_id) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l RIGHT JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.userid='" . $userid . "' AND l.lvl_id=6) as d";
  129. $user_learnpath_arr = $parent->getQueryValue($user_learnpath_str);
  130. if (count($user_learnpath_str) > 0) {
  131. $new_learnpath_str = "SELECT COALESCE(c.status,0) as silver,COALESCE(d.status,0) as gold FROM
  132. (SELECT COUNT(l.lvl_id) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l RIGHT JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.userid='" . $userid . "' AND l.lvl_id=3) as c,
  133. (SELECT COUNT(l.lvl_id) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l RIGHT JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.userid='" . $userid . "' AND l.lvl_id=5) as d";
  134. $new_learnpath_arr = $parent->getQueryValue($new_learnpath_str);
  135. if ($user_learnpath_arr[0]->silver == 0 || $user_learnpath_arr[0]->gold == 0) {
  136. //SILVER 1 COND
  137. if (count($new_learnpath_arr) > 0 && $new_learnpath_arr[0]->silver > 0) {
  138. switch ($new_learnpath_arr[0]->silver) {
  139. case '2':$user_learnpath_arr[0]->silver = 6;
  140. break;
  141. case '3':$user_learnpath_arr[0]->silver = 7;
  142. break;
  143. }
  144. }
  145. //GOLD 1 COND
  146. if (count($new_learnpath_arr) > 0 && $new_learnpath_arr[0]->gold > 0) {
  147. switch ($new_learnpath_arr[0]->gold) {
  148. case '2':$user_learnpath_arr[0]->gold = 6;
  149. break;
  150. case '3':$user_learnpath_arr[0]->gold = 7;
  151. break;
  152. }
  153. }
  154. }
  155. }
  156. return (array) $user_learnpath_arr[0];
  157. }
  158. /* ///////////////////////////////////////////////////////////////////////////////////// */
  159. /* /////////////////////////////////// USER LEVEL ID /////////////////////////////////// */
  160. public static function getUserLvlId($parent, $userid = 0)
  161. {
  162. /*
  163. 1 Basic
  164. 2 Bronze
  165. 3 Silver
  166. 4 Gold
  167. */
  168. $lvl_id = '0';
  169. //GET USER ID
  170. if ($userid == 0 && $parent->current_user_id) {
  171. $userid = $parent->current_user_id;
  172. }
  173. $user_learn_str = "SELECT l.* FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.userid='" . $userid . "' AND l.current_status='1' ORDER BY lvl_id DESC LIMIT 1";
  174. $user_learn_arr = $parent->getQueryValue($user_learn_str);
  175. if (count($user_learn_arr) > 0) {
  176. $lvl_id = (count($user_learn_arr) > 0) ? $user_learn_arr[0]->lvl_id : 0;
  177. }
  178. return $lvl_id;
  179. }
  180. /* ///////////////////////////////////////////////////////////////////////////////////// */
  181. /* /////////////////////////////////// USER LEVEL ID /////////////////////////////////// */
  182. public static function getUserAssessmentCond($parent, $userid = 0)
  183. {
  184. $user_cond = array();
  185. if ($userid == 0 && $parent->current_user_id) {
  186. $assess_userid = $parent->current_user_id;
  187. } else {
  188. $assess_userid = $userid;
  189. }
  190. $userdata = self::getuserdata($parent, $assess_userid);
  191. //$user_cond[]=" ((atype=0) OR ( atype='1' AND assessmentid IN (SELECT assessmentid FROM ".TABLE_TRAINING_ASSESSMENT." WHERE userid='".$assess_userid."' ))) AND (enddate>='".$userdata->created_on."' OR enddate='0000-00-00 00:00:00')"; //atype 0 Normal,1 Level Based
  192. $user_cond[] = " ((atype=0) OR ( atype='1' AND (assessmentid IN (SELECT assessmentid FROM " . TABLE_TRAINING_ASSESSMENT . " WHERE userid='" . $assess_userid . "' ) OR assessmentid IN (SELECT assessmentid FROM " . TABLE_TRAINING_SURVEY . " WHERE userid='" . $assess_userid . "' ) ) )) AND (enddate>='" . $userdata->created_on . "' OR enddate='0000-00-00 00:00:00')"; //atype 0 Normal,1 Level Based
  193. if ($userdata->role > 7 && $userdata->role != 14 && $userdata->role != 16) {
  194. if ($userdata->zone) {
  195. $user_cond[] = " (FIND_IN_SET('" . $userdata->zone . "',filter_zone) OR filter_zone='')";
  196. }
  197. if ($userdata->city) {
  198. $user_cond[] = " (FIND_IN_SET('" . $userdata->city . "',filter_region) OR filter_region='')";
  199. }
  200. if ($userdata->dealer_code) {
  201. $user_cond[] = " (FIND_IN_SET('" . $userdata->dealer_code . "',filter_dealer) OR filter_dealer='')";
  202. }
  203. }
  204. // if($userid )
  205. // {
  206. //// if($userdata->role)
  207. //// {
  208. //// $user_cond[]=" (FIND_IN_SET('".$userdata->role."',filter_role) OR filter_role='')";
  209. //// }
  210. // if($userdata->zone)
  211. // {
  212. // $user_cond[]=" (FIND_IN_SET('".$userdata->zone."',filter_zone) OR filter_zone='')";
  213. // }
  214. // if($userdata->city)
  215. // {
  216. // $user_cond[]=" (FIND_IN_SET('".$userdata->city."',filter_region) OR filter_region='')";
  217. // }
  218. // if($userdata->dealer_code)
  219. // {
  220. // $user_cond[]=" (FIND_IN_SET('".$userdata->dealer_code."',filter_dealer) OR filter_dealer='')";
  221. // }
  222. //
  223. // }else
  224. // if($userid==0 && $parent->current_user_id)
  225. // {
  226. // //$userdata=self::getuserdata($parent,$parent->current_user_id);
  227. //// if($userdata->role)
  228. //// {
  229. //// $user_cond[]=" (filter_role LIKE '%".$userdata->role."%' OR filter_role='')";
  230. //// }
  231. // if($userdata->zone)
  232. // {
  233. // $user_cond[]=" (filter_zone LIKE '%".$userdata->zone."%' OR filter_zone='')";
  234. // }
  235. // if($userdata->city)
  236. // {
  237. // $user_cond[]=" (filter_region LIKE '%".$userdata->city."%' OR filter_region='')";
  238. // }
  239. // if($userdata->dealer_code)
  240. // {
  241. // $user_cond[]=" (filter_dealer LIKE '%".$userdata->dealer_code."%' OR filter_dealer='')";
  242. // }
  243. // }
  244. //print_r($user_cond);
  245. return $user_cond;
  246. //return '';
  247. }
  248. /* ///////////////////////////////////////////////////////////////////////////////////// */
  249. /* /////////////////////////////////// CONTENT STATUS /////////////////////////////////// */
  250. public static function getUserfiltervalue($parent, $filterdata, $userid = 0)
  251. {
  252. // role,zone,city,dealer_code
  253. $field_arr = array('role', 'zone', 'city', 'dealer_code');
  254. $filter_str = '';
  255. if ($userid == 0 && $parent->current_user_id) {
  256. $userid = $parent->current_user_id;
  257. }
  258. if ($userid && is_array($filterdata)) {
  259. $query_user = $parent->getQueryValue("SELECT * FROM " . TABLE_USER . " WHERE userid='" . $userid . "' LIMIT 1");
  260. if (count($query_user) > 0) {
  261. $emp_user = $parent->getQueryValue("SELECT * FROM " . DMS_DEALER . " WHERE dealer_code='" . $query_user[0]->dealer_code . "' LIMIT 1");
  262. foreach ($field_arr as $res_field) {
  263. if (in_array($res_field, $filterdata)) {
  264. switch ($res_field) {
  265. case 'role':$filter_str .= " AND (filter_role='' OR FIND_IN_SET('" . $query_user[0]->role . "',filter_role))";
  266. break;
  267. case 'zone':$filter_str .= " AND (filter_zone='' OR FIND_IN_SET('" . $emp_user[0]->zone . "',filter_zone))";
  268. break;
  269. case 'city':$filter_str .= " AND (filter_region='' OR FIND_IN_SET('" . $emp_user[0]->city . "',filter_region))";
  270. break;
  271. case 'dealer_code':$filter_str .= " AND(filter_dealer='' OR FIND_IN_SET('" . $query_user[0]->dealer_code . "',filter_dealer))";
  272. break;
  273. }
  274. }
  275. }
  276. }
  277. }
  278. return $filter_str;
  279. }
  280. /* ///////////////////////////////////////////////////////////////////////////////////// */
  281. /* /////////////////////////////////// USER ROLE ID /////////////////////////////////// */
  282. public static function getUserRoleId($parent, $rolename)
  283. {
  284. $role_id = '0';
  285. if ($rolename != '') {
  286. $query_role = $parent->getQueryValue("SELECT id FROM " . TABLE_ROLE . " WHERE rolename='" . trim($rolename) . "' LIMIT 1");
  287. if (count($query_role) > 0) {$role_id = $query_role[0]->id;} else {self::callErrorMsg($parent, array('message' => 'Invalid Role please contact support team.'));}
  288. }
  289. return $role_id;
  290. }
  291. /* ///////////////////////////////////////////////////////////////////////////////////// */
  292. /* /////////////////////////////// USER DATA //////////////////////////////////////////////// */
  293. public static function getuserdata($parent, $userid)
  294. {
  295. if (!isset($userid)) {
  296. self::callErrorMsg($parent, array('message' => 'projectfunctions(getuserdata):REQUIRED userid'));
  297. }
  298. $query_getuserarr = $parent->selectQuery(TABLE_USER, " `userid`, `smpin`, `emp_code`, `fname`, `lname`, `emailid`, `mobileno`, `role`, `dealer_code`, `address_1`, `address_2`, `address_3`, `valid_token`, `validate_time`, `profile_photo`, `dob`, `doj`,segment, `country`, `language`, `is_married`, `marriage_date`,`mpin`,epin , `last_password_change`, `status`, `is_first_login`, `is_profile_updated`, `created_on`, `modified_on` ", "userid='" . $userid . "' AND is_deleted='0' ", "1");
  299. if ($query_getuserarr['nr'] <= 0) {
  300. $parent->response(array('response' => 'failed', 'message' => "User not found"), 406);
  301. }
  302. $query_getuserarr['result'][0]->username = ($query_getuserarr['result'][0]->role < 8 || $query_getuserarr['result'][0]->role == '14' || $query_getuserarr['result'][0]->role == '16') ? $query_getuserarr['result'][0]->emp_code : $query_getuserarr['result'][0]->smpin;
  303. $query_getuserarr['result'][0]->dob_time = ($query_getuserarr['result'][0]->dob == '0000-00-00') ? "0000-00-00 00:00:00" : $query_getuserarr['result'][0]->dob . " 00:00:00";
  304. $query_getuserarr['result'][0]->doj_time = ($query_getuserarr['result'][0]->doj == '0000-00-00') ? "0000-00-00 00:00:00" : $query_getuserarr['result'][0]->doj . " 00:00:00";
  305. $query_getuserarr['result'][0]->marriage_date_time = ($query_getuserarr['result'][0]->marriage_date == '0000-00-00') ? "0000-00-00 00:00:00" : $query_getuserarr['result'][0]->marriage_date . " 00:00:00";
  306. if ($query_getuserarr['result'][0]->profile_photo != '') {
  307. //CONNECT S3
  308. $s3 = awsfileserver::connectS3();
  309. $query_getuserarr['result'][0]->profile_photo = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_PROFILE_IMAGE_URL . $query_getuserarr['result'][0]->profile_photo);
  310. } else {
  311. $query_getuserarr['result'][0]->profile_photo = USER_NOIMAGE_URL;
  312. }
  313. //GET ROLE
  314. $query_rolearr = $parent->selectQuery(TABLE_ROLE, "*", "id='" . $query_getuserarr['result'][0]->role . "' ", "1");
  315. $query_getuserarr['result'][0]->rolename = ($query_rolearr['nr'] > 0) ? $query_rolearr['result'][0]->rolename : '';
  316. //GET DELAER
  317. $query_getuserarr['result'][0]->dealer = new stdClass();
  318. $query_getdealerarr = $parent->selectQuery(DMS_DEALER, "`dealer_code`, `dealer_name`, `city`, `state`, `zone`, `country`,address,email, `phone`, `zm_name`, `rm_name`, `am_name`, `zm_email`, `rm_email`, `am_email`, `zm_mobile`, `rm_mobile`, `am_mobile`,is_enquirymodule", "dealer_code='" . $query_getuserarr['result'][0]->dealer_code . "' ", "1");
  319. $query_getuserarr['result'][0]->dealer = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0] : new stdClass();
  320. $query_getuserarr['result'][0]->is_enquirymodule = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0]->is_enquirymodule : 0;
  321. $query_getuserarr['result'][0]->country = 'India';
  322. if ($query_getuserarr['result'][0]->role == '5') {
  323. $query_dataarr = $parent->selectQuery(DMS_HOUSER, "*", "emp_code='" . $query_getuserarr['result'][0]->emp_code . "' ", "1");
  324. $query_getuserarr['result'][0]->zone = ($query_dataarr['nr'] > 0) ? $query_dataarr['result'][0]->zone : '';
  325. } else {
  326. $query_getuserarr['result'][0]->zone = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0]->zone : '';
  327. }
  328. $query_getuserarr['result'][0]->state = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0]->state : '';
  329. $query_getuserarr['result'][0]->city = ($query_getdealerarr['nr'] > 0) ? $query_getdealerarr['result'][0]->city : '';
  330. $query_getuserarr['result'][0]->is_password_expired = self::checkUserPasswordExpiry($parent, $userid);
  331. if ($query_getuserarr['result'][0]->role > '7' && $query_getuserarr['result'][0]->role != '14' && $query_getuserarr['result'][0]->role != '16') {
  332. $query_getuserarr['result'][0]->is_redeem_point = (self::checkValidReedem($parent, $userid)) ? "1" : "0";
  333. $query_getuserarr['result'][0]->wallet_amount = self::userWalletamount($parent, $query_getuserarr['result'][0]->smpin);
  334. } else {
  335. $query_getuserarr['result'][0]->is_redeem_point = '0';
  336. $query_getuserarr['result'][0]->wallet_amount = '0';
  337. }
  338. return $query_getuserarr['result'][0];
  339. }
  340. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  341. /* /////////////////////////////////// USER SEGEMENT /////////////////////////////////// */
  342. public static function userSegment($parent, $smpin)
  343. {
  344. $segment = '0';
  345. if ($smpin) {
  346. $query_arr = $parent->getQueryValue("SELECT segment FROM " . DMS_EMPLOYEE . " WHERE smpin='" . $smpin . "' LIMIT 1");
  347. if (!count($query_arr) > 0) {
  348. $parent->response(array('response' => 'failed', 'message' => 'SMPIN NOT FOUND'), 406);
  349. }
  350. $segment = $query_arr[0]->segment;
  351. } else {
  352. $parent->response(array('response' => 'failed', 'message' => 'SMPIN NOT FOUND'), 406);
  353. }
  354. return $segment;
  355. }
  356. /* ///////////////////////////////////////////////////////////////////////////////////// */
  357. /* /////////////////////////////////// USER SALE TARGET /////////////////////////////////// */
  358. public static function userSalesTarget($parent, $userid, $model = '', $year = '', $month = '')
  359. {
  360. $user_target = '0';
  361. if ($userid) {
  362. $userdata = self::getuserdata($parent, $userid);
  363. $qry_cond = '';
  364. if ($model != '') {
  365. $qry_cond .= " AND model='" . $model . "'";
  366. }
  367. if ($month != '' && $year != '') {
  368. $qry_cond .= " AND sale_month>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND sale_month<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "'";
  369. } else if ($year != '') {
  370. $qry_cond .= " AND sale_month>='" . $year . "-01-01' AND sale_month<='" . $year . "-12-31'";
  371. }
  372. $query_target = $parent->getQueryValue("SELECT COALESCE(SUM(target),0) as total_target FROM " . TABLE_USER_SALETARGET . " WHERE smpin='" . $userdata->smpin . "' " . $qry_cond . " LIMIT 1");
  373. if (count($query_target) > 0) {
  374. $user_target = (string) $query_target[0]->total_target;
  375. }
  376. }
  377. return $user_target;
  378. }
  379. /* ///////////////////////////////////////////////////////////////////////////////////// */
  380. /* /////////////////////////////////// SMPIN USER SALE TARGET /////////////////////////////////// */
  381. public static function userSmpinSalesTarget($parent, $smpin, $model = '', $year = '', $month = '')
  382. {
  383. $user_target = '0';
  384. if ($smpin) {
  385. $qry_cond = '';
  386. if ($model != '') {
  387. $qry_cond .= " AND model='" . $model . "'";
  388. }
  389. if ($month != '' && $year != '') {
  390. $qry_cond .= " AND sale_month>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND sale_month<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "'";
  391. } else if ($year != '') {
  392. $qry_cond .= " AND sale_month>='" . $year . "-01-01' AND sale_month<='" . $year . "-12-31'";
  393. }
  394. $query_target = $parent->getQueryValue("SELECT COALESCE(SUM(target),0) as total_target FROM " . TABLE_USER_SALETARGET . " WHERE smpin='" . $smpin . "' " . $qry_cond . " LIMIT 1");
  395. if (count($query_target) > 0) {
  396. $user_target = (string) $query_target[0]->total_target;
  397. }
  398. }
  399. return $user_target;
  400. }
  401. /* ///////////////////////////////////////////////////////////////////////////////////// */
  402. /* /////////////////////////////////// USER SALE ACHIEVED /////////////////////////////////// */
  403. public static function userSalesAchieved($parent, $userid, $model = '', $year = '', $month = '')
  404. {
  405. $user_sales = '0';
  406. if ($userid) {
  407. $userdata = self::getuserdata($parent, $userid);
  408. $qry_cond = '';
  409. if ($model != '') {
  410. $qry_cond .= " AND model='" . $model . "'";
  411. }
  412. if ($month != '' && $year != '') {
  413. $qry_cond .= " AND sale_date>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND sale_date<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "'";
  414. } else if ($year != '') {
  415. $qry_cond .= " AND sale_date>='" . $year . "-01-01' AND sale_date<='" . $year . "-12-31'";
  416. }
  417. $query_user_sale = $parent->getQueryValue("SELECT SUM(sales_count) as total_sales FROM " . DMS_EMPLOYEE_SALES . " WHERE smpin='" . $userdata->smpin . "' " . $qry_cond . " LIMIT 1");
  418. if (count($query_user_sale) > 0) {
  419. $user_sales = ($query_user_sale[0]->total_sales) ? (string) $query_user_sale[0]->total_sales : '0';
  420. }
  421. }
  422. return $user_sales;
  423. }
  424. /* ///////////////////////////////////////////////////////////////////////////////////// */
  425. /* /////////////////////////////////// SMPIN USER SALE ACHIEVED /////////////////////////////////// */
  426. public static function userSmpinSalesAchieved($parent, $smpin, $model = '', $year = '', $month = '')
  427. {
  428. $user_sales = '0';
  429. if ($smpin) {
  430. $qry_cond = '';
  431. if ($model != '') {
  432. $qry_cond .= " AND model='" . $model . "'";
  433. }
  434. if ($month != '' && $year != '') {
  435. $qry_cond .= " AND sale_date>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND sale_date<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "'";
  436. } else if ($year != '') {
  437. $qry_cond .= " AND sale_date>='" . $year . "-01-01' AND sale_date<='" . $year . "-12-31'";
  438. }
  439. $query_user_sale = $parent->getQueryValue("SELECT SUM(sales_count) as total_sales FROM " . DMS_EMPLOYEE_SALES . " WHERE smpin='" . $smpin . "' " . $qry_cond . " LIMIT 1");
  440. if (count($query_user_sale) > 0) {
  441. $user_sales = ($query_user_sale[0]->total_sales) ? (string) $query_user_sale[0]->total_sales : '0';
  442. }
  443. }
  444. return $user_sales;
  445. }
  446. /* ///////////////////////////////////////////////////////////////////////////////////// */
  447. /* /////////////////////////////////// USER ASSESSMENT VALID /////////////////////////////////// */
  448. public static function userAssessmentValid($parent, $userid, $assessmentid)
  449. {
  450. $user_cond_arr = self::getUserAssessmentCond($parent, $userid);
  451. $user_cond = " AND " . @implode(' AND ', $user_cond_arr);
  452. // if($parent->current_user_role>7)
  453. // {
  454. // $user_cond.=($parent->current_user_role>7 && $parent->current_user_role<14)?" AND a.user_type=0 ":" AND a.user_type=1 ";
  455. // }
  456. switch ($parent->current_user_role) {
  457. //NORMAL DSE
  458. case '8':
  459. case '9':
  460. case '10':
  461. case '11':
  462. case '12':
  463. case '13':
  464. $user_cond .= " AND a.user_type=0 ";
  465. break;
  466. //International Bike Sales Executive
  467. case '15':
  468. $user_cond .= " AND a.user_type=1 ";
  469. break;
  470. //HO Manager
  471. case '3':
  472. $user_cond .= " AND a.user_type=2 ";
  473. break;
  474. //Zonal Manager
  475. case '4':
  476. $user_cond .= " AND a.user_type=3 ";
  477. break;
  478. //Trainer
  479. case '5':
  480. $user_cond .= " AND a.user_type=4 ";
  481. break;
  482. //Regional Manager
  483. case '6':
  484. $user_cond .= " AND a.user_type=5 ";
  485. break;
  486. //Area Manager
  487. case '7':
  488. $user_cond .= " AND a.user_type=6 ";
  489. break;
  490. //Dealer
  491. case '14':
  492. $user_cond .= " AND a.user_type=7 ";
  493. break;
  494. case '16':
  495. $user_cond .= " AND a.user_type=8 ";
  496. break;
  497. }
  498. //NEW SEGMENT CONDITION
  499. if ($parent->current_user_role > 7 && $parent->current_user_role < 14) {
  500. $user_cond .= " AND (a.segment='0' OR a.segment='" . $parent->current_user_data->segment . "')";
  501. }
  502. $assessment_str = "SELECT a.* FROM " . TABLE_ASSESSMENT . " as a WHERE a.status='1' AND a.assettypeid='1' AND a.assessmentid='" . $assessmentid . "' AND a.publisheddate<='" . NOW . "' " . $user_cond . " LIMIT 1";
  503. $assessment_arr = $parent->getQueryValue($assessment_str);
  504. if (count($assessment_arr) > 0) {
  505. if ($assessment_arr[0]->atype == '0') {
  506. //EXPIRED CHECK
  507. if (!(strtotime($assessment_arr[0]->enddate) >= strtotime(CUR_DATE . " 00:00:00") && $assessment_arr[0]->enddate != '0000-00-00 00:00:00')) {
  508. $parent->response(array('response' => 'failed', 'message' => 'Assessment is expired'), 406);
  509. }
  510. //PUBLISHED CHECK
  511. if (!(strtotime($assessment_arr[0]->publisheddate) < strtotime(NOW))) {
  512. $parent->response(array('response' => 'failed', 'message' => $msg["error4"]), 406);
  513. }
  514. }
  515. } else {
  516. $parent->response(array('response' => 'failed', 'message' => 'Assessment is not available'), 406);
  517. }
  518. }
  519. /* ///////////////////////////////////////////////////////////////////////////////////// */
  520. /* /////////////////////////////////// USER SURVEY VALID /////////////////////////////////// */
  521. public static function userSurveyValid($parent, $userid, $assessmentid)
  522. {
  523. $user_cond_arr = self::getUserAssessmentCond($parent, $userid);
  524. $user_cond = " AND " . @implode(' AND ', $user_cond_arr);
  525. if ($parent->current_user_role > 7) {
  526. $user_cond .= ($parent->current_user_role > 7 && $parent->current_user_role < 14) ? " AND a.user_type=0 " : " AND a.user_type=1 ";
  527. }
  528. if ($parent->current_user_role > 7 && $parent->current_user_role < 14) {
  529. $user_cond .= " AND (a.segment='0' OR a.segment='" . $parent->current_user_data->segment . "')";
  530. }
  531. $assessment_str = "SELECT a.* FROM " . TABLE_ASSESSMENT . " as a WHERE a.status='1' AND a.assettypeid='2' AND a.assessmentid='" . $assessmentid . "' AND a.publisheddate<='" . NOW . "' " . $user_cond;
  532. $assessment_arr = $parent->getQueryValue($assessment_str);
  533. if (count($assessment_arr) > 0) {
  534. //EXPIRED CHECK
  535. if (!(strtotime($assessment_arr[0]->enddate) >= strtotime(CUR_DATE . " 00:00:00") && $assessment_arr[0]->enddate != '0000-00-00 00:00:00')) {
  536. $parent->response(array('response' => 'failed', 'message' => 'Feedback is expired'), 406);
  537. }
  538. //PUBLISHEDD CHECK
  539. if (!(strtotime($assessment_arr[0]->publisheddate) < strtotime(NOW))) {
  540. $parent->response(array('response' => 'failed', 'message' => $msg["error4"]), 406);
  541. }
  542. } else {
  543. $parent->response(array('response' => 'failed', 'message' => 'Assessment is not available'), 406);
  544. }
  545. }
  546. /* ///////////////////////////////////////////////////////////////////////////////////// */
  547. /* /////////////////////////////////// GET CONTENT /////////////////////////////////// */
  548. public static function getContent($parent, $contentid, $userid = 0)
  549. {
  550. if ($userid == 0 && $parent->current_user_id) {
  551. $userid = $parent->current_user_id;
  552. }
  553. $data_arr = array();
  554. //COMMAN USER FILTER
  555. $user_filter_str = self::getUserfiltervalue($parent, array('role', 'zone', 'city', 'dealer_code'), $userid);
  556. $user_cond .= $user_filter_str;
  557. $getuser_content_arr = $parent->selectQuery(TABLE_ASSET_CONTENT, "*", " status='1' AND is_deleted='0' AND contentid='" . $contentid . "' " . $user_cond . " ", "1");
  558. if ($getuser_content_arr['nr']) {
  559. //CONNECT S3
  560. $s3 = awsfileserver::connectS3();
  561. foreach ($getuser_content_arr['result'] as $res) {
  562. //GET USER STATUS OF CONTENT
  563. $content_status_arr = self::getContentStatus($parent, $res->contentid);
  564. $res->status = $content_status_arr['status'];
  565. $res->status_str = $content_status_arr['status_str'];
  566. $res->content_files = self::getContentFiles($parent, $s3, $res->contentid);
  567. $data_arr[] = $res;
  568. }
  569. }
  570. //print_r($data_arr);
  571. return $data_arr;
  572. }
  573. /* ///////////////////////////////////////////////////////////////////////////////////// */
  574. /* /////////////////////////////// TOPIC CONTENT //////////////////////////////////////////////// */
  575. public static function getContentFiles($parent, $s3, $contentid)
  576. {
  577. $data_arr = array();
  578. //GET FILES ONLY ONE FILE
  579. $getuser_contentfiles_arr = $parent->selectQuery(TABLE_ASSET_FILE . " as f JOIN " . TABLE_MASTER_LANGUAGE . " as l ON l.language_id=f.language_id", " f.`language_id`, f.`filepath`,f.filetypeid, f.`thumbpath`, f.`filetypeid`, f.`filetype`, f.`filesize`, f.`filequality`, l.`language_code`, l. `language_title`", " f.contentid='" . $contentid . "'", "");
  580. if ($getuser_contentfiles_arr['nr']) {
  581. foreach ($getuser_contentfiles_arr['result'] as $tkey => $res) {
  582. //S3 FILE URL
  583. $fileurl = '';
  584. if ($res->filepath != '') {
  585. $url = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_TOPICS_URL . $res->filepath);
  586. //PDF ISSUE FIX FOR WEB DEVICE
  587. $url = (strtolower($parent->device_type) == 'web' && $res->filetypeid == '1') ? projectfunc::pdfUrlStr($parent, $url) : $url;
  588. $fileurl = $url;
  589. }
  590. $getuser_contentfiles_arr['result'][$tkey]->file_url = $fileurl;
  591. //S3 THUMBIMAGE URL
  592. $thumb_fileurl = '';
  593. if ($res->thumbpath != '') {
  594. $thumb_fileurl = awsfileserver::getS3FileUrl($s3, S3_BUCKET, S3_TOPICS_URL . $res->thumbpath);
  595. }
  596. $getuser_contentfiles_arr['result'][$tkey]->thumb_fileurl = $thumb_fileurl;
  597. }
  598. $data_arr = $getuser_contentfiles_arr['result'];
  599. }
  600. return $data_arr;
  601. }
  602. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  603. /* /////////////////////////////////// MANAGER LEARNING DASHBOARD /////////////////////////////////// */
  604. public static function managerLearningDashboard($parent, $role, $userid = 0)
  605. {
  606. //0-Not Started Grey, 1-Current Orange ,2 failed red,3 Completed Green
  607. $lvl_arr = array('basic' => '0', 'bronze' => '0', 'silver' => '0', 'gold' => '0', 'total' => 0);
  608. $userdata = self::getuserdata($parent, $userid);
  609. $user_cond = "";
  610. switch ($role) {
  611. case '3': //HO Manager
  612. $user_cond = "";
  613. break;
  614. case '4': //Zonal Manager
  615. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $userdata->emailid . "')";
  616. break;
  617. case '5': //Trainer
  618. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $res_user->userid . "' LIMIT 1";
  619. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  620. $zone_cond = (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  621. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . ")";
  622. break;
  623. case '6': //Regional Manager
  624. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $userdata->emailid . "')";
  625. break;
  626. case '7': //Area Manager
  627. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $userdata->emailid . "')";
  628. break;
  629. case '14': //Dealer
  630. $user_cond = " AND u.dealer_code ='" . $userdata->dealer_code . "'";
  631. break;
  632. // case '9': break;
  633. // case '10': break;
  634. // case '11': break;
  635. // case '12': break;
  636. // case '13': break;
  637. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  638. break;
  639. }
  640. /* $user_learnpath_str = "SELECT COALESCE(a.c,0) as basic,COALESCE(b.c,0) as bronze,COALESCE(c.c,0) as silver,COALESCE(d.c,0) as gold FROM
  641. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND ((l.lvl_id='2' AND l.current_status='1' AND l.status!='3') OR (l.lvl_id='1' AND l.current_status='1' AND l.status='3' )) ".$user_cond.") as a,
  642. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND ((l.lvl_id='3' AND l.current_status='1' AND l.status!='3') OR (l.lvl_id='2' AND l.current_status='1' AND l.status='3')) ".$user_cond.") as b,
  643. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND ((l.lvl_id='4' AND l.current_status='1' AND l.status!='3') OR (l.lvl_id='3' AND l.current_status='1' AND l.status='3'))".$user_cond.") as c,
  644. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND l.current_status='1' AND l.lvl_id=4 AND l.status='3' ".$user_cond.") as d";
  645. */
  646. $user_learnpath_str = "SELECT COALESCE(a.c,0) as basic,COALESCE(b.c,0) as bronze,COALESCE(c.c,0) as silver,COALESCE(d.c,0) as gold FROM
  647. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 AND l.lvl_id='1' AND l.status='3' " . $user_cond . ") as a,
  648. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 AND l.lvl_id='2' AND l.status='3' " . $user_cond . ") as b,
  649. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 AND l.lvl_id='3' AND l.status='3' " . $user_cond . ") as c,
  650. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 AND l.lvl_id=4 AND l.status='3' " . $user_cond . ") as d";
  651. $user_learnpath_arr = $parent->getQueryValue($user_learnpath_str);
  652. if (count($user_learnpath_arr) > 0) {
  653. $lvl_arr = $user_learnpath_arr[0];
  654. $lvl_arr->total = (string) ($lvl_arr->basic + $lvl_arr->bronze + $lvl_arr->silver + $lvl_arr->gold);
  655. }
  656. $user_tot_count = $parent->getQueryValue(" SELECT COUNT(u.userid) as ucount FROM " . TABLE_USER . " u WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 " . $user_cond);
  657. $lvl_arr->user_total = $user_tot_count[0]->ucount;
  658. $lvl_arr->qry = $user_learnpath_str;
  659. return (array) $lvl_arr;
  660. }
  661. /* ///////////////////////////////////////////////////////////////////////////////////// */
  662. /* /////////////////////////////////// MANAGER ASSESSMENT DASHBOARD /////////////////////////////////// */
  663. public static function managerAssessmentDashboard($parent, $role, $userid = 0)
  664. {
  665. //0-Not Started Grey, 1-Current Orange ,2 failed red,3 Completed Green
  666. $assessment_arr = array('published' => '0', 'active' => '0', 'expired' => '0');
  667. //return $assessment_arr;
  668. $userdata = self::getuserdata($parent, $userid);
  669. $user_cond = "";
  670. switch ($role) {
  671. case '3': //HO Manager
  672. $user_cond = "";
  673. break;
  674. case '4': //Zonal Manager
  675. $get_zone_str = "SELECT zone FROM " . DMS_DEALER . " WHERE zm_email='" . $userdata->emailid . "' GROUP BY zone ";
  676. $zone_arr = $parent->getQueryValue($get_zone_str);
  677. if (count($zone_arr) > 0) {
  678. foreach ($zone_arr as $res_zone) {
  679. $zone_cond_arr[] = " filter_zone LIKE '%" . $res_zone->zone . "%'";
  680. }
  681. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  682. } else {
  683. $user_cond .= " AND (filter_zone='') ";
  684. }
  685. break;
  686. case '5': //Trainer
  687. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $res_user->userid . "' LIMIT 1";
  688. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  689. $user_cond = " AND (filter_zone='' OR filter_zone LIKE '%" . $trainer_arr[0]->zone . "%') ";
  690. break;
  691. case '6': //Regional Manager
  692. $get_city_str = "SELECT city,zone FROM " . DMS_DEALER . " WHERE rm_email='" . $userdata->emailid . "' GROUP BY city ";
  693. $city_arr = $parent->getQueryValue($get_city_str);
  694. if (count($city_arr) > 0) {
  695. $zone_arr = array();
  696. foreach ($city_arr as $res_city) {
  697. if (!in_array($res_city->zone, $zone_arr)) {
  698. $zone_arr[] = $res_city->zone;
  699. }
  700. $city_cond_arr[] = " filter_region LIKE '%" . $res_city->city . "%'";
  701. }
  702. $user_cond .= " AND ( filter_region='' OR " . @implode(" OR ", $city_cond_arr) . " ) ";
  703. if (count($zone_arr) > 0) {
  704. foreach ($zone_arr as $zone) {
  705. $zone_cond_arr[] = " filter_zone LIKE '%" . $zone . "%'";
  706. }
  707. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  708. } else {
  709. $user_cond .= " AND (filter_zone='') ";
  710. }
  711. } else {
  712. $user_cond .= " AND (filter_region='') ";
  713. }
  714. break;
  715. case '7': //Area Manager
  716. $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE am_email='" . $userdata->emailid . "' GROUP BY dealer_code ";
  717. $dealer_arr = $parent->getQueryValue($get_dealer_str);
  718. if (count($dealer_arr) > 0) {
  719. $zone_arr = array();
  720. $city_arr = array();
  721. foreach ($dealer_arr as $res_dealer) {
  722. if (!in_array($res_dealer->zone, $zone_arr)) {
  723. $zone_arr[] = $res_dealer->zone;
  724. }
  725. if (!in_array($res_dealer->city, $city_arr)) {
  726. $city_arr[] = $res_dealer->city;
  727. }
  728. $dealer_cond_arr[] = " filter_dealer LIKE '%" . $res_dealer->dealer_code . "%'";
  729. }
  730. $user_cond .= " AND ( filter_dealer='' OR " . @implode(" OR ", $dealer_cond_arr) . " ) ";
  731. if (count($zone_arr) > 0) {
  732. foreach ($zone_arr as $zone) {
  733. $zone_cond_arr[] = " filter_zone LIKE '%" . $zone . "%'";
  734. }
  735. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  736. } else {
  737. $user_cond .= " AND (filter_zone='') ";
  738. }
  739. if (count($city_arr) > 0) {
  740. foreach ($city_arr as $city) {
  741. $city_cond_arr[] = " filter_region LIKE '%" . $city . "%'";
  742. }
  743. $user_cond .= " AND (filter_region='' OR " . @implode(" OR ", $city_cond_arr) . " ) ";
  744. } else {
  745. $user_cond .= " AND (filter_region='') ";
  746. }
  747. } else {
  748. $user_cond .= " AND (filter_dealer='') ";
  749. }
  750. break;
  751. case '14': //Dealer
  752. $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE dealer_code='" . $userdata->dealer_code . "' LIMIT 1";
  753. $dealer_arr = $parent->getQueryValue($get_dealer_str);
  754. if (count($dealer_arr) > 0) {
  755. $zone_arr = array();
  756. $city_arr = array();
  757. foreach ($dealer_arr as $res_dealer) {
  758. if (!in_array($res_dealer->zone, $zone_arr)) {
  759. $zone_arr[] = $res_dealer->zone;
  760. }
  761. if (!in_array($res_dealer->city, $city_arr)) {
  762. $city_arr[] = $res_dealer->city;
  763. }
  764. $dealer_cond_arr[] = " filter_dealer LIKE '%" . $res_dealer->dealer_code . "%'";
  765. }
  766. $user_cond .= " AND ( filter_dealer='' OR " . @implode(" OR ", $dealer_cond_arr) . " ) ";
  767. if (count($zone_arr) > 0) {
  768. foreach ($zone_arr as $zone) {
  769. $zone_cond_arr[] = " filter_zone LIKE '%" . $zone . "%'";
  770. }
  771. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  772. } else {
  773. $user_cond .= " AND (filter_zone='') ";
  774. }
  775. if (count($city_arr) > 0) {
  776. foreach ($city_arr as $city) {
  777. $city_cond_arr[] = " filter_region LIKE '%" . $city . "%'";
  778. }
  779. $user_cond .= " AND (filter_region='' OR " . @implode(" OR ", $city_cond_arr) . " ) ";
  780. } else {
  781. $user_cond .= " AND (filter_region='') ";
  782. }
  783. } else {
  784. $user_cond .= " AND (filter_dealer='') ";
  785. }
  786. break;
  787. // case '9': break;
  788. // case '10': break;
  789. // case '11': break;
  790. // case '12': break;
  791. // case '13': break;
  792. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  793. break;
  794. }
  795. $assessment_str = "SELECT COUNT(assessmentid) as acount FROM " . TABLE_ASSESSMENT . " WHERE atype='0' AND status='1' AND assettypeid='1' AND publisheddate<='" . NOW . "' " . $user_cond . " LIMIT 1";
  796. $get_assessment_arr = $parent->getQueryValue($assessment_str);
  797. if (count($get_assessment_arr) > 0) {
  798. $expired_assessment_str = "SELECT COUNT(assessmentid) as acount FROM " . TABLE_ASSESSMENT . " WHERE atype='0' AND status='1' AND assettypeid='1' AND publisheddate<='" . NOW . "' AND enddate>='" . NOW . "' " . $user_cond . " LIMIT 1";
  799. $expired_assessment_arr = $parent->getQueryValue($expired_assessment_str);
  800. $active_count = (string) $get_assessment_arr[0]->acount - $expired_assessment_arr[0]->acount;
  801. $assessment_arr = array('published' => $get_assessment_arr[0]->acount, 'active' => $active_count, 'expired' => $expired_assessment_arr[0]->acount);
  802. }
  803. return (array) $assessment_arr;
  804. }
  805. /* ///////////////////////////////////////////////////////////////////////////////////// */
  806. /* /////////////////////////////////// MANAGER SALES DASHBOARD /////////////////////////////////// */
  807. public static function managersalesDashboard($parent, $role, $year, $month, $userid = 0)
  808. {
  809. //0-Not Started Grey, 1-Current Orange ,2 failed red,3 Completed Green
  810. //$sales_arr=array('target'=>'10','achieved'=>'4','month'=>date('M',strtotime('2018-'.$month."-01")),'year'=>$year);
  811. //return $sales_arr;
  812. $userdata = self::getuserdata($parent, $userid);
  813. $user_cond = "";
  814. switch ($role) {
  815. case '3': //HO Manager
  816. $user_cond = "";
  817. break;
  818. case '4': //Zonal Manager
  819. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $userdata->emailid . "')";
  820. break;
  821. case '5': //Trainer
  822. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $res_user->userid . "' LIMIT 1";
  823. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  824. $zone_cond = (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  825. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . ")";
  826. break;
  827. case '6': //Regional Manager
  828. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $userdata->emailid . "')";
  829. break;
  830. case '7': //Area Manager
  831. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $userdata->emailid . "')";
  832. break;
  833. case '14': //Dealer
  834. $user_cond = " AND u.dealer_code='" . $userdata->dealer_code . "'";
  835. break;
  836. // case '9': break;
  837. // case '10': break;
  838. // case '11': break;
  839. // case '12': break;
  840. // case '13': break;
  841. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  842. break;
  843. }
  844. $user_target_str = "SELECT COALESCE(SUM(t.target),0) as user_target FROM " . TABLE_USER . " u JOIN " . TABLE_USER_SALETARGET . " as t ON u.smpin=t.smpin WHERE u.status='1' AND u.is_deleted='0' AND t.sale_month>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND t.sale_month<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' " . $user_cond;
  845. $user_target_arr = $parent->getQueryValue($user_target_str);
  846. $target = (count($user_target_arr) > 0) ? $user_target_arr[0]->user_target : '0';
  847. $user_achieve_str = "SELECT COALESCE(SUM(s.sales_count),0) as user_achieve FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE_SALES . " as s ON u.smpin=s.smpin WHERE u.status='1' AND u.is_deleted='0' AND s.sale_date>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND s.sale_date<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' " . $user_cond;
  848. $user_achieve_arr = $parent->getQueryValue($user_achieve_str);
  849. $achieved = (count($user_achieve_arr) > 0) ? $user_achieve_arr[0]->user_achieve : '0';
  850. $sales_arr = array('target' => $user_target_arr[0]->user_target, 'achieved' => $achieved, 'month' => date('M', strtotime('2018-' . $month . "-01")), 'year' => $year);
  851. return (array) $sales_arr;
  852. }
  853. /* ///////////////////////////////////////////////////////////////////////////////////// */
  854. /* /////////////////////////////////// SET CELL BORDER /////////////////////////////////// */
  855. public static function setCellBorder($columns, $objPHPExcel)
  856. {
  857. for ($i = 0; $i < count($columns); $i++) {
  858. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getTop()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  859. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getBottom()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  860. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getLeft()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  861. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getBorders()->getRight()->setBorderStyle(PHPExcel_Style_Border::BORDER_THIN);
  862. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("0A64B5");
  863. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFont()->setSize(12)->getColor()->setRGB("FFFFFF");
  864. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFont()->setBold(true);
  865. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getAlignment()->setWrapText(true);
  866. }
  867. }
  868. /* //////////////////////////////////////////////////////////////////////////////// */
  869. /* /////////////////////////////////// SET CELL BORDER /////////////////////////////////// */
  870. public static function highlighRows($columns, $objPHPExcel)
  871. {
  872. for ($i = 0; $i < count($columns); $i++) {
  873. $objPHPExcel->getActiveSheet()->getStyle($columns[$i])->getFill()->setFillType(PHPExcel_Style_Fill::FILL_SOLID)->getStartColor()->setRGB("FF0000");
  874. }
  875. }
  876. /* //////////////////////////////////////////////////////////////////////////////// */
  877. /* /////////////////////////////////// USER COURSE COMPLETE STATUS /////////////////////////////////// */
  878. public static function userCourseCompleteStatus($parent, $userid)
  879. {
  880. if (!isset($userid)) {
  881. self::callErrorMsg($parent, array('message' => 'projectfunctions(userCourseCompleteStatus):REQUIRED userid'));
  882. }
  883. $user_filter_str = self::getUserfiltervalue($parent, array('role', 'zone', 'city', 'dealer_code'), $userid);
  884. $user_cond = str_replace("filter_", "c.filter_", $user_filter_str);
  885. //GET USER ALL CONTENT COUNT
  886. $get_course_str = "SELECT COUNT(c.`contentid`) as totcontent FROM " . TABLE_ASSET_CONTENT . " as c JOIN " . TABLE_ASSET_TOPIC . " as t ON t.assettopicid=c.assettopicid WHERE t.status='1' AND t.is_deleted='0' AND c.status='1' AND c.is_deleted='0' " . $user_cond;
  887. $get_course_arr = $parent->getQueryValue($get_course_str);
  888. $total_content = (count($get_course_arr) > 0) ? $get_course_arr[0]->totcontent : '0';
  889. //GET USER COMPLETED CONTENT COUNT
  890. $get_user_completed_str = "SELECT COUNT(c.`contentid`) as totcontent FROM " . TABLE_ASSET_CONTENT . " as c JOIN " . TABLE_ASSET_TOPIC . " as t ON t.assettopicid=c.assettopicid JOIN (SELECT * FROM " . TABLE_USER_COMPLETE_CONTENT . " WHERE userid='" . $userid . "' AND status='2') as a ON a.contentid=c.contentid WHERE t.status='1' AND t.is_deleted='0' AND c.status='1' AND c.is_deleted='0' " . $user_cond;
  891. $get_user_completed_arr = $parent->getQueryValue($get_user_completed_str);
  892. $user_content = (count($get_user_completed_arr) > 0) ? $get_user_completed_arr[0]->totcontent : '0';
  893. return array('completed' => $user_content, 'total' => $total_content);
  894. }
  895. /* //////////////////////////////////////////////////////////////////////////////// */
  896. /* /////////////////////////////////// USER COURSE COMPLETE STATUS /////////////////////////////////// */
  897. public static function userSegmentCourseCompleteStatus($parent, $userid, $segment)
  898. {
  899. if (!isset($userid)) {
  900. self::callErrorMsg($parent, array('message' => 'projectfunctions(userCourseCompleteStatus):REQUIRED userid'));
  901. }
  902. $user_filter_str = self::getUserfiltervalue($parent, array('role', 'zone', 'city', 'dealer_code'), $userid);
  903. $user_cond = str_replace("filter_", "c.filter_", $user_filter_str);
  904. switch ($segment) {
  905. case "1":$user_cond .= " AND t.segment IN (0,1) AND c.segment IN (0,1)";
  906. break;
  907. case "2":$user_cond .= " AND t.segment IN (0,2) AND c.segment IN (0,2)";
  908. break;
  909. default:$user_cond .= " AND t.segment IN (0) AND c.segment IN (0)";
  910. break;
  911. }
  912. //GET USER ALL CONTENT COUNT
  913. $get_course_str = "SELECT COUNT(c.`contentid`) as totcontent FROM " . TABLE_ASSET_CONTENT . " as c JOIN " . TABLE_ASSET_TOPIC . " as t ON t.assettopicid=c.assettopicid WHERE t.status='1' AND t.is_deleted='0' AND c.status='1' AND c.is_deleted='0' " . $user_cond;
  914. $get_course_arr = $parent->getQueryValue($get_course_str);
  915. $total_content = (count($get_course_arr) > 0) ? $get_course_arr[0]->totcontent : '0';
  916. //GET USER COMPLETED CONTENT COUNT
  917. $get_user_completed_str = "SELECT COUNT(c.`contentid`) as totcontent FROM " . TABLE_ASSET_CONTENT . " as c JOIN " . TABLE_ASSET_TOPIC . " as t ON t.assettopicid=c.assettopicid JOIN (SELECT * FROM " . TABLE_USER_COMPLETE_CONTENT . " WHERE userid='" . $userid . "' AND status='2') as a ON a.contentid=c.contentid WHERE t.status='1' AND t.is_deleted='0' AND c.status='1' AND c.is_deleted='0' " . $user_cond;
  918. $get_user_completed_arr = $parent->getQueryValue($get_user_completed_str);
  919. $user_content = (count($get_user_completed_arr) > 0) ? $get_user_completed_arr[0]->totcontent : '0';
  920. return array('completed' => $user_content, 'total' => $total_content);
  921. }
  922. /* //////////////////////////////////////////////////////////////////////////////// */
  923. /* /////////////////////////////////// USER COURSE COMPLETE STATUS /////////////////////////////////// */
  924. public static function managerCourseCompleteStatus($parent, $userid, $role)
  925. {
  926. if (!isset($userid)) {
  927. self::callErrorMsg($parent, array('message' => 'projectfunctions(userCourseCompleteStatus):REQUIRED userid'));
  928. }
  929. // $user_filter_str=self::getUserfiltervalue($parent,array('role','zone','city','dealer_code'),$userid);
  930. // $user_cond=str_replace("filter_","c.filter_",$user_filter_str);
  931. $user_cond = " AND (FIND_IN_SET('" . $role . "',c.filter_role) OR c.filter_role='')";
  932. //GET USER ALL CONTENT COUNT
  933. $get_course_str = "SELECT COUNT(c.`contentid`) as totcontent FROM " . TABLE_ASSET_CONTENT . " as c JOIN " . TABLE_ASSET_TOPIC . " as t ON t.assettopicid=c.assettopicid WHERE t.status='1' AND t.is_deleted='0' AND c.status='1' AND c.is_deleted='0' " . $user_cond;
  934. $get_course_arr = $parent->getQueryValue($get_course_str);
  935. $total_content = (count($get_course_arr) > 0) ? $get_course_arr[0]->totcontent : '0';
  936. //GET USER COMPLETED CONTENT COUNT
  937. $get_user_completed_str = "SELECT COUNT(c.`contentid`) as totcontent FROM " . TABLE_ASSET_CONTENT . " as c JOIN " . TABLE_ASSET_TOPIC . " as t ON t.assettopicid=c.assettopicid JOIN (SELECT * FROM " . TABLE_USER_COMPLETE_CONTENT . " WHERE userid='" . $userid . "' AND status='2') as a ON a.contentid=c.contentid WHERE t.status='1' AND t.is_deleted='0' AND c.status='1' AND c.is_deleted='0' " . $user_cond;
  938. $get_user_completed_arr = $parent->getQueryValue($get_user_completed_str);
  939. $user_content = (count($get_user_completed_arr) > 0) ? $get_user_completed_arr[0]->totcontent : '0';
  940. return array('completed' => $user_content, 'total' => $total_content);
  941. }
  942. /* //////////////////////////////////////////////////////////////////////////////// */
  943. /* /////////////////////////////// AUTHORIZED ROLE //////////////////////////////////////////////// */
  944. public static function authorizedRole($parent, $role_arr)
  945. {
  946. if (isset($role_arr) && is_array($role_arr)) {
  947. return (in_array($parent->current_user_role, $role_arr)) ? true : $parent->response(array('response' => 'failed', 'message' => 'Unauthorize'), 401);
  948. } else {
  949. self::callErrorMsg($parent, array('message' => 'projectfunctions(authorizedUser):REQUIRED role_arr'));
  950. }
  951. }
  952. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  953. /* /////////////////////////////// USER ADD POINTS //////////////////////////////////////////////// */
  954. public static function userAddPoints($parent, $obj, $userid = 0)
  955. {
  956. $status = 0;
  957. if ($userid == 0 && $parent->current_user_id) {
  958. if ($parent->current_user_id) {
  959. $userid = $parent->current_user_id;
  960. $smpin = $parent->current_smpin;
  961. } else {
  962. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddPoints):REQUIRED userid'));
  963. }
  964. } else {
  965. $user_str = "SELECT * FROM " . TABLE_USER . " WHERE userid='" . $userid . "' AND is_deleted=0 LIMIT 1";
  966. $user_arr = $parent->getQueryValue($user_str);
  967. if (count($user_arr) > 0) {
  968. $smpin = $user_arr[0]->smpin;
  969. } else {
  970. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddPoints):REQUIRED USER NOT FOUND'));
  971. }
  972. }
  973. if (!isset($obj->type)) {
  974. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddPoints):REQUIRED obj->type'));
  975. }
  976. if (!isset($obj->type_id)) {
  977. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddPoints):REQUIRED obj->type_id'));
  978. }
  979. if (!isset($obj->points)) {
  980. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddPoints):REQUIRED obj->points'));
  981. }
  982. $obj->description = (isset($obj->description)) ? $obj->description : "";
  983. //NEED TO CHECK POINTS ALREADY ADDED
  984. $points_str = "SELECT * FROM " . TABLE_USER_EPOINTS_HISTORY . " WHERE smpin='" . $smpin . "' AND type='" . $obj->type . "' AND type_id='" . $obj->type_id . "' AND transaction_type='C'";
  985. $points_arr = $parent->getQueryValue($points_str);
  986. if (count($points_arr) > 0) {
  987. //POINTS ALREADY ADDED
  988. } else {
  989. $parent->executeQuery("INSERT INTO " . TABLE_USER_EPOINTS_HISTORY . "( `smpin`, `type`, `type_id`, `description`, `points`, `transaction_type`, `created_on`, `modified_on`) VALUES ('" . $smpin . "','" . escape_str($obj->type) . "','" . $obj->type_id . "','" . escape_str($obj->description) . "','" . $obj->points . "' ,'C','" . NOW . "','" . NOW . "')");
  990. //UPDATE POINT IN USER
  991. $parent->executeQuery("UPDATE " . TABLE_USER_EPOINTS . " SET points=points+" . $obj->points . " WHERE smpin='" . $smpin . "' ");
  992. $status = 1;
  993. }
  994. return $status;
  995. }
  996. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  997. /* /////////////////////////////////// MANAGER LEARNING DASHBOARD /////////////////////////////////// */
  998. public static function newmanagerLearningDashboard($parent, $role, $email, $dealer_code = '')
  999. {
  1000. //0-Not Started Grey, 1-Current Orange ,2 failed red,3 Completed Green
  1001. $lvl_arr = (object) array('basic' => '0', 'bronze' => '0', 'silver' => '0', 'gold' => '0', 'total' => 0);
  1002. //$userdata=projectfunc::getuserdata($parent,$userid);
  1003. $user_cond = "";
  1004. switch ($role) {
  1005. case '3': //HO Manager
  1006. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE is_deleted='0' AND status='1')";
  1007. break;
  1008. case '4': //Zonal Manager
  1009. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $email . "' AND is_deleted='0' AND status='1')";
  1010. break;
  1011. case '5': //Trainer
  1012. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $email . "' LIMIT 1";
  1013. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1014. $zone_cond = (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  1015. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND is_deleted='0' AND status='1')";
  1016. break;
  1017. case '6': //Regional Manager
  1018. $mcond = '';
  1019. if ($parent->current_user_role == '5') {
  1020. $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1";
  1021. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1022. $manager_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  1023. } else {
  1024. $zmemail = escape_str($parent->_request["zmemail"]);
  1025. $mcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : '';
  1026. }
  1027. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $email . "' AND is_deleted='0' AND status='1' " . $mcond . " )";
  1028. break;
  1029. case '7': //Area Manager
  1030. $mcond = '';
  1031. if ($parent->current_user_role != '5') {
  1032. $zmemail = escape_str($parent->_request["zmemail"]);
  1033. $mcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : '';
  1034. }
  1035. $rmemail = escape_str($parent->_request["rmemail"]);
  1036. $mcond .= ($rmemail != 'all' && $rmemail != '') ? " AND rm_email='" . $rmemail . "'" : '';
  1037. $user_cond = " AND u.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $email . "' AND is_deleted='0' AND status='1' " . $mcond . ")";
  1038. break;
  1039. case '14': //Dealer
  1040. $user_cond = " AND u.dealer_code='" . $parent->current_user_data->dealer_code . "'";
  1041. break;
  1042. // case '9': break;
  1043. // case '10': break;
  1044. // case '11': break;
  1045. // case '12': break;
  1046. // case '13': break;
  1047. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  1048. break;
  1049. }
  1050. /*
  1051. * $user_learnpath_str = "SELECT COALESCE(a.c,0) as basic,COALESCE(b.c,0) as bronze,COALESCE(c.c,0) as silver,COALESCE(d.c,0) as gold FROM
  1052. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND l.current_status='1' AND l.lvl_id=1 ".$user_cond.") as a,
  1053. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND l.current_status='1' AND l.lvl_id=2 ".$user_cond.") as b,
  1054. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND l.current_status='1' AND l.lvl_id=3 ".$user_cond.") as c,
  1055. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND l.current_status='1' AND l.lvl_id=4 ".$user_cond.") as d";
  1056. */
  1057. /*
  1058. $user_learnpath_str = "SELECT COALESCE(a.c,0) as basic,COALESCE(b.c,0) as bronze,COALESCE(c.c,0) as silver,COALESCE(d.c,0) as gold FROM
  1059. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND ((l.lvl_id='2' AND l.current_status='1' AND l.status!='3') OR (l.lvl_id='1' AND l.current_status='1' AND l.status='3' )) ".$user_cond.") as a,
  1060. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND ((l.lvl_id='3' AND l.current_status='1' AND l.status!='3') OR (l.lvl_id='2' AND l.current_status='1' AND l.status='3')) ".$user_cond.") as b,
  1061. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND ((l.lvl_id='4' AND l.current_status='1' AND l.status!='3') OR (l.lvl_id='3' AND l.current_status='1' AND l.status='3'))".$user_cond.") as c,
  1062. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.is_deleted=0 AND u.status=1 AND l.current_status='1' AND l.lvl_id=4 AND l.status='3' ".$user_cond.") as d";
  1063. */
  1064. /*
  1065. $user_learnpath_str = "SELECT COALESCE(a.c,0) as basic,COALESCE(b.c,0) as bronze,COALESCE(c.c,0) as silver,COALESCE(d.c,0) as gold FROM
  1066. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 AND l.lvl_id='1' AND l.status='3' ".$user_cond.") as a,
  1067. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 AND l.lvl_id='2' AND l.status='3' ".$user_cond.") as b,
  1068. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 AND l.lvl_id='3' AND l.status='3' ".$user_cond.") as c,
  1069. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM ".TABLE_USER_LEARNING." l JOIN ".TABLE_USER." u ON l.smpin=u.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND u.status=1 AND l.lvl_id=4 AND l.status='3' ".$user_cond.") as d";
  1070. */
  1071. $user_cond .= " AND e.is_current='1' ";
  1072. //AND u.status=1
  1073. $user_learnpath_str = "SELECT COALESCE(a.c,0) as basic,COALESCE(b.c,0) as bronze,COALESCE(c.c,0) as silver,COALESCE(d.c,0) as gold FROM
  1074. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND l.lvl_id='1' AND l.status='3' " . $user_cond . ") as a,
  1075. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND l.lvl_id='2' AND l.status='3' " . $user_cond . ") as b,
  1076. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND l.lvl_id='3' AND l.status='3' " . $user_cond . ") as c,
  1077. (SELECT COUNT(l.smpin) as c,l.lvl_id,l.status FROM " . TABLE_USER_LEARNING . " l JOIN " . TABLE_USER . " u ON l.smpin=u.smpin JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 AND l.lvl_id=4 AND l.status='3' " . $user_cond . ") as d";
  1078. //$parent->executeQuery("INSERT INTO `".TABLE_QUERY_LOG."`( `query_str`, `query_type`, `created_on`) VALUES ('". escape_str($user_learnpath_str)."', 'dashlear', '".NOW."')");
  1079. $user_learnpath_arr = $parent->getQueryValue($user_learnpath_str);
  1080. if (count($user_learnpath_arr) > 0) {
  1081. $lvl_arr = $user_learnpath_arr[0];
  1082. $lvl_arr->total = (string) ($lvl_arr->basic + $lvl_arr->bronze + $lvl_arr->silver + $lvl_arr->gold);
  1083. }
  1084. $user_tot_count = $parent->getQueryValue(" SELECT COUNT(u.userid) as ucount FROM " . TABLE_USER . " u JOIN " . DMS_EMPLOYEE . " e ON u.smpin=e.smpin WHERE u.role>7 AND u.role!=14 AND u.role!=16 AND u.is_deleted=0 " . $user_cond);
  1085. $lvl_arr->user_total = $user_tot_count[0]->ucount;
  1086. //$lvl_arr->qry= $user_learnpath_str;
  1087. return (array) $lvl_arr;
  1088. }
  1089. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1090. /* /////////////////////////////////// AREA MANAGER ASSESSMENT DASHBOARD /////////////////////////////////// */
  1091. public static function newmanagerAssessmentDashboard($parent, $role, $email)
  1092. {
  1093. //0-Not Started Grey, 1-Current Orange ,2 failed red,3 Completed Green
  1094. $assessment_arr = array('published' => '0', 'active' => '0', 'expired' => '0');
  1095. //return $assessment_arr;
  1096. //$userdata=projectfunc::getuserdata($parent,$userid);
  1097. $user_cond = "";
  1098. switch ($role) {
  1099. case '3': //HO Manager
  1100. $user_cond = "";
  1101. break;
  1102. case '4': //Zonal Manager
  1103. $get_zone_str = "SELECT zone FROM " . DMS_DEALER . " WHERE zm_email='" . $email . "' AND is_deleted='0' AND status='1' GROUP BY zone ";
  1104. $zone_arr = $parent->getQueryValue($get_zone_str);
  1105. if (count($zone_arr) > 0) {
  1106. foreach ($zone_arr as $res_zone) {
  1107. $zone_cond_arr[] = " filter_zone LIKE '%" . $res_zone->zone . "%'";
  1108. }
  1109. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  1110. } else {
  1111. $user_cond .= " AND (filter_zone='') ";
  1112. }
  1113. break;
  1114. case '5': //Trainer
  1115. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $email . "' LIMIT 1";
  1116. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1117. $user_cond = " AND (filter_zone='' OR filter_zone LIKE '%" . $trainer_arr[0]->zone . "%') ";
  1118. break;
  1119. case '6': //Regional Manager
  1120. $get_city_str = "SELECT city,zone FROM " . DMS_DEALER . " WHERE rm_email='" . $email . "' AND is_deleted='0' AND status='1' GROUP BY city ";
  1121. $city_arr = $parent->getQueryValue($get_city_str);
  1122. if (count($city_arr) > 0) {
  1123. $zone_arr = array();
  1124. foreach ($city_arr as $res_city) {
  1125. if (!in_array($res_city->zone, $zone_arr)) {
  1126. $zone_arr[] = $res_city->zone;
  1127. }
  1128. $city_cond_arr[] = " filter_region LIKE '%" . $res_city->city . "%'";
  1129. }
  1130. $user_cond .= " AND ( filter_region='' OR " . @implode(" OR ", $city_cond_arr) . " ) ";
  1131. if (count($zone_arr) > 0) {
  1132. foreach ($zone_arr as $zone) {
  1133. $zone_cond_arr[] = " filter_zone LIKE '%" . $zone . "%'";
  1134. }
  1135. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  1136. } else {
  1137. $user_cond .= " AND (filter_zone='') ";
  1138. }
  1139. } else {
  1140. $user_cond .= " AND (filter_region='') ";
  1141. }
  1142. break;
  1143. case '7': //Area Manager
  1144. $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE am_email='" . $email . "' AND is_deleted='0' AND status='1' GROUP BY dealer_code ";
  1145. $dealer_arr = $parent->getQueryValue($get_dealer_str);
  1146. if (count($dealer_arr) > 0) {
  1147. $zone_arr = array();
  1148. $city_arr = array();
  1149. foreach ($dealer_arr as $res_dealer) {
  1150. if (!in_array($res_dealer->zone, $zone_arr)) {
  1151. $zone_arr[] = $res_dealer->zone;
  1152. }
  1153. if (!in_array($res_dealer->city, $city_arr)) {
  1154. $city_arr[] = $res_dealer->city;
  1155. }
  1156. $dealer_cond_arr[] = " filter_dealer LIKE '%" . $res_dealer->dealer_code . "%'";
  1157. }
  1158. $user_cond .= " AND ( filter_dealer='' OR " . @implode(" OR ", $dealer_cond_arr) . " ) ";
  1159. if (count($zone_arr) > 0) {
  1160. foreach ($zone_arr as $zone) {
  1161. $zone_cond_arr[] = " filter_zone LIKE '%" . $zone . "%'";
  1162. }
  1163. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  1164. } else {
  1165. $user_cond .= " AND (filter_zone='') ";
  1166. }
  1167. if (count($city_arr) > 0) {
  1168. foreach ($city_arr as $city) {
  1169. $city_cond_arr[] = " filter_region LIKE '%" . $city . "%'";
  1170. }
  1171. $user_cond .= " AND (filter_region='' OR " . @implode(" OR ", $city_cond_arr) . " ) ";
  1172. } else {
  1173. $user_cond .= " AND (filter_region='') ";
  1174. }
  1175. } else {
  1176. $user_cond .= " AND (filter_dealer='') ";
  1177. }
  1178. break;
  1179. case '14': //DEALER
  1180. $get_dealer_str = "SELECT dealer_code,city,zone FROM " . DMS_DEALER . " WHERE dealer_code='" . $parent->current_user_data->dealer_code . "' AND is_deleted='0' AND status='1' LIMIT 1";
  1181. $dealer_arr = $parent->getQueryValue($get_dealer_str);
  1182. if (count($dealer_arr) > 0) {
  1183. $zone_arr = array();
  1184. $city_arr = array();
  1185. foreach ($dealer_arr as $res_dealer) {
  1186. if (!in_array($res_dealer->zone, $zone_arr)) {
  1187. $zone_arr[] = $res_dealer->zone;
  1188. }
  1189. if (!in_array($res_dealer->city, $city_arr)) {
  1190. $city_arr[] = $res_dealer->city;
  1191. }
  1192. $dealer_cond_arr[] = " filter_dealer LIKE '%" . $res_dealer->dealer_code . "%'";
  1193. }
  1194. $user_cond .= " AND ( filter_dealer='' OR " . @implode(" OR ", $dealer_cond_arr) . " ) ";
  1195. if (count($zone_arr) > 0) {
  1196. foreach ($zone_arr as $zone) {
  1197. $zone_cond_arr[] = " filter_zone LIKE '%" . $zone . "%'";
  1198. }
  1199. $user_cond .= " AND (filter_zone='' OR " . @implode(" OR ", $zone_cond_arr) . " ) ";
  1200. } else {
  1201. $user_cond .= " AND (filter_zone='') ";
  1202. }
  1203. if (count($city_arr) > 0) {
  1204. foreach ($city_arr as $city) {
  1205. $city_cond_arr[] = " filter_region LIKE '%" . $city . "%'";
  1206. }
  1207. $user_cond .= " AND (filter_region='' OR " . @implode(" OR ", $city_cond_arr) . " ) ";
  1208. } else {
  1209. $user_cond .= " AND (filter_region='') ";
  1210. }
  1211. } else {
  1212. $user_cond .= " AND (filter_dealer='') ";
  1213. }
  1214. break;
  1215. // case '9': break;
  1216. // case '10': break;
  1217. // case '11': break;
  1218. // case '12': break;
  1219. // case '13': break;
  1220. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  1221. break;
  1222. }
  1223. switch ($parent->current_user_role) {
  1224. case '3':
  1225. break;
  1226. case '4':
  1227. case '5':
  1228. $user_cond .= " AND user_type IN (0,1,5,6,7,8)";
  1229. break;
  1230. case '6':
  1231. $user_cond .= " AND user_type IN (0,1,6,7,8)";
  1232. break;
  1233. case '7':
  1234. $user_cond .= " AND user_type IN (0,1,7,8)";
  1235. break;
  1236. case '14':
  1237. $user_cond .= " AND user_type IN (0,1)";
  1238. break;
  1239. default:
  1240. $user_cond .= " AND user_type IN (0,1)";
  1241. break;
  1242. }
  1243. $assessment_str = "SELECT COUNT(assessmentid) as acount FROM " . TABLE_ASSESSMENT . " WHERE atype='0' AND status='1' AND assettypeid='1' AND publisheddate<='" . NOW . "' " . $user_cond . " LIMIT 1";
  1244. $get_assessment_arr = $parent->getQueryValue($assessment_str);
  1245. if (count($get_assessment_arr) > 0) {
  1246. $expired_assessment_str = "SELECT COUNT(assessmentid) as acount FROM " . TABLE_ASSESSMENT . " WHERE atype='0' AND status='1' AND assettypeid='1' AND publisheddate<='" . NOW . "' AND enddate>='" . NOW . "' " . $user_cond . " LIMIT 1";
  1247. $expired_assessment_arr = $parent->getQueryValue($expired_assessment_str);
  1248. $active_count = (string) $get_assessment_arr[0]->acount - $expired_assessment_arr[0]->acount;
  1249. $assessment_arr = array('published' => $get_assessment_arr[0]->acount, 'active' => $active_count, 'expired' => $expired_assessment_arr[0]->acount);
  1250. }
  1251. return (array) $assessment_arr;
  1252. }
  1253. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1254. /* /////////////////////////////////// AREA MANAGER SALES DASHBOARD /////////////////////////////////// */
  1255. public static function newmanagersalesDashboard($parent, $role, $year, $month, $email)
  1256. {
  1257. $user_cond = "";
  1258. switch ($role) {
  1259. case '3': //HO Manager
  1260. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE is_deleted='0' AND status='1')";
  1261. break;
  1262. case '4': //Zonal Manager
  1263. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $email . "' AND is_deleted='0' AND status='1')";
  1264. break;
  1265. case '5': //Trainer
  1266. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $email . "' LIMIT 1";
  1267. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1268. $zone_cond = (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  1269. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND is_deleted='0' AND status='1')";
  1270. break;
  1271. case '6': //Regional Manager
  1272. $mcond = '';
  1273. if ($parent->current_user_role == '5') {
  1274. $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1";
  1275. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1276. $manager_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  1277. } else {
  1278. $zmemail = escape_str($parent->_request["zmemail"]);
  1279. $mcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : '';
  1280. }
  1281. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $email . "' AND is_deleted='0' AND status='1' " . $mcond . ")";
  1282. break;
  1283. case '7': //Area Manager
  1284. $mcond = '';
  1285. if ($parent->current_user_role != '5') {
  1286. $zmemail = escape_str($parent->_request["zmemail"]);
  1287. $mcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : '';
  1288. }
  1289. $rmemail = escape_str($parent->_request["rmemail"]);
  1290. $mcond .= ($rmemail != 'all' && $rmemail != '') ? " AND rm_email='" . $rmemail . "'" : '';
  1291. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $email . "' AND is_deleted='0' AND status='1' " . $mcond . ")";
  1292. break;
  1293. case '14': //Dealer
  1294. $user_cond = " AND e.dealer_code ='" . $parent->current_user_data->dealer_code . "' ";
  1295. break;
  1296. // case '9': break;
  1297. // case '10': break;
  1298. // case '11': break;
  1299. // case '12': break;
  1300. // case '13': break;
  1301. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  1302. break;
  1303. }
  1304. $dealer_code = escape_str($parent->_request["dealer_code"]);
  1305. $user_cond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND e.dealer_code='" . $dealer_code . "'" : '';
  1306. $is_history = (isset($parent->_request["is_history"]) && $parent->_request["is_history"] == 1) ? "1" : "0";
  1307. if ($is_history == 0) {
  1308. $user_cond .= " AND e.is_current='1' AND e.status=1 ";
  1309. } else {
  1310. $user_cond .= " AND e.status=1 ";
  1311. }
  1312. //u.status='1' AND
  1313. //$user_target_str = "SELECT COALESCE(SUM(t.target),0) as user_target FROM ".TABLE_USER." u JOIN ".DMS_EMPLOYEE." e ON u.smpin=e.smpin JOIN ".TABLE_USER_SALETARGET." as t ON u.smpin=t.smpin WHERE u.is_deleted='0' AND t.sale_month>='".date('Y-m-d',strtotime($year."-".$month."-01"))."' AND t.sale_month<='".date('Y-m-t',strtotime($year."-".$month."-01"))."' ".$user_cond;
  1314. $user_target_str = "SELECT COALESCE(SUM(t.target),0) as user_target FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER_SALETARGET . " as t ON e.smpin=t.smpin WHERE t.sale_month>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND t.sale_month<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' " . $user_cond;
  1315. $user_target_arr = $parent->getQueryValue($user_target_str);
  1316. $target = (count($user_target_arr) > 0) ? $user_target_arr[0]->user_target : '0';
  1317. //u.status='1' AND
  1318. //$user_achieve_str = "SELECT COALESCE(SUM(s.sales_count),0) as user_achieve FROM ".TABLE_USER." u JOIN ".DMS_EMPLOYEE." e ON u.smpin=e.smpin JOIN ".DMS_EMPLOYEE_SALES." as s ON u.smpin=s.smpin WHERE u.is_deleted='0' AND s.sale_date>='".date('Y-m-d',strtotime($year."-".$month."-01"))."' AND s.sale_date<='".date('Y-m-t',strtotime($year."-".$month."-01"))."' ".$user_cond;
  1319. $user_achieve_str = "SELECT COALESCE(SUM(s.sales_count),0) as user_achieve FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . DMS_EMPLOYEE_SALES . " as s ON e.smpin=s.smpin WHERE s.sale_date>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND s.sale_date<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' " . $user_cond;
  1320. $user_achieve_arr = $parent->getQueryValue($user_achieve_str);
  1321. $achieved = (count($user_achieve_arr) > 0) ? $user_achieve_arr[0]->user_achieve : '0';
  1322. $sales_arr = array('target' => $target, 'achieved' => $achieved, 'month' => date('M', strtotime('2018-' . $month . "-01")), 'year' => $year);
  1323. return (array) $sales_arr;
  1324. }
  1325. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1326. /* /////////////////////////////////// AREA MANAGER SALES DASHBOARD /////////////////////////////////// */
  1327. public static function managersalesEnquiryDashboard($parent, $role, $year, $month, $email)
  1328. {
  1329. $user_cond = "";
  1330. switch ($role) {
  1331. case '3': //HO Manager
  1332. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE is_deleted='0' AND status='1')";
  1333. break;
  1334. case '4': //Zonal Manager
  1335. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $email . "' AND is_deleted='0' AND status='1')";
  1336. break;
  1337. case '5': //Trainer
  1338. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $email . "' LIMIT 1";
  1339. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1340. $zone_cond = (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  1341. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND is_deleted='0' AND status='1')";
  1342. break;
  1343. case '6': //Regional Manager
  1344. $mcond = '';
  1345. if ($parent->current_user_role == '5') {
  1346. $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1";
  1347. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1348. $manager_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  1349. } else {
  1350. $zmemail = escape_str($parent->_request["zmemail"]);
  1351. $mcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : '';
  1352. }
  1353. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $email . "' AND is_deleted='0' AND status='1' " . $mcond . ")";
  1354. break;
  1355. case '7': //Area Manager
  1356. $mcond = '';
  1357. if ($parent->current_user_role != '5') {
  1358. $zmemail = escape_str($parent->_request["zmemail"]);
  1359. $mcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : '';
  1360. }
  1361. $rmemail = escape_str($parent->_request["rmemail"]);
  1362. $mcond .= ($rmemail != 'all' && $rmemail != '') ? " AND rm_email='" . $rmemail . "'" : '';
  1363. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $email . "' AND is_deleted='0' AND status='1' " . $mcond . ")";
  1364. break;
  1365. case '14': //Dealer
  1366. $user_cond = " AND e.dealer_code ='" . $parent->current_user_data->dealer_code . "' ";
  1367. break;
  1368. // case '9': break;
  1369. // case '10': break;
  1370. // case '11': break;
  1371. // case '12': break;
  1372. // case '13': break;
  1373. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  1374. break;
  1375. }
  1376. $dealer_code = escape_str($parent->_request["dealer_code"]);
  1377. $user_cond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND e.dealer_code='" . $dealer_code . "'" : '';
  1378. $user_cond .= " AND e.is_current='1' AND e.status=1 AND u.status='1' AND u.is_deleted = 0 ";
  1379. $user_target_str = "SELECT COALESCE(SUM(t.target),0) as user_target FROM " . DMS_EMPLOYEE . " e JOIN " . TABLE_USER . " u ON e.smpin=u.smpin LEFT JOIN " . TABLE_USER_SALETARGET . " as t ON e.smpin=t.smpin WHERE t.sale_month>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND t.sale_month<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' " . $user_cond;
  1380. $user_target_arr = $parent->getQueryValue($user_target_str);
  1381. $target = (count($user_target_arr) > 0) ? $user_target_arr[0]->user_target : '0';
  1382. $user_achieve_str = "SELECT COALESCE(SUM(s.sales_count),0) as user_achieve FROM " . DMS_EMPLOYEE . " e JOIN " . TABLE_USER . " u ON e.smpin=u.smpin LEFT JOIN " . DMS_EMPLOYEE_SALES . " as s ON e.smpin=s.smpin WHERE s.sale_date>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND s.sale_date<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' " . $user_cond;
  1383. $user_achieve_arr = $parent->getQueryValue($user_achieve_str);
  1384. $achieved = (count($user_achieve_arr) > 0) ? $user_achieve_arr[0]->user_achieve : '0';
  1385. $sales_arr = array('target' => $target, 'achieved' => $achieved, 'month' => date('M', strtotime('2018-' . $month . "-01")), 'year' => $year);
  1386. return (array) $sales_arr;
  1387. }
  1388. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1389. /* /////////////////////////////////// MANAGER ENQUIRY TARGET DASHBOARD /////////////////////////////////// */
  1390. public static function managerEnquiryTarget($parent, $role, $year, $month, $email)
  1391. {
  1392. $user_cond = "";
  1393. switch ($role) {
  1394. case '3': //HO Manager
  1395. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE is_deleted='0' AND status='1')";
  1396. break;
  1397. case '4': //Zonal Manager
  1398. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE zm_email='" . $email . "' AND is_deleted='0' AND status='1')";
  1399. break;
  1400. case '5': //Trainer
  1401. $get_trainer_str = "SELECT h.* FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.emailid='" . $email . "' LIMIT 1";
  1402. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1403. $zone_cond = (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  1404. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE " . $zone_cond . " AND is_deleted='0' AND status='1')";
  1405. break;
  1406. case '6': //Regional Manager
  1407. $mcond = '';
  1408. if ($parent->current_user_role == '5') {
  1409. $get_trainer_str = "SELECT h.zone FROM " . DMS_HOUSER . " h JOIN " . TABLE_USER . " u ON u.emp_code=h.emp_code WHERE u.userid='" . $parent->current_user_id . "' AND u.role='5' LIMIT 1";
  1410. $trainer_arr = $parent->getQueryValue($get_trainer_str);
  1411. $manager_cond .= (count($trainer_arr) > 0) ? " zone='" . $trainer_arr[0]->zone . "'" : " zone='0'";
  1412. } else {
  1413. $zmemail = escape_str($parent->_request["zmemail"]);
  1414. $mcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : '';
  1415. }
  1416. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE rm_email='" . $email . "' AND is_deleted='0' AND status='1' " . $mcond . ")";
  1417. break;
  1418. case '7': //Area Manager
  1419. $mcond = '';
  1420. if ($parent->current_user_role != '5') {
  1421. $zmemail = escape_str($parent->_request["zmemail"]);
  1422. $mcond = ($zmemail != 'all' && $zmemail != '') ? " AND zm_email='" . $zmemail . "'" : '';
  1423. }
  1424. $rmemail = escape_str($parent->_request["rmemail"]);
  1425. $mcond .= ($rmemail != 'all' && $rmemail != '') ? " AND rm_email='" . $rmemail . "'" : '';
  1426. $user_cond = " AND e.dealer_code IN (SELECT dealer_code FROM " . DMS_DEALER . " WHERE am_email='" . $email . "' AND is_deleted='0' AND status='1' " . $mcond . ")";
  1427. break;
  1428. case '14': //Dealer
  1429. $user_cond = " AND e.dealer_code ='" . $parent->current_user_data->dealer_code . "' ";
  1430. break;
  1431. // case '9': break;
  1432. // case '10': break;
  1433. // case '11': break;
  1434. // case '12': break;
  1435. // case '13': break;
  1436. default:$parent->response(array('response' => 'failed', 'message' => 'Sorry No access'), 401);
  1437. break;
  1438. }
  1439. $dealer_code = escape_str($parent->_request["dealer_code"]);
  1440. $user_cond .= ($dealer_code != 'all' && $dealer_code != '') ? " AND e.dealer_code='" . $dealer_code . "'" : '';
  1441. $user_cond .= " AND e.is_current='1' AND e.status=1 AND u.status='1' AND u.is_deleted = 0";
  1442. $user_target_str = "SELECT COALESCE(SUM(t.target),0) as user_target FROM " . DMS_EMPLOYEE . " e JOIN " . TABLE_USER . " u ON e.smpin=u.smpin LEFT JOIN " . TABLE_USER_SALETARGET . " as t ON e.smpin=t.smpin WHERE t.sale_month>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND t.sale_month<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' AND e.segment=1 " . $user_cond;
  1443. $user_target_arr = $parent->getQueryValue($user_target_str);
  1444. $mtarget = (count($user_target_arr) > 0) ? $user_target_arr[0]->user_target : '0';
  1445. $user_target_str = "SELECT COALESCE(SUM(t.target),0) as user_target FROM " . DMS_EMPLOYEE . " e JOIN " . TABLE_USER . " u ON e.smpin=u.smpin LEFT JOIN " . TABLE_USER_SALETARGET . " as t ON e.smpin=t.smpin WHERE t.sale_month>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND t.sale_month<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' AND e.segment=2 " . $user_cond;
  1446. $user_target_arr = $parent->getQueryValue($user_target_str);
  1447. $starget = (count($user_target_arr) > 0) ? $user_target_arr[0]->user_target : '0';
  1448. $user_target_str = "SELECT COALESCE(SUM(t.target),0) as user_target FROM " . DMS_EMPLOYEE . " e LEFT JOIN " . TABLE_USER_SALETARGET . " as t ON e.smpin=t.smpin JOIN " . TABLE_USER . " u ON e.smpin=u.smpin WHERE t.sale_month>='" . date('Y-m-d', strtotime($year . "-" . $month . "-01")) . "' AND t.sale_month<='" . date('Y-m-t', strtotime($year . "-" . $month . "-01")) . "' AND e.segment=0 " . $user_cond;
  1449. $user_target_arr = $parent->getQueryValue($user_target_str);
  1450. $otarget = (count($user_target_arr) > 0) ? $user_target_arr[0]->user_target : '0';
  1451. $target = ($mtarget * 5) + ($starget * 3) + ($otarget * 3);
  1452. $sales_arr = array('target' => $target, 'month' => date('M', strtotime('2018-' . $month . "-01")), 'year' => $year);
  1453. return (array) $sales_arr;
  1454. }
  1455. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1456. /* /////////////////////////////////// CHECK VALID REEDEM /////////////////////////////////// */
  1457. public static function checkValidReedem($parent, $userid = 0)
  1458. {
  1459. $ret = false;
  1460. if ($userid == 0 && $parent->current_user_id) {
  1461. $userid = $parent->current_user_id;
  1462. }
  1463. $user_str = "SELECT u.userid,u.smpin,e.points FROM " . TABLE_USER . " as u JOIN " . TABLE_USER_EPOINTS . " e ON e.smpin=u.smpin WHERE u.userid='" . $userid . "' AND u.is_deleted=0 AND u.role>7 LIMIT 1";
  1464. $user_arr = $parent->getQueryValue($user_str);
  1465. if (count($user_arr) > 0) {
  1466. $smpin = $user_arr[0]->smpin;
  1467. $userid = $user_arr[0]->userid;
  1468. $data['setting'] = 'REDEEM';
  1469. $data = globalfunc::getSiteSetting($parent, $data);
  1470. $min_redeem_point = $data->REDEEM_MIN_VALUE;
  1471. if ($user_arr[0]->points >= $min_redeem_point) {
  1472. //NEW LEVEL BASED
  1473. //$query_learn=$parent->selectQuery(TABLE_USER_LEARNING,"smpin,lvl_id","smpin='".$smpin."' AND (status=3 OR (lvl_id IN(3,4) AND status NOT IN(4,6))) ORDER by lvl_id DESC","1");
  1474. $query_learn = $parent->selectQuery(TABLE_USER_LEARNING, "smpin,lvl_id", "smpin='" . $smpin . "' AND status=3 ORDER by lvl_id DESC", "1");
  1475. if ($query_learn['nr'] > 0) {
  1476. $ret = true;
  1477. }
  1478. }
  1479. }
  1480. return $ret;
  1481. }
  1482. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1483. /* /////////////////////////////////// GENERATE WOOHOO COMMON TOKEN /////////////////////////////////// */
  1484. public static function generateWoohoo($parent)
  1485. {
  1486. // $consumerKey = WOOHOO_CONSUMERKEY; // eg : 797987988989798798797
  1487. // $consumerSecret = WOOHOO_CONSUMERSECRET; // eg : 898980980980909890090
  1488. // $username = WOOHOO_USERNAME; // client@client.com
  1489. // $password = WOOHOO_PASSWORD; //clientpassword
  1490. // //Oauth url's
  1491. // $temporaryCredentialsRequestUrl = WOOHOO_TEMPCREDENTIALSREQUESTURL; //request token url
  1492. // $authorizationUrl = WOOHOO_AUTHORIZATIONURL; //authorize url
  1493. // $accessTokenRequestUrl = WOOHOO_ACCESSTOKENREQUESTURL; //access token url
  1494. // try {
  1495. // $data['setting'] = 'REDEEM';
  1496. // $redeem_set = globalfunc::getSiteSetting($parent, $data);
  1497. // if (isset($redeem_set->WOOHOO_OAUTH2_CODE) && isset($redeem_set->WOOHOO_OAUTH2_TOKEN) && isset($redeem_set->WOOHOO_TOKEN_EXPIRY) && strtotime($redeem_set->WOOHOO_TOKEN_EXPIRY) > strtotime(NOW)) {
  1498. // $exipry_time = globalfunc::generateExpiryTime($parent, "1440");
  1499. // $token_secret_data_arr = $parent->selectQuery(TABLE_SITE_SETTING, "*", "setting_type='REDEEM' AND setting_title='WOOHOO_TOKEN_EXPIRY' AND is_active='1' ", "1");
  1500. // if ($token_secret_data_arr['nr']) {
  1501. // //$parent->executeQuery(" UPDATE " . TABLE_SITE_SETTING . " SET value='" . $exipry_time . "' WHERE id='" . $token_secret_arr['result'][0]->id . "' ");
  1502. // } else {
  1503. // $parent->executeQuery(" INSERT INTO " . TABLE_SITE_SETTING . " (`setting_type`, `setting_title`, `value`, `is_active`, `created_on`, `modified_on`) VALUES ('REDEEM','WOOHOO_TOKEN_EXPIRY','" . $exipry_time . "','1','" . NOW . "','" . NOW . "')");
  1504. // }
  1505. // } else {
  1506. // //OATH2 CODE GENERATE
  1507. // $ch = curl_init();
  1508. // $url = WOOHOO_AUTHORIZATION_CODE_URL;
  1509. // $post = array('clientId' => WOOHOO_CONSUMERKEY, 'username' => WOOHOO_USERNAME, 'password' => WOOHOO_PASSWORD);
  1510. // $header = array("Content-Type: application/json");
  1511. // $options = array(CURLOPT_POST => 1, CURLOPT_POSTFIELDS => json_encode($post), CURLOPT_HTTPHEADER => $header, CURLOPT_URL => $url, CURLOPT_CONNECTTIMEOUT => 60, CURLOPT_TIMEOUT => 20, CURLOPT_RETURNTRANSFER => true);
  1512. // curl_setopt_array($ch, $options);
  1513. // $response = curl_exec($ch);
  1514. // $verifierResponse = json_decode($response);
  1515. // $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
  1516. // curl_close($ch);
  1517. // if (isset($verifierResponse->authorizationCode) && $verifierResponse->authorizationCode != '') {
  1518. // //OAUTH2 CODE
  1519. // $authorizationCode = $verifierResponse->authorizationCode;
  1520. // $oauth_token_arr = $parent->selectQuery(TABLE_SITE_SETTING, "*", "setting_type='REDEEM' AND setting_title='WOOHOO_OAUTH2_CODE' AND is_active='1' ", "1");
  1521. // if ($oauth_token_arr['nr']) {
  1522. // $parent->executeQuery(" UPDATE " . TABLE_SITE_SETTING . " SET value='" . $authorizationCode . "' WHERE id='" . $oauth_token_arr['result'][0]->id . "' ");
  1523. // } else {
  1524. // $parent->executeQuery(" INSERT INTO " . TABLE_SITE_SETTING . " (`setting_type`, `setting_title`, `value`, `is_active`, `created_on`, `modified_on`) VALUES ('REDEEM','WOOHOO_OAUTH2_CODE','" . $authorizationCode . "','1','" . NOW . "','" . NOW . "')");
  1525. // }
  1526. // $nch = curl_init();
  1527. // $url = WOOHOO_AUTHORIZATION_TOKEN_URL;
  1528. // $post = array('clientId' => WOOHOO_CONSUMERKEY, 'clientSecret' => WOOHOO_CONSUMERSECRET, 'authorizationCode' => $authorizationCode);
  1529. // $header = array("Content-Type: application/json");
  1530. // $options = array(CURLOPT_POST => 1, CURLOPT_POSTFIELDS => json_encode($post), CURLOPT_HTTPHEADER => $header, CURLOPT_URL => $url, CURLOPT_CONNECTTIMEOUT => 60, CURLOPT_TIMEOUT => 20, CURLOPT_RETURNTRANSFER => true);
  1531. // curl_setopt_array($nch, $options);
  1532. // $response = curl_exec($nch);
  1533. // $res_arr = json_decode($response);
  1534. // //print_r($res_arr);
  1535. // $httpcode = curl_getinfo($nch, CURLINFO_HTTP_CODE);
  1536. // curl_close($nch);
  1537. // if (isset($res_arr->token) && $res_arr->token != '') {
  1538. // //OAUTH2 TOKEN
  1539. // $oauth2_token = $res_arr->token;
  1540. // $oauth_token_arr = $parent->selectQuery(TABLE_SITE_SETTING, "*", "setting_type='REDEEM' AND setting_title='WOOHOO_OAUTH2_TOKEN' AND is_active='1' ", "1");
  1541. // if ($oauth_token_arr['nr']) {
  1542. // $parent->executeQuery(" UPDATE " . TABLE_SITE_SETTING . " SET value='" . $oauth2_token . "' WHERE id='" . $oauth_token_arr['result'][0]->id . "' ");
  1543. // } else {
  1544. // $parent->executeQuery(" INSERT INTO " . TABLE_SITE_SETTING . " (`setting_type`, `setting_title`, `value`, `is_active`, `created_on`, `modified_on`) VALUES ('REDEEM','WOOHOO_OAUTH2_TOKEN','" . $oauth2_token . "','1','" . NOW . "','" . NOW . "')");
  1545. // }
  1546. // } else {
  1547. // $parent->response(array('response' => 'failed', 'message' => 'Sorry, a server error occurred. Please wait a bit and try again'), 406);
  1548. // }
  1549. // //WOOHOO_TOKEN_EXPIRY
  1550. // $exipry_time = globalfunc::generateExpiryTime($parent, "1440");
  1551. // $expiry_data_arr = $parent->selectQuery(TABLE_SITE_SETTING, "*", "setting_type='REDEEM' AND setting_title='WOOHOO_TOKEN_EXPIRY' AND is_active='1' ", "1");
  1552. // if ($expiry_data_arr['nr']) {
  1553. // $parent->executeQuery(" UPDATE " . TABLE_SITE_SETTING . " SET value='" . $exipry_time . "' WHERE id='" . $expiry_data_arr['result'][0]->id . "' ");
  1554. // } else {
  1555. // $parent->executeQuery("INSERT INTO " . TABLE_SITE_SETTING . " (`setting_type`, `setting_title`, `value`, `is_active`, `created_on`, `modified_on`) VALUES ('REDEEM','WOOHOO_TOKEN_EXPIRY','" . $exipry_time . "','1','" . NOW . "','" . NOW . "')");
  1556. // }
  1557. // return true;
  1558. // } else {
  1559. // $parent->response(array('response' => 'failed', 'message' => 'SERVER ERROR call'), 500);
  1560. // }
  1561. // }
  1562. // } catch (Exception $e) {
  1563. // // print_r($e->getMessage());
  1564. // //print_r($e->lastResponse);
  1565. // $parent->response(array('response' => 'failed', 'message' => 'SERVER ERROR ' . $e->getMessage()), 500);
  1566. // }
  1567. // //once the access tokens and access tokens secret are generated using them with the consumerKey and consumerSecret
  1568. // //api calls can be made
  1569. }
  1570. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1571. /* /////////////////////////////////// USER EPOINT AND WALLET CREATE /////////////////////////////////// */
  1572. public static function userTableCreate($parent, $smpin)
  1573. {
  1574. if (isset($smpin) && $smpin) {
  1575. //CHECK TABLE_USER_EPOINTS EXIST
  1576. $query_user_points = $parent->selectQuery(TABLE_USER_EPOINTS, "*", "smpin='" . $smpin . "'", "1");
  1577. if (!($query_user_points['nr'] > 0)) {
  1578. $insert_points_str = "INSERT INTO " . TABLE_USER_EPOINTS . "(`smpin`, `points`, `created_on`, `modified_on`) VALUES ('" . $smpin . "','0','" . NOW . "','" . NOW . "')";
  1579. $parent->executeQuery($insert_points_str);
  1580. }
  1581. //CHECK TABLE_USER_WALLET EXIST
  1582. $query_wallet_arr = $parent->selectQuery(TABLE_USER_WALLET, "*", "smpin='" . $smpin . "'", "1");
  1583. if (!($query_wallet_arr['nr'] > 0)) {
  1584. $insert_wallet_str = "INSERT INTO " . TABLE_USER_WALLET . "(`smpin`, `amount`, `created_on`, `modified_on`) VALUES ('" . $smpin . "','0','" . NOW . "','" . NOW . "')";
  1585. $parent->executeQuery($insert_wallet_str);
  1586. }
  1587. } else {
  1588. self::callErrorMsg($parent, array('message' => 'projectfunctions(userTableCreate):REQUIRED smpin'));
  1589. }
  1590. }
  1591. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1592. /* /////////////////////////////////// USER WALLET AMOUNT /////////////////////////////////// */
  1593. public static function userWalletamount($parent, $smpin)
  1594. {
  1595. if (isset($smpin) && $smpin) {
  1596. $wallet_amount = '0';
  1597. $user_str = "SELECT amount FROM " . TABLE_USER_WALLET . " WHERE smpin='" . $smpin . "' LIMIT 1";
  1598. $user_arr = $parent->getQueryValue($user_str);
  1599. if (count($user_arr) > 0) {
  1600. $wallet_amount = $user_arr[0]->amount;
  1601. }
  1602. return $wallet_amount;
  1603. } else {
  1604. self::callErrorMsg($parent, array('message' => 'projectfunctions(userWalletamount):REQUIRED smpin'));
  1605. }
  1606. }
  1607. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1608. /* /////////////////////////////// USER ADD WALLET //////////////////////////////////////////////// */
  1609. public static function userAddWallet($parent, $obj, $userid = 0)
  1610. {
  1611. if ($userid == 0 && $parent->current_user_id) {
  1612. if ($parent->current_user_id) {
  1613. $userid = $parent->current_user_id;
  1614. $smpin = $parent->current_smpin;
  1615. } else {
  1616. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddWallet):REQUIRED userid'));
  1617. }
  1618. } else {
  1619. $user_str = "SELECT * FROM " . TABLE_USER . " WHERE userid='" . $userid . "' AND is_deleted=0 LIMIT 1";
  1620. $user_arr = $parent->getQueryValue($user_str);
  1621. if (count($user_arr) > 0) {
  1622. $smpin = $user_arr[0]->smpin;
  1623. } else {
  1624. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddWallet):REQUIRED USER NOT FOUND'));
  1625. }
  1626. }
  1627. if (!isset($obj->type)) {
  1628. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddWallet):REQUIRED obj->type'));
  1629. }
  1630. if (!isset($obj->type_id)) {
  1631. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddWallet):REQUIRED obj->type_id'));
  1632. }
  1633. if (!isset($obj->amount)) {
  1634. self::callErrorMsg($parent, array('message' => 'projectfunctions(userAddWallet):REQUIRED obj->amount'));
  1635. }
  1636. $obj->description = (isset($obj->description)) ? $obj->description : "";
  1637. //NEED TO CHECK AMOUNT ALREADY ADDED
  1638. $amount_str = "SELECT * FROM " . TABLE_USER_WALLET_HISTORY . " WHERE smpin='" . $smpin . "' AND type='" . $obj->type . "' AND type_id='" . $obj->type_id . "' AND transaction_type='C'";
  1639. $amount_arr = $parent->getQueryValue($amount_str);
  1640. if (count($amount_arr) > 0) {
  1641. //AMOUNT ALREADY ADDED
  1642. } else {
  1643. $lvl_points = (isset($obj->lvl_points)) ? $obj->lvl_points : 0;
  1644. $parent->executeQuery("INSERT INTO " . TABLE_USER_WALLET_HISTORY . "( `smpin`, `type`, `type_id`, `description`, `lvl_points`, `amount`, `transaction_type`, `created_on`, `modified_on`) VALUES ('" . $smpin . "','" . $obj->type . "','" . $obj->type_id . "','" . $obj->description . "','" . $lvl_points . "','" . $obj->amount . "' ,'C','" . NOW . "','" . NOW . "')");
  1645. //UPDATE POINT IN USER
  1646. $parent->executeQuery("UPDATE " . TABLE_USER_WALLET . " SET amount=amount+" . $obj->amount . " WHERE smpin='" . $smpin . "' ");
  1647. }
  1648. }
  1649. /* //////////////////////////////////////////////////////////////////////////////////////////// */
  1650. /* /////////////////////////////// SEND USER NOTIFICATION //////////////////////////////////////////////// */
  1651. public static function sendUserNotification($parent, $obj, $userid = 0)
  1652. {
  1653. // if ($userid == 0) {
  1654. // if ($parent->current_user_id) {
  1655. // $userid = $parent->current_user_id;
  1656. // } else {
  1657. // self::callErrorMsg($parent, array('message' => 'projectfunctions(sendUserNotification):REQUIRED userid'));
  1658. // }
  1659. // }
  1660. // if (!isset($obj)) {
  1661. // self::callErrorMsg($parent, array('message' => 'projectfunctions(sendUserNotification):REQUIRED obj'));
  1662. // }
  1663. // $key_arr = array('notificationtitle', 'notificationtext', 'notificationtype', 'notificationdata');
  1664. // foreach ($key_arr as $val) {
  1665. // if (!isset($obj->$val)) {
  1666. // self::callErrorMsg($parent, array('message' => 'projectfunctions(sendUserNotification):REQUIRED ' . $val));
  1667. // }
  1668. // }
  1669. // $notificationtitle = $obj->notificationtitle;
  1670. // $notificationtext = $obj->notificationtext;
  1671. // $notificationtype = $obj->notificationtype;
  1672. // $notificationdata = json_encode($obj->notificationdata);
  1673. // //INSERT NOTIFICATION
  1674. // $parent->executeQuery("INSERT INTO `" . TABLE_NOTIFICATION . "` ( `notificationtitle`, `notificationtext`, `notificationdata`, `notificationtype`, `status`, `publisheddate`, `created_on`, `modified_on`) VALUES ('" . escape_str($notificationtitle) . "','" . escape_str($notificationtext) . "','" . $notificationdata . "','" . $notificationtype . "', '1','" . NOW . "','" . NOW . "','" . NOW . "')");
  1675. // $notificationid = $parent->lastInsertId();
  1676. // $data = array('notification_id' => $notificationid, 'title' => $notificationtitle, 'message' => $notificationtext, 'notificationtype' => $notificationtype, 'notificationdata' => $notificationdata, 'created_date' => NOW);
  1677. // $user_id_arr = array();
  1678. // $ins_arr = array();
  1679. // $parent->executeQuery("INSERT INTO " . TABLE_NOTIFICATION_USER . "(`notificationid`, `userid`, `status`, `created_on`) VALUES ('" . $notificationid . "','" . $userid . "', '0', '" . NOW . "')");
  1680. // $usertokenarr['ios'] = array();
  1681. // $usertokenarr['android'] = array();
  1682. // //GET DEVICE DETAILS
  1683. // $user_device_str = "SELECT ud.devicetype,ud.token FROM `" . TABLE_USER_DEVICES . "` as ud JOIN (SELECT userid FROM " . TABLE_USER . " WHERE userid='" . $userid . "' AND status='1' AND is_deleted='0' ) as u ON ud.userid=u.userid WHERE ud.is_deleted='0' AND (devicetype='ios' OR devicetype='android') AND token!=''";
  1684. // $user_device_arr = $parent->getQueryValue($user_device_str);
  1685. // if (count($user_device_arr) > 0) {
  1686. // foreach ($user_device_arr as $res_dev) {
  1687. // //print_r($user_device_arr);
  1688. // if (strtolower($res_dev->devicetype) == 'ios') {
  1689. // $usertokenarr['ios'][] = $res_dev->token;
  1690. // } else if (strtolower($res_dev->devicetype) == 'android') {
  1691. // $usertokenarr['android'][] = $res_dev->token;
  1692. // }
  1693. // }
  1694. // globalfunc::sendUserNotification($data, $usertokenarr);
  1695. // }
  1696. }
  1697. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1698. /* /////////////////////////////////// USER UNAPPROVED AMOUNT /////////////////////////////////// */
  1699. public static function userUnapprovedamount($parent, $smpin)
  1700. {
  1701. if (isset($smpin) && $smpin) {
  1702. $tot_amount = '0';
  1703. $user_str = "SELECT SUM(amount) as tot_amount FROM " . TABLE_USER_WALLET_APPROVE . " WHERE smpin='" . $smpin . "' AND is_approved=0 LIMIT 1";
  1704. $user_arr = $parent->getQueryValue($user_str);
  1705. if (count($user_arr) > 0) {
  1706. $tot_amount = ($user_arr[0]->tot_amount) ? $user_arr[0]->tot_amount : 0;
  1707. }
  1708. return $tot_amount;
  1709. } else {
  1710. self::callErrorMsg($parent, array('message' => 'projectfunctions(userUnapprovedamount):REQUIRED smpin'));
  1711. }
  1712. }
  1713. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1714. /* /////////////////////////////////// USER UNAPPROVED AMOUNT /////////////////////////////////// */
  1715. public static function setSaleEditpermisson($parent, $smpin, $date)
  1716. {
  1717. $is_edit = 0;
  1718. if (isset($smpin) && $smpin != '' && isset($date) && $date != '') {
  1719. if (date('Y-m', strtotime(CUR_DATE)) == date('Y-m', strtotime($date))) //CURRENT MONTH CHECK
  1720. {
  1721. $dealer_submitted = 0;
  1722. $am_submitted = 0;
  1723. //DEALER CONDITION
  1724. if ($parent->current_user_role == '14') {
  1725. $def_edit_date = date('Y-m', strtotime($date)) . "-" . DEALER_SETSALE_DATE;
  1726. $check_dealer_str = "SELECT * FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE smpin='" . $smpin . "' AND roleid=14 AND sale_month='" . date('Y-m', strtotime(CUR_DATE)) . "-01' LIMIT 1";
  1727. $check_dealer_arr = $parent->getQueryValue($check_dealer_str);
  1728. $dealer_submitted = (count($check_dealer_arr) > 0) ? 1 : 0;
  1729. if ((strtotime(CUR_DATE) > strtotime($def_edit_date)) || $dealer_submitted == '1') {
  1730. $check_query_str = "SELECT * FROM " . TABLE_USER_SALESTARGET_SET . " WHERE emp_code='" . $parent->current_user_data->emp_code . "' AND edit_date>='" . CUR_DATE . "' AND roleid='" . $parent->current_user_role . "' AND (smpin='" . $smpin . "' OR smpin='') LIMIT 1";
  1731. $check_arr = $parent->getQueryValue($check_query_str);
  1732. $is_edit = (count($check_arr) > 0) ? 1 : 0;
  1733. } else {
  1734. $is_edit = 1;
  1735. }
  1736. } else if ($parent->current_user_role == '7') {
  1737. $def_start_date = date('Y-m', strtotime($date)) . "-" . DEALER_SETSALE_DATE;
  1738. $def_edit_date = date('Y-m', strtotime($date)) . "-" . AM_SETSALE_DATE;
  1739. $check_dealer_str = "SELECT * FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE smpin='" . $smpin . "' AND roleid=14 AND sale_month='" . date('Y-m', strtotime(CUR_DATE)) . "-01' LIMIT 1";
  1740. $check_dealer_arr = $parent->getQueryValue($check_dealer_str);
  1741. $dealer_submitted = (count($check_dealer_arr) > 0) ? 1 : 0;
  1742. if (strtotime(CUR_DATE) > strtotime("2020-03-07")) //NEW REQUEST BY
  1743. {
  1744. $check_am_str = "SELECT * FROM " . TABLE_USER_SALESTARGET_STATUS . " WHERE smpin='" . $smpin . "' AND roleid=7 AND sale_month='" . date('Y-m', strtotime(CUR_DATE)) . "-01' LIMIT 1";
  1745. $check_am_arr = $parent->getQueryValue($check_am_str);
  1746. $am_submitted = (count($check_am_arr) > 0) ? 1 : 0;
  1747. } else {
  1748. $am_submitted = 0;
  1749. }
  1750. if ((strtotime(CUR_DATE) > strtotime($def_edit_date)) || $am_submitted == '1') {
  1751. $check_query_str = "SELECT * FROM " . TABLE_USER_SALESTARGET_SET . " WHERE emp_code='" . $parent->current_user_data->emp_code . "' AND edit_date>='" . CUR_DATE . "' AND roleid='" . $parent->current_user_role . "' AND (smpin='" . $smpin . "' OR smpin='') LIMIT 1";
  1752. $check_arr = $parent->getQueryValue($check_query_str);
  1753. $is_edit = (count($check_arr) > 0) ? 1 : 0;
  1754. } else {
  1755. $is_edit = ((strtotime(CUR_DATE) > strtotime($def_start_date)) || $dealer_submitted == 1) ? 1 : 0;
  1756. }
  1757. }
  1758. }
  1759. return $is_edit;
  1760. } else {
  1761. self::callErrorMsg($parent, array('message' => 'projectfunctions(setSaleEditpermisson):REQUIRED smpin'));
  1762. }
  1763. }
  1764. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1765. /* /////////////////////////////////// USER UNAPPROVED AMOUNT /////////////////////////////////// */
  1766. public static function cronLog($parent, $obj)
  1767. {
  1768. $type = isset($obj->type) ? $obj->type : '';
  1769. $insert_count = isset($obj->insert_count) ? $obj->insert_count : '';
  1770. $update_count = isset($obj->update_count) ? $obj->update_count : '';
  1771. $status = isset($obj->status) ? $obj->status : '0';
  1772. $apirequest = isset($obj->apirequest) ? $obj->apirequest : '';
  1773. $parent->executeQuery("INSERT INTO " . DMS_CRON_LOG . " (`type`, `insert_count`, `update_count`,apirequest, `status`, `userid`, `created_on`) VALUES ('" . escape_str($type) . "', '" . escape_str($insert_count) . "', '" . escape_str($update_count) . "','" . escape_str($apirequest) . "', '" . escape_str($status) . "','" . $parent->current_user_id . "', '" . NOW . "')");
  1774. return $parent->lastInsertId();
  1775. }
  1776. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1777. /* /////////////////////////////////// CRON /////////////////////////////////// */
  1778. public static function updateCronLog($parent, $obj)
  1779. {
  1780. $id = isset($obj->id) ? $obj->id : '';
  1781. if ($id) {
  1782. $update_arr = array();
  1783. $apiresponse = isset($obj->apiresponse) ? $obj->apiresponse : '';
  1784. if ($apiresponse) {
  1785. $update_arr[] = " apiresponse='" . escape_str($apiresponse) . "'";
  1786. }
  1787. $insert_count = isset($obj->insert_count) ? $obj->insert_count : '';
  1788. if ($insert_count) {
  1789. $update_arr[] = " insert_count='" . escape_str($insert_count) . "'";
  1790. }
  1791. $update_count = isset($obj->update_count) ? $obj->update_count : '';
  1792. if ($update_count) {
  1793. $update_arr[] = " update_count='" . escape_str($update_count) . "'";
  1794. }
  1795. $status = isset($obj->status) ? $obj->status : '0';
  1796. if ($status) {
  1797. $update_arr[] = " status='" . escape_str($status) . "'";
  1798. }
  1799. if (count($update_arr) > 0) {
  1800. $update_str = @implode(",", $update_arr);
  1801. $parent->executeQuery("UPDATE " . DMS_CRON_LOG . " SET " . $update_str . " WHERE id='" . $id . "'");
  1802. }
  1803. }
  1804. }
  1805. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1806. /* /////////////////////////////////// MODEL IMAGE FOR ENQUIRY /////////////////////////////////// */
  1807. public static function modelimage($parent, $obj)
  1808. {
  1809. $model_image = NOIMAGE_URL;
  1810. if (isset($obj->model) && isset($obj->variant)) {
  1811. $append_url = SITE_URL . "explore_assets/model/" . strtolower($parent->device_type) . "/";
  1812. switch (strtoupper($obj->model)) {
  1813. case 'AC':
  1814. case 'ACZ': //ACCESS
  1815. $model_data = $parent->selectQuery(TABLE_COMPARE_MODEL, "model_id,model_image, CASE WHEN model_image!='' THEN CONCAT('" . $append_url . "',model_image) ELSE '" . NOIMAGE_URL . "' END AS 'model_image_url'", "model_id='" . ACCESS_ID . "' AND is_deleted=0 AND model_type=0", "1");
  1816. $model_image = ($model_data['nr'] > 0) ? $model_data['result'][0]->model_image_url : NOIMAGE_URL;
  1817. break;
  1818. case 'GL': //INTRUDER
  1819. $model_data = $parent->selectQuery(TABLE_COMPARE_MODEL, "model_id,model_image, CASE WHEN model_image!='' THEN CONCAT('" . $append_url . "',model_image) ELSE '" . NOIMAGE_URL . "' END AS 'model_image_url'", "model_id='" . INTRUDER_ID . "' AND is_deleted=0 AND model_type=0", "1");
  1820. $model_image = ($model_data['nr'] > 0) ? $model_data['result'][0]->model_image_url : NOIMAGE_URL;
  1821. break;
  1822. case 'GSX': //GIXXER & GIXXER 250
  1823. $id = (strpos(strtoupper($obj->variant), 'GSX250') !== false || strpos($obj->variantname, 'GIXXER 250') !== false) ? GIXXER_250_ID : GIXXER_ID;
  1824. $model_data = $parent->selectQuery(TABLE_COMPARE_MODEL, "model_id,model_image, CASE WHEN model_image!='' THEN CONCAT('" . $append_url . "',model_image) ELSE '" . NOIMAGE_URL . "' END AS 'model_image_url'", "model_id='" . $id . "' AND is_deleted=0 AND model_type=0", "1");
  1825. $model_image = ($model_data['nr'] > 0) ? $model_data['result'][0]->model_image_url : NOIMAGE_URL;
  1826. break;
  1827. case 'GSXSF': //GIXXER SF & GIXXER SF 250
  1828. $id = (strpos(strtoupper($obj->variant), 'GSXF250') !== false || strpos($obj->variantname, 'GIXXER SF 250') !== false) ? GIXXER_SF_250_ID : GIXXER_SF_ID;
  1829. $model_data = $parent->selectQuery(TABLE_COMPARE_MODEL, "model_id,model_image, CASE WHEN model_image!='' THEN CONCAT('" . $append_url . "',model_image) ELSE '" . NOIMAGE_URL . "' END AS 'model_image_url'", "model_id='" . $id . "' AND is_deleted=0 AND model_type=0", "1");
  1830. $model_image = ($model_data['nr'] > 0) ? $model_data['result'][0]->model_image_url : NOIMAGE_URL;
  1831. break;
  1832. case 'UB125': //BURGMAN
  1833. $model_data = $parent->selectQuery(TABLE_COMPARE_MODEL, "model_id,model_image, CASE WHEN model_image!='' THEN CONCAT('" . $append_url . "',model_image) ELSE '" . NOIMAGE_URL . "' END AS 'model_image_url'", "model_id='" . BURGMAN_ID . "' AND is_deleted=0 AND model_type=0", "1");
  1834. $model_image = ($model_data['nr'] > 0) ? $model_data['result'][0]->model_image_url : NOIMAGE_URL;
  1835. break;
  1836. }
  1837. }
  1838. return $model_image;
  1839. }
  1840. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1841. /* /////////////////////////////////// DATE DIFF TEXT ENQ /////////////////////////////////// */
  1842. public static function enqdatediff($parent, $from, $to)
  1843. {
  1844. //2 hrs overdue
  1845. //2 hrs to go
  1846. $diff = (strtotime($from) < strtotime($to)) ? 1 : 0;
  1847. $str = '';
  1848. $date1 = new DateTime($from);
  1849. $date2 = $date1->diff(new DateTime($to));
  1850. $year_diff = $date2->y;
  1851. $month_diff = $date2->m;
  1852. $day_diff = $date2->d;
  1853. $hour_diff = $date2->h;
  1854. $min_diff = $date2->i;
  1855. if ($year_diff > 0) {
  1856. $str .= ($year_diff > 1) ? $year_diff . ' yrs' : $year_diff . ' yr';
  1857. }
  1858. if ($month_diff > 0) {
  1859. $str .= ($str != '') ? " " : '';
  1860. $str .= ($month_diff > 1) ? $month_diff . ' months' : $month_diff . ' month';
  1861. }
  1862. if ($day_diff > 0) {
  1863. $str .= ($str != '') ? " " : '';
  1864. $str .= ($day_diff > 0) ? $day_diff . ' days' : $day_diff . ' day';
  1865. }
  1866. if ($hour_diff > 0) {
  1867. $str .= ($str != '') ? " " . $hour_diff : $hour_diff;
  1868. }
  1869. if ($min_diff > 0) {
  1870. //$str.=($str!='')?" ".$hour_diff .' hrs':$hour_diff .' hrs';
  1871. $str .= ($hour_diff > 0) ? " hr" : '';
  1872. $str .= ($hour_diff > 1) ? "s" : '';
  1873. $str .= ($str != '') ? " " : '';
  1874. if (!$hour_diff > 0) {
  1875. $str .= ($min_diff > 0) ? round($min_diff) . ' mins' : $min_diff . ' min';
  1876. }
  1877. }
  1878. $str = ($str == '') ? "0 mins" : $str;
  1879. $str .= ($diff) ? " to go" : " overdue";
  1880. return $str;
  1881. }
  1882. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1883. /* /////////////////////////////////// RATIO GCD /////////////////////////////////// */
  1884. public static function gcd($a, $b)
  1885. {
  1886. if ($b == '0') {
  1887. return '0';
  1888. }
  1889. return ($a % $b) ? self::gcd($b, $a % $b) : $b;
  1890. }
  1891. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1892. /* /////////////////////////////////// RATIO /////////////////////////////////// */
  1893. public static function ratio($x, $y)
  1894. {
  1895. $gcd = self::gcd($x, $y);
  1896. if ($gcd == '0') {
  1897. return ' : ';
  1898. }
  1899. return ($x / $gcd) . ' : ' . ($y / $gcd);
  1900. }
  1901. /* ///////////////////////////////////////////////////////////////////////////////////// */
  1902. /* /////////////////////////////////// SALES RATIO /////////////////////////////////// */
  1903. public static function enqratio($x, $y)
  1904. {
  1905. $ratio = ' : ';
  1906. if ($y > 0 && $x > 0) {
  1907. $val = round(($x / $y), 1);
  1908. $val = (is_float($val * 1)) ? $val : (int) $val;
  1909. $ratio = '1 : ' . $val;
  1910. }
  1911. return $ratio;
  1912. }
  1913. }