up
This commit is contained in:
@@ -42,7 +42,16 @@ class ProcesoAcabadoResource extends Resource
|
|||||||
->label('Orden de Producción')
|
->label('Orden de Producción')
|
||||||
->relationship('ordenProduccion', 'numero_orden')
|
->relationship('ordenProduccion', 'numero_orden')
|
||||||
->searchable()
|
->searchable()
|
||||||
->required(),
|
->reactive()
|
||||||
|
->required()
|
||||||
|
->afterStateUpdated(function ($state, $set) {
|
||||||
|
if ($state) {
|
||||||
|
// Sumar lo recibido en Tintorería para esta OP
|
||||||
|
$sumTint = \App\Models\Tintoreria::where('orden_produccion_id', $state)->sum('cantidad_recibida');
|
||||||
|
$set('cantidad_enviada', $sumTint ?: 0);
|
||||||
|
$set('fecha_envio', now()->toDateString());
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
|
||||||
TextInput::make('tipo_proceso')
|
TextInput::make('tipo_proceso')
|
||||||
->label('Tipo de proceso')
|
->label('Tipo de proceso')
|
||||||
@@ -61,13 +70,16 @@ class ProcesoAcabadoResource extends Resource
|
|||||||
|
|
||||||
TextInput::make('cantidad_enviada')
|
TextInput::make('cantidad_enviada')
|
||||||
->numeric()
|
->numeric()
|
||||||
->required(),
|
->required()
|
||||||
|
->reactive()
|
||||||
|
->helperText(fn ($get) => 'Sugerido: ' . (\App\Models\Tintoreria::where('orden_produccion_id', $get('orden_produccion_id'))->sum('cantidad_recibida') ?: 0)),
|
||||||
|
|
||||||
TextInput::make('cantidad_recibida')
|
TextInput::make('cantidad_recibida')
|
||||||
->numeric(),
|
->numeric(),
|
||||||
|
|
||||||
DatePicker::make('fecha_envio')
|
DatePicker::make('fecha_envio')
|
||||||
->required(),
|
->required()
|
||||||
|
->default(now()),
|
||||||
|
|
||||||
DatePicker::make('fecha_recepcion'),
|
DatePicker::make('fecha_recepcion'),
|
||||||
|
|
||||||
|
|||||||
@@ -32,6 +32,23 @@ class ProcesoAcabado extends Model
|
|||||||
/* Lógica de negocio */
|
/* Lógica de negocio */
|
||||||
protected static function booted()
|
protected static function booted()
|
||||||
{
|
{
|
||||||
|
static::saving(function ($acabado) {
|
||||||
|
// Fecha de envío por defecto
|
||||||
|
if (! $acabado->fecha_envio) {
|
||||||
|
$acabado->fecha_envio = now();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validación: cantidad_enviada no puede exceder lo enviado desde Tintorería (cantidad recibida allí)
|
||||||
|
if ($acabado->cantidad_enviada !== null && $acabado->orden_produccion_id) {
|
||||||
|
$sumTint = \App\Models\Tintoreria::where('orden_produccion_id', $acabado->orden_produccion_id)->sum('cantidad_recibida');
|
||||||
|
if ($sumTint && $acabado->cantidad_enviada > $sumTint) {
|
||||||
|
throw \Illuminate\Validation\ValidationException::withMessages([
|
||||||
|
'cantidad_enviada' => 'La cantidad enviada no puede exceder lo recibido en Tintorería (' . $sumTint . ').',
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
$createTrasladoFn = function ($acabado) {
|
$createTrasladoFn = function ($acabado) {
|
||||||
if ($acabado->cantidad_recibida !== null) {
|
if ($acabado->cantidad_recibida !== null) {
|
||||||
// Evitar duplicados
|
// Evitar duplicados
|
||||||
|
|||||||
Reference in New Issue
Block a user