332 lines
16 KiB
PHP
Executable File
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> <h3>'.$child['URL'].'</h3>';
|
|
$pass = true;
|
|
// echo '<br> 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> Pass2='.($pass===true?'Y':'N').'';
|
|
$pass = ($group ==='admin')?true:$pass;
|
|
//echo '<br> Pass3='.($pass===true?'Y':'N').'';
|
|
if($pass)
|
|
{
|
|
|
|
foreach($child['CHILDREN'] as $grandChildId=>$grandChild)
|
|
{
|
|
// echo '<br><br> <h5>'.$child['URL'].'</h5>';
|
|
$pass = true;
|
|
//echo '<br> Pass1='.($pass===true?'Y':'N').'';
|
|
$pass = $this->ion_auth->coordinator_permission($grandChild['URL']);
|
|
//echo '<br> Pass2='.($pass===true?'Y':'N').'';
|
|
$pass = ($group ==='admin')?true:$pass;
|
|
//echo '<br> Pass3='.($pass===true?'Y':'N').'';
|
|
if($pass)
|
|
{
|
|
//echo '<br> 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> 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;
|
|
}
|
|
|
|
}
|