diff --git a/ci4/app/Controllers/Configuracion/Maquinasdefecto.php b/ci4/app/Controllers/Configuracion/Maquinasdefecto.php index 4ec1393e..225c32a2 100644 --- a/ci4/app/Controllers/Configuracion/Maquinasdefecto.php +++ b/ci4/app/Controllers/Configuracion/Maquinasdefecto.php @@ -75,15 +75,23 @@ class Maquinasdefecto extends \App\Controllers\GoBaseResourceController { // JJO $sanitizedData['user_created_id'] = $session->id_user; - - + $noException = true; if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : - if ($this->canValidate()) : + // JJO: se añade que se checkeen los intervalos de ancho y tirada. + // En caso de error se devuelve un mensaje. try { - $successfulResult = $this->model->skipValidation(true)->save($sanitizedData); + $error = $this->model->checkIntervals($sanitizedData); + if(empty($error)){ + $successfulResult = $this->model->skipValidation(true)->save($sanitizedData); + } + else{ + $successfulResult = false; + $this->viewData['errorMessage'] = $error; + $this->session->setFlashdata('formErrors', $this->model->errors()); + } } catch (\Exception $e) { $noException = false; $this->dealWithException($e); @@ -160,12 +168,20 @@ class Maquinasdefecto extends \App\Controllers\GoBaseResourceController { $noException = true; if ($successfulResult = $this->canValidate()) : // if ($successfulResult = $this->validate($this->formValidationRules) ) : - - if ($this->canValidate()) : - try { - $successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData); + // JJO: se añade que se checkeen los intervalos de ancho y tirada. + // En caso de error se devuelve un mensaje. + try { + $error = $this->model->checkIntervals($sanitizedData); + if(empty($error)){ + $successfulResult = $this->model->skipValidation(true)->update($id, $sanitizedData); + } + else{ + $successfulResult = false; + $this->viewData['errorMessage'] = $error; + $this->session->setFlashdata('formErrors', $this->model->errors()); + } } catch (\Exception $e) { $noException = false; $this->dealWithException($e); diff --git a/ci4/app/Language/en/MaquinasPorDefecto.php b/ci4/app/Language/en/MaquinasPorDefecto.php index 06823f2c..6efc57fe 100644 --- a/ci4/app/Language/en/MaquinasPorDefecto.php +++ b/ci4/app/Language/en/MaquinasPorDefecto.php @@ -31,6 +31,8 @@ return [ 'userCreatedId' => 'User Created ID', 'userUpdatedId' => 'User Updated ID', 'validation' => [ + 'error_ancho_overlap' => 'The range [Min Width, Max Width] is overlapped with another one for the selected type.', + 'error_tirada_overlap' => 'The range [Min Printing, Max Printing] is overlapped with another one for the selected type.', 'alto_max' => [ 'decimal' => 'The {field} field must contain a decimal number.', 'required' => 'The {field} field is required.', diff --git a/ci4/app/Language/es/MaquinasPorDefecto.php b/ci4/app/Language/es/MaquinasPorDefecto.php index 9ba009b9..a16729ab 100644 --- a/ci4/app/Language/es/MaquinasPorDefecto.php +++ b/ci4/app/Language/es/MaquinasPorDefecto.php @@ -31,6 +31,8 @@ return [ 'userCreatedId' => 'User Created ID', 'userUpdatedId' => 'User Updated ID', 'validation' => [ + 'error_ancho_overlap' => 'El rango [Ancho Min, Ancho Max] se solapa con otro existente para el tipo seleccionado.', + 'error_tirada_overlap' => 'El rango [Tirada Min, Tirada Max] se solapa con otro existente para el tipo seleccionado.', 'alto_max' => [ 'decimal' => 'El campo {field} debe contener un número decimal.', 'required' => 'El campo {field} es obligatorio.', diff --git a/ci4/app/Models/Configuracion/MaquinasDefectoModel.php b/ci4/app/Models/Configuracion/MaquinasDefectoModel.php index 5fe5012d..e2963e7e 100644 --- a/ci4/app/Models/Configuracion/MaquinasDefectoModel.php +++ b/ci4/app/Models/Configuracion/MaquinasDefectoModel.php @@ -145,6 +145,7 @@ class MaquinasDefectoModel extends \App\Models\GoBaseModel ->select( "t1.id AS id, t1.tipo AS tipo, t1.ancho_min AS ancho_min, t1.ancho_max AS ancho_max, t1.alto_min AS alto_min, t1.alto_max AS alto_max, t1.tirada_min AS tirada_min, t1.tirada_max AS tirada_max, t2.nombre AS maquina" ); + $builder->where('t1.is_deleted', 0); $builder->join("lg_maquinas t2", "t1.maquina_id = t2.id", "left"); return empty($search) @@ -172,4 +173,46 @@ class MaquinasDefectoModel extends \App\Models\GoBaseModel ->orLike("t2.nombre", $search) ->groupEnd(); } + + public function checkIntervals($data = []){ + $ancho_min = $this->db + ->table($this->table) + ->selectMin("ancho_min") + ->where("is_deleted", 0) + ->where("tipo", $data["tipo"])->get()->getRow()->ancho_min; + + $ancho_max = $this->db + ->table($this->table) + ->selectMin("ancho_max") + ->where("is_deleted", 0) + ->where("tipo", $data["tipo"])->get()->getRow()->ancho_max; + + $tirada_min = $this->db + ->table($this->table) + ->selectMin("tirada_min") + ->where("is_deleted", 0) + ->where("tipo", $data["tipo"])->get()->getRow()->tirada_min; + + $tirada_max = $this->db + ->table($this->table) + ->selectMin("tirada_max") + ->where("is_deleted", 0) + ->where("tipo", $data["tipo"])->get()->getRow()->tirada_max; + + if(!is_null($ancho_max) && !is_null($ancho_min)){ + if($data["ancho_min"]>=intval($ancho_min) || + $data["ancho_max"]<=intval($ancho_max) ) + return lang('MaquinasPorDefecto.validation.error_ancho_overlap'); + } + + if(!is_null($tirada_max) && !is_null($tirada_min)){ + if($data["tirada_min"]>=intval($tirada_min) || + $data["tirada_max"]<=intval($tirada_max) ) + return lang('MaquinasPorDefecto.validation.error_tirada_overlap'); + } + + return ""; + } } + +