From d5a129d2326786a7f54c5b661b3d6876df93da65 Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Thu, 24 Feb 2022 14:52:51 +0100 Subject: [PATCH 1/8] Rimozione id_record vuoto nei form di aggiunta --- modules/combinazioni_articoli/add.php | 3 +-- modules/contratti/add.php | 3 --- modules/ddt/add.php | 3 --- modules/fatture/add.php | 3 --- modules/interventi/add.php | 5 +---- modules/ordini/add.php | 3 --- modules/preventivi/add.php | 3 --- plugins/dichiarazioni_intento/add.php | 3 --- plugins/referenti/add.php | 3 --- plugins/sedi/add.php | 3 --- 10 files changed, 2 insertions(+), 30 deletions(-) diff --git a/modules/combinazioni_articoli/add.php b/modules/combinazioni_articoli/add.php index 647becd2b..b2f15bcc4 100644 --- a/modules/combinazioni_articoli/add.php +++ b/modules/combinazioni_articoli/add.php @@ -7,8 +7,7 @@ echo ' - - +
diff --git a/modules/contratti/add.php b/modules/contratti/add.php index b42fde314..0d32c8177 100755 --- a/modules/contratti/add.php +++ b/modules/contratti/add.php @@ -28,9 +28,6 @@ echo ' - - -
{[ "type": "text", "label": "'.tr('Nome').'", "name": "nome", "required": 1 ]} diff --git a/modules/ddt/add.php b/modules/ddt/add.php index c96d79cb2..4fac4baa7 100755 --- a/modules/ddt/add.php +++ b/modules/ddt/add.php @@ -44,9 +44,6 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : ''; - - -
{[ "type": "date", "label": "", "name": "data", "required": 1, "value": "-now-" ]} diff --git a/modules/fatture/add.php b/modules/fatture/add.php index 73d3374ed..4a6973f18 100755 --- a/modules/fatture/add.php +++ b/modules/fatture/add.php @@ -42,9 +42,6 @@ $idtipodocumento = $dbo->selectOne('co_tipidocumento', ['id'], [ - - -
- - - - '; + '; if (!empty($id_promemoria_contratto)) { echo ''; diff --git a/modules/ordini/add.php b/modules/ordini/add.php index 703ec3b7b..cc7e99912 100755 --- a/modules/ordini/add.php +++ b/modules/ordini/add.php @@ -40,9 +40,6 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : $user['idan - - -
{[ "type": "date", "label": "", "name": "data", "required": 1, "value": "-now-" ]} diff --git a/modules/preventivi/add.php b/modules/preventivi/add.php index 159ad4329..4892bcdd1 100755 --- a/modules/preventivi/add.php +++ b/modules/preventivi/add.php @@ -25,9 +25,6 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : $user['idan - - -
{[ "type": "date", "label": "", "name": "data_bozza", "value": "", "required": 1 ]} diff --git a/plugins/dichiarazioni_intento/add.php b/plugins/dichiarazioni_intento/add.php index e67d1297a..df8e08c35 100755 --- a/plugins/dichiarazioni_intento/add.php +++ b/plugins/dichiarazioni_intento/add.php @@ -25,9 +25,6 @@ echo ' - - -
diff --git a/plugins/referenti/add.php b/plugins/referenti/add.php index 1160f2f6d..6bc3d5ecb 100755 --- a/plugins/referenti/add.php +++ b/plugins/referenti/add.php @@ -25,9 +25,6 @@ echo ' - - -
{[ "type": "text", "label": "'.tr('Nominativo').'", "name": "nome", "required": 1 ]} diff --git a/plugins/sedi/add.php b/plugins/sedi/add.php index b3efadd1a..8c372dbe8 100755 --- a/plugins/sedi/add.php +++ b/plugins/sedi/add.php @@ -25,9 +25,6 @@ echo ' - - -
{[ "type": "select", "label": "'.tr('Anagrafica').'", "name": "id_anagrafica", "required": "1", "value": "'.$id_parent.'", "ajax-source": "anagrafiche", "disabled": 1 ]} From f9e619d557e156c10aeefab8a01d9f0103d010bd Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Thu, 24 Feb 2022 14:53:17 +0100 Subject: [PATCH 2/8] Fix import articoli da CSV --- modules/articoli/src/Import/CSV.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/articoli/src/Import/CSV.php b/modules/articoli/src/Import/CSV.php index 1dc0a3f5c..93c211331 100644 --- a/modules/articoli/src/Import/CSV.php +++ b/modules/articoli/src/Import/CSV.php @@ -305,9 +305,6 @@ class CSV extends CSVImporter $articolo->idiva_vendita = $aliquota->id; $articolo->attivo = 1; - // Prezzo di vendita - $articolo->setPrezzoVendita($record['prezzo_vendita'], $aliquota->id ? $aliquota->id : setting('Iva predefinita')); - // Esportazione della quantità indicata $qta_registrata = (float) ($record['qta']); $nome_sede = $record['nome_sede']; @@ -386,6 +383,9 @@ class CSV extends CSVImporter 'id_sottocategoria' => $sottocategoria->id ?: $articolo['id_sottocategoria'], ]); + // Prezzo di vendita + $articolo->setPrezzoVendita($record['prezzo_vendita'], $aliquota->id ? $aliquota->id : setting('Iva predefinita')); + $articolo->save(); // Movimentazione della quantità registrata From 02f5fe0cdcd0e631bfc496d7386e9b36e23f0f9c Mon Sep 17 00:00:00 2001 From: MatteoPistorello Date: Thu, 24 Feb 2022 16:42:36 +0100 Subject: [PATCH 3/8] =?UTF-8?q?Fix=20conteggio=20righe=20collegate=20ad=20?= =?UTF-8?q?unit=C3=A0=20di=20misura?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/misure/edit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/misure/edit.php b/modules/misure/edit.php index c191a87a4..b94f6d4ae 100755 --- a/modules/misure/edit.php +++ b/modules/misure/edit.php @@ -52,7 +52,7 @@ if (!empty($righe)) { echo '
'.tr('Ci sono _NUM_ righe collegate', [ - '_NUM_' => count($righe), + '_NUM_' => $righe, ]).'.
'; } From 8da180c8c540dd672526ee028e642cf6f2b3ca92 Mon Sep 17 00:00:00 2001 From: Luca Date: Fri, 25 Feb 2022 16:11:06 +0100 Subject: [PATCH 4/8] Fix select2 su Firefox evita a Firefox di memorizzare nella cache l'ultima opzione selezionata --- src/HTMLBuilder/Handler/SelectHandler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/HTMLBuilder/Handler/SelectHandler.php b/src/HTMLBuilder/Handler/SelectHandler.php index b38802c5a..1121d494e 100755 --- a/src/HTMLBuilder/Handler/SelectHandler.php +++ b/src/HTMLBuilder/Handler/SelectHandler.php @@ -55,7 +55,7 @@ class SelectHandler implements HandlerInterface // Inizializzazione del codice HTML $result = ' - '; // Delega della generazione del codice HTML in base alle caratteristiche del formato // Gestione delle richieste AJAX (se il campo "ajax-source" è impostato) From 3c134f00d8db506eaaa105dab6abbfa33f6d8c0d Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 25 Feb 2022 16:41:05 +0100 Subject: [PATCH 5/8] Fix esportazione file in bulk con stesso nome generato --- modules/fatture/bulk.php | 2 +- modules/interventi/bulk.php | 2 +- src/Prints.php | 38 ++++++++++++++++++++++++++++++++----- 3 files changed, 35 insertions(+), 7 deletions(-) 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/src/Prints.php b/src/Prints.php index 5c4d43884..d07155913 100755 --- a/src/Prints.php +++ b/src/Prints.php @@ -139,7 +139,7 @@ class Prints * @param string $directory * @param bool $return_string */ - public static function render($print, $id_record, $directory = null, $return_string = false) + public static function render($print, $id_record, $directory = null, $return_string = false, $overwrite = true) { //ob_end_clean(); // Compatibilità con versioni vecchie delle stampe $dbo = $database = database(); @@ -186,9 +186,9 @@ class Prints if (self::isCompletelyCustom($print)) { return self::customLoader($infos['id'], $id_record, $directory, $return_string); } elseif (self::isOldStandard($print)) { - return self::oldLoader($infos['id'], $id_record, $directory, $return_string); + return self::oldLoader($infos['id'], $id_record, $directory, $return_string, $overwrite); } else { - return self::loader($infos['id'], $id_record, $directory, $return_string); + return self::loader($infos['id'], $id_record, $directory, $return_string, $overwrite); } } @@ -354,7 +354,7 @@ class Prints * @param string $directory * @param bool $return_string */ - protected static function oldLoader($id_print, $id_record, $directory = null, $return_string = false) + protected static function oldLoader($id_print, $id_record, $directory = null, $return_string = false, $overwrite = true) { $format = 'A4'; @@ -415,6 +415,20 @@ class Prints $html2pdf->writeHTML($report); $html2pdf->pdf->setTitle($title); + // Ridenominazione file se l'impostazione è disattivata + if (!$overwrite) { + $index = 1; + + $file_parts = pathinfo($path); + $filename_no_extension = $file_parts['filename']; + + while (file_exists($directory.'/'.$file_parts['basename'])) { + $path = $file_parts['dirname'].'/'.$filename_no_extension.'_'.$index++.'.'.$file_parts['extension']; + + $file_parts = pathinfo($path); + } + } + $pdf = $html2pdf->output($path, $mode); $file['pdf'] = $pdf; }else{ @@ -458,7 +472,7 @@ class Prints * @param string $directory * @param bool $return_string */ - protected static function loader($id_print, $id_record, $directory = null, $return_string = false) + protected static function loader($id_print, $id_record, $directory = null, $return_string = false, $overwrite = true) { $infos = self::get($id_print); $options = self::readOptions($infos['options']); @@ -650,6 +664,20 @@ class Prints $title = $file['name']; $path = $file['path']; + // Ridenominazione file se l'impostazione è disattivata + if (!$overwrite) { + $index = 1; + + $file_parts = pathinfo($path); + $filename_no_extension = $file_parts['filename']; + + while (file_exists($directory.'/'.$file_parts['basename'])) { + $path = $file_parts['dirname'].'/'.$filename_no_extension.'_'.$index++.'.'.$file_parts['extension']; + + $file_parts = pathinfo($path); + } + } + // Impostazione del titolo del PDF $mpdf->SetTitle($title); From 34ca2df7a6294e492bbd2d98e7854c8f515c92d8 Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 25 Feb 2022 17:12:35 +0100 Subject: [PATCH 6/8] Fix per tipologia ritenuta acconto in FE --- plugins/exportFE/src/FatturaElettronica.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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"), From 40bdbbb7fbd0b34b6617d5cba05c18bf283ddd20 Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 25 Feb 2022 18:13:11 +0100 Subject: [PATCH 7/8] Ampliamento visualizzazione movimenti contabili --- plugins/movimenti_contabili/edit.php | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) 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 ' @@ -61,6 +63,33 @@ if (!empty($movimenti)) { '; + + $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 ' + + + + + + + '; + + } } echo ' From 876dd2dfed23e39138b30ae49ac7849af5d0fbd7 Mon Sep 17 00:00:00 2001 From: loviuz Date: Fri, 25 Feb 2022 18:42:12 +0100 Subject: [PATCH 8/8] Correzione widget valore magazzino --- update/2_4_31.sql | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/update/2_4_31.sql b/update/2_4_31.sql index 4e8f8f2c3..6a98b53ef 100644 --- a/update/2_4_31.sql +++ b/update/2_4_31.sql @@ -29,4 +29,7 @@ INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `search`, ` -- Aggiunta opzione formattazione HTML nelle viste per la gestione dei campi CKeditor ALTER TABLE `zz_views` ADD `html_format` TINYINT NOT NULL DEFAULT '1' AFTER `format`; -UPDATE `zz_views` SET `html_format` = '1'; \ No newline at end of file +UPDATE `zz_views` SET `html_format` = '1'; + +-- Correzione widget valore magazzino +UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(\" \", REPLACE(REPLACE(REPLACE(FORMAT(SUM(prezzo_acquisto*qta),2), \",\", \"#\"), \".\", \",\"), \"#\", \".\"), \"€\") AS dato FROM mg_articoli WHERE qta>0 AND deleted_at IS NULL AND servizio=0' WHERE `zz_widgets`.`name` = 'Valore magazzino'; \ No newline at end of file
'.($movimento['totale']<0 ? moneyFormat(abs($movimento['totale'])) : "").' '.moneyFormat($scalare).'
'.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).'