<!-- $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