mirror of
https://git.imnavajas.es/jjimenez/safekat.git
synced 2025-07-25 22:52:08 +00:00
Merge branch 'fix/facturas_suma_alineamiento' into 'main'
solucionado See merge request jjimenez/safekat!692
This commit is contained in:
@ -31,25 +31,25 @@
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="8" style="text-align:right">Subtotal:</td>
|
||||
<td class="autonumeric" id="subtotal-sum"></td>
|
||||
<td class="autonumeric text-end" id="subtotal-sum"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="8" style="text-align:right">I.V.A.:</td>
|
||||
<td class="autonumeric" id="total-iva-sum"></td>
|
||||
<td class="autonumeric text-end" id="total-iva-sum"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="8" style="text-align:right">Total:</td>
|
||||
<td class="autonumeric" id="total-sum"></td>
|
||||
<td class="autonumeric text-end" id="total-sum"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td <?= ($facturaEntity->serie_id == 7 || $facturaEntity->serie_id == 9)? "style='display:none;'":"" ?> colspan="8" style="text-align:right">Pendiente de pago:</td>
|
||||
<td class="autonumeric" <?= ($facturaEntity->serie_id == 7 || $facturaEntity->serie_id == 9)? "style='display:none;'":"" ?> id="pendiente-pago"></td>
|
||||
<td class="autonumeric text-end" <?= ($facturaEntity->serie_id == 7 || $facturaEntity->serie_id == 9)? "style='display:none;'":"" ?> id="pendiente-pago"></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
@ -126,28 +126,36 @@ const autoNumericSubtotal = new AutoNumeric('#subtotal-sum', 0, {
|
||||
decimalPlaces: 2,
|
||||
digitGroupSeparator: ',',
|
||||
decimalCharacter: '.',
|
||||
unformatOnSubmit: true
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
});
|
||||
|
||||
const autoNumericIVA = new AutoNumeric('#total-iva-sum', 0, {
|
||||
decimalPlaces: 2,
|
||||
digitGroupSeparator: ',',
|
||||
decimalCharacter: '.',
|
||||
unformatOnSubmit: true
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
});
|
||||
|
||||
const autoNumericTotal = new AutoNumeric('#total-sum', 0, {
|
||||
decimalPlaces: 2,
|
||||
digitGroupSeparator: ',',
|
||||
decimalCharacter: '.',
|
||||
unformatOnSubmit: true
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
});
|
||||
|
||||
const autoNumericPendientePago = new AutoNumeric('#pendiente-pago', 0, {
|
||||
decimalPlaces: 2,
|
||||
digitGroupSeparator: ',',
|
||||
decimalCharacter: '.',
|
||||
unformatOnSubmit: true
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
});
|
||||
|
||||
var editor_lineas = new $.fn.dataTable.Editor( {
|
||||
@ -375,10 +383,10 @@ var tableLineas = $('#tableOfLineasFactura').DataTable({
|
||||
}
|
||||
}
|
||||
},
|
||||
{data: "iva",render : (d) => `<span class="autonumeric">${d}</span>`},
|
||||
{data: "base",render : (d) => `<span class="autonumeric">${d}</span>`},
|
||||
{data: "total_iva",render : (d) => `<span class="autonumeric">${d}</span>`},
|
||||
{data: "total",render : (d) => `<span class="autonumeric">${d}</span>`},
|
||||
{data: "iva", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
|
||||
{data: "base", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
|
||||
{data: "total_iva", className: "text-end",render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
|
||||
{data: "total", className: "text-end", render : (d) => `<span class="autonumeric-facturas text-end">${d}</span>`},
|
||||
],
|
||||
order: [[1, "asc"]],
|
||||
dom: 't',
|
||||
@ -417,16 +425,31 @@ var tableLineas = $('#tableOfLineasFactura').DataTable({
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
$("span.autonumeric-facturas").each(function () {
|
||||
let autoNumericInstance = AutoNumeric.getAutoNumericElement(this)
|
||||
if(autoNumericInstance){
|
||||
autoNumericInstance.remove()
|
||||
}
|
||||
new AutoNumeric(this, {
|
||||
digitGroupSeparator: ".",
|
||||
decimalCharacter: ",",
|
||||
allowDecimalPadding : 'floats',
|
||||
decimalPlaces: 2,
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
allowDecimalPadding: true,
|
||||
});
|
||||
});
|
||||
|
||||
},
|
||||
footerCallback: function (row, data, start, end, display) {
|
||||
const table = this.api();
|
||||
|
||||
const intVal = i => typeof i === 'string' ? parseFloat(i.replace(/\./g, '').replace(',', '.')) || 0 : i || 0;
|
||||
|
||||
const totalSubtotal = table.column(8).data().reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||
const totalIVA = table.column(9).data().reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||
const totalTotal = table.column(10).data().reduce((a, b) => intVal(a) + intVal(b), 0);
|
||||
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 totalTotal = table.column(10).data().reduce((a, b) => parseFloat(a) + parseFloat(b), 0);
|
||||
|
||||
autoNumericSubtotal.set(totalSubtotal);
|
||||
autoNumericIVA.set(totalIVA);
|
||||
|
||||
@ -22,12 +22,12 @@
|
||||
<tbody></tbody>
|
||||
<tfoot>
|
||||
<tr>
|
||||
<td colspan="6" style="text-align:right">Total cobrado:</td>
|
||||
<td><span id="totalCobrado-sum" class="autonumeric"></span></td>
|
||||
<td colspan="6" class="text-end">Total cobrado:</td>
|
||||
<td class="text-end"><span id="totalCobrado-sum" class="autonumeric text-end"></span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="6" style="text-align:right">Total pendiente:</td>
|
||||
<td><span id="pendienteCobro-sum" class="autonumeric"></span></td>
|
||||
<td colspan="6" class="text-end">Total pendiente:</td>
|
||||
<td class="text-end"><span id="pendienteCobro-sum" class="autonumeric text-end"></span></td>
|
||||
</tr>
|
||||
</tfoot>
|
||||
</table>
|
||||
@ -147,6 +147,8 @@ editor_pagos.on('open',(event)=>{
|
||||
allowDecimalPadding : 'floats',
|
||||
decimalPlaces: 2,
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
|
||||
});
|
||||
})
|
||||
@ -189,14 +191,18 @@ const autoNumericTotalCobrado = new AutoNumeric('#totalCobrado-sum', 0, {
|
||||
decimalPlaces: 2,
|
||||
digitGroupSeparator: ',',
|
||||
decimalCharacter: '.',
|
||||
unformatOnSubmit: true
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
});
|
||||
|
||||
const autoNumericPendienteCobro = new AutoNumeric('#pendienteCobro-sum', 0, {
|
||||
decimalPlaces: 2,
|
||||
digitGroupSeparator: ',',
|
||||
decimalCharacter: '.',
|
||||
unformatOnSubmit: true
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
});
|
||||
|
||||
var tablePagos = $('#tableOfLineasPagos').DataTable({
|
||||
@ -237,7 +243,11 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
|
||||
return data!='0000-00-00 00:00:00' ? moment(data).format('DD/MM/YYYY') : '';
|
||||
}
|
||||
},
|
||||
{data: "total",render : (d) => `<span class="autonumeric">${d}</span>`},
|
||||
{
|
||||
data: "total",
|
||||
className: "text-end",
|
||||
render : (d) => `<span class="autonumeric-pagos text-end">${d}</span>`
|
||||
},
|
||||
],
|
||||
order: [[1, "asc"]],
|
||||
dom: 't',
|
||||
@ -270,14 +280,27 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
|
||||
},
|
||||
|
||||
],
|
||||
drawCallback: function (settings) {
|
||||
$("span.autonumeric-pagos").each(function () {
|
||||
let autoNumericInstance = AutoNumeric.getAutoNumericElement(this)
|
||||
if(autoNumericInstance){
|
||||
autoNumericInstance.remove()
|
||||
}
|
||||
new AutoNumeric(this, {
|
||||
digitGroupSeparator: ".",
|
||||
decimalCharacter: ",",
|
||||
allowDecimalPadding : 'floats',
|
||||
decimalPlaces: 2,
|
||||
unformatOnSubmit: true,
|
||||
decimalPlacesShownOnFocus: 2,
|
||||
decimalPlacesShownOnBlur: 2,
|
||||
allowDecimalPadding: true,
|
||||
});
|
||||
});
|
||||
},
|
||||
footerCallback: function (row, data, start, end, display) {
|
||||
var api = this.api();
|
||||
|
||||
var intVal = function (i) {
|
||||
// Convertir a número o devolver 0 si no es válido
|
||||
return typeof i === 'string' ? i.replace(/[\$,]/g, '')*1 : typeof i === 'number' ? i : 0;
|
||||
};
|
||||
|
||||
var filas = [];
|
||||
api.rows().every(function() {
|
||||
var data = this.data();
|
||||
@ -287,7 +310,7 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
|
||||
});
|
||||
var totalPagos = filas
|
||||
.reduce(function(a, data) {
|
||||
return a + intVal(data['total']); // Aquí asumimos que la columna 6 está en el índice 5
|
||||
return parseFloat(a) + parseFloat(data['total']);
|
||||
}, 0);
|
||||
|
||||
var filas = [];
|
||||
@ -299,7 +322,7 @@ var tablePagos = $('#tableOfLineasPagos').DataTable({
|
||||
});
|
||||
var totalPendiente = filas
|
||||
.reduce(function(a, data) {
|
||||
return a + intVal(data['total']); // Aquí asumimos que la columna 6 está en el índice 5
|
||||
return parseFloat(a) + parseFloat(data['total']);
|
||||
}, 0);
|
||||
|
||||
// Update footer
|
||||
|
||||
Reference in New Issue
Block a user