diff --git a/templates/partitario_mastrino/bottom.php b/templates/partitario_mastrino/bottom.php
new file mode 100644
index 000000000..8897a29c0
--- /dev/null
+++ b/templates/partitario_mastrino/bottom.php
@@ -0,0 +1,81 @@
+.
+ */
+
+include_once __DIR__.'/../../core.php';
+$dare = 0;
+$avere = 0;
+for ($i = 0; $i < sizeof($records); ++$i) {
+ if ($records[$i]['totale'] >= 0) {
+ $dare += $records[$i]['totale'];
+ } else {
+ $avere += $records[$i]['totale'];
+ }
+}
+
+
+if (get('lev') == '2' || get('lev') == '3') {
+ echo '
+
+ |
+ SALDO FINALE |
+ '.moneyFormat(abs($dare)).' |
+ '.moneyFormat(abs($avere)).' |
+
';
+} elseif(get('lev') == '1'){
+ $pareggio_dare = abs($dare);
+ $pareggio_avere = abs($avere);
+ echo '
+
+
+ TOTALE ATTIVITÀ |
+ '.moneyFormat(abs($dare)).' |
+ PASSIVITÀ |
+ '.moneyFormat(abs($avere)).' |
+
+ ';
+
+ if($risultato['totale'] <= 0){
+ echo '
+ |
+ |
+ UTILE |
+ '.moneyFormat(abs($risultato['totale'])).' |
+
';
+ $pareggio_avere += abs($risultato['totale']);
+ } else{
+ echo '
+ PERDITA |
+ '.moneyFormat(abs($risultato['totale'])).' |
+ |
+ |
+ ';
+ $pareggio_dare += abs($risultato['totale']);
+ }
+
+ echo '
+
+ TOTALE A PAREGGIO |
+ '.moneyFormat(abs($pareggio_dare)).' |
+ TOTALE A PAREGGIO |
+ '.moneyFormat(abs($pareggio_avere)).' |
+
+
';
+}
+
+echo '';
\ No newline at end of file
diff --git a/templates/partitario_mastrino/footer.php b/templates/partitario_mastrino/footer.php
new file mode 100644
index 000000000..a22b71597
--- /dev/null
+++ b/templates/partitario_mastrino/footer.php
@@ -0,0 +1,34 @@
+.
+ */
+
+echo '
+
+
+
+ '.tr('Stampato con OpenSTAManager il _DATE_', ['_DATE_' => date('d/m/Y')]).'
+ |
+
+
+ '.tr('Pagina _PAGE_ di _TOTAL_', [
+ '_PAGE_' => '{PAGENO}',
+ '_TOTAL_' => '{nb}',
+ ]).'
+ |
+
+
';
diff --git a/templates/partitario_mastrino/header.php b/templates/partitario_mastrino/header.php
new file mode 100644
index 000000000..774d5f56c
--- /dev/null
+++ b/templates/partitario_mastrino/header.php
@@ -0,0 +1,42 @@
+.
+ */
+
+/**
+ * Header di default.
+ * I contenuti di questo file vengono utilizzati per generare l'header delle stampe nel caso non esista un file header.php all'interno della stampa.
+ *
+ * Per modificare l'header della stampa basta aggiungere un file header.php all'interno della cartella della stampa con i contenuti da mostrare (vedasi templates/fatture/header.php).
+ *
+ * La personalizzazione specifica dell'header deve comunque seguire lo standard della cartella custom: anche se il file header.php non esiste nella stampa originaria, se si vuole personalizzare l'header bisogna crearlo all'interno della cartella custom.
+ */
+
+echo'
+
+
STAMPA MASTRINO '.Translator::dateToLocale($date_start).' - '.Translator::dateTolocale($date_end).'
+ '.$azienda['ragione_sociale'].'
+
+'.$conto1['descrizione'].'
';
+if (get('lev') == '3') {
+ echo '
+ '.$conto2['numero'].' '.$conto2['descrizione'].'
+ '.$conto3['numero'].' '.$conto3['descrizione'].'
';
+} elseif (get('lev') == '2') {
+ echo'
+ '.$conto2['numero'].' '.$conto2['descrizione'].'
';
+}
\ No newline at end of file
diff --git a/templates/partitario_mastrino/init.php b/templates/partitario_mastrino/init.php
new file mode 100644
index 000000000..15e64033e
--- /dev/null
+++ b/templates/partitario_mastrino/init.php
@@ -0,0 +1,40 @@
+.
+ */
+
+include_once __DIR__.'/../../core.php';
+$azienda= $dbo->fetchOne('SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica='.setting('Azienda predefinita'));
+$date_start = $_SESSION['period_start'];
+$date_end = $_SESSION['period_end'];
+
+if (get('lev') == '3') {
+ $conto3 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti3 WHERE id='.prepare($id_record));
+ $conto2 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti2 WHERE id='.prepare($conto3['idpianodeiconti2']));
+ $conto1 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti1 WHERE id='.prepare($conto2['idpianodeiconti1']));
+ // Movimenti
+ $records = $dbo->fetchArray('SELECT * FROM co_movimenti WHERE idconto='.prepare($id_record).' AND co_movimenti.data>='.prepare($date_start).' AND co_movimenti.data<='.prepare($date_end));
+} elseif (get('lev') == '2') {
+ $records = $dbo->fetchArray('SELECT CONCAT(co_pianodeiconti3.numero, " ",co_pianodeiconti3.descrizione) AS descrizione, SUM(totale) AS totale FROM `co_movimenti` INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2='.prepare($id_record).') GROUP BY idconto HAVING totale!=0');
+ $conto2 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti2 WHERE id='.prepare($id_record));
+ $conto1 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti1 WHERE id='.prepare($conto2['idpianodeiconti1']));
+} elseif (get('lev') == '1') {
+ $records = $dbo->fetchArray('SELECT CONCAT(co_pianodeiconti2.numero, " ", co_pianodeiconti2.descrizione) AS titolo, CONCAT(co_pianodeiconti3.numero, " ",co_pianodeiconti3.descrizione) AS descrizione, SUM(totale) AS totale FROM `co_movimenti` INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2 IN(SELECT id FROM co_pianodeiconti2 WHERE idpianodeiconti1='.prepare($id_record).')) GROUP BY idconto HAVING totale!=0 ORDER BY co_pianodeiconti2.numero');
+ $conto1 = $dbo->fetchOne('SELECT * FROM co_pianodeiconti1 WHERE id='.prepare($id_record));
+ $risultato = $dbo->fetchOne('SELECT SUM(totale) AS totale FROM `co_movimenti` INNER JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id INNER JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE idconto IN(SELECT id FROM co_pianodeiconti3 WHERE idpianodeiconti2 IN(SELECT id FROM co_pianodeiconti2 WHERE idpianodeiconti1=(SELECT id FROM co_pianodeiconti1 WHERE descrizione="Economico")))');
+}
+$prev_titolo = '';
\ No newline at end of file
diff --git a/templates/partitario_mastrino/partitario.html b/templates/partitario_mastrino/partitario.html
deleted file mode 100755
index 1b0be845a..000000000
--- a/templates/partitario_mastrino/partitario.html
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-
-
-
- $body$
-
diff --git a/templates/partitario_mastrino/partitario_body.html b/templates/partitario_mastrino/partitario_body.html
deleted file mode 100755
index 8f16dedb4..000000000
--- a/templates/partitario_mastrino/partitario_body.html
+++ /dev/null
@@ -1,41 +0,0 @@
-
-
-
-
-
-
-
- STAMPA MASTRINO (|period_start| - |period_end|)
- |percorso|
- |
-
-
- |info_fornitore|
- |
-
- |
-
-
-
-
- DATA | DESCRIZIONE | DARE | AVERE |
-
- |
-
-
diff --git a/templates/partitario_mastrino/pdfgen.partitario_mastrino.php b/templates/partitario_mastrino/pdfgen.partitario_mastrino.php
deleted file mode 100755
index b01203e37..000000000
--- a/templates/partitario_mastrino/pdfgen.partitario_mastrino.php
+++ /dev/null
@@ -1,328 +0,0 @@
-.
- */
-
-include_once __DIR__.'/../../core.php';
-
-$idconto = $_GET['idconto'];
-$module_name = 'Piano dei conti';
-
-$date_start = $_SESSION['period_start'];
-$date_end = $_SESSION['period_end'];
-
-// carica report html
-$report = file_get_contents(base_dir().'/templates/partitario_mastrino/partitario.html');
-$body = file_get_contents(base_dir().'/templates/partitario_mastrino/partitario_body.html');
-include_once base_dir().'/templates/pdfgen_variables.php';
-
-// Calcolo il percorso piano dei conti
-if ($_GET['lev'] == '3') {
- $rs = $dbo->fetchArray("SELECT idpianodeiconti2, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti3 WHERE id=\"".$idconto.'"');
- $percorso = $rs[0]['descrizione'];
- $idpianodeiconti2 = $rs[0]['idpianodeiconti2'];
-
- $rs = $dbo->fetchArray("SELECT idpianodeiconti1, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti2 WHERE id=\"".$idpianodeiconti2.'"');
- $percorso = $rs[0]['descrizione'].'
'.$percorso;
- $idpianodeiconti1 = $rs[0]['idpianodeiconti1'];
-
- $rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idpianodeiconti1.'"');
-
- ($rs[0]['descrizione'] == '01 Patrimoniale') ? $descrizione = 'Stato patrimoniale' : $descrizione = 'Conto economico';
- $percorso = $descrizione.'
'.$percorso;
-} elseif ($_GET['lev'] == '2') {
- $rs = $dbo->fetchArray("SELECT idpianodeiconti1, CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti2 WHERE id=\"".$idconto.'"');
- $percorso = $rs[0]['descrizione'].'
'.$percorso;
- $idpianodeiconti1 = $rs[0]['idpianodeiconti1'];
-
- $rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idpianodeiconti1.'"');
-
- ($rs[0]['descrizione'] == '01 Patrimoniale') ? $descrizione = 'Stato patrimoniale' : $descrizione = 'Conto economico';
- $percorso = $descrizione.'
'.$percorso;
-} elseif ($_GET['lev'] == '1') {
- $rs = $dbo->fetchArray("SELECT CONCAT_WS(' ', numero, descrizione ) AS descrizione FROM co_pianodeiconti1 WHERE id=\"".$idconto.'"');
-
- ($rs[0]['descrizione'] == '01 Patrimoniale') ? $descrizione = 'Stato patrimoniale' : $descrizione = 'Conto economico';
- $percorso = $descrizione.'
';
-}
-
-$body = str_replace('|percorso|', $percorso, $body);
-$body = str_replace('|info_fornitore|', $f_ragionesociale.'
'.$f_indirizzo.'
'.$f_citta, $body);
-$body = str_replace('|period_start|', Translator::dateToLocale($date_start), $body);
-$body = str_replace('|period_end|', Translator::dateToLocale($date_end), $body);
-
-// Stampa da livello 3
-if ($_GET['lev'] == '3') {
- $body .= "
-
- \n";
-
- // Inizializzo saldo finale
- $saldo_finale = [];
-
- // Calcolo saldo iniziale
- $saldo_iniziale = 0;
- $saldo_finale = $saldo_iniziale;
-
- $rs = $dbo->fetchArray('SELECT *, SUM(totale) AS totale
- FROM co_movimenti
- WHERE idconto='.prepare($idconto).' AND
- data >= '.prepare($date_start).' AND
- data <= '.prepare($date_end).'
- GROUP BY idmastrino
- ORDER BY data ASC');
-
- // Inizializzo saldo finale
- $saldo_finale2 = [];
- for ($i = 0; $i < sizeof($rs); ++$i) {
- if ($rs[$i]['totale'] >= 0) {
- $dare = moneyFormat(abs($rs[$i]['totale']), 2);
- $avere = '';
- } else {
- $dare = '';
- $avere = moneyFormat(abs($rs[$i]['totale']), 2);
- }
-
- $body .= " ".Translator::dateToLocale($rs[$i]['data'])." | ".$rs[$i]['descrizione']." | ".$dare." | ".$avere." |
\n";
-
- $saldo_finale2[] = $rs[$i]['totale'];
- }
-
- if (sum($saldo_finale) < 0) {
- $dare = '';
- $avere = abs(sum($saldo_finale) + sum($saldo_finale2));
- } else {
- $dare = abs(sum($saldo_finale) + sum($saldo_finale2));
- $avere = '';
- }
-
- // Mostro il saldo finale
- $body .= " | SALDO FINALE | ".moneyFormat(abs(sum($dare)), 2)." | ".moneyFormat(abs(sum($avere)), 2)." |
\n";
-
- $body .= "
-
\n";
-}
-
-// Stampa da livello 2
-elseif ($_GET['lev'] == '2') {
- $body .= "
-
- \n";
-
- // Ciclo fra i sotto-conti di livello 2
- $rs3 = $dbo->fetchArray('SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2="'.$idconto.'"');
-
- for ($z = 0; $z < sizeof($rs3); ++$z) {
- $v_dare = [];
- $v_avere = [];
-
- // Inizializzo saldo finale
- $saldo_finale = [];
-
- // Calcolo saldo iniziale
- $saldo_iniziale = 0;
- $saldo_finale[] = $saldo_iniziale;
-
- $rs = $dbo->fetchArray('SELECT * FROM co_movimenti WHERE idconto="'.$rs3[$z]['id'].'" AND data >= '.prepare($date_start).' AND data <= '.prepare($date_end).' ORDER BY data ASC');
-
- for ($i = 0; $i < sizeof($rs); ++$i) {
- if ($rs[$i]['totale'] >= 0) {
- $v_dare[] = abs($rs[$i]['totale']);
- } else {
- $v_avere[] = abs($rs[$i]['totale']);
- }
- }
-
- $totale = sum($v_dare) - sum($v_avere);
-
- if ($totale >= 0) {
- $dare = moneyFormat(abs($totale), 2);
- $avere = '';
- } else {
- $dare = '';
- $avere = moneyFormat(abs($totale), 2);
- }
-
- // Mostro il saldo finale del conto di livello 3
- if (sizeof($rs) > 0) {
- $body .= " | ".$rs3[$z]['numero'].' '.$rs3[$z]['descrizione']." | ".$dare." | ".$avere." |
\n";
- }
- }
-
- $body .= "
-
\n";
-}
-
-// Stampa completa bilancio
-elseif (get('lev') == '1') {
- $ricavi = [];
- $costi = [];
- $totale_attivita = [];
- $totale_passivita = [];
-
- $body .= "
-
- \n";
-
- // Ciclo fra il conto principale scelto (Economico o Patrimoniale)
- $rs1 = $dbo->fetchArray('SELECT id, numero, descrizione FROM co_pianodeiconti1 WHERE id="'.$idconto.'" ORDER BY numero DESC');
-
- for ($x = 0; $x < sizeof($rs1); ++$x) {
- // Ciclo fra i sotto-conti di livello 1
- $rs2 = $dbo->fetchArray('SELECT id, numero, descrizione FROM co_pianodeiconti2 WHERE idpianodeiconti1="'.$rs1[$x]['id'].'"');
-
- for ($y = 0; $y < sizeof($rs2); ++$y) {
- // Ciclo fra i sotto-conti di livello 2
- $rs3 = $dbo->fetchArray('SELECT id, numero, descrizione, movimenti.totale FROM co_pianodeiconti3 LEFT JOIN (SELECT SUM(totale) AS totale, idconto FROM co_movimenti GROUP BY idconto) AS movimenti ON co_pianodeiconti3.id=movimenti.idconto WHERE idpianodeiconti2="'.$rs2[$y]['id'].'" AND movimenti.totale != 0');
-
- if (!empty($rs3)) {
- $body .= " ".$rs2[$y]['numero'].' '.$rs2[$y]['descrizione']." |
\n";
- }
-
- for ($z = 0; $z < sizeof($rs3); ++$z) {
- $v_dare = [];
- $v_avere = [];
-
- if ($rs3[$z]['totale'] >= 0) {
- $v_dare[] = abs($rs3[$z]['totale']);
- } else {
- $v_avere[] = abs($rs3[$z]['totale']);
- }
-
- $totale = sum($v_dare) - sum($v_avere);
-
- if ($totale >= 0) {
- $dare = abs($totale);
- $avere = 0;
- $totale_attivita[] = $dare;
- $costi[] = abs($dare);
- } else {
- $dare = 0;
- $avere = abs($totale);
- $totale_passivita[] = $avere;
- $ricavi[] = abs($avere);
- }
-
- // Mostro il saldo finale del conto di livello 3
- $body .= " | ".$rs3[$z]['numero'].' '.$rs3[$z]['descrizione']." | ".moneyFormat(abs($dare), 2)." | ".moneyFormat(abs($avere), 2)." |
\n";
- }
- }
- }
-
- // Stampa "Costi/Ricavi" se conto economico
- if ($rs1[0]['descrizione'] == 'Economico') {
- $body .= " RICAVI | ".moneyFormat(sum($ricavi), 2)." |
\n";
- $body .= " COSTI | ".moneyFormat(sum($costi), 2)." |
\n";
- $body .= " UTILE | ".moneyFormat(sum($ricavi) - sum($costi), 2)." |
\n";
- }
-
- // Stampa "Attività/Passività" se stato patrimoniale
- else {
- $costi = [];
- $ricavi = [];
-
- // Ciclo fra il conto economico per calcolare l'utile o la perdita
- $rs1 = $dbo->fetchArray('SELECT id, numero, descrizione FROM co_pianodeiconti1 WHERE NOT id="'.$idconto.'" ORDER BY numero DESC');
-
- for ($x = 0; $x < sizeof($rs1); ++$x) {
- // Ciclo fra i sotto-conti di livello 1
- $rs2 = $dbo->fetchArray('SELECT id, numero, descrizione FROM co_pianodeiconti2 WHERE idpianodeiconti1="'.$rs1[$x]['id'].'"');
-
- for ($y = 0; $y < sizeof($rs2); ++$y) {
- // Ciclo fra i sotto-conti di livello 2
- $rs3 = $dbo->fetchArray('SELECT id, numero, descrizione FROM co_pianodeiconti3 WHERE idpianodeiconti2="'.$rs2[$y]['id'].'"');
-
- for ($z = 0; $z < sizeof($rs3); ++$z) {
- // Inizializzo saldo finale
- $saldo_finale = [];
-
- // Calcolo saldo iniziale
- $rs = $dbo->fetchArray('SELECT SUM(totale) AS totale FROM co_movimenti WHERE idconto="'.$rs2[$y]['id'].'" AND data < '.prepare($date_start).'');
- $dare = [];
- $avere = [];
-
- $rs = $dbo->fetchArray('SELECT * FROM co_movimenti WHERE idconto="'.$rs3[$z]['id'].'" AND data >= '.prepare($date_start).' AND data <= '.prepare($date_end).' ORDER BY data ASC');
-
- for ($i = 0; $i < sizeof($rs); ++$i) {
- if ($rs[$i]['totale'] >= 0) {
- $dare[] = abs($rs[$i]['totale']);
- } else {
- $avere[] = abs($rs[$i]['totale']);
- }
- }
-
- $totale = sum($dare) - sum($avere);
-
- if ($totale >= 0) {
- $costi[] = abs($totale);
- } else {
- $ricavi[] = abs($totale);
- }
- }
- }
- }
-
- $body .= " \n";
- $body .= "
\n";
-
- // Tabella di riepilogo finale
- $totale_attivita = abs(sum($totale_attivita));
- $totale_passivita = abs(sum($totale_passivita));
- $utile_perdita = abs(sum($ricavi)) - abs(sum($costi));
-
- if ($utile_perdita < 0) {
- $pareggio1 = $totale_attivita + abs($utile_perdita);
- $pareggio2 = abs($totale_passivita);
- } else {
- $pareggio1 = $totale_attivita;
- $pareggio2 = abs($totale_passivita) + abs($utile_perdita);
- }
-
- $body .= "
-
- \n";
-
- // Attività
- $body .= " TOTALE ATTIVITÀ | ".moneyFormat($totale_attivita, 2)." | \n";
-
- // Passività
- $body .= " PASSIVITÀ | ".moneyFormat($totale_passivita, 2)." |
\n";
-
- if ($utile_perdita < 0) {
- // Perdita d'esercizio
- $body .= " PERDITA D'ESERCIZIO | ".moneyFormat(abs($utile_perdita), 2)." | \n";
-
- // Utile
- $body .= " | |
\n";
- } else {
- // Perdita d'esercizio
- $body .= " | | \n";
-
- // Utile
- $body .= " UTILE | ".moneyFormat(abs($utile_perdita), 2)." |
\n";
- }
-
- // PAREGGIO 1
- $body .= " TOTALE A PAREGGIO | ".moneyFormat($pareggio1, 2)." | \n";
-
- // PAREGGIO 2
- $body .= " TOTALE A PAREGGIO | ".moneyFormat($pareggio2, 2)." |
\n";
- }
-
- $body .= "
-
\n";
-}
diff --git a/templates/partitario_mastrino/piece.php b/templates/partitario_mastrino/piece.php
new file mode 100644
index 000000000..503255414
--- /dev/null
+++ b/templates/partitario_mastrino/piece.php
@@ -0,0 +1,47 @@
+.
+ */
+
+include_once __DIR__.'/../../core.php';
+
+if($record['titolo'] != $prev_titolo && get('lev') == 1){
+ echo '
+
+ '.$record['titolo'].' |
+
';
+}
+
+
+echo '
+
+ '.Translator::dateToLocale($record['data']).' |
+ '.$record['descrizione'].' | ';
+
+ if($record['totale']>=0){
+ echo ''.moneyFormat(abs($record['totale']), 2).' |
+ | ';
+ }
+ else{
+ echo ' |
+ '.moneyFormat(abs($record['totale']), 2).' | ';
+ }
+echo '
';
+$prev_titolo = $record['titolo'];
+
+
+
\ No newline at end of file
diff --git a/templates/partitario_mastrino/settings.php b/templates/partitario_mastrino/settings.php
new file mode 100644
index 000000000..3b5d7cf0a
--- /dev/null
+++ b/templates/partitario_mastrino/settings.php
@@ -0,0 +1,22 @@
+.
+ */
+
+return [
+ 'font-size' => '11pt',
+];
diff --git a/templates/partitario_mastrino/top.php b/templates/partitario_mastrino/top.php
new file mode 100644
index 000000000..7e4c32353
--- /dev/null
+++ b/templates/partitario_mastrino/top.php
@@ -0,0 +1,32 @@
+.
+ */
+
+include_once __DIR__.'/../../core.php';
+
+echo '
+
+
+
+ DATA |
+ DESCRIZIONE |
+ DARE |
+ AVERE |
+
+
+ ';
diff --git a/update/2_4_18.php b/update/2_4_18.php
index 1be8328c1..d9fc7d982 100644
--- a/update/2_4_18.php
+++ b/update/2_4_18.php
@@ -2,7 +2,10 @@
// File e cartelle deprecate
$files = [
- 'plugins/fornitori_articolo',
+ 'plugins/fornitori_articolo',
+ 'templates/partitario_mastrino/partitario.html',
+ 'templates/partitario_mastrino/partitario_body.html',
+ 'templates/partitario_mastrino/pdfgen.partitario_mastrino.php'
];
foreach ($files as $key => $value) {
diff --git a/update/2_4_18.sql b/update/2_4_18.sql
index e3501bb49..2be853f0c 100644
--- a/update/2_4_18.sql
+++ b/update/2_4_18.sql
@@ -279,3 +279,6 @@ INSERT INTO `fe_tipi_ritenuta` (`codice`, `descrizione`) VALUES
-- Disattivazione aliquote IVA con NATURA non più supportata dal tracciato 1.2.1 FE
-- andrà doverosamente specificato il sotto codice (esempio N3.1, N3.2 etc)
UPDATE `co_iva` SET `deleted_at` = now() WHERE `co_iva`.`codice_natura_fe` IN ('N2','N3','N6');
+
+-- Impostazione percentuale deducibile di default al 100%
+ALTER TABLE `co_pianodeiconti3` CHANGE `percentuale_deducibile` `percentuale_deducibile` DECIMAL(5,2) NOT NULL DEFAULT '100';