@extends('layouts.base') @php function uniqueProduction($productions) { return $productions->groupBy('product_id')->map(function ($productions) { $data = ['planned' => 0, 'achieve' => 0, 'conform' => 0, 'lost' => 0, 'product_id' => $productions[0]->product_id]; foreach ($productions as $production) { $data['planned'] += $production->planned; $data['achieve'] += $production->achieve; $data['conform'] += $production->conform; $data['lost'] += $production->lost; } return new App\Models\Production($data); }); } @endphp @section('title', 'Production Par Contrat') @section('stylesheets') @endsection @section('content')
@foreach ($units as $unit => $sections) @php $total_planned = 0; $total_achieve = 0; $total_planned_contract= 0; $total_achieve_contract= 0; $total_quantity = 0; @endphp @foreach ($sections as $section => $productions) @php $total_planned += $productions->sum('planned'); $total_achieve += $productions->sum('achieve'); $section_id = $productions->first()->section_id; $quantity = $quantities[$section_id] ?? 0; $total_quantity += $quantity; @endphp @php $tx = ($productions->sum('planned') != 0) ? $productions->sum('achieve')/$productions->sum('planned')*100 : 0; @endphp @endforeach @php $tx = ($total_planned != 0) ? $total_achieve/$total_planned*100 : 0; @endphp @endforeach @php $tx = ($units->map(fn($sc) => $sc->map(fn($ps) => $ps->sum('planned'))->sum())->sum() != 0) ? $units->map(fn($sc) => $sc->map(fn($ps) => $ps->sum('achieve'))->sum())->sum()/$units->map(fn($sc) => $sc->map(fn($ps) => $ps->sum('planned'))->sum())->sum()*100 : 0; $total_eff_present = array_sum($quantities); @endphp
Section Prévue Moo Prévue Realisée Moo Réalisée Eff. Present Tx Réal
{{ \App\Models\Section::find($section)->name }} {{ number_format(($productions->sum('planned')),0, ',', ' ') }} {{ number_format($productions->sum(fn($p) => ($p->product->contract != 0) ? $p->planned*($p->product->operator/$p->product->contract) : 0), 2, ',', ' ') }} {{ number_format(($productions->sum('achieve')),0, ',', ' ') }} {{ number_format($productions->sum(fn($p) => ($p->product->contract != 0) ? $p->achieve*($p->product->operator/$p->product->contract) : 0), 2, ',', ' ') }} {{ number_format($quantity, 2, ',', ' ') }} {{number_format($tx,2,',',' ')}}%
@foreach (uniqueProduction($productions) as $production) @php $tx = ($production->planned != 0) ? $production->achieve/$production->planned*100 : 0; if ($production->product->contract == 0){ $planned_contract = 0; $achieve_contract = 0; } else{ $planned_contract = $production->planned*($production->product->operator/$production->product->contract); $achieve_contract = $production->achieve*($production->product->operator/$production->product->contract); } @endphp @php $total_planned_contract += $planned_contract; $total_achieve_contract += $achieve_contract; @endphp @endforeach
# Produit Prévue Moo Prévue Réalisée Moo Réalisée Tx Réal
{{ $loop->index + 1 }} {{ $production->product->name }} {{ number_format($production->planned,0, ',', ' ') }} {{ number_format($planned_contract,2, ',', ' ') }} {{ number_format($production->achieve,0, ',', ' ') }} {{ number_format($achieve_contract,2, ',', ' ') }} {{ number_format($achieve_contract,2, ',', ' ') }} {{ number_format($tx,2, ',', ' ') }}%
{{ \App\Models\Unit::find($unit)->name }} {{ number_format($total_planned,0, ',', ' ') }} {{ number_format($total_planned_contract,2, ',', ' ') }} {{ number_format($total_achieve,0, ',', ' ') }} {{ number_format($total_achieve_contract,2, ',', ' ') }} {{ number_format($total_quantity, 2, ',', ' ') }} {{ number_format($tx,2, ',', ' ') }}%
Total {{ number_format(($units->map(fn($sc) => $sc->map(fn($ps) => $ps->sum('planned'))->sum())->sum()),0, ',', ' ') }} {{ number_format(($units->map(fn($sc) => $sc->map(fn($ps) => ($ps->sum('planned')*$ps->first()->product->operator)/($ps->first()->product->contract == 0 ? 1 : $ps->first()->product->contract))->sum())->sum()), 2, ',', ' ') }} {{ number_format(($units->map(fn($sc) => $sc->map(fn($ps) => $ps->sum('achieve'))->sum())->sum()),0, ',', ' ') }} {{ number_format(($units->map(fn($sc) => $sc->map(fn($ps) => ($ps->sum('achieve')*$ps->first()->product->operator)/($ps->first()->product->contract == 0 ? 1 : $ps->first()->product->contract))->sum())->sum()), 2, ',', ' ') }} {{ number_format($total_eff_present, 2, ',', ' ')}} {{ number_format($tx, 2, ',', ' ') }}%
@endsection @section('javascripts') @endsection