94 Commits 954be71929 ... 5cb1bf8ba7

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

+ 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',