94 Commits 954be71929 ... 5cb1bf8ba7

Author SHA1 Message Date
  Jogibeda 5cb1bf8ba7 Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api 6 months ago
  Jogibeda 6b7f5f7991 controladores de guardado en empleados y herramientas 6 months ago
  Jogibeda 1bd1099aea Arreglo de los exceles, nueva migracion para obra rubro con descuento 6 months ago
  Jogibeda 7cdfcc2608 Arreglo de los exceles y su informacion 6 months ago
  Jogibeda 4074228105 Cambio de nombre al archivo 6 months ago
  Jogibeda 6c78c8555f Cambio de los exceles 6 months ago
  Jogibeda 9bfec61e3b General excel 6 months ago
  Jogibeda 5c6a3c6662 Exceles agregados 6 months ago
  Jogibeda ac45b309d5 Arreglo de buscadores 6 months ago
  Jogibeda 551282a100 Arreglo de buscadores como el quitar el not null en empleado 6 months ago
  Jogibeda a0c3b450f5 Agregado el el joinWith en obra Rubro 7 months ago
  Isaac Noriega aa7b9d9783 correcion al obra rubro 7 months ago
  Jogibeda a8738d78a8 Agregado saldo, ejercido, ejercer 7 months ago
  Isaac Noriega d802f0551f Merge branch 'master' of git.miralo.xyz:eDesarrollos/servicio-autos-api 7 months ago
  Isaac Noriega b88dbf3f09 Agregado obrarubro 7 months ago
  Jogibeda 032e9b3fb6 Arreglo de la funcion de nomina, toma en cuenta el descuento 7 months ago
  Jogibeda 47c1e28dc3 Arreglo de buscadores y agregado las funciones de total de gastos, pagos, nominas, en obras 7 months ago
  Jogibeda ba79bb6329 Mensaje arreglado de incidente 7 months ago
  Jogibeda 425a4c7ae7 Arreglo de buscadores 7 months ago
  Jogibeda b13933dcc5 Buscador de fechas 7 months ago
  Jogibeda 3041e93046 Agregado las fechas en nomina, un buscador en obra para gasto, pago y nomina 7 months ago
  Jogibeda a07ebf2ebe agregado el crud gasto y pago, modificacion de concepto obras 7 months ago
  Jogibeda 2f31e8e993 migrate de las tablas gasto, pago 7 months ago
  Jogibeda 3285f76dff creacion del crud concepto obra, como tambien cambiar las reglas de descripcion en la tabla en incidente 7 months ago
  Jogibeda dd66c8cd52 Agregado el id usuario en incidentes 8 months ago
  Jose Cienfuegos fdb7fced1a Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api 8 months ago
  Jose Cienfuegos c15c27265c Se agregaron tablas merma, compra, compra producto, nomina 8 months ago
  Jogibeda 5e79989cc1 Creacion de la migracion para cambiar los datos de Unidad de medida y Partida con posibilidad de nulos 8 months ago
  Jogibeda 62e0d47d1c Agregado Modulos y Controlador de Permisos, como su migracion 8 months ago
  Jogibeda 7b12a5ca80 busqueda por nombre de Unidad de medida 8 months ago
  Jogibeda 4f517bcd48 Controladores y modelos de Partida y Unidad de medida, incluido su migracion 8 months ago
  Jogibeda d473f33957 Creacion de la migracion de modulo junto con modelos y controladores 8 months ago
  Jogibeda 887693fea3 Actualizacion de la obtencion de herramientas 8 months ago
  Jogibeda 5fae08e11c Agregado descripcion en inventario herramienta y guardado de lista de herramientas como empleados en obras 8 months ago
  acampillo 0d5c27efe6 corrección de migraciones 8 months ago
  Jogibeda b9131defac Ajuste condicional de existentes en placas y serie en Vehiculos 8 months ago
  Jogibeda ab2583fed1 Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api 8 months ago
  Jogibeda 313b56f5a1 Ajuste condicional de existentes en placas y serie en Vehiculos 8 months ago
  Jose Cienfuegos cf63d9f166 Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api 8 months ago
  Jose Cienfuegos a99fbd2059 Se agrego logo de edesarrollos 8 months ago
  Jose Cienfuegos 3cc01ee094 Se agrego excel y pdf 8 months ago
  Jose Cienfuegos fb5287a865 Se agrego PDF y excel de herramienta inventario 8 months ago
  Jogibeda b17a03cf0d Modificacion de los controladores donde hay una condicional donde clave no se repita 8 months ago
  Jogibeda 5430023d70 Condicional de que no se repita placas y num de serie 9 months ago
  Jose Cienfuegos 6ffd59f36e Se corrigio actionEliminar en ObraEmpleadoController 9 months ago
  Jose Cienfuegos 9b93be61a4 Se corrigio el actioGuardar para la relacion de Servicios 9 months ago
  Jose Cienfuegos eee897e49c Se agrego campo nombre en el modelo ServicioTipoServicio 9 months ago
  Jose Cienfuegos b774601b84 Se corrigio guardado de tipos de servicios en Servicio 9 months ago
  Jose Cienfuegos 69e313c435 Se agrego controladores para obra herramienta y obra empleado 9 months ago
  Jose Cienfuegos 754b172f78 Se actualizo controlador de Servicio ademas se agrego tabla ServicioTipoServicio 9 months ago
  Jogibeda 913ddd11d8 Herramienta Inventario modulo 9 months ago
  Jose Cienfuegos 33372b76af Se corrigio media de vehiculo 9 months ago
  Jose Cienfuegos 53e10e3b82 Se corrigioi guaradao en ObraController 9 months ago
  Jose Cienfuegos fe1a264f49 Merge branch 'master' of https://git.miralo.xyz/eDesarrollos/servicio-autos-api 9 months ago
  Jose Cienfuegos 61c5aaea89 Se corrigio modelos ObraEmpleado y ObraHerramienta 9 months ago
  Jose Cienfuegos 34416040ed Se corrigio duplicado de cantidad en ObraController 9 months ago
  Jose Cienfuegos fbcb49d27f Se agregaron modulos ObraHerramienta yu ObraEmpleado 9 months ago
  Jose Cienfuegos 0ceb948904 Se corrigio sintaxis 9 months ago
  Jose Cienfuegos 7abf484a2b Se corrigio el actionGuardar en MediaController 9 months ago
  Jose Cienfuegos accbcae871 Se agregaron columnas a tabla media 9 months ago
  Jose Cienfuegos 163cadbd2e Se cambioi de activeRecord a Modelobase 9 months ago
  Jose Cienfuegos c32a3d7912 Se quito extension de mopdelos de media 9 months ago
  Jose Cienfuegos bad0667b47 Se quito la s en getMediaVehiculo 9 months ago
  Jose Cienfuegos e59a10fdb1 Se Corrigio el apuntado de servicio a media vehiculo 9 months ago
  Jose Cienfuegos ccf19f864a Se agrego getMedia a vehiculos 9 months ago
  Jose Cienfuegos 955b5e6c09 Se corrigio modelos de vehiculo y MediaVehiculo 9 months ago
  Jose Cienfuegos 210302b5fc Se agrego tabla MediaVehiculo para guardar archivos e imagenes 9 months ago
  Jogibeda 22746469e4 Agregado el campo de clave en obra, como su funcionamiento 9 months ago
  Jogibeda 46795ded34 Mensaje de error si la clave ya existe en controladores Color, Marca, TipoAuto, TipoHerramienta, TipoServicio 9 months ago
  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 9 months ago
  Jogibeda 3210003bab Arreglo de buscador de HerramientaObra 9 months ago
  Jogibeda 741b84d115 descripcion actualizada de Obra, TipoAuto y Marca 9 months ago
  Jogibeda 7345333c55 agregacion de la migracion para tabla de color 9 months ago
  Jogibeda a35d3c83c0 creacion y actualizacion en migraciones 9 months ago
  Jogibeda f91f600e10 Modulo Empleado creado 10 months ago
  Jogibeda 80c2f441c4 cambio de tipo de dato en costo 10 months ago
  Jogibeda 7b27d72049 Modulos de Tipo herramienta y herramienta 10 months ago
  Jogibeda dc7243d444 filtrado de vehiculos 10 months ago
  Jogibeda 696934327c Modulo de color funcionando 10 months ago
  Jogibeda 29d13d9008 Modulos de Marca de auto y tipo de autos en funcionamiento 10 months ago
  Jose Cienfuegos 03898ad7ba Se corrigio migracion 10 months ago
  Jose Cienfuegos 00ce3a564e Se agrego tabla TipoServicio modelos y controlador 10 months ago
  Jose Cienfuegos e8dcda6282 Se corrigio id entero en VehiculoController 10 months ago
  Jose Cienfuegos 1b8ad9a86a Se cambio de intval a trim en el id de TallerController 10 months ago
  Jogibeda 3e21b4d5ae Actualizacion de modelo Vehiculo 10 months ago
  Jose Cienfuegos 2f61fdd4e0 Se agregaron columnas marca y descripcion en tabla vehiculo en migracion 10 months ago
  Jose Cienfuegos 96558aef75 Se agrego migracion para agregar columna tipo en tabla vehiculo 10 months ago
  Jose Cienfuegos f052a6dea5 Se agregaron tablas Servicio y ServicioElemento 10 months ago
  Jose Cienfuegos d5ecb12c60 Se se agrego crud de Vehiculo 10 months ago
  Jose Cienfuegos 3e8b635d2d se agrego migracion para tablas taller y vehiculo 10 months ago
  Jose Cienfuegos 05d83fdcdf Se agrego Crud Taller 10 months ago
  Jose Cienfuegos 05ac1d1276 Se hizo CRUD de Taller, se agregaron tablas Taller y Vehiculo 10 months ago
  Jose Cienfuegos cb93fe4bf0 Se agrego db a ignore 10 months ago
  Jose Cienfuegos ad7ebed873 se 10 months ago

