94 Ревизии 954be71929 ... 5cb1bf8ba7

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

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