<!-- $cso=Cost::class --> @extends('adminlte::layouts.app') @section('htmlheader_title') Cost #{{ $cso->id }} @endsection @section('contentheader_title') Cost #{{ $cso->id }} @endsection @section('contentheader_description') @endsection @php($cost = 0) @php($charge = 0) @section('main-content') <div class="row"> <div class="col-12"> <div class="card card-dark"> <div class="card-body"> <table class="table table-striped" id="table"> <thead> <tr> <th>Category</th> <th>Service</th> <th>Active</th> <th>From</th> <th>To</th> <th class="text-right">Base</th> <th class="text-right">Excess</th> <th class="text-right">Cost</th> <th class="text-right">Charge</th> <th class="text-right">Profit</th> </tr> </thead> <tbody> <!-- Broadband --> @foreach ($cso->broadbands->groupBy('service_broadband_id') as $oo) <tr> <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($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 --> @foreach ($cso->phones->groupBy('service_phone_id') as $oo) <tr> <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($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 --> @foreach ($cso->generics->groupBy('service_generic_id') as $oo) <tr> <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($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> <tfoot> <tr> <th colspan="7">TOTAL</th> <th class="text-right">${{ number_format($cost,2) }}</th> <th class="text-right">${{ number_format($charge,2) }}</th> <td class="text-right {{ $charge-$cost < 0 ? 'text-danger' : '' }}">${{ number_format($charge-$cost,2) }}</td> </tr> </tfoot> </table> </div> </div> </div> </div> @endsection @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; }); 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> @append