MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.104.1.lve.el8.x86_64 #1 SMP Tue Feb 10 20:07:30 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: /home/cafsindia/ntc_cafsinfotech_in_bk/application/controllers/Material_request.php
<?php if ( ! defined('BASEPATH')) exit('No direct script is allowed');
require_once("Base_controller.php");
class Material_request  extends Base_controller{
	
	public function __construct(){
		parent::__construct('material_request');
		if(!$this->Appconfig->isAppvalid()){
			redirect('config');
		}
		$this->collect_base_info();
	}
	
	// LOAD PAGE WITH TABLE DATA
	public function index(){
		$data['table_headers']= $this->xss_clean(get_material_request_headers());
		
		$this->db->select('prime_service_category_id,service_category');
		$this->db->from('cw_service_category');
		$this->db->where('cw_service_category.trans_status', 1);
		$service_category_rslt = $this->db->get()->result();
		foreach($service_category_rslt as $service_rlst){
			$prime_service_category_id  = $service_rlst->prime_service_category_id;
			$service_category           = $service_rlst->service_category;
			$service_category_list[$prime_service_category_id] = $service_category;
		}
		$data['service_category_list'] = $service_category_list;
		$data['status_list']           = array('completed' => 'Completed','on process' => 'On Process');
		$this->load->view("$this->control_name/manage",$data);
	}
	
	//LOAD MODEL PAGE VIEW WITH DATA
	public function view($prime_material_request_id=-1){
		$this->db->from('material_request');
		$this->db->where('material_request.prime_material_request_id', $prime_material_request_id);
		$this->db->where('material_request.trans_status', 1);
		$material_request_list         = $this->db->get();
		$data['material_request']      = $material_request_list->result();
		
		$material_info                 = json_decode($this->get_material_request_list($prime_material_request_id));
		$data['material_request_list'] = $material_info->material_table;
		
		$this->db->select('prime_service_category_id,service_category');
		$this->db->from('cw_service_category');
		$this->db->where('cw_service_category.trans_status', 1);
		$service_category_rslt = $this->db->get()->result();
		$service_category_list[""] = "--- Select ---";
		foreach($service_category_rslt as $service_rlst){
			$prime_service_category_id  = $service_rlst->prime_service_category_id;
			$service_category           = $service_rlst->service_category;
			$service_category_list[$prime_service_category_id] = $service_category;
		}
		$data['service_category_list'] = $service_category_list;
		
		$this->db->select('prime_inventory_brand_id,brand_name');
		$this->db->from('cw_inventory_brand');
		$this->db->where('cw_inventory_brand.trans_status', 1);
		$brand_rslt              = $this->db->get()->result();
		$material_brand_list[""] = "--- Select ---";
		foreach($brand_rslt as $br_rlst){
			$prime_inventory_brand_id  = $br_rlst->prime_inventory_brand_id;
			$brand_name                = $br_rlst->brand_name;
			$material_brand_list[$prime_inventory_brand_id] = $brand_name;
		}
		$data['material_brand_list'] = $material_brand_list;
		
		$this->db->select('prime_inventory_product_id,product_name');
		$this->db->from('cw_inventory_product');
		$this->db->where('cw_inventory_product.trans_status', 1);
		$product_name_rslt              = $this->db->get()->result();
		$product_name_list[""] = "--- Select ---";
		foreach($product_name_rslt as $mat_rlst){
			$prime_inventory_product_id  = $mat_rlst->prime_inventory_product_id;
			$product_name                = $mat_rlst->product_name;
			$product_name_list[$prime_inventory_product_id] = $product_name;
		}
		$data['product_name_list'] = $product_name_list;
		
		$this->db->select('prime_inventory_category_id,category_name');
		$this->db->from('cw_inventory_category');
		$this->db->where('cw_inventory_category.trans_status', 1);
		$inventory_category_rslt = $this->db->get()->result();
		$inventory_category_list[""] = "--- Select ---";
		foreach($inventory_category_rslt as $cat_rlst){
			$prime_inventory_category_id  = $cat_rlst->prime_inventory_category_id;
			$category_name                  = $cat_rlst->category_name;
			$inventory_category_list[$prime_inventory_category_id] = $category_name;
		}
		$data['material_category_list'] = $inventory_category_list;
		
		$this->db->select('prime_inventory_category_id,category_name');
		$this->db->from('cw_inventory_category');
		$this->db->where('cw_inventory_category.trans_status', 1);
		$inventory_category_rslt = $this->db->get()->result();
		$inventory_category_list[""] = "--- Select ---";
		foreach($inventory_category_rslt as $cat_rlst){
			$prime_inventory_category_id  = $cat_rlst->prime_inventory_category_id;
			$category_name                = $cat_rlst->category_name;
			$inventory_category_list[$prime_inventory_category_id] = $category_name;
		}
		$data['fault_list'] = $fault_list;
		
			$this->db->select('cw_labour_details.fault_name as fault_id,cw_maintenance_faults.fault_name');
			$this->db->from('material_request');
			$this->db->join('cw_maintenance_job_schedule','cw_maintenance_job_schedule.job_card_number = material_request.job_card_number');
			$this->db->join('cw_labour_details','cw_labour_details.prime_maintenance_job_schedule_id = cw_maintenance_job_schedule.prime_maintenance_job_schedule_id');
			$this->db->join('cw_maintenance_faults','cw_maintenance_faults.prime_maintenance_faults_id = cw_labour_details.fault_name');
			$this->db->where('material_request.prime_material_request_id', (int)$prime_material_request_id);
			$this->db->where('maintenance_faults.trans_status', 1);
			$fault_list_rslt = $this->db->get()->result();
			$fault_list_names[""] = "--- Select ---";
			foreach($fault_list_rslt as $search_rlst){
				$fault_id          = $search_rlst->fault_id;
				$fault_name        = $search_rlst->fault_name;
				$fault_list_names[$fault_id] = $fault_name;
			}
			 $data['fault_list_names'] = $fault_list_names;
		$this->load->view("$this->control_name/form",$data);
	}
	
