| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211 |
- <?php
- /****************************
- * File : trainer.php
- * Author : Cygnusa
- * @2018
- ****************************/
- //SECURITY
- if ( ! defined('APPLICATION_PATH')) exit('No direct script access allowed');
- class trainer
- {
-
- //FUNCTION LISTS
- function __construct($parent)
- {
- //GET PAGE MESSAGE
- $this->page_data=globalfunc::getMessage($parent,$parent->lang,'trainer');
- if(count($parent->params)==0)
- {
- // $this->dashboardfunc($parent);
- }else
- {
- $qry_params=explode ("?",$parent->params[0]);
- $parameter_val=strtolower($qry_params[0]);
-
- switch($parameter_val){
- case "monthdata":
- case "training":
- case "participant":
- case "smpinparticipant":
- case "removeparticipant":
- case "batch":
-
- case "newtraining":
- case "participantscore":
- case "trainingimageupload":
- case "participantimageupload":
- $this->$parameter_val($parent );
- break;
- default:
- break;
- }
- }
-
- $parent->response(array('response'=>'failed', 'message' => 'PAGE NOT FOUND'), 404);
- }
-
-
- /* /////////////////////////////// MONTH DATA //////////////////////////////////////////////// */
- private function monthdata($parent)
- {
- globalfunc::checkMethodType($parent,array('POST'));
- globalfunc::checkParamCount($parent,3);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
-
- projectfunc::authorizedRole($parent,array('5'));
-
- $year_data=escape_str($parent->params[1]);
- $last_data = escape_str($parent->params[2]);
- $last_data_arr= explode('?',$last_data);
- $month_data=escape_str(trim($last_data_arr[0]));
-
- $startmonth=date('Y-m-d',strtotime($year_data."-".$month_data."-01"))." 00:00:00";
- $nextmonth=date('Y-m-d',strtotime('+1 month',strtotime($startmonth)))." 23:59:59";
-
- //PAGINDATION
- $limit_str=globalfunc::setPageLimit($parent,$parent->params[2]);
- $limit_cond=($limit_str)?" LIMIT ".$limit_str:'';
-
- //SEARCH
- $search_cond='';
- $search_str = (isset($parent->_request["search"]))?escape_str($parent->_request["search"]):'';
- if($search_str!='')
- {
- $search_cond=" AND schedule_name LIKE'%".$search_str."%'";
- }
- $date_cond .= " AND (( start_date BETWEEN CAST('".$startmonth."' AS DATE) AND CAST('".$nextmonth."' AS DATE)) OR (end_date BETWEEN CAST('".$startmonth."' AS DATE)AND CAST('".$nextmonth."' AS DATE))OR ( CAST('".$startmonth."' AS DATE) BETWEEN start_date AND end_date) OR ( CAST('".$nextmonth."' AS DATE) BETWEEN start_date AND end_date))";
- $order_by_cond=" ORDER BY start_date ASC ";
- $schedule_str = "SELECT * FROM ".TABLE_TRAINING_SCHEDULE." WHERE trainer_id='".$parent->current_user_id."' ".$date_cond.$search_cond.$order_by_cond.$limit_cond;;
- $schedule_arr=$parent->getQueryValue($schedule_str);
-
- if(count($schedule_arr)>0)
- {
- foreach($schedule_arr as $skey=>$res_schedule)
- {
- switch($res_schedule->assessment_type)
- {
- case "0":
- $assessment_type_str="Pre Assessment";
- break;
- case "1":
- $assessment_type_str="Post Assessment";
- break;
- case "2":
- $assessment_type_str="Common";
- break;
- }
- $schedule_arr[$skey]->assessment_type_str=$assessment_type_str;
-
- $schedule_status_str="";
- switch($res_schedule->status)
- {
- case "1":
- if(strtotime($res_schedule->start_date)>strtotime(NOW))
- {
- $schedule_status_str="Not Started";
- }else if(strtotime($res_schedule->end_date)>strtotime(NOW))
- {
- $schedule_status_str="Expired";
- }else
- {
- $schedule_status_str="In-progress";
- }
- break;
- case "2":
- $schedule_status_str="Closed";
- break;
- case "3":
- $schedule_status_str="Closed";
- break;
- case "4":
- $schedule_status_str="Closed";
- break;
- }
- $schedule_arr[$skey]->status_str=$schedule_status_str;
- $schedule_arr[$skey]->schedule_start_date=date('Y-m-d',strtotime($res_schedule->start_date));
- }
- }
-
- //GET COUNT
- $get_count_str="SELECT COUNT(schedule_id)as scount FROM ".TABLE_TRAINING_SCHEDULE." WHERE trainer_id='".$parent->current_user_id."' ".$search_cond.$date_cond." LIMIT 1";
- $get_count_arr=$parent->getQueryValue($get_count_str);
- $total=(count($get_count_arr)>0)?$get_count_arr[0]->scount:0;
- $last_page=($total)?ceil($total/$parent->current_limit)-1:0;
-
- //LOG
- $logstr='TRAINER TRAINING LIST';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success', 'data'=>$schedule_arr,'total'=>$total,'last_page'=>$last_page,'current_page'=>$parent->current_page, 'message'=>$this->page_data['success1']),200);
-
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// TRAINING //////////////////////////////////////////////// */
- private function training($parent)
- {
- globalfunc::checkMethodType($parent,array('GET','POST'));
-
- switch ($parent->get_request_method()){
- case "GET":
- globalfunc::checkParamCount($parent,2);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
- projectfunc::authorizedRole($parent,array('5'));
-
- $schedule_id=escape_str($parent->params[1]);
- $schedule_str = "SELECT * FROM ".TABLE_TRAINING_SCHEDULE." WHERE trainer_id='".$parent->current_user_id."' AND schedule_id='".$schedule_id."' LIMIT 1";
- $schedule_arr=$parent->getQueryValue($schedule_str);
- if(count($schedule_arr)>0)
- {
- $schedule_arr[0]->participant=array();
-
- switch($schedule_arr[0]->assessment_type)
- {
- case "0":
- $assessment_type_str="Pre Assessment";
- break;
- case "1":
- $assessment_type_str="Post Assessment";
- break;
- }
- $schedule_arr[0]->assessment_type_str=$assessment_type_str;
- $schedule_status_str="";
- switch($schedule_arr[0]->status)
- {
- case "1":
- if(strtotime($schedule_arr[0]->start_date)>strtotime(NOW))
- {
- $schedule_status_str="Not Started";
- }else if(strtotime($schedule_arr[0]->end_date)>strtotime(NOW))
- {
- $schedule_status_str="Expired";
- }else
- {
- $schedule_status_str="In-progress";
- }
- break;
- case "2":
- $schedule_status_str="Closed";
- break;
- case "3":
- $schedule_status_str="Closed";
- break;
- case "4":
- $schedule_status_str="Closed";
- break;
- }
- $schedule_arr[0]->status_str=$schedule_status_str;
- $schedule_arr[0]->schedule_start_date=date('Y-m-d',strtotime($res_schedule->start_date));
-
-
- //PARTICIPANT
- $participant_str = "SELECT p.`userid`, p.`is_attendance`,p.remarks, p.`score`, p.`assessment_score`,u.smpin,CONCAT(fname,lname)as name,d.dealer_name,p.creatorid FROM ".TABLE_TRAINING_PARTICIPANT." p JOIN ".TABLE_USER." u ON p.userid=u.userid JOIN ".DMS_DEALER." d ON d.dealer_code=u.dealer_code WHERE p.schedule_id='".$schedule_arr[0]->schedule_id."' ";
- $participant_arr=$parent->getQueryValue($participant_str);
-
- if(count($participant_arr)>0)
- {
- foreach($participant_arr as $skey=>$res_part)
- {
- $assessment_str = "SELECT ta.assessmentid,ta.schedule_id FROM ".TABLE_TRAINING_ASSESSMENT." as ta JOIN ".TABLE_ASSESSMENT_USER." as au ON ta.assessmentid=au.assessmentid AND ta.userid=au.userid WHERE ta.schedule_id='".$schedule_arr[0]->schedule_id."' AND ta.userid='".$res_part->userid."' LIMIT 1";
- $assessment_arr=$parent->getQueryValue($assessment_str);
-
- $participant_arr[$skey]->is_edit=($res_part->creatorid==$parent->current_user_id)?"1":"0";
- $participant_arr[$skey]->is_delete=(count($assessment_arr)>0)?"0":"1";
- $participant_arr[$skey]->is_created=($res_part->creatorid==$parent->current_user_id)?"1":"0";
-
- }
- $schedule_arr[0]->participant=$participant_arr;
- }
-
- //LOG
- $logstr='TRAINING DETAILS';
- globalfunc::insertUserLog($parent,$logstr);
-
-
- $parent->response(array('response'=>'success', 'data'=>$schedule_arr[0], 'message'=>$this->page_data['success1']),200);
- }else
- {
- $parent->response(array('response'=>'failed','message'=>$this->page_data["error1"]),406);
- }
-
-
-
- break;
- case "POST":
- //SUBMIT
- globalfunc::checkParamCount($parent,2);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
- projectfunc::authorizedRole($parent,array('5'));
-
- $schedule_id=escape_str($parent->params[1]);
-
- //FIELDS VALIDATION
- $REQUEST_KEYS=array('participant_json'=>'string');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
-
- //CHECK ANS ARRAY
- $participant_arr = json_decode($parent->_request["participant_json"]);
-
- if(!count($participant_arr)>0) $parent->response(array('response'=>'failed','message'=>$this->page_data["error2"]),406);
-
-
- $schedule_str = "SELECT * FROM ".TABLE_TRAINING_SCHEDULE." WHERE trainer_id='".$parent->current_user_id."' AND schedule_id='".$schedule_id."' LIMIT 1";
- $schedule_arr=$parent->getQueryValue($schedule_str);
-
- $user_id_arr=array();
- if(count($schedule_arr)>0)
- {
- //DATE CHECK
- if(strtotime(NOW)>=strtotime($schedule_arr[0]->end_date))$parent->response(array('response'=>'failed','message'=>$this->page_data["error3"]),406);
-
- foreach($participant_arr as $res_part)
- {
- $participant_ids[]=$res_part->userid;
- $user_id_arr[$res_part->userid]=$res_part;
- }
-
- $assessment_str = "SELECT ta.assessmentid,ta.schedule_id FROM ".TABLE_TRAINING_ASSESSMENT." as ta JOIN ".TABLE_ASSESSMENT_USER." as au ON ta.assessmentid=au.assessmentid AND ta.userid=au.userid WHERE ta.schedule_id='".$schedule_id."' AND ta.userid NOT IN (".@implode(',',$participant_ids).") LIMIT 1";
- $assessment_arr=$parent->getQueryValue($assessment_str);
-
- if(count($assessment_arr)>0) $parent->response(array('response'=>'failed','message'=>$this->page_data["error4"]),406);
-
- //CURRENT PARTICIPNAT
- $schedule_part_str = "SELECT * FROM ".TABLE_TRAINING_PARTICIPANT." WHERE schedule_id='".$schedule_id."' ";
- $schedule_part_arr=$parent->getQueryValue($schedule_part_str);
-
- if(count($schedule_part_arr)>0)
- {
- foreach($schedule_part_arr as $res_part)
- {
- $cur_participant_ids[]=$res_part->userid;
-
- if(in_array($res_part->userid, $participant_ids))
- {
- $update_str="UPDATE ".TABLE_TRAINING_PARTICIPANT ." SET `is_attendance`='".$user_id_arr[$res_part->userid]->is_attendance."', `remarks`='".$user_id_arr[$res_part->userid]->remarks."', `score`='".$user_id_arr[$res_part->userid]->score."', `modified_on`='".NOW."' WHERE participant_id='".$res_part->participant_id."'";
- $parent->executeQuery($update_str);
- }
-
- }
-
- //GET NEW PARTICIPANT
- $new_participant=array_diff($participant_ids,$cur_participant_ids);
- if(count($new_participant)>0)
- {
- $new_part_ins=array();
- foreach($new_participant as $res_part)
- {
- $participant_data=$user_id_arr[$res_part];
- $new_part_ins[]=" ( '".$schedule_id."', '".$res_part."','".$participant_data->is_attendance."', '".$participant_data->remarks."','".$participant_data->score."','','".$parent->current_user_id."','".NOW."','".NOW."')";
- }
- //INSERT NEW PARTICIPANT
- $insert_part_qry = "INSERT INTO ".TABLE_TRAINING_PARTICIPANT ." ( `schedule_id`, `userid`, `is_attendance`, `remarks`, `score`, `assessment_score`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$new_part_ins);
- $parent->executeQuery($insert_part_qry);
- }
-
- //DELETE
- $delete_participant=array_diff($cur_participant_ids,$participant_ids);
- if(count($delete_participant)>0)
- {
- //DELETE PARTICIPANT
- $delete_part_qry = "DELETE FROM ".TABLE_TRAINING_PARTICIPANT ." WHERE schedule_id='".$schedule_id."' AND userid IN (".@implode(',',$delete_participant).")";
- $parent->executeQuery($delete_part_qry);
- }
-
- }else
- {
- $new_part_ins=array();
- foreach($participant_arr as $res_part)
- {
- $participant_ids[]=$res_part->userid;
- $participant_data=$user_id_arr[$res_part];
- $new_part_ins[]=" ( '".$schedule_id."', '".$res_part."','".$participant_data->is_attendance."', '".$participant_data->remarks."','".$participant_data->score."','','".$parent->current_user_id."','".NOW."','".NOW."')";
- }
- //INSERT NEW PARTICIPANT
- $insert_part_qry = "INSERT INTO ".TABLE_TRAINING_PARTICIPANT ." ( `schedule_id`, `userid`, `is_attendance`, `remarks`, `score`, `assessment_score`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$new_part_ins);
- $parent->executeQuery($insert_part_qry);
- }
-
- $assessment_str = "SELECT * FROM ".TABLE_TRAINING_ASSESSMENT." WHERE schedule_id='".$schedule_id."'";
- $assessment_arr=$parent->getQueryValue($assessment_str);
-
- if(count($assessment_arr)>0)
- {
- foreach($assessment_arr as $res_ass)
- {
- $cur_assess_ids[]=$res_ass->userid;
- }
- //GET NEW PARTICIPANT
- $new_ass_participant=array_diff($participant_ids,$cur_assess_ids);
- if(count($new_ass_participant)>0)
- {
- $new_ass_ins=array();
- foreach($new_ass_participant as $res_ass_part)
- {
- $new_ass_ins[]=" ( '".$assessment_arr[0]->assessmentid."', '".$schedule_id."','".$res_ass_part->userid."', '0')";
- }
- //INSERT NEW PARTICIPANT
- $insert_ass_qry = "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." (`assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ".@implode(',',$new_ass_ins);
- $parent->executeQuery($insert_ass_qry);
- }
-
- //DELETE
- $delete_ass_participant=array_diff($cur_assess_ids,$participant_ids);
- if(count($delete_ass_participant)>0)
- {
- //DELETE PARTICIPANT
- $delete_asspart_qry = "DELETE FROM ".TABLE_TRAINING_ASSESSMENT ." WHERE schedule_id='".$schedule_id."' AND userid IN (".@implode(',',$delete_ass_participant).")" ;
- $parent->executeQuery($delete_asspart_qry);
- }
-
- }else
- {
- $get_assess_str = "SELECT * FROM ".TABLE_ASSESSMENT." WHERE schedule_id='".$schedule_id."' AND atype='1' LIMIT 1";
- $get_assess_arr=$parent->getQueryValue($get_assess_str);
- if(count($get_assess_arr)>0)
- {
- $new_ins_ass=array();
- foreach($participant_arr as $res_part)
- {
- //$participant_ids[]=$res_part->userid;
- $new_ins_ass[]=" ( '".$get_assess_arr[0]->assessmentid."', '".$schedule_id."','".$res_part->userid."','')";
- }
-
- //INSERT TRAINING ASSESSMENT
- $insert_ins_qry = "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." (`assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ".@implode(',',$new_ins_ass);
- $parent->executeQuery($insert_ins_qry);
- }
-
- }
- $is_save =(isset($parent->_request["is_save"]))? escape_str($parent->_request["is_save"]):'';
- if($is_save!='1')
- {
- //UPDATE
- $update_qry = "UPDATE ".TABLE_TRAINING_SCHEDULE ." SET status='2', modified_on='".NOW."' WHERE schedule_id='".$schedule_id."'";
- $parent->executeQuery($update_qry);
- }
-
- }else
- {
- $parent->response(array('response'=>'failed','message'=>$this->page_data["error1"]),406);
- }
-
- //LOG
- $logstr='TRAINING SUBMIT';
- globalfunc::insertUserLog($parent,$logstr,$schedule_id);
-
- $parent->response(array('response'=>'success', 'data'=>$schedule_arr[0], 'message'=>$this->page_data['success1']),200);
- break;
- }
-
-
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// PARTICIPANT //////////////////////////////////////////////// */
- private function participant($parent)
- {
- globalfunc::checkMethodType($parent,array('POST'));
- globalfunc::checkParamCount($parent,1);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
-
- $REQUEST_KEYS=array('lvl_id'=>'integer');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
-
- $lvl_id=$parent->_request["lvl_id"];
-
- if((isset($parent->_request["zone"])))
- {
- $zone = (isset($parent->_request["zone"]))?escape_str($parent->_request["zone"]):'';
- if($zone)
- {
- $zone_arr=@explode(',',$zone);
- $zone_quotes = array_map("quotes_array", $zone_arr);
- $dealercond.=" AND zone IN (".@implode(',',$zone_quotes).")";
- }else
- {
- $dealercond.=" AND zone IN ('')";
- }
- }
-
- if(isset($parent->_request["city"]) )
- {
- $city = (isset($parent->_request["city"]) )?escape_str($parent->_request["city"]):'';
- if($city)
- {
- $city_arr=@explode(',',$city);
- $city_quotes = array_map("quotes_array", $city_arr);
- $dealercond.=" AND city IN (".@implode(',',$city_quotes).")";
- }else
- {
- $dealercond.=" AND city IN ('')";
- }
- }
-
- if((isset($parent->_request["dealer"])))
- {
- $dealer = (isset($parent->_request["dealer"]))?escape_str($parent->_request["dealer"]):'';
- if($dealer)
- {
- $dealer_arr=@explode(',',$dealer);
- $dealer_quotes = array_map("quotes_array", $dealer_arr);
- $cond.=" AND dealer IN (".@implode(',',$dealer_quotes).")";
- $dealer_code_cond=" AND dealer_code IN (".@implode(',',$dealer_quotes).")";
- }else
- {
- $cond.=" AND dealer IN ('')";
- $dealer_code_cond=" AND dealer_code IN ('')";
- }
- }
- if((isset($parent->_request["schedule_id"])))
- {
- $edit_cond=" AND s.schedule_id!='".escape_str($parent->_request["schedule_id"])."'";
- }
-
- if((isset($parent->_request["user_type"])))
- {
- $edit_cond=" AND s.schedule_id!='".escape_str($parent->_request["user_type"])."'";
- }
- $user_cond=(isset($parent->_request["user_type"]) && $parent->_request["user_type"]=='0')?" AND role>7 AND role<14":" AND role=15";
-
- $data_arr=array();
- $dealercond=($dealercond!='')?" AND dealer_code IN (SELECT * FROM ".DMS_DEALER." WHERE status='1' AND ".$dealercond.")":"";
-
- $dealer_arr=$parent->getQueryValue("SELECT * FROM ".DMS_DEALER." WHERE status='1' ".$dealer_code_cond.$dealercond);
- if(count($dealer_arr)>0)
- {
- foreach($dealer_arr as $res_dealer)
- {
- $arr=new stdClass();
- $query_str = "SELECT userid,`smpin`, CONCAT(fname,lname) as name FROM ".TABLE_USER." WHERE status='1' ".$user_cond." AND is_deleted='0' AND dealer_code='".$res_dealer->dealer_code."' AND smpin IN (SELECT smpin FROM ".TABLE_USER_LEARNING." WHERE current_status='1' AND lvl_id='".$lvl_id."') AND userid NOT IN (SELECT p.userid FROM ".TABLE_TRAINING_PARTICIPANT." p JOIN ".TABLE_TRAINING_SCHEDULE." s ON p.schedule_id=s.schedule_id WHERE s.status<4 AND s.is_deleted=0 ".$edit_cond.") ORDER BY dealer_code";
- $user_arr=$parent->getQueryValue($query_str);
- if(count($user_arr)>0)
- {
- $arr->user =$user_arr;
- $arr->dealer_code=$res_dealer->dealer_code;
- $arr->dealer_name=$res_dealer->dealer_name;
- $data_arr[]=$arr;
- }
- }
- }
-
- //LOG
- $logstr='PARTICIPANT LIST';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success', 'data'=>$data_arr, 'message'=>$this->page_data['success1']),200);
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// PARTICIPANT //////////////////////////////////////////////// */
- private function smpinparticipant($parent)
- {
- globalfunc::checkMethodType($parent,array('POST'));
- globalfunc::checkParamCount($parent,1);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
-
- //FIELDS VALIDATION
- $REQUEST_KEYS=array('schedule_id'=>'integer','smpin'=>'string');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
-
- $schedule_id= escape_str($parent->_request["schedule_id"]);
- $smpin= escape_str($parent->_request["smpin"]);
-
- $schedule_str = "SELECT * FROM ".TABLE_TRAINING_SCHEDULE." WHERE trainer_id='".$parent->current_user_id."' AND schedule_id='".$schedule_id."' LIMIT 1";
- $schedule_arr=$parent->getQueryValue($schedule_str);
-
- $user_id_arr=array();
- if(count($schedule_arr)>0)
- {
- $lvl_id=$schedule_arr[0]->lvl_id;
-
- $user_cond=($schedule_arr[0]->user_type=='0')?" AND role>7 AND role<14":" AND role=15";
-
- $query_smpin_str = "SELECT userid,`smpin`, CONCAT(fname,lname) as name FROM ".TABLE_USER." WHERE status='1' ".$user_cond." AND is_deleted='0' AND smpin IN (SELECT smpin FROM ".TABLE_USER_LEARNING." WHERE current_status='1' AND lvl_id='".$lvl_id."') AND smpin='".$smpin."' ORDER BY dealer_code";
- $user_arr=$parent->getQueryValue($query_smpin_str);
- if(count($user_arr)>0)
- {
- // AND userid NOT IN (SELECT p.userid FROM ".TABLE_TRAINING_PARTICIPANT." p JOIN ".TABLE_TRAINING_SCHEDULE." s ON p.schedule_id=s.schedule_id WHERE s.status<4 AND s.is_deleted=0 )
- //USER ALREADY IN PARTICIPANT
- $query_check_str ="SELECT p.userid FROM ".TABLE_TRAINING_PARTICIPANT." p JOIN ".TABLE_TRAINING_SCHEDULE." s ON p.schedule_id=s.schedule_id WHERE s.status<4 AND s.is_deleted=0 AND p.userid='".$user_arr[0]->userid."' ";
- $check_arr=$parent->getQueryValue($query_check_str);
- if(count($check_arr)>0)
- {
- $parent->response(array('response'=>'failed','message'=>$this->page_data["error6"]),406);
- }else
- {
- $insert_train_qry = "INSERT INTO ".TABLE_TRAINING_PARTICIPANT ." ( `schedule_id`, `userid`, `is_attendance`, `score`, `assessment_score`, `creatorid`, `created_on`, `modified_on`) VALUES ( '".$schedule_id."', '".$user_arr[0]->userid."','','', '','".$parent->current_user_id."', '".NOW."', '".NOW."')";
- $parent->executeQuery($insert_train_qry);
-
- //SEND NOTIFICATION
- $nobj=new stdClass();
- $notificationtext="New Training scheduled - `".$schedule_arr[0]->schedule_name."` from date : ".date('d M Y',strtotime($schedule_arr[0]->start_date))." - ".date('d M Y',strtotime($shedule_arr[0]->end_date));
- $nobj->notificationtitle=$schedule_arr[0]->schedule_name;
- $nobj->notificationtext=$notificationtext;
- $nobj->notificationtype='5';
- $nobj->notificationdata=new stdClass();
- // projectfunc::sendUserNotification($parent,$nobj,$user_arr[0]->userid);
-
-
- $train_assess_str ="SELECT * FROM ".TABLE_ASSESSMENT." WHERE schedule_id='".$schedule_id."' AND atype='1' LIMIT 1 ";
- $train_assess_arr=$parent->getQueryValue($train_assess_str);
-
- if(count($train_assess_arr)>0)
- {
- //ASSESSMENT QUESTION
- $train_assess_qry= "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." ( `assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ('".$train_assess_arr[0]->assessmentid."', '".$schedule_id."', '".$user_arr[0]->userid."','')";
- $parent->executeQuery($train_assess_qry);
- }
-
- //PARTICIPANT
- $participant_str = "SELECT p.`userid`, p.`is_attendance`,p.remarks, p.`score`, p.`assessment_score`,u.smpin,CONCAT(fname,lname)as name,d.dealer_name,p.creatorid FROM ".TABLE_TRAINING_PARTICIPANT." p JOIN ".TABLE_USER." u ON p.userid=u.userid JOIN ".DMS_DEALER." d ON d.dealer_code=u.dealer_code WHERE p.schedule_id='".$schedule_id."' AND u.userid='".$user_arr[0]->userid."' ";
- $participant_arr=$parent->getQueryValue($participant_str);
-
- if(count($participant_arr)>0)
- {
- foreach($participant_arr as $skey=>$res_part)
- {
- $assessment_str = "SELECT ta.assessmentid,ta.schedule_id FROM ".TABLE_TRAINING_ASSESSMENT." as ta JOIN ".TABLE_ASSESSMENT_USER." as au ON ta.assessmentid=au.assessmentid AND ta.userid=au.userid WHERE ta.schedule_id='".$schedule_id."' AND ta.userid='".$res_part->userid."' LIMIT 1";
- $assessment_arr=$parent->getQueryValue($assessment_str);
-
- $participant_arr[$skey]->is_edit="1";
- $participant_arr[$skey]->is_delete=(count($assessment_arr)>0)?"0":"1";
- $participant_arr[$skey]->is_created=($res_part->creatorid==$parent->current_user_id)?"1":"0";
- }
-
- }
- //LOG
- $logstr='PARTICIPANT ADD';
- globalfunc::insertUserLog($parent,$logstr,$schedule_id);
- $parent->response(array('response'=>'success', 'data'=>$participant_arr, 'message'=>$this->page_data['success1']),200);
- }
- }else
- {
- $parent->response(array('response'=>'failed','message'=>$this->page_data["error5"]),406);
- }
- }else{
- $parent->response(array('response'=>'failed','message'=>$this->page_data["error1"]),406);
- }
-
- $parent->response(array('response'=>'success', 'data'=>$data_arr, 'message'=>$this->page_data['success1']),200);
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// REMOVE PARTICIPANT //////////////////////////////////////////////// */
- private function removeparticipant($parent)
- {
- globalfunc::checkMethodType($parent,array('POST'));
- globalfunc::checkParamCount($parent,1);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
-
- //FIELDS VALIDATION
- $REQUEST_KEYS=array('schedule_id'=>'integer','userid'=>'integer');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
-
- $schedule_id= escape_str($parent->_request["schedule_id"]);
- $userid= escape_str($parent->_request["userid"]);
-
- $schedule_str = "SELECT * FROM ".TABLE_TRAINING_SCHEDULE." WHERE trainer_id='".$parent->current_user_id."' AND schedule_id='".$schedule_id."' LIMIT 1";
- $schedule_arr=$parent->getQueryValue($schedule_str);
-
- $user_id_arr=array();
- if(count($schedule_arr)>0)
- {
- $train_parti_str ="SELECT * FROM ".TABLE_TRAINING_PARTICIPANT." WHERE schedule_id='".$schedule_id."' AND userid='".$userid."' LIMIT 1 ";
- $train_parti_arr=$parent->getQueryValue($train_parti_str);
-
- if(count($train_parti_arr)>0)
- {
- $assess_user_str = "SELECT au.* FROM ".TABLE_ASSESSMENT_USER." as au JOIN ".TABLE_TRAINING_ASSESSMENT." as ta ON ta.assessmentid=au.assessmentid AND au.userid=ta.userid WHERE ta.schedule_id='".$schedule_id."' AND au.userid='".$userid."' LIMIT 1 ";
- $assess_user_arr=$parent->getQueryValue($assess_user_str);
- // $is_edit=(count($assess_arr)>0)?"0":"1";
- if(count($assess_user_arr)>0)
- {
- $parent->response(array('response'=>'failed','message'=>$this->page_data["error6"]),406);
- }else
- {
- $delete_parti_qry= "DELETE FROM ".TABLE_TRAINING_PARTICIPANT ." WHERE `schedule_id`='".$schedule_id."' AND userid='".$userid."'";
- $parent->executeQuery($delete_parti_qry);
-
- $delete_assess_qry= "DELETE FROM ".TABLE_TRAINING_ASSESSMENT ." WHERE `schedule_id`='".$schedule_id."' AND userid='".$userid."'";
- $parent->executeQuery($delete_assess_qry);
-
- //LOG
- $logstr='PARTICIPANT REMOVE';
- globalfunc::insertUserLog($parent,$logstr,$schedule_id);
- $parent->response(array('response'=>'success', 'message'=>$this->page_data['success1']),200);
- }
- }else
- {
- $parent->response(array('response'=>'failed','message'=>$this->page_data["error5"]),406);
- }
- }else{
- $parent->response(array('response'=>'failed','message'=>$this->page_data["error1"]),406);
- }
-
- $parent->response(array('response'=>'success', 'data'=>$data_arr, 'message'=>$this->page_data['success1']),200);
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// BATCH //////////////////////////////////////////////// */
- private function batch($parent)
- {
- globalfunc::checkMethodType($parent,array('GET','POST','DELETE'));
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
- switch ($parent->get_request_method())
- {
- case "GET": //LIST
- if(count($parent->params)==1) //LIST DATA
- {
- globalfunc::checkParamCount($parent,1);
- $userid=$parent->current_user_id;
- $role=$parent->current_user_role;
-
- if(strstr($parent->params[0],"page="))
- {
- //PAGINATION SETTINGS
- $limit_cond='';
- $data_arr=array();
- $limit_str=globalfunc::setPageLimit($parent,$parent->params[0]);
- $limit_cond=($limit_str)?" LIMIT ".$limit_str:'';
- }else
- {
- $parent->current_page=0;
- }
- $get_list_arr=$parent->selectQuery(TABLE_TRAINERBATCH."" ,"SQL_CALC_FOUND_ROWS * ","trainerid='".$userid."' ORDER BY id ASC ".$limit_cond,"");
- $tot = $parent->getQueryValue("select FOUND_ROWS() as total_records");
- $total=(count($tot)>0)?$tot[0]->total_records:0;
- $data_arr=($get_list_arr['nr']>0)?$get_list_arr['result']:array();
- $last_page=($total && strstr($parent->params[0],"page="))?ceil($total/$parent->current_limit)-1:0;
-
- //LOG
- $logstr='BATCH LIST DATA';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success', 'data'=>$data_arr,'total'=>$total,'last_page'=>$last_page,'current_page'=>$parent->current_page,'message'=>$this->page_data['success1']),200);
- }else if(count($parent->params)==2)
- {
-
- $batchid= escape_str($parent->params[1]);
- $check_str = "SELECT * FROM ".TABLE_TRAINERBATCH." WHERE batchid='".$batchid."'";
- $batch_arr=$parent->getQueryValue($check_str);
- if(!count($data_arr)>0) $parent->response(array('response'=>'failed','message'=>$this->page_data["error8"]),406);
-
- $user_str = "SELECT b.smpin,u.fname,u.lname,u.dealer_code,d.dealer_name FROM ".TABLE_TRAINERBATCHUSER." b JOIN ".TABLE_USER." u ON u.smpin=b.smpin JOIN ".DMS_DEALER." d ON d.dealer_code=u.dealer_code WHERE u.role>7 AND u.role<14 AND b.batchid='".$batchid."' GROUP BY b.smpin ORDER BY u.smpin ASC,u.userid ASC";
- $user_arr=$parent->getQueryValue($user_str);
- $data_arr=array('batch'=>$batch_arr[0],'user'=>$user_arr);
-
- //LOG
- $logstr='BATCH SINGLE DATA';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success', 'data'=>$data_arr,'message'=>$this->page_data['success1']),200);
- }
- break;
- case "POST": //ADD
- if(count($parent->params)==1)
- {
- $REQUEST_KEYS=array('title'=>'string', 'smpin'=>'string');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
-
- $title=escape_str($parent->_request["title"]);
- $smpin_json=escape_str($parent->_request["smpin"]);
- $smpin_arr=json_encode($smpin_json);
- if(!count($smpin_arr)>0) $parent->response(array('response'=>'failed','message'=>$this->page_data["error7"]),406);
-
- $insert_str= "INSERT INTO ".TABLE_TRAINERBATCH ." (`trainerid`, `title`, `created_on`) VALUES ('".$parent->current_user_id."','".$title."','".NOW."')";
- $parent->executeQuery($insert_str);
- $id=$parent->lastInsertId();
-
- $ins_arr=array();
- foreach($smpin_arr as $smpin)
- {
- $ins_arr[]="('".$id."', '".$smpin."', '".NOW."')";
- }
- $insert_user= "INSERT INTO ".TABLE_TRAINERBATCHUSER ." (`batchid`, `smpin`, `created_on`) VALUES ".@implode(",".$ins_arr);
- $parent->executeQuery($insert_user);
- //LOG
- $logstr='BATCH INSERT';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success','message'=>$this->page_data['success1']),200);
- }else if(count($parent->params)==2)//EDIT
- {
-
- $editid= escape_str($parent->params[1]);
- $REQUEST_KEYS=array('title'=>'string', 'smpin'=>'string');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
-
- $title=escape_str($parent->_request["title"]);
- $smpin_json=escape_str($parent->_request["smpin"]);
- $smpin_arr=json_encode($smpin_json);
- if(!count($smpin_arr)>0) $parent->response(array('response'=>'failed','message'=>$this->page_data["error7"]),406);
- $parent->executeQuery("UPDATE ".TABLE_TRAINERBATCH." SET `title`='".$title."' WHERE id='".$editid."'");
-
- $parent->executeQuery("DELETE FROM ".TABLE_TRAINERBATCHUSER." WHERE batchid='".$editid."'");
-
- $ins_arr=array();
- foreach($smpin_arr as $smpin)
- {
- $ins_arr[]="('".$editid."', '".$smpin."', '".NOW."')";
- }
- $insert_user= "INSERT INTO ".TABLE_TRAINERBATCHUSER ." (`batchid`, `smpin`, `created_on`) VALUES ".@implode(",".$ins_arr);
- $parent->executeQuery($insert_user);
-
- //LOG
- $logstr='BATCH EDIT';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success','message'=>$this->page_data['success1']),200);
- }
- break;
- case "DELETE"://DELETE
- globalfunc::checkParamCount($parent,2);
- $del_id= escape_str($parent->params[1]);
-
- $delete_parti_qry= "DELETE FROM ".TABLE_TRAINERBATCH ." WHERE `id`='".$del_id."'";
- $parent->executeQuery($delete_parti_qry);
- $delete_assess_qry= "DELETE FROM ".TABLE_TRAINERBATCHUSER ." WHERE `batchid`='".$del_id."'";
- $parent->executeQuery($delete_assess_qry);
-
- //LOG
- $logstr='BATCH DELETE';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success','message'=>$this->page_data['success1']),200);
- break;
- }
-
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// NEW TRAINING SUBMIT //////////////////////////////////////////////// */
- private function newtraining($parent)
- {
- globalfunc::checkMethodType($parent,array('POST'));
- globalfunc::checkParamCount($parent,1);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
- projectfunc::authorizedRole($parent,array('5'));
-
-
- //FIELDS VALIDATION
- $REQUEST_KEYS=array('schedule_name'=>'string','lvl_id'=>'integer');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
-
- $title=escape_str($parent->_request["schedule_name"]);
- $lvl_id=escape_str($parent->_request["lvl_id"]);
- $startdate=escape_str($parent->_request["startdate"]);
- $enddate=escape_str($parent->_request["enddate"]);
-
- $starttime=escape_str($parent->_request["starttime"]);
- $endtime=escape_str($parent->_request["endtime"]);
- if($starttime!='' && $endtime!='')
- {
- $startdate.=" ".$starttime;
- $enddate.=" ".$endtime;
- }else
- {
- $startdate.=" 00:00:00";
- $enddate.=" 23:59:59";
- }
-
- $trainer_id=$parent->current_user_id;
- $filter_region='';
- $filter_dealer='';
- $travel_desc=escape_str($parent->_request["travel_desc"]);
- $hotel_desc=escape_str($parent->_request["hotel_desc"]);
- $assessment_type=escape_str($parent->_request["assessment_type"]); //0-Before,1-After,2 Both
- $assessmentname=escape_str($parent->_request["assessmentname"]);
- if(!in_array($assessment_type, array('0','1','2'))) $parent->response(array('response'=>'failed','message'=>$this->page_data["error8"]),406);
- $randomcond=escape_str($parent->_request["randomcond"]);
- $assessmenttime=escape_str($parent->_request["assessmenttime"]);
- $user_type=escape_str($parent->_request["user_type"]);
- $ques_count=escape_str($parent->_request["ques_count"]);
- //$buffer_day=escape_str($parent->_request["buffer_day"]);
- $buffer_day='1';
- $location='';
- $participant_json=$parent->_request["participant"];
- $participant_arr=json_decode($participant_json);
- $is_feedback=$parent->_request["is_feedback"];
-
- if(!(is_array($participant_arr) && count($participant_arr)>0)) $parent->response(array('response'=>'failed','message'=>$this->page_data["error5"]),406);
- if(!(is_numeric($ques_count)&& $ques_count>0)) $parent->response(array('response'=>'failed','message'=>$this->page_data["error9"]),406);
- //CHECK QUESTION COUNT EXIST
- $ques_count_valid='0';
- $q_count=0;
- $assess_str = "SELECT COUNT(id) as ques_count FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' LIMIT 1";
- $assess_arr=$parent->getQueryValue($assess_str);
- if(count($assess_arr)>0)
- {
- $ques_count_valid=($ques_count<=$assess_arr[0]->ques_count)?'1':'0';
- $q_count=$assess_arr[0]->ques_count;
- }
- if($ques_count_valid=='0') $parent->response(array('response'=>'failed','message'=>'Add Question\'s in Question Bank for selected Category. Total Question for selected Category : '.$q_count),406);
-
- $insert_qry = "INSERT INTO ".TABLE_TRAINING_SCHEDULE ." ( `lvl_id`, `user_type`, `schedule_name`, `trainer_id`, `start_date`, `end_date`, `assessmentname`, `assessmenttime`, `randomcond`, `ques_count`, `location`, `assessment_type`, `buffer_day`, `filter_zone`, `filter_region`, `filter_dealer`, `travel_desc`, `hotel_desc`,is_feedback, `is_deleted`, `status`, `created_on`, `modified_on`) VALUES ( '".$lvl_id."','".$user_type."','".$schedule_name."', '".$trainer_id."','".$startdate."', '".$enddate."','".$assessmentname."','".$assessmenttime."','".$randomcond."','".$ques_count."','".$location."','".$assessment_type."','".$buffer_day."','".$filter_zone."','".$filter_region."','".$filter_dealer."','".$travel_desc."','".$hotel_desc."','0','".$is_feedback."','1','".NOW."', '".NOW."')";
- $parent->executeQuery($insert_qry);
- $schedule_id=$parent->lastInsertId();
-
- if(count($participant_arr)>0)
- {
- $participant_arr= array_unique($participant_arr);
- $ins_participant_arr=array();
- foreach($participant_arr as $userid)
- {
-
- $ins_participant_arr[] =" ( '".$schedule_id."', '".$userid."', '0', '0', '0', '".$trainer_id."','".NOW."', '".NOW."')";
- }
- //print_r($ins_participant_arr);
- $insert_qry = "INSERT INTO ".TABLE_TRAINING_PARTICIPANT ." ( `schedule_id`, `userid`, `is_attendance`, `score`, `assessment_score`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_participant_arr);
- $parent->executeQuery($insert_qry);
- }
-
- if($assessment_type!=2)
- {
- //GET ASSESSMENT START DATE
- $assessment_startdate=($assessment_type=='0')?NOW:date('Y-m-d H:i:s',strtotime($enddate));
- //GET ASSESSMENT END DATE
- $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
- }else
- {
- //GET ASSESSMENT START DATE
- $assessment_startdate=NOW;
- //GET ASSESSMENT END DATE
- $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
- //INSERT ASSESSMENT
- $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT ." ( `atype`, `lvl_id`, `assessmentname`, `description`, `assessmentimage`, `assessmenttype`, `assettypeid`, `assessmenttimetype`, `assessmenttime`, `attemptslimit`, `publisheddate`, `enddate`, `randomcond`, `filter_role`, `filter_zone`, `filter_region`, `filter_dealer`, `assessmentnotification`, `total_question`,`schedule_id`, `status`, `creatorid`, `created_on`, `modified_on`) VALUES ('1','".$lvl_id."','".$assessmentname."','".$assessmentname."','','1','1','1','".$assessmenttime."','1','".$assessment_startdate."','".$assessment_enddate."','".$randomcond."','','','','','','".$ques_count."','".$schedule_id."','1','".$trainer_id."','".NOW."','".NOW."')";
- $parent->executeQuery($insert_qry);
- $assessmentid = $parent->lastInsertId();
- if(count($participant_arr)>0)
- {
- $ins_assess_arr=array();
- foreach($participant_arr as $userid)
- {
- $ins_assess_arr[] =" ( '".$assessmentid."','".$schedule_id."', '".$userid."', '0')";
- }
- }
- //ASSESSMENT PARTICPANT ADD
- $insert_qry = "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." ( `assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ".@implode(',',$ins_assess_arr);
- $parent->executeQuery($insert_qry);
- //ASSESSMENT QUESTION ADD
- $rcond=($randomcond)?"ORDER BY RAND()":"ORDER BY id ASC";
- $ques_str = "SELECT * FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' ".$rcond." LIMIT ".$ques_count;
- $ques_arr=$parent->getQueryValue($ques_str);
- if(count($ques_arr)>0)
- {
- $ins_ques_arr=array();
- foreach($ques_arr as $res_ques)
- {
- $ins_ques_arr[] =" ( '".$assessmentid."','".$res_ques->id."', '1', '".$trainer_id."','".NOW."', '".NOW."')";
- }
- //ASSESSMENT QUESTION
- $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT_QUESTION ." (`assessmentid`, `qid`, `is_mandatory`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_ques_arr);
- $parent->executeQuery($insert_qry);
- }
-
- //SECOND START AND END
- //GET ASSESSMENT START DATE
- $assessment_startdate=date('Y-m-d H:i:s',strtotime($enddate));
- //GET ASSESSMENT END DATE
- $assessment_enddate=date('Y-m-d H:i:s',strtotime('+'.$buffer_day.' day',strtotime($enddate)));
- $ins_ques_arr=array();
- $ins_assess_arr=array();
-
- }
-
- //INSERT ASSESSMENT
- $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT ." ( `atype`, `lvl_id`, `assessmentname`, `description`, `assessmentimage`, `assessmenttype`, `assettypeid`, `assessmenttimetype`, `assessmenttime`, `attemptslimit`, `publisheddate`, `enddate`, `randomcond`, `filter_role`, `filter_zone`, `filter_region`, `filter_dealer`, `assessmentnotification`, `total_question`,`schedule_id`, `status`, `creatorid`, `created_on`, `modified_on`) VALUES ('1','".$lvl_id."','".$assessmentname."','".$assessmentname."','','1','1','1','".$assessmenttime."','1','".$assessment_startdate."','".$assessment_enddate."','".$randomcond."','','','','','','".$ques_count."','".$schedule_id."','1','".$trainer_id."','".NOW."','".NOW."')";
- $parent->executeQuery($insert_qry);
- $assessmentid = $parent->lastInsertId();
- if(count($participant_arr)>0)
- {
- $ins_assess_arr=array();
- foreach($participant_arr as $userid)
- {
- $ins_assess_arr[] =" ( '".$assessmentid."','".$schedule_id."', '".$userid."', '0')";
- }
- }
- //ASSESSMENT PARTICPANT ADD
- $insert_qry = "INSERT INTO ".TABLE_TRAINING_ASSESSMENT ." ( `assessmentid`, `schedule_id`, `userid`, `is_attended`) VALUES ".@implode(',',$ins_assess_arr);
- $parent->executeQuery($insert_qry);
- //ASSESSMENT QUESTION ADD
- $rcond=($randomcond)?"ORDER BY RAND()":"ORDER BY id ASC";
- $ques_str = "SELECT * FROM ".TABLE_QUESTION." WHERE status='1' AND cateid='".$lvl_id."' ".$rcond." LIMIT ".$ques_count;
- $ques_arr=$parent->getQueryValue($ques_str);
- if(count($ques_arr)>0)
- {
- $ins_ques_arr=array();
- foreach($ques_arr as $res_ques)
- {
- $ins_ques_arr[] =" ( '".$assessmentid."','".$res_ques->id."', '1', '".$trainer_id."','".NOW."', '".NOW."')";
- }
- //ASSESSMENT QUESTION
- $insert_qry = "INSERT INTO ".TABLE_ASSESSMENT_QUESTION ." (`assessmentid`, `qid`, `is_mandatory`, `creatorid`, `created_on`, `modified_on`) VALUES ".@implode(',',$ins_ques_arr);
- $parent->executeQuery($insert_qry);
- }
- $mobj=new stdClass();
- $mobj->schedule_id=$trainer_id;
- $this->trainingnotifictaion($parent,$mobj);
-
-
- //LOG
- $logstr='TRAINING CREATE';
- globalfunc::insertUserLog($parent,$logstr,$schedule_id);
- $parent->response(array('response'=>'success', 'message'=>$this->page_data['success1']),200);
-
- }
-
- private function trainingnotifictaion($parent,$obj)
- {
- if(!(isset($obj) && isset($obj->schedule_id))) $parent->response(array('response'=>'failed','message'=>'PHP ERROR Value not passed'),500);
-
- $schedule_id=$obj->schedule_id;
- $query_str = "SELECT * FROM ".TABLE_TRAINING_SCHEDULE." WHERE is_deleted='0' AND schedule_id='".$schedule_id."' LIMIT 1";
- $query_arr=$parent->getQueryValue($query_str);
-
- $query_str = "SELECT * FROM `".TABLE_TRAINING_PARTICIPANT."` WHERE schedule_id='".$schedule_id."' ";
- $user_arr=$parent->getQueryValue($query_str);
- if(count($query_arr)>0 && count($user_arr)>0)
- {
-
- $ntext="New Training Scheduled - ".$query_arr[0]->schedule_name." from date : ".date('d M Y',strtotime($query_arr[0]->start_date))." - ".date('d M Y',strtotime($query_arr[0]->end_date));
-
- $notificationtitle=$schedule_arr[0]->schedule_name;
- $notificationtext=$ntext;
- $notificationtype=5;
- $obj=new stdClass();
- $notificationdata= json_encode($obj);
- //INSERT NOTIFICATION
- $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."')");
- $notificationid=$parent->lastInsertId();
-
- $data=array('notification_id'=>$notificationid,'title'=>$notificationtitle,'message'=>$notificationtext,'notificationtype'=>$notificationtype,'notificationdata'=>$notificationdata,'created_date'=>NOW);
-
- if(count($user_arr)>0)
- {
- foreach ($part_arr as $res_user)
- {
- $user_arr[]=$res_user->userid;
- }
-
- $ins_arr=array();
- foreach($user_arr as $res)
- {
- $ins_arr[]=" ('".$notificationid."', '".$res."', '0', '".NOW."')";
- }
-
- $insert_chunk=array_chunk($ins_arr, 1000);
- foreach($insert_chunk as $chunk_ins)
- {
- $parent->executeQuery("INSERT INTO ".TABLE_NOTIFICATION_USER."(`notificationid`, `userid`, `status`, `created_on`) VALUES ".@implode(',',$chunk_ins)." ON DUPLICATE KEY UPDATE `status` =0");
- }
-
- $usertokenarr['ios']=array();
- $usertokenarr['android']=array();
- $user_device_str = "SELECT ud.devicetype,ud.token FROM `".TABLE_USER_DEVICES."` as ud JOIN (SELECT userid FROM ".TABLE_NOTIFICATION_USER." WHERE notificationid='".$notificationid."') as u ON ud.userid=u.userid WHERE ud.is_deleted='0' AND (devicetype='ios' OR devicetype='android') AND token!=''";
- $user_device_arr = $parent->getQueryValue($user_device_str);
-
- if(count($user_device_arr)>0)
- {
- foreach($user_device_arr as $res_dev)
- {
- //print_r($user_device_arr);
- if(strtolower($res_dev->devicetype)=='ios')
- {
- $usertokenarr['ios'][]=$res_dev->token;
- }else if(strtolower($res_dev->devicetype)=='android')
- {
- $usertokenarr['android'][]=$res_dev->token;
- }
- }
- // globalfunc::sendUserNotification($data,$usertokenarr);
- }
-
- }
- }
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// PARTICIPANT SCORE //////////////////////////////////////////////// */
- private function participantscore($parent)
- {
- globalfunc::checkMethodType($parent,array('GET','POST'));
- //globalfunc::checkParamCount($parent,1);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
- projectfunc::authorizedRole($parent,array('5'));
- switch ($parent->get_request_method())
- {
- case "GET":
- globalfunc::checkParamCount($parent,2);
- $schedule_id=escape_str($parent->params[1]);
-
- $data_arr=array();
-
- $query_str = "SELECT p.participant_id,p.userid,p.score,p.remarks,p.image,u.smpin,u.fname,u.lname,u.dealer_code,d.dealer_name FROM `".TABLE_TRAINING_PARTICIPANT."` as p JOIN ".TABLE_USER." u ON p.userid=u.userid JOIN ".DMS_DEALER." d ON d.dealer_code=u.dealer_code WHERE p.schedule_id='".$schedule_id."' ";
- $user_arr=$parent->getQueryValue($query_str);
- if(count($user_arr)>0)
- {
- //CONNECT S3
- $s3=awsfileserver::connectS3();
- foreach($user_arr as $key=>$res)
- {
- $user_arr[$key]->image_url=($res->image!='')?awsfileserver::getS3FileUrl($s3,S3_BUCKET,S3_TRAINING_URL.$res->image):'';
- }
- $data_arr=$user_arr;
- }
- //LOG
- $logstr='PARTICIPANT SCORE DATA LIST';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success', 'data'=>$data_arr,'message'=>$this->page_data['success1']),200);
- break;
- case "POST":
- globalfunc::checkParamCount($parent,1);
- $id=escape_str($parent->_request["id"]);
- $participant_arr=json_decode($parent->_request["participant"]);
-
- if(!(json_last_error() == JSON_ERROR_NONE && is_array($participant_arr)&& count($participant_arr)>0)) $parent->response(array('response'=>'failed','message'=>$this->page_data['error10']),406);
-
- if(count($participant_arr)>0)
- {
- $check_arr=array();
- $update_str=array();
- foreach($participant_arr as $val)
- {
- $check_arr[]=$val->userid;
- $val->score=(isset($val->score)&&$val->score>0)?$val->score:0;
- $val->remarks=(isset($val->remarks)&&$val->remarks!='')?$val->remarks:'';
- $val->is_attendance=(isset($val->is_attendance)&&$val->is_attendance!='')?$val->is_attendance:'';
-
- $update_str[]="UPDATE ".TABLE_TRAINING_PARTICIPANT." SET score='".$val->score."',remarks='".$val->remarks."',is_attendance='".$val->is_attendance."' WHERE schedule_id='".$schedule_id."' AND userid='".$val->userid."'";
- }
- //VALIDATION
- $query_str = "SELECT * FROM `".TABLE_TRAINING_PARTICIPANT."` WHERE schedule_id='".$schedule_id."' AND userid IN (".@implode(',',$check_arr).")";
- $checkparticipant_arr=$parent->getQueryValue($query_str);
- if(!(count($participant_arr)==count($checkparticipant_arr))) $parent->response(array('response'=>'failed','message'=>$this->page_data['error10']),406);
- if(count($update_str)>0)
- {
- foreach($update_str as $qry)
- {
- $parent->executeQuery($qry);
- }
- }
-
- //LOG
- $logstr='PARTICIPANT SCORE UPDATE';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success','message'=>$this->page_data['success1']),200);
- }
- break;
-
- }
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// TRAINING IMAGE UPLOAD //////////////////////////////////////////////// */
- private function trainingimageupload($parent)
- {
- globalfunc::checkMethodType($parent,array('POST'));
- globalfunc::checkParamCount($parent,1);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
- projectfunc::authorizedRole($parent,array('5'));
-
- $REQUEST_KEYS=array('id'=>'number');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
- $schedule_id=escape_str($parent->_request["id"]);
- //validate training
- $query_str = "SELECT schedule_id FROM `".TABLE_TRAINING_SCHEDULE."` WHERE schedule_id='".$schedule_id."' AND trainer_id='".$parent->current_user_id."' AND is_deleted=0 LIMIT 1";
- $check_arr=$parent->getQueryValue($query_str);
- if(!count($check_arr)>0) $parent->response(array('response'=>'success','message'=>$this->page_data['error1']),406);
-
- //CONNECT S3
- $s3=awsfileserver::connectS3();
- //IMAGE UPLOAD
- $obj= new stdClass();
- $obj->filekey='file';
- $obj->size='10'; //IN MB
- $obj->type=array('jpg','jpeg','png');
- globalfunc::validateFile($parent,$obj);
- $obj->path="../../".S3_TRAINING_URL;
- $obj->filename= 'training_'.$schedule_id.'_'.uniqid();
- $fileName=globalfunc::uploadFile($parent,$obj);
- awsfileserver::checkupload($parent,$s3,S3_BUCKET,S3_TRAINING_URL.$fileName,dirname(__FILE__)."/../../../".S3_TRAINING_URL.$fileName) ;
-
- $qry="UPDATE ".TABLE_TRAINING_SCHEDULE." SET image='".$fileName."' WHERE schedule_id='".$check_arr[0]->schedule_id."'";
- $parent->executeQuery($qry);
-
- //LOG
- $logstr='TRAINING IMAGE UPDATE';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success','message'=>$this->page_data['success1']),200);
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- /* /////////////////////////////// IMAGE UPLOAD //////////////////////////////////////////////// */
- private function participantimageupload($parent)
- {
- globalfunc::checkMethodType($parent,array('POST'));
- globalfunc::checkParamCount($parent,1);
- globalfunc::checkAuthrozation($parent,array('type'=>'user'));
- projectfunc::authorizedRole($parent,array('5'));
-
- $REQUEST_KEYS=array('id'=>'number','userid'=>'number');
- globalfunc::mandatoryKey($parent,$REQUEST_KEYS);
- $schedule_id=escape_str($parent->_request["id"]);
- $userid=escape_str($parent->_request["userid"]);
-
- //validate training
- $query_str = "SELECT * FROM `".TABLE_TRAINING_SCHEDULE."` WHERE schedule_id='".$schedule_id."' AND trainer_id='".$parent->current_user_id."' AND is_deleted=0 LIMIT 1";
- $check_arr=$parent->getQueryValue($query_str);
- if(!count($check_arr)>0) $parent->response(array('response'=>'success','message'=>$this->page_data['error1']),406);
-
- //CONNECT S3
- $s3=awsfileserver::connectS3();
- //IMAGE UPLOAD
- $obj= new stdClass();
- $obj->filekey='file';
- $obj->size='10'; //IN MB
- $obj->type=array('jpg','jpeg','png');
- globalfunc::validateFile($parent,$obj);
- $obj->path="../../".S3_TRAINING_URL;
- $obj->filename= 'partcipant_'.$schedule_id.'_'.$userid.'_'.uniqid();
- $fileName=globalfunc::uploadFile($parent,$obj);
- awsfileserver::checkupload($parent,$s3,S3_BUCKET,S3_TRAINING_URL.$fileName,dirname(__FILE__)."/../../../".S3_TRAINING_URL.$fileName) ;
-
- $qry="UPDATE ".TABLE_TRAINING_PARTICIPANT." SET image='".$fileName."' WHERE schedule_id='".$check_arr[0]->schedule_id."' AND userid='".$userid."'";
- $parent->executeQuery($qry);
-
- //LOG
- $logstr='TRAINING PARTCIPANT IMAGE UPDATE';
- globalfunc::insertUserLog($parent,$logstr);
- $parent->response(array('response'=>'success','message'=>$this->page_data['success1']),200);
- }
- /* //////////////////////////////////////////////////////////////////////////////////////////// */
-
- }
- ?>
|