69 Commits 005e1ca0f8 ... fdb7fced1a

Auteur SHA1 Message Date
  Jose Cienfuegos fdb7fced1a Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api il y a 9 mois
  Jose Cienfuegos c15c27265c Se agregaron tablas merma, compra, compra producto, nomina il y a 9 mois
  Jogibeda 5e79989cc1 Creacion de la migracion para cambiar los datos de Unidad de medida y Partida con posibilidad de nulos il y a 9 mois
  Jogibeda 62e0d47d1c Agregado Modulos y Controlador de Permisos, como su migracion il y a 9 mois
  Jogibeda 7b12a5ca80 busqueda por nombre de Unidad de medida il y a 9 mois
  Jogibeda 4f517bcd48 Controladores y modelos de Partida y Unidad de medida, incluido su migracion il y a 9 mois
  Jogibeda d473f33957 Creacion de la migracion de modulo junto con modelos y controladores il y a 9 mois
  Jogibeda 887693fea3 Actualizacion de la obtencion de herramientas il y a 9 mois
  Jogibeda 5fae08e11c Agregado descripcion en inventario herramienta y guardado de lista de herramientas como empleados en obras il y a 9 mois
  acampillo 0d5c27efe6 corrección de migraciones il y a 9 mois
  Jogibeda b9131defac Ajuste condicional de existentes en placas y serie en Vehiculos il y a 9 mois
  Jogibeda ab2583fed1 Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api il y a 9 mois
  Jogibeda 313b56f5a1 Ajuste condicional de existentes en placas y serie en Vehiculos il y a 9 mois
  Jose Cienfuegos cf63d9f166 Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api il y a 9 mois
  Jose Cienfuegos a99fbd2059 Se agrego logo de edesarrollos il y a 9 mois
  Jose Cienfuegos 3cc01ee094 Se agrego excel y pdf il y a 9 mois
  Jose Cienfuegos fb5287a865 Se agrego PDF y excel de herramienta inventario il y a 9 mois
  Jogibeda b17a03cf0d Modificacion de los controladores donde hay una condicional donde clave no se repita il y a 9 mois
  Jogibeda 5430023d70 Condicional de que no se repita placas y num de serie il y a 10 mois
  Jose Cienfuegos 6ffd59f36e Se corrigio actionEliminar en ObraEmpleadoController il y a 10 mois
  Jose Cienfuegos 9b93be61a4 Se corrigio el actioGuardar para la relacion de Servicios il y a 10 mois
  Jose Cienfuegos eee897e49c Se agrego campo nombre en el modelo ServicioTipoServicio il y a 10 mois
  Jose Cienfuegos b774601b84 Se corrigio guardado de tipos de servicios en Servicio il y a 10 mois
  Jose Cienfuegos 69e313c435 Se agrego controladores para obra herramienta y obra empleado il y a 10 mois
  Jose Cienfuegos 754b172f78 Se actualizo controlador de Servicio ademas se agrego tabla ServicioTipoServicio il y a 10 mois
  Jogibeda 913ddd11d8 Herramienta Inventario modulo il y a 10 mois
  Jose Cienfuegos 33372b76af Se corrigio media de vehiculo il y a 10 mois
  Jose Cienfuegos 53e10e3b82 Se corrigioi guaradao en ObraController il y a 10 mois
  Jose Cienfuegos fe1a264f49 Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api il y a 10 mois
  Jose Cienfuegos 61c5aaea89 Se corrigio modelos ObraEmpleado y ObraHerramienta il y a 10 mois
  Jose Cienfuegos 34416040ed Se corrigio duplicado de cantidad en ObraController il y a 10 mois
  Jose Cienfuegos fbcb49d27f Se agregaron modulos ObraHerramienta yu ObraEmpleado il y a 10 mois
  Jose Cienfuegos 0ceb948904 Se corrigio sintaxis il y a 10 mois
  Jose Cienfuegos 7abf484a2b Se corrigio el actionGuardar en MediaController il y a 10 mois
  Jose Cienfuegos accbcae871 Se agregaron columnas a tabla media il y a 10 mois
  Jose Cienfuegos 163cadbd2e Se cambioi de activeRecord a Modelobase il y a 10 mois
  Jose Cienfuegos c32a3d7912 Se quito extension de mopdelos de media il y a 10 mois
  Jose Cienfuegos bad0667b47 Se quito la s en getMediaVehiculo il y a 10 mois
  Jose Cienfuegos e59a10fdb1 Se Corrigio el apuntado de servicio a media vehiculo il y a 10 mois
  Jose Cienfuegos ccf19f864a Se agrego getMedia a vehiculos il y a 10 mois
  Jose Cienfuegos 955b5e6c09 Se corrigio modelos de vehiculo y MediaVehiculo il y a 10 mois
  Jose Cienfuegos 210302b5fc Se agrego tabla MediaVehiculo para guardar archivos e imagenes il y a 10 mois
  Jogibeda 22746469e4 Agregado el campo de clave en obra, como su funcionamiento il y a 10 mois
  Jogibeda 46795ded34 Mensaje de error si la clave ya existe en controladores Color, Marca, TipoAuto, TipoHerramienta, TipoServicio il y a 10 mois
  Jogibeda 52666e7a86 Modificacion de buscadores de Marca,Obra y TipoAuto, tambien se añadio la migracion donde la clave en todos los modulos es unica il y a 10 mois
  Jogibeda 3210003bab Arreglo de buscador de HerramientaObra il y a 10 mois
  Jogibeda 741b84d115 descripcion actualizada de Obra, TipoAuto y Marca il y a 10 mois
  Jogibeda 7345333c55 agregacion de la migracion para tabla de color il y a 10 mois
  Jogibeda a35d3c83c0 creacion y actualizacion en migraciones il y a 10 mois
  Jogibeda f91f600e10 Modulo Empleado creado il y a 10 mois
  Jogibeda 80c2f441c4 cambio de tipo de dato en costo il y a 10 mois
  Jogibeda 7b27d72049 Modulos de Tipo herramienta y herramienta il y a 10 mois
  Jogibeda dc7243d444 filtrado de vehiculos il y a 11 mois
  Jogibeda 696934327c Modulo de color funcionando il y a 11 mois
  Jogibeda 29d13d9008 Modulos de Marca de auto y tipo de autos en funcionamiento il y a 11 mois
  Jose Cienfuegos 03898ad7ba Se corrigio migracion il y a 11 mois
  Jose Cienfuegos 00ce3a564e Se agrego tabla TipoServicio modelos y controlador il y a 11 mois
  Jose Cienfuegos e8dcda6282 Se corrigio id entero en VehiculoController il y a 11 mois
  Jose Cienfuegos 1b8ad9a86a Se cambio de intval a trim en el id de TallerController il y a 11 mois
  Jogibeda 3e21b4d5ae Actualizacion de modelo Vehiculo il y a 11 mois
  Jose Cienfuegos 2f61fdd4e0 Se agregaron columnas marca y descripcion en tabla vehiculo en migracion il y a 11 mois
  Jose Cienfuegos 96558aef75 Se agrego migracion para agregar columna tipo en tabla vehiculo il y a 11 mois
  Jose Cienfuegos f052a6dea5 Se agregaron tablas Servicio y ServicioElemento il y a 11 mois
  Jose Cienfuegos d5ecb12c60 Se se agrego crud de Vehiculo il y a 11 mois
  Jose Cienfuegos 3e8b635d2d se agrego migracion para tablas taller y vehiculo il y a 11 mois
  Jose Cienfuegos 05d83fdcdf Se agrego Crud Taller il y a 11 mois
  Jose Cienfuegos 05ac1d1276 Se hizo CRUD de Taller, se agregaron tablas Taller y Vehiculo il y a 11 mois
  Jose Cienfuegos cb93fe4bf0 Se agrego db a ignore il y a 11 mois
  Jose Cienfuegos ad7ebed873 se il y a 11 mois