	// SEARCH BY JOB CARD AUTO COMPLETE
	public function item_search(){
		$search_job_card  = $this->input->post_get('search_job_card');
		$suggestions = array();
		if($search_job_card){
			$this->db->select('prime_maintenance_job_schedule_id,job_card_number,service_type,service_category,vehicle_master.register_no as vehicle_no,company');
			$this->db->from('cw_maintenance_job_schedule');
			$this->db->join('vehicle_master', 'vehicle_master.prime_vehicle_master_id = maintenance_job_schedule.vehicle_no','inner');	
			$this->db->where('cw_maintenance_job_schedule.job_status != ',3);
			$this->db->where('cw_maintenance_job_schedule.trans_status', 1);
			$this->db->group_start();
				$this->db->like('job_card_number',$search_Job_card);
				$this->db->or_like('cw_maintenance_job_schedule.prime_maintenance_job_schedule_id',$search_Job_card);
			$this->db->group_end();	
			$search_info = $this->db->get()->result();
			foreach($search_info as $search){	
				$prime_maintenance_job_schedule_id = $search->prime_maintenance_job_schedule_id;
				$job_card_number                   = $search->job_card_number;
				$service_type                      = $search->service_type;
				$service_category                  = $search->service_category;
				$vehicle_no                        = $search->vehicle_no;
				$company                           = $search->company;
				$cus_name                          = $search->cus_name;
				$label                             = "$job_card_number";
				$suggestions[] = array('value'=>$job_card_number,'label'=>$label,'service_type' => $service_type,'service_category' => $service_category,'vehicle_no' => $vehicle_no,'cus_name' => $cus_name,'company' => $company);
			}
						
		}
		if(empty($suggestions)){
			$suggestions[] = array('value' => "0", 'label' => "No data found for this search");
		}
		echo json_encode($suggestions);
	}
	
