343 lines
21 KiB
PHP
Executable File
343 lines
21 KiB
PHP
Executable File
@extends('m3::liberty-theme.layout.main')
|
|
@section('title')
|
|
Solon Sentinel Portal - Warehouse Performance Metrics
|
|
@endsection
|
|
@section('content')
|
|
<h1 class="mt-4">Warehouse Performance Metrics</h1>
|
|
|
|
<table class="table table-striped table-bordered table-hover table-sm" id="datatablesSimple1" style="width:100%">
|
|
<th scope="col"ead style="position: sticky; top: 56px; z-index: 1000; background-color: #F8F9FA; border: 2px solid black;">
|
|
<tr class="border-bottom: 1px solid black;">
|
|
<th scope="col" style="width:80px">For month</th>
|
|
<th scope="col" style="width:70px">{{ date('Y-m',strtotime($date_in)) }}</th>
|
|
<th scope="col" class="text-center" style="background-color:lightgrey" colspan=14>Non-interco and Ground/Air</th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-center" style="background-color:lightgrey" colspan=2>Intercompany & Ocean</th>
|
|
</tr>
|
|
<tr class="border-bottom: 1px solid black;">
|
|
<th scope="col" style="width:80px"></th>
|
|
<th scope="col" style="width:70px"></th>
|
|
<th scope="col" class="text-center" colspan=4>All</th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-center" colspan=4>LTL</th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-center" colspan=4>Parcel</th>
|
|
<th scope="col"></th>
|
|
<th scope="col" colspan=2></th>
|
|
</tr>
|
|
<tr class="border-bottom: 1px solid black;">
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-center" style="width:50px">A1+C1</th>
|
|
<th scope="col" class="text-center" style="width:50px">B</th>
|
|
<th scope="col" class="text-center" style="width:50px">A3+C2</th>
|
|
<th scope="col" class="text-center" style="width:20px"></th>
|
|
<th scope="col" style="width:10px"></th>
|
|
<th scope="col" class="text-center" style="width:50px">A1+C1</th>
|
|
<th scope="col" class="text-center" style="width:50px">B</th>
|
|
<th scope="col" class="text-center" style="width:50px">A3+C2</th>
|
|
<th scope="col" class="text-center" style="width:20px"></th>
|
|
<th scope="col" style="width:10px"></th>
|
|
<th scope="col" class="text-center" style="width:50px">A1+C1</th>
|
|
<th scope="col" class="text-center" style="width:50px">B</th>
|
|
<th scope="col" class="text-center" style="width:50px">A3+C2</th>
|
|
<th scope="col" class="text-center" style="width:20px"></th>
|
|
<th scope="col" style="width:10px"></th>
|
|
<th scope="col" class="text-center" style="width:50px">A1+C1</th>
|
|
<th scope="col" class="text-center" style="width:50px">A3+C2</th>
|
|
</tr>
|
|
<tr class="border-bottom: 1px solid black;">
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-center" style="width:50px">Closed</th>
|
|
<th scope="col" class="text-center" style="width:50px">Closed (Cherry)</th>
|
|
<th scope="col" class="text-center" style="width:50px">Still Open</th>
|
|
<th scope="col" class="text-center" style="width:20px">OTTC</th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-center" style="width:50px">Closed</th>
|
|
<th scope="col" class="text-center" style="width:50px">Closed (Cherry)</th>
|
|
<th scope="col" class="text-center" style="width:50px">Still Open</th>
|
|
<th scope="col" class="text-center" style="width:20px">OTTC</th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-center" style="width:50px">Closed</th>
|
|
<th scope="col" class="text-center" style="width:50px">Closed (Cherry)</th>
|
|
<th scope="col" class="text-center" style="width:50px">Still Open</th>
|
|
<th scope="col" class="text-center" style="width:20px">OTTC</th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-center" style="width:50px">Closed</th>
|
|
<th scope="col" class="text-center" style="width:50px">Still Open</th>
|
|
</tr>
|
|
<tr class="border-bottom: 1px solid black;">
|
|
<th scope="col" style="background-color:grey" colspan=19></th>
|
|
</tr>
|
|
<tr>
|
|
<th scope="col">Targets</th>
|
|
<th scope="col">Deliv Notes</th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-270366714a" class="visually-hidden">sonar input 270366714a</label>
|
|
<input type=text name=ALLtgtnotes maxlength=3 size=2 readonly value={{ $pct_array['all_notes'] }} id="sonar-input-270366714a"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-8d3c22d334" class="visually-hidden">sonar input 8d3c22d334</label>
|
|
<input type=text name=LTLtgtnotes maxlength=3 size=2 readonly value={{ $pct_array['ltl_notes'] }} id="sonar-input-8d3c22d334"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-ea8cafd287" class="visually-hidden">sonar input ea8cafd287</label>
|
|
<input type=text name=PARCELtgtnotes maxlength=3 size=2 readonly value={{ $pct_array['parcel_notes'] }} id="sonar-input-ea8cafd287"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
<tr>
|
|
<th scope="col"></th>
|
|
<th scope="col">Dollars</th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-8b6c7add91" class="visually-hidden">sonar input 8b6c7add91</label>
|
|
<input type=text name=ALLtgtdlr maxlength=3 size=2 readonly value={{ $pct_array['all_dollars'] }} id="sonar-input-8b6c7add91"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-fcd53e4974" class="visually-hidden">sonar input fcd53e4974</label>
|
|
<input type=text name=LTLtgtdlr maxlength=3 size=2 readonly value={{ $pct_array['ltl_dollars'] }} id="sonar-input-fcd53e4974"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-379ed77e4a" class="visually-hidden">sonar input 379ed77e4a</label>
|
|
<input type=text name=PARCELtgtdlr maxlength=3 size=2 readonly value={{ $pct_array['parcel_dollars'] }} id="sonar-input-379ed77e4a"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
<tr class="border-bottom: 1px solid black;">
|
|
<th scope="col"></th>
|
|
<th scope="col">Weight</th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-ada5156033" class="visually-hidden">sonar input ada5156033</label>
|
|
<input type=text name=ALLtgtwgt maxlength=3 size=2 readonly value={{ $pct_array['all_weight'] }} id="sonar-input-ada5156033"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-aefaf4ca2b" class="visually-hidden">sonar input aefaf4ca2b</label>
|
|
<input type=text name=LTLtgtwgt maxlength=3 size=2 readonly value={{ $pct_array['ltl_weight'] }} id="sonar-input-aefaf4ca2b"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col" class="text-right" style="width:20px"><label for="sonar-input-2da53b6d4f" class="visually-hidden">sonar input 2da53b6d4f</label>
|
|
<input type=text name=PARCELtgtwgt maxlength=3 size=2 readonly value={{ $pct_array['parcel_weight'] }} id="sonar-input-2da53b6d4f"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
<th scope="col"></th>
|
|
</tr>
|
|
<tr class="border-bottom: 1px solid black;">
|
|
<th scope="col" style="background-color:grey" colspan=19></th>
|
|
</tr>
|
|
</thead>
|
|
<tbody style="border: 1px solid black;">
|
|
@foreach($ICM711M as $key=>$val)
|
|
<tr>
|
|
<td>{{ date('Y-m-d',strtotime($val->AVDATE)) }}</td>
|
|
<td class="text-left">Deliv Notes</td>
|
|
<td class="text-right">{{$val->AVANOTESCL}}</td>
|
|
<td class="text-right">{{$val->AVANOTESCH}}</td>
|
|
<td class="text-right">{{$val->AVANOTESOP}}</td>
|
|
<td class="text-right" style="width:50px">
|
|
@if (number_format(($val->AVANOTESCL+$val->AVANOTESCH)/($val->AVANOTESCL+$val->AVANOTESCH+$val->AVANOTESOP)*100,0)<$pct_array['all_notes'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVANOTESCL+$val->AVANOTESCH)/($val->AVANOTESCL+$val->AVANOTESCH+$val->AVANOTESOP)*100,0)>=$pct_array['all_notes'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVANOTESCL+$val->AVANOTESCH+$val->AVANOTESOP)!='0'?number_format(($val->AVANOTESCL+$val->AVANOTESCH)/($val->AVANOTESCL+$val->AVANOTESCH+$val->AVANOTESOP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">{{$val->AVLNOTESCL}}</td>
|
|
<td class="text-right">{{$val->AVLNOTESCH}}</td>
|
|
<td class="text-right">{{$val->AVLNOTESOP}}</td>
|
|
<td class="text-right" style="width:20px">
|
|
@if (number_format(($val->AVLNOTESCL+$val->AVLNOTESCH)/($val->AVLNOTESCL+$val->AVLNOTESCH+$val->AVLNOTESOP)*100,0)<$pct_array['ltl_notes'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVLNOTESCL+$val->AVLNOTESCH)/($val->AVLNOTESCL+$val->AVLNOTESCH+$val->AVLNOTESOP)*100,0)>=$pct_array['ltl_notes'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVLNOTESCL+$val->AVLNOTESCH+$val->AVLNOTESOP)!='0'?number_format(($val->AVLNOTESCL+$val->AVLNOTESCH)/($val->AVLNOTESCL+$val->AVLNOTESCH+$val->AVLNOTESOP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">{{$val->AVPNOTESCL}}</td>
|
|
<td class="text-right">{{$val->AVPNOTESCH}}</td>
|
|
<td class="text-right">{{$val->AVPNOTESOP}}</td>
|
|
<td class="text-right" style="width:20px">
|
|
@if (number_format(($val->AVPNOTESCL+$val->AVPNOTESCH)/($val->AVPNOTESCL+$val->AVPNOTESCH+$val->AVPNOTESOP)*100,0)<$pct_array['parcel_notes'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVPNOTESCL+$val->AVPNOTESCH)/($val->AVPNOTESCL+$val->AVPNOTESCH+$val->AVPNOTESOP)*100,0)>=$pct_array['parcel_notes'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVPNOTESCL+$val->AVPNOTESCH+$val->AVPNOTESOP)!='0'?number_format(($val->AVPNOTESCL+$val->AVPNOTESCH)/($val->AVPNOTESCL+$val->AVPNOTESCH+$val->AVPNOTESOP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">{{$val->AVINOTESCL}}</td>
|
|
<td class="text-right">{{$val->AVINOTESOP}}</td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td class="text-left">Dollars</td>
|
|
<td class="text-right">${{number_format($val->AVADLRCL,0)}}</td>
|
|
<td class="text-right">${{number_format($val->AVADLRCH,0)}}</td>
|
|
<td class="text-right">${{number_format($val->AVADLROP,0)}}</td>
|
|
<td class="text-right" style="width:20px">
|
|
@if (number_format(($val->AVADLRCL+$val->AVADLRCH)/($val->AVADLRCL+$val->AVADLRCH+$val->AVADLROP)*100,0)<$pct_array['all_dollars'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVADLRCL+$val->AVADLRCH)/($val->AVADLRCL+$val->AVADLRCH+$val->AVADLROP)*100,0)>=$pct_array['all_dollars'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVADLRCL+$val->AVADLRCH+$val->AVADLROP)!='0'?number_format(($val->AVADLRCL+$val->AVADLRCH)/($val->AVADLRCL+$val->AVADLRCH+$val->AVADLROP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">${{number_format($val->AVLDLRCL,0)}}</td>
|
|
<td class="text-right">${{number_format($val->AVLDLRCH,0)}}</td>
|
|
<td class="text-right">${{number_format($val->AVLDLROP,0)}}</td>
|
|
<td class="text-right" style="width:20px">
|
|
@if (number_format(($val->AVLDLRCL+$val->AVLDLRCH)/($val->AVLDLRCL+$val->AVLDLRCH+$val->AVLDLROP)*100,0)<$pct_array['ltl_dollars'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVLDLRCL+$val->AVLDLRCH)/($val->AVLDLRCL+$val->AVLDLRCH+$val->AVLDLROP)*100,0)>=$pct_array['ltl_dollars'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVLDLRCL+$val->AVLDLRCH+$val->AVLDLROP)!='0'?number_format(($val->AVLDLRCL+$val->AVLDLRCH)/($val->AVLDLRCL+$val->AVLDLRCH+$val->AVLDLROP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">${{number_format($val->AVPDLRCL,0)}}</td>
|
|
<td class="text-right">${{number_format($val->AVPDLRCH,0)}}</td>
|
|
<td class="text-right">${{number_format($val->AVPDLROP,0)}}</td>
|
|
<td class="text-right" style="width:20px">
|
|
@if (number_format(($val->AVPDLRCL+$val->AVPDLRCH)/($val->AVPDLRCL+$val->AVPDLRCH+$val->AVPDLROP)*100,0)<$pct_array['parcel_dollars'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVPDLRCL+$val->AVPDLRCH)/($val->AVPDLRCL+$val->AVPDLRCH+$val->AVPDLROP)*100,0)>=$pct_array['parcel_dollars'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVPDLRCL+$val->AVPDLRCH+$val->AVPDLROP)!='0'?number_format(($val->AVPDLRCL+$val->AVPDLRCH)/($val->AVPDLRCL+$val->AVPDLRCH+$val->AVPDLROP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">${{number_format($val->AVIDLRCL,0)}}</td>
|
|
<td class="text-right">${{number_format($val->AVIDLROP,0)}}</td>
|
|
</tr>
|
|
<tr>
|
|
<td></td>
|
|
<td class="text-left">Weight</td>
|
|
<td class="text-right">{{number_format($val->AVAWGTCL,0)}}</td>
|
|
<td class="text-right">{{number_format($val->AVAWGTCH,0)}}</td>
|
|
<td class="text-right"><a href="./whsePerfDetails?for=a&date={{ date('Y-m-d',strtotime($val->AVDATE)) }}">{{number_format($val->AVAWGTOP,0)}}</a></td>
|
|
<td class="text-right" style="width:20px">
|
|
@if (number_format(($val->AVAWGTCL+$val->AVAWGTCH)/($val->AVAWGTCL+$val->AVAWGTCH+$val->AVAWGTOP)*100,0)<$pct_array['all_weight'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVAWGTCL+$val->AVAWGTCH)/($val->AVAWGTCL+$val->AVAWGTCH+$val->AVAWGTOP)*100,0)>=$pct_array['all_weight'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVAWGTCL+$val->AVAWGTCH+$val->AVAWGTOP)!='0'?number_format(($val->AVAWGTCL+$val->AVAWGTCH)/($val->AVAWGTCL+$val->AVAWGTCH+$val->AVAWGTOP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">{{number_format($val->AVLWGTCL,0)}}</td>
|
|
<td class="text-right">{{number_format($val->AVLWGTCH,0)}}</td>
|
|
<td class="text-right"><a href="./whsePerfDetails?for=l&date={{ date('Y-m-d',strtotime($val->AVDATE)) }}">{{number_format($val->AVLWGTOP,0)}}</a></td>
|
|
<td class="text-right" style="width:20px">
|
|
@if (number_format(($val->AVLWGTCL+$val->AVLWGTCH)/($val->AVLWGTCL+$val->AVLWGTCH+$val->AVLWGTOP)*100,0)<$pct_array['ltl_weight'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVLWGTCL+$val->AVLWGTCH)/($val->AVLWGTCL+$val->AVLWGTCH+$val->AVLWGTOP)*100,0)>=$pct_array['ltl_weight'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVLWGTCL+$val->AVLWGTCH+$val->AVLWGTOP)!='0'?number_format(($val->AVLWGTCL+$val->AVLWGTCH)/($val->AVLWGTCL+$val->AVLWGTCH+$val->AVLWGTOP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">{{number_format($val->AVPWGTCL,0)}}</td>
|
|
<td class="text-right">{{number_format($val->AVPWGTCH,0)}}</td>
|
|
<td class="text-right"><a href="./whsePerfDetails?for=p&date={{ date('Y-m-d',strtotime($val->AVDATE)) }}">{{number_format($val->AVPWGTOP,0)}}</a></td>
|
|
<td class="text-right" style="width:20px">
|
|
@if (number_format(($val->AVPWGTCL+$val->AVPWGTCH)/($val->AVPWGTCL+$val->AVPWGTCH+$val->AVPWGTOP)*100,0)<$pct_array['parcel_weight'])
|
|
<span style="color:red">
|
|
@endif
|
|
@if (number_format(($val->AVPWGTCL+$val->AVPWGTCH)/($val->AVPWGTCL+$val->AVPWGTCH+$val->AVPWGTOP)*100,0)>=$pct_array['parcel_weight'])
|
|
<span style="color:green">
|
|
@endif
|
|
{{ (($val->AVPWGTCL+$val->AVPWGTCH+$val->AVPWGTOP)!='0'?number_format(($val->AVPWGTCL+$val->AVPWGTCH)/($val->AVPWGTCL+$val->AVPWGTCH+$val->AVPWGTOP)*100,0):'0') }}%
|
|
</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="text-right">{{number_format($val->AVIWGTCL,0)}}</td>
|
|
<td class="text-right"><a href="./whsePerfDetails?for=i&date={{ date('Y-m-d',strtotime($val->AVDATE)) }}">{{number_format($val->AVIWGTOP,0)}}</a></td>
|
|
</tr>
|
|
<tr>
|
|
<td style="background-color:grey" colspan=19></td>
|
|
</tr>
|
|
@endforeach
|
|
</tbody>
|
|
</table>
|
|
|
|
@endsection
|
|
|
|
@section('scripts')
|
|
<script>
|
|
|
|
$(document).ready(function() {
|
|
|
|
// DataTable init
|
|
// var myTable = $('#datatablesSimple1').DataTable({
|
|
// "aaSorting": false,
|
|
// //"lengthMenu": [ [10,25,50,-1], [10,25,50,"All"] ],
|
|
// "sPaginationType": "full_numbers",
|
|
// "dom": 'Bfrtip', // Needs button container
|
|
// "responsive": true,
|
|
// "orderCellsTop": false,
|
|
// //"order": [ [0, 'desc'] ],
|
|
// //"pageLength": 30,
|
|
// "columnDefs": [
|
|
// {
|
|
// orderable: false,
|
|
// searchable: false,
|
|
// targets: -1
|
|
// }
|
|
// ],
|
|
// // MAK
|
|
// "initComplete": function() {
|
|
// // Apply initial filter for Active records only
|
|
// //this.api().column(4).search('^Active$', true, false).draw();
|
|
// }
|
|
// });
|
|
|
|
// MAK
|
|
// Status filter dropdown change event
|
|
// $('#date_in').on('change', function() {
|
|
// });
|
|
|
|
|
|
});
|
|
|
|
</script>
|
|
@endsection
|