diff --git a/ci4/app/Controllers/Facturacion/Facturas.php b/ci4/app/Controllers/Facturacion/Facturas.php index 9469b5ec..b9c445bc 100755 --- a/ci4/app/Controllers/Facturacion/Facturas.php +++ b/ci4/app/Controllers/Facturacion/Facturas.php @@ -692,7 +692,9 @@ class Facturas extends \App\Controllers\BaseResourceController // Se aƱade la linea de factura $descripcion = $model_presupuesto->generarLineaPedido($presupuesto->id, true, $linea->pedido_id); $cantidad = intval($presupuesto->tirada) - intval($model_factura->getCantidadLineaPedidoFacturada($linea->id)); - $base = $cantidad * floatval($presupuesto->total_precio_unidad); + $base = + floatval($presupuesto->total_aceptado_revisado && $presupuesto->total_aceptado_revisado != 0 ? + $presupuesto->total_aceptado_revisado : $presupuesto->total_aceptado); $base = round($base, 2); $total_iva = $base * ($presupuesto->iva_reducido == 1 ? 0.04 : 0.21); // se redondea a dos decimales @@ -704,7 +706,6 @@ class Facturas extends \App\Controllers\BaseResourceController 'pedido_linea_impresion_id' => $linea->pedido_id, 'descripcion' => $descripcion[0]->concepto, 'cantidad' => $cantidad, - 'precio_unidad' => $presupuesto->total_precio_unidad, 'iva' => $presupuesto->iva_reducido == 1 ? 4 : 21, 'base' => $base, 'total_iva' => $total_iva, diff --git a/ci4/app/Controllers/Facturacion/FacturasLineas.php b/ci4/app/Controllers/Facturacion/FacturasLineas.php index 21ae2c0a..42a00d05 100644 --- a/ci4/app/Controllers/Facturacion/FacturasLineas.php +++ b/ci4/app/Controllers/Facturacion/FacturasLineas.php @@ -101,15 +101,6 @@ class FacturasLineas extends \App\Controllers\BaseResourceController ->validator('Validate::notEmpty', array( 'message' => lang('Facturas.validation.requerido')) ), - Field::inst( 'precio_unidad' ) - ->getFormatter( 'Format::toDecimalChar')->setFormatter( 'Format::fromDecimalChar') - ->validator('Validate::numeric', array( - "decimal" => ',', - 'message' => lang('Facturas.validation.decimal')) - ) - ->validator('Validate::notEmpty', array( - 'message' => lang('Facturas.validation.requerido')) - ), Field::inst( 'iva' ) ->validator('Validate::numeric', array( 'message' => lang('Facturas.validation.numerico')) @@ -128,7 +119,7 @@ class FacturasLineas extends \App\Controllers\BaseResourceController $totales = $this->generate_totales( $values['factura_id'], $values['pedido_linea_impresion_id'], - $values['precio_unidad'], + $values['total'], $values['iva'], $values['cantidad'], $values['old_cantidad']); @@ -152,7 +143,7 @@ class FacturasLineas extends \App\Controllers\BaseResourceController $totales = $this->generate_totales( $values['factura_id'], $values['pedido_linea_impresion_id'], - $values['precio_unidad'], + $values['total'], $values['iva'], $values['cantidad'], $values['old_cantidad']); @@ -203,7 +194,7 @@ class FacturasLineas extends \App\Controllers\BaseResourceController $model->updateTotales($factura_id); } - private function generate_totales($factura_id, $pedido_linea_id, $precio_unidad, $iva, $cantidad, $old_cantidad) + private function generate_totales($factura_id, $pedido_linea_id, $total, $iva, $cantidad, $old_cantidad) { // si es una linea que se refiere a pedido @@ -214,6 +205,7 @@ class FacturasLineas extends \App\Controllers\BaseResourceController // se calcula y se actualiza el subtotal, total_iva y total // redondeando a 4 decimales el precio_unidad y a dos el resto + $precio_unidad = round($total / $old_cantidad, 4); $base = round($precio_unidad * $cantidad, 2); $total_iva = round($base * $iva / 100, 2); $total = round($base + $total_iva, 2); diff --git a/ci4/app/Controllers/Facturacion/FacturasPagos.php b/ci4/app/Controllers/Facturacion/FacturasPagos.php index a7559933..42a46009 100644 --- a/ci4/app/Controllers/Facturacion/FacturasPagos.php +++ b/ci4/app/Controllers/Facturacion/FacturasPagos.php @@ -57,10 +57,7 @@ class FacturasPagos extends \App\Controllers\BaseResourceController ->fields( Field::inst( 'id' ), Field::inst( 'forma_pago_id' ), - Field::inst( 'notes' ) - ->validator('Validate::notEmpty', array( - 'message' => lang('Facturas.validation.requerido')) - ), + Field::inst( 'notes' ), Field::inst( 'fecha_pago_at' ) ->validator( Validate::dateFormat( 'Y-m-d H:i:s' ) ) ->getFormatter( Format::dateSqlToFormat( 'Y-m-d H:i:s' ) ) diff --git a/ci4/app/Database/Migrations/2024-04-09-173000_RemovePrecioUnidadFacturas.php b/ci4/app/Database/Migrations/2024-04-09-173000_RemovePrecioUnidadFacturas.php new file mode 100644 index 00000000..7f2e0d75 --- /dev/null +++ b/ci4/app/Database/Migrations/2024-04-09-173000_RemovePrecioUnidadFacturas.php @@ -0,0 +1,24 @@ +forge->dropColumn('facturas_lineas', 'precio_unidad'); + } + + public function down() + { + $fields = [ + 'precio_unidad' => [ + 'type' => 'DOUBLE', + 'null' => false, + ], + ]; + $this->forge->addColumn('facturas_lineas', $fields); + } +} diff --git a/ci4/app/Entities/Facturas/FacturaLineaEntity.php b/ci4/app/Entities/Facturas/FacturaLineaEntity.php index 7ce467bb..87f6365c 100644 --- a/ci4/app/Entities/Facturas/FacturaLineaEntity.php +++ b/ci4/app/Entities/Facturas/FacturaLineaEntity.php @@ -12,7 +12,6 @@ class FacturaLineaEntity extends \CodeIgniter\Entity\Entity 'pedido_maquetacion_id' => null, 'descripcion' => null, 'cantidad' => null, - 'precio_unidad' => null, 'iva' => null, 'base' => null, 'total_iva' => null, @@ -29,7 +28,6 @@ class FacturaLineaEntity extends \CodeIgniter\Entity\Entity 'pedido_linea_impresion_id' => 'int', 'pedido_maquetacion_id' => 'int', 'cantidad' => 'float', - 'precio_unidad' => 'float', 'iva' => 'float', 'base' => 'float', 'total_iva' => 'float', diff --git a/ci4/app/Models/Facturas/FacturaLineaModel.php b/ci4/app/Models/Facturas/FacturaLineaModel.php index 0254c301..82888d06 100644 --- a/ci4/app/Models/Facturas/FacturaLineaModel.php +++ b/ci4/app/Models/Facturas/FacturaLineaModel.php @@ -14,7 +14,6 @@ class FacturaLineaModel extends \App\Models\BaseModel { 'pedido_maquetacion_id', 'descripcion', 'cantidad', - 'precio_unidad', 'iva', 'base', 'total_iva', @@ -38,7 +37,7 @@ class FacturaLineaModel extends \App\Models\BaseModel { ->select( "t1.id AS id, t1.factura_id AS factura_id, t1.pedido_linea_impresion_id AS pedido_linea_impresion_id, t1.pedido_maquetacion_id AS pedido_maquetacion_id, - t1.descripcion AS descripcion, t1.cantidad as cantidad, t1.precio_unidad AS precio_unidad, t1.iva AS iva, + t1.descripcion AS descripcion, t1.cantidad as cantidad, t1.iva AS iva, t1.base AS base, t1.total_iva AS total_iva, t1.total AS total, t1.data AS data, t2.pedido_id AS pedido_id, t3.total_aceptado AS total_aceptado, t4.tirada_flexible AS tirada_flexible, t4.descuento_tirada_flexible AS descuento_tirada_flexible, t6.cantidad AS cantidad_albaran" @@ -89,7 +88,7 @@ class FacturaLineaModel extends \App\Models\BaseModel { ->select( "t1.id AS id, t1.factura_id AS factura_id, t1.pedido_linea_impresion_id AS pedido_linea_impresion_id, t1.pedido_maquetacion_id AS pedido_maquetacion_id, - t1.descripcion AS descripcion, t1.cantidad as cantidad, t1.precio_unidad AS precio_unidad, t1.iva AS iva, + t1.descripcion AS descripcion, t1.cantidad as cantidad, t1.iva AS iva, t1.base AS base, t1.total_iva AS total_iva, t1.total AS total, t1.data AS data" ) ->where("t1.factura_id", $factura_id) diff --git a/ci4/app/Views/themes/vuexy/form/facturas/_facturaLineasItems.php b/ci4/app/Views/themes/vuexy/form/facturas/_facturaLineasItems.php index 3ef7a7d4..b559f2be 100644 --- a/ci4/app/Views/themes/vuexy/form/facturas/_facturaLineasItems.php +++ b/ci4/app/Views/themes/vuexy/form/facturas/_facturaLineasItems.php @@ -20,7 +20,6 @@