Current File : /home/giriqfky/public_html/Barga/application/modules/services/models//Services_model.php_11_03_2019
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
class Services_model extends CI_Model
{
var $table_services = TABLE_SERVICES;
var $table_modules = TABLE_MODULES;
var $table_questionnaires = TABLE_QUESTIONNAIRES;
var $table_questionnaire_answers = TABLE_QUESTIONNAIRE_ANSWERS;
public function __construct()
{
parent::__construct();
}
public function getServiceList($params = array(), $service_type)
{
$this->db->select('*');
$this->db->from($this->table_services);
if(!empty($params['search']['service_id'])){
$this->db->where('parent_id',$params['search']['service_id']);
}
if(!empty($params['search']['service_name'])){
$this->db->like('service_name',$params['search']['service_name']);
}
if($service_type > 0) { $this->db->where('parent_id', $service_type); }
$this->db->order_by('display_order','ASC');
//set start and limit
if(array_key_exists("start",$params) && array_key_exists("limit",$params)) {
$this->db->limit($params['limit'],$params['start']);
} elseif(!array_key_exists("start",$params) && array_key_exists("limit",$params)) {
$this->db->limit($params['limit']);
}
return $this->db->get()->result();
}
public function getServiceDataById($service_id)
{
$this->db->select('*');
$this->db->where('service_id', $service_id);
$this->db->limit(1);
return $this->db->get($this->table_services)->row();
}
public function serviceSave($data_array, $id = 0)
{
if($id == 0) {
$this->db->insert($this->table_services, $data_array);
$last_id = $this->db->insert_id();
} else {
$this->db->where('service_id', $id);
$this->db->update($this->table_services, $data_array);
$last_id = $id;
}
return $last_id;
}
public function getServiceNameById($service_id)
{
if($service_id > 0) {
$this->db->select('service_name');
$this->db->where('service_id', $service_id);
$this->db->limit(1);
$category_data = $this->db->get($this->table_services)->row();
return $category_data->service_name;
} else {
return "";
}
}
public function getServiceImage($service_id)
{
$this->db->select('service_img_path');
$this->db->where(array('service_id' => $service_id));
$this->db->limit(1);
$service_data = $this->db->get($this->table_services)->row();
return $service_data->service_img_path;
}
public function getParentIdByServiceId($service_id)
{
$this->db->select('parent_id');
$this->db->where(array('service_id' => $service_id));
$this->db->limit(1);
$service_data = $this->db->get($this->table_services)->row();
return $service_data->parent_id;
}
public function getServiceName($service_id){
$this->db->select('*');
$this->db->where(array('service_id' => $service_id));
$service_data = $this->db->get($this->table_services)->row();
return $service_data->service_name;
}
public function getPackageServiceDropDown(){
$this->db->select('*');
$this->db->where('parent_id', 0);
return $this->db->get($this->table_services);
}
public function getQuestionnaireList($params = array(), $service_type)
{
$this->db->select('q.*,s.service_name');
$this->db->from($this->table_questionnaires ." q");
$this->db->join($this->table_services. ' s', 's.service_id = q.service_id');
if(!empty($params['search']['service_id'])){
$this->db->where('q.service_id',$params['search']['service_id']);
}
if(!empty($params['search']['question'])){
$this->db->like('question',$params['search']['question']);
}
if($service_type > 0) { $this->db->where('parent_id', $service_type); }
$this->db->order_by('q.service_id','DESC');
//set start and limit
if(array_key_exists("start",$params) && array_key_exists("limit",$params)) {
$this->db->limit($params['limit'],$params['start']);
} elseif(!array_key_exists("start",$params) && array_key_exists("limit",$params)) {
$this->db->limit($params['limit']);
}
return $this->db->get()->result();
}
public function getQuestionnaireDataById($questionnaire_id)
{
$this->db->select('*');
$this->db->where('questionnaire_id', $questionnaire_id);
$this->db->limit(1);
return $this->db->get($this->table_questionnaires)->row();
}
public function questionnaireSave($data_array, $id = 0)
{
if($id == 0) {
$this->db->insert($this->table_questionnaires, $data_array);
$last_id = $this->db->insert_id();
} else {
$this->db->where('questionnaire_id', $id);
$this->db->update($this->table_questionnaires, $data_array);
$last_id = $id;
}
return $last_id;
}
public function deleteQuestionnaire($questionnaire_id)
{
$this->db->select('*');
$this->db->where('questionnaire_id', $questionnaire_id);
$row_count = $this->db->get($this->table_questionnaire_answers)->num_rows();
if($row_count == 0) {
$this->db->where('questionnaire_id', $questionnaire_id);
$this->db->delete($this->table_questionnaires);
return true;
} else {
return false;
}
}
public function deleteService($service_id)
{
$response_code = 0;
/*** Check whether child exist or not start ***/
$this->db->select('*');
$this->db->where('parent_id', $service_id);
$child_count = $this->db->get($this->table_services)->num_rows();
/*** Check whether child exist or not start ***/
if($child_count == 0) {
$this->db->select('*');
$this->db->where('service_id', $service_id);
$row_count = $this->db->get($this->table_questionnaires)->num_rows();
if($row_count == 0) {
$this->db->where('service_id', $service_id);
$this->db->delete($this->table_services);
$response_code = 1; // successfully delete
} else {
$response_code = 2; // If questionnaires exist
}
} else {
$response_code = 3; // If child entry exist
}
return $response_code;
}
public function getChildServiceCount($service_id)
{
$this->db->select('*');
$this->db->where('parent_id', $service_id);
$child_count = $this->db->get($this->table_services)->num_rows();
return $child_count;
}
/*** Recursive Dropdown Start ***/
public function getServiceParentDropDown($service_type, $selected_id, $self_id, $required, $field_name)
{
if(empty($selected_id)) $selected_id = array();
if($required == true) $required = '<span class="required">*</span>';
$dropdown = "";
$dropdown .= '<select name="'.$field_name.'" id="'.$field_name.'" class="form-control" onchange="serviceTypeToggle(this.value);">';
$dropdown .= '<option value="">All Services</option>';
if($selected_id == 0 && $selected_id !='') {
//$dropdown .= '<option value="0" selected="selected">Parent</option>';
} else {
//$dropdown .= '<option value="0">Parent</option>';
}
$this->db->select('*');
//$this->db->where('is_visible', 1);
$this->db->where('parent_id', $service_type);
if($self_id != '') {
$this->db->where('service_id !=', $self_id);
}
$this->db->order_by('display_order', 'ASC');
$parent_data = $this->db->get($this->table_services)->result();
$i = 1;
foreach($parent_data as $key => $p_data){
if($p_data->service_id == $selected_id) {
$dropdown .= '<option value="'.$p_data->service_id.'" selected> '.$i.'. '.$p_data->service_name.'</option>';
} else {
$dropdown .= '<option value="'.$p_data->service_id.'"> '.$i.'. '.$p_data->service_name.'</option>';
}
$service_parent_id = $p_data->service_id;
$dropdown .= $this->serviceRecurssive($service_parent_id,$selected_id,$self_id);
$i++;
}
$dropdown .= '</select>';
return $dropdown;
}
public function serviceRecurssive($service_parent_id, $selected_id, $self_id)
{
if(empty($selected_id)) $selected_id = array();
$dropdown = "";
$this->db->select('*');
//$this->db->where('is_visible', 1);
$this->db->where('parent_id', $service_parent_id);
if($self_id != '') {
$this->db->where('service_id !=', $self_id);
}
$this->db->order_by('display_order', 'ASC');
$child_data = $this->db->get($this->table_services)->result();
$j = 1;
foreach($child_data as $key => $c_data){
$spaces = $this->serviceSpacePrint($c_data->service_id);
if($c_data->service_id == $selected_id) {
$dropdown .= '<option value="'.$c_data->service_id.'" selected>'.$spaces.$j.'. '.$c_data->service_name.'</option>';
} else {
$dropdown .= '<option value="'.$c_data->service_id.'">'.$spaces.$j.'. '.$c_data->service_name.'</option>';
}
$service_parent_id = $c_data->service_id;
if($service_parent_id != ''){
$dropdown .= $this->serviceRecurssive($service_parent_id,$selected_id,$self_id);
}
$j++;
}
return $dropdown;
}
public function serviceSpacePrint($service_id)
{
$print_space = "";
do {
$this->db->select('*');
//$this->db->where('is_visible', 1);
$this->db->where('service_id', $service_id);
$this->db->limit(1);
$d_data = $this->db->get($this->table_services)->row();
if(@$d_data->parent_id != 0) {
$print_space .=" ";
$service_id = $d_data->parent_id;
$continue = 1;
} else {
$continue = 0;
}
} while($continue == 1);
return $print_space;
}
/*** Recursive Dropdown End ***/
public function getServiceDepth($service_id = 0, $depth = 0, $i = 0)
{
$this->db->select('parent_id');
//$this->db->where('is_visible', 1);
if($depth > 0) $this->db->where('parent_id', $depth);
else $this->db->where('service_id', $service_id);
$this->db->limit(1);
$row = $this->db->get($this->table_services)->row();
$depth = $row->parent_id;
return $this->getServiceDepth($service_id, $depth, $i);
}
public function updateService($sid, $cat_type)
{
$query = "UPDATE ".TABLE_SERVICES." SET cat_type = ".$cat_type." WHERE service_id = ".$sid."";
$this->db->query($query);
}
public function getChildServices($service_id, $service_ids = array())
{
$i = 0;
//$service_ids = (!isset($service_ids))?array():$service_ids;
$this->db->select('service_id,parent_id');
$this->db->where('parent_id', $service_id);
$query = $this->db->get(TABLE_SERVICES);
if($query->num_rows() > 0) {
foreach($query->result() as $s) {
$service_ids[] = $s->service_id;
//echo '<br />';
$service_ids = $this->getChildServices($s->service_id, $service_ids);
}
return $service_ids;
}
return $service_ids;
}
function updateServiceCats($fields, $ids)
{
$this->db->where_in('service_id', $ids);
return $this->db->update(TABLE_SERVICES, $fields);
}
}