Update ProcesoAcabadoResource.php

This commit is contained in:
Lizandro Guarnizo
2026-01-30 00:03:48 -05:00
parent 0dc5eeaf28
commit cde5e3a364
@@ -46,11 +46,17 @@ class ProcesoAcabadoResource extends Resource
->required()
->afterStateUpdated(function ($state, $set) {
if ($state) {
// Calcular cantidad disponible desde Tintorería
$disponible = \App\Models\Tintoreria::where('orden_produccion_id', $state)
->sum('cantidad_recibida');
// Calcular cantidad disponible desde Tintorería (neto: recepciones - reprocesos - cobros)
$tintoreriaRecords = \App\Models\Tintoreria::where('orden_produccion_id', $state)->get();
$disponible = 0;
foreach ($tintoreriaRecords as $tintoreria) {
$recepciones = (int) $tintoreria->recepciones()->sum(\DB::raw('cantidad - COALESCE(prendas_defectuosas, 0)'));
$reprocesos = (int) $tintoreria->ajustes()->where('tipo', 'reproceso')->sum('cantidad');
$cobros = (int) $tintoreria->cobros()->sum('cantidad');
$disponible += ($recepciones - $reprocesos - $cobros);
}
$set('cantidad_enviada', $disponible ?: 0);
$set('cantidad_enviada', max(0, $disponible));
}
}),
@@ -68,8 +74,18 @@ class ProcesoAcabadoResource extends Resource
->helperText(function ($get) {
$op_id = $get('orden_produccion_id');
if (!$op_id) return 'Selecciona una orden de producción primero';
$disponible = \App\Models\Tintoreria::where('orden_produccion_id', $op_id)->sum('cantidad_recibida');
return 'Disponible desde Tintorería: ' . $disponible;
// Calcular disponible neto desde Tintorería
$tintoreriaRecords = \App\Models\Tintoreria::where('orden_produccion_id', $op_id)->get();
$disponible = 0;
foreach ($tintoreriaRecords as $tintoreria) {
$recepciones = (int) $tintoreria->recepciones()->sum(\DB::raw('cantidad - COALESCE(prendas_defectuosas, 0)'));
$reprocesos = (int) $tintoreria->ajustes()->where('tipo', 'reproceso')->sum('cantidad');
$cobros = (int) $tintoreria->cobros()->sum('cantidad');
$disponible += ($recepciones - $reprocesos - $cobros);
}
return 'Disponible desde Tintorería: ' . max(0, $disponible);
}),
DatePicker::make('fecha_envio')