94 次代码提交 954be71929 ... 5cb1bf8ba7

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

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