瀏覽代碼

Modulos de Tipo herramienta y herramienta

Jogibeda 8 月之前
父節點
當前提交
7b27d72049

+ 52 - 0
migrations/m240808_181725_TipoHerramienta.php

@@ -0,0 +1,52 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m240808_181725_TipoHerramienta
+ */
+class m240808_181725_TipoHerramienta extends Migration
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+      
+            $this->createTable('TipoHerramienta', [
+                "id" => $this->string(36),
+                "clave" => $this->string(100)->notNull(),
+                "tipo" => $this->string(100)->notNull(),
+                "descripcion" => $this->string(100),
+                "creado" => $this->timestamp()->append(" with time zone"),
+                "modificado" => $this->timestamp()->append(" with time zone"),
+                "eliminado" => $this->timestamp()->append(" with time zone"),
+            ]);
+    
+            $this->addPrimaryKey('TipoHerramientaPK', 'TipoHerramienta', 'id');
+       
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        $this->dropTable("TipoHerramienta");
+    }
+
+    /*
+    // Use up()/down() to run migration code without a transaction.
+    public function up()
+    {
+
+    }
+
+    public function down()
+    {
+        echo "m240808_181725_TipoHerramienta cannot be reverted.\n";
+
+        return false;
+    }
+    */
+}

+ 56 - 0
migrations/m240808_200218_Herramienta.php

