268 lines
9.7 KiB
PHP
268 lines
9.7 KiB
PHP
<!-- In this purchase order listing , datatable is used for sorting , pagination and etc.. , new design is used for table fro the theme-->
|
|
|
|
<style>
|
|
.pagination {
|
|
margin: 0px !important;
|
|
}
|
|
</style>
|
|
<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;
|
|
}
|
|
th, td {
|
|
white-space: nowrap;
|
|
}
|
|
</style>
|
|
<div class="content-wrapper">
|
|
<!-- Content Header (Page header) -->
|
|
|
|
<!-- Main content -->
|
|
<section class="content">
|
|
<div class="row">
|
|
<div class="col-xs-12">
|
|
<div class="box">
|
|
<div class="box-header">
|
|
<center>
|
|
<h3 class="box-title">Amendment Purchase Order List </h3>
|
|
</center>
|
|
</div>
|
|
<!-- /.box-header -->
|
|
<div class="box-body">
|
|
<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>
|
|
<table id="example1" class="table table-hover editableTable" style="background-color:#fff;font-size:12px;">
|
|
<thead style="background-color: #ddd;">
|
|
<tr>
|
|
<!-- <th>#</th> -->
|
|
<th>PO Date</th>
|
|
<th>PONO</th>
|
|
<th>PO Type</th>
|
|
<th>Supplier Name</th>
|
|
<th>Total Order Value</th>
|
|
<th>PO Status</th>
|
|
<th>Delivery Option</th>
|
|
<th>Delivery Date</th>
|
|
<th>Delivery Schedule</th>
|
|
<th>Action</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody><?php
|
|
if (!empty($POData)) {
|
|
$index = 0;
|
|
foreach ($POData as $record) {
|
|
$index = $index + 1;
|
|
?>
|
|
<tr id="<?php echo $index; ?>">
|
|
<!-- <td align="left"><?php echo $index; ?></td> -->
|
|
<td align="right"><?php $Pdt = new DateTime($record->PODate);
|
|
$PODate = $Pdt->format('d-m-Y');
|
|
echo $PODate
|
|
?></td>
|
|
<td><?php echo $record->PONO ?></td>
|
|
<td><?php echo $record->ReqType ?></td>
|
|
<td><?php echo $record->SupplierName ?></td>
|
|
<td align="right"><?php echo $record->TotalOrderValue ?></td>
|
|
|
|
<!-- <td><?php echo $record->StatusName ?></td> -->
|
|
<td><?php
|
|
$statusMappings = [
|
|
'PO APPROVED' => 'AWAITING APPROVE',
|
|
'AWAITING RELEASE' => 'AWAITING APPROVE',
|
|
'RELEASER ONHOLD' => 'APPROVER ONHOLD',
|
|
'PO RELEASED' => 'PO APPROVED',
|
|
];
|
|
|
|
if (isset($record->StatusName) && !empty($record->StatusName)) {
|
|
if (isset($statusMappings[$record->StatusName])) {
|
|
echo $statusMappings[$record->StatusName];
|
|
} else {
|
|
echo $record->StatusName;
|
|
}
|
|
} else {
|
|
echo "Status not provided";
|
|
}
|
|
?></td>
|
|
<td><?php $option = 'By Deliver Date';
|
|
if ($record->DeliveryOption == 1) {
|
|
$option = "By Schedule";
|
|
} else if ($record->DeliveryOption == 2) {
|
|
$option = "By Dispatch Instruction";
|
|
}
|
|
echo $option ?></td>
|
|
<td align="right"><?php
|
|
if ($record->DeliveryOption == 0) {
|
|
$Ddt = new DateTime($record->DeliveryDate);
|
|
$Deliverydt = $Ddt->format('d-m-Y');
|
|
echo $Deliverydt;
|
|
} else if ($record->DeliveryOption == 1) {
|
|
$Deliverydt = '';
|
|
echo $Deliverydt;
|
|
} ?></td>
|
|
<td><?php echo $record->DeliverySchedule ?></td>
|
|
|
|
|
|
|
|
|
|
<td> <a data-toggle="tooltip" href="<?php echo base_url() . 'EditAmendPO?PONO=' . $record->PONO . '&ReqType=' . $record->ReqType . '&CapitalRange=' . $record->CapitalRange; ?>"><i class="fa fa-pencil" data-toggle="tooltip" title="<?php echo $record->PONO; ?> - Click here to Edit Purchase Order details"></i> </a>
|
|
|
|
|
|
<a data-toggle="tooltip" href="<?php echo base_url() . 'EditAmendPO?PONO=' . $record->PONO . '&ReqType=' . $record->ReqType . '&CapitalRange=' . $record->CapitalRange; ?>"> <a data-toggle="tooltip" href="<?php echo base_url() . 'purchaseorder/CreatePOPrint?PONO=' . $record->PONO . '&ReqType=' . $record->ReqType; ?>"><i class="fa fa-print" data-toggle="tooltip" title="<?php echo $record->PONO; ?> - Click here to Print the Purchase Order details"></i> </a>
|
|
</td>
|
|
<?php
|
|
} ?>
|
|
</tr>
|
|
<?php
|
|
}
|
|
|
|
?>
|
|
</tbody>
|
|
|
|
</table>
|
|
</div>
|
|
<!-- /.box-body -->
|
|
</div>
|
|
<!-- /.box -->
|
|
|
|
</div>
|
|
<!-- /.col -->
|
|
</div>
|
|
<!-- /.row -->
|
|
</section>
|
|
<!-- /.content -->
|
|
</div>
|
|
<!-- /.content-wrapper -->
|
|
<!-- <script>
|
|
$(function() {
|
|
$.fn.dataTable.moment('DD-MM-YYYY');
|
|
$('#example1').DataTable({
|
|
"paging": true,
|
|
"lengthChange": true,
|
|
"searching": true,
|
|
"ordering": true,
|
|
// "columnDefs" : [{"targets":3, "type":"date-eu"}],
|
|
"aaSorting": [
|
|
[2, "desc"]
|
|
],
|
|
|
|
"info": true,
|
|
"autoWidth": false
|
|
});
|
|
});
|
|
</script> -->
|
|
<script src="https://cdn.datatables.net/plug-ins/1.10.16/sorting/datetime-moment.js"></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 = $('#example1').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>
|