ria/app/Views/transporterListing.php

450 lines
18 KiB
PHP
Executable File
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0-beta3/css/all.min.css">
<style>
/* Target the first child element of #datatable-buttons_wrapper */
#datatable-buttons_wrapper.dataTables_wrapper.dt-bootstrap4.no-footer> :nth-child(1) {
display: none;
}
/* Target the third child element of #datatable-buttons_wrapper */
#datatable-buttons_wrapper.dataTables_wrapper.dt-bootstrap4.no-footer> :nth-child(3) {
display: none;
}
.card_font_colorset_green {
font-size: 23.7215px;
font-weight: 500;
line-height: 1.2;
position: relative;
z-index: 1;
color: rgb(86, 166, 75);
}
.card_font_colorset_bule {
font-size: 23.7215px;
font-weight: 500;
line-height: 1.2;
position: relative;
z-index: 1;
color: rgb(31, 96, 196);
}
.card_font_colorset_red {
font-size: 23.7215px;
font-weight: 500;
line-height: 1.2;
position: relative;
z-index: 1;
color: rgb(173, 3, 23);
}
</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;
}
</style>
<div class="content-page">
<div class="content">
<!-- Start Content-->
<div class="container-fluid">
<!-- start page title -->
<div class="row">
<div class="col-12">
<div class="page-title-box page-title-box-alt">
<div class="page-title-right">
<ol class="breadcrumb m-0">
<li class="breadcrumb-item"><a href="javascript: void(0);">Master Details</a></li>
<li class="breadcrumb-item active">
<h4 class="page-title">Transporter Details</h4>
</li>
</ol>
</div>
<a data-toggle="modal" href="#transporterwizard" data-id="0" data-name=""
class="btn btn-success">Add New Transporter</a>
</div>
</div>
</div>
<div>
</div>
<div class="row">
<div class="col-12">
<div class="card">
<form class="Date-filter-form" id="DateRangeFilter"
style="margin-top: 14px;margin-bottom: -11px;margin-left: 33px;">
<input type="hidden" name="table" value="requisition">
<label for="fromDate">From:</label>
<input class="form-control date_range form-date-search" id="fromDate" name="fromDate"
placeholder="Select From Date" autocomplete="off" required>
<label for="toDate">To:</label>
<input class="form-control date_range to-date-search" id="toDate" name="toDate"
placeholder="Select To Date" autocomplete="off" required>
<button type="submit" class="range_search_button"><i class="fe-search" aria-hidden="true"
class="icon-button" title="Search"></i></button>
<i class="fe-rotate-cw range_reset_button" aria-hidden="true" class="icon-button"
id="resetButton" title="Reset"></i>
<div style="margin-left:auto">
<div class="form-check" style="margin-right: 25px;">
<input class="form-check-input" type="checkbox" id="showArchiveId"
name="showArchive" value="1" onchange="showArchiveList()"
style="width: 18px; height: 18px;">
<label class="form-check-label" for="showArchiveId"
style="font-size: 1rem; margin-left: 8px;">
Show Archive
</label>
</div>
</div>
<div class="error" id="error"></div>
</form>
<div class="card-body" style="overflow-x:scroll;">
<table id="transporter_list" class="table dt-responsive nowrap w-100">
<thead>
<tr>
<th>Create Date</th>
<th>Transporter Name</th>
<th>Created By</th>
<th>Status</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 class="<?php if ($record->isactive == 0) {
echo "deactivatedRow";
} ?>" style="<?php if ($record->isactive == 0) {
echo "display:none";
} ?>">
<td><?php echo $date; ?></td>
<td><?php echo $record->name ?></td>
<td><?php echo $record->FirstName ?></td>
<td><?php if ($record->isactive == 1) {echo"Active";}else{echo "InActive";}?></td>
<td>
<?php if ($record->isactive == 0) { ?>
<a onclick="confirmReActivate(event)" style="cursor:pointer;"
href="<?php echo base_url() . 'reActivateTransporter?id=' . $record->id; ?>"><i
class="fa fa-key" style="color:#02a8b5;"></i>&nbsp;&nbsp;&nbsp;</a>
<?php } else { ?>
<a data-toggle="modal" href="#transporterwizard"
data-id="<?php echo $record->id; ?>"
data-name="<?php echo $record->name; ?>"><i
class="fa fa-edit"></i>&nbsp;&nbsp;</a>
<a onclick="confirmDelete(event)"
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>
<p>( Note :The entries count includes archived data... )</p>
</div> <!-- end card body-->
</div> <!-- end card -->
</div><!-- end col-->
</div>
</div> <!-- container -->
</div> <!-- content -->
</div>
<!-- for Add and edit Modal -->
<div id="transporterwizard" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel"
aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<h4 class="modal-title"></h4>
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
</div>
<div class="modal-body p-4">
<form id="transporterForm" class="form-horizontal" role="form">
<div class="form-group">
<div class="row">
<div class="col-md-4 col-md-offset-2">
Transporter Name:
</div>
<div class="col-md-6">
<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>
<div class="modal-footer">
<button type="button" class="btn btn-secondary waves-effect" data-dismiss="modal"
value="Cancel">Cancel</button>
<button type="button" class="btn btn-info waves-effect waves-light tempClick"
id="tempClick">Submit</button>
</div>
</div>
</div>
</div><!-- /.modal -->
<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 () {
//loader is initiated
$('#loader').show();
if ($('#transportername').val() === '') {
alert('Please Enter the Transporter Name');
return;
}
var formData = {
transporterid: $('#transporterid').val(),
transportername: $('#transportername').val()
};
let checkTransporterExists = function checkTransporterExists() {
let transportername = $('#transportername').val();
$.ajax({
type: 'POST',
url: "<?php echo base_url(); ?>checkTransporter",
data: {
transportername
},
success: function (data) {
if (data && data.length > 0) {
let isactive = data[0].isactive;
if (isactive == 1 ) { alert(" Transporter with this Name Exists..!!"); }
else { alert(" Transporter with this Name Existing in deleted section ..!!"); }
$('#transporterwizard').modal('hide');
return;
} else {
$.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);
},
complete: function () {
//loader is stopped
$('#loader').hide();
console.log('second ajax call completed');
}
});
}
},
error: function (xhr, status, error) {
alert('An error occurred inside Check transporterExsits: ' + error);
},
complete: function () {
//loader is stopped
$('#loader').hide();
console.log('first ajax call completed')
}
});
};
checkTransporterExists();
});
});
$(document).ready(function () {
// Initialize the DataTable
var table = $('#transporter_list').DataTable({
dom: 'Blfrtip',
buttons: [
'excel', 'pdf'
],
pageLength: 10,
lengthMenu: [
[10, 20, 30, 50, -1],
[10, 20, 30, 50, "All"]
],
responsive: false,
order: false,
language: {
paginate: {
next: '<i class="fas fa-angle-right"></i>', // Next button icon
previous: '<i class="fas fa-angle-left"></i>' // Previous button icon
}
}
});
// Date range filter function
$.fn.dataTable.ext.search.push(
function (settings, data, dataIndex) {
var fromDate = $('#fromDate').val();
var toDate = $('#toDate').val();
if (!fromDate || !toDate) {
return true; // If no dates selected, don't filter
}
// Convert the fromDate and toDate from dd-mm-yyyy to Date objects
var fromParts = fromDate.split("-");
var toParts = toDate.split("-");
var startDate = new Date(fromParts[2], fromParts[1] - 1, fromParts[0]); // Year, month (0-based), day
var endDate = new Date(toParts[2], toParts[1] - 1, toParts[0]);
// Adjust startDate to include the day before the selected fromDate
startDate.setDate(startDate.getDate() - 1);
// Ensure endDate includes the entire end date by setting time to the end of the day
endDate.setHours(23, 59, 59, 999);
// Get the date from the DataTable row (assuming it's in the first column in dd-mm-yyyy format)
var dateStr = data[0];
var dateParts = dateStr.split("-");
var rowDate = new Date(dateParts[2], dateParts[1] - 1, dateParts[0]);
// Return true if the row date is within the range
return rowDate >= startDate && rowDate <= endDate;
}
);
// Handle form submission for the date range filter
$("#DateRangeFilter").submit(function (e) {
e.preventDefault();
table.draw(); // Redraw the table to apply the filter
});
// Reset button functionality
$("#resetButton").click(function () {
$("#fromDate").val('');
$("#toDate").val('');
table.draw(); // Redraw the table to clear the filter
});
// Automatically focus and open the To Date picker when From Date is selected
document.getElementById('fromDate').addEventListener('change', function () {
var fromDate = this.value;
var toDateInput = document.getElementById('toDate');
// Set the min attribute of the To Date input to the selected From Date
toDateInput.min = fromDate;
// Optionally reset the To Date input if the current value is before the new min date
if (toDateInput.value < fromDate) {
toDateInput.value = fromDate;
}
});
});
</script>
<script>
function confirmDelete(event) {
let result = confirm(` Do you Confirm to Delete the Transporter Detail?`);
if (result) { return result; } else { event.preventDefault(); }
}
function confirmReActivate(event) {
let result = confirm(` Do you Confirm to Re-activate the Transporter Detail?`);
if (result) { return result; } else { event.preventDefault(); }
}
function showArchiveList() {
let isChecked = $("#showArchiveId").prop('checked');
// Show or hide the rows based on checkbox status
$(".deactivatedRow").each(function () {
if (isChecked) {
$(this).show();
} else {
$(this).hide();
}
});
}
$(document).ready(function () {
let table = $('#transporter_list').DataTable();
showArchiveList();
table.on('draw', function () {
showArchiveList();
});
});
</script>