diff --git a/modules/ddt/modutil.php b/modules/ddt/modutil.php index eacc4aa7d..d17c701bb 100644 --- a/modules/ddt/modutil.php +++ b/modules/ddt/modutil.php @@ -252,7 +252,7 @@ function verifica_numero_ddt(DDT $ddt) $documenti = $filtered; $ultimo = $numero; - } while ($numero != $fattura->numero_esterno); + } while ($numero != $ddt->numero_esterno); return null; } \ No newline at end of file diff --git a/modules/fatture/bulk.php b/modules/fatture/bulk.php index fde0ad2d8..9f585c9ff 100755 --- a/modules/fatture/bulk.php +++ b/modules/fatture/bulk.php @@ -53,7 +53,7 @@ switch (post('op')) { foreach ($fatture as $r) { $print = Prints::getModulePredefinedPrint($id_module); - Prints::render($print['id'], $r['id'], $dir.'tmp/'); + Prints::render($print['id'], $r['id'], $dir.'tmp/', false, false); } // Creazione zip diff --git a/modules/interventi/bulk.php b/modules/interventi/bulk.php index 6f89edf82..fd23a3b2f 100755 --- a/modules/interventi/bulk.php +++ b/modules/interventi/bulk.php @@ -56,7 +56,7 @@ switch (post('op')) { foreach ($interventi as $r) { $print = Prints::getModulePredefinedPrint($id_module); - Prints::render($print['id'], $r['id'], $dir.'tmp/'); + Prints::render($print['id'], $r['id'], $dir.'tmp/', false, false); } $dir = slashes($dir); diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index d58338290..1d1c68f64 100755 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -908,7 +908,7 @@ class FatturaElettronica $percentuale = database()->fetchOne('SELECT percentuale FROM co_ritenutaacconto WHERE id = '.prepare($id_ritenuta))['percentuale']; // Con la nuova versione in vigore dal 01/01/2021, questo nodo diventa ripetibile. $result['DatiRitenuta'] = [ - 'TipoRitenuta' => (Validate::isValidTaxCode($azienda['codice_fiscale']) and $cliente['tipo'] == 'Privato') ? 'RT01' : 'RT02', + 'TipoRitenuta' => ($azienda['piva'] != $azienda['codice_fiscale'] & $azienda['tipo'] != 'Ente pubblico') ? 'RT01' : 'RT02', 'ImportoRitenuta' => $totale_ritenutaacconto, 'AliquotaRitenuta' => $percentuale, 'CausalePagamento' => setting("Causale ritenuta d'acconto"), diff --git a/plugins/movimenti_contabili/edit.php b/plugins/movimenti_contabili/edit.php index 90a12d6a7..46de3a94f 100644 --- a/plugins/movimenti_contabili/edit.php +++ b/plugins/movimenti_contabili/edit.php @@ -29,6 +29,8 @@ if ($modulo == 'Anagrafiche') { $movimenti = $dbo->fetchArray('SELECT co_movimenti.*, SUM(totale) AS totale, co_pianodeiconti3.descrizione, co_pianodeiconti3.numero AS conto3, co_pianodeiconti2.numero AS conto2 FROM co_movimenti LEFT JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id LEFT JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE iddocumento='.prepare($id_record).' GROUP BY idmastrino, idconto ORDER BY data, idmastrino'); } +$idmastrini_processati = [-1]; + if (!empty($movimenti)) { echo '
'.($movimento['totale']<0 ? moneyFormat(abs($movimento['totale'])) : "").' | '.moneyFormat($scalare).' | '; + + $idmastrini_processati[] = $movimento['idmastrino']; + } + + // Altri movimenti del mastrino collegati ma non direttamente collegati alla fattura (es. spese bancarie) + if ($modulo != 'Anagrafiche') { + $altri_movimenti = $dbo->fetchArray('SELECT co_movimenti.*, SUM(totale) AS totale, co_pianodeiconti3.descrizione, co_pianodeiconti3.numero AS conto3, co_pianodeiconti2.numero AS conto2 FROM co_movimenti LEFT JOIN co_pianodeiconti3 ON co_movimenti.idconto=co_pianodeiconti3.id LEFT JOIN co_pianodeiconti2 ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id WHERE iddocumento=0 AND idmastrino IN('.implode(',', $idmastrini_processati).') GROUP BY idmastrino, idconto ORDER BY data, idmastrino'); + + foreach ($altri_movimenti as $altro_movimento) { + $documento = $modulo == 'Anagrafiche' ? Fattura::find($altro_movimento['iddocumento']) : null; + $scalare += $altro_movimento['totale']; + $descrizione = $altro_movimento['conto2'].'.'.$altro_movimento['conto3'].' - '.$altro_movimento['descrizione']; + + if( $altro_movimento['primanota']==1 ){ + $descrizione = Modules::link('Prima nota',$altro_movimento['idmastrino'],$descrizione); + } + + echo ' +|||
'.Translator::dateToLocale($altro_movimento['data']).' | +'.$descrizione.''.($documento ? $documento->getReference() : '').' | +'.($altro_movimento['totale']>0 ? moneyFormat(abs($altro_movimento['totale'])) : "").' | +'.($altro_movimento['totale']<0 ? moneyFormat(abs($altro_movimento['totale'])) : "").' | +'.moneyFormat($scalare).' | +