M3 Integration fixes
This commit is contained in:
@@ -0,0 +1,854 @@
|
||||
@extends('m3::liberty-theme.layout.main')
|
||||
@section('title')
|
||||
Transaction log for M3/Sentinel interface
|
||||
@endsection
|
||||
@section('content')
|
||||
<!-- /.row -->
|
||||
<div class="container-fluid px-4">
|
||||
<h1 class="mt-4">Transaction log for M3/Sentinel interface</h1>
|
||||
<div class="card mb-4">
|
||||
<div class="card-header">
|
||||
<div class="row">
|
||||
<div class="col-12 mt-1">
|
||||
<form class="needs-validation" enctype="multipart/form-data" id="formFilters">
|
||||
<div class="mb-3 row align-items-center">
|
||||
{{-- Show errors --}}
|
||||
@php $showerrors = old('SHOWERRORS') ?? $showerrors; @endphp
|
||||
<div class="col-auto">
|
||||
<label class=" form-check-label" for="flexSwitchCheckDefault">Show errors</label>
|
||||
<div class="form-check form-switch">
|
||||
<label for="SHOWERRORS" class="visually-hidden">SHOWERRORS</label>
|
||||
<input class="form-check-input" type="checkbox" id="SHOWERRORS" name="SHOWERRORS"
|
||||
value="Y" {{ $showerrors == 'Y' ? 'checked' : '' }}>
|
||||
</div>
|
||||
</div>
|
||||
{{-- MACPKR --}}
|
||||
<div class="col-auto">
|
||||
<label for="inputPassword2" class="col-form-label">Delivery Note</label>
|
||||
<label for="SHMACPKR" class="visually-hidden">SHMACPKR</label>
|
||||
<input type="text" class="form-control form-control-sm" name="SHMACPKR"
|
||||
id="SHMACPKR" value="{{ old('SHMACPKR') ?? $macpkr }}" maxlength="11">
|
||||
</div>
|
||||
{{-- Start Date --}}
|
||||
<div class="col-auto">
|
||||
<label for="exampleFormControlInput1" class="col-form-label">Start Date</label>
|
||||
<label for="STARTDATE" class="visually-hidden">STARTDATE</label>
|
||||
<input type="date" class="form-control form-control-sm" id="STARTDATE"
|
||||
name="STARTDATE"
|
||||
value="{{ old('STARTDATE') ?? today()->subDays(1)->format('Y-m-d') }}" required>
|
||||
</div>
|
||||
{{-- End Date --}}
|
||||
<div class="col-auto">
|
||||
<label for="exampleFormControlInput1" class="col-form-label">End Date</label>
|
||||
<label for="ENDDATE" class="visually-hidden">ENDDATE</label>
|
||||
<input type="date" class="form-control form-control-sm" id="ENDDATE" name="ENDDATE"
|
||||
value="{{ old('ENDDATE') ?? date('Y-m-d') }}" required>
|
||||
</div>
|
||||
{{-- SHSOURCE --}}
|
||||
<div class="col-auto">
|
||||
<label for="SHSOURCE" class="col-form-label">Source</label>
|
||||
@php
|
||||
$transxTypes = Config::get('arrays.transxTypes');
|
||||
$shsource = old('SHSOURCE') ?? $shsource;
|
||||
@endphp
|
||||
{{-- transxTypes --}}
|
||||
<select class="form-select" name="SHSOURCE" id="SHSOURCE">
|
||||
<option value="">Select Source...</option>
|
||||
@foreach ($transxTypes as $key => $transxType)
|
||||
<option value="{{ $key }}" {{ $shsource == $key ? 'selected' : '' }}>
|
||||
{{ $transxType }}</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</div>
|
||||
|
||||
<input type="hidden" id="SKIPDATES" name="SKIPDATES" value="{{ $skipdates }}">
|
||||
|
||||
<div class="col-auto align-self-end">
|
||||
<button type="button" class="btn btn-sm btn-primary" id="filterTop">Submit</button>
|
||||
</div>
|
||||
<div class="col-auto align-self-end">
|
||||
<a type="button" class="btn btn-sm btn-danger" id="refresh">Refresh</a>
|
||||
</div>
|
||||
<div class="col-auto align-self-end">
|
||||
<button type="button" class="btn btn-sm btn-warning mt-4" id="exportExcel">Download
|
||||
Excel</button>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</form>
|
||||
{{-- Form for Export --}}
|
||||
<form enctype="multipart/form-data" method="POST" action="{{ route('m3.exporttoExcel699') }}"
|
||||
id="exporttoExcelForm">
|
||||
@csrf
|
||||
<input type="hidden" name="SHMACPKR" id="SHMACPKR1" value="">
|
||||
<input type="hidden" name="SHSOURCE" id="SHSOURCE1" value="">
|
||||
<input type="hidden" name="STARTDATE" id="STARTDATE1" value="">
|
||||
<input type="hidden" name="ENDDATE" id="ENDDATE1" value="">
|
||||
<input type="hidden" name="SHOWERRORS" id="SHOWERRORS1" value="">
|
||||
<input type="hidden" name="SKIPDATES" id="SKIPDATES1" value="{{ $skipdates }}">
|
||||
</form>
|
||||
</div>
|
||||
<div class="col-12 mt-1">
|
||||
{{-- Header Title --}}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<div class="container-fluid table-responsive">
|
||||
<table class="table table-striped table-bordered table-hover" id="datatablesSimple5"
|
||||
style="width:100%">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Delivery Note</th>
|
||||
<th>Order #</th>
|
||||
<th>Customer</th>
|
||||
<th>Date</th>
|
||||
<th>Error</th>
|
||||
<th>Error description</th>
|
||||
<th>Request Type</th>
|
||||
<th>Source of transaction</th>
|
||||
<th>User</th>
|
||||
<th>Request or Response Data</th>
|
||||
<th>Error message</th>
|
||||
<th>Division</th>
|
||||
<th>Warehouse</th>
|
||||
<th>Acknowledge/Retry Date</th>
|
||||
<th>Acknowledged/Retried by User</th>
|
||||
<th>Internal Box Number</th>
|
||||
<th>Link to SPD</th>
|
||||
<th>Note</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
|
||||
@section('scripts')
|
||||
<script>
|
||||
var transTypes = JSON.parse('{!! json_encode($transxTypes) !!}');
|
||||
// console.log(transTypes);
|
||||
var usersList = JSON.parse('{!! json_encode($ICM428MCOL) !!}');
|
||||
|
||||
// DataTables Init
|
||||
let copyButtonTrans = 'Copy'
|
||||
let csvButtonTrans = 'CSV'
|
||||
let excelButtonTrans = 'Excel'
|
||||
let pdfButtonTrans = 'PDF'
|
||||
let colvisButtonTrans = 'Columns'
|
||||
let selectAllButtonTrans = 'Select All'
|
||||
let selectNoneButtonTrans = 'Deselect All'
|
||||
|
||||
let languages = {
|
||||
'en': 'https://cdn.datatables.net/plug-ins/1.10.19/i18n/English.json'
|
||||
};
|
||||
|
||||
$.extend(true, $.fn.dataTable.Buttons.defaults.dom.button, {
|
||||
className: 'btn'
|
||||
})
|
||||
// End Datatables
|
||||
|
||||
$(document).ready(function() {
|
||||
// DataTables Columns
|
||||
var columnDefs = [{
|
||||
data: "SHMACPKR",
|
||||
name: "SHMACPKR",
|
||||
render: function(data, type, row) {
|
||||
return '<a class="link-primary getmackpkr" href="#" data-macpkr="' + row.SHMACPKR
|
||||
.trim() + '">' + row.SHMACPKR.trim() + '</a>';
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "A4ONO",
|
||||
name: "A4ONO",
|
||||
render: function(data, type, row) {
|
||||
if (data != null) {
|
||||
return data;
|
||||
} else {
|
||||
return row.A1ONO;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "A4SHSHNM",
|
||||
name: "A4SHSHNM",
|
||||
render: function(data, type, row) {
|
||||
if (data != null) {
|
||||
return data;
|
||||
} else {
|
||||
return row.A1SHSHNM;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "SHDATETIME",
|
||||
name: "SHDATETIME",
|
||||
type: 'date'
|
||||
},
|
||||
{
|
||||
data: "SHERROR",
|
||||
name: "SHERROR",
|
||||
render: function(data, type, row) {
|
||||
// return data;
|
||||
|
||||
newData = data == 'X' && (row.SHTYPE.trim() == 'M3-QtyChg') ?
|
||||
'<button type="button" class="btn btn-sm btn-warning ml-1 acknowledge" data-shsource="' +
|
||||
row.SHSOURCE.trim() +
|
||||
'" data-macpkr="' + row.SHMACPKR.trim() + '" data-shco="' + row.SHCO.trim() +
|
||||
'" data-shwhs="' + row.SHWHS.trim() + '" ' +
|
||||
' data-shdt="' + row.SHDT.trim() + '" data-shtime="' + row.SHTIME.trim() +
|
||||
'" data-shtype="' + row.SHTYPE.trim() + '">Acknowledge</button>' :
|
||||
data;
|
||||
|
||||
closeBtn = (data == 'X' && (row.SHTYPE.trim() == 'M3-Err-out' || row.SHTYPE
|
||||
.trim() == 'M3-Res-out' || row.SHTYPE.trim() == 'M3-Req-out' || row.SHTYPE
|
||||
.trim() == 'M3-General')) ||
|
||||
(data == 'X' && row.SHSOURCE.trim() == 'M3ReceiverAPI' && (row.SHTYPE.trim() ==
|
||||
'M3-Lis-in' || row.SHTYPE.trim() == 'M3-Lis-JSN')) ||
|
||||
(data == 'X' && row.SHTYPE.trim().toUpperCase() == 'M3-LIS-SPL' && (row.SHSOURCE
|
||||
.trim() == 'ICM710E12' || row.SHSOURCE.trim() == 'ICM710E13' ||
|
||||
row.SHSOURCE.trim() == 'M3ReceiverAPI' || row.SHSOURCE.trim() ==
|
||||
'ICM710E')) ||
|
||||
(data == 'X' && row.SHTYPE.trim() == 'M3-Res-out' && row.SHSOURCE.trim() ==
|
||||
'M3InventoryReportReplen') ?
|
||||
'<button type="button" class="btn btn-sm btn-danger closeErr" data-shsource="' +
|
||||
row.SHSOURCE.trim() +
|
||||
'" data-macpkr="' + row.SHMACPKR.trim() + '" data-shco="' + row.SHCO.trim() +
|
||||
'" data-shwhs="' + row.SHWHS.trim() + '" ' +
|
||||
' data-shdt="' + row.SHDT.trim() + '" data-shtime="' + row.SHTIME.trim() +
|
||||
'" data-shtype="' + row.SHTYPE.trim() +
|
||||
'" title="Close"><i class="fa fa-times" aria-hidden="true"></i></button> ' :
|
||||
'';
|
||||
|
||||
return (data == 'X' && row.SHSOURCE.trim() == 'CloseShipmentCoChargeAPI') || (
|
||||
data == 'X' && row.SHSOURCE.trim() == 'TransferAPIURL' && row.SHTYPE
|
||||
.trim() == 'M3-Res-out') ?
|
||||
'<button type="button" class="btn btn-sm btn-warning retryAPICall" data-shsource="' +
|
||||
row.SHSOURCE.trim() +
|
||||
'" data-macpkr="' + row.SHMACPKR.trim() + '" data-shco="' + row.SHCO.trim() +
|
||||
'" data-shwhs="' + row.SHWHS.trim() + '" ' +
|
||||
' data-shdt="' + row.SHDT.trim() + '" data-shtime="' + row.SHTIME.trim() +
|
||||
'" data-shtype="' + row.SHTYPE.trim() +
|
||||
'" title="Retry"><i class="fas fa-redo-alt"></i></button> ' + closeBtn :
|
||||
data == 'X' && row.SHTYPE.trim().toUpperCase() == 'M3-LIS-SPL' && (row.SHSOURCE
|
||||
.trim() == 'ICM710E12' || row.SHSOURCE.trim() == 'ICM710E13' ||
|
||||
row.SHSOURCE.trim() == 'M3ReceiverAPI' || row.SHSOURCE.trim() == 'ICM710E'
|
||||
) ||
|
||||
(data == 'X' && row.SHSOURCE.trim() == 'M3ReceiverAPI' && (row.SHTYPE.trim() ==
|
||||
'M3-Lis-in' || row.SHTYPE.trim() == 'M3-Lis-JSN')) ||
|
||||
(data == 'X' && row.SHSOURCE.trim() == 'M3InventoryReportListURL') ||
|
||||
(data == 'X' && row.SHSOURCE.trim() == 'TransferAPIURL' && row.SHTYPE.trim() ==
|
||||
'M3-Err-out') ||
|
||||
(data == 'X' && row.SHTYPE.trim() == 'M3-Res-out' && row.SHSOURCE.trim() ==
|
||||
'M3InventoryReportReplen') ?
|
||||
closeBtn :
|
||||
data == 'Z' ?
|
||||
'<b>Closed</b>' :
|
||||
newData;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "SHDATA",
|
||||
name: "SHDATA",
|
||||
type: 'html',
|
||||
render: function(data, type, row) {
|
||||
var firstOccurrenceIndex = data.indexOf('{') > 0 ? data.indexOf('{') : 0;
|
||||
var TotalLength = data.length;
|
||||
var errorDesc = firstOccurrenceIndex > 0 && TotalLength > 200 ? data.substring(0,
|
||||
firstOccurrenceIndex) : data.substring(0, 200);
|
||||
// console.log(errorDesc);
|
||||
return errorDesc;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "SHTYPE",
|
||||
name: "SHTYPE"
|
||||
},
|
||||
{
|
||||
data: "SHSOURCE",
|
||||
name: "SHSOURCE",
|
||||
render: function(data, type, row) {
|
||||
var key = data.trim();
|
||||
return transTypes[key] != null ? transTypes[key] : data.trim();
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "R428FIRST",
|
||||
name: "R428FIRST",
|
||||
render: function(data, type, row) {
|
||||
return data != null ? (data.trim() + ' ' + row.R428FAMILY.trim()).toUpperCase() : (
|
||||
row.SHUSER.trim()).toUpperCase();
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "SHDATA",
|
||||
name: "SHDATA",
|
||||
type: 'html',
|
||||
render: function(data, type, row) {
|
||||
return data;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "SHCODE",
|
||||
name: "SHCODE"
|
||||
},
|
||||
{
|
||||
data: "SHCO",
|
||||
name: "SHCO"
|
||||
},
|
||||
{
|
||||
data: "SHWHS",
|
||||
name: "SHWHS"
|
||||
},
|
||||
{
|
||||
data: "SHACKDATE",
|
||||
name: "SHACKDATE",
|
||||
render: function(data, type, row) {
|
||||
return data + ' ' + row.SHACKTIME;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "SHACKUSER",
|
||||
name: "SHACKUSER",
|
||||
render: function(data, type, row) {
|
||||
var key = data.trim();
|
||||
var currUser = key;
|
||||
// console.log(key);
|
||||
if (key != '') {
|
||||
usersList.forEach(element => {
|
||||
// console.log(element.R428US+' '+key);
|
||||
if (element.R428US == key) {
|
||||
currUser = element.R428FIRST + ' ' + element.R428FAMILY;
|
||||
// console.log(currUser);
|
||||
}
|
||||
});
|
||||
}
|
||||
return currUser;
|
||||
}
|
||||
},
|
||||
{
|
||||
data: "SHINTBOX",
|
||||
name: "SHINTBOX"
|
||||
},
|
||||
{
|
||||
data: "SHMACPKR",
|
||||
name: "SHMACPKR",
|
||||
orderable: false,
|
||||
searchable: false,
|
||||
render: function(data, type, row) {
|
||||
fullUrl = "{{ Request::url() }}";
|
||||
UrlPath = "{{ Request::path() }}";
|
||||
sendUrl = fullUrl.replace(UrlPath, "");
|
||||
return '<a class="btn btn-sm btn-secondary" href="' + sendUrl +
|
||||
'php/AllSentPkr.php?macpkr_input=' + row.SHMACPKR.trim() + '">SPD</a>';
|
||||
}
|
||||
|
||||
},
|
||||
{
|
||||
data: "SHACKNOTE",
|
||||
name: "SHACKNOTE"
|
||||
}
|
||||
];
|
||||
|
||||
// DataTables init Config
|
||||
$.extend(true, $.fn.dataTable.defaults, {
|
||||
processing: true,
|
||||
serverSide: true,
|
||||
ajax: {
|
||||
url: '{{ route('m3.M3ErrorsDisplayDT') }}',
|
||||
data: function(d) {
|
||||
d.STARTDATE = $('#STARTDATE').val().trim();
|
||||
d.ENDDATE = $('#ENDDATE').val().trim();
|
||||
d.SHMACPKR = $('#SHMACPKR').val().trim();
|
||||
d.SHSOURCE = $('#SHSOURCE').val().trim();
|
||||
d.SHOWERRORS = $('#SHOWERRORS').is(':checked') ? 'Y' : 'N';
|
||||
d.SKIPDATES = $('#SKIPDATES').val().trim();
|
||||
}
|
||||
},
|
||||
columns: columnDefs,
|
||||
responsive: true,
|
||||
fixedColumns: true,
|
||||
orderCellsTop: true,
|
||||
order: [
|
||||
[3, 'asc'] // Order By Date time
|
||||
],
|
||||
pageLength: 100,
|
||||
"lengthMenu": [
|
||||
[10, 25, 50, 100, 500],
|
||||
[10, 25, 50, 100, 500]
|
||||
],
|
||||
select: {
|
||||
style: 'multi+shift',
|
||||
selector: 'td:first-child'
|
||||
},
|
||||
language: {
|
||||
url: languages['{{ app()->getLocale() }}']
|
||||
},
|
||||
dom: "<'row'<'col-sm-12 col-md-2'l><'col-sm-12 col-md-7'B>>" +
|
||||
"<'row'<'col-sm-12'tr>>" +
|
||||
"<'row'<'col-sm-12 col-md-5'i><'col-sm-12 col-md-7'p>>",
|
||||
// <'col-sm-12 col-md-3'f>
|
||||
buttons: [{
|
||||
extend: 'selectAll',
|
||||
className: 'btn-primary mr-1',
|
||||
text: selectAllButtonTrans,
|
||||
exportOptions: {
|
||||
columns: ':visible'
|
||||
},
|
||||
action: function(e, dt) {
|
||||
e.preventDefault()
|
||||
dt.rows().deselect();
|
||||
dt.rows({
|
||||
search: 'applied'
|
||||
}).select();
|
||||
}
|
||||
},
|
||||
{
|
||||
extend: 'selectNone',
|
||||
className: 'btn-primary mr-1',
|
||||
text: selectNoneButtonTrans,
|
||||
exportOptions: {
|
||||
columns: ':visible'
|
||||
}
|
||||
},
|
||||
{
|
||||
extend: 'copy',
|
||||
className: 'btn-default mr-1',
|
||||
text: copyButtonTrans,
|
||||
exportOptions: {
|
||||
columns: ':visible'
|
||||
}
|
||||
},
|
||||
{
|
||||
extend: 'csv',
|
||||
className: 'btn-default mr-1',
|
||||
text: csvButtonTrans,
|
||||
exportOptions: {
|
||||
columns: ':visible'
|
||||
}
|
||||
},
|
||||
{
|
||||
extend: 'excelHtml5',
|
||||
className: 'btn-default mr-1',
|
||||
text: excelButtonTrans,
|
||||
exportOptions: {
|
||||
columns: ':visible',
|
||||
stripHtml: true
|
||||
},
|
||||
customize: function(xlsx, btnObj, tableInst) {
|
||||
var sheet = xlsx.xl.worksheets['sheet1.xml'];
|
||||
var cellIndexes = tableInst.cells(".bg-danger").indexes();
|
||||
for (var i = 0; i < cellIndexes.length; i++) {
|
||||
var cellIndex = cellIndexes[i];
|
||||
var tblRow = cellIndex['row'] + 3; // adjusted from 0 indexed
|
||||
var tblCol = cellIndex['column']; // adjusted from 0 indexed
|
||||
var xlCol = numberToLetters(tblCol);
|
||||
var excelCell = xlCol + tblRow;
|
||||
$('row c[r=' + excelCell + ']', sheet).attr('s', '11');
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
extend: 'pdfHtml5',
|
||||
className: 'btn-default mr-1',
|
||||
text: pdfButtonTrans,
|
||||
exportOptions: {
|
||||
columns: ':visible'
|
||||
}
|
||||
},
|
||||
{
|
||||
extend: 'colvis',
|
||||
className: 'btn-default mr-1',
|
||||
text: colvisButtonTrans,
|
||||
exportOptions: {
|
||||
columns: ':visible'
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
var myTable = $('#datatablesSimple5').DataTable({});
|
||||
|
||||
// Add event listeners to the date filter inputs
|
||||
$('#filterTop,#refresh').on('click', function() {
|
||||
var SHMACPKR = $('#SHMACPKR').val().trim();
|
||||
// Check SHMACPKR for invalid CHARS
|
||||
var numbersOnly = /^[0-9]+$/;
|
||||
if (!SHMACPKR.match(numbersOnly) && SHMACPKR != '') {
|
||||
alert('Only numeric values are allowed for Delivery Note ');
|
||||
$('#SHMACPKR').focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
// Refresh the table data
|
||||
myTable.ajax.reload();
|
||||
});
|
||||
|
||||
// Retry Call API
|
||||
$(document).on('click', '.retryAPICall', function() {
|
||||
$('.retryAPICall').prop("disabled", true);
|
||||
|
||||
SHSOURCE = $(this).data('shsource');
|
||||
SHMACPKR = $(this).data('macpkr');
|
||||
SHCO = $(this).data('shco');
|
||||
SHWHS = $(this).data('shwhs');
|
||||
SHDT = $(this).data('shdt');
|
||||
SHTIME = $(this).data('shtime');
|
||||
SHTYPE = $(this).data('shtype');
|
||||
urlToCall = "";
|
||||
|
||||
fullUrl = "{{ Request::url() }}";
|
||||
UrlPath = "{{ Request::path() }}";
|
||||
sendUrl = fullUrl.replace(UrlPath, "");
|
||||
// console.log(sendUrl);
|
||||
// return false;
|
||||
|
||||
if (SHSOURCE == 'CloseShipmentCoChargeAPI') {
|
||||
urlToCall = sendUrl + "api/" + SHSOURCE + "?TRANSTYPE=P&COMPANY=" + SHCO + "&WHS=" +
|
||||
SHWHS + "&MANIFEST=" + SHMACPKR +
|
||||
"&SHDT=" + SHDT + "&SHTIME=" + SHTIME + "&SHTYPE=" + SHTYPE;
|
||||
} else if (SHSOURCE == 'TransferAPIURL') {
|
||||
urlToCall = sendUrl + "api/" + SHSOURCE + "?TRANSTYPE=R&COMPANY=" + SHCO + "&WHS=" +
|
||||
SHWHS + "&DELIVERYNO=" + SHMACPKR +
|
||||
"&SHDT=" + SHDT + "&SHTIME=" + SHTIME + "&SHTYPE=" + SHTYPE;
|
||||
}
|
||||
// else if (SHSOURCE=='M3ReceiverAPI') {
|
||||
// urlToCall = sendUrl+"api/m3receiver?TRANSTYPE=R&COMPANY="+SHCO+"&WHS="+SHWHS+"&DELIVERYNO="+SHMACPKR+
|
||||
// "&SHDT="+SHDT+"&SHTIME="+SHTIME+"&SHTYPE="+SHTYPE;
|
||||
// }
|
||||
// var urlToCall = "http://esn2.nventco.com:10024/api/"+SHSOURCE+"?TRANSTYPE=R";
|
||||
// console.log(urlToCall); return false;
|
||||
|
||||
// Call API
|
||||
if (urlToCall != '') {
|
||||
var settings = {
|
||||
"url": urlToCall,
|
||||
"method": "POST",
|
||||
"timeout": 0,
|
||||
"headers": {
|
||||
"Content-Type": "application/json",
|
||||
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content'),
|
||||
},
|
||||
};
|
||||
|
||||
$.ajax(settings).done(function(response) {
|
||||
// console.log(response);
|
||||
if (response.code != '200') {
|
||||
Swal.fire('The retry resulted in another error: ' + response.message);
|
||||
} else {
|
||||
Swal.fire('The retry was Successful');
|
||||
}
|
||||
// Refresh the table data
|
||||
myTable.ajax.reload();
|
||||
$('.retryAPICall').prop("disabled", false);
|
||||
});
|
||||
} else {
|
||||
Swal.fire('It was not possible to issue the retry.');
|
||||
// console.log("URL Not Valid");
|
||||
$('.retryAPICall').prop("disabled", false);
|
||||
}
|
||||
});
|
||||
|
||||
// Acknowledge Call API
|
||||
$(document).on('click', '.acknowledge', function() {
|
||||
$('.acknowledge').prop("disabled", true);
|
||||
|
||||
SHSOURCE = $(this).data('shsource');
|
||||
SHMACPKR = $(this).data('macpkr');
|
||||
SHCO = $(this).data('shco');
|
||||
SHWHS = $(this).data('shwhs');
|
||||
SHDT = $(this).data('shdt');
|
||||
SHTIME = $(this).data('shtime');
|
||||
SHTYPE = $(this).data('shtype');
|
||||
urlToCall = "";
|
||||
// console.log(SHSOURCE);
|
||||
|
||||
fullUrl = "{{ Request::url() }}";
|
||||
UrlPath = "{{ Request::path() }}";
|
||||
sendUrl = fullUrl.replace(UrlPath, "");
|
||||
// console.log(sendUrl);
|
||||
|
||||
Swal.fire({
|
||||
title: 'Acknowledge',
|
||||
text: "Have you ensured that this qty adjustment has been manually posted in the ERP system to ensure that we do not over-invoice the customer?",
|
||||
// icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Yes',
|
||||
input: 'text',
|
||||
inputAttributes: {
|
||||
autocapitalize: 'off'
|
||||
},
|
||||
// icon: 'warning',
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: 'Yes',
|
||||
inputValidator: (value) => {
|
||||
return new Promise((resolve) => {
|
||||
if (value !== '') {
|
||||
resolve();
|
||||
} else {
|
||||
resolve('You should fill a reason.');
|
||||
}
|
||||
})
|
||||
},
|
||||
preConfirm: (text) => {
|
||||
var form_post2 = {
|
||||
SHSOURCE: SHSOURCE,
|
||||
SHMACPKR: SHMACPKR,
|
||||
SHCO: SHCO,
|
||||
SHWHS: SHWHS,
|
||||
SHDT: SHDT,
|
||||
SHTIME: SHTIME,
|
||||
SHTYPE: SHTYPE,
|
||||
SHACKNOTE: text,
|
||||
_token: '{{ csrf_token() }}'
|
||||
};
|
||||
// console.log(form_post2);
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('m3.M3ErrorsDisplay699') }}",
|
||||
type: "POST",
|
||||
data: form_post2,
|
||||
success: function(response) {
|
||||
if (response.success == true) {
|
||||
// Refresh the table data
|
||||
myTable.ajax.reload();
|
||||
Swal.fire('Acknowledge call was Successful');
|
||||
$('.acknowledge').prop("disabled", false);
|
||||
} else {
|
||||
Swal.fire('Acknowledge Failed');
|
||||
$('.acknowledge').prop("disabled", false);
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
// console.log(error);
|
||||
// alert(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {
|
||||
//
|
||||
} else {
|
||||
$('.acknowledge').prop("disabled", false);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
// Close Call API
|
||||
$(document).on('click', '.closeErr', function() {
|
||||
$('.closeErr').prop("disabled", true);
|
||||
|
||||
SHSOURCE = $(this).data('shsource');
|
||||
SHMACPKR = $(this).data('macpkr');
|
||||
SHCO = $(this).data('shco');
|
||||
SHWHS = $(this).data('shwhs');
|
||||
SHDT = $(this).data('shdt');
|
||||
SHTIME = $(this).data('shtime');
|
||||
SHTYPE = $(this).data('shtype');
|
||||
|
||||
urlToCall = "";
|
||||
// console.log(SHTYPE);
|
||||
// console.log(SHSOURCE);
|
||||
|
||||
fullUrl = "{{ Request::url() }}";
|
||||
UrlPath = "{{ Request::path() }}";
|
||||
sendUrl = fullUrl.replace(UrlPath, "");
|
||||
// console.log(sendUrl);
|
||||
// return false;
|
||||
|
||||
if (SHTYPE == 'M3-LIS-SPL') {
|
||||
var message = 'Please ask ERP team to correct errors and resend this order';
|
||||
} else {
|
||||
var message =
|
||||
"Please explain what action was taken to ensure the ERP system was updated manually";
|
||||
}
|
||||
// Set Close All Button for Replen
|
||||
if (SHSOURCE == 'M3InventoryReportReplen') {
|
||||
var showCloseAll = true;
|
||||
var closethisErrorMsg = 'Close this error only';
|
||||
} else {
|
||||
var showCloseAll = false;
|
||||
var closethisErrorMsg = 'Close';
|
||||
}
|
||||
|
||||
if (SHSOURCE == 'M3ReceiverAPI') {
|
||||
var noteText = '';
|
||||
} else {
|
||||
var noteText = '';
|
||||
}
|
||||
|
||||
Swal.fire({
|
||||
title: 'Close',
|
||||
text: message,
|
||||
input: 'text',
|
||||
inputValue: noteText,
|
||||
inputAttributes: {
|
||||
autocapitalize: 'off'
|
||||
},
|
||||
showCancelButton: true,
|
||||
confirmButtonColor: '#3085d6',
|
||||
cancelButtonColor: '#d33',
|
||||
confirmButtonText: closethisErrorMsg,
|
||||
showDenyButton: showCloseAll,
|
||||
denyButtonText: `Close All similar errors`,
|
||||
inputValidator: (value) => {
|
||||
return new Promise((resolve) => {
|
||||
if (value !== '') {
|
||||
resolve();
|
||||
} else {
|
||||
resolve('You should fill a reason.');
|
||||
}
|
||||
})
|
||||
},
|
||||
preConfirm: (text) => {
|
||||
var form_post2 = {
|
||||
SHSOURCE: SHSOURCE,
|
||||
SHMACPKR: SHMACPKR,
|
||||
SHCO: SHCO,
|
||||
SHWHS: SHWHS,
|
||||
SHDT: SHDT,
|
||||
SHTIME: SHTIME,
|
||||
SHTYPE: SHTYPE,
|
||||
SHACKNOTE: text,
|
||||
CLOSESIM: 'N',
|
||||
_token: '{{ csrf_token() }}'
|
||||
};
|
||||
// console.log(form_post2);
|
||||
// return false;
|
||||
|
||||
$.ajax({
|
||||
url: "{{ route('m3.M3ErrorsDisplay699') }}",
|
||||
type: "POST",
|
||||
data: form_post2,
|
||||
success: function(response) {
|
||||
if (response.success == true) {
|
||||
// Refresh the table data
|
||||
myTable.ajax.reload();
|
||||
Swal.fire('Close call was Successful');
|
||||
$('.closeErr').prop("disabled", false);
|
||||
} else {
|
||||
Swal.fire('Close Failed');
|
||||
$('.closeErr').prop("disabled", false);
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
// console.log(error);
|
||||
// alert(error);
|
||||
}
|
||||
});
|
||||
},
|
||||
preDeny: () => {
|
||||
// Get the input value manually
|
||||
const text = Swal.getInput().value;
|
||||
|
||||
// Validate the input
|
||||
if (!text || text.trim() === '') {
|
||||
Swal.showValidationMessage('You should fill a reason.');
|
||||
return false; // Prevent the dialog from closing
|
||||
}
|
||||
var form_post2 = {
|
||||
SHSOURCE: SHSOURCE,
|
||||
SHMACPKR: SHMACPKR,
|
||||
SHCO: SHCO,
|
||||
SHWHS: SHWHS,
|
||||
SHDT: SHDT,
|
||||
SHTIME: SHTIME,
|
||||
SHTYPE: SHTYPE,
|
||||
SHACKNOTE: text,
|
||||
CLOSESIM: 'Y',
|
||||
_token: '{{ csrf_token() }}'
|
||||
};
|
||||
// console.log(form_post2);
|
||||
// return false;
|
||||
$.ajax({
|
||||
url: "{{ route('m3.M3ErrorsDisplay699') }}",
|
||||
type: "POST",
|
||||
data: form_post2,
|
||||
success: function(response) {
|
||||
if (response.success == true) {
|
||||
// Refresh the table data
|
||||
myTable.ajax.reload();
|
||||
Swal.fire('Close call was Successful');
|
||||
$('.closeErr').prop("disabled", false);
|
||||
} else {
|
||||
Swal.fire('Close Failed');
|
||||
$('.closeErr').prop("disabled", false);
|
||||
}
|
||||
},
|
||||
error: function(error) {
|
||||
// console.log(error);
|
||||
// alert(error);
|
||||
}
|
||||
});
|
||||
}
|
||||
}).then((result) => {
|
||||
if (result.isConfirmed) {} else {
|
||||
// console.log("Canceled...");
|
||||
$('.closeErr').prop("disabled", false);
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
// Show all Macpkr on click
|
||||
$(document).on('click', '.getmackpkr', function() {
|
||||
mackpkr = $(this).data("macpkr");
|
||||
$('#SHMACPKR').val(mackpkr);
|
||||
// MAK Change Later
|
||||
$('#SHSOURCE').val("");
|
||||
|
||||
// Refresh the table data
|
||||
myTable.ajax.reload();
|
||||
});
|
||||
|
||||
// Prevent Form Submit
|
||||
$("#formFilters").keypress(function(e) {
|
||||
if (e.keyCode == 13) {
|
||||
e.preventDefault();
|
||||
$('#filterTop').trigger('click');
|
||||
return false;
|
||||
}
|
||||
})
|
||||
|
||||
// Export To Excel exportExcel
|
||||
$(document).on('click', '#exportExcel', function() {
|
||||
var SHMACPKR = $('#SHMACPKR').val().trim();
|
||||
// Check SHMACPKR for invalid CHARS
|
||||
var numbersOnly = /^[0-9]+$/;
|
||||
if (!SHMACPKR.match(numbersOnly) && SHMACPKR != '') {
|
||||
alert('Only numeric values are allowed for Delivery Note ');
|
||||
$('#SHMACPKR').focus();
|
||||
return false;
|
||||
}
|
||||
|
||||
SHMACPKR = $("#SHMACPKR").val();
|
||||
SHSOURCE = $("#SHSOURCE").val();
|
||||
STARTDATE = $("#STARTDATE").val();
|
||||
ENDDATE = $("#ENDDATE").val();
|
||||
SHOWERRORS = $('#SHOWERRORS').is(':checked') ? 'Y' : 'N';
|
||||
|
||||
$("#SHMACPKR1").val(SHMACPKR);
|
||||
$("#SHSOURCE1").val(SHSOURCE);
|
||||
$("#STARTDATE1").val(STARTDATE);
|
||||
$("#ENDDATE1").val(ENDDATE);
|
||||
$("#SHOWERRORS1").val(SHOWERRORS);
|
||||
|
||||
$("#exporttoExcelForm").submit();
|
||||
|
||||
});
|
||||
|
||||
@if (session('message') != '')
|
||||
alert("{{ session('message') }}");
|
||||
@endif
|
||||
});
|
||||
</script>
|
||||
@endsection
|
||||
Reference in New Issue
Block a user