@foreach(['recognized'=>['Reconocido',$recognized],'paid'=>['Cobrado',$paid],'pending'=>['Por cobrar',$pending]] as [$label,$amount])

{{ $label }} · {{ $agreement->currency }}

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

@endforeach
@can('management_agreements.manage')@if($agreement->status === 'active' && $compensation->active)
@csrf

Reconocer honorarios del periodo

@php $basisKeys = match($compensation->type) {'fixed_amount'=>['fixed'],'sales_percentage'=>['contracted_sales','collected_sales'],'profit_percentage'=>['approved_profit'],'per_lot'=>['lots']}; $feeFields = ['period_start'=>['Inicio del periodo','date',true],'period_end'=>['Fin del periodo','date',true],'recognition_date'=>['Fecha de reconocimiento','date',true],'basis'=>['Base documentada',array_intersect_key(config('finance.management_bases'),array_flip($basisKeys)),true]]; if(in_array($compensation->type,['sales_percentage','profit_percentage'],true)) $feeFields['base_amount'] = ['Base aprobada · '.$agreement->currency,'money',true]; if($compensation->type==='per_lot') $feeFields['lot_quantity'] = ['Lotes del periodo (no acumulados)','integer',true]; $feeFields += ['reference'=>['Referencia del documento base','text',true],'description'=>['Concepto de liquidación','text',true]]; @endphp @include('realEstates.finance.fields',['record'=>['recognition_date'=>now()->toDateString(),'description'=>$compensation->description],'fields'=>$feeFields])

La base es la del periodo, no un acumulado. No se permiten periodos superpuestos ni reconocer dos veces el fijo. Utilidad realizada requiere aprobación: no uses una proyección ni la diferencia de entradas y salidas. Adjunta la evidencia en el acuerdo con esta referencia.

@include('realEstates.finance.confirm',['message'=>'Apruebo la base y su documento de respaldo. Reconocer el honorario no significa haberlo cobrado.'])
@endif @endcan @forelse($compensation->assessments as $fee) @php($feePaid = \App\Domain\Finance\Money::sum($fee->payments->whereNull('reversed_at')->pluck('amount')))

Liquidación #{{ $fee->id }} · {{ $fee->description }}

{{ $fee->period_start }} / {{ $fee->period_end }} · {{ config('finance.management_bases.'.$fee->basis) }}

Base: {{ $fee->base_amount === null ? ($fee->lot_quantity === null ? 'Fijo pactado' : \App\Domain\Finance\FinanceNumber::format($fee->lot_quantity).' lotes') : \App\Domain\Finance\Money::format($fee->base_amount) }} · Honorario: {{ \App\Domain\Finance\Money::format($fee->amount) }} · Cobrado: {{ \App\Domain\Finance\Money::format($feePaid) }}

Referencia: {{ $fee->reference }} · Aprobado por {{ $fee->approved_by }} · {{ $fee->approved_at }}

@if($fee->reversed_at)

Revertida: {{ $fee->reversal_reason }}

@else @can('management_agreements.manage') @if($agreement->status==='active' && \App\Domain\Finance\Money::of($feePaid)->isLessThan($fee->amount))
Registrar cobro real
@csrf @include('realEstates.finance.fields',['record'=>['payment_date'=>now()->toDateString()],'fields'=>['amount'=>['Importe recibido','money',true],'payment_date'=>['Fecha real de cobro','date',true],'payment_method'=>['Método',config('finance.methods'),true],'retained_payment_id'=>['Recibo del comprador # (solo si se retuvo de un cobro ya registrado)','integer'],'reference'=>['Referencia del recibo','text',true]]])

Si se retuvo del dinero del comprador, indica su recibo: debe estar conciliado como recibido por la empresa y no se generará otra entrada en caja. Déjalo vacío únicamente cuando el propietario efectivamente hizo un pago adicional.

@include('realEstates.finance.confirm',['message'=>'Confirmo el origen del dinero y que no estoy duplicando un cobro.'])
@endif
Corregir liquidación
@csrf@include('realEstates.finance.confirm',['message'=>'Revertir reconocimiento incorrecto; antes deben revertirse sus cobros.'])
@endcan @endif
@forelse($fee->payments as $payment)@empty@endforelse
Cobro / fechaImporteReferencia / usuarioEstado / corrección
#{{ $payment->id }} · {{ $payment->payment_date }}{{ \App\Domain\Finance\Money::format($payment->amount) }}{{ $payment->reference }}

{{ $payment->created_by }} · {{ $payment->created_at }}

@if($payment->reversed_at)Revertido: {{ $payment->reversal_reason }}@else @can('management_agreements.manage')
@csrf@include('realEstates.finance.confirm',['message'=>'Corregir registro; no es una devolución real.'])
@else Vigente @endcan @endif
Sin cobros registrados.
@empty

Sin honorarios reconocidos. Lo pactado todavía no constituye efectivo.

@endforelse