From 1d6e2b8e6046dc913a1a44a847a6d0c45d08ec74 Mon Sep 17 00:00:00 2001 From: Thomas Zilio Date: Fri, 7 Aug 2020 12:12:06 +0200 Subject: [PATCH] Correzione importi visibili per Nota di credito --- assets/src/js/functions/functions.js | 57 ++++++++++++++++++++++++++++ modules/fatture/row-list.php | 27 ++++++++----- 2 files changed, 75 insertions(+), 9 deletions(-) diff --git a/assets/src/js/functions/functions.js b/assets/src/js/functions/functions.js index 5b22f5b99..faaa50574 100755 --- a/assets/src/js/functions/functions.js +++ b/assets/src/js/functions/functions.js @@ -563,3 +563,60 @@ function salvaForm(button, form, data = {}) { }); }); } + +/** + * Nasconde una specifica colonna di una tabella indicata. + * + * @param table + * @param column + */ +function hideTableColumn(table, column) { + column = "" + column; // Cast a stringa + + // Verifica sulle colonne nascoste in precedenza + let hiddenColumns = table.getAttribute("hidden-columns"); + hiddenColumns = hiddenColumns ? hiddenColumns.split(",") : []; + if (hiddenColumns.includes(column)) { + return; + } + + // Salvataggio delle colonne nascoste + hiddenColumns.push(column); + table.setAttribute("hidden-columns", hiddenColumns.join(",")); + + let rows = table.rows; + for (let row of rows) { + let currentColumn = 1; + for (let i = 0; i < row.cells.length; i++) { + let cell = row.cells[i]; + + // Individuazione del colspan + let colspan = parseInt(cell.getAttribute("colspan")); + let hiddenColspan = cell.getAttribute("colspan-hidden"); + hiddenColspan = parseInt(hiddenColspan ? hiddenColspan : 0); + let totalColspan = colspan + hiddenColspan; + + // Gestione dell'operazione nel caso di cella multipla + if (totalColspan && totalColspan > 1) { + if (column >= currentColumn && column <= currentColumn + totalColspan - 1) { + cell.setAttribute("colspan", colspan - 1); + cell.setAttribute("colspan-hidden", hiddenColspan + 1); + + // Cella nascosta nel caso colspan sia nullo + if (colspan - 1 === 0) { + cell.classList.add("hidden"); + } + } + + currentColumn += totalColspan; + } + // Gestione di una cella normale + else { + if (column === "" + currentColumn) { + cell.classList.add("hidden"); + } + currentColumn++; + } + } + } +} diff --git a/modules/fatture/row-list.php b/modules/fatture/row-list.php index 803922401..792befc4f 100755 --- a/modules/fatture/row-list.php +++ b/modules/fatture/row-list.php @@ -117,7 +117,7 @@ foreach ($righe as $riga) { // Quantità e unità di misura echo ' - '.numberFormat($riga->qta, 'qta').' '.$riga->um.' + '.numberFormat($fattura->isNota() ? -$riga->qta : $riga->qta, 'qta').' '.$riga->um.' '; // Prezzi unitari @@ -152,7 +152,7 @@ foreach ($righe as $riga) { // Importo echo ' - '.moneyFormat($riga->importo).' + '.moneyFormat($fattura->isNota() ? -$riga->importo : $riga->importo).' '; } @@ -205,6 +205,9 @@ $totale_imponibile = $fattura->totale_imponibile; $iva = $fattura->iva; $totale = $fattura->totale; $netto_a_pagare = $fattura->netto; +$rivalsa_inps = $fattura->rivalsa_inps; +$ritenuta_acconto = $fattura->ritenuta_acconto; +$ritenuta_contributi = $fattura->totale_ritenuta_contributi; // Inversione dei valori per le Note $imponibile = $fattura->isNota() ? -$imponibile : $imponibile; @@ -213,6 +216,9 @@ $totale_imponibile = $fattura->isNota() ? -$totale_imponibile : $totale_imponibi $iva = $fattura->isNota() ? -$iva : $iva; $totale = $fattura->isNota() ? -$totale : $totale; $netto_a_pagare = $fattura->isNota() ? -$netto_a_pagare : $netto_a_pagare; +$rivalsa_inps = $fattura->isNota() ? -$rivalsa_inps : $rivalsa_inps; +$ritenuta_acconto = $fattura->isNota() ? -$ritenuta_acconto : $ritenuta_acconto; +$ritenuta_contributi = $fattura->isNota() ? -$ritenuta_contributi : $ritenuta_contributi; // IMPONIBILE echo ' @@ -253,21 +259,24 @@ if (!empty($sconto)) { } // RIVALSA INPS -if (!empty($fattura->rivalsa_inps)) { +if (!empty($rivalsa_inps)) { echo ' '; if ($dir == 'entrata') { + $descrizione_rivalsa = $database->fetchOne('SELECT CONCAT_WS(\' - \', codice, descrizione) AS descrizione FROM fe_tipo_cassa WHERE codice = '.prepare(setting('Tipo Cassa Previdenziale'))); echo ' - '; + + + '; } echo ' '.tr('Rivalsa', [], ['upper' => true]).' : - '.moneyFormat($fattura->rivalsa_inps, 2).' + '.moneyFormat($rivalsa_inps, 2).' '; @@ -306,28 +315,28 @@ echo ' '; // RITENUTA D'ACCONTO -if (!empty($fattura->ritenuta_acconto)) { +if (!empty($ritenuta_acconto)) { echo ' '.tr("Ritenuta d'acconto", [], ['upper' => true]).': - '.moneyFormat(abs($fattura->ritenuta_acconto), 2).' + '.moneyFormat($ritenuta_acconto, 2).' '; } // RITENUTA CONTRIBUTI -if (!empty($fattura->totale_ritenuta_contributi)) { +if (!empty($ritenuta_contributi)) { echo ' '.tr('Ritenuta contributi', [], ['upper' => true]).': - '.moneyFormat(abs($fattura->totale_ritenuta_contributi), 2).' + '.moneyFormat($ritenuta_contributi, 2).' ';