Update supplier/cost with components

This commit is contained in:
2024-08-24 17:37:55 +10:00
parent b877a2b673
commit 2627cea3b5
8 changed files with 89 additions and 146 deletions

View File

@@ -1,18 +1,17 @@
<!-- $o = Cost::class -->
<!-- $cso=Cost::class -->
@extends('adminlte::layouts.app')
@section('htmlheader_title')
Cost #{{ $o->id }}
Cost #{{ $cso->id }}
@endsection
@section('contentheader_title')
Cost #{{ $o->id }}
Cost #{{ $cso->id }}
@endsection
@section('contentheader_description')
@endsection
<!-- $o = App\Models\Costs -->
@php($cost = 0)
@php($charge = 0)
@section('main-content')
@@ -39,96 +38,57 @@
<tbody>
<!-- Broadband -->
<tr>
<td>Broadband</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>{{ $o->broadbands->min('start_at')->format('Y-m-d') }}</td>
<td>{{ $o->broadbands->max('end_at')->format('Y-m-d') }}</td>
<td class="text-right">${{ number_format($a=$o->broadbands->sum('base'),2) }}</td>
<td class="text-right">${{ number_format($o->broadbands->sum('excess'),2) }}</td>
<td class="text-right">${{ number_format($x=$o->broadbands->sum('cost'),2) }}</td>
<td class="text-right">${{ number_format($b=$o->broadbands->sum('service.billing_monthly_price'),2) }}</td>
<td class="text-right {{ $b-$a < 0 ? 'text-danger' : '' }}">${{ number_format($b-$a,2) }}</td>
</tr>
@php($cost += $x)
@php($charge += $b)
@foreach ($o->broadbands->groupBy('service_broadband_id') as $oo)
@foreach ($cso->broadbands->groupBy('service_broadband_id') as $oo)
<tr>
<td>&nbsp;</td>
<td>Broadband</td>
<td>{{ $oo->first()->service->name }}</td>
<td>{{ $oo->first()->service->active ? 'YES' : 'NO' }}</td>
<td>{{ $oo->min('start_at')->format('Y-m-d') }}</td>
<td>{{ $oo->max('end_at')->format('Y-m-d') }}</td>
<td class="text-right">${{ number_format($a=$oo->sum('base'),2) }}</td>
<td class="text-right">${{ number_format($oo->sum('excess'),2) }}</td>
<td class="text-right">${{ number_format($oo->sum('cost'),2) }}</td>
<td class="text-right">${{ number_format($b=$oo->first()->service->billing_monthly_price,2) }}</td>
<td class="text-right">${{ number_format($x=$oo->sum('cost'),2) }}</td>
<td class="text-right">${{ number_format($b=$oo->first()->service->billing_charge_normalised,2) }}</td>
<td class="text-right {{ $b-$a < 0 ? 'text-danger' : '' }}">${{ number_format($b-$a,2) }}</td>
</tr>
@php($cost += $x)
@php($charge += $b)
@endforeach
<!-- Phone -->
<tr>
<td>Phone</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>{{ $o->phones->min('start_at')->format('Y-m-d') }}</td>
<td>{{ $o->phones->max('end_at')->format('Y-m-d') }}</td>
<td class="text-right">${{ number_format($a=$o->phones->sum('base'),2) }}</td>
<td class="text-right">${{ number_format($o->phones->sum('excess'),2) }}</td>
<td class="text-right">${{ number_format($x=$o->phones->sum('cost'),2) }}</td>
<td class="text-right">${{ number_format($b=$o->phones->sum('service.billing_monthly_price'),2) }}</td>
<td class="text-right {{ $b-$a < 0 ? 'text-danger' : '' }}">${{ number_format($b-$a,2) }}</td>
</tr>
@php($cost += $x)
@php($charge += $b)
@foreach ($o->phones->groupBy('service_phone_id') as $oo)
@foreach ($cso->phones->groupBy('service_phone_id') as $oo)
<tr>
<td>&nbsp;</td>
<td>Phone</td>
<td>{{ $oo->first()->service->name }}</td>
<td>{{ $oo->first()->service->active ? 'YES' : 'NO' }}</td>
<td>{{ $oo->min('start_at')->format('Y-m-d') }}</td>
<td>{{ $oo->max('end_at')->format('Y-m-d') }}</td>
<td class="text-right">${{ number_format($a=$oo->sum('base'),2) }}</td>
<td class="text-right">${{ number_format($oo->sum('excess'),2) }}</td>
<td class="text-right">${{ number_format($oo->sum('cost'),2) }}</td>
<td class="text-right">${{ number_format($b=$oo->first()->service->billing_monthly_price,2) }}</td>
<td class="text-right">${{ number_format($x=$oo->sum('cost'),2) }}</td>
<td class="text-right">${{ number_format($b=$oo->first()->service->billing_charge_normalised,2) }}</td>
<td class="text-right {{ $b-$a < 0 ? 'text-danger' : '' }}">${{ number_format($b-$a,2) }}</td>
</tr>
@php($cost += $x)
@php($charge += $b)
@endforeach
<!-- Generic -->
<tr>
<td>Generic</td>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>{{ ($x=$o->generics)->count() ? $x->min('start_at')->format('Y-m-d') : '-' }}</td>
<td>{{ $x->count() ? $x->max('end_at')->format('Y-m-d') : '-' }}</td>
<td class="text-right">${{ number_format($a=$o->generics->sum('base'),2) }}</td>
<td class="text-right">${{ number_format($o->generics->sum('excess'),2) }}</td>
<td class="text-right">${{ number_format($x=$o->generics->sum('cost'),2) }}</td>
<td class="text-right">$0.00</td>
<td class="text-right {{ 0-$a < 0 ? 'text-danger' : '' }}">${{ number_format(0-$a,2) }}</td>
</tr>
@php($cost += $x)
@foreach ($o->generics->groupBy('service_generic_id') as $oo)
@foreach ($cso->generics->groupBy('service_generic_id') as $oo)
<tr>
<td>&nbsp;</td>
<td>{{ ($x=$oo->first()->service) ? $x->name : '-' }}</td>
<td>{{ $x ? ($x->active ? 'YES' : 'NO') : '-' }}</td>
<td>Generic</td>
<td>{{ ($xx=$oo->first()->service) ? $xx->name : '-' }}</td>
<td>{{ $xx ? ($xx->active ? 'YES' : 'NO') : '-' }}</td>
<td>{{ $oo->min('start_at')->format('Y-m-d') }}</td>
<td>{{ $oo->max('end_at')->format('Y-m-d') }}</td>
<td class="text-right">${{ number_format($a=$oo->sum('base'),2) }}</td>
<td class="text-right">${{ number_format($oo->sum('excess'),2) }}</td>
<td class="text-right">${{ number_format($oo->sum('cost'),2) }}</td>
<td class="text-right">${{ number_format($b=$x ? $x->billing_monthly_price : 0,2) }}</td>
<td class="text-right">${{ number_format($x=$oo->sum('cost'),2) }}</td>
<td class="text-right">${{ number_format($b=($xx ? $xx->billing_monthly_price : 0),2) }}</td>
<td class="text-right {{ $b-$a < 0 ? 'text-danger' : '' }}">${{ number_format($b-$a,2) }}</td>
</tr>
@php($cost += $x)
@endforeach
</tbody>
@@ -147,18 +107,33 @@
</div>
@endsection
@section('page-scripts')
@css(datatables,bootstrap4|rowgroup)
@js(datatables,bootstrap4|rowgroup)
@pa(datatables,rowgroup)
@section('page-scripts')
<script>
function sum(data) {
return parseFloat(data.reduce((a,b)=>a+parseFloat(b.toString().replace(/\$/,'')),0)).toFixed(2);
}
$(document).ready(function() {
$('#table').DataTable({
order: [[0,'asc'],[1,'desc']],
});
rowGroup: {
dataSrc: 0,
startRender: function (rows,group) {
var allRows = rows.rows().data().filter(function(value) {
return value[0] === group;
});
$('tbody').on('click','tr', function () {
$(this).toggleClass('selected');
return $('<tr/>')
.append('<td colspan="5">Totals for <strong>'+group+'</strong></td>')
.append('<td class="text-right">$'+sum(allRows.pluck(5))+'</td>')
.append('<td class="text-right">$'+sum(allRows.pluck(6))+'</td>')
.append('<td class="text-right">$'+sum(allRows.pluck(7))+'</td>')
.append('<td class="text-right">$'+sum(allRows.pluck(8))+'</td>')
.append('<td class="text-right">$'+sum(allRows.pluck(9))+'</td>');
},
}
});
});
</script>