@extends('layouts.dashboard.inface', ['section' => 'finance']) @section('content')
{{ $approvalBatch->reference }} · {{ ['preparing'=>'Preparando', 'ready'=>'Por confirmar', 'running'=>'En proceso / reanudar', 'blocked'=>'Requiere revisión', 'completed'=>'Completado'][$approvalBatch->status] ?? $approvalBatch->status }} · {{ $approvalBatch->approved + $approvalBatch->unchanged }} procesados de {{ $approvalBatch->total }} recibos
@endforeachSe incluyen ventas históricas, canceladas y sin recibos dentro del alcance y moneda seleccionados. Aprobar concilia únicamente cobros reales; una venta sin recibos permanece visible pero no produce ingresos.
@include('realEstates.finance.bulk_approval_form', ['target' => 'sales', 'count' => $sales->total()])| Seleccionar | Venta | Fecha | Precio de venta | Estado | Recibos registrados |
|---|---|---|---|---|---|
| @can('finance.manage')@endcan | #{{ $row['sale']->id }} | {{ $row['sale']->sale_date }} | {{ \App\Domain\Finance\Money::format((string)$row['sale']->total_price) }} | {{ $row['sale']->status }} {{ $row['sale']->trashed() ? '· Archivada' : '' }} | {{ $row['sale']->payments_count }}@if(!$row['sale']->payments_count) Sin recibos para aprobar @endif |
| No hay ventas con estos filtros. | |||||
| Concepto | Origen del inventario | Propiedad | Movimiento | Importe |
|---|---|---|---|---|
| {{ config('finance.economic_classes.'.$row->classification) }} | {{ ['internal' => 'Interno', 'external' => 'Externo'][$row->inventory_origin] ?? 'No clasificado' }} | {{ ['owned' => 'Propio', 'managed' => 'Administrado', 'third_party' => 'Terceros'][$row->ownership_context] ?? 'No clasificada' }} | {{ config('finance.directions.'.$row->direction) }} | {{ \App\Domain\Finance\Money::format($row->amount) }} |
| Sin movimientos para estos filtros. | ||||
La clasificación no modifica el recibo ni la deuda del comprador. «Empresa» registra caja; «Propietario» y «Por confirmar» no registran caja de la empresa. Toda corrección conserva usuario, referencia y versión.
{{ $receipts->total() }} recibos · Página {{ $receipts->currentPage() }} de {{ $receipts->lastPage() }}. Usa «Todos los resultados» para incluir las otras páginas.
@include('realEstates.finance.bulk_approval_form', ['target' => 'receipts', 'count' => $receipts->total()])| Seleccionar | Recibo / venta | Fecha / importe | Propiedad | Recibió | Conciliar |
|---|---|---|---|---|---|
| @can('finance.manage')@endcan | #{{ $row['payment']->id }} Venta: {{ $row['context']['sale_id'] ?? 'Apartado' }} | {{ $row['payment']->payment_date }} {{ \App\Domain\Finance\Money::format((string)$row['payment']->payment_amount) }} @unless($row['paid'])No cobrado / no vigente @endunless | {{ $row['context']['ownership_context'] === 'owned' ? 'Propio' : 'Terceros' }} · {{ $row['context']['inventory_origin'] === 'external' ? 'Externo' : 'Interno' }} | {{ config('finance.receipt_receivers.'.$row['context']['receiver']) }} |
@can('finance.manage')Confirmar o corregir |
| Sin recibos para estos filtros. | |||||
Ventas del periodo seleccionado. Regla: importe por lote vigente en la fecha de venta × lotes; oficina = cero. Se muestran obligación, gasto registrado y pagos por separado. Registrar no paga automáticamente. Cambios posteriores de regla o vendedor requieren revisión. Pagos mostrados: acumulados actuales de estas ventas.
| Venta / fecha | Vendedor / regla | Comisión vigente | Gasto registrado | Pagado | Pendiente / diferencia | Acción | |||
|---|---|---|---|---|---|---|---|---|---|
| #{{ $row['sale']->id }} · {{ $row['sale']->sale_date }} | @if(isset($row['error'])){{ $row['error'] }} | @elseVendedor #{{ $row['rule']['seller_id'] ?? 'Sin asignar' }} {{ $row['rule']['office_sale'] ? 'Oficina' : \App\Domain\Finance\Money::format($row['rule']['per_lot']).' × '.count($row['rule']['lot_ids']).' lotes' }} |
@foreach(['rule', 'registered', 'paid', 'pending'] as $key){{ \App\Domain\Finance\Money::format($key === 'rule' ? $row['rule']['amount'] : $row[$key]) }} | @endforeach@if($row['expense'])Ver gasto / pagos@elseif(\App\Domain\Finance\Money::of($row['rule']['amount'])->isPositive() && $row['rule']['seller_id']) @can('expenses.create')@endcan @endif | @endif|||||
| Sin ventas en el periodo. | |||||||||
Las comisiones históricas sin vínculo comprobable a una venta o sin fecha de pago requieren conciliación; no se convierten automáticamente en salidas de caja.