From b28b8b761ea83d89c0036c32b4184225c7774476 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jaime=20Jim=C3=A9nez?= Date: Sun, 13 Apr 2025 14:13:05 +0200 Subject: [PATCH] reflejado diferentes ivas en total de factura --- .../Presupuestos/Presupuestoadmin.php | 2 +- .../form/facturas/_facturaLineasItems.php | 70 +++++++++++++++---- .../admin/viewPresupuestoadminForm.php | 5 ++ .../presupuestoAdmin/presupuestoAdminEdit.js | 4 +- .../presupuestoAdmin/sections/resumen.js | 3 + 5 files changed, 68 insertions(+), 16 deletions(-) diff --git a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php index 75ac450d..5039d115 100644 --- a/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php +++ b/ci4/app/Controllers/Presupuestos/Presupuestoadmin.php @@ -1595,7 +1595,7 @@ class Presupuestoadmin extends \App\Controllers\BaseResourceController $presupuestoServiciosExtraModel = model('App\Models\Presupuestos\PresupuestoServiciosExtraModel'); foreach ($presupuestoServiciosExtraModel->where('presupuesto_id', $presupuesto->id)->findAll() as $servicioExtra) { $servicioExtra->presupuesto_id = $new_id; - $presupuestoServiciosExtraModel->insert($preimpresion); + $presupuestoServiciosExtraModel->insert($servicioExtra); } $presupuestoDireccionesModel = model('App\Models\Presupuestos\PresupuestoDireccionesModel'); diff --git a/ci4/app/Views/themes/vuexy/form/facturas/_facturaLineasItems.php b/ci4/app/Views/themes/vuexy/form/facturas/_facturaLineasItems.php index 9cd3136e..00412097 100644 --- a/ci4/app/Views/themes/vuexy/form/facturas/_facturaLineasItems.php +++ b/ci4/app/Views/themes/vuexy/form/facturas/_facturaLineasItems.php @@ -35,9 +35,15 @@ - - I.V.A.: - + + IVA (4%): + + + + + + IVA (21%): + @@ -124,17 +130,26 @@ const actionBtns = function(data) { const autoNumericSubtotal = new AutoNumeric('#subtotal-sum', 0, { decimalPlaces: 2, - digitGroupSeparator: ',', - decimalCharacter: '.', + digitGroupSeparator: '.', + decimalCharacter: ',', unformatOnSubmit: true, decimalPlacesShownOnFocus: 2, decimalPlacesShownOnBlur: 2, }); -const autoNumericIVA = new AutoNumeric('#total-iva-sum', 0, { +const autoNumericIVA_4 = new AutoNumeric('#total-iva-sum-4', 0, { decimalPlaces: 2, - digitGroupSeparator: ',', - decimalCharacter: '.', + digitGroupSeparator: '.', + decimalCharacter: ',', + unformatOnSubmit: true, + decimalPlacesShownOnFocus: 2, + decimalPlacesShownOnBlur: 2, +}); + +const autoNumericIVA_21 = new AutoNumeric('#total-iva-sum-21', 0, { + decimalPlaces: 2, + digitGroupSeparator: '.', + decimalCharacter: ',', unformatOnSubmit: true, decimalPlacesShownOnFocus: 2, decimalPlacesShownOnBlur: 2, @@ -142,8 +157,8 @@ const autoNumericIVA = new AutoNumeric('#total-iva-sum', 0, { const autoNumericTotal = new AutoNumeric('#total-sum', 0, { decimalPlaces: 2, - digitGroupSeparator: ',', - decimalCharacter: '.', + digitGroupSeparator: '.', + decimalCharacter: ',', unformatOnSubmit: true, decimalPlacesShownOnFocus: 2, decimalPlacesShownOnBlur: 2, @@ -151,8 +166,8 @@ const autoNumericTotal = new AutoNumeric('#total-sum', 0, { const autoNumericPendientePago = new AutoNumeric('#pendiente-pago', 0, { decimalPlaces: 2, - digitGroupSeparator: ',', - decimalCharacter: '.', + digitGroupSeparator: '.', + decimalCharacter: ',', unformatOnSubmit: true, decimalPlacesShownOnFocus: 2, decimalPlacesShownOnBlur: 2, @@ -448,11 +463,38 @@ var tableLineas = $('#tableOfLineasFactura').DataTable({ const table = this.api(); const totalSubtotal = table.column(8).data().reduce((a, b) => parseFloat(a) + parseFloat(b), 0); - const totalIVA = table.column(9).data().reduce((a, b) => parseFloat(a) + parseFloat(b), 0); + + const data_table = table.rows().data(); + const totalIVA_4 = data_table.reduce((sum, row) => { + if (parseInt(row['iva']) === 4) { + return sum + parseFloat(row['total_iva']) || 0; + } + return sum; + }, 0); + const totalIVA_21 = data_table.reduce((sum, row) => { + if (parseInt(row['iva']) === 21) { + return sum + parseFloat(row['total_iva']) || 0; + } + return sum; + }, 0); + const totalTotal = table.column(10).data().reduce((a, b) => parseFloat(a) + parseFloat(b), 0); autoNumericSubtotal.set(totalSubtotal); - autoNumericIVA.set(totalIVA); + autoNumericIVA_4.set(totalIVA_4); + if(totalIVA_4 == 0){ + $('#total-iva-sum-4').closest('tr').addClass('d-none'); + } + else{ + $('#total-iva-sum-4').closest('tr').removeClass('d-none'); + } + autoNumericIVA_21.set(totalIVA_21); + if(totalIVA_21 == 0){ + $('#total-iva-sum-21').closest('tr').addClass('d-none'); + } + else{ + $('#total-iva-sum-21').closest('tr').removeClass('d-none'); + } autoNumericTotal.set(totalTotal); var total_pagos = autoNumericTotalCobrado.getNumber(); diff --git a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php index 55550d0b..6ef1a1c5 100644 --- a/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php +++ b/ci4/app/Views/themes/vuexy/form/presupuestos/admin/viewPresupuestoadminForm.php @@ -190,6 +190,11 @@ dataType: 'json', success:function(response){ + if(response.error){ + console.error(response.error); + return; + } + token=response.; yeniden(token); // redirect diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js index c597c3ce..1fe9218c 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/presupuestoAdminEdit.js @@ -399,7 +399,9 @@ class PresupuestoAdminEdit { self.tipo_impresion.val(response.data.tipo_impresion); self.POD.val(response.data.POD); - AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]).set(response.data.total_aceptado_revisado); + const totalAceptadoRevisado = response.data.total_aceptado_revisado != null ? + response.data.total_aceptado_revisado : response.data.resumen.total_aceptado; + AutoNumeric.getAutoNumericElement($('#total_aceptado_revisado')[0]).set(totalAceptadoRevisado); $('#aprobado_by_at').html(response.data.aprobado_by_at); diff --git a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js index f34c49d0..098b33cf 100644 --- a/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js +++ b/httpdocs/assets/js/safekat/pages/presupuestoAdmin/sections/resumen.js @@ -414,6 +414,9 @@ class Resumen { if (total_aceptado_revisado && total_aceptado_revisado != 0) { data.total_aceptado_revisado = total_aceptado_revisado; } + else{ + data.total_aceptado_revisado = data.total_aceptado; + } return data; }