FIX_NEW MASTER TRANSPORTED

This commit is contained in:
VE10-Sanjeev 2024-08-20 08:43:08 +00:00
parent dba053c87e
commit c747135c1d
9 changed files with 458 additions and 18 deletions

View File

@ -49,7 +49,10 @@ $routes->post('supplierExist','Supplier::checksupplier');
$routes->get('exportsupplier','Supplier::exportsupplier'); // export supplier details
$routes->post('deletesupplier','Supplier::deletesupplier');
// transporter Routes
$routes->get('transporterListing', 'Supplier::transporterListing');
$routes->post('fetchTransporterDetails', 'Supplier::fetchTransporterDetails');// for Ajax both add and edit....
$routes->get('deleteTransporter', 'Supplier::deleteTransporter');
// Material Master Routes
$routes->match(['GET', 'POST', 'PUT', 'DELETE'],'addRawmaterial', 'Rawmaterialdetails::addRawMaterial');

View File

@ -55,6 +55,7 @@ class Inwardgateregister extends BaseController
$this->global['pageTitle'] = 'View Inward Gate Register';
$data['IGR'] = $this->inwardgateregister_model->ViewigrListing();
$data['userRole'] = $this->session->get('role');
$data['transporter'] = $this->inwardgateregister_model->transporter();
$this->loadViews("viewinwardgateregister", $this->global, $data, NULL);
// $this->global['pageTitle'] = 'Inward Gate Register Details';
// $data['IGR'] = $this->inwardgateregister_model->igrListing();
@ -68,6 +69,11 @@ class Inwardgateregister extends BaseController
$this->global['pageTitle'] = 'Add Inward Gate Register';
$result = $this->inwardgateregister_model->getpurchaseorder();
$result1 = $this->inwardgateregister_model->transporter();
$data['transporter'] = array_filter($result1 , function($item) {
return ($item->isactive == 1);
});
// print_r($data['transporter']);die;
// $data['PO_NO'] = array_filter($result, function($item) {
// return !($item->status === 'ST027' && $item->IsOpenOrder === null);
@ -322,7 +328,7 @@ class Inwardgateregister extends BaseController
$Mat_Rcvd_Dt = (string)$this->request->getPost('MaterialRcvdDate');
$MaterialRcvdDt = get_date_time_format($Mat_Rcvd_Dt);
$VehicleNo = $this->request->getPost('VehicleNo');
$VehicleType = $this->request->getPost('VehicleType');
$TransporterId = $this->request->getPost('TransporterId');
$DriverName = $this->request->getPost('DriverName');
$DriverMobileNumber = $this->request->getPost('DriverMobileNumber');
$CreatedBy = $this->session->get('userId');
@ -358,7 +364,7 @@ class Inwardgateregister extends BaseController
}
}
#Step 3 Master Details Gathering to Save In DB
$igr = array('PONO' => $PONO, 'VehicleNo' => $VehicleNo, 'VehicleType'=>$VehicleType,'DeliveryChellanOrInvoiceNo' => $DeliveryChellanOrInvoiceNo, 'DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt, 'DriverName' => $DriverName, 'DriverMobileNumber' => $DriverMobileNumber,'IGRStatus' => $IGRStatus, 'CreatedBy' => $CreatedBy, 'CreatedDate' => $createddt, 'PaymentStatus' => $paymentstatus);
$igr = array('PONO' => $PONO, 'VehicleNo' => $VehicleNo, 'TransporterId'=>$TransporterId,'DeliveryChellanOrInvoiceNo' => $DeliveryChellanOrInvoiceNo, 'DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt, 'DriverName' => $DriverName, 'DriverMobileNumber' => $DriverMobileNumber,'IGRStatus' => $IGRStatus, 'CreatedBy' => $CreatedBy, 'CreatedDate' => $createddt, 'PaymentStatus' => $paymentstatus);
$igr['MasterFile'] = $requestMasterFileName;
#Step 4 Calling DB to Save IGR Master
$IGRNO = $this->inwardgateregister_model->addigrM($igr);
@ -681,7 +687,7 @@ function viewIGRDetails()
$VehicleNo = $this->request->getPost('vehicle_no');
$VehicleType = $this->request->getPost('vehicle_type');
$TransporterId = $this->request->getPost('Transporter_Id');
$DriverName = $this->request->getPost('driver');
$DriverMobileNumber = $this->request->getPost('driver_mobile');
@ -696,7 +702,7 @@ function viewIGRDetails()
$path = ROOTPATH.'public/uploads/Igrfiles/';
if(!is_dir($path)) { mkdir($path, 0777, true); }
$igrarr = array('DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt,'VehicleNo'=>$VehicleNo,'VehicleType'=>$VehicleType,'DriverMobileNumber'=>$DriverMobileNumber,'DriverName'=>$DriverName, 'IGRStatus' => $IGRStatus,'UpdateBY' => $updateby,'DeliveryChellanOrInvoiceNo'=>$DeliveryChellanOrInvoiceNo);
$igrarr = array('DeliveryChellanDate' => $DeliveryChellanDate, 'MaterialRcvdDate' => $MaterialRcvdDt,'VehicleNo'=>$VehicleNo,'TransporterId'=>$TransporterId,'DriverMobileNumber'=>$DriverMobileNumber,'DriverName'=>$DriverName, 'IGRStatus' => $IGRStatus,'UpdateBY' => $updateby,'DeliveryChellanOrInvoiceNo'=>$DeliveryChellanOrInvoiceNo);
$MasterFile = $this->request->getfile('MasterFile');

View File

@ -405,4 +405,64 @@ class Supplier extends BaseController
exit;
}
// transporter functionality
/**
* This function used to Transporter listing
*/
public function transporterListing()
{
$data['userRecords'] = $this->supplier_model->transporterListing();
$this->global['pageTitle'] = 'Transporter List';
$this->loadViews("transporterListing", $this->global, $data, NULL);
}
/**
* This function is used to add/edit Transporter
*/
public function fetchTransporterDetails() {
$id = $this->request->getPost('transporterid');
$name = $this->request->getPost('transportername');
$name = ($name !== null && is_string($name)) ? strtoupper(trim($name)) : null;
$userId = $this->session->get('userId');
$data = ['status' => false, 'message' => 'An error occurred while creating transporter details'.gettype($id)];
$id = trim($id);
if ((int)$id === 0) {
$addarr = ['name' => $name,
'created_by' => $userId,
];
if ($this->supplier_model->saveTransporter($addarr) > 0) {
$data = ['status' => true, 'message' => 'Successfully created transporter details'];
}
}else{
$editarr = ['name' => $name,'updated_by' => $userId];
if ($this->supplier_model->updateTransporter($editarr, (int)$id) > 0) {
$data = ['status' => true, 'message' => 'Successfully updated transporter details'];
}
}
return $this->response->setJSON($data);
}
/**
* delete the Transporter
*/
function deleteTransporter($id = NULL)
{
$ID = $id ?? $_GET['id'];
if(!empty($ID)){
$updatedBy = $this->session->get('userId');
$message = $this->supplier_model->deleteTransporter($ID, $updatedBy);
}else{
$message = "Transporter ID Not Avalable";
}
$this->session->setFlashdata('success', $message);
return redirect()->route('transporterListing');
}
}

View File

@ -995,5 +995,14 @@ class Inwardgateregister_model extends Model
return $results;
}
public function transporter()
{
$builder = $this->db->table('t_transporter t');
$query = $builder->select('t.*')->get();
$result = $query->getResult();
return $result;
}
}