+ 114 - 0
migrations/m240926_231003_tablas_compras_comprasProducto_mermas_nominas.php

@@ -0,0 +1,114 @@
+<?php
+
+use yii\db\Migration;
+
+/**
+ * Class m240926_231003_tablas_compras_comprasProducto_mermas_nominas
+ */
+class m240926_231003_tablas_compras_comprasProducto_mermas_nominas extends Migration {
+
+    public function safeUp() {
+        $this->createTable('Compra', [
+            "id" => $this->string(36),
+            "idObra" => $this->string(36),
+            "idUsuario" => $this->string(36),
+            "fechaCompra" => $this->timestamp()->append(" with time zone"),
+            "creado" => $this->timestamp()->append(" with time zone"),
+            "modificado" => $this->timestamp()->append(" with time zone"),
+            "eliminado" => $this->timestamp()->append(" with time zone"),
+        ]);
+
+        $this->addPrimaryKey('CompraPK', 'Compra', 'id');
+        
+        $this->addForeignKey('CompraObraFK', 'Compra', 'idObra', 'Obra', 'id');
+        $this->addForeignKey('CompraUsuarioFK', 'Compra', 'idUsuario', 'Usuario', 'id');
+
+        $this->createTable('CompraProducto', [
+            "id" => $this->string(36),
+            "idCompra" => $this->string(36),
+            "idUnidadMedida" => $this->string(36),
+            "idPartida" => $this->string(36),
+            "producto" => $this->string(),
+            "cantidad" => $this->string(),
+            "precio" => $this->decimal(10, 2),
+            "descripcion" => $this->text(),
+            "creado" => $this->timestamp()->append(" with time zone"),
+            "modificado" => $this->timestamp()->append(" with time zone"),
+            "eliminado" => $this->timestamp()->append(" with time zone"),
+        ]);
+
+        $this->addPrimaryKey('CompraProductoPK','CompraProducto', 'id');
+
+        $this->addForeignKey('CompraProductoCompraFK', 'CompraProducto', 'idCompra', 'Compra', 'id');
+        $this->addForeignKey('CompraProductoMedidaFK', 'CompraProducto', 'idUnidadMedida', 'UnidadMedida', 'id');
+        $this->addForeignKey('CompraProductoPartidaFK', 'CompraProducto', 'idPartida', 'Partida', 'id');
+
+        $this->createTable('Merma', [
+            "id" => $this->string(36),
+            "idObra" => $this->string(36),
+            "idUnidadMedida" => $this->string(36),
+            "idPartida" => $this->string(36),
+            "idUsuario" => $this->string(36),
+            "producto" => $this->string(),
+            "descripcion" => $this->text(),
+            "cantidad" => $this->string(),
+            "precio" => $this->decimal(10, 2),
+            "creado" => $this->timestamp()->append(" with time zone"),
+            "modificado" => $this->timestamp()->append(" with time zone"),
+            "eliminado" => $this->timestamp()->append(" with time zone"),
+        ]);
+
+        $this->addPrimaryKey('MermaPK', 'Merma', 'id');
+
+        $this->addForeignKey('MermaObraFK', 'Merma', 'idObra', 'Obra', 'id');
+        $this->addForeignKey('MermaUnidadMedidaFK', 'Merma', 'idUnidadMedida', 'UnidadMedida', 'id');
+        $this->addForeignKey('MermaPartidaFK', 'Merma', 'idPartida', 'Partida', 'id');
+        $this->addForeignKey('MermaUsuarioFK', 'Merma', 'idUsuario', 'Usuario', 'id');
+
+        $this->createTable('Nomina', [
+            "id" => $this->string(36),
+            "idEmpleado" => $this->string(36),
+            "idObra" => $this->string(36),
+            "idUsuario" => $this->string(36),
+            "montoPagado" => $this->decimal(10,2),
+            "descuento" => $this->decimal(10,2),
+            "creado" => $this->timestamp()->append(" with time zone"),
+            "fechaPago" => $this->timestamp()->append(" with time zone"),
+            "modificado" => $this->timestamp()->append(" with time zone"),
+            "eliminado" => $this->timestamp()->append(" with time zone"),
+        ]);
+
+        $this->addPrimaryKey('NominaPK', 'Nomina', 'id');
+
+        $this->addForeignKey('NominaObraFK', 'Nomina', 'idObra', 'Obra', 'id');
+        $this->addForeignKey('NominaEmpleadoFK', 'Nomina', 'idEmpleado', 'Empleado', 'id');
+        $this->addForeignKey('NominaUsuarioFK', 'Nomina', 'idUsuario', 'Usuario', 'id');
+
+    }
+
+    public function safeDown() {
+        $this->dropForeignKey('NominaObraFK', 'Nomina');
+        $this->dropForeignKey('NominaEmpleadoFK', 'Nomina');
+        $this->dropForeignKey('NominaUsuarioFK', 'Nomina');
+
+        $this->dropTable('Nomina');
+
+        $this->dropForeignKey('MermaObraFK', 'Merma');
+        $this->dropForeignKey('MermaUnidadMedidaFK', 'Merma');
+        $this->dropForeignKey('MermaPartidaFK', 'Merma');
+        $this->dropForeignKey('MermaUsuarioFK', 'Merma');
+
+        $this->dropTable('Merma');
+
+        $this->dropForeignKey('CompraProductoCompraFK', 'CompraProducto');
+        $this->dropForeignKey('CompraProductoMedidaFK', 'CompraProducto');
+        $this->dropForeignKey('CompraProductoPartidaFK', 'CompraProducto');
+
+        $this->dropTable('CompraProducto');
+
+        $this->dropForeignKey('CompraObraFK', 'Compra');
+        $this->dropForeignKey('CompraUsuarioFK', 'Compra');
+
+        $this->dropTable('Compra');
+    }
+}