+ 41 - 0
migrations/m241123_013948_Actualizar_Rubro.php

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

+ 2 - 1
models/ObraRubro.php

@@ -34,7 +34,7 @@ class ObraRubro extends ModeloBase {
   public function rules() {
   public function rules() {
     return [
     return [
       [['id'], 'required'],
       [['id'], 'required'],
-      [['cantidad'], 'number'],
+      [['cantidad', 'descuento'], 'number'],
       [['fechaCompra', 'creado', 'modificado', 'eliminado'], 'safe'],
       [['fechaCompra', 'creado', 'modificado', 'eliminado'], 'safe'],
       [['id', 'idObra', 'idConceptoObra'], 'string', 'max' => 36],
       [['id', 'idObra', 'idConceptoObra'], 'string', 'max' => 36],
       [['descripcion'], 'string', 'max' => 550],
       [['descripcion'], 'string', 'max' => 550],
@@ -54,6 +54,7 @@ class ObraRubro extends ModeloBase {
       'idConceptoObra' => 'Id Concepto Obra',
       'idConceptoObra' => 'Id Concepto Obra',
       'cantidad' => 'Cantidad',
       'cantidad' => 'Cantidad',
       'descripcion' => 'Descripcion',
       'descripcion' => 'Descripcion',
+      'descuento' => 'Descuento',
       'fechaCompra' => 'Fecha Compra',
       'fechaCompra' => 'Fecha Compra',
       'creado' => 'Creado',
       'creado' => 'Creado',
       'modificado' => 'Modificado',
       'modificado' => 'Modificado',

+ 5 - 4
modules/excel/controllers/ObraController.php

@@ -243,8 +243,8 @@ class ObraController extends Controller
     $totalNomina = $totalesController->actionTotalNomina($idObra);
     $totalNomina = $totalesController->actionTotalNomina($idObra);
     $totalRubro = $totalesController->actionTotalRubro($idObra);
     $totalRubro = $totalesController->actionTotalRubro($idObra);
     $saldo = $totalesController->actionSaldo($totalGasto, $totalNomina, $totalPago);
     $saldo = $totalesController->actionSaldo($totalGasto, $totalNomina, $totalPago);
-    $ejercidoObra = $totalesController->actionEjercidoObra($totalGasto, $totalRubro);
-    $ejercer = $totalesController->actionEjercer($totalRubro, $totalPago);
+    $ejercer = $totalesController->actionEjercer($totalGasto,$totalNomina,$totalRubro );
+    $ejercidoObra = $totalesController->actionEjercidoObra($ejercer, $totalRubro);
 
 
     $startRowTotales = max($rEmpleado, $rHerramienta) + 2;
     $startRowTotales = max($rEmpleado, $rHerramienta) + 2;
 
 
@@ -321,9 +321,8 @@ class ObraController extends Controller
         "estiloCondicional" => $estiloCondicional,
         "estiloCondicional" => $estiloCondicional,
       ],
       ],
       "F{$datos}" => [
       "F{$datos}" => [
-        "valor" => $ejercidoObra,
+        "valor" => "$ejercidoObra%",
         "estilo" => $estiloCeldaIzquierda,
         "estilo" => $estiloCeldaIzquierda,
-        "formato" => "#,##0.00%",
         "estiloCondicional" => $estiloCondicional,
         "estiloCondicional" => $estiloCondicional,
       ],
       ],
       "G{$datos}" => [
       "G{$datos}" => [
@@ -633,6 +632,8 @@ class ObraController extends Controller
     $this->anchoColumnas($anchoColumnas);
     $this->anchoColumnas($anchoColumnas);
 
 
 
 
+    $spreadsheet= new Spreadsheet;
+    $this->activeSheet = $this->spreadsheet->getActiveSheet(0);
 
 
     $documento = $this->obtenerHojaDeCalculo();
     $documento = $this->obtenerHojaDeCalculo();
     $this->crear($documento,  "Obra_" . date("YmdHis"), self::TIPO_EXCEL);
     $this->crear($documento,  "Obra_" . date("YmdHis"), self::TIPO_EXCEL);

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

@@ -77,24 +77,7 @@ class ObraController extends AuthController {
           ->mensaje("Hubo un problema al guardar la obra");
           ->mensaje("Hubo un problema al guardar la obra");
       }
       }
 
 
-      ObraEmpleado::deleteAll(['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 (!$obraEmpleado->save()) {
-            $transaccion->rollBack();
-            return (new Respuesta($obraEmpleado))
-              ->mensaje("Hubo un problema al guardar el Empleado con ID {$empleado['id']}");
-          }
-        } else {
-          Yii::error('Falta el id del empleado o está vacío en el array', ['item' => $empleado]);
-        }
-      }
+     
 
 
       ObraHerramienta::deleteAll(['idObra' => $modelo->id]);
       ObraHerramienta::deleteAll(['idObra' => $modelo->id]);
 
 
@@ -205,15 +188,21 @@ class ObraController extends AuthController {
 public function actionTotalRubro($id){
 public function actionTotalRubro($id){
   try {
   try {
   $TotalRubro= 0;
   $TotalRubro= 0;
-  $q=(new Query())->select(['{{ObraRubro}}.[[cantidad]]'])
+  $q=(new Query())->select(['{{ObraRubro}}.[[cantidad]]', '{{ObraRubro}}.[[descuento]]'])
   ->from('ObraRubro') 
   ->from('ObraRubro') 
   ->rightJoin('Obra', '{{Obra}}.[[id]] = {{ObraRubro}}.[[idObra]]') 
   ->rightJoin('Obra', '{{Obra}}.[[id]] = {{ObraRubro}}.[[idObra]]') 
   ->andWhere(['{{ObraRubro}}.[[idObra]]' => $id]) 
   ->andWhere(['{{ObraRubro}}.[[idObra]]' => $id]) 
   ->andWhere(['{{ObraRubro}}.[[eliminado]]'=>null])
   ->andWhere(['{{ObraRubro}}.[[eliminado]]'=>null])
-  ->column();
-  foreach($q as $cantidad){
-    $TotalRubro=$TotalRubro+$cantidad;
-  }
+  ->all();
+  foreach ($q as $rubro) {
+    $cantidad = $rubro['cantidad'];
+    $descuento = $rubro['descuento'] ?? 0; 
+
+    $cantidadConDescuento = $cantidad * (1 - $descuento / 100);
+
+    // Suma al total
+    $TotalRubro += $cantidadConDescuento;
+}
   return $TotalRubro;
   return $TotalRubro;
 } catch (\Exception $e) {
 } catch (\Exception $e) {
   Yii::error("Error en actionRubro: " . $e->getMessage());
   Yii::error("Error en actionRubro: " . $e->getMessage());
@@ -233,9 +222,15 @@ public function actionSaldo($gasto, $nomina, $pago){
  } 
  } 
 }
 }
 
 
-public function actionEjercidoObra($gasto, $rubro){
+public function actionEjercidoObra($ejercer, $rubro){
   try{
   try{
-    $TotalEjercido = ($rubro != 0) ? ($gasto * 100) / $rubro : 0;
+    if (($ejercer - $rubro) != 0) {
+      $TotalEjercido = ($rubro / ($ejercer - $rubro)) * 100;
+      $TotalEjercido = round($TotalEjercido, 2);
+
+  } else {
+      $TotalEjercido = 0; // Evita dividir por cero
+  }
 
 
    return $TotalEjercido; 
    return $TotalEjercido; 
  
  
@@ -244,9 +239,9 @@ public function actionEjercidoObra($gasto, $rubro){
    return ['error' => 'Error al calcular el Ejercido. Verifique el log para más detalles.'];
    return ['error' => 'Error al calcular el Ejercido. Verifique el log para más detalles.'];
   } 
   } 
  }
  }
- public function actionEjercer($rubro, $pago){
+ public function actionEjercer($gasto, $nomina, $rubro){
   try{
   try{
-   $TotalEjercer=$rubro-$pago;
+   $TotalEjercer=($gasto+$nomina)-$rubro;
    return $TotalEjercer; 
    return $TotalEjercer; 
  
  
   }catch(\Exception $e){
   }catch(\Exception $e){

+ 40 - 0
modules/v1/controllers/ObraEmpleadoController.php

@@ -31,6 +31,46 @@ class ObraEmpleadoController extends AuthController {
 
 
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
   }
   }
+  public function actionGuardar()
+  {
+    $id = trim($this->req->getBodyParam("id", ""));
+    $modelo = null;
+    $nombre = $this->req->getBodyParam("idEmpleado", "");
+
+    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(), '');
+
+   
+    $registroExistente = $this->modelClass::find()
+    ->where(['idEmpleado' => $nombre])
+    ->andWhere(['!=', 'id', $id]) 
+    ->andWhere(['eliminado'=>null])// Excluir el registro actual en caso de edición
+    ->one();    
+    
+    if ($registroExistente !== null) {
+      return (new Respuesta($modelo))
+         ->esError()
+          ->mensaje("El Empleado ya existe. Por favor, ingrese un Empleado diferente.");
+  }
+
+    if (!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("Hubo un problema al guardar el Empleado");
+    }
+
+    $modelo->refresh();
+    return (new Respuesta($modelo))
+      ->mensaje("Gasto guardado");
+  }
 
 
   public function actionEliminar() {
   public function actionEliminar() {
     $id = trim($this->req->getBodyParam("id", ""));
     $id = trim($this->req->getBodyParam("id", ""));

+ 40 - 0
modules/v1/controllers/ObraHerramientaController.php

@@ -31,6 +31,46 @@ class ObraHerramientaController extends AuthController {
 
 
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
     return new Respuesta($query, $this->limite, $this->pagina, $this->ordenar);
   }
   }
+  public function actionGuardar()
+  {
+    $id = trim($this->req->getBodyParam("id", ""));
+    $modelo = null;
+    $nombre = $this->req->getBodyParam("idHerramienta", "");
+
+    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(), '');
+    
+    $registroExistente = $this->modelClass::find()
+    ->where(['idHerramienta' => $nombre])
+    ->andWhere(['!=', 'id', $id]) 
+    ->andWhere(['eliminado'=>null])// Excluir el registro actual en caso de edición
+    ->one();    
+    
+    if ($registroExistente !== null) {
+      return (new Respuesta($modelo))
+         ->esError()
+          ->mensaje("La Herramienta ya existe. Por favor, ingrese una Herramienta diferente.");
+  }
+    if (!$modelo->save()) {
+      return (new Respuesta($modelo))
+        ->mensaje("Hubo un problema al guardar el Gasto");
+    }
+
+    $modelo->refresh();
+    return (new Respuesta($modelo))
+      ->mensaje("Gasto guardado");
+  }
 
 
   public function actionEliminar() {
   public function actionEliminar() {
     $id = trim($this->req->getBodyParam("id", ""));
     $id = trim($this->req->getBodyParam("id", ""));

+ 0 - 1
modules/v1/controllers/ObraRubroController.php

@@ -16,7 +16,6 @@ class ObraRubroController extends AuthController {
 		$idObra=trim($this->req->get("idObra",""));
 		$idObra=trim($this->req->get("idObra",""));
 
 
 		$query = $this->queryInicial;
 		$query = $this->queryInicial;
-		$query->joinWith("conceptoObra");
 		if ($id !== "") {
 		if ($id !== "") {
 			$query->andWhere(["id" => $id]);
 			$query->andWhere(["id" => $id]);
 		}
 		}

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

@@ -12,6 +12,7 @@ class ObraRubro extends ModeloObraRubro {
 			'idObra',
 			'idObra',
 			'idConceptoObra',
 			'idConceptoObra',
 			'cantidad',
 			'cantidad',
+			'descuento',
 			'descripcion',
 			'descripcion',
 			'fechaCompra',
 			'fechaCompra',
 			'creado',
 			'creado',