	//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');
		$start_date        = str_replace("/","-",$this->input->get('start_date'));
		$end_date          = str_replace("/","-",$this->input->get('end_date'));	
		$from_date         = date('Y-m-d',strtotime($start_date));
		$to_date           = date('Y-m-d',strtotime($end_date));
		$filters           = $this->input->get('filters');
		$status            = $this->input->get('status');
		$this->db->select('material_request.prime_material_request_id,job_card_number,request_no,request_date,cw_service_category.service_category,	company,vehicle_no,material_request.status');
		$this->db->from('material_request');
		$this->db->join('service_category', 'material_request.service_category = service_category.prime_service_category_id','inner');
		if($search){
			$this->db->group_start();
				$this->db->like('job_card_number',$search);
				$this->db->or_like('request_no',$search);				
				$this->db->or_like('service_category',$search);				
				$this->db->or_like('company',$search);				
				$this->db->or_like('vehicle_no',$search);						
				if(strpos($search, '-') !== false){
				  $this->db->or_like('request_date', date('Y-m-d',strtotime($search))); 
				}
			$this->db->group_end();	
		}
		$this->db->group_start();
		if($filters[0] > 0){
			$this->db->where_in('material_request.service_category', $filters);
		}
		$filters_sts = array();
		foreach($status as $key => $value){
			if($value){ $filters_sts[] = $value; }
		}
		if(count($filters_sts) > 0){
			$this->db->where_in('material_request.status', $filters_sts);
		}
		$this->db->where('DATE_FORMAT(request_date, "%Y-%m-%d") BETWEEN '. $this->db->escape($from_date).' AND '.$this->db->escape($to_date));
		$this->db->group_end();
		$this->db->order_by($sort,$order);
		$receiving_data = $this->db->get();
		$receiving_rslt = $receiving_data->result();
		$num_rows       = $receiving_data->num_rows();
		$datarows       = array();		
		foreach($receiving_rslt as $receiving){
			$datarows[] = get_material_request_datarows($receiving,$this);
		}
		echo json_encode(array('total'=>$num_rows,'rows'=>$datarows));
	}
	
	//SAVE MODEL DATA TO DATA BASE
	public function save(){
		$prime_material_request_id  = $this->input->post('prime_material_request_id');
		$job_card_number            = $this->input->post('job_card_number');
		$vehicle_no                 = $this->input->post('vehicle_no');
		$material_request_data  = array(
			'request_date'      => date('Y-m-d H:i:s',strtotime($this->input->post('request_date'))),
			'service_category'  => $this->input->post('service_category'),
			'job_card_number'   => $job_card_number,
			'company'           => $this->input->post('company'),
			'vehicle_no'        => $vehicle_no,
			'status'            => "on process"
		);	
		if((int)$prime_material_request_id === 0){
			$request_no                                  = $this->generate_code($code="REQ",$vehicle_no);
			$material_request_data['request_no']         = $request_no;
			$material_request_data['trans_created_by']   = $this->session->userdata('logged_id');
			$material_request_data['trans_created_date'] = date("Y-m-d H:i:s");
			if($this->db->insert('cw_material_request',$material_request_data)){
				$prime_material_request_id = $this->db->insert_id();
				echo json_encode(array('success' => TRUE, 'message' => "Successfully Inserted" ,'prime_material_request_id' => (int)$prime_material_request_id));
			}else{
				echo json_encode(array('success' => FALSe, 'message' => "Insertion failed, Please Try Again"));
			}
		}else
		if((int)$prime_material_request_id > 0){
			$material_request_data['trans_updated_by']   = $this->session->userdata('logged_id');
			$material_request_data['trans_updated_date'] = date("Y-m-d H:i:s");
			$this->db->where('prime_material_request_id',$prime_material_request_id);
			if($this->db->update('cw_material_request',$material_request_data)){
				echo json_encode(array('success' => TRUE, 'message' => "Successfully Updated",'prime_material_request_id' => (int)$prime_material_request_id));
			}else{
				echo json_encode(array('success' => FALSe, 'message' => "Update failed, Please Try Again"));
			}
		}else{
			echo json_encode(array('success' => False, 'message' => "Please contact Admin.!"));
		}	
	}
	
	//SAVE MATERIAL LIST
	public function save_list(){
		$prime_material_request_list_id  = (int)$this->input->post('prime_material_request_list_id');
		$prime_material_request_id       = (int)$this->input->post('material_request_id');
		$product_name                    = (int)$this->input->post('product_name');
		$fault_name                      = (int)$this->input->post('fault_name');
		$quantity                        = (int)$this->input->post('quantity');
		if((int)$quantity === 0){
			$quantity = 1;
		}
		$status                          = "Pending";
		if(($this->material_request_exists($prime_material_request_id,TRUE)) && ((int)$prime_material_request_list_id === 0)){
			if(!($this->check_material_already_exists($product_name,$prime_material_request_id))){
				$material_request_data = array(
					'quantity'                      => $quantity,
					'pending_quantity'              => $quantity,
					'product_name'                  => $product_name,
					'fault_name'                    => $fault_name,
					'status'                        => $status,
					'prime_material_request_id'     => $prime_material_request_id
				);
				$material_request_data['trans_created_by']   = $this->session->userdata('logged_id');
				$material_request_data['trans_created_date'] = date("Y-m-d H:i:s");
				$material_request_data['received_quantity'] = 0;
				if($this->db->insert('material_request_list',$material_request_data)){
					$prime_material_request_list_id = $this->db->insert_id();
					$this->update_quantity_info($prime_material_request_id);
					echo json_encode(array('success' => TRUE, 'message' => "Material Added Successfully",'prime_material_request_id' => $prime_material_request_id));
				}else{
					echo json_encode(array('success' => FALSe, 'message' => "Insertion failed, Please Try Again"));
				}
			}else{
				echo json_encode(array('success' => FALSe, 'message' => "Material Already Exists"));
			}
		}else
		if(($this->material_request_exists($prime_material_request_id,TRUE)) && ((int)$prime_material_request_list_id > 0)){
			$material_request_data = array(
				'fault_name'                   => $this->input->post('fault_name'),
				'quantity'                     => $this->input->post('quantity'),
				'product_name'                 => $product_name
			);
			$material_request_data['trans_updated_by']   = $this->session->userdata('logged_id');
			$material_request_data['trans_updated_date'] = date("Y-m-d H:i:s");
			$this->db->where('prime_material_request_list_id',$prime_material_request_list_id);
			if($this->db->update('material_request_list',$material_request_data)){
				$this->update_quantity_info($prime_material_request_id);
				echo json_encode(array('success' => TRUE, 'message' => "Successfully Material Updated",'prime_material_request_id'=> $prime_material_request_id ));
			}else{
				echo json_encode(array('success' => FALSe, 'message' => "Material Update failed, Please Try Again"));
			}
		}else{
			echo json_encode(array('success' => False, 'message' => "Please fill previous tab"));
		}
	}
	
	//MATERAL REQUEST EXIST
	public function material_request_exists($prime_material_request_id){
		$this->db->from('material_request');
		$this->db->where('prime_material_request_id', $prime_material_request_id);
		$this->db->where('trans_status', 1);
		return ($this->db->get()->num_rows() == 1);
	}
	
	//CHECK JOB IS ALREADY EXIST
	public function check_material_already_exists($product_name,$prime_material_request_id){
		$this->db->from('material_request_list');
		$this->db->where('product_name', $product_name);
		$this->db->where('prime_material_request_id', (int)$prime_material_request_id);
		$this->db->where('trans_status', 1);
		if((int)($this->db->get()->num_rows()) === 1){
			return true;
		}else{
			return false;
		}
		
	}
	
	//LIST MATERIAL REQUEST INFOMATION
	public function get_material_request_list($prime_material_request_id = -1){
		if((int)$this->input->post('prime_material_request_id') > 0){
			$prime_material_request_id  = $this->input->post('prime_material_request_id');
		}
		$tble_line = '';
		if($this->material_request_exists((int)$prime_material_request_id,TRUE)){
			$this->db->select('prime_material_request_list_id,prime_material_request_id,quantity,cw_inventory_product.product_name as product_name,received_quantity,status,pending_quantity,cw_maintenance_faults.fault_name');
			$this->db->from('material_request_list');
			$this->db->join('inventory_product', 'material_request_list.product_name = inventory_product.prime_inventory_product_id','inner');	
			$this->db->join('cw_maintenance_faults','cw_maintenance_faults.prime_maintenance_faults_id = material_request_list.fault_name');
			$this->db->where('prime_material_request_id', (int)$prime_material_request_id);
			$this->db->where('material_request_list.trans_status', 1);
			$send_request_info = $this->db->get()->result();
			$received_quantity = 0;
			foreach($send_request_info as $send_rlst){
				$prime_material_request_list_id = $send_rlst->prime_material_request_list_id;
				$prime_material_request_id      = $send_rlst->prime_material_request_id;
				$quantity                       = $send_rlst->quantity;
				$product_name                   = $send_rlst->product_name;
				$received_quantity              = $send_rlst->received_quantity;
				$pending_quantity               = $send_rlst->pending_quantity;
				$status                         = $send_rlst->status;
				$fault_name                     = $send_rlst->fault_name;
				$tble_line .= "	<tr>
								<td>$fault_name</td>
								<td>$product_name</td>
								<td>$quantity</td>
								<td>$received_quantity</td>
								<td>$pending_quantity</td>
								<td>$status</td>";
				if((int)$received_quantity === 0){
					$tble_line .= "
								<td>
									<a class='btn btn-warning  btn-sm' onclick='edit_material_request_info($prime_material_request_list_id)'>Edit</a>
									<a class='btn btn-danger  btn-sm' onclick='delete_material_request_info($prime_material_request_list_id,$prime_material_request_id)'>Delete</a>
								</td>";
				}
									
				$tble_line .= "
							</tr>";
			}
		}
		$table_data = "	<h4 class='m-t-0 header-title'><b>Material Request List</b></h4>
						<table class='table table-striped table-bordered' id='material_request_info_table'>
						 <thead>
							<tr>
							   <th>Fault Name</th>
							   <th>Material Name</th>
							   <th>Quantities</th>
							   <th>Received Quantity</th>
							   <th>Pending Quantity</th>
							   <th>Status</th>";
		if((int)$received_quantity === 0){
			$table_data .= "<th>Action</th>";
		}
		$table_data .= "</tr>
						 </thead>
						 <tbody>
							$tble_line
						</tbody>
					</table>";
				
		return json_encode(array("success" => TRUE,'material_table' => $table_data));
	}
	
	//EDIT MATERIAL INFOMATION
	public function edit_material_request_info(){
		$prime_material_request_list_id  = $this->input->post('prime_material_request_list_id');
		$this->db->select('prime_material_request_list_id,prime_material_request_id,inventory_product.product_name as name,quantity,material_request_list.product_name,received_quantity,cw_maintenance_faults.fault_name,cw_maintenance_faults.prime_maintenance_faults_id');
		$this->db->from('material_request_list');
		$this->db->join('inventory_product', 'material_request_list.product_name = inventory_product.prime_inventory_product_id','inner');
		$this->db->join('cw_maintenance_faults','cw_maintenance_faults.prime_maintenance_faults_id = material_request_list.fault_name');
		$this->db->where('prime_material_request_list_id', $prime_material_request_list_id);
		$return_data = $this->db->get()->result();
		if($return_data){
			echo json_encode(array("success" => TRUE,'material_edit_info' => $return_data));
		}else{
			echo json_encode(array("success" => False,'message' => 'No Data Found'));
		}
	}
	
	//DELETE MATERIAL INFOMATION
	public function delete_material_request_info(){
		$prime_material_request_list_id   = $this->input->post('prime_material_request_list_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_material_request_list_id',$prime_material_request_list_id);
		if($this->db->update('material_request_list',$update_data)){
			echo json_encode(array("success" => TRUE,'message' => 'Deleted successfully'));
		}else{
			echo json_encode(array("success" => False,'message' => "Please Try Again"));
		}
	}
	
	//GET TABLE VIEW FOR MATERIAL REQUEST TABLE
	public function get_material_request_list_table(){
		$prime_material_request_id       = '';
		if((int)$this->input->post('prime_material_request_id') > 0){
			$prime_material_request_id   = $this->input->post('prime_material_request_id');
		}
		$material_info                   = json_decode($this->get_material_request_list($prime_material_request_id));
		echo json_encode(array("success" => TRUE,'material_info' => $material_info->material_table));
	}
	
	//GET TABLE VIEW FOR MATERIAL REQUEST TABLE
	public function get_fault_list(){
		$material_request_id       = '';
		if((int)$this->input->post('material_request_id') > 0){
			$material_request_id   = $this->input->post('material_request_id');
		}
		$this->db->select('cw_labour_details.fault_name as fault_id,cw_maintenance_faults.fault_name');
		$this->db->from('material_request');
		$this->db->join('cw_maintenance_job_schedule','cw_maintenance_job_schedule.job_card_number = material_request.job_card_number');
		$this->db->join('cw_labour_details','cw_labour_details.prime_maintenance_job_schedule_id = cw_maintenance_job_schedule.prime_maintenance_job_schedule_id');
		$this->db->join('cw_maintenance_faults','cw_maintenance_faults.prime_maintenance_faults_id = cw_labour_details.fault_name');
		$this->db->where('material_request.prime_material_request_id', (int)$material_request_id);
		$this->db->group_by('cw_labour_details.fault_name');
		$this->db->where('maintenance_faults.trans_status', 1);
		$fault_list_rslt  = $this->db->get()->result();
		$fault_list_names  = "<option value=''>---- Select ----</option>";
			foreach($fault_list_rslt as $search_rlst){
				$fault_id          = $search_rlst->fault_id;
				$fault_name        = $search_rlst->fault_name;
				$fault_list_names .= "<option value='$fault_id'>$fault_name</option>";
			}
		echo json_encode(array("success" => TRUE,'fault_list_names' => $fault_list_names));
	}
	
	//UPDATE QUANTITY LINE
	public function update_quantity_info($prime_material_request_id){
		$this->db->select('prime_material_request_list_id,quantity,received_quantity');
		$this->db->from('material_request_list');
		$this->db->where('trans_status',1);
		$this->db->where('prime_material_request_id',(int)$prime_material_request_id);
		$rlst_info = $this->db->get();
		if((int)($rlst_info->num_rows()) > 0){
			$quantity_info = $rlst_info->result(); 
			$count         = 0;
			foreach($quantity_info as $rlst){
					$prime_material_request_list_id = (int)$rlst->prime_material_request_list_id;
					$quantity                       = (int)$rlst->quantity;
					$received_quantity              = (int)$rlst->received_quantity;
					if(!($quantity == $received_quantity)){ 
						$update_data   = array();
						$count++;
						$update_data['pending_quantity'] = (int)$quantity - (int)$received_quantity;
						$update_data['status']           = "Pending";
						$this->db->where('prime_material_request_list_id',(int)$prime_material_request_list_id);
						$this->db->update('material_request_list',$update_data);
					}else{
						$update_data   = array();
						$update_data['pending_quantity'] = 0;
						$update_data['status']           = "Received";
						$this->db->where('prime_material_request_list_id',(int)$prime_material_request_list_id);
						$this->db->update('material_request_list',$update_data);
					}
			}
			$update_data   = array();
			if((int)$count === 0){
				$update_data['status'] = "completed";
				$this->db->where('prime_material_request_id',(int)$prime_material_request_id);
				$this->db->update('material_request',$update_data);
			}else{
				$update_data['status'] = "on process";
				$this->db->where('prime_material_request_id',(int)$prime_material_request_id);
				$this->db->update('material_request',$update_data);
			}
		}else{
			$update_data['status'] = "on process";
			$this->db->where('prime_material_request_id',(int)$prime_material_request_id);
			$this->db->update('material_request',$update_data);
		}
	}

	public function view_info(){
		$prime_material_request_id = (int)$this->input->post('prime_material_request_id');
		$tble_line = '';
		if($this->material_request_exists((int)$prime_material_request_id,TRUE)){
			$this->db->select('cw_material_request.job_card_number,cw_material_request.request_no,cw_material_request.request_date,cw_material_request_list.prime_material_request_list_id,cw_material_request_list.prime_material_request_id,cw_material_request_list.quantity,cw_inventory_product.product_name as product_name,cw_material_request_list.received_quantity,cw_material_request_list.status,cw_material_request_list.pending_quantity');
			$this->db->from('cw_material_request');
			$this->db->join('material_request_list', 'material_request_list.prime_material_request_id = cw_material_request.prime_material_request_id','inner');	
			$this->db->join('inventory_product', 'material_request_list.product_name = inventory_product.prime_inventory_product_id','inner');	
			$this->db->where('cw_material_request.prime_material_request_id', (int)$prime_material_request_id);
			$this->db->where('material_request_list.trans_status', 1);
			$send_request_info = $this->db->get()->result();
			$received_quantity = 0;
			foreach($send_request_info as $send_rlst){
				$prime_material_request_list_id = $send_rlst->prime_material_request_list_id;
				$prime_material_request_id      = $send_rlst->prime_material_request_id;
				$job_card_number                = $send_rlst->job_card_number;
				$request_no                     = $send_rlst->request_no;
				$request_date                   = date('d-m-Y',strtotime($send_rlst->request_date));
				$quantity                       = $send_rlst->quantity;
				$product_name                  = $send_rlst->product_name;
				$received_quantity              = $send_rlst->received_quantity;
				$pending_quantity               = $send_rlst->pending_quantity;
				$status                         = $send_rlst->status;
				$tble_line .= "	<tr>
								<td>$request_no</td>
								<td>$request_date</td>
								<td>$product_name</td>
								<td>$quantity</td>
								<td>$received_quantity</td>
								<td>$pending_quantity</td>
								<td>$status</td>
							</tr>";
			}
		}
		$table_data = "	<table class='table table-striped table-bordered' id='material_request_info_table'>
						 <thead>
							<tr>
							   <th>Request Number</th>
							   <th>Date</th>
							   <th>Material Name</th>
							   <th>Quantities</th>
							   <th>Received Quantity</th>
							   <th>Pending Quantity</th>
							   <th>Status</th>
							</tr>
						 </thead>
						 <tbody>
							$tble_line
						</tbody>
					</table>";
				
		echo json_encode(array("success" => TRUE,'material_request_info' => $table_data));
	}
	
	//GENERATE UNIQUE CODE
	public function generate_code($code="UN",$vehicle_no){
		$this->db->select('cw_vehicle_category.vehicle_category');
		$this->db->from('cw_vehicle_master');
		$this->db->join('cw_vehicle_category', 'cw_vehicle_category.prime_vehicle_category_id = cw_vehicle_master.vehicle_category','inner');
		$this->db->where('cw_vehicle_master.register_no',$vehicle_no);
		$result = $this->db->get()->row();
		$vehicle_category = substr("$result->vehicle_category",0,1);
		if($vehicle_category == ''){
			$vehicle_category = 'O';
		}
		$this->db->from('cw_material_request');
		$this->db->where('trans_status', 1);
		$count = (int)$this->db->get()->num_rows();
		$count = $count + 1 ;
		$count = str_pad($count, 4, '0', STR_PAD_LEFT);
		$date  = date('YMd');
		$uniqueCode = $code . $vehicle_category . $date . $count;
		return strtoupper($uniqueCode);
	}
}
?>