Hej,
Mam konfigurację, która zawiera dzienne zużycia jakiegoś materialu X ( w poniższym kodzie $configuration ).
do tego dorzucam ile osób zuzywa dany materiał X w danym dniu ( $detail->quantity )
poniższy kod zwraca mi na widoku coś takiego
dzien | data | ilosc | norma | zuzycie | narastajaco | dostawa materialu
0 | 2018-06-29 | 10 | 0 | 0 | 0 | 15500
1 | 2018-06-30 | 10 | 13 | 130 | 130 | 0
2 | 2018-07-01 | 10 | 17 | 170 | 300 | 0
czego nie udaje mi się zrobić? w dniu 0 jest dostawa 15500 w dniu 1 powinno być: 15500 - 130
Dalej zdarzy się coś takiego, że w dniu 10 będzie kolejna dostawa - wtedy oczywiście należy tą wartość dodać i dalej umniejszać.
Zrobiłem sumę narastająca zużycia.
Dzięki temu, że mam w tablicy $supplies dane w stylu ['data_dostawy' => ilosc, 'data_dostawy' => ilosc]
po przez has(key) sprawdzam czy w danej dacie była dostawa i jeśli tak to wpisuję jej ilość lub 0 gdy nie było.
mój kontroler
public function report()
{
$detail = $this->detailRepository->get(3); // przykadowe id
// dostawy związane
$supplies = $detail->document->foodSupplies->pluck('quantity', 'date');
// pobieram najnowszą konfigurację
$configuration = $this->configurationRepository
->getBy('race_id', $detail->race->id)
->sortByDesc('date_from')
->first();
return view('samplecontent', ['detail' => $detail, 'config' => $configuration, 'supplies' => $supplies]);
}
na widoku stworzyłem taki "tworek" ( na razie kombinuję także nie patrzymy na nazwy etc... )
<table class="table">
<tr>
<th>dzien</th>
<th>data</th>
<th>ilosc</th>
<th>norma</th>
<th>zuzycie</th>
<th>narastajaco</th>
<th>dostawa materialu</th>
</tr>
<?php
$date = new \Carbon\Carbon($detail->document->date);
$cumSum = 0;
$zero = 0;
?>
@foreach($config->parameters->sortBy('day') as $parameter)
<?php
$cumSum += ( $parameter->standard * $detail->quantity );
?>
<tr>
<td>{{ $parameter->day }}</td>
<td>{{ $date->toDateString() }}</td>
<td>{{ $detail->quantity }}</td>
<td>{{ $parameter->standard }}</td>
<td>{{ $parameter->standard * $detail->quantity }}</td>
<td>{{ $cumSum }}</td>
<td>
@if($supplies->has($date->toDateString()) )
{{ $supplies[ $date->toDateString() ] }}
@else
{{ $zero }}
@endif
</td>
</tr>
<?php $date->addDay(); ?>
@endforeach
</table>