@@ -0,0 +1,56 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m240808_200218_Herramienta
+ */
+class m240808_200218_Herramienta extends Migration
+{
+    /**
+     * {@inheritdoc}
+     */
+    public function safeUp()
+    {
+        $this->createTable('Herramienta', [
+            "id" => $this->string(36),
+            "nombre" => $this->string(100),
+            "idTipoHerramienta" => $this->string(36),
+            "costo" => $this->float(),
+            "serie" => $this->string(100),
+            "fechaCompra" => $this->timestamp()->append(" with time zone"),
+            "estatus" => $this->string(100),
+            "descripcion" => $this->string(100),
+            "creado" => $this->timestamp()->append(" with time zone"),
+            "modificado" => $this->timestamp()->append(" with time zone"),
+            "eliminado" => $this->timestamp()->append(" with time zone"),
+          ]);
+          $this->addPrimaryKey("HerramientaPK", "Herramienta", "id");
+    
+          $this->addForeignKey("HerramientaTipoHerramientaFK", "Herramienta", "idTipoHerramienta", "TipoHerramienta", "id");
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function safeDown()
+    {
+        $this->dropForeignKey("HerramientaTipoHerramientaFK", "Herramienta");
+        $this->dropTable('Herramienta');
+    }
+
+    /*
+    // Use up()/down() to run migration code without a transaction.
+    public function up()
+    {
+
+    }
+
+    public function down()
+    {
+        echo "m240808_200218_Herramienta cannot be reverted.\n";
+
+        return false;
+    }
+    */
+}

+ 80 - 0
models/Herramienta.php

@@ -0,0 +1,80 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "Herramienta".
+ *
+ * @property string $id
+ * @property string $nombre
+ * @property string|null $idTipoHerramienta
+ * @property float|null $costo
+ * @property string $serie
+ * @property string|null $fechaCompra
+ * @property string $estatus
+ * @property string|null $descripcion
+ * @property string|null $creado
+ * @property string|null $modificado
+ * @property string|null $eliminado
+ *
+ * @property Servicio $idServicio
+ */
+class Herramienta extends ModeloBase
+{
+    /**
+     * {@inheritdoc}
+     */
+    public static function tableName()
+    {
+        return 'Herramienta';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rules()
+    {
+        return [
+            [['id','nombre','serie','estatus'], 'required'],
+            [['fechaCompra','creado', 'modificado', 'eliminado'], 'safe'],
+            [['id', 'idTipoHerramienta'], 'string', 'max' => 36],
+            [['costo'], 'float'],
+            [['costo'], 'default', 'value'=>0.0],
+            [['nombre','descripcion','estatus','serie'], 'string', 'max' => 100],
+            [['id'], 'unique'],
+            [['idTipoHerramienta'], 'exist', 'skipOnError' => true, 'targetClass' => TipoHerramienta::class, 'targetAttribute' => ['idTipoHerramienta' => 'id']],
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function attributeLabels()
+    {
+        return [
+            'id' => 'ID',
+            'nombre' => 'Nombre',
+            'idTipoHerramienta' => 'Id Tipo Herramienta',
+            'costo' => 'Costo',
+            'serie' => 'Serie',
+            'fechaCompra' => 'Fecha Compra',
+            'estatus' => 'Estatus',
+            'descripcion' => 'Descripcion',
+            'creado' => 'Creado',
+            'modificado' => 'Modificado',
+            'eliminado' => 'Eliminado',
+        ];
+    }
+
+    /**
+     * Gets query for [[IdServicio]].
+     *
+     * @return \yii\db\ActiveQuery
+     */
+    public function getTipoHerramienta()
+    {
+        return $this->hasOne(TipoHerramienta::class, ['id' => 'idTipoHerramienta']);
+    }
+}

+ 58 - 0
models/TipoHerramienta.php

@@ -0,0 +1,58 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "TipoHerramienta".
+ *
+ * @property string|null $id
+ * @property string $clave
+ * @property string $tipo
+ * @property string $descripcion
+ * @property string|null $creado
+ * @property string|null $modificado
+ * @property string|null $eliminado
+ */
+class TipoHerramienta extends ModeloBase
+{
+    /**
+     * {@inheritdoc}
+     */
+    public static function tableName()
+    {
+        return 'TipoHerramienta';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rules()
+    {
+        return [
+            [['clave', 'tipo'], 'required'],
+            [['descripcion'], 'string'],
+            [['creado', 'modificado', 'eliminado'], 'safe'],
+            [['id'], 'string', 'max' => 36],
+            [['clave', 'tipo'], 'string', 'max' => 100],
+            [['id'], 'unique'],
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function attributeLabels()
+    {
+        return [
+            'id' => 'ID',
+            'clave' => 'Clave',
+            'tipo' => 'Tipo',
+            'descripcion'=>'Descripcion',
+            'creado' => 'Creado',
+            'modificado' => 'Modificado',
+            'eliminado' => 'Eliminado',
+        ];
+    }
+}

+ 87 - 0
modules/v1/controllers/HerramientaController.php

@@ -0,0 +1,87 @@
+<?php
+
+namespace v1\controllers;
+
+use common\data\Respuesta;
+use common\rest\AuthController;
+use yii\db\Expression;
+
+class HerramientaController extends AuthController {
+
+  public $modelClass = "v1\models\Herramienta";
+
+  public function actionIndex() {
+    $id = trim($this->req->get("id", ""));
+    $buscar = trim($this->req->get("q", ""));
+    $tipoherramienta = trim($this->req->get("tipo", ""));
+
+    $query = $this->queryInicial;
+
+    if($id > 0) {
+      $query->andWhere(["id" => $id]);
+    }
+
+    if($tipoherramienta) {
+        $query->andWhere(["[[TipoHerramienta]].{{id}}", $tipoherramienta]);
+    }
+
+    if($buscar) {
+      
+      $query->andWhere([
+        "OR",
+        ["ilike", "nombre", $buscar]
+      ]);
+
+    }
+
+    return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
+  }
+
+  public function actionGuardar() {
+    $id = trim($this->req->getBodyParam("id", ""));
+    $modelo = null;
+
+    if($id !== "") {
+      $modelo = $this->modelClass::findOne($id);
+    }
+    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(), '');
+    if (!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("Hubo un problema al guardar la herramienta");
+    }
+
+    $modelo->refresh();
+    return (new Respuesta($modelo))
+      ->mensaje("Herramienta guardada");
+  }
+
+  public function actionEliminar() {
+    $id = trim($this->req->getBodyParam("id", ""));
+    $modelo = null;
+
+    if($id !== "") {
+      $modelo = $this->modelClass::findOne(["id" => $id]);
+    }
+    if($modelo === null) {
+      return (new Respuesta())
+        ->esError()
+        ->mensaje("Herramienta no encontrada");
+    }
+    $modelo->eliminado = new Expression('now()');
+    if(!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("No se pudo eliminar herramienta");
+    }
+
+    return (new Respuesta())
+      ->mensaje("Herramienta eliminada");
+  }
+}

+ 14 - 7
modules/v1/controllers/ServicioController.php

@@ -15,28 +15,35 @@ class ServicioController extends AuthController {
     $buscar = trim($this->req->get("q", ""));
     $taller = trim($this->req->get("taller", ""));
     $vehiculo = trim($this->req->get("vehiculo", ""));
-    
-    $query = $this->queryInicial;
+    $inicio= trim($this-> req->get("inicio", ""));
+    $fin= trim($this-> req->get("fin", ""));
+    $query = $this->queryInicial 
+    -> innerJoin("Vehiculo","{{Vehiculo}}.id = {{Servicio}}.[[idVehiculo]]")
+    ->innerJoin("Taller","{{Taller}}.id = {{Servicio}}.[[idTaller]]");
     
 
     if($id !== "") {
-      $query->andWhere(["id" => $id]);
+      $query->andWhere(["{{Servicio}}.id" => $id]);
     }
 
     if($taller !== "") {
-        $query->andWhere(["taller.id" => $taller]);
+        $query->andWhere(["{{Taller}}.id" => $taller]);
     }
 
     if($vehiculo !== "") {
-        $query->andWhere(["vehiculo.id" => $vehiculo]);
+        $query->andWhere(["{{Vehiculo}}.id" => $vehiculo]);
+    }
+    if($inicio !=="" && $fin !==""){
+      $query->andWhere(["between", "[[fechaServicio]]", $inicio,$fin]);
     }
-
     if($buscar) {
       
       $query->andWhere([
         "OR",
-        ["ilike", "nombre", $buscar]
+        ["ilike", "{{Vehiculo}}.nombre", $buscar]
       ]);
+      
+    
 
     }
 

+ 1 - 1
modules/v1/controllers/TipoAutoController.php

@@ -56,7 +56,7 @@ class TipoAutoController extends AuthController {
 
     $modelo->refresh();
     return (new Respuesta($modelo))
-      ->mensaje("Tipo de auto guardad");
+      ->mensaje("Tipo de auto guardado");
   }
 
   public function actionEliminar() {

+ 83 - 0
modules/v1/controllers/TipoHerramientaController.php

@@ -0,0 +1,83 @@
+<?php
+
+namespace v1\controllers;
+
+use common\data\Respuesta;
+use common\rest\AuthController;
+use yii\db\Expression;
+
+class TipoHerramientaController extends AuthController {
+
+  public $modelClass = "v1\models\TipoHerramienta";
+
+  public function actionIndex() {
+    $id = trim($this->req->get("id", ""));
+    $buscar = trim($this->req->get("q", ""));
+    
+    $query = $this->queryInicial;
+    
+
+    if($id !== "") {
+      $query->andWhere(["id" => $id]);
+    }
+
+    if($buscar) {
+      
+      $query->andWhere([
+        "OR",
+        ["ilike", "tipo", $buscar]
+      ]);
+
+    }
+
+    return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
+  }
+
+  public function actionGuardar() {
+    $id = trim($this->req->getBodyParam("id", ""));
+    $modelo = null;
+
+    if($id !== "") {
+      $modelo = $this->modelClass::findOne($id);
+    }
+    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(), '');
+    if (!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("Hubo un problema al guardar el tipo de herramienta");
+    }
+
+    $modelo->refresh();
+    return (new Respuesta($modelo))
+      ->mensaje("Tipo de herramienta guardado");
+  }
+
+  public function actionEliminar() {
+    $id = trim($this->req->getBodyParam("id", ""));
+    $modelo = null;
+
+    if($id !== "") {
+      $modelo = $this->modelClass::findOne(["id" => $id]);
+    }
+    if($modelo === null) {
+      return (new Respuesta())
+        ->esError()
+        ->mensaje("Tipo de herramienta no encontrado");
+    }
+    $modelo->eliminado = new Expression('now()');
+    if(!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("No se pudo eliminar el tipo de herramienta");
+    }
+
+    return (new Respuesta())
+      ->mensaje("Tipo de herramienta eliminado");
+  }
+}

+ 35 - 0
modules/v1/models/Herramienta.php

@@ -0,0 +1,35 @@
+<?php
+
+namespace v1\models;
+
+use app\models\Herramienta as ModeloHerramienta;
+
+class TipoHerramienta extends ModeloHerramienta
+{
+
+    public function fields()
+    {
+        return [
+            'id',
+            'nombre',
+            'idTipoHerramienta',
+            'costo',
+            'serie',
+            'fechaCompra',
+            'estatus',
+            'descripcion',
+            'creado',
+            'modificado',
+
+        ];
+    }
+    public function extraFields() {
+        return [
+            'tipoherramienta',
+        ];
+    }
+    public function getTipoHerramienta()
+    {
+        return $this->hasOne(TipoHerramienta::class, ['id' => 'idTipoHerramienta']);
+    }
+}

+ 20 - 0
modules/v1/models/TipoHerramienta.php

@@ -0,0 +1,20 @@
+<?php
+
+namespace v1\models;
+
+use app\models\TipoHerramienta as ModeloTipoHerramienta;
+
+class TipoHerramienta extends ModeloTipoHerramienta {
+
+  public function fields() {
+    return [
+      'id',
+      'clave',
+      'tipo',
+      'descripcion',
+      'creado',
+      'modificado',
+      
+    ];
+  }
+}