94 Commits 954be71929 ... 5cb1bf8ba7

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

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

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

@@ -243,8 +243,8 @@ class ObraController extends Controller
     $totalNomina = $totalesController->actionTotalNomina($idObra);
     $totalRubro = $totalesController->actionTotalRubro($idObra);
     $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;
 
@@ -321,9 +321,8 @@ class ObraController extends Controller
         "estiloCondicional" => $estiloCondicional,
       ],
       "F{$datos}" => [
-        "valor" => $ejercidoObra,
+        "valor" => "$ejercidoObra%",
         "estilo" => $estiloCeldaIzquierda,
-        "formato" => "#,##0.00%",
         "estiloCondicional" => $estiloCondicional,
       ],
       "G{$datos}" => [
@@ -633,6 +632,8 @@ class ObraController extends Controller
     $this->anchoColumnas($anchoColumnas);
 
 
+    $spreadsheet= new Spreadsheet;
+    $this->activeSheet = $this->spreadsheet->getActiveSheet(0);
 
     $documento = $this->obtenerHojaDeCalculo();
     $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");
       }
 
-      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]);
 
@@ -205,15 +188,21 @@ class ObraController extends AuthController {
 public function actionTotalRubro($id){
   try {
   $TotalRubro= 0;
-  $q=(new Query())->select(['{{ObraRubro}}.[[cantidad]]'])
+  $q=(new Query())->select(['{{ObraRubro}}.[[cantidad]]', '{{ObraRubro}}.[[descuento]]'])
   ->from('ObraRubro') 
   ->rightJoin('Obra', '{{Obra}}.[[id]] = {{ObraRubro}}.[[idObra]]') 
   ->andWhere(['{{ObraRubro}}.[[idObra]]' => $id]) 
   ->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;
 } catch (\Exception $e) {
   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{
-    $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; 
  
@@ -244,9 +239,9 @@ public function actionEjercidoObra($gasto, $rubro){
    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{
-   $TotalEjercer=$rubro-$pago;
+   $TotalEjercer=($gasto+$nomina)-$rubro;
    return $TotalEjercer; 
  
   }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);
   }
+  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() {
     $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);
   }
+  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() {
     $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",""));
 
 		$query = $this->queryInicial;
-		$query->joinWith("conceptoObra");
 		if ($id !== "") {
 			$query->andWhere(["id" => $id]);
 		}

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

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