up
This commit is contained in:
@@ -50,24 +50,20 @@ class TintoreriaResource extends Resource
|
||||
|
||||
Select::make('orden_produccion_id')
|
||||
->label('Orden de Producción')
|
||||
->options(fn () => \App\Models\OrdenProduccion::whereHas('ojales', function ($query) {
|
||||
$query->where('terminada', true);
|
||||
})->get()->mapWithKeys(function ($op) {
|
||||
// Calcular cantidad disponible de ojales terminados
|
||||
$cantidadOjalesTerminados = \App\Models\Ojal::where('orden_produccion_id', $op->id)
|
||||
->where('terminada', true)
|
||||
->sum('cantidad_enviada');
|
||||
->options(fn () => \App\Models\OrdenProduccion::all()->mapWithKeys(function ($op) {
|
||||
// Verificar que ambos procesos estén completos
|
||||
$verificacion = $op->verificarProcesosCompletos();
|
||||
|
||||
// Calcular cantidad ya enviada a tintorería
|
||||
$enviadasEnTint = \App\Models\Tintoreria::where('orden_produccion_id', $op->id)
|
||||
->whereNull('fecha_recepcion')
|
||||
->sum('cantidad_enviada');
|
||||
if (!$verificacion['completo']) {
|
||||
// Si no están completos, no mostrar o mostrar con advertencia
|
||||
return [];
|
||||
}
|
||||
|
||||
// Calcular disponible
|
||||
$disponible = $cantidadOjalesTerminados - $enviadasEnTint;
|
||||
// Calcular cantidad disponible (mínimo entre ojales y prensillas terminados - ya enviadas)
|
||||
$disponible = $op->getCantidadDisponibleParaTintoreria();
|
||||
|
||||
if ($disponible > 0) {
|
||||
return [$op->id => "{$op->numero_orden} (Disponible: {$disponible})"];
|
||||
return [$op->id => "{$op->numero_orden} (Disponible: {$disponible}) [O:{$verificacion['ojales_terminados']} P:{$verificacion['prensillas_terminadas']}]"];
|
||||
}
|
||||
return [];
|
||||
})->filter())
|
||||
@@ -77,27 +73,25 @@ class TintoreriaResource extends Resource
|
||||
->required()
|
||||
->afterStateUpdated(function ($state, $set) {
|
||||
if ($state) {
|
||||
// Calcular cantidad disponible de ojales terminados
|
||||
$cantidadOjalesTerminados = \App\Models\Ojal::where('orden_produccion_id', $state)
|
||||
->where('terminada', true)
|
||||
->sum('cantidad_enviada');
|
||||
|
||||
$enviadasEnTint = \App\Models\Tintoreria::where('orden_produccion_id', $state)
|
||||
->whereNull('fecha_recepcion')
|
||||
->sum('cantidad_enviada');
|
||||
|
||||
$pending = max(0, (int)$cantidadOjalesTerminados - (int)$enviadasEnTint);
|
||||
|
||||
$set('cantidad_enviada', $pending ?: 0);
|
||||
$set('fecha_envio', now()->toDateString());
|
||||
|
||||
$orden = \App\Models\OrdenProduccion::find($state);
|
||||
$set('prenda_nombre_info', $orden->prenda_modelo ?? 'Sin especificar');
|
||||
|
||||
if ($orden) {
|
||||
$disponible = $orden->getCantidadDisponibleParaTintoreria();
|
||||
$verificacion = $orden->verificarProcesosCompletos();
|
||||
|
||||
$set('cantidad_enviada', $disponible ?: 0);
|
||||
$set('fecha_envio', now()->toDateString());
|
||||
$set('prenda_nombre_info', $orden->prenda_modelo ?? 'Sin especificar');
|
||||
|
||||
// Información adicional sobre los procesos
|
||||
$set('info_procesos', "Ojales: {$verificacion['ojales_terminados']} | Prensillas: {$verificacion['prensillas_terminadas']}");
|
||||
}
|
||||
} else {
|
||||
$set('prenda_nombre_info', null);
|
||||
$set('info_procesos', null);
|
||||
}
|
||||
})
|
||||
->helperText('Solo se muestran órdenes con ojales/prensillas terminados'),
|
||||
->helperText('Solo se muestran órdenes con AMBOS procesos (ojales Y prensillas) terminados'),
|
||||
|
||||
TextInput::make('prenda_nombre_info')
|
||||
->label('Prenda')
|
||||
@@ -106,6 +100,13 @@ class TintoreriaResource extends Resource
|
||||
->visible(fn ($get) => $get('orden_produccion_id') !== null)
|
||||
->helperText('Nombre de la prenda de la orden de producción seleccionada'),
|
||||
|
||||
TextInput::make('info_procesos')
|
||||
->label('Estado de Procesos')
|
||||
->disabled()
|
||||
->dehydrated(false)
|
||||
->visible(fn ($get) => $get('orden_produccion_id') !== null)
|
||||
->helperText('Cantidad terminada en cada proceso'),
|
||||
|
||||
TextInput::make('tipo_proceso')
|
||||
->label('Tipo de proceso')
|
||||
->required(),
|
||||
|
||||
Reference in New Issue
Block a user