Viewing file: f53f10b14c6572183488dee531b5a02964fa2fae.php (30.14 KB) -rwxrwxrwx Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php $__env->startSection('title'); ?> Deliveries <?php $__env->stopSection(); ?>
<?php $__env->startSection('css'); ?>
<link href="<?php echo e(URL::asset('assets/libs/sweetalert2/sweetalert2.min.css')); ?>" rel="stylesheet" type="text/css" />
<link href="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/css/select2.min.css" rel="stylesheet" type="text/css" />
<style>
.choices__list--dropdown {
visibility: hidden;
z-index: 1;
position: absolute;
width: 100%;
background-color: var(--vz-choices-bg);
border: 1px solid var(--vz-border-color);
box-shadow: 0 5px 10px rgba(30,32,37,.12);
top: 100%;
margin-top: 0;
padding: 10px 10px 20px;
border-bottom-left-radius: 2.5px;
border-bottom-right-radius: 2.5px;
word-break: break-all;
will-change: visibility;
-webkit-animation-duration: .3s;
animation-duration: .3s;
-webkit-animation-fill-mode: both;
animation-fill-mode: both;
transform: translateY(1px);
max-height: 220px;
overflow-y: scroll !important;
}
</style>
<?php $__env->stopSection(); ?>
<?php $__env->startSection('content'); ?>
<?php $__env->startComponent('components.breadcrumb'); ?>
<?php $__env->slot('li_1'); ?> Order <?php $__env->endSlot(); ?>
<?php $__env->slot('title'); ?>Deliveries List <?php $__env->endSlot(); ?>
<?php echo $__env->renderComponent(); ?>
<div class="row">
<div class="col-lg-12">
<div class="card" id="orderList">
<?php if($errors->any()): ?>
<div class="alert alert-danger">
<?php $__currentLoopData = $errors->all(); $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $error): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<span class="each-error"><?php echo e($error); ?> </span><br/>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
</div>
<?php endif; ?>
<?php if(session()->has('message')): ?>
<div class="alert alert-success">
<?php echo e(session()->get('message')); ?>
</div>
<?php endif; ?>
<div class="card-header border-0">
<div class="d-flex align-items-center">
<h5 class="card-title mb-0 flex-grow-1">Order Deliveries List</h5>
<div class="flex-shrink-0 ">
<button type="button" class="btn btn-info add-btn"
id="create-btn" onClick="exportData();"><i
class="ri-download-line align-bottom me-1"></i> Export CSV
</button>
</div>
</div>
</div>
<div class="card-body border border-dashed border-end-0 border-start-0">
<form>
<div class="row g-3">
<div class="col-xxl-2 col-sm-4">
<div class="search-box">
<input type="text" id="search_input" class="form-control search"
placeholder="Search for order ID">
<i class="ri-search-line search-icon"></i>
</div>
</div>
<!--end col-->
<div class="col-xxl-2 col-sm-4">
<div>
<input type="text" class="form-control" data-provider="flatpickr"
data-date-format="d M, Y" data-range-date="true"
id="demo-datepicker" placeholder="Select date">
</div>
</div>
<div class="col-xxl-2 col-sm-4">
<div>
<select class="form-control"
name="choices-single-default" id="delivered_by">
<!-- 1 for received,2 for accepted,3 picked up,4 delivered,5 cancel and 6 return -->
<option value="" disabled>Delivered By</option>
<option value="all" selected>All Delivery Partner</option>
<?php if(isset($delivery_partners)): ?>
<?php $__currentLoopData = $delivery_partners; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $partner): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option value="<?php echo e($partner->id); ?>"><?php echo e($partner->name); ?></option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
<?php endif; ?>
</select>
</div>
</div>
<!--end col-->
<div class="col-xxl-2 col-sm-4">
<div>
<select class="form-control"
name="choices-single-default" id="idStatus">
<!-- 1 for received,2 for accepted,3 picked up,4 delivered,5 cancel and 6 return -->
<option value="" disabled>Select Status</option>
<option value="all" selected>All Status</option>
<option value="1">Requested For Pick up</option>
<option value="2">Picked Up</option>
<option value="3">Delivered</option>
<option value="5">Cancelled</option>
<option value="6">Returned</option>
</select>
</div>
</div>
<!--end col-->
<div class="col-xxl-2 col-sm-4" style="max-height:40px;">
<div>
<select class="form-control"
name="choices-single-default" id="idVendor">
<option value="">Select Vendor</option>
<option value="all" selected>All Vendor</option>
<?php if(isset($vendors)): ?>
<?php $__currentLoopData = $vendors; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $vendor): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option value="<?php echo e($vendor->id); ?>"><?php echo e($vendor->first_name); ?> <?php echo e($vendor->last_name); ?></option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
<?php endif; ?>
</select>
</div>
</div>
<!--end col-->
<div class="col-xxl-1 col-sm-4">
<div>
<button type="button" class="btn btn-primary w-100"
onclick="SearchData();"> <i
class="ri-equalizer-fill me-1 align-bottom"></i>
Filters
</button>
</div>
</div>
<!--end col-->
</div>
<!--end row-->
</form>
</div>
<div class="card-body pt-0">
<div>
<div class="table-responsive table-card mb-1">
<table class="table table-nowrap align-middle" id="deliveryTable">
<thead class="text-muted table-light">
<tr class="text-uppercase">
<th class="sort" data-sort="id">#INV</th>
<th class="sort" data-sort="id">Date</th>
<th>Customer</th>
<th>Address</th>
<th>Vendor</th>
<th>Delivered By</th>
<th>Status</th>
<th>Action</th>
</tr>
</thead>
<tbody class="list form-check-all">
<tr>
<td class="id"></td>
<td class="date"></td>
<td class="customer_name"></td>
<td class="address"></td>
<td class="vendor"></td>
<td class="delivery"></td>
<td class="status"></td>
<td class="action"></td>
</tr>
</tbody>
</table>
<div class="noresult" style="display: none">
<div class="text-center">
<lord-icon src="https://cdn.lordicon.com/msoeawqm.json"
trigger="loop" colors="primary:#405189,secondary:#0ab39c"
style="width:75px;height:75px">
</lord-icon>
<h5 class="mt-2">Sorry! No Result Found</h5>
<p class="text-muted">We've searched more than 150+ Orders We did
not find any
orders for you search.</p>
</div>
</div>
</div>
<div class="d-flex justify-content-end">
<div class="pagination-wrap hstack gap-2">
<a class="page-item pagination-prev disabled" href="#">
Previous
</a>
<ul class="pagination listjs-pagination mb-0"></ul>
<a class="page-item pagination-next" href="#">
Next
</a>
</div>
</div>
</div>
</div>
<!-- Modal -->
<div class="modal fade modal-lg" id="editDelivery_Modal" tabindex="-1"
aria-labelledby="exampleModalLabel" aria-hidden="true">
<div class="modal-dialog modal-dialog-centered">
<div class="modal-content">
<div class="modal-header bg-light p-3">
<h5 class="modal-title" id="exampleModalLabel">Edit Order Delivery</h5>
<button type="button" class="btn-close" data-bs-dismiss="modal"
aria-label="Close" id="close-modal"></button>
</div>
<form class="row p-3 needs-validation" novalidate method="POST"
action="<?php echo e(route('edit_delivery')); ?>">
<?php echo csrf_field(); ?>
<input type="hidden" id="sale_id" name="sale_id" />
<div class="col-md-6 mb-2">
<label for="partner" class="form-label">Group Name <span
class="text-danger">*</span></label>
<select class="js-example-basic-single form-control" data-trigger id="partner" name="partner" required>
<option disabled selected value="">Select Delivey Partner</option>
<?php if(isset($delivery_partners)): ?>
<?php $__currentLoopData = $delivery_partners; $__env->addLoop($__currentLoopData); foreach($__currentLoopData as $partner): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?>
<option value="<?php echo e($partner->id); ?>"><?php echo e($partner->name); ?></option>
<?php endforeach; $__env->popLoop(); $loop = $__env->getLastLoop(); ?>
<?php endif; ?>
</select>
<div class="invalid-feedback">
Please select delivery partner.
</div>
</div>
<div class="col-md-6 mb-2">
<label for="status-field"
class="form-label">Status</label>
<select class="js-example-basic-single form-control" data-minimum-results-for-search="Infinity" data-trigger id="status-field" name="status" required>
<option selected value="1">Request For Pick up</option>
<option value="2">Picked Up</option>
</select>
</div>
<div class="col-md-6 mb-2">
<label for="address" class="form-label">Address <span
class="text-danger">*</span></label>
<div class="input-group has-validation">
<textarea class="form-control" name="address" id="address" cols="10" rows="4" minlength="20" placeholder="Enter delivery address" required></textarea>
<div class="invalid-feedback">
Please provide a valid address
</div>
</div>
</div>
<div class="col-md-6 mb-2">
<label for="note" class="form-label">Note</label>
<div class="input-group has-validation">
<textarea class="form-control" name="note" id="note" cols="10" rows="4" minlength="20" placeholder="Enter company address"></textarea>
</div>
</div>
<div class="modal-footer">
<div class="hstack gap-2 justify-content-end">
<button type="button" class="btn btn-light"
data-bs-dismiss="modal">Close</button>
<button type="submit" class="btn btn-success"
id="add-btn">Submit</button>
<!-- <button type="button" class="btn btn-success"
id="edit-btn">Update</button> -->
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
<!--end col-->
</div>
<!--end row-->
<?php $__env->stopSection(); ?>
<?php $__env->startSection('script'); ?>
<script src="<?php echo e(URL::asset('assets/libs/list.js/list.js.min.js')); ?>"></script>
<script src="<?php echo e(URL::asset('assets/libs/list.pagination.js/list.pagination.js.min.js')); ?>"></script>
<!--ecommerce-customer init js -->
<!-- <script src="<?php echo e(URL::asset('assets/js/pages/ecommerce-order.init.js')); ?>"></script> -->
<script src="<?php echo e(URL::asset('assets/libs/sweetalert2/sweetalert2.min.js')); ?>"></script>
<script src="<?php echo e(URL::asset('assets/js/pages/form-validation.init.js')); ?>"></script>
<script src="<?php echo e(URL::asset('/assets/js/app.min.js')); ?>"></script>
<script src = "https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js">
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/select2@4.1.0-rc.0/dist/js/select2.min.js"></script>
<script src="<?php echo e(URL::asset('assets/js/pages/select2.init.js')); ?>"></script>
<script>
$(document).ready(function() {
// $('#deliveryTable').DataTable( {
// new DataTable('#deliveryTable', {
// dom: 'Bfrtip',
// buttons: [
// 'copy', 'csv', 'excel', 'pdf', 'print'
// ]
// } );
$("#partner").select2({
dropdownParent: $("#editDelivery_Modal")
});
var url = window.location;
// for single sidebar menu
$('ul.navbar-nav a').filter(function () {
return this.href == url;
}).addClass('active');
});
var str_dt = function formatDate(date) {
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
var d = new Date(date),
time_s = (d.getHours() + ':' + d.getMinutes());
var t = time_s.split(":");
var hours = t[0];
var minutes = t[1];
var newformat = hours >= 12 ? 'PM' : 'AM';
hours = hours % 12;
hours = hours ? hours : 12;
minutes = minutes < 10 ? '0' + minutes : minutes;
month = '' + monthNames[(d.getMonth())],
day = '' + d.getDate(),
year = d.getFullYear();
if (month.length < 2)
month = '0' + month;
if (day.length < 2)
day = '0' + day;
return [day + " " + month + "," + year + " <small class='text-muted'>" + hours + ':' + minutes + ' ' + newformat + "</small>"];
};
var isChoiceEl = document.getElementById("idStatus");
var choices = new Choices(isChoiceEl, {
searchEnabled: true,
// searchResultLimit: 4,
shouldSort: false
});
var isChoiceEl = document.getElementById("delivered_by");
var choices = new Choices(isChoiceEl, {
searchEnabled: false,
shouldSort: false
});
var vendorEl = document.getElementById("idVendor");
var choices = new Choices(vendorEl, {
searchEnabled: true,
searchResultLimit: 5,
// position:"below"
});
var perPage = 10;
//Table
var options = {
valueNames: [
"id",
"date",
"customer_name",
"address",
"vendor",
"delivery",
"status",
"action"
],
page: perPage,
pagination: true,
plugins: [
ListPagination({
left: 2,
right: 2,
}),
],
};
// Init list
var orderList = new List("orderList", options).on("updated", function(list) {
list.matchingItems.length == 0 ?
(document.getElementsByClassName("noresult")[0].style.display = "block") :
(document.getElementsByClassName("noresult")[0].style.display = "none");
var isFirst = list.i == 1;
var isLast = list.i > list.matchingItems.length - list.page;
// make the Prev and Nex buttons disabled on first and last pages accordingly
document.querySelector(".pagination-prev.disabled") ?
document.querySelector(".pagination-prev.disabled").classList.remove("disabled") : "";
document.querySelector(".pagination-next.disabled") ?
document.querySelector(".pagination-next.disabled").classList.remove("disabled") : "";
if (isFirst) {
document.querySelector(".pagination-prev").classList.add("disabled");
}
if (isLast) {
document.querySelector(".pagination-next").classList.add("disabled");
}
if (list.matchingItems.length <= perPage) {
document.querySelector(".pagination-wrap").style.display = "none";
} else {
document.querySelector(".pagination-wrap").style.display = "flex";
}
if (list.matchingItems.length == perPage) {
document.querySelector(".pagination.listjs-pagination").firstElementChild.children[0].click()
}
if (list.matchingItems.length > 0) {
document.getElementsByClassName("noresult")[0].style.display = "none";
} else {
document.getElementsByClassName("noresult")[0].style.display = "block";
}
});
orderList.clear();
document.querySelector(".pagination-next").addEventListener("click", function() {
document.querySelector(".pagination.listjs-pagination") ?
document.querySelector(".pagination.listjs-pagination").querySelector(".active") ?
document.querySelector(".pagination.listjs-pagination").querySelector(".active").nextElementSibling.children[0].click() : "" : "";
});
document.querySelector(".pagination-prev").addEventListener("click", function() {
document.querySelector(".pagination.listjs-pagination") ?
document.querySelector(".pagination.listjs-pagination").querySelector(".active") ?
document.querySelector(".pagination.listjs-pagination").querySelector(".active").previousSibling.children[0].click() : "" : "";
});
// data into
$.ajax({
type:'get',
url:'<?php echo e(route("get_deliveries")); ?>',
success:function(data) {
dataAppend(data);
// $("#msg").html(data.msg);
}
});
function SearchData() {
var isstatus = document.getElementById("idStatus").value;
var delivered_by = document.getElementById("delivered_by").value;
var vendor = document.getElementById("idVendor").value;
var pickerVal = document.getElementById("demo-datepicker").value;
var search_input=$("#search_input").val();
var date1 = "";
var date2 = "";
if (pickerVal) {
date1 = pickerVal.split(" to ")[0];
date2 = pickerVal.split(" to ")[1];
}
var body={
'_token': '<?php echo e(csrf_token()); ?>',
"status":isstatus,
"vendor":vendor,
"delivered_by":delivered_by,
"from_date":date1,
"to_date":date2,
"search_input":search_input
}
$.ajax({
type:'POST',
url: '<?php echo e(route("filter_deliveries")); ?>',
data:body,
success:function(data) {
dataAppend(data);
}
});
}
function dataAppend(data) {
orderList.clear();
var json_records = JSON.parse(data);
Array.from(json_records).forEach(function(element) {
var url = '<?php echo e(route("order_details", ":order_id")); ?>';
url = url.replace(':order_id', element.id);
// '<a href="'+url+'" class="fw-medium link-primary">#' + element.id + '</a>'
orderList.add({
id: '<a href="'+url+'" class="fw-medium link-primary">#' + element.invoice + '</a>',
date: str_dt(element.date),
customer_name: element.customer_name,
address: element.address,
vendor: element.vendor,
delivery: element.delivery,
status: isStatus(element.status) ,
action: '<ul class="list-inline hstack gap-2 mb-0">\
<li class="list-inline-item" data-bs-toggle="tooltip"\
data-bs-trigger="hover" data-bs-placement="top"\
title="View">\
<a href="apps-ecommerce-order-details"\
class="text-primary d-inline-block">\
<i class="ri-eye-fill fs-16"></i>\
</a>\
</li>\
<li class="list-inline-item edit"\
data-bs-toggle="tooltip" data-bs-trigger="hover"\
data-bs-placement="top" title="Edit Delivery">\
<a onclick="edit_delivery_modal_open\
(`'+element.id+'`,`'+element.status+'`,`'+element.address+'`,`'+element.delivery_partner+'`,`'+element.note+'`)" href="javascript:"\
class="text-primary d-inline-block edit-item-btn">\
<i class="ri-pencil-fill fs-16"></i>\
</a>\
</li>\
</ul>'
});
orderList.sort('id', { order: "desc" });
orderList.sort('date', { order: "desc" });
});
orderList.remove("id", `<a href="apps-ecommerce-order-details" class="fw-medium link-primary"></a>`);
}
document.getElementById("editDelivery_Modal").addEventListener("hidden.bs.modal", function() {
$(this).find('form').trigger('reset');
});
function isStatus(val) {
switch (val) {
case 3:
return (
'<span class="badge badge-soft-success text-uppercase">Delivered</span>'
);
case 5:
return (
'<span class="badge badge-soft-danger text-uppercase">Cancelled</span>'
);
case 1:
return (
'<span class="badge badge-soft-secondary text-uppercase">\
Requested\
</span>'
);
case 2:
return (
'<span class="badge badge-soft-info text-uppercase">Picked Up </span>'
);
case 6:
return (
'<span class="badge badge-soft-primary text-uppercase">Returned</span>'
);
}
}
function edit_delivery_modal_open(sale_id,status,address,delivery,note) {
$("#sale_id").val(sale_id);
$('#partner').val(delivery);
$('#partner').trigger('change.select2');
$('#status-field').val(status);
$('#status-field').trigger('change.select2');
$("#address").text(address);
$("#note").val(note);
$('#editDelivery_Modal').modal('toggle');
}
function exportData() {
var isstatus = document.getElementById("idStatus").value;
var delivered_by = document.getElementById("delivered_by").value;
var vendor = document.getElementById("idVendor").value;
var pickerVal = document.getElementById("demo-datepicker").value;
var search_input=$("#search_input").val();
var date1 = "";
var date2 = "";
if (pickerVal) {
date1 = pickerVal.split(" to ")[0];
date2 = pickerVal.split(" to ")[1];
}
var body={
'_token': '<?php echo e(csrf_token()); ?>',
"status":isstatus,
"vendor":vendor,
"delivered_by":delivered_by,
"from_date":date1,
"to_date":date2,
"search_input":search_input
}
$.ajax({
type:'POST',
url: '<?php echo e(route("filter_deliveries")); ?>',
data:body,
success:function(data) {
JSONToCSVConvertor(data, "Vehicle Report", true);
}
});
}
function JSONToCSVConvertor(JSONData, ReportTitle, ShowLabel) {
//If JSONData is not an object then JSON.parse will parse the JSON string in an Object
var arrData = typeof JSONData != 'object' ? JSON.parse(JSONData) : JSONData;
var CSV = '';
//Set Report title in first row or line
CSV += ReportTitle + '\r\n\n';
//This condition will generate the Label/Header
if (ShowLabel) {
var row = "";
//This loop will extract the label from 1st index of on array
for (var index in arrData[0]) {
//Now convert each value to string and comma-seprated
row += index + ',';
}
row = row.slice(0, -1);
//append Label row with line break
CSV += row + '\r\n';
}
//1st loop is to extract each row
for (var i = 0; i < arrData.length; i++) {
var row = "";
//2nd loop will extract each column and convert it in string comma-seprated
for (var index in arrData[i]) {
row += '"' + arrData[i][index] + '",';
// var str=
// console.log(.substring(40, 46));
//
}
row.slice(0, row.length - 1);
//add a line break after each row
CSV += row + '\r\n';
}
if (CSV == '') {
alert("Invalid data");
return;
}
//Generate a file name
var fileName = "MyReport_";
//this will remove the blank-spaces from the title and replace it with an underscore
fileName += ReportTitle.replace(/ /g, "_");
//Initialize file format you want csv or xls
var uri = 'data:text/csv;charset=utf-8,' + escape(CSV);
// Now the little tricky part.
// you can use either>> window.open(uri);
// but this will not work in some browsers
// or you will not get the correct file extension
//this trick will generate a temp <a /> tag
var link = document.createElement("a");
link.href = uri;
//set the visibility hidden so it will not effect on your web-layout
link.style = "visibility:hidden";
link.download = fileName + ".csv";
//this part will append the anchor tag and remove it after automatic click
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
}
</script>
<?php $__env->stopSection(); ?>
<?php echo $__env->make('layouts.master', \Illuminate\Support\Arr::except(get_defined_vars(), ['__data', '__path']))->render(); ?><?php /**PATH D:\jiff\default\resources\views/pages/delivery/index.blade.php ENDPATH**/ ?>
|