up
This commit is contained in:
@@ -39,25 +39,27 @@ class InventarioPrendaResource extends Resource
|
|||||||
Select::make('orden_produccion_id')
|
Select::make('orden_produccion_id')
|
||||||
->label('Orden de Producción')
|
->label('Orden de Producción')
|
||||||
->options(function () {
|
->options(function () {
|
||||||
// Obtener todas las OPs con procesos terminados
|
// Obtener todas las OPs con procesos de acabados
|
||||||
$ops = \App\Models\OrdenProduccion::whereHas('procesosAcabado', function ($q) {
|
$ops = \App\Models\OrdenProduccion::whereHas('procesosAcabado')->get();
|
||||||
$q->where('terminada', true);
|
|
||||||
})->get();
|
|
||||||
|
|
||||||
// Filtrar solo las que tienen saldo disponible > 0
|
// Filtrar solo las que tienen saldo disponible > 0
|
||||||
$opsConSaldo = [];
|
$opsConSaldo = [];
|
||||||
foreach ($ops as $op) {
|
foreach ($ops as $op) {
|
||||||
$total = \App\Models\ProcesoAcabado::where('orden_produccion_id', $op->id)
|
// Calcular total desde recepciones de acabados
|
||||||
->where('terminada', true)
|
$totalRecibido = 0;
|
||||||
->sum('cantidad_enviada');
|
$procesosAcabados = \App\Models\ProcesoAcabado::where('orden_produccion_id', $op->id)->get();
|
||||||
|
|
||||||
|
foreach ($procesosAcabados as $proceso) {
|
||||||
|
$totalRecibido += $proceso->recibido_total ?? 0;
|
||||||
|
}
|
||||||
|
|
||||||
$usado = \App\Models\InventarioPrenda::where('orden_produccion_id', $op->id)
|
$usado = \App\Models\InventarioPrenda::where('orden_produccion_id', $op->id)
|
||||||
->sum('cantidad_terminada');
|
->sum('cantidad_terminada');
|
||||||
|
|
||||||
$disponible = max(0, (int) $total - (int) $usado);
|
$disponible = max(0, (int) $totalRecibido - (int) $usado);
|
||||||
|
|
||||||
if ($disponible > 0) {
|
if ($disponible > 0) {
|
||||||
$opsConSaldo[$op->id] = $op->numero_orden . ' (Disponible: ' . $disponible . ')';
|
$opsConSaldo[$op->id] = $op->numero_orden . ' - ' . ($op->referencia ?? $op->prenda_modelo ?? '') . ' (Disponible: ' . $disponible . ')';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -70,15 +72,18 @@ class InventarioPrendaResource extends Resource
|
|||||||
$remaining = 0;
|
$remaining = 0;
|
||||||
|
|
||||||
if ($state) {
|
if ($state) {
|
||||||
// Total de cantidad enviada desde procesos de acabados terminados
|
// Total desde recepciones de acabados
|
||||||
$total = \App\Models\ProcesoAcabado::where('orden_produccion_id', $state)
|
$totalRecibido = 0;
|
||||||
->where('terminada', true)
|
$procesosAcabados = \App\Models\ProcesoAcabado::where('orden_produccion_id', $state)->get();
|
||||||
->sum('cantidad_enviada');
|
|
||||||
|
foreach ($procesosAcabados as $proceso) {
|
||||||
|
$totalRecibido += $proceso->recibido_total ?? 0;
|
||||||
|
}
|
||||||
|
|
||||||
// Ya asignado en otros inventarios
|
// Ya asignado en otros inventarios
|
||||||
$used = \App\Models\InventarioPrenda::where('orden_produccion_id', $state)->sum('cantidad_terminada');
|
$used = \App\Models\InventarioPrenda::where('orden_produccion_id', $state)->sum('cantidad_terminada');
|
||||||
|
|
||||||
$remaining = max(0, (int) $total - (int) $used);
|
$remaining = max(0, (int) $totalRecibido - (int) $used);
|
||||||
|
|
||||||
// Colocar valores en formulario
|
// Colocar valores en formulario
|
||||||
$set('cantidad_terminada', $remaining);
|
$set('cantidad_terminada', $remaining);
|
||||||
@@ -90,7 +95,7 @@ class InventarioPrendaResource extends Resource
|
|||||||
$set('producto_id', $op->producto_id);
|
$set('producto_id', $op->producto_id);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
})->helperText('Solo se muestran órdenes con procesos terminados y saldo disponible mayor a cero.'),
|
})->helperText('Solo se muestran órdenes con recepciones de acabados y saldo disponible mayor a cero.'),
|
||||||
|
|
||||||
TextInput::make('cantidad_terminada')
|
TextInput::make('cantidad_terminada')
|
||||||
->numeric()
|
->numeric()
|
||||||
|
|||||||
@@ -229,10 +229,6 @@ class ProcesoAcabadoResource extends Resource
|
|||||||
})
|
})
|
||||||
->visible(fn ($record) => $record !== null),
|
->visible(fn ($record) => $record !== null),
|
||||||
|
|
||||||
Forms\Components\Checkbox::make('terminada')
|
|
||||||
->label('Marcar como terminada')
|
|
||||||
->helperText('Marca esta casilla cuando el proceso haya finalizado'),
|
|
||||||
|
|
||||||
Textarea::make('observaciones')
|
Textarea::make('observaciones')
|
||||||
->label('Observaciones')
|
->label('Observaciones')
|
||||||
->rows(3)
|
->rows(3)
|
||||||
|
|||||||
Reference in New Issue
Block a user