@php use App\Enums\OrderStatus; use Carbon\Carbon; @endphp @extends('layouts.print') @push('styles') @if(isset($output) && $output === 'screen') @vite(['resources/scss/main.scss', 'resources/scss/print.scss']) @else @endif @endpush @section('content') @php $routeName = request()->route()->getName(); @endphp

@if(!empty($data))
@foreach ($data as $keyCustomer => $customer) @php $arrCustomer = explode(' | ', $keyCustomer); $customerName = $arrCustomer[0] ?? ''; $branchName = $arrCustomer[1] ?? ''; $baseUnitPerCustomer = $subtotalPerCustomer = 0; $outstandingPerCustomer = $outstandingTotalPerCustomer = 0; $fulfillPerCustomer = $fulfillTotalPerCustomer = 0; $cancelPerCustomer = $cancelTotalPerCustomer = 0; @endphp {{-- CUSTOMER HEADER --}} {{-- CATEGORY --}} @foreach ($customer as $categoryName => $category) @php $baseUnitPerCategory = $subtotalPerCategory = 0; $outstandingPerCategory = $outstandingTotalPerCategory = 0; $fulfillPerCategory = $fulfillTotalPerCategory = 0; $cancelPerCategory = $cancelTotalPerCategory = 0; @endphp {{-- SALES ORDER --}} @foreach ($category as $orderCode => $sorder) {{-- DETAILS --}} @foreach ($sorder['details'] as $detail) @php // Convert string numbers ke float $qty = (float) $detail['base_unit_quantity']; $subtotal = (float) $detail['subtotal']; $outstanding = (float) $detail['outstanding']; $outstandingTotal = (float) $detail['outstanding_total']; $fulfill = (float) $detail['fulfill']; $fulfillTotal = (float) $detail['fulfill_total']; $cancel = (float) $detail['cancel']; $cancelTotal = (float) $detail['cancel_total']; // Akumulasi ke kategori & customer $baseUnitPerCategory += $qty; $subtotalPerCategory += $subtotal; $outstandingPerCategory += $outstanding; $outstandingTotalPerCategory += $outstandingTotal; $fulfillPerCategory += $fulfill; $fulfillTotalPerCategory += $fulfillTotal; $cancelPerCategory += $cancel; $cancelTotalPerCategory += $cancelTotal; $baseUnitPerCustomer += $qty; $subtotalPerCustomer += $subtotal; $outstandingPerCustomer += $outstanding; $outstandingTotalPerCustomer += $outstandingTotal; $fulfillPerCustomer += $fulfill; $fulfillTotalPerCustomer += $fulfillTotal; $cancelPerCustomer += $cancel; $cancelTotalPerCustomer += $cancelTotal; @endphp @endforeach @endforeach {{-- SUBTOTAL PER CATEGORY --}} @endforeach {{-- SUBTOTAL PER CUSTOMER --}} @endforeach
{{ __('validation.attributes.description') }} {{ __('validation.attributes.date') }} {{ __('general.due_date') }} {{ __('general.status') }} {{ __('general.qty') }} {{ __('validation.attributes.amount') }} {{ __('general.outstanding') }} {{ __('validation.attributes.amount') }} {{ __('general.sent') }} {{ __('validation.attributes.amount') }} {{ __('general.canceled') }} {{ __('validation.attributes.amount') }}
{{ $customerName }} {{ $branchName }}
{{ $categoryName }}
{{ $orderCode }} {{ $sorder['date'] }} {{ $sorder['due_date'] }} {!! OrderStatus::getBadge($sorder['status']) !!}
{{ $detail['sku'] }} {{ $detail['product_name'] }} {{ number_format($qty, 2) }} {{ number_format($subtotal, 0) }} {{ number_format($outstanding, 2) }} {{ number_format($outstandingTotal, 0) }} {{ number_format($fulfill, 2) }} {{ number_format($fulfillTotal, 0) }} {{ number_format($cancel, 2) }} {{ number_format($cancelTotal, 0) }}
Subtotal {{ $categoryName }} {{ number_format($baseUnitPerCategory, 2) }} {{ number_format($subtotalPerCategory, 0) }} {{ number_format($outstandingPerCategory, 2) }} {{ number_format($outstandingTotalPerCategory, 0) }} {{ number_format($fulfillPerCategory, 2) }} {{ number_format($fulfillTotalPerCategory, 0) }} {{ number_format($cancelPerCategory, 2) }} {{ number_format($cancelTotalPerCategory, 0) }}
Subtotal {{ $customerName }} {{ number_format($baseUnitPerCustomer, 2) }} {{ number_format($subtotalPerCustomer, 0) }} {{ number_format($outstandingPerCustomer, 2) }} {{ number_format($outstandingTotalPerCustomer, 0) }} {{ number_format($fulfillPerCustomer, 2) }} {{ number_format($fulfillTotalPerCustomer, 0) }} {{ number_format($cancelPerCustomer, 2) }} {{ number_format($cancelTotalPerCustomer, 0) }}
@else
{{ __('messages.report.not-found') }}
@endif
@endsection