Procházet zdrojové kódy

Arreglo de buscadores y agregado las funciones de total de gastos, pagos, nominas, en obras

Jogibeda před 6 měsíci
rodič
revize
47c1e28dc3

+ 42 - 0
migrations/m241017_225646_Eliminar_notnull_en_Servicio.php

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

+ 42 - 0
migrations/m241018_203210_campo_descripcion_Nomina.php

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

+ 2 - 0
models/Nomina.php

@@ -42,6 +42,7 @@ class Nomina extends ModeloBase
             [['montoPagado', 'descuento'], 'number'],
             [['creado', 'fechaInicio','fechaFin', 'modificado', 'eliminado'], 'safe'],
             [['id', 'idEmpleado', 'idObra', 'idUsuario'], 'string', 'max' => 36],
+            [['descripcion'], 'string', 'max' => 300],
             [['id'], 'unique'],
             [['idEmpleado'], 'exist', 'skipOnError' => true, 'targetClass' => Empleado::class, 'targetAttribute' => ['idEmpleado' => 'id']],
             [['idObra'], 'exist', 'skipOnError' => true, 'targetClass' => Obra::class, 'targetAttribute' => ['idObra' => 'id']],
@@ -64,6 +65,7 @@ class Nomina extends ModeloBase
             'fechaInicio'=>'fecha Inicio',
             'fechaFin'=>'fecha Fin',
             'creado' => 'Creado',
+            'descriocion' => 'Descripcion',
             'fechaPago' => 'Fecha Pago',
             'modificado' => 'Modificado',
             'eliminado' => 'Eliminado',

+ 0 - 1
models/Servicio.php

@@ -48,7 +48,6 @@ class Servicio extends ModeloBase
             [['id'], 'unique'],
             [['idTaller'], 'exist', 'skipOnError' => true, 'targetClass' => Taller::class, 'targetAttribute' => ['idTaller' => 'id']],
             [['idVehiculo'], 'exist', 'skipOnError' => true, 'targetClass' => Vehiculo::class, 'targetAttribute' => ['idVehiculo' => 'id']],
-            [['idTipo'], 'exist', 'skipOnError' => true, 'targetClass' => TipoServicio::class, 'targetAttribute' => ['idTipo' => 'id']],
         ];
     }
 

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

@@ -33,7 +33,7 @@ class IncidenteController extends AuthController {
 
       $query->andWhere([
         "OR",
-        ["ilike", "nombre", $buscar]
+        ["iLike", "nombre", $buscar]
       ]);
     }
 

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

@@ -34,7 +34,7 @@ class MermaController extends AuthController
     }
 
     if($buscar !==""){
-      $query->andWhere(["producto"=>$buscar]);
+      $query->andWhere(['iLike',"producto",$buscar]);
     }
 
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);

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

