Sfoglia il codice sorgente

Se corrigioi guaradao en ObraController

Jose Cienfuegos 9 mesi fa
parent
commit
53e10e3b82

+ 28 - 22
modules/v1/controllers/ObraController.php

@@ -6,6 +6,7 @@ use app\models\ObraEmpleado;
 use app\models\ObraHerramienta;
 use common\data\Respuesta;
 use common\rest\AuthController;
+use Yii;
 use yii\db\Expression;
 
 class ObraController extends AuthController {
@@ -80,34 +81,39 @@ class ObraController extends AuthController {
       ObraEmpleado::deleteAll(['id' => $modelo->id]);
 
       foreach ($empleado as $item) {
-        $idEmpleado = $item['idEmpleado'];
-        $interMedia = new ObraEmpleado();
-
-        $interMedia->idEmpleado = $idEmpleado;
-        $interMedia->idObra = $modelo->id;
-
-        if (!$interMedia->save()) {
-          $transaccion->rollBack();
-          return (new Respuesta($interMedia))
-            ->mensaje("Hubo un problema al guardar la imagen {$item['nombre']}");
+        if (isset($item['idEmpleado']['value']) && !empty($item['idEmpleado']['value'])) {
+          $interMedia = new ObraEmpleado();
+          $interMedia->id = \Yii::$app->security->generateRandomString(36);
+          $interMedia->idEmpleado = $item['idEmpleado']['value'];
+          $interMedia->idObra = $modelo->id;
+
+          if (!$interMedia->save()) {
+            $transaccion->rollBack();
+            return (new Respuesta($interMedia))
+              ->mensaje("Hubo un problema al guardar el Empleado con ID {$item['idEmpleado']['value']}");
+          }
+        } else {
+          Yii::error('Falta el idEmpleado o está vacío en el array', ['item' => $item]);
         }
       }
 
       ObraHerramienta::deleteAll(['id' => $modelo->id]);
 
       foreach ($herramienta as $item) {
-        $idHerramienta = $item['idHerramienta'];
-        $cantidad = $item['cantidad'];
-        $interMedia = new ObraHerramienta();
-
-        $interMedia->idHerramienta = $idHerramienta;
-        $interMedia->idObra = $modelo->id;
-        $interMedia->cantidad = $cantidad;
-
-        if (!$interMedia->save()) {
-          $transaccion->rollBack();
-          return (new Respuesta($interMedia))
-            ->mensaje("Hubo un problema al guardar la herramienta {$item['nombre']}");
+        if (isset($item['idHerramienta']['value']) && isset($item['cantidad'])) {
+          $interMedia = new ObraHerramienta();
+          $interMedia->id = \Yii::$app->security->generateRandomString(36);
+          $interMedia->idHerramienta = $item['idHerramienta']['value'];
+          $interMedia->idObra = $modelo->id;
+          $interMedia->cantidad = $item['cantidad'];
+
+          if (!$interMedia->save()) {
+            $transaccion->rollBack();
+            return (new Respuesta($interMedia))
+              ->mensaje("Hubo un problema al guardar la Herramienta con ID {$item['idHerramienta']['value']}");
+          }
+        } else {
+          Yii::error('Faltan datos en el array de herramientas', ['item' => $item]);
         }
       }
 

+ 4 - 4
modules/v1/models/Obra.php

@@ -21,8 +21,8 @@ class Obra extends ModeloObra {
 
   public function extraFields() {
     return [
-        'obraEmpleado',
-        'obraHerramienta',
+        'empleado',
+        'herramienta',
     ];
 }
 
@@ -31,12 +31,12 @@ class Obra extends ModeloObra {
       return $this->hasMany(HerramientaObra::class, ['idObra' => 'id']);
   }
 
-  public function getObraEmpleado()
+  public function getEmpleado()
   {
       return $this->hasMany(ObraEmpleado::class, ['idObra' => 'id']);
   }
 
-  public function getObraHerramienta()
+  public function getherramienta()
   {
       return $this->hasMany(ObraHerramienta::class, ['idObra' => 'id']);
   }

+ 1 - 0
modules/v1/models/ObraHerramienta.php

@@ -11,6 +11,7 @@ class ObraHerramienta extends ModeloObraHerramienta {
       'id',
       'idObra',
       'idHerramienta',
+      'cantidad',
       'creado',
       'modificado',
     ];