View File

@ -168,4 +168,49 @@ class Supplier_model extends Model
}
/*SUPPLIER */
/*SUPPLIER TYPE */
/** for transporter listing */
function transporterListing()
{
$builder = $this->db->table('t_transporter as t')
->select('t.id,t.name,t_employee_details.FirstName as FirstName,t.created_on,t.isactive')
->join('tbl_users', 'tbl_users.userId = t.created_by')
->join('t_employee_details', 't_employee_details.EmpID=tbl_users.EmpID');
$query =$builder->get();
$result = $query->getResult();
// echo $this->db->getLastQuery()->getQuery();die;
return $result;
}
/** for save transporter details */
public function saveTransporter($addarr) {
$this->db->transStart();
$builder = $this->db->table('t_transporter');
$builder->insert($addarr);
$aff_row = $this->db->affectedRows();
log_message('error', 'save transporter Query: ' . $this->db->getLastQuery()->getQuery());
$this->db->transComplete();
return $aff_row;
}
/** for update transporter details */
public function updateTransporter($editarr, $id) {
$this->db->table('t_transporter')
->where('id', $id)
->update($editarr);
$aff_row = $this->db->affectedRows();
return $aff_row;
}
function deleteTransporter($id,$UpdatedBy)
{
$this->db->table('t_transporter')
->where('id', $id)
->update(['isactive' => 0,'updated_by' => $UpdatedBy ]);
$aff_row = $this->db->affectedRows();
return $aff_row;
}
}

