File: /home/cafsindia/ntc_cafsinfotech_in_bk/application/controllers/Maintenance_fault_report.php
<?php
if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Base_controller.php");
class Maintenance_fault_report extends Base_controller{
public function __construct(){
parent::__construct('maintenance_fault_report');
if(!$this->Appconfig->isAppvalid()){
redirect('config');
}
$this->collect_base_info();
}
// LOAD PAGE WITH TABLE DATA
public function index(){
// LIST VEHICLE TYPE
$this->db->select('prime_vehicle_type_id,vehicle_type');
$this->db->from('cw_vehicle_type');
$this->db->where('cw_vehicle_type.trans_status', 1);
$vehicle_type_rslt = $this->db->get()->result();
foreach($vehicle_type_rslt as $cat_rlst){
$prime_vehicle_type_id = $cat_rlst->prime_vehicle_type_id;
$vehicle_type = $cat_rlst->vehicle_type;
$vehicle_type_list[$prime_vehicle_type_id] = $vehicle_type;
}
$data['vehicle_type_list'] = $vehicle_type_list;
$data['table_headers']= $this->xss_clean(get_fault_report_headers());
$this->load->view("$this->control_name/manage",$data);
}
//LOAD MODEL PAGE VIEW WITH DATA
public function view($prime_maintenance_fault_report_id = -1){
//GET PRIME FAULTS INFOMATION
$this->db->from('maintenance_fault_report');
$this->db->where('maintenance_fault_report.prime_maintenance_fault_report_id', $prime_maintenance_fault_report_id);
$this->db->where('maintenance_fault_report.trans_status', 1);
$fault_report_list = $this->db->get();
$data['fault_report'] = $fault_report_list->result();
//GET TABLE INFOMATION OF FAULTS
$send_data = json_decode($this->get_faults_info($prime_maintenance_fault_report_id));
$data['faults_information_table'] = $send_data->fault_table;
// FETCH VEHICLE CATEGORY
$this->db->select('prime_vehicle_category_id,vehicle_category');
$this->db->from('vehicle_category');
$this->db->where('vehicle_category.trans_status', 1);
$vehicle_category_rslt = $this->db->get()->result();
$vehicle_category_list[""] = "--- Select ---";
foreach($vehicle_category_rslt as $cat_rlst){
$prime_vehicle_category_id = $cat_rlst->prime_vehicle_category_id;
$vehicle_category = $cat_rlst->vehicle_category;
$vehicle_category_list[$prime_vehicle_category_id] = $vehicle_category;
}
$data['vehicle_category_list'] = $vehicle_category_list;
//FETCH DRIVER NAME
$this->db->select('prime_employees_id,employee_name');
$this->db->from('cw_employees');
$this->db->where('cw_employees.role', 4);
$this->db->where('cw_employees.trans_status', 1);
$driver_rslt = $this->db->get()->result();
$driver_rslt[""] = "--- Select ---";
foreach($driver_rslt as $rlst){
$prime_employees_id = $rlst->prime_employees_id;
$employee_name = $rlst->employee_name;
$driver_list[$prime_employees_id] = $employee_name;
}
$data['driver_list'] = $driver_list;
$this->load->view("$this->control_name/form",$data);
}
//GET VEHICLE TYPE
public function get_vehicle_type(){
$vehicle_category = $this->input->post('vehicle_category');
$this->db->select('prime_vehicle_type_id,vehicle_type');
$this->db->from('cw_vehicle_type');
$this->db->where('cw_vehicle_type.trans_status', 1);
$this->db->where('vehicle_category',$vehicle_category);
$vehicle_type_result = $this->db->get()->result();
$vehicle_type_ar = "<option value=''>---- Select ----</option>";
foreach($vehicle_type_result as $result){
$id = $result->prime_vehicle_type_id;
$veh_type = $result->vehicle_type;
$vehicle_type_ar .= "<option value='$id'>$veh_type</option>";
}
echo json_encode(array('success' => TRUE, 'vehicle_type_result' => $vehicle_type_ar));
}
//GET VEHICLE NUMBER
public function get_vehicle_no(){
$vehicle_type = $this->input->post('vehicle_type');
$this->db->select('prime_vehicle_master_id,register_no');
$this->db->from('cw_vehicle_master');
$this->db->where('cw_vehicle_master.trans_status', 1);
$this->db->where('vehicle_type',$vehicle_type);
$vehicle_result = $this->db->get()->result();
$ntc_vehicle = "<option value =''>---- Select ----</option>";
foreach($vehicle_result as $rslt){
$prime_vehicle_master_id = $rslt->prime_vehicle_master_id;
$register_no = $rslt->register_no;
$ntc_vehicle .= "<option value='$prime_vehicle_master_id'>$register_no</option>";
}
echo json_encode(array('success' => TRUE, 'ntc_vehicle_result' => $ntc_vehicle));
}
//LOAD PAGE TABLE VIEW WITH DATA BASED ON SEARCH FILTERS
public function search(){
$search = $this->input->get('search');
$limit = $this->input->get('limit');
$offset = $this->input->get('offset');
$sort = $this->input->get('sort');
$order = $this->input->get('order');
$filters = $this->input->get('filters');
$vehicle_type_fil = $this->input->get('vehicle_type_fil');
$this->db->select('prime_maintenance_fault_report_id,vehicle_type.vehicle_type as vehicle_type,vehicle_category.vehicle_category as vehicle_category,cw_maintenance_fault_report.fault_status,cw_vehicle_master.register_no as ntc_vehicle,cw_employees.employee_name as ntc_driver');
$this->db->from('maintenance_fault_report');
$this->db->join('cw_vehicle_master', 'cw_vehicle_master.prime_vehicle_master_id = maintenance_fault_report.ntc_vehicle','LEFT');
$this->db->join('cw_employees', 'cw_employees.prime_employees_id = maintenance_fault_report.ntc_driver','LEFT');
$this->db->join('vehicle_type', 'maintenance_fault_report.vehicle_type = vehicle_type.prime_vehicle_type_id','LEFT');
$this->db->join('vehicle_category', 'maintenance_fault_report.vehicle_category = vehicle_category.prime_vehicle_category_id','LEFT');
$this->db->where('maintenance_fault_report.trans_status', 1);
if($search){
$this->db->group_start();
$this->db->like('prime_maintenance_fault_report_id',$search);
$this->db->or_like('driver_name',$search);
$this->db->or_like('vehicle_category',$search);
$this->db->or_like('vehicle_type',$search);
$this->db->or_like('vehicle_no',$search);
$this->db->group_end();
}
$filters_sts = array();
if($filters[0] > 0){
$this->db->where_in('maintenance_fault_report.fault_status', $filters);
}
$filters_sts = array();
foreach($vehicle_type_fil as $key=>$value){
if($value){ $filters_sts[] = $value; }
}
if(count($filters_sts) > 0){
$this->db->where_in('maintenance_fault_report.vehicle_type', $filters_sts);
}
$this->db->order_by($sort,$order);
$faults_data = $this->db->get();
$faults_rslt = $faults_data->result();
$num_rows = $faults_data->num_rows();
$datarows = array();
foreach($faults_rslt as $faults){
$datarows[] = get_fault_report_datarows($faults,$this);
}
echo json_encode(array('total'=>$num_rows,'rows'=>$datarows));
}
// SAVE FAULT GENERAL INFORMATION
public function fault_report_save(){
$prime_maintenance_fault_report_id = (int)$this->input->post('prime_fault_report_id');
$ntc_vehicle = $this->input->post('ntc_vehicle');
$fault_status = '1';
$fault_report_data = array(
'ntc_driver' => $this->input->post('ntc_driver'),
'ntc_vehicle' => $ntc_vehicle,
'vehicle_category' => $this->input->post('vehicle_category'),
'vehicle_type' => $this->input->post('vehicle_type'),
'fault_status' => $fault_status
);
if((int)$prime_maintenance_fault_report_id === 0){
if(!$this->check_vehicle_already_exists($ntc_vehicle)){
$fault_report_data['trans_created_by'] = $this->session->userdata('logged_id');
$fault_report_data['trans_created_date'] = date("Y-m-d H:i:s");
if($this->db->insert('cw_maintenance_fault_report',$fault_report_data)){
$fault_report_id = $this->db->insert_id();
echo json_encode(array('success' => TRUE, 'message' => "Successfully Inserted",
'prime_maintenance_fault_report_id' => $fault_report_id));
}else{
echo json_encode(array('success' => FALSE, 'message' => "Insertion failed, Please Try Again"));
}
}else{
echo json_encode(array('success' => FALSE, 'message' => "Faults Report already in process for this vehicle"));
}
}else
if((int)$prime_maintenance_fault_report_id > 0){
$fault_report_data['trans_updated_by'] = $this->session->userdata('logged_id');
$fault_report_data['trans_updated_date'] = date("Y-m-d H:i:s");
$this->db->where('prime_maintenance_fault_report_id',$prime_maintenance_fault_report_id);
if($this->db->update('cw_maintenance_fault_report',$fault_report_data)){
echo json_encode(array('success' => TRUE, 'message' => "Successfully Updated",'prime_maintenance_fault_report_id' => $prime_maintenance_fault_report_id));
}else{
echo json_encode(array('success' => FALSE, 'message' => "Update failed, Please Try Again",'prime_maintenance_fault_report_id' => $prime_maintenance_fault_report_id));
}
}else{
echo json_encode(array('success' => False, 'message' => "Please contact Admin.!"));
}
}
// SAVE FAULT LIST INFORMATION
public function save_fault_info(){
$prime_maintenance_fault_report_id = $this->input->post('prime_maintenance_fault_report_id');
$prime_labour_details_id = $this->input->post('prime_labour_details_id');
$prime_fault_name_id = $this->input->post('prime_fault_name_id');
if($this->check_fault_report($prime_maintenance_fault_report_id,TRUE)){
if((int)$prime_labour_details_id === 0){
if(!($this->check_fault_already_exists($prime_maintenance_fault_report_id,$prime_fault_name_id))){
$faults_info_data = array(
'fault_name' => $prime_fault_name_id,
'remarks' => $this->input->post('remarks'),
'prime_maintenance_fault_report_id' => $prime_maintenance_fault_report_id,
'service_status' => 2
);
$faults_info_data['trans_created_by'] = $this->session->userdata('logged_id');
$faults_info_data['trans_created_date'] = date("Y-m-d H:i:s");
if($this->db->insert('labour_details',$faults_info_data)){
$prime_labour_details_id = $this->db->insert_id();
echo json_encode(array('success' => TRUE, 'message' => "Successfully Fault Inserted",'prime_maintenance_fault_report_id' => $prime_maintenance_fault_report_id));
}else{
echo json_encode(array('success' => FALSe, 'message' => "Fault Insertion failed, Please Try Again"));
}
}else{
echo json_encode(array('success' => FALSe, 'message' => "Fault Already Exists"));
}
}else{
if($this->check_fault_in_labours_report($prime_labour_details_id,TRUE)){
if(!($this->check_fault_already_exists($prime_maintenance_fault_report_id,$prime_fault_name_id,$prime_labour_details_id))){
$update_data['fault_name'] = $this->input->post('prime_fault_name_id');
$update_data['remarks'] = $this->input->post('remarks');
$update_data['trans_updated_by'] = $this->session->userdata('logged_id');
$update_data['trans_updated_date'] = date("Y-m-d H:i:s");
$this->db->where('prime_maintenance_fault_report_id',$prime_maintenance_fault_report_id);
$this->db->where('prime_labour_details_id',$prime_labour_details_id);
if($this->db->update('cw_labour_details',$update_data)){
echo json_encode(array('success' => TRUE, 'message' => "Fault Successfully Updated",'prime_maintenance_fault_report_id'=> $prime_maintenance_fault_report_id ));
}else{
echo json_encode(array('success' => FALSe, 'message' => "Fault Update failed, Please Try Again"));
}
}else{
echo json_encode(array('success' => FALSe, 'message' => "Fault Already Exists"));
}
}
}
}else{
echo json_encode(array('success' => False, 'message' => "Please contact Admin.!"));
}
}
//SEARCH FAULTS LIST
public function search_faults(){
$search_fault_name = $this->input->post_get('search_fault_name');
$suggestions = array();
if($search_fault_name){
$this->db->select('cw_maintenance_faults.prime_maintenance_faults_id,cw_maintenance_faults.fault_name');
$this->db->from('maintenance_faults');
$this->db->where('maintenance_faults.trans_status', 1);
$this->db->group_start();
$this->db->like('maintenance_faults.fault_name',$search_fault_name);
$this->db->or_like('maintenance_faults.prime_maintenance_faults_id',$search_fault_name);
$this->db->group_end();
$search_fault_info = $this->db->get()->result();
foreach($search_fault_info as $search_rlst){
$prime_maintenance_faults_id = $search_rlst->prime_maintenance_faults_id;
$fault_name = $search_rlst->fault_name;
$label = "$fault_name";
$suggestions[] = array('value'=>$fault_name,'label'=>$label,'prime_maintenance_faults_id'=>$prime_maintenance_faults_id);
}
}
if(empty($suggestions)){
$suggestions[] = array('value' => "0", 'label' => "No data found for this search");
}
echo json_encode($suggestions);
}
//LIST FAULTS INFOMATION
public function get_faults_info($prime_maintenance_fault_report_id = -1){
if((int)$this->input->post('prime_maintenance_fault_report_id') > 0){
$prime_maintenance_fault_report_id = $this->input->post('prime_maintenance_fault_report_id');
}
$tble_line = '';
if($this->check_fault_report((int)$prime_maintenance_fault_report_id,TRUE)){
$this->db->select('cw_labour_details.prime_labour_details_id,cw_labour_details.prime_maintenance_fault_report_id,cw_maintenance_faults.fault_name,cw_labour_details.remarks');
$this->db->from('labour_details');
$this->db->join('maintenance_faults','maintenance_faults.prime_maintenance_faults_id = labour_details.fault_name','inner');
$this->db->where('cw_labour_details.prime_maintenance_fault_report_id', (int)$prime_maintenance_fault_report_id);
$this->db->where('cw_labour_details.trans_status', 1);
$this->db->where('cw_labour_details.service_status', 2);
$send_request_info = $this->db->get()->result();
foreach($send_request_info as $send_rlst){
$prime_labour_details_id = $send_rlst->prime_labour_details_id;
$prime_maintenance_fault_report_id = $send_rlst->prime_maintenance_fault_report_id;
$fault_name = $send_rlst->fault_name;
$remarks = $send_rlst->remarks;
$tble_line .= " <tr>
<td>$fault_name</td>
<td>$remarks</td>
<td>
<a class='btn btn-warning btn-sm' onclick='edit_faults_info($prime_labour_details_id)'>Edit</a>
<a class='btn btn-danger btn-sm' onclick='delete_faults_info($prime_labour_details_id,$prime_maintenance_fault_report_id)'>Delete</a>
</td>
</tr>";
}
}
$table_data = " <h4 class='m-t-0 header-title'><b>Faults List</b></h4>
<table class='table table-striped table-bordered' id='fault_info_table'>
<thead>
<tr>
<th>Faults Name</th>
<th>Remarks</th>
<th>Action</th>
</tr>
</thead>
<tbody>
$tble_line
</tbody>
</table>";
return json_encode(array("success" => TRUE,'fault_table' => $table_data));
}
//CHECK FAULT REPORT EXISTS
public function check_fault_report($prime_maintenance_fault_report_id){
$this->db->from('maintenance_fault_report');
$this->db->where('prime_maintenance_fault_report_id',(int)$prime_maintenance_fault_report_id);
$this->db->where('trans_status', 1);
if((int)($this->db->get()->num_rows()) === 1){
return TRUE;
}else{
return FALSE;
}
}
//CHECK FAULTS EXISTS IN LABOURS DETAILS
public function check_fault_in_labours_report($prime_labour_details_id){
$this->db->from('labour_details');
$this->db->where('prime_labour_details_id',(int)$prime_labour_details_id);
$this->db->where('trans_status', 1);
if((int)($this->db->get()->num_rows()) === 1){
return TRUE;
}else{
return FALSE;
}
}
//CHECK FAULT ALREADY EXISTS
public function check_fault_already_exists($prime_maintenance_fault_report_id,$prime_fault_name_id,$prime_labour_details_id = -1){
$this->db->from('labour_details');
$this->db->where('prime_maintenance_fault_report_id',(int)$prime_maintenance_fault_report_id);
$this->db->where('fault_name',(int)$prime_fault_name_id);
if((int)$prime_labour_details_id > 0){
$this->db->where('prime_labour_details_id !=',(int)$prime_labour_details_id);
}
$this->db->where('trans_status', 1);
if((int)($this->db->get()->num_rows()) > 0){
return TRUE;
}else{
return FALSE;
}
}
//EDIT FAULTS INFOMATION
public function edit_faults_info(){
$prime_labour_details_id = $this->input->post('prime_labour_details_id');
$this->db->select('cw_labour_details.prime_labour_details_id,cw_labour_details.fault_name as fault_id,cw_labour_details.prime_maintenance_fault_report_id,cw_labour_details.remarks,cw_maintenance_faults.fault_name');
$this->db->from('labour_details');
$this->db->join('maintenance_faults', 'cw_maintenance_faults.prime_maintenance_faults_id = labour_details.fault_name','inner');
$this->db->where('prime_labour_details_id', $prime_labour_details_id);
$return_data = $this->db->get()->result();
if($return_data){
echo json_encode(array("success" => TRUE,'fault_edit_info' => $return_data));
}else{
echo json_encode(array("success" => TRUE,'message' => 'contact Admin..!'));
}
}
//GET TABLE VIEW FOR FAULTS INFORMATION TABLE
public function get_faults_info_list_table(){
$prime_maintenance_fault_report_id = '';
if((int)$this->input->post('prime_maintenance_fault_report_id') > 0){
$prime_maintenance_fault_report_id = $this->input->post('prime_maintenance_fault_report_id');
}
$send_data = json_decode($this->get_faults_info($prime_maintenance_fault_report_id));
echo json_encode(array("success" => TRUE,'fault_info' => $send_data->fault_table));
}
//DELETE FAULTS INFOMATION
public function delete_faults_info(){
$prime_labour_details_id = $this->input->post('prime_labour_details_id');
$update_data['trans_deleted_by'] = $this->session->userdata('logged_id');
$update_data['trans_deleted_date'] = date("Y-m-d H:i:s");
$update_data['trans_status'] = 0;
$this->db->where('prime_labour_details_id ',$prime_labour_details_id);
if($this->db->update('labour_details',$update_data)){
echo json_encode(array("success" => TRUE,'message' => 'Deleted successfully'));
}else{
echo json_encode(array("success" => False,'message' => "Please Try Again"));
}
}
//VIEW FAULTS INFORMATION
public function view_info(){
$prime_maintenance_fault_report_id = (int)$this->input->post('prime_maintenance_fault_report_id');
$tble_line = '';
if($this->check_fault_report((int)$prime_maintenance_fault_report_id,TRUE)){
$this->db->select('maintenance_faults.fault_name,cw_labour_details.remarks,cw_labour_details.status');
$this->db->from('cw_maintenance_fault_report');
$this->db->join('cw_labour_details', 'cw_labour_details.prime_maintenance_fault_report_id = cw_maintenance_fault_report.prime_maintenance_fault_report_id','inner');
$this->db->join('maintenance_faults','maintenance_faults.prime_maintenance_faults_id = labour_details.fault_name','inner');
$this->db->where('cw_maintenance_fault_report.prime_maintenance_fault_report_id', (int)$prime_maintenance_fault_report_id);
$this->db->where('cw_maintenance_fault_report.trans_status', 1);
$this->db->where('cw_labour_details.trans_status', 1);
$send_request_info = $this->db->get()->result();
foreach($send_request_info as $send_rlst){
$fault_name = $send_rlst->fault_name;
$remarks = $send_rlst->remarks;
$status = $send_rlst->status;
$fault_status = array(1 => "on process",2 => "completed",3 => "incomplted");
$status = $fault_status[$status];
$tble_line .= " <tr>
<td>$fault_name</td>
<td>$remarks</td>
<td>$status</td>
</tr>";
}
}
$table_data = " <table class='table table-striped table-bordered' id='fault_info_table'>
<thead>
<tr>
<th>Fault Number</th>
<th>Remarks</th>
<th>Status</th>
</tr>
</thead>
<tbody>
$tble_line
</tbody>
</table>";
echo json_encode(array("success" => TRUE,'fault_info' => $table_data));
}
//CHECKING VEHICLE ALREADY EXISTS
public function check_vehicle_already_exists($ntc_vehicle = -1){
$this->db->from('maintenance_fault_report');
$this->db->where('fault_status !=',3);
if((int)$ntc_vehicle > 0){
$this->db->where('ntc_vehicle',(int)$ntc_vehicle);
}
$this->db->where('trans_status', 1);
if((int)($this->db->get()->num_rows()) > 0){
return TRUE;
}else{
return FALSE;
}
}
}
?>