@extends('layouts.dashboard.inface', ['section' => 'finance']) @section('content')
@include('realEstates.finance.nav', ['title' => $expense->name])
@if($expense->payment_status === 'cancelled')

Gasto cancelado

No admite nuevos pagos. Su historial se conserva.

@elseif($expense->approved_at)

Gasto aprobado

Usuario {{ $expense->approved_by }} · {{ $expense->approved_at }}

@else

Pendiente de aprobación

@endif

Estado de pago: {{ config('finance.statuses.'.$expense->payment_status) }}. Aprobar no equivale a pagar.

@foreach(['Importe' => $expense->amount, 'Pagado' => $paid, 'Pendiente' => $balance] as $label => $amount)

{{ $label }}

{{ \App\Domain\Finance\Money::format($amount) }}

{{ $expense->currency }}

@endforeach

{{ $expense->development?->name ?? 'Gasto general' }} · {{ $expense->category?->name }} · {{ config('finance.types.'.$expense->type) }}

@can('investment_projects.view')@if($expense->investment_project_id)

Proyecto: {{ $expense->project?->name }}

@endif@endcan

{{ config('finance.statuses.'.$expense->payment_status) }} · {{ $expense->date }} · {{ $expense->provider_name }}

@if($expense->commission_rule)

Regla validada: venta #{{ $expense->sale_id }} · vendedor #{{ $expense->commission_rule['seller_id'] }} · fecha de venta {{ $expense->commission_rule['sale_date'] }} · {{ \App\Domain\Finance\Money::format($expense->commission_rule['per_lot']) }} × {{ count($expense->commission_rule['lot_ids']) }} lotes · límite {{ \App\Domain\Finance\Money::format($expense->commission_rule['amount']) }}. Los pagos se validan nuevamente contra la regla vigente.

@endif @if($expense->category?->code === 'owner_settlement')

Entrega de fondos de terceros: su pago reduce caja y fondos del propietario, pero no es gasto propio ni costo del proyecto.

@endif

Creado por usuario {{ $expense->created_by ?? 'legado sin identificar' }} · {{ $expense->approved_by ? 'Aprobado por usuario '.$expense->approved_by : 'Sin aprobación registrada' }}

{{ $expense->description }}

{{ $expense->notes }}

@if($expense->payment_status !== 'cancelled') @can('expenses.update')Editar@endcan @can('expenses.approve')@unless($expense->approved_at)
@csrf
@endunless @endcan @can('expenses.delete') @if(\App\Domain\Finance\Money::of($paid)->isPositive())

Para cancelar este gasto primero debes revertir sus pagos desde el historial. La cancelación no devuelve dinero.

@else
@csrf
@endif @endcan @endif
@if($expense->payment_status !== 'cancelled' && \App\Domain\Finance\Money::of($balance)->isPositive()) @can('expenses.pay')

Registrar pago parcial o total

@csrf
@endcan @endif

Historial de pagos

@forelse($expense->payments as $payment)@empty@endforelse
FechaImporteMétodo / referenciaUsuarioEstado / corrección
{{ $payment->payment_date }}{{ \App\Domain\Finance\Money::format($payment->amount) }}{{ config('finance.methods.'.$payment->payment_method) }}

{{ $payment->reference }}

{{ $payment->created_by }} @if($payment->reversed_at)

Revertido · {{ $payment->reversal_reason }}

@else @can('expenses.pay')
Revertir registro erróneo
@csrf

Corrige el registro; no ejecuta una transferencia ni un reembolso.

@else Vigente @endcan @endif
Sin pagos registrados. No se presume el pago de gastos anteriores.

Comprobantes privados

@can('expenses.update')
@csrf
@endcan
@endsection