File: /home/dmstechonline/crm.chaitanyahospitalvirar.com/application/controllers/admin/Customfield.php
<?php
if (!defined('BASEPATH')) {
exit('No direct script access allowed');
}
class Customfield extends Admin_Controller
{
public $custom_fields_list = array();
public function __construct()
{
parent::__construct();
$this->load->library('encoding_lib');
$this->load->helper('customfield_helper');
$this->config->load('custom_filed-config');
$this->custom_fields_list = $this->config->item('custom_fields');
$this->custom_field_table = $this->config->item('custom_field_table');
}
public function index()
{
if (!$this->rbac->hasPrivilege('custom_fields', 'can_view')) {
access_denied();
}
$this->session->set_userdata('top_menu', 'setup');
$this->session->set_userdata('sub_menu', 'customfield/index');
$customfields = $this->customfield_model->get();
$data['custom_fields_list'] = $this->custom_fields_list;
$customfield_bundle = $this->myCustomFieldBundle($customfields);
$data['customfields'] = $customfield_bundle;
$data['custom_field_table'] = $this->custom_field_table;
$this->form_validation->set_rules('belong_to', $this->lang->line('field_belongs_to'), 'trim|required|xss_clean');
$this->form_validation->set_rules('type', $this->lang->line('field_type'), 'trim|required|xss_clean');
$this->form_validation->set_rules('name', $this->lang->line('field_name'), 'trim|required|xss_clean');
$this->form_validation->set_rules('field_values', $this->lang->line('field_values'), 'callback_validate_type');
if ($this->form_validation->run() == true) {
$data = array(
'belong_to' => $this->input->post('belong_to'),
'type' => $this->input->post('type'),
'bs_column' => $this->input->post('column'),
'name' => $this->input->post('name'),
'field_values' => $this->input->post('field_values'),
'validation' => isset($_POST['validation']) ? $_POST['validation'] : "",
'visible_on_table' => isset($_POST['display_tbl']) ? $_POST['display_tbl'] : "",
'visible_on_print' => isset($_POST['display_print']) ? $_POST['display_print'] : "",
'visible_on_report' => isset($_POST['display_report']) ? $_POST['display_report'] : "",
'visible_on_patient_panel' => isset($_POST['display_patient']) ? $_POST['display_patient'] : "",
);
$this->customfield_model->add($data);
$this->session->set_flashdata('msg', '<div class="alert alert-success text-left">' . $this->lang->line('success_message') . '</div>');
redirect('admin/customfield/index');
}
$this->load->view('layout/header');
$this->load->view('admin/customfield/index', $data);
$this->load->view('layout/footer');
}
public function validate_type()
{
if (isset($_POST['type']) and ($_POST['type'] == "select" || $_POST['type'] == "multiselect" || $_POST['type'] == "checkbox" || $_POST['type'] == "link")) {
if ($this->input->post('field_values') == "") {
$this->form_validation->set_message('validate_type', $this->lang->line('fields_values_required'));
return false;
}
}
return true;
}
public function edit($id)
{
$this->session->set_userdata('top_menu', 'setup');
$this->session->set_userdata('sub_menu', 'customfield/index');
$cus_field = $this->customfield_model->get($id);
$data['cus_field'] = $cus_field;
$customfields = $this->customfield_model->get();
$data['custom_fields_list'] = $this->custom_fields_list;
$customfield_bundle = $this->myCustomFieldBundle($customfields);
$data['customfields'] = $customfield_bundle;
$data['custom_field_table'] = $this->custom_field_table;
$this->form_validation->set_rules('belong_to', $this->lang->line('field_belongs_to'), 'trim|required|xss_clean');
$this->form_validation->set_rules('type', $this->lang->line('field_type'), 'trim|required|xss_clean');
$this->form_validation->set_rules('name', $this->lang->line('field_name'), 'trim|required|xss_clean');
$this->form_validation->set_rules('field_values', $this->lang->line('field_values'), 'callback_validate_type');
if ($this->form_validation->run() == true) {
$data = array(
'id' => $this->input->post('id'),
'bs_column' => $this->input->post('column'),
'belong_to' => $this->input->post('belong_to'),
'type' => $this->input->post('type'),
'name' => $this->input->post('name'),
'field_values' => $this->input->post('field_values'),
'validation' => isset($_POST['validation']) ? $_POST['validation'] : "",
'visible_on_table' => isset($_POST['display_tbl']) ? $_POST['display_tbl'] : "",
'visible_on_print' => isset($_POST['display_print']) ? $_POST['display_print'] : "",
'visible_on_report' => isset($_POST['display_report']) ? $_POST['display_report'] : "",
'visible_on_patient_panel' => isset($_POST['display_patient']) ? $_POST['display_patient'] : "",
);
$this->customfield_model->add($data);
$this->session->set_flashdata('msg', '<div class="alert alert-success text-left">' . $this->lang->line('update_message') . '</div>');
redirect('admin/customfield/index');
}
$this->load->view('layout/header');
$this->load->view('admin/customfield/edit', $data);
$this->load->view('layout/footer');
}
public function delete($id)
{
$this->customfield_model->remove($id);
redirect('admin/customfield/index');
}
public function updateorder()
{
$belong_to = $this->input->post('belong_to');
$items = $this->input->post('items');
if (!empty($items)) {
$updateorder = array();
$i = 1;
foreach ($items as $item_key => $item_value) {
$updateorder[] = $array = array('id' => $item_value, 'weight' => $i);
$i++;
}
$this->customfield_model->updateorder($updateorder);
}
$array = array('status' => '1', 'msg' => 'Record updated successfully');
echo json_encode($array);
}
public function myCustomFieldBundle($customfield_values)
{
$field_array = array();
if (!empty($customfield_values)) {
foreach ($customfield_values as $f_key => $f_value) {
$field_array[$f_value['belong_to']][] = $customfield_values[$f_key];
}
}
return $field_array;
}
}