Browse Source

Mensaje de error si la clave ya existe en controladores Color, Marca, TipoAuto, TipoHerramienta, TipoServicio

Jogibeda 8 months ago
parent
commit
46795ded34

+ 28 - 16
modules/v1/controllers/ColorController.php

@@ -6,48 +6,59 @@ use common\data\Respuesta;
 use common\rest\AuthController;
 use yii\db\Expression;
 
-class ColorController extends AuthController {
+class ColorController extends AuthController
+{
 
   public $modelClass = "v1\models\Color";
 
-  public function actionIndex() {
+  public function actionIndex()
+  {
     $id = trim($this->req->get("id", ""));
     $buscar = trim($this->req->get("q", ""));
-    
+
     $query = $this->queryInicial;
-    
 
-    if($id !== "") {
+
+    if ($id !== "") {
       $query->andWhere(["id" => $id]);
     }
 
-    if($buscar) {
-      
+    if ($buscar) {
+
       $query->andWhere([
         "OR",
         ["ilike", "color", $buscar]
       ]);
-
     }
 
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
   }
 
-  public function actionGuardar() {
+  public function actionGuardar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne($id);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       $modelo = new $this->modelClass();
       $modelo->uuid();
       $modelo->creado = new Expression('now()');
     } else {
       $modelo->modificado = new Expression('now()');
     }
+    $modelo->load($this->req->getBodyParams(), '');
 
+    $clave = $modelo->clave;  
+    $existeClave = $this->modelClass::find()->where(['clave' => $clave])->andWhere(['<>', 'id', $id])->exists();
+
+    if ($existeClave) {
+      return (new Respuesta())
+        ->esError()
+        ->mensaje("La clave '$clave' ya existe. Por favor, ingresa una clave diferente.");
+    }
     $modelo->load($this->req->getBodyParams(), '');
     if (!$modelo->save()) {
       return (new Respuesta($modelo))
@@ -59,20 +70,21 @@ class ColorController extends AuthController {
       ->mensaje("Color guardado");
   }
 
-  public function actionEliminar() {
+  public function actionEliminar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne(["id" => $id]);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       return (new Respuesta())
         ->esError()
         ->mensaje("Color no encontrado");
     }
     $modelo->eliminado = new Expression('now()');
-    if(!$modelo->save()) {
+    if (!$modelo->save()) {
       return (new Respuesta($modelo))
         ->mensaje("No se pudo eliminar el color");
     }
@@ -80,4 +92,4 @@ class ColorController extends AuthController {
     return (new Respuesta())
       ->mensaje("Color eliminado");
   }
-}
+}

+ 28 - 16
modules/v1/controllers/MarcaController.php

@@ -6,48 +6,59 @@ use common\data\Respuesta;
 use common\rest\AuthController;
 use yii\db\Expression;
 
-class MarcaController extends AuthController {
+class MarcaController extends AuthController
+{
 
   public $modelClass = "v1\models\Marca";
 
-  public function actionIndex() {
+  public function actionIndex()
+  {
     $id = trim($this->req->get("id", ""));
     $buscar = trim($this->req->get("q", ""));
-    
+
     $query = $this->queryInicial;
-    
 
-    if($id !== "") {
+
+    if ($id !== "") {
       $query->andWhere(["id" => $id]);
     }
 
-    if($buscar) {
-      
+    if ($buscar) {
+
       $query->andWhere([
         "OR",
         ["like", "marca", $buscar]
       ]);
-
     }
 
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
   }
 
-  public function actionGuardar() {
+  public function actionGuardar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne($id);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       $modelo = new $this->modelClass();
       $modelo->uuid();
       $modelo->creado = new Expression('now()');
     } else {
       $modelo->modificado = new Expression('now()');
     }
+    $modelo->load($this->req->getBodyParams(), '');
 
+    $clave = $modelo->clave; 
+    $existeClave = $this->modelClass::find()->where(['clave' => $clave])->andWhere(['<>', 'id', $id])->exists();
+
+    if ($existeClave) {
+      return (new Respuesta())
+        ->esError()
+        ->mensaje("La clave '$clave' ya existe. Por favor, ingresa una clave diferente.");
+    }
     $modelo->load($this->req->getBodyParams(), '');
     if (!$modelo->save()) {
       return (new Respuesta($modelo))
@@ -59,20 +70,21 @@ class MarcaController extends AuthController {
       ->mensaje("Marca guardada");
   }
 
-  public function actionEliminar() {
+  public function actionEliminar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne(["id" => $id]);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       return (new Respuesta())
         ->esError()
         ->mensaje("Marca no encontrado");
     }
     $modelo->eliminado = new Expression('now()');
-    if(!$modelo->save()) {
+    if (!$modelo->save()) {
       return (new Respuesta($modelo))
         ->mensaje("No se pudo eliminar la Marca");
     }
@@ -80,4 +92,4 @@ class MarcaController extends AuthController {
     return (new Respuesta())
       ->mensaje("Marca eliminada");
   }
-}
+}

+ 28 - 16
modules/v1/controllers/TipoAutoController.php

@@ -6,48 +6,59 @@ use common\data\Respuesta;
 use common\rest\AuthController;
 use yii\db\Expression;
 
-class TipoAutoController extends AuthController {
+class TipoAutoController extends AuthController
+{
 
   public $modelClass = "v1\models\TipoAuto";
 
-  public function actionIndex() {
+  public function actionIndex()
+  {
     $id = trim($this->req->get("id", ""));
     $buscar = trim($this->req->get("q", ""));
-    
+
     $query = $this->queryInicial;
-    
 
-    if($id !== "") {
+
+    if ($id !== "") {
       $query->andWhere(["id" => $id]);
     }
 
-    if($buscar) {
-      
+    if ($buscar) {
+
       $query->andWhere([
         "OR",
         ["like", "tipo", $buscar]
       ]);
-
     }
 
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
   }
 
-  public function actionGuardar() {
+  public function actionGuardar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne($id);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       $modelo = new $this->modelClass();
       $modelo->uuid();
       $modelo->creado = new Expression('now()');
     } else {
       $modelo->modificado = new Expression('now()');
     }
+    $modelo->load($this->req->getBodyParams(), '');
 
+    $clave = $modelo->clave;  
+    $existeClave = $this->modelClass::find()->where(['clave' => $clave])->andWhere(['<>', 'id', $id])->exists();
+
+    if ($existeClave) {
+      return (new Respuesta())
+        ->esError()
+        ->mensaje("La clave '$clave' ya existe. Por favor, ingresa una clave diferente.");
+    }
     $modelo->load($this->req->getBodyParams(), '');
     if (!$modelo->save()) {
       return (new Respuesta($modelo))
@@ -59,20 +70,21 @@ class TipoAutoController extends AuthController {
       ->mensaje("Tipo de auto guardado");
   }
 
-  public function actionEliminar() {
+  public function actionEliminar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne(["id" => $id]);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       return (new Respuesta())
         ->esError()
         ->mensaje("Tipo de auto no encontrado");
     }
     $modelo->eliminado = new Expression('now()');
-    if(!$modelo->save()) {
+    if (!$modelo->save()) {
       return (new Respuesta($modelo))
         ->mensaje("No se pudo eliminar el tipo de auto");
     }
@@ -80,4 +92,4 @@ class TipoAutoController extends AuthController {
     return (new Respuesta())
       ->mensaje("Tipo de auto eliminado");
   }
-}
+}

+ 28 - 16
modules/v1/controllers/TipoHerramientaController.php

@@ -6,48 +6,59 @@ use common\data\Respuesta;
 use common\rest\AuthController;
 use yii\db\Expression;
 
-class TipoHerramientaController extends AuthController {
+class TipoHerramientaController extends AuthController
+{
 
   public $modelClass = "v1\models\TipoHerramienta";
 
-  public function actionIndex() {
+  public function actionIndex()
+  {
     $id = trim($this->req->get("id", ""));
     $buscar = trim($this->req->get("q", ""));
-    
+
     $query = $this->queryInicial;
-    
 
-    if($id !== "") {
+
+    if ($id !== "") {
       $query->andWhere(["id" => $id]);
     }
 
-    if($buscar) {
-      
+    if ($buscar) {
+
       $query->andWhere([
         "OR",
         ["ilike", "tipo", $buscar]
       ]);
-
     }
 
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
   }
 
-  public function actionGuardar() {
+  public function actionGuardar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne($id);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       $modelo = new $this->modelClass();
       $modelo->uuid();
       $modelo->creado = new Expression('now()');
     } else {
       $modelo->modificado = new Expression('now()');
     }
+    $modelo->load($this->req->getBodyParams(), '');
 
+    $clave = $modelo->clave;  
+    $existeClave = $this->modelClass::find()->where(['clave' => $clave])->andWhere(['<>', 'id', $id])->exists();
+
+    if ($existeClave) {
+      return (new Respuesta())
+        ->esError()
+        ->mensaje("La clave '$clave' ya existe. Por favor, ingresa una clave diferente.");
+    }
     $modelo->load($this->req->getBodyParams(), '');
     if (!$modelo->save()) {
       return (new Respuesta($modelo))
@@ -59,20 +70,21 @@ class TipoHerramientaController extends AuthController {
       ->mensaje("Tipo de herramienta guardado");
   }
 
-  public function actionEliminar() {
+  public function actionEliminar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne(["id" => $id]);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       return (new Respuesta())
         ->esError()
         ->mensaje("Tipo de herramienta no encontrado");
     }
     $modelo->eliminado = new Expression('now()');
-    if(!$modelo->save()) {
+    if (!$modelo->save()) {
       return (new Respuesta($modelo))
         ->mensaje("No se pudo eliminar el tipo de herramienta");
     }
@@ -80,4 +92,4 @@ class TipoHerramientaController extends AuthController {
     return (new Respuesta())
       ->mensaje("Tipo de herramienta eliminado");
   }
-}
+}

+ 28 - 16
modules/v1/controllers/TipoServicioController.php

@@ -6,48 +6,59 @@ use common\data\Respuesta;
 use common\rest\AuthController;
 use yii\db\Expression;
 
-class TipoServicioController extends AuthController {
+class TipoServicioController extends AuthController
+{
 
   public $modelClass = "v1\models\TipoServicio";
 
-  public function actionIndex() {
+  public function actionIndex()
+  {
     $id = trim($this->req->get("id", ""));
     $buscar = trim($this->req->get("q", ""));
-    
+
     $query = $this->queryInicial;
-    
 
-    if($id !== "") {
+
+    if ($id !== "") {
       $query->andWhere(["id" => $id]);
     }
 
-    if($buscar) {
-      
+    if ($buscar) {
+
       $query->andWhere([
         "OR",
         ["ilike", "nombre", $buscar]
       ]);
-
     }
 
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
   }
 
-  public function actionGuardar() {
+  public function actionGuardar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne($id);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       $modelo = new $this->modelClass();
       $modelo->uuid();
       $modelo->creado = new Expression('now()');
     } else {
       $modelo->modificado = new Expression('now()');
     }
+    $modelo->load($this->req->getBodyParams(), '');
 
+    $clave = $modelo->clave;  
+    $existeClave = $this->modelClass::find()->where(['clave' => $clave])->andWhere(['<>', 'id', $id])->exists();
+
+    if ($existeClave) {
+      return (new Respuesta())
+        ->esError()
+        ->mensaje("La clave '$clave' ya existe. Por favor, ingresa una clave diferente.");
+    }
     $modelo->load($this->req->getBodyParams(), '');
     if (!$modelo->save()) {
       return (new Respuesta($modelo))
@@ -59,20 +70,21 @@ class TipoServicioController extends AuthController {
       ->mensaje("Vehiculo guardado");
   }
 
-  public function actionEliminar() {
+  public function actionEliminar()
+  {
     $id = trim($this->req->getBodyParam("id", ""));
     $modelo = null;
 
-    if($id !== "") {
+    if ($id !== "") {
       $modelo = $this->modelClass::findOne(["id" => $id]);
     }
-    if($modelo === null) {
+    if ($modelo === null) {
       return (new Respuesta())
         ->esError()
         ->mensaje("Tipo de Servicio no encontrado");
     }
     $modelo->eliminado = new Expression('now()');
-    if(!$modelo->save()) {
+    if (!$modelo->save()) {
       return (new Respuesta($modelo))
         ->mensaje("No se pudo eliminar Tipo de Servicio");
     }
@@ -80,4 +92,4 @@ class TipoServicioController extends AuthController {
     return (new Respuesta())
       ->mensaje("Tipo de Servicio eliminada");
   }
-}
+}