瀏覽代碼

Agregado descripcion en inventario herramienta y guardado de lista de herramientas como empleados en obras

Jogibeda 7 月之前
父節點
當前提交
5fae08e11c

+ 42 - 0
migrations/m240924_163254_Agregar_descripcion_en_Inventario.php

@@ -0,0 +1,42 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m240924_163254_Agregar_descripcion_en_Inventario
+ */
+class m240924_163254_Agregar_descripcion_en_Inventario extends Migration
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $this->addColumn('HerramientaInventario', 'descripcion', $this->string(100));
+
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        $this->dropColumn('HerramientaInventario', 'descripcion');
+
+    }
+
+    /*
+    // Use up()/down() to run migration code without a transaction.
+    public function up()
+    {
+
+    }
+
+    public function down()
+    {
+        echo "m240924_163254_Agregar_descripcion_en_Inventario cannot be reverted.\n";
+
+        return false;
+    }
+    */
+}

+ 3 - 1
models/HerramientaInventario.php

@@ -9,7 +9,7 @@ use Yii;
  * @property string $estatus
  * @property number|null $cantidad
  * @property string|null $fechaIngreso
- * 
+ * @property string|null $descripcion
  * @property Herramienta $idHerramienta
  * 
  */
@@ -32,6 +32,7 @@ class HerramientaInventario extends ModeloBase
             [['id'], 'required'],
             [['fechaIngreso','creado', 'modificado', 'eliminado'], 'safe'],
             [['id', 'idHerramienta','estatus'], 'string', 'max' => 36],
+            [['descripcion'],'string','max'=>100],
             [['cantidad'], 'number'],
             [['id'], 'unique'],
             [['idHerramienta'], 'exist', 'skipOnError' => true, 'targetClass' => Herramienta::class, 'targetAttribute' => ['idHerramienta' => 'id']],
@@ -49,6 +50,7 @@ class HerramientaInventario extends ModeloBase
             'cantidad' => 'Cantidad',
             'estatus' => 'Estatus',
             'fechaIngreso' => 'Fecha Ingreso',
+            'descripcion'=>'Descripcion',
             'creado' => 'Creado',
             'modificado' => 'Modificado',
             'eliminado' => 'Eliminado',

+ 23 - 23
modules/v1/controllers/ObraController.php

@@ -45,8 +45,8 @@ class ObraController extends AuthController {
 
   public function actionGuardar() {
     $id = trim($this->req->getBodyParam("id", ""));
-    $herramienta = $this->req->getBodyParam("herramientas", []);
-    $empleado = $this->req->getBodyParam("empleados", []);
+    $herramientas = $this->req->getBodyParam("herramientas", []);
+    $empleados = $this->req->getBodyParam("empleados", []);
     $modelo = null;
 
     $transaccion = \Yii::$app->db->beginTransaction();
@@ -80,40 +80,40 @@ class ObraController extends AuthController {
 
       ObraEmpleado::deleteAll(['id' => $modelo->id]);
 
-      foreach ($empleado as $item) {
-        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;
+      foreach ($empleados as $empleado) {
+        if (isset($empleado['id']) ) {
+          $obraEmpleado = new ObraEmpleado();
+          $obraEmpleado->uuid();
+          $obraEmpleado->idEmpleado = $empleado['id'];
+          $obraEmpleado->idObra = $modelo->id;
 
-          if (!$interMedia->save()) {
+          if (!$obraEmpleado->save()) {
             $transaccion->rollBack();
-            return (new Respuesta($interMedia))
-              ->mensaje("Hubo un problema al guardar el Empleado con ID {$item['idEmpleado']['value']}");
+            return (new Respuesta($obraEmpleado))
+              ->mensaje("Hubo un problema al guardar el Empleado con ID {$empleado['id']}");
           }
         } else {
-          Yii::error('Falta el idEmpleado o está vacío en el array', ['item' => $item]);
+          Yii::error('Falta el id del empleado o está vacío en el array', ['item' => $empleado]);
         }
       }
 
       ObraHerramienta::deleteAll(['id' => $modelo->id]);
 
-      foreach ($herramienta as $item) {
-        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'];
+      foreach ($herramientas as $herramienta) {
+        if (isset($herramienta['id']) && isset($herramienta['cantidad'])) {
+          $obraHerramienta = new ObraHerramienta();
+          $obraHerramienta->uuid();
+          $obraHerramienta->idHerramienta = $herramienta['id'];
+          $obraHerramienta->idObra = $modelo->id;
+          $obraHerramienta->cantidad = $herramienta['cantidad'];
 
-          if (!$interMedia->save()) {
+          if (!$obraHerramienta->save()) {
             $transaccion->rollBack();
-            return (new Respuesta($interMedia))
-              ->mensaje("Hubo un problema al guardar la Herramienta con ID {$item['idHerramienta']['value']}");
+            return (new Respuesta($obraHerramienta))
+              ->mensaje("Hubo un problema al guardar la Herramienta con ID {$herramienta['idHerramienta']}");
           }
         } else {
-          Yii::error('Faltan datos en el array de herramientas', ['item' => $item]);
+          Yii::error('Faltan datos en el array de herramientas', ['item' => $herramienta]);
         }
       }
 

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

@@ -15,6 +15,7 @@ class HerramientaInventario extends ModeloHerramientaInventario
             'cantidad',
             'estatus',
             'fechaIngreso',
+            'descripcion',
             'creado',
             'modificado',
 

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

@@ -21,8 +21,8 @@ class Obra extends ModeloObra {
 
   public function extraFields() {
     return [
-        'empleado',
-        'herramienta',
+        'empleados',
+        'herramientas',
     ];
 }
 
@@ -31,13 +31,13 @@ class Obra extends ModeloObra {
       return $this->hasMany(HerramientaObra::class, ['idObra' => 'id']);
   }
 
-  public function getEmpleado()
+  public function getEmpleados()
   {
-      return $this->hasMany(ObraEmpleado::class, ['idObra' => 'id']);
+      return $this->hasMany(Empleado::class, ['id' => 'idEmpleado'])->viaTable("ObraEmpleado",['idObra'=>'id']) ;
   }
 
-  public function getherramienta()
+  public function getherramientas()
   {
-      return $this->hasMany(ObraHerramienta::class, ['idObra' => 'id']);
+      return $this->hasMany(Herramienta::class, ['id' => 'idHerramienta'])->viaTable("ObraHerramienta",['idObra'=>'id']);
   }
 }