up
This commit is contained in:
@@ -79,30 +79,35 @@ class TintoreriaResource extends Resource
|
||||
])
|
||||
->columns(2),
|
||||
|
||||
Section::make('Recepción')
|
||||
Section::make('Recepciones')
|
||||
->description('Resumen de recepciones. Para registrar recepciones múltiples use el botón "Agregar recepción" en la cabecera o la relación "Recepciones" abajo.')
|
||||
->schema([
|
||||
DatePicker::make('fecha_recepcion'),
|
||||
Forms\Components\Placeholder::make('recepcion_summary')
|
||||
->label('Resumen')
|
||||
->content(function ($get) {
|
||||
$id = $get('id');
|
||||
if (! $id) return 'Sin recepciones registradas';
|
||||
|
||||
TextInput::make('cantidad_recibida')
|
||||
->numeric()
|
||||
->reactive()
|
||||
->afterStateUpdated(function ($state, $set, $get) {
|
||||
$cantidad_enviada = $get('cantidad_enviada') ?? 0;
|
||||
$cantidad_recibida = $state ?? 0;
|
||||
$perdidas = $cantidad_enviada - $cantidad_recibida;
|
||||
if ($perdidas < 0) $perdidas = 0;
|
||||
$set('perdidas', $perdidas);
|
||||
$total = \App\Models\Recepcion::where('referencia_type', \App\Models\Tintoreria::class)
|
||||
->where('referencia_id', $id)
|
||||
->sum(\DB::raw('cantidad - COALESCE(prendas_defectuosas, 0)'));
|
||||
|
||||
$perdidas = \App\Models\Recepcion::where('referencia_type', \App\Models\Tintoreria::class)
|
||||
->where('referencia_id', $id)
|
||||
->sum('prendas_defectuosas');
|
||||
|
||||
$enviada = (int) ($get('cantidad_enviada') ?? 0);
|
||||
$faltan = max(0, $enviada - $total - $perdidas);
|
||||
|
||||
return "Total recibido: {$total} — Pérdidas: {$perdidas} — Faltan: {$faltan}";
|
||||
}),
|
||||
|
||||
TextInput::make('perdidas')
|
||||
->numeric()
|
||||
->readOnly()
|
||||
->default(0),
|
||||
|
||||
Textarea::make('observaciones')
|
||||
->columnSpanFull(),
|
||||
Forms\Components\Placeholder::make('instrucciones')
|
||||
->label('Acciones')
|
||||
->content('Use el botón "Agregar recepción" en la cabecera para registrar una recepción rápida. También puede gestionar todas las recepciones en la sección relacionada al final de la página.'),
|
||||
])
|
||||
->columns(2),
|
||||
->columns(1)
|
||||
->collapsed(),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user