@php
$totals = $reportTotals ?? \App\Helpers\BoxReportTotalsHelper::summarize($boxes_report_ingresos ?? [], $boxes_report_egresos ?? []);
@endphp
@include('print.partials.ticket_header', [
'company' => $company ?? null,
'establishment' => $establishment ?? null,
'title' => 'REPORTE DE CAJA',
'header_font_size' => '14pt',
'title_font_size' => '14pt',
'code_font_size' => '14pt',
])
Desde: {{ \Carbon\Carbon::parse($date_start)->format('d-m-Y') }}
Hasta: {{ \Carbon\Carbon::parse($date_end)->format('d-m-Y') }}
Usuario: {{ $auth->name ?? '-' }}
Sucursal: {{ optional($establishment)->description ?? 'SIN SUCURSAL' }}
INGRESOS
@forelse($boxes_report_ingresos as $row)
@php
$rowDate = $row['date'] ?? '';
$displayDate = $rowDate
? (\Illuminate\Support\Str::contains($rowDate, ' ')
? \Illuminate\Support\Str::before($rowDate, ' ')
: (function ($d) {
try { return \Carbon\Carbon::parse($d)->format('d-m-Y'); } catch (\Throwable $e) { return $d; }
})($rowDate))
: '-';
$serviceDetail = '';
if (!empty($row['items_details']) && is_array($row['items_details'])) {
$parts = [];
foreach ($row['items_details'] as $item) {
$desc = $item['description'] ?? 'Sin descripción';
$qty = (float)($item['quantity'] ?? 0);
$parts[] = $qty > 1 ? "{$desc} x{$qty}" : $desc;
}
$serviceDetail = implode(', ', array_filter($parts));
}
if (!$serviceDetail) {
$serviceDetail = $row['treatment'] ?? ($row['description'] ?? '');
}
@endphp
{{ $displayDate }}
{{ $row['number'] ?? '-' }} | {{ $row['medic'] ?? 'SIN DOCTOR' }}
Paciente: {{ $row['patient'] ?? '-' }}
@if($serviceDetail)
{{ $serviceDetail }}
@endif
{{ $row['payment_group_label'] ?? ($row['method_label'] ?? ($row['method'] ?? '-')) }}
{{ number_format((float)($row['amount'] ?? 0), 2) }}
@empty
No hay ingresos.
@endforelse
EGRESOS
@forelse($boxes_report_egresos as $row)
@php
$rowDate = $row['date'] ?? '';
$displayDate = $rowDate
? (\Illuminate\Support\Str::contains($rowDate, ' ')
? \Illuminate\Support\Str::before($rowDate, ' ')
: (function ($d) {
try { return \Carbon\Carbon::parse($d)->format('d-m-Y'); } catch (\Throwable $e) { return $d; }
})($rowDate))
: '-';
@endphp
{{ $displayDate }}
{{ $row['invoice_number'] ?? ($row['number'] ?? 'SIN COMPROBANTE') }}
{{ $row['description'] ?? 'SIN DESCRIPCION' }}
{{ number_format((float)($row['amount'] ?? 0), 2) }}
@empty
No hay egresos.
@endforelse
Efectivo: {{ number_format($totals['ingreso_efectivo'], 2) }}
Tarjeta: {{ number_format($totals['ingreso_tarjeta'], 2) }}
Transferencia: {{ number_format($totals['ingreso_transferencia'], 2) }}
Subtotal Ingresos: {{ number_format($totals['subtotal_ingresos'], 2) }}
Egresos: {{ number_format($totals['egresos_caja'], 2) }}
Gastos: {{ number_format($totals['gastos_compras'], 2) }}
Subtotal Egresos: {{ number_format($totals['subtotal_egresos'], 2) }}
Total: {{ number_format($totals['ganancia_neta'], 2) }}
@if(!empty($autoPrint))
@endif