352 lines
14 KiB
PHP
352 lines
14 KiB
PHP
<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>
|
||
<style>
|
||
.dataTables_wrapper .top {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
}
|
||
.dataTables_wrapper .dataTables_length {
|
||
float: left;
|
||
}
|
||
.dataTables_wrapper .dt-buttons,
|
||
.dataTables_wrapper .dataTables_filter {
|
||
float: right;
|
||
margin-left: 10px;
|
||
}
|
||
.dataTables_wrapper .dt-buttons {
|
||
margin-top: 10px;
|
||
margin-bottom: 10px;
|
||
}
|
||
.dataTables_wrapper .dataTables_filter {
|
||
margin-top: 10px;
|
||
margin-bottom: 10px;
|
||
}
|
||
</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"> Purchase Order List</h3>
|
||
</center>
|
||
<div class="row">
|
||
<div class="col-md-12">
|
||
<?php
|
||
helper('form');
|
||
$error = session()->getFlashdata('error');
|
||
if($error){
|
||
$type = "error";
|
||
echo show_alert($type, $error);
|
||
}
|
||
$success = session()->getFlashdata('success');
|
||
if($success){
|
||
$type = "success";
|
||
echo show_alert($type, $success);
|
||
}
|
||
?>
|
||
|
||
<div class="row">
|
||
<div class="col-md-12">
|
||
<?php // \Config\Services::validation()->listErrors('<div class="alert alert-danger alert-dismissable">', ' <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button></div>');
|
||
?> </div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</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="dataTableHistoriek" class="table table-bordered table-hover editableTable" style="background-color:#fff;font-size:12px;">
|
||
<thead style="background-color: #ddd;">
|
||
<tr>
|
||
<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="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>
|
||
|
||
<?php $statusCode = $record->StatusCode;
|
||
|
||
if ($statusCode == PO_DRAFT || $statusCode == PO_CREATED) { ?>
|
||
<td> <a data-toggle="tooltip" href="<?php echo base_url() . 'EditPO?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> </td>
|
||
<?php
|
||
} else { ?>
|
||
<td> <a data-toggle="tooltip" href="<?php echo base_url() . 'EditPO?PONO=' . $record->PONO . '&ReqType=' . $record->ReqType . '&CapitalRange=' . $record->CapitalRange; ?>"><i class="fa fa-eye" data-toggle="tooltip" title="<?php echo $record->PONO; ?> - Click here to view Purchase Order details"></i> </a> <a data-toggle="tooltip" href="<?php echo base_url() . 'purchaseorder/CreatePOPrint?PONO=' . $record->PONO . '&ReqType=' . $record->ReqType; ?>" target="new"><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 src="https://cdn.datatables.net/plug-ins/1.10.11/sorting/date-eu.js"></script>
|
||
<script src="https://cdn.datatables.net/buttons/2.3.4/js/dataTables.buttons.min.js"></script>
|
||
<script src="https://cdn.datatables.net/buttons/2.3.4/js/buttons.html5.min.js"></script>
|
||
<script src="https://cdn.datatables.net/buttons/2.3.4/js/buttons.print.min.js"></script>
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js"></script>
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/pdfmake.min.js"></script>
|
||
<script src="https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.2.7/vfs_fonts.js"></script>
|
||
<script src="https://cdn.datatables.net/plug-ins/1.13.6/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 = $('#dataTableHistoriek').DataTable({
|
||
"paging": true,
|
||
"lengthChange": true,
|
||
"scrollCollapse": 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],
|
||
"dom": "<'row'<'col-md-6'l><'col-md-6'Bf>>" +
|
||
"<'row'<'col-md-6'><'col-md-6'>>" +
|
||
"<'row'<'col-md-12't>><'row'<'col-md-4'i><'col-md-8'p>>",
|
||
"buttons": [
|
||
{
|
||
extend: 'excelHtml5',
|
||
text: 'Export to Excel',
|
||
title: 'Purchase Order',
|
||
exportOptions: {
|
||
columns: ':visible:not(:last-child)' // Exclude first and last columns
|
||
}
|
||
},
|
||
{
|
||
extend: 'pdfHtml5',
|
||
text: 'Export to PDF',
|
||
title: 'Purchase Order',
|
||
exportOptions: {
|
||
columns: ':visible:not(:last-child)' // Exclude first and last columns
|
||
}
|
||
}]
|
||
|
||
});
|
||
|
||
// 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>
|
||
$(function () {
|
||
$.fn.dataTable.moment('DD-MM-YYYY');
|
||
$('#dataTableHistoriek').DataTable({
|
||
"paging": true,
|
||
"lengthChange": true,
|
||
"scrollCollapse": true,
|
||
"searching": true,
|
||
"ordering": true,
|
||
"info": true,
|
||
"scrollX": true,
|
||
"autoWidth": true,
|
||
"pageLength": 10,
|
||
"order": [[0, "desc"]], // Assuming the "Created Date" is the first column and you want to order by it in descending order
|
||
"dom": '<"top"lBf>rt<"bottom"ip><"clear">', // Custom layout
|
||
"buttons": [
|
||
{
|
||
extend: 'excelHtml5',
|
||
text: 'Export to Excel',
|
||
title: 'Purchase Order',
|
||
exportOptions: {
|
||
columns: ':visible:not(:first-child):not(:last-child)' // Exclude first and last columns
|
||
}
|
||
},
|
||
{
|
||
extend: 'pdfHtml5',
|
||
text: 'Export to PDF',
|
||
title: 'Purchase Order',
|
||
exportOptions: {
|
||
columns: ':visible:not(:first-child):not(:last-child)' // Exclude first and last columns
|
||
}
|
||
}
|
||
]
|
||
});
|
||
});
|
||
</script> -->
|