+ 77 - 0
models/Compra.php

@@ -0,0 +1,77 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "Compra".
+ *
+ * @property string $id
+ * @property string|null $idObra
+ * @property string|null $idUsuario
+ * @property string|null $fechaCompra
+ * @property string|null $creado
+ * @property string|null $modificado
+ * @property string|null $eliminado
+ *
+ * @property CompraProducto[] $compraProductos
+ * @property Obra $idObra0
+ * @property Usuario $idUsuario0
+ */
+class Compra extends \yii\db\ActiveRecord
+{
+    /**
+     * {@inheritdoc}
+     */
+    public static function tableName()
+    {
+        return 'Compra';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rules()
+    {
+        return [
+            [['id'], 'required'],
+            [['fechaCompra', 'creado', 'modificado', 'eliminado'], 'safe'],
+            [['id', 'idObra', 'idUsuario'], 'string', 'max' => 36],
+            [['id'], 'unique'],
+            [['idObra'], 'exist', 'skipOnError' => true, 'targetClass' => Obra::class, 'targetAttribute' => ['idObra' => 'id']],
+            [['idUsuario'], 'exist', 'skipOnError' => true, 'targetClass' => Usuario::class, 'targetAttribute' => ['idUsuario' => 'id']],
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function attributeLabels()
+    {
+        return [
+            'id' => 'ID',
+            'idObra' => 'Id Obra',
+            'idUsuario' => 'Id Usuario',
+            'fechaCompra' => 'Fecha Compra',
+            'creado' => 'Creado',
+            'modificado' => 'Modificado',
+            'eliminado' => 'Eliminado',
+        ];
+    }
+
+    public function getCompraProducto()
+    {
+        return $this->hasMany(CompraProducto::class, ['idCompra' => 'id']);
+    }
+
+    public function getObra()
+    {
+        return $this->hasOne(Obra::class, ['id' => 'idObra']);
+    }
+
+    public function getUsuario()
+    {
+        return $this->hasOne(Usuario::class, ['id' => 'idUsuario']);
+    }
+}

+ 89 - 0
models/CompraProducto.php

@@ -0,0 +1,89 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "CompraProducto".
+ *
+ * @property string $id
+ * @property string|null $idCompra
+ * @property string|null $idUnidadMedida
+ * @property string|null $idPartida
+ * @property string|null $producto
+ * @property string|null $cantidad
+ * @property float|null $precio
+ * @property string|null $descripcion
+ * @property string|null $creado
+ * @property string|null $modificado
+ * @property string|null $eliminado
+ *
+ * @property Compra $idCompra0
+ * @property Partida $idPartida0
+ * @property UnidadMedida $idUnidadMedida0
+ */
+class CompraProducto extends \yii\db\ActiveRecord
+{
+    /**
+     * {@inheritdoc}
+     */
+    public static function tableName()
+    {
+        return 'CompraProducto';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rules()
+    {
+        return [
+            [['id'], 'required'],
+            [['precio'], 'number'],
+            [['descripcion'], 'string'],
+            [['creado', 'modificado', 'eliminado'], 'safe'],
+            [['id', 'idCompra', 'idUnidadMedida', 'idPartida'], 'string', 'max' => 36],
+            [['producto', 'cantidad'], 'string', 'max' => 255],
+            [['id'], 'unique'],
+            [['idCompra'], 'exist', 'skipOnError' => true, 'targetClass' => Compra::class, 'targetAttribute' => ['idCompra' => 'id']],
+            [['idPartida'], 'exist', 'skipOnError' => true, 'targetClass' => Partida::class, 'targetAttribute' => ['idPartida' => 'id']],
+            [['idUnidadMedida'], 'exist', 'skipOnError' => true, 'targetClass' => UnidadMedida::class, 'targetAttribute' => ['idUnidadMedida' => 'id']],
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function attributeLabels()
+    {
+        return [
+            'id' => 'ID',
+            'idCompra' => 'Id Compra',
+            'idUnidadMedida' => 'Id Unidad Medida',
+            'idPartida' => 'Id Partida',
+            'producto' => 'Producto',
+            'cantidad' => 'Cantidad',
+            'precio' => 'Precio',
+            'descripcion' => 'Descripcion',
+            'creado' => 'Creado',
+            'modificado' => 'Modificado',
+            'eliminado' => 'Eliminado',
+        ];
+    }
+
+    public function getCompra()
+    {
+        return $this->hasOne(Compra::class, ['id' => 'idCompra']);
+    }
+
+    public function getPartida()
+    {
+        return $this->hasOne(Partida::class, ['id' => 'idPartida']);
+    }
+
+    public function getUnidadMedida()
+    {
+        return $this->hasOne(UnidadMedida::class, ['id' => 'idUnidadMedida']);
+    }
+}

+ 98 - 0
models/Merma.php

@@ -0,0 +1,98 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "Merma".
+ *
+ * @property string $id
+ * @property string|null $idObra
+ * @property string|null $idUnidadMedida
+ * @property string|null $idPartida
+ * @property string|null $idUsuario
+ * @property string|null $producto
+ * @property string|null $descripcion
+ * @property string|null $cantidad
+ * @property float|null $precio
+ * @property string|null $creado
+ * @property string|null $modificado
+ * @property string|null $eliminado
+ *
+ * @property Obra $idObra0
+ * @property Partida $idPartida0
+ * @property UnidadMedida $idUnidadMedida0
+ * @property Usuario $idUsuario0
+ */
+class Merma extends ModeloBase
+{
+    /**
+     * {@inheritdoc}
+     */
+    public static function tableName()
+    {
+        return 'Merma';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rules()
+    {
+        return [
+            [['id'], 'required'],
+            [['descripcion'], 'string'],
+            [['precio'], 'number'],
+            [['creado', 'modificado', 'eliminado'], 'safe'],
+            [['id', 'idObra', 'idUnidadMedida', 'idPartida', 'idUsuario'], 'string', 'max' => 36],
+            [['producto', 'cantidad'], 'string', 'max' => 255],
+            [['id'], 'unique'],
+            [['idObra'], 'exist', 'skipOnError' => true, 'targetClass' => Obra::class, 'targetAttribute' => ['idObra' => 'id']],
+            [['idPartida'], 'exist', 'skipOnError' => true, 'targetClass' => Partida::class, 'targetAttribute' => ['idPartida' => 'id']],
+            [['idUnidadMedida'], 'exist', 'skipOnError' => true, 'targetClass' => UnidadMedida::class, 'targetAttribute' => ['idUnidadMedida' => 'id']],
+            [['idUsuario'], 'exist', 'skipOnError' => true, 'targetClass' => Usuario::class, 'targetAttribute' => ['idUsuario' => 'id']],
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function attributeLabels()
+    {
+        return [
+            'id' => 'ID',
+            'idObra' => 'Id Obra',
+            'idUnidadMedida' => 'Id Unidad Medida',
+            'idPartida' => 'Id Partida',
+            'idUsuario' => 'Id Usuario',
+            'producto' => 'Producto',
+            'descripcion' => 'Descripcion',
+            'cantidad' => 'Cantidad',
+            'precio' => 'Precio',
+            'creado' => 'Creado',
+            'modificado' => 'Modificado',
+            'eliminado' => 'Eliminado',
+        ];
+    }
+
+    public function getObra()
+    {
+        return $this->hasOne(Obra::class, ['id' => 'idObra']);
+    }
+
+    public function getPartida()
+    {
+        return $this->hasOne(Partida::class, ['id' => 'idPartida']);
+    }
+
+    public function getUnidadMedida()
+    {
+        return $this->hasOne(UnidadMedida::class, ['id' => 'idUnidadMedida']);
+    }
+
+    public function getUsuario()
+    {
+        return $this->hasOne(Usuario::class, ['id' => 'idUsuario']);
+    }
+}

+ 85 - 0
models/Nomina.php

@@ -0,0 +1,85 @@
+<?php
+
+namespace app\models;
+
+use Yii;
+
+/**
+ * This is the model class for table "Nomina".
+ *
+ * @property string $id
+ * @property string|null $idEmpleado
+ * @property string|null $idObra
+ * @property string|null $idUsuario
+ * @property float|null $montoPagado
+ * @property float|null $descuento
+ * @property string|null $creado
+ * @property string|null $fechaPago
+ * @property string|null $modificado
+ * @property string|null $eliminado
+ *
+ * @property Empleado $idEmpleado0
+ * @property Obra $idObra0
+ * @property Usuario $idUsuario0
+ */
+class Nomina extends ModeloBase
+{
+    /**
+     * {@inheritdoc}
+     */
+    public static function tableName()
+    {
+        return 'Nomina';
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function rules()
+    {
+        return [
+            [['id'], 'required'],
+            [['montoPagado', 'descuento'], 'number'],
+            [['creado', 'fechaPago', 'modificado', 'eliminado'], 'safe'],
+            [['id', 'idEmpleado', 'idObra', 'idUsuario'], 'string', 'max' => 36],
+            [['id'], 'unique'],
+            [['idEmpleado'], 'exist', 'skipOnError' => true, 'targetClass' => Empleado::class, 'targetAttribute' => ['idEmpleado' => 'id']],
+            [['idObra'], 'exist', 'skipOnError' => true, 'targetClass' => Obra::class, 'targetAttribute' => ['idObra' => 'id']],
+            [['idUsuario'], 'exist', 'skipOnError' => true, 'targetClass' => Usuario::class, 'targetAttribute' => ['idUsuario' => 'id']],
+        ];
+    }
+
+    /**
+     * {@inheritdoc}
+     */
+    public function attributeLabels()
+    {
+        return [
+            'id' => 'ID',
+            'idEmpleado' => 'Id Empleado',
+            'idObra' => 'Id Obra',
+            'idUsuario' => 'Id Usuario',
+            'montoPagado' => 'Monto Pagado',
+            'descuento' => 'Descuento',
+            'creado' => 'Creado',
+            'fechaPago' => 'Fecha Pago',
+            'modificado' => 'Modificado',
+            'eliminado' => 'Eliminado',
+        ];
+    }
+
+    public function getEmpleado()
+    {
+        return $this->hasOne(Empleado::class, ['id' => 'idEmpleado']);
+    }
+
+    public function getObra()
+    {
+        return $this->hasOne(Obra::class, ['id' => 'idObra']);
+    }
+
+    public function getUsuario()
+    {
+        return $this->hasOne(Usuario::class, ['id' => 'idUsuario']);
+    }
+}

+ 93 - 0
modules/v1/controllers/MermaController.php

@@ -0,0 +1,93 @@
+<?php
+
+namespace v1\controllers;
+
+use common\data\Respuesta;
+use common\rest\AuthController;
+use yii\db\Expression;
+
+class MermaController extends AuthController
+{
+
+  public $modelClass = "v1\models\Merma";
+
+  public function actionIndex()
+  {
+    $id = trim($this->req->get("id", ""));
+    $idObra = trim($this->req->get("idObra", ""));
+    $idPartida = trim($this->req->get("idPartida", ""));
+    $buscar = trim($this->req->get("q", ""));
+
+    $query = $this->queryInicial;
+
+
+    if ($id !== "") {
+      $query->andWhere(["id" => $id]);
+    }
+
+    if ($idObra !== "") {
+      $query->andWhere(["idObra" => $idObra]);
+    }
+
+    if ($idPartida !== "") {
+      $query->andWhere(["idPartida" => $idPartida]);
+    }
+
+    if($buscar !==""){
+      $query->andWhere(["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 Merma");
+    }
+
+    $modelo->refresh();
+    return (new Respuesta($modelo))
+      ->mensaje("Merma 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("Merma no encontrado");
+    }
+    $modelo->eliminado = new Expression('now()');
+    if (!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("No se pudo eliminar la Merma");
+    }
+
+    return (new Respuesta())
+      ->mensaje("Merma eliminada");
+  }
+}

+ 93 - 0
modules/v1/controllers/NominaController.php

@@ -0,0 +1,93 @@
+<?php
+
+namespace v1\controllers;
+
+use common\data\Respuesta;
+use common\rest\AuthController;
+use yii\db\Expression;
+
+class NominaController extends AuthController
+{
+
+  public $modelClass = "v1\models\Nomina";
+
+  public function actionIndex()
+  {
+    $id = trim($this->req->get("id", ""));
+    $idEmpleado = trim($this->req->get("idEmpleado", ""));
+    $idObra = trim($this->req->get("idObra", ""));
+    $buscar = trim($this->req->get("q", ""));
+
+    $query = $this->queryInicial;
+
+
+    if ($id !== "") {
+      $query->andWhere(["id" => $id]);
+    }
+    
+    if ($idEmpleado !== "") {
+        $query->andWhere(["idEmpleado" => $idEmpleado]);
+    }
+
+    if ($idObra !== "") {
+        $query->andWhere(["idObra" => $idObra]);
+    }
+
+    if($buscar !==""){
+      $query->andWhere(["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 Nomina");
+    }
+
+    $modelo->refresh();
+    return (new Respuesta($modelo))
+      ->mensaje("Nomina 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("Nomina no encontrado");
+    }
+    $modelo->eliminado = new Expression('now()');
+    if (!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("No se pudo eliminar la Nomina");
+    }
+
+    return (new Respuesta())
+      ->mensaje("Nomina eliminada");
+  }
+}

+ 44 - 0
modules/v1/models/Compra.php

@@ -0,0 +1,44 @@
+<?php
+
+namespace v1\models;
+
+use app\models\Compra as ModeloCompra;
+
+class Compra extends ModeloCompra
+{
+
+    public function fields()
+    {
+        return [
+            'id',
+            'idObra',
+            'idUsuario',
+            'fechaCompra',
+            'creado',
+            'modificado',
+
+        ];
+    }
+    public function extraFields() {
+        return [
+            'compraProducto',
+            'obra',
+            'usuario',
+        ];
+    }
+
+    public function getCompraProducto()
+    {
+        return $this->hasMany(CompraProducto::class, ['idCompra' => 'id']);
+    }
+
+    public function getObra()
+    {
+        return $this->hasOne(Obra::class, ['id' => 'idObra']);
+    }
+
+    public function getUsuario()
+    {
+        return $this->hasOne(Usuario::class, ['id' => 'idUsuario']);
+    }
+}

+ 48 - 0
modules/v1/models/CompraProducto.php

@@ -0,0 +1,48 @@
+<?php
+
+namespace v1\models;
+
+use app\models\CompraProducto as ModeloCompraProducto;
+
+class CompraProducto extends ModeloCompraProducto
+{
+
+    public function fields()
+    {
+        return [
+            'id',
+            'idCompra',
+            'idUnidadMedida',
+            'idPartida',
+            'producto',
+            'descripcion',
+            'cantidad',
+            'precio',
+            'creado',
+            'modificado',
+
+        ];
+    }
+    public function extraFields() {
+        return [
+            'compra',
+            'partida',
+            'unidadMedida',
+        ];
+    }
+
+    public function getCompra()
+    {
+        return $this->hasOne(Compra::class, ['id' => 'idCompra']);
+    }
+
+    public function getPartida()
+    {
+        return $this->hasOne(Partida::class, ['id' => 'idPartida']);
+    }
+
+    public function getUnidadMedida()
+    {
+        return $this->hasOne(UnidadMedida::class, ['id' => 'idUnidadMedida']);
+    }
+}

+ 55 - 0
modules/v1/models/Merma.php

@@ -0,0 +1,55 @@
+<?php
+
+namespace v1\models;
+
+use app\models\Merma as ModeloMerma;
+
+class Merma extends ModeloMerma
+{
+
+    public function fields()
+    {
+        return [
+            'id',
+            'idObra',
+            'idUnidadMedida',
+            'idPartida',
+            'idUsuario',
+            'producto',
+            'descripcion',
+            'cantidad',
+            'precio',
+            'creado',
+            'modificado',
+
+        ];
+    }
+    public function extraFields() {
+        return [
+            'obra',
+            'partida',
+            'unidadMedida',
+            'usuario',
+        ];
+    }
+
+    public function getObra()
+    {
+        return $this->hasOne(Obra::class, ['id' => 'idObra']);
+    }
+
+    public function getPartida()
+    {
+        return $this->hasOne(Partida::class, ['id' => 'idPartida']);
+    }
+
+    public function getUnidadMedida()
+    {
+        return $this->hasOne(UnidadMedida::class, ['id' => 'idUnidadMedida']);
+    }
+
+    public function getUsuario()
+    {
+        return $this->hasOne(Usuario::class, ['id' => 'idUsuario']);
+    }
+}

+ 47 - 0
modules/v1/models/Nomina.php

@@ -0,0 +1,47 @@
+<?php
+
+namespace v1\models;
+
+use app\models\Nomina as ModeloNomina;
+
+class Nomina extends ModeloNomina
+{
+
+    public function fields()
+    {
+        return [
+            'id',
+            'idEmpleado',
+            'idObra',
+            'idUsuario',
+            'montoPagado',
+            'descuento',
+            'fechaPago',
+            'creado',
+            'modificado',
+
+        ];
+    }
+    public function extraFields() {
+        return [
+            'obra',
+            'empleado',
+            'usuario',
+        ];
+    }
+
+    public function getEmpleado()
+    {
+        return $this->hasOne(Empleado::class, ['id' => 'idEmpleado']);
+    }
+
+    public function getObra()
+    {
+        return $this->hasOne(Obra::class, ['id' => 'idObra']);
+    }
+
+    public function getUsuario()
+    {
+        return $this->hasOne(Usuario::class, ['id' => 'idUsuario']);
+    }
+}