@foreach(['agreed'=>'Pactado','assigned'=>'Asignado (incluye recibido)','received'=>'Recibido','pending_assignment'=>'Por asignar','pending_receipt'=>'Por recibir'] as $key=>$label)

{{ $label }} · {{ $compensation->type==='lots' ? 'lotes' : 'm²' }}

{{ \App\Domain\Finance\FinanceNumber::format($physical[$key]) }}

@endforeach

Valuación registrada: {{ \App\Domain\Finance\Money::format($physical['valuation']) }} {{ $agreement->currency }} · {{ $physical['unvalued'] }} asignaciones sin valuación. La recepción administrativa no cambia la propiedad ni reserva el inventario comercial. Revisa disponibilidad y documentos antes de confirmar.

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

Asignar {{ $compensation->type==='lots' ? 'lote' : 'superficie' }}

@php $unitFields=['unit_id'=>['Lote del inventario',$lots->mapWithKeys(fn($l)=>[$l->id=>'Mz '.$l->block_number.' · Lote '.$l->lote_number])->all(),$compensation->type==='lots']]; if($compensation->type==='square_meters') $unitFields['square_meters']=['m² (si aún no hay lote identificado)','decimal']; $unitFields+=['valuation_amount'=>['Valuación opcional · '.$agreement->currency,'money'],'assigned_at'=>['Fecha de asignación','date',true],'reference'=>['Referencia del documento','text',true]]; @endphp @include('realEstates.finance.fields',['record'=>['assigned_at'=>now()->toDateString()],'fields'=>$unitFields])

Al elegir un lote se usa toda su superficie, no una fracción. Si registras m² sin lote, podrás vincularlos después. No se admiten lotes con venta, contrato, apartado u otra compensación vigente.

@include('realEstates.finance.confirm',['message'=>'Confirmo el derecho documentado sobre esta asignación. Esto no genera una venta, adquisición legal o movimiento de caja.'])
@endif @endcan

Asignaciones y recepciones

@forelse($compensation->units as $unit)@empty@endforelse
ID / loteSuperficieValuaciónEstado / fechasReferencia / usuarioAcciones
#{{ $unit->id }} · {{ $unit->unit_label ?? 'Superficie sin lote identificado' }}@if($unit->converted_from_id)

Conversión de #{{ $unit->converted_from_id }}

@endif
{{ \App\Domain\Finance\FinanceNumber::format($unit->square_meters) }} m²{{ $unit->valuation_amount === null ? 'Sin valuación' : \App\Domain\Finance\Money::format($unit->valuation_amount) }}{{ $unit->converted_at ? 'Convertido (no se suma)' : config('finance.management_unit_statuses.'.$unit->status) }}

Asignado: {{ $unit->assigned_at }}
Recibido: {{ $unit->received_at ?? '—' }}

@if($unit->status==='cancelled')

{{ $unit->cancellation_reason }}

@endif
{{ $unit->reference }}

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

@can('management_agreements.manage')@if(!$unit->converted_at && $unit->status!=='cancelled') @if($unit->status==='assigned' && $agreement->status==='active')
@csrf@include('realEstates.finance.confirm',['message'=>'Recibido conforme al documento; sin movimiento de efectivo.'])
@endif @if(!$unit->unit_id && in_array($agreement->status,['active','completed'],true))
Convertir m² a lotes
@csrf

La suma debe coincidir exactamente. Conserva el estado de recepción y la valuación total.

@include('realEstates.finance.confirm',['message'=>'Vincular toda esta asignación a los lotes seleccionados, sin sumar nuevos m².'])
@endif
Cancelar por corrección
@csrf@include('realEstates.finance.confirm',['message'=>'Corregir registro. No cambia la titularidad o venta del lote.'])
@endif @endcan
Sin asignaciones. Los lotes o m² pactados permanecen pendientes.