View File

@ -1284,6 +1284,13 @@
</a>
</li>
<?php } ?>
<?php if ($DEPCode == ADMIN) { ?>
<li><a href="<?php echo base_url(); ?>transporterListing" >
<i class="fa fa-user-secret"></i>
<span class="nav-label">Transporter Details</span>
</a>
</li>
<?php } ?>
<?php if ($DEPCode == ADMIN && $DEPCode != SECURITY) { ?>
<li><a href="<?php echo base_url(); ?>companyview" >
@ -1409,6 +1416,11 @@
<span class="nav-label">Supplier Details</span>
</a>
</li>
<li><a href="<?php echo base_url(); ?>transporterListing" >
<i class="fa fa-user-secret"></i>
<span class="nav-label">Transporter Details</span>
</a>
</li>
</ul>
<?php
} ?>

View File

@ -23,7 +23,7 @@
$(document).ready(function() {
$("#PONO").select2();
$("#VehicleType").select2();
$("#TransporterId").select2();
$('#DriverName').autocomplete({
onSearchStart: function(query) {
@ -194,10 +194,15 @@
<!-- <span pattern="" required="true"></span> -->
</div>
<div class="col-md-3">
<label>Vechicle Type</label>
<label>Transporter Name</label>
<?php
$opt = array(""=>'Vechicle Type',"Rented"=>'Rented',"Owned"=>'Owned');
echo form_dropdown('VehicleType', $opt,set_value('VehicleType'),'id="VehicleType"' ,'class="form-control select2');
$option = array(0 => 'Transporter Name');
if (!empty($transporter)) {
foreach ($transporter as $opt) :
$option[$opt->id] = $opt->name;
endforeach;
}
echo form_dropdown('TransporterId', $option, set_value('TransporterId'), 'id="TransporterId"', 'class="form-control select2"');
?>
</div>
<div class="col-md-3">

View File

@ -0,0 +1,289 @@
<style>
.Date-filter-form {
display: flex;
align-items: center;
gap: 10px; /* Adjust the gap as needed */
}
.Date-filter-form input, .Date-filter-form button {
padding: 5px;
font-size: 14px;
}
.Date-filter-form button {
background-color: #007bff;
color: white;
border: none;
cursor: pointer;
}
.Date-filter-form button:hover {
background-color: #0056b3;
}
.icon-button {
background: none;
border: none;
cursor: pointer;
color: #007bff;
font-size: 18px;
}
.icon-button:hover {
color: #0056b3;
}
</style>
<div class="content-wrapper">
<section class="content">
<div class="box">
<div class="box-header">
<CENTER>
<h3 class="box-title"> Transporter Details</h3>
</CENTER>
</div>
<div class="container-fluid">
<div class="row">
<div class="col-xs-12 col-md-6">
<form class="Date-filter-form" id="DateRangeFilter" >
<input type="hidden" name="table" value="requisition">
<label for="fromDate">From:</label>
<input type="text" id="fromDate" name="fromDate" placeholder="Select From Date" autocomplete="off" required>
<label for="toDate">To:</label>
<input type="text" id="toDate" name="toDate" placeholder="Select To Date" autocomplete="off" required>
<button type="submit">Search</button>
<i class="fa fa-repeat" aria-hidden="true" class="icon-button" id="resetButton" title="Reset"></i>
<div class="error" id="error"></div>
</form>
</div>
<div class="col-xs-12 col-md-6 text-right">
<div class="form-group">
<a data-toggle="modal" href="#transporterwizard" data-id="0" data-name="" class="btn btn-success">Add New Transporter</a>
</div>
</div>
<div class="row">
<div class="col-xs-12">
<table id="datatable" class="table table-bordered table-hover" style="background-color:#fff;font-size:12px;">
<thead style="background-color: #ddd;">
<tr>
<th>Create Date</th>
<th>Create Time</th>
<th>Transporter ID</th>
<th>Transporter Name</th>
<th>Created By</th>
<th>Active</th>
<th>Action</th>
</tr>
</thead>
<tbody>
<?php
if (!empty($userRecords)) {
foreach ($userRecords as $record) {
$createdat = new DateTime($record->created_on);
$date = $createdat->format('d-m-Y');
$time = $createdat->format('h:i A');
?>
<tr>
<td align="right"><?php echo $date; ?></td>
<td align="right"><?php echo $time; ?></td>
<td><?php echo $record->id ?></td>
<td><?php echo $record->name ?></td>
<td><?php echo $record->FirstName ?></td>
<td><?php
$a = '';
$a = $record->isactive == 1 ? 'ACTIVE' : 'INACTIVE';
echo $a;
?></td>
<td>
<a data-toggle="modal" href="#transporterwizard" data-id="<?php echo $record->id; ?>" data-name="<?php echo $record->name; ?>" ><i class="fa fa-pencil"></i></a>
<?php if($record->isactive == 1){ ?>
<a href="<?php echo base_url() . 'deleteTransporter?id=' . $record->id; ?>"><i class="fa fa-trash"></i>&nbsp;&nbsp;&nbsp;</a>
<?php } ?>
</td>
</tr>
<?php
}
}
?>
</tbody>
</table>
</div>
</div>
</div>
<!-- for Add and edit Modal -->
<div class="modal fade" id="transporterwizard" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<!-- Modal Header -->
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span aria-hidden="true">&times;</span>
<span class="sr-only">Close</span>
</button>
<center><h4 class="modal-title" id="myModalLabel"></h4></center>
</div>
<!-- Modal Body -->
<div class="modal-body">
<form id="transporterForm" class="form-horizontal" role="form">
<div class="form-group">
<div class="row">
<div class="col-md-3 col-md-offset-2">
Transporter Name:
</div>
<div class="col-md-5">
<input type="text" name="transportername" id="transportername" class="form-control">
<input type="hidden" name="transporterid" id="transporterid" class="form-control">
</div>
</div>
</div>
</form>
</div>
<!-- Modal Footer -->
<div class="modal-footer">
<a class="btn btn-cancel" data-dismiss="modal">Cancel</a>
<a class="btn btn-success font tempClick" id="tempClick">
<span class="bold">Submit</span>
</a>
</div>
</div>
</div>
</div>
</section>
</div>
<script type="text/javascript" src="<?php echo base_url(); ?>public/assets/js/common.js" charset="utf-8"></script>
<script src="https://cdn.datatables.net/plug-ins/1.10.16/sorting/datetime-moment.js"></script>
<script>
$(document).ready(function() {
$("#transporterwizard").on("shown.bs.modal", function(e) {
var id = $(e.relatedTarget).data('id');
var name = $(e.relatedTarget).data('name');
$('#transportername').val('');
$('#transporterid').val(id);
if (id == 0) {
$('.modal-title').html("Add Transporter");
} else {
$('.modal-title').html("Edit Transporter");
$('#transportername').val(name);
}
});
$('#tempClick').click(function() {
if ($('#transportername').val() === '') {
alert('Please Enter the Transporter Name');
return;
}
var formData = {
transporterid: $('#transporterid').val(),
transportername: $('#transportername').val()
};
$.ajax({
type: 'POST',
url: "<?php echo base_url();?>fetchTransporterDetails",
data: formData,
dataType: 'json',
success: function(response) {
if (response.status) {
alert(response.message);
$('#transporterwizard').modal('hide');
location.reload();
} else {
alert(response.message);
}
},
error: function(xhr, status, error) {
alert('An error occurred: ' + error);
}
});
});
});
</script>
<script>
$(document).ready(function() {
$.fn.dataTable.ext.type.order['date-eu-pre'] = function (date) {
var dateSplit = date.split('-');
return (dateSplit[2] + dateSplit[1] + dateSplit[0]) * 1;
};
// Initialize the DataTable
var table = $('#datatable').DataTable({
"paging": true,
"lengthChange": true,
"searching": true,
"ordering": true,
"columnDefs": [{
"targets": 0,
"type": "date-eu"
}],
"aaSorting": [
[0, "desc"]
],
"info": true,
"autoWidth": true,
"pageLength": 10,
"lengthMenu": [10, 25, 50, 100],
});
// Initialize the datepickers
$("#fromDate").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: function(selectedDate) {
var minDate = $(this).datepicker("getDate");
$("#toDate").datepicker("option", "minDate", minDate);
}
});
$("#toDate").datepicker({
dateFormat: 'dd-mm-yy',
onSelect: function(selectedDate) {
var maxDate = $(this).datepicker("getDate");
$("#fromDate").datepicker("option", "maxDate", maxDate);
}
});
// Reset button functionality
$("#resetButton").click(function() {
$("#fromDate").datepicker("setDate", null);
$("#toDate").datepicker("setDate", null);
$("#toDate").datepicker("option", "minDate", null);
$("#fromDate").datepicker("option", "maxDate", null);
table.draw();
});
// Date range filter
$.fn.dataTable.ext.search.push(
function(settings, data, dataIndex) {
var fromDate = $("#fromDate").datepicker("getDate");
var toDate = $("#toDate").datepicker("getDate");
var dateStr = data[0]; // Assuming the date is in the first column
// Convert dateStr to Date object
var dateParts = dateStr.split("-");
var date = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]); // Convert dd-mm-yyyy to Date object
if (!fromDate || !toDate) {
return true; // No filter if dates are not selected
}
return date >= fromDate && date <= toDate;
}
);
// Handle form submission
$("#DateRangeFilter").submit(function(e) {
e.preventDefault();
table.draw();
});
});
</script>
<!-- <script src="https://cdn.datatables.net/plug-ins/1.10.11/sorting/date-eu.js"></script> -->

View File

@ -284,10 +284,21 @@ var data = suggestion.DriverMobileNumber;
?>
</div>
<div class="col-md-3">
<label>Vehicle Type</label>
<?php
$opt = array(""=>'Vehicle Type',"Rented"=>'Rented',"Owned"=>'Owned');
echo form_dropdown('VehicleType', $opt,set_value('VehicleType'),'id="Vehicle_Type"' ,'class="form-control select2');
<label>Transporter Name</label>
<?php
$dropdown = '<select name="TransporterId" id="Transporter_Id" class="form-control select2">';
$dropdown .= '<option value=0>Transporter Name</option>';
if (!empty($transporter)) {
foreach ($transporter as $opt) {
$selected = set_value('TransporterId') == $opt->id ? 'selected' : '';
$disabled = $opt->isactive == 0 ? 'disabled' : '';
$label = $opt->isactive == 0 ? $opt->name . ' (Inactive)' : $opt->name;
$dropdown .= "<option value='{$opt->id}' $selected $disabled>{$label}</option>";
}
}
$dropdown .= '</select>';
echo $dropdown;
?>
</div>
<div class="col-md-3">
@ -589,7 +600,7 @@ var data = suggestion.DriverMobileNumber;
var invoiceNoInput = modal.find('#Invoice_No');
var MaterialRcvdDateInput = modal.find('#MaterialRcvdDate');
var VehicleNoInput = modal.find('#Vehicle_No');
var VehicleTypeInput = modal.find('#Vehicle_Type');
var TransporterIdInput = modal.find('#Transporter_Id');
var DriverInput = modal.find('#Driver_Name');
var DriverMobileNumberInput = modal.find('#DriverMobileNumber');
var MasterFileInput = modal.find('#MasterFile');
@ -647,7 +658,7 @@ console.log(parsedData);
$('#printLink').attr('href', '#');
$('.help-block').text('');
$("#Vehicle_No").val('');
$("#Vehicle_Type").val('');
$("#Transporter_Id").val('');
$("#Driver_Name").val('');
$("#DriverMobileNumber").val('');
$("#IGRStatus").val('');
@ -686,7 +697,7 @@ console.log(parsedData);
$('#draftIGR').text(button_text_for_IGRDraft);
$("#hiddenIsOpenOrder").val(isOpenOrder);
$("#Vehicle_No").val(item.VehicleNo);
$("#Vehicle_Type").val(item.VehicleType);
$("#Transporter_Id").val(item.TransporterId);
$("#Driver_Name").val(item.DriverName);
$("#DriverMobileNumber").val(item.DriverMobileNumber);
$("#IGRStatus").val(item.IGRStatus);
@ -882,7 +893,7 @@ console.log(parsedData);
formData.append('invno', $("#Invoice_No").val());
formData.append('invdate', $("#Invoice_Date").val());
formData.append('vehicle_no', $('#Vehicle_No').val());
formData.append('vehicle_type', $('#Vehicle_Type').val());
formData.append('Transporter_Id', $('#Transporter_Id').val());
formData.append('driver', $('#Driver_Name').val());
formData.append('driver_mobile', $('#DriverMobileNumber').val());
formData.append('status', status);
@ -942,7 +953,7 @@ console.log(parsedData);
formData.append('invno', $("#Invoice_No").val());
formData.append('invdate', $("#Invoice_Date").val());
formData.append('vehicle_no', $('#Vehicle_No').val());
formData.append('vehicle_type', $('#Vehicle_Type').val());
formData.append('Transporter_Id', $('#Transporter_Id').val());
formData.append('driver', $('#Driver_Name').val());
formData.append('driver_mobile', $('#DriverMobileNumber').val());
formData.append('status', status);