557 lines
21 KiB
PHP
Executable File

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class CaregiverSchedule_model extends CI_model {
function __construct() {
parent::__construct();
$this->load->database();
}
function insertNurse($data) {
$this->db->insert('caregiver', $data);
return $this->db->insert_id();
}
function getNurseByEmail($email) {
$this->db->where('email', $email);
$query = $this->db->get('caregiver')->row();
return $query;
}
function getNurse() {
$query = $this->db->get('caregiver');
return $query->result();
}
function getSendApprovalList() {
$this->db->where('submited_for_verification', 'yes');
$query = $this->db->get('caregiver');
return $query->result();
}
function getNurseBysearch($search) {
$this->db->order_by('id', 'desc');
$this->db->like('id', $search);
$this->db->or_like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
$query = $this->db->get('caregiver');
return $query->result();
}
function getNurseByLimit($limit, $start, $orderColumn, $orderType) {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('fname', $orderType);
else if($orderColumn==2)
$this->db->order_by('email', $orderType);
else if($orderColumn==3)
$this->db->order_by('phone', $orderType);
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver');
return $query->result();
}
function getNurseByLimitBySearch($limit, $start, $search, $orderColumn, $orderType) {
if($orderColumn==0)
$this->db->order_by('id', $orderType);
else if($orderColumn==1)
$this->db->order_by('fname', $orderType);
else if($orderColumn==2)
$this->db->order_by('email', $orderType);
else if($orderColumn==3)
$this->db->order_by('phone', $orderType);
$this->db->like('id', $search);
$this->db->or_like('fname', $search);
$this->db->or_like('phone', $search);
$this->db->or_like('email', $search);
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver');
return $query->result();
}
function getNurseById($id) {
$this->db->where('id', $id);
$query = $this->db->get('caregiver')->row();
// pre($query);die();
$pref_time=$this->db->get_where('master_timeslot_type',array('id' => $query->availability_time_slot))->row();
$query->preferred_time=$pref_time->name;
$query->preferred_start=date("H:i", strtotime($pref_time->startTime));
$query->preferred_end=date("H:i", strtotime($pref_time->endTime));
// pre($query->preferred_end);die();
return $query;
//echo '<pre>'; print_r($query); echo '</pre>';die;
}
function getTimeSlotById($id){
$this->db->where('id', $id);
$this->db->where('status!=', 0);
return $query=$this->db->get('master_timeslot_type')->row();
}
function getNurseByIonId($id) {
$this->db->where('ion_user_id', $id);
$query = $this->db->get('caregiver');
return $query->row();
}
function email_check($email) {
//echo $email;die;
$this->db->where('email', $email);
$query = $this->db->get('caregiver')->row();
if($query)
return 1;
else
return 0;
}
function update_email_check($email,$ionid) {
//echo $email;die;
$this->db->where('email', $email)->where('id!=',$ionid);
$query = $this->db->get('users')->row();
//echo $this->db->last_query();
// print_r($query);
//die;
if($query)
return 1;
else
return 0;
}
function updateIonUser($email,$password,$id,$ionid){
$update_ion_user = array(
'email' => $email,
'password' => $password
);
$this->db->where('id', $ionid);
$this->db->update('users', $update_ion_user);
$update_caregiver = array(
'email' => $email
);
$this->db->where('id', $id);
$this->db->update('caregiver', $update_caregiver);
}
function updateNurse($id, $data) {
$this->db->where('id', $id);
$this->db->update('caregiver', $data);
return $this->db->affected_rows();
// echo $this->db->last_query();
// die;
}
function updateService($id, $data) {
$this->db->where('caregiver_id', $id);
$this->db->delete('caregiver_service_mapping');
foreach($data as $ser){
$serarr=array(
'caregiver_id'=>$id,
'service_id'=>$ser,
);
$this->db->insert('caregiver_service_mapping', $serarr);
}
return true;
}
function CheckAvailability($data){
$start=$data['scheduleDate'].' '.$data['startTime'];
$end=$data['scheduleDate'].' '.$data['endTime'];
$caregiver_id=$data['caregiver_id'];
$sql="SELECT * FROM caregiver_availability";
$sql.=" where status='1' and caregiver_id='".$caregiver_id."'";
$sql.=" and ( ('".$start."' between start and end)
and
('".$end."' between start and end)
)";
$result=$this->db->query($sql)->result();
$output='';
if(!empty($result)){
$output='Already in Availability List.';
}
//echo $this->db->last_query();
//return json_encode($result);
return $output;
//print_r($data);
}
function get_state_nameByid($id){
$query=$this->db->get_where('master_statelist', array('id' => $id))->row();
return $query->name;
}
function get_state_list(){
$query=$this->db->get_where('master_statelist', array('status' => '1'));
return $query->result();
}
function get_language_list(){
$query=$this->db->get_where('master_language', array('status' => '1'));
return $query->result();
}
function get_country_list(){
$query=$this->db->get_where('master_country', array('status' => '1'));
return $query->result();
}
function get_time_slot_list(){
$query=$this->db->get_where('master_timeslot_type', array('status' => '1'));
return $query->result();
}
function get_time_slot_Byid($id){
$query=$this->db->get_where('master_timeslot_type', array('id' => $id))->row();
return $query->name;
}
function get_ref_src_list(){
$query=$this->db->get_where('master_cg_referal_source', array('status' => '1'));
return $query->result();
}
function get_ref_src_Byid($id){
$query=$this->db->get_where('master_cg_referal_source', array('id' => $id))->row();
return $query->name;
}
function get_service_list(){
$query=$this->db->get_where('master_service_activity', array('status' => '1'));
return $query->result();
}
function get_CaregiverService_listById($id){
$query=$this->db->get_where('caregiver_service_mapping', array('caregiver_id' => $id));
return $query->result();
}
function caregiver_skill_list(){
$query=$this->db->get_where('master_cg_skills', array('status' => '1'));
return $query->result();
}
function get_ethnicity_list(){
$query=$this->db->get_where('master_ethnicity', array('status' => '1'));
return $query->result();
}
function get_eyeColors(){
$query=$this->db->get_where('master_eye_color', array('status' => '1'));
return $query->result();
}
function get_hairColors(){
$query=$this->db->get_where('master_hair_color', array('status' => '1'));
return $query->result();
}
function caregiver_skill_NameByid($id){
$query=$this->db->get_where('master_cg_skills', array('id' => $id))->row();
return $query->name;
}
function getProgress(){
$id = $this->session->userdata('user_id');
$query=$this->db->get_where('caregiver', array('ion_user_id' => $id))->row();
return $query->progress;
// print_r($query->progress);
// die;
}
function addVerificationHistory($data){
$this->db->insert('caregiver_verification_history', $data);
return $this->db->insert_id();
}
function addVerificationHistoryDetails($data){
$this->db->insert('caregiver_verification_history_details', $data);
return $this->db->insert_id();
}
function delete($id) {
$this->db->where('id', $id);
$this->db->delete('caregiver');
}
function addNurseDocuments($data){
$this->db->insert('users_documents', $data);
return $this->db->insert_id();
}
function updateNurseDocuments($data,$id){
$this->db->where('id', $id);
$this->db->update('users_documents', $data);
}
function checkDocumentsExsist($ionid,$doc_type){
$this->db->where('ion_user_id', $ionid)->where('user_type', 'Caregiver')->where('documents_type', $doc_type)->where('status', 1);
$query = $this->db->get('users_documents')->row();
if($query)
return 1;
else
return 0;
}
function getNurseDocuments($ionid){
$this->db->where('ion_user_id', $ionid)->where('user_type', 'Caregiver')->where('status', 1);
$query = $this->db->get('users_documents');
// print_r($query);die;
return $query->result();
}
function deleteNursePreDocuments($doc_id){
$this->db->where('id', $doc_id);
$this->db->update('users_documents', array('status'=>0));
}
function getCaregiverPatient($id){
$this->db->distinct('a.patient_id');
$this->db->select('a.*,b.*');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->group_by('a.patient_id');
$this->db->where('a.caregiver_id',$id);
$query = $this->db->get()->result();
return $query;
}
function getPreviousCaregiverPatientSchedule($id){
$now=date("Y-m-d 00:00:00");
$this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->where('a.start<',$now);
$this->db->where("`a`.`caregiver_id`=$id AND `a`.`acceptance_status`!='Declined' ORDER BY FIELD(a.acceptance_status, 'Unconfirmed','Accepted','Declined') ASC");
$query = $this->db->get()->result();
return $query;
}
function getUpcommingCaregiverPatientSchedule($id){
$now=date("Y-m-d 00:00:00");
$this->db->select('a.id as scheduleId,a.patient_id as patient_row_id,a.*,b.*');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->where('a.start>',$now);
$this->db->where("`a`.`caregiver_id`=$id AND `a`.`acceptance_status`!='Declined' ORDER BY FIELD(a.acceptance_status, 'Unconfirmed','Accepted','Declined') ASC");
$query = $this->db->get()->result();
return $query;
}
function masterScheduleList(){
$this->db->where('status','1');
$query = $this->db->get('master_schedule')->result();
return $query;
}
function masterScheduleWeekdayList(){
$this->db->where('status','1');
$this->db->group_by('week_day');
$query = $this->db->get('master_schedule')->result();
return $query;
}
function getTimeByDay($day){
$this->db->where('week_day', $day)->where('status','1');
$query = $this->db->get('master_schedule')->result();
return $query;
}
function saveCaregiverSchedule($data){
$this->db->insert('caregiver_schedule', $data);
return $this->db->insert_id();
}
function getCaregiverSchedule($id){
$this->db->where('caregiver_id', $id)->where('status','1');
$query = $this->db->get('caregiver_schedule')->result();
return $query;
}
function getCaregiverEventSchedule($id){
$this->db->where('status','1');
$this->db->where('caregiver_id',$id);
$query = $this->db->get('caregiver_schedule')->result();
return $query;
}
function updateCaregiverEventSchedule($data,$id){
$this->db->where('id', $id);
$query=$this->db->update('caregiver_schedule', $data);
return $this->db->affected_rows();
}
function deleteCaregiverEventSchedule($id){
$this->db->where('id', $id);
$query=$this->db->update('caregiver_schedule', array('status'=>'0'));
return $this->db->affected_rows();
}
function deleteSchedule($scheduleId,$caregiverId,$update_by){
$update_on=date ('Y-m-d H:i:s', now());
$data=array(
'update_by'=>$update_by,
'update_on'=>$update_on,
'status'=>'0',
);
$this->db->where('caregiver_id', $caregiverId)->where('schedule_master_id', $scheduleId)->where('status', '1');
$query=$this->db->update('caregiver_schedule', $data);
return $this->db->affected_rows();
}
function updateAcceptance($post)
{
$scheduleId = $post["scheduleId"];
$decision = $post["decision"];
$rejection_reason = $post["rejectionReason"];
$this->db->where('id', $scheduleId);
$query=$this->db->update('caregiver_schedule',
array(
'acceptance_status'=>$decision,
'rejection_reason' =>$rejection_reason
)
);
return $this->db->affected_rows();
}
public function getServices(){
$skillId=$_GET['skillId'];
$this->db->select('b.*');
$this->db->where('a.skill_id',$skillId);
$this->db->from('skill_to_service_mapping a');
$this->db->join('master_service_activity b', 'b.id = a.service_id', 'left');
$query = $this->db->get()->result();
//echo $this->db->last_query();
$service_count=count($query);
// echo '<pre>'; print_r($query); echo '</pre>';
// die;
$output='';
if($service_count>0){
$output.='
<label for="exampleInputEmail1" class="required-field">List of Service(Press Ctrl for multiple select)</label>
<select name="service[]" class="form-control multiselect-class" multiple required data-error="Please select a service.">
';
foreach($query as $service){
$output.='<option value="'.$service->id.'">'.$service->name.'</option>';
}
$output.=' </select>
<div class="help-block with-errors"></div>
';
}
return $output;
}
function getScheduleByLimitBySearch($limit, $start, $search, $orderColumn, $orderType, $caregiverId) {
if($orderColumn==0)
$this->db->order_by('patient_id', $orderType);
else if($orderColumn==1)
$this->db->order_by('start', $orderType);
else if($orderColumn==2)
$this->db->order_by('start', $orderType);
else if($orderColumn==3)
$this->db->order_by('end', $orderType);
$this->db->like('patient_id', $search);
$this->db->or_like('start', $search);
$this->db->or_like('end', $search);
$this->db->where('caregiver_id',$caregiverId);
$this->db->where('status','1');
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver_schedule');
return $query->result();
}
function getScheduleByLimit($limit, $start, $orderColumn, $orderType, $caregiverId) {
if($orderColumn==0)
$this->db->order_by('patient_id', $orderType);
else if($orderColumn==1)
$this->db->order_by('start', $orderType);
else if($orderColumn==2)
$this->db->order_by('start', $orderType);
else if($orderColumn==3)
$this->db->order_by('end', $orderType);
$this->db->where('caregiver_id',$caregiverId);
$this->db->where('status','1');
$this->db->limit($limit, $start);
$query = $this->db->get('caregiver_schedule')->result();
return $query;
}
function saveAvailability($data){
$created_by=$this->session->userdata('user_id');
$created_on=date ('Y-m-d H:i:s', now());
$data['color']='#2D95BF';
$data['start']=$data['Sdate'].' '.$data['startTime'];
$data['end']=$data['Sdate'].' '.$data['endTime'];
$data['caregiver_id']=$data['caregiver_id'];
$data['created_by']=$created_by;
$data['created_on']=$created_on;
$data['status']=1;
unset($data['startTime']);
unset($data['endTime']);
unset($data['Sdate']);
//print_r($data);die;
$this->db->insert('caregiver_availability', $data);
$insertId=$this->db->insert_id();
if($insertId>0){ return true; }else{ return false; }
}
function caregiverScheduleById($caregiverId){
//echo 'test';die;
$now=date("Y-m-d 00:00:00");
$this->db->select('a.*,b.first_name,b.last_name');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->where('a.caregiver_id',$caregiverId);
$this->db->where('a.start>',$now);
$this->db->where('a.status','1');
$this->db->order_by('a.start', 'asc');
$query = $this->db->get()->result();
//echo $this->db->last_query();die;
return $query;
}
function availableScheduleById($caregiverId){
$now=date("Y-m-d H:i:s");
$this->db->where('caregiver_id',$caregiverId);
$this->db->where('start>',$now);
$this->db->where('status','1');
$this->db->order_by('start', 'asc');
$query = $this->db->get('caregiver_availability')->result();
//echo $this->db->last_query();die;
return $query;
}
function previousScheduleById($caregiverId){
$now=date("Y-m-d 00:00:00");
$this->db->select('a.*,b.first_name,b.last_name');
$this->db->from('caregiver_schedule a');
$this->db->join('patient_details b', 'b.id = a.patient_id', 'left');
$this->db->where('a.caregiver_id',$caregiverId);
$this->db->where('a.start<',$now);
$this->db->where('a.status','1');
$this->db->order_by('a.start', 'asc');
$query = $this->db->get()->result();
return $query;
}
function deleteAvailability($data){
$id=$data['id'];
$this->db->where('id', $id);
$this->db->update('caregiver_availability', array("status"=>0));
$result=$this->db->affected_rows();
if($result>0){
$output="Deleted Successfully.";
}else{
$output="Delete Error.";
}
return $output;
//print_r($result);
}
function schedulePreferenceById($data){
// $caregiverId = $data['caregiver_id'];
$caregiverId=$data;
$this->db->select('a.*,b.name');
$this->db->from('schedule_preferences a');
$this->db->join('master_timeslot_type b', 'b.id = a.session', 'left');
$this->db->where('a.nurse_id',$caregiverId);
$query = $this->db->get()->result_array();
return $query;
}
function getCaregiverPreferenceDate($data){
$caregiverId = $data['caregiver_id'];
$day = $data['day'];
$this->db->select('a.*,b.name');
$this->db->from('schedule_preferences a');
$this->db->join('master_timeslot_type b', 'b.id = a.session', 'left');
$this->db->where('a.nurse_id',$caregiverId);
$this->db->where('a.day',$day);
$query = $this->db->get()->row();
return $query;
}
function getFcmToken($caregiver_id){
$this->db->select("b.fcm_token,a.id");
$this->db->from('caregiver a');
$this->db->join('users b', 'b.id = a.ion_user_id', 'left');
$this->db->where('a.id',$caregiver_id);
$query = $this->db->get()->row();
return $query;
}
function getFcmTokenByAvailabilityId($availabilityId){
$this->db->select("b.fcm_token,a.id as availability_id, c.ion_user_id");
$this->db->from('caregiver_availability a');
$this->db->join('caregiver c', 'c.id = a.caregiver_id', 'left');
$this->db->join('users b', 'b.id = c.ion_user_id', 'left');
$this->db->where('a.id',$availabilityId);
$query = $this->db->get()->row();
return $query;
}
}