@php $all_documents = collect($data['all_documents'])->sortBy('order_number_key'); $income_records = $all_documents->where('type_transaction_prefix', 'income'); $egress_records = $all_documents->where('type_transaction_prefix', 'egress'); $data = $income_records->toArray(); //solo obtengo los registros unicos del array $data en base a la clave "number" $uniqueData = array_intersect_key($data, array_unique(array_column($data, 'number'))); $numbers = []; foreach ($uniqueData as $key => $value) { $numbers[] = $value['number']; } $grouped = array_reduce( $uniqueData, function ($result, $item) { $key = isset($item['seller_id']) ? $item['seller_id'] : 'Sin vendedor'; if (!isset($result[$key])) { $result[$key] = [ 'seller_name' => $item['seller_name'] ?? 'Sin vendedor', 'seller_id' => $key, 'currency_type_id' => isset($item['currency_type_id']) ? ($item['currency_type_id'] == 'PEN' ? 'S/' : '$') : 'S/', 'total' => 0, ]; } if (isset($item['total'])) { $result[$key]['total'] += $item['total']; } else { $result[$key]['total'] += 0; // o cualquier valor predeterminado que desees } return $result; }, [], ); $grouped = array_values($grouped); usort($grouped, function ($a, $b) { return $b['total'] <=> $a['total']; }); @endphp @if (count($income_records) > 0)

Ingresos

@foreach ($income_records as $key => $value) @endforeach
# Tipo transacción Método de pago Tipo documento Documento Fecha emisión Cliente/Proveedor N° Documento Vendedor Moneda T.Pagado Total
{{ $loop->iteration }} {{ $value['type_transaction'] }} {{ $value['payment_method_description'] }} @if (isset($value['reference']))
Ref: {{ $value['reference'] }} @endif
{{ $value['document_type_description'] }} {{ $value['number'] }} {{ $value['date_of_issue'] }} {{ $value['customer_name'] }} {{ $value['customer_number'] }} @isset($value['seller_name']) {{ $value['seller_name'] }} @endisset {{-- {{ $value['reference'] }} --}} {{ isset($value['currency_type_id']) ? $value['currency_type_id'] : 'PEN'}} {{ $value['total_payments'] ?? '0.00' }} {{ $value['total_string'] }}

Resumen

@php $total = 0; @endphp @foreach ($grouped as $item) @php $total += $item['total']; @endphp @endforeach
Vendedor Total
{{ $item['seller_name'] }} {{ isset($item['currency_type_id']) ? $item['currency_type_id'] : 'PEN'}} {{ number_format($item['total'], 2) }}
Total {{ isset($item['currency_type_id']) ? $item['currency_type_id'] : 'PEN'}} {{ number_format($total, 2) }}
@endif @if (count($egress_records) > 0)

Egresos

@foreach ($egress_records as $key => $value) @endforeach
# Tipo transacción Tipo documento Documento Fecha emisión Cliente/Proveedor N° Documento Moneda T.Pagado Total
{{ $loop->iteration }} {{ $value['type_transaction'] }} {{ $value['document_type_description'] }} {{ $value['number'] }} {{ $value['date_of_issue'] }} {{ $value['customer_name'] }} {{ $value['customer_number'] }} {{ isset($value['currency_type_id']) ? $value['currency_type_id'] : 'PEN'}} {{ $value['total_payments'] ?? '0.00' }} @php $value['total_string'] = str_replace('-', '', $value['total_string']); @endphp {{ $value['total_string'] }}
@endif