@@ -15,7 +15,7 @@ class NominaController extends AuthController
   {
     $id = trim($this->req->get("id", ""));
     $idEmpleado = trim($this->req->get("empleado", ""));
-    $idObra = trim($this->req->get("obra", ""));
+    $idObra = trim($this->req->get("idObra", ""));
     $buscar = trim($this->req->get("q", ""));
 
     $query = $this->queryInicial;

+ 45 - 1
modules/v1/controllers/ObraController.php

@@ -6,9 +6,10 @@ use app\models\ObraEmpleado;
 use app\models\ObraHerramienta;
 use common\data\Respuesta;
 use common\rest\AuthController;
+use Mpdf\Tag\Select;
 use Yii;
 use yii\db\Expression;
-
+use yii\db\Query;
 class ObraController extends AuthController {
 
   public $modelClass = "v1\models\Obra";
@@ -147,4 +148,47 @@ class ObraController extends AuthController {
     return (new Respuesta())
       ->mensaje("Obra eliminada");
   }
+
+  public function actionTotalGasto($id){
+    $TotalGasto=0;
+    $q=(new Query())->select(['{{Gasto}}.[[cantidad]]'])
+    ->from('Gasto') 
+    ->innerJoin('Obra', '{{Obra}}.[[id]] = {{Gasto}}.[[idObra]]') 
+    ->andWhere(['{{Gasto}}.[[idObra]]' => $id]) 
+    ->andWhere(['{{Gasto}}.[[eliminado]]'=>null]) 
+    ->column();
+    
+    foreach($q as $cantidad){
+      $TotalGasto=$TotalGasto+$cantidad;
+    }
+    return $TotalGasto;
+  }
+
+  public function actionTotalPago($id){
+    $TotalPago= 0;
+    $q=(new Query())->select(['{{Pago}}.[[cantidad]]'])
+    ->from('Pago') 
+    ->innerJoin('Obra', '{{Obra}}.[[id]] = {{Pago}}.[[idObra]]') 
+    ->andWhere(['{{Pago}}.[[idObra]]' => $id]) 
+    ->andWhere(['{{Pago}}.[[eliminado]]'=>null]) 
+    ->column();
+    foreach($q as $cantidad){
+      $TotalPago=$TotalPago+$cantidad;
+    }
+    return $TotalPago;
+  }
+
+  public function actionTotalNomina($id){
+    $TotalNomina= 0;
+    $q=(new Query())->select(['{{Nomina}}.[[montoPagado]]'])
+    ->from('Nomina') 
+    ->innerJoin('Obra', '{{Obra}}.[[id]] = {{Nomina}}.[[idObra]]') 
+    ->andWhere(['{{Nomina}}.[[idObra]]' => $id]) 
+    ->andWhere(['{{Nomina}}.[[eliminado]]'=>null]) 
+    ->column();
+    foreach($q as $cantidad){
+      $TotalNomina=$TotalNomina+$cantidad;
+    }
+    return $TotalNomina;
+  }
 }

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

@@ -21,25 +21,25 @@ class ServicioController extends AuthController {
     $inicio = trim($this->req->get("inicio", ""));
     $fin = trim($this->req->get("fin", ""));
     $query = $this->queryInicial
-      ->innerJoin("Vehiculo", "{{Vehiculo}}.id = {{Servicio}}.[[idVehiculo]]")
-      ->innerJoin("Marca", "{{Marca}}.id = {{Vehiculo}}.[[idMarca]]")
-      ->innerJoin("Taller", "{{Taller}}.id = {{Servicio}}.[[idTaller]]");
+      ->leftJoin("Vehiculo", "{{Vehiculo}}.[[id]] = {{Servicio}}.[[idVehiculo]]")
+      ->leftJoin("Marca", "{{Marca}}.[[id]] = {{Vehiculo}}.[[idMarca]]")
+      ->leftJoin("Taller", "{{Taller}}.[[id]] = {{Servicio}}.[[idTaller]]");
 
 
     if ($id !== "") {
-      $query->andWhere(["{{Servicio}}.id" => $id]);
+      $query->andWhere(["{{Servicio}}.[[id]]" => $id]);
     }
 
     if ($taller !== "") {
-      $query->andWhere(["{{Taller}}.id" => $taller]);
+      $query->andWhere(["{{Taller}}.[[id]]" => $taller]);
     }
 
     if ($marca !== "") {
-      $query->andWhere(["{{Marca}}.id" => $marca]);
+      $query->andWhere(["{{Marca}}.[[id]]" => $marca]);
     }
 
     if ($vehiculo !== "") {
-      $query->andWhere(["{{Vehiculo}}.id" => $vehiculo]);
+      $query->andWhere(["{{Vehiculo}}.[[id]]" => $vehiculo]);
     }
     /* if($marca !== "") {
       $query->andWhere(["{{Marca}}.id" => $marca]);
@@ -87,19 +87,15 @@ class ServicioController extends AuthController {
 
       foreach ($tipoServicio as $tipoServicioItem) {
 
-        $tipoServicios = ServicioTipoServicio::findOne([
-          'idServicio' => $modelo->id,
-          'idTipoServicio' => $tipoServicioItem['idTipoServicio']
-        ]);
-
-        if ($tipoServicios === null) {
+       
+        if ($tipoServicioItem === null) {
           $tipoServicios = new ServicioTipoServicio();
           $tipoServicios->uuid();
           $tipoServicios->idServicio = $modelo->id;
           $tipoServicios->idTipoServicio = $tipoServicioItem['idTipoServicio'];
           $tipoServicios->creado = new Expression('now()');
         } else {
-          $tipoServicios->modificado = new Expression('now()');
+          $tipoServicioItem->modificado = new Expression('now()');
         }
 
         $tipoServicios->nombre = $tipoServicioItem['nombre'];

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

@@ -18,6 +18,7 @@ class Nomina extends ModeloNomina
             'descuento',
             'fechaInicio',
             'fechaFin',
+            'descripcion',
             'creado',
             'modificado',
 

+ 1 - 1
modules/v1/models/Vehiculo.php

@@ -28,7 +28,7 @@ class Vehiculo extends ModeloVehiculo {
     return [
       'marca',
       'color',
-      'tipoAuto',
+      'tipo',
       'media',
       'mediaVehiculo',
     ];