332 lines
16 KiB
PHP
Executable File

<?php
if (!defined('BASEPATH'))
exit('No direct script access allowed');
class Home_model extends CI_model {
function __construct() {
parent::__construct();
$this->load->database();
}
public function getSum($field, $table) {
$this->db->select_sum($field);
$query = $this->db->get($table);
return $query->result();
}
public function activity_log($data){
$this->db->insert('audit_log', $data);
// die;
}
public function get_menu($user_id){
$this->db->select('a.name');
$this->db->from('groups a');
$this->db->join('users_groups b', 'b.group_id = a.id', 'left');
$this->db->where('b.user_id', $user_id);
$data = $this->db->get()->row();
$group =$data->name;
//print_r($group);die;
if($group=='Caregiver')
{
$accessMatrix = $this->__caregiverAccessMatrix($group,$user_id);
}
else if($group=='Physician')
{
//echo "phy";
$accessMatrix = $this->__physicianAccessMatrix($group,$user_id);
//echo '<pre>'; print_r($accessMatrix); echo '</pre>';die;
// die;
}
else
{
$accessMatrix = $this->__codinatorAccessMatrix($group,$user_id);
}
return $accessMatrix;
}
private function __codinatorAccessMatrix($group,$user_id)
{
$accessableMenu = array();
$mainCounter = 0;
$this->db->order_by('menu_order', 'asc');
$mainmenu = $this->db->get_where('permissions', array('parent_id' => 0,'status'=>'1'))->result();
foreach ($mainmenu as $menu) {
$accessableChildren = array();
$childrenCount = 0;
$this->db->order_by('menu_order', 'asc');
$children = $this->db->get_where('permissions', array('parent_id' => $menu->id,'status'=>'1'))->result();
foreach($children as $child)
{
$accessableChildren[$childrenCount]['ID'] = $child->id;
$accessableChildren[$childrenCount]['TEXT'] = $child->name;
$accessableChildren[$childrenCount]['URL'] = $child->url;
$this->db->order_by('menu_order', 'asc');
$child2=$this->db->get_where('permissions', array('parent_id' => $child->id,'status'=>'1'))->result();
$accessableChildren2 = array();
$childrenCount2 = 0;
foreach($child2 as $c2){
$accessableChildren2[$childrenCount2]['ID'] = $c2->id;
$accessableChildren2[$childrenCount2]['TEXT'] = $c2->name;
$accessableChildren2[$childrenCount2]['URL'] = $c2->url;
$childrenCount2++;
}
$accessableChildren[$childrenCount]['CHILDREN'] = $accessableChildren2;
$childrenCount++;
}
$accessableMenu['MAIN'][$mainCounter]['ID'] = $menu->id;
$accessableMenu['MAIN'][$mainCounter]['TEXT'] = $menu->name;
$accessableMenu['MAIN'][$mainCounter]['URL'] = $menu->url;
$accessableMenu['MAIN'][$mainCounter]['Menu_Icon'] = $menu->menu_icon;
$accessableMenu['MAIN'][$mainCounter]['CHILDREN'] = $accessableChildren;
$mainCounter++;
}
$accessMenu = array();
foreach($accessableMenu['MAIN'] as $mainId=>$main)
{
//echo '<br><br><h1>'.$main['URL'].'</h1>';
$pass = true;
// echo '<br>Pass1='.($pass===true?'Y':'N').'';
$pass = (count($main['CHILDREN'])>0)?$this->ion_auth->coordinator_permission($main['URL']):true;
$pass = $this->ion_auth->coordinator_permission($main['URL']);
//echo '<br>this->ion_auth->coordinator_permission='.$this->ion_auth->coordinator_permission($main['URL']).'';
//echo '<br>Pass2='.($pass===true?'Y':'N').'';
$pass = ($group ==='admin')?true:$pass;
//echo '<br>Pass3='.($pass===true?'Y':'N').'';
if($pass===true)
{
foreach($main['CHILDREN'] as $childId=>$child)
{
//echo '<br><br>&nbsp;&nbsp;<h3>'.$child['URL'].'</h3>';
$pass = true;
// echo '<br>&nbsp;&nbsp;Pass1='.($pass===true?'Y':'N').'';
//$pass = (count($child['CHILDREN'])>0)?$this->ion_auth->coordinator_permission($child['URL']):true;
$pass = $this->ion_auth->coordinator_permission($child['URL']);
// echo '<br>this->ion_auth->coordinator_permission='.$this->ion_auth->coordinator_permission($child['URL']).'';
// echo '<br>&nbsp;&nbsp;Pass2='.($pass===true?'Y':'N').'';
$pass = ($group ==='admin')?true:$pass;
//echo '<br>&nbsp;&nbsp;Pass3='.($pass===true?'Y':'N').'';
if($pass)
{
foreach($child['CHILDREN'] as $grandChildId=>$grandChild)
{
// echo '<br><br>&nbsp;&nbsp;&nbsp;&nbsp;<h5>'.$child['URL'].'</h5>';
$pass = true;
//echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;Pass1='.($pass===true?'Y':'N').'';
$pass = $this->ion_auth->coordinator_permission($grandChild['URL']);
//echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;Pass2='.($pass===true?'Y':'N').'';
$pass = ($group ==='admin')?true:$pass;
//echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;Pass3='.($pass===true?'Y':'N').'';
if($pass)
{
//echo '<br>&nbsp;&nbsp;&nbsp;&nbsp;TEXT='.$grandChildId['TEXT'].'';
$accessMenu['MAIN'][$mainId]['CHILDREN'][$childId]['CHILDREN'][$grandChildId]['NAME'] = $grandChild['TEXT'];
$accessMenu['MAIN'][$mainId]['CHILDREN'][$childId]['CHILDREN'][$grandChildId]['URL'] = $grandChild['URL'];
}
}
// if($group ==='admin' || ( count($child['CHILDREN'])>0 && isset($accessMenu['MAIN'][$mainId]['CHILDREN'][$childId]['CHILDREN'])) )
// {
//echo '<br>&nbsp;&nbsp;TEXT='.$child['TEXT'].'';
$accessMenu['MAIN'][$mainId]['CHILDREN'][$childId]['NAME'] = $child['TEXT'];
$accessMenu['MAIN'][$mainId]['CHILDREN'][$childId]['URL'] = $child['URL'];
//}
}
}
// if($group ==='admin' || (count($main['CHILDREN'])>0 && isset($accessMenu['MAIN'][$mainId]['CHILDREN'])))
// {
// echo '<br>TEXT='.$main['TEXT'].'';
$accessMenu['MAIN'][$mainId]['NAME'] = $main['TEXT'];
$accessMenu['MAIN'][$mainId]['URL'] = $main['URL'];
$accessMenu['MAIN'][$mainId]['Menu_Icon'] = $main['Menu_Icon'];
//}
}
}
// echo '<pre>';
// print_r($accessMenu);
return $accessMenu;
}
private function __caregiverAccessMatrix($group,$user_id)
{
//echo $user_id;
$this->db->where('ion_user_id', $user_id);
$caregiver_dtl = $this->db->get('caregiver')->row();
$caregiver_menu = $this->db->order_by("menu_order", "asc")->get_where('caregiver_menu',array('parent_id' => '0','status'=>'1'))->result();
//echo '<pre>'; print_r($caregiver_menu); echo '</pre>';die;
$accessMenu=array();
$i=0;
foreach($caregiver_menu as $menu){
$caregiver_child_menu = $this->db->order_by("menu_order", "asc")->get_where('caregiver_menu',array('parent_id' => $menu->id,'status'=>'1'))->result();
$Children = array();
$childrenCount = 0;
foreach($caregiver_child_menu as $child){
if($caregiver_dtl->verification_status=='unverified' && $child->menu_for=='unverified'){
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['NAME'] = $child->name;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['URL'] = $child->url;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['Menu_Icon'] = $child->menu_icon;
$childrenCount++;
}else if($caregiver_dtl->verification_status=='verified' && $child->menu_for=='verified'){
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['NAME'] = $child->name;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['URL'] = $child->url;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['Menu_Icon'] = $child->menu_icon;
$childrenCount++;
}else if($child->menu_for=='all'){
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['NAME'] = $child->name;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['URL'] = $child->url;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['Menu_Icon'] = $child->menu_icon;
$childrenCount++;
}
}
if($caregiver_dtl->verification_status=='unverified' && $menu->menu_for=='unverified'&& $caregiver_dtl->submited_for_verification == 'no'){
$accessMenu['MAIN'][$i]['NAME'] = $menu->name;
$accessMenu['MAIN'][$i]['URL'] = $menu->url;
$accessMenu['MAIN'][$i]['Menu_Icon'] = $menu->menu_icon;
$i++;
}else if($caregiver_dtl->verification_status=='verified' && $menu->menu_for=='verified'){
$accessMenu['MAIN'][$i]['NAME'] = $menu->name;
$accessMenu['MAIN'][$i]['URL'] = $menu->url;
$accessMenu['MAIN'][$i]['Menu_Icon'] = $menu->menu_icon;
$i++;
}else if($menu->menu_for=='all'){
$accessMenu['MAIN'][$i]['NAME'] = $menu->name;
$accessMenu['MAIN'][$i]['URL'] = $menu->url;
$accessMenu['MAIN'][$i]['Menu_Icon'] = $menu->menu_icon;
$i++;
}
}
return $accessMenu;
}
private function __physicianAccessMatrix($group,$user_id)
{
//echo $user_id;die;
$this->db->where('ion_user_id', $user_id);
$physician_dtl = $this->db->get('physician')->row();
$physician_menu = $this->db->order_by("menu_order", "asc")->get_where('physician_menu',array('parent_id' => '0'))->result();
//echo '<pre>'; print_r($physician_menu); echo '</pre>';die;
$accessMenu=array();
$i=0;
foreach($physician_menu as $menu){
$physician_child_menu = $this->db->order_by("menu_order", "asc")->get_where('physician_menu',array('parent_id' => $menu->id))->result();
//echo '<pre>'; print_r($physician_dtl); echo '</pre>';die;
$Children = array();
$childrenCount = 0;
foreach($physician_child_menu as $child){
if($physician_dtl->verification_status=='unverified' && $child->menu_for=='unverified'){
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['NAME'] = $child->name;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['URL'] = $child->url;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['Menu_Icon'] = $child->menu_icon;
$childrenCount++;
}else if($physician_dtl->verification_status=='verified' && $child->menu_for=='verified'){
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['NAME'] = $child->name;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['URL'] = $child->url;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['Menu_Icon'] = $child->menu_icon;
$childrenCount++;
}else if($child->menu_for=='all'){
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['NAME'] = $child->name;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['URL'] = $child->url;
$accessMenu['MAIN'][$i]['CHILDREN'][$childrenCount]['Menu_Icon'] = $child->menu_icon;
$childrenCount++;
}
}
if($physician_dtl->verification_status=='unverified' && $menu->menu_for=='unverified'){
$accessMenu['MAIN'][$i]['NAME'] = $menu->name;
$accessMenu['MAIN'][$i]['URL'] = $menu->url;
$accessMenu['MAIN'][$i]['Menu_Icon'] = $menu->menu_icon;
$i++;
}else if($physician_dtl->verification_status=='verified' && $menu->menu_for=='verified'){
$accessMenu['MAIN'][$i]['NAME'] = $menu->name;
$accessMenu['MAIN'][$i]['URL'] = $menu->url;
$accessMenu['MAIN'][$i]['Menu_Icon'] = $menu->menu_icon;
$i++;
}else if($menu->menu_for=='all'){
$accessMenu['MAIN'][$i]['NAME'] = $menu->name;
$accessMenu['MAIN'][$i]['URL'] = $menu->url;
$accessMenu['MAIN'][$i]['Menu_Icon'] = $menu->menu_icon;
$i++;
}
}
//echo '<pre>'; print_r($accessMenu); echo '</pre>';die;
return $accessMenu;
}
public function getCargiverInfo($id){
$this->db->where('id', $id);
$query = $this->db->get('caregiver')->row();
$query->full_name=$query->fname.' '.$query->lname;
//return json_encode($query);
$this->db->where('id', $query->qualification_type);
$this->db->where('status', '1');
$qualification = $this->db->get('master_cg_skills')->row();
$query->qualification_name=$qualification->name;
return $query;
}
function getSchedule($patientId='',$caregiverId='',$start='',$end=''){
$this->db->where('status','1');
if($patientId!='')
$this->db->where('patient_id',$patientId);
if($caregiverId!='')
$this->db->where('caregiver_id',$caregiverId);
if($start!='' && $end!='')
$this->db->where("start >= '".$start."' AND end <= '".$end."'");
$query = $this->db->get('caregiver_schedule')->result();
$i=0;
foreach($query as $q){
//$id = $q->id;
$sed[$i]['id']=$q->id;
$sed[$i]['patientId']=$q->patient_id;
$sed[$i]['caregiverId']=$q->caregiver_id;
$sed[$i]['start']=$q->start;
$sed[$i]['end']=$q->end;
$sed[$i]['title']=$q->title;
$sed[$i]['color']='#e83e8c';
$i++;
}
$availability=$this->db->get_where('caregiver_availability',array('caregiver_id'=>$caregiverId,'status'=>1))->result();
foreach($availability as $avl){
$sed[$i]['id']=$avl->id;
//$sed[$i]['patientId']=$q->patient_id;
$sed[$i]['caregiverId']=$avl->caregiver_id;
$sed[$i]['start']=$avl->start;
$sed[$i]['end']=$avl->end;
//$sed[$i]['title']=$q->title;
$sed[$i]['rendering']='background';
$sed[$i]['color']='#a2f0ba';
$i++;
}
$ret = array();
foreach($sed as $q){
$ret[] = $q;
}
return $ret;
}
}