From e6b627e789baf100de49778079b39a3d7afd2dfa Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 6 Oct 2020 17:55:50 +0200 Subject: [PATCH 1/8] Miglioria minore --- templates/ddt/body.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/templates/ddt/body.php b/templates/ddt/body.php index 79b97530f..f84ae61a5 100755 --- a/templates/ddt/body.php +++ b/templates/ddt/body.php @@ -33,7 +33,7 @@ echo " ".tr('#', [], ['upper' => true])." - ".tr('Cod.', [], ['upper' => true])." + ".tr('Cod.', [], ['upper' => true])." ".tr('Descrizione', [], ['upper' => true])." ".tr('Q.tà', [], ['upper' => true]).''; @@ -65,7 +65,7 @@ foreach ($righe as $riga) { '.$num.' - '; + '; if ($riga->isArticolo()) { echo $riga->codice; From fc7edeacb12bb8906d4e53c591140c765820d926 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Tue, 6 Oct 2020 17:58:12 +0200 Subject: [PATCH 2/8] Correzione API per anteprima stampa --- src/API/Common/Stampa.php | 15 ++++++++++++--- update/2_4_18.sql | 4 ++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/API/Common/Stampa.php b/src/API/Common/Stampa.php index 067a6a359..7227d365f 100755 --- a/src/API/Common/Stampa.php +++ b/src/API/Common/Stampa.php @@ -28,17 +28,26 @@ class Stampa extends Resource implements RetrieveInterface { public function retrieve($request) { + $content = ''; + $print = PrintTemplate::where('name', $request['name'])->first(); if (!empty($print)) { $directory = base_dir().'/files/api'; - $data = Prints::render($print->id, $request['id_record'], $directory); - download($data['path']); + $string = strpos($request['resource'], 'binary') !== false; + $data = Prints::render($print->id, $request['id_record'], $directory, $string); + + if (!$string) { + download($data['path']); + } else { + $content = $data['pdf']; + } delete($data['path']); } return [ - 'custom' => '', + 'content' => base64_encode($content), + 'filename' => $data['name'], ]; } } diff --git a/update/2_4_18.sql b/update/2_4_18.sql index 76237e594..18a4618c6 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -232,3 +232,7 @@ UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_articoli` LEFT JOI -- Aggiunte note prima nota ALTER TABLE `co_movimenti` ADD `note` TEXT NOT NULL AFTER `descrizione`; + +-- Aggiunta risorse API dedicate alle Stampe in binary formato +INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES +(NULL, 'v1', 'retrieve', 'stampa-binary', 'API\\Common\\Stampa', '1'); From d0b3a59e3e2d9702db8ffffbee1ecaf5d7e3c793 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Tue, 6 Oct 2020 18:09:43 +0200 Subject: [PATCH 3/8] Fix movimentazione automatica per documenti --- modules/fatture/src/Components/Articolo.php | 2 +- src/Common/Components/Article.php | 2 +- update/2_4_18.sql | 5 ++--- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/modules/fatture/src/Components/Articolo.php b/modules/fatture/src/Components/Articolo.php index 4b798b100..83a53e669 100755 --- a/modules/fatture/src/Components/Articolo.php +++ b/modules/fatture/src/Components/Articolo.php @@ -33,7 +33,7 @@ class Articolo extends Article public function movimenta($qta) { - if (!$this->parent->movimenta_magazzino) { + if (!$this->getDocument()->movimenta_magazzino) { return; } diff --git a/src/Common/Components/Article.php b/src/Common/Components/Article.php index 65ef1790f..ed83f94db 100755 --- a/src/Common/Components/Article.php +++ b/src/Common/Components/Article.php @@ -79,7 +79,7 @@ abstract class Article extends Accounting */ public function movimenta($qta) { - if (!$this->parent->movimenta_magazzino) { + if (!$this->getDocument()->movimenta_magazzino) { return; } diff --git a/update/2_4_18.sql b/update/2_4_18.sql index 18a4618c6..1227e516b 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -225,13 +225,12 @@ ALTER TABLE `mg_articoli` ADD `um_secondaria` varchar(255), ADD `fattore_um_seco INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`, `help`) VALUES (NULL, 'Conferma automaticamente le quantità negli ordini cliente', '1', 'boolean', '1', 'Ordini', NULL, NULL); ALTER TABLE `or_righe_ordini` ADD `confermato` BOOLEAN NOT NULL AFTER `id_dettaglio_fornitore`; -UPDATE `or_righe_ordini` SET `confermato`=1; - +UPDATE `or_righe_ordini` SET `confermato` = 1; UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_articoli` LEFT JOIN an_anagrafiche ON mg_articoli.id_fornitore=an_anagrafiche.idanagrafica LEFT JOIN co_iva ON mg_articoli.idiva_vendita=co_iva.id LEFT JOIN (SELECT SUM(qta-qta_evasa) AS qta_impegnata, idarticolo FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine=or_ordini.id INNER JOIN or_tipiordine ON or_ordini.idtipoordine=or_tipiordine.id WHERE idstatoordine IN(SELECT id FROM or_statiordine WHERE completato=0) AND or_tipiordine.dir=\'entrata\' AND or_righe_ordini.confermato = 1 GROUP BY idarticolo) a ON a.idarticolo=mg_articoli.id LEFT JOIN mg_categorie ON mg_articoli.id_categoria=mg_categorie.id LEFT JOIN mg_categorie AS sottocategorie ON mg_articoli.id_sottocategoria=sottocategorie.id WHERE 1=1 AND (`mg_articoli`.`deleted_at`) IS NULL HAVING 2=2 ORDER BY `mg_articoli`.`descrizione`' WHERE `zz_modules`.`name` = 'Articoli'; -- Aggiunte note prima nota -ALTER TABLE `co_movimenti` ADD `note` TEXT NOT NULL AFTER `descrizione`; +ALTER TABLE `co_movimenti` ADD `note` TEXT NOT NULL AFTER `descrizione`; -- Aggiunta risorse API dedicate alle Stampe in binary formato INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES From 02cf5c34eaf5635407633aa40b43a18fba7bd703 Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 6 Oct 2020 19:05:24 +0200 Subject: [PATCH 4/8] Fix minore --- update/2_4_18.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update/2_4_18.sql b/update/2_4_18.sql index 1227e516b..b1fd626a1 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -230,7 +230,7 @@ UPDATE `or_righe_ordini` SET `confermato` = 1; UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `mg_articoli` LEFT JOIN an_anagrafiche ON mg_articoli.id_fornitore=an_anagrafiche.idanagrafica LEFT JOIN co_iva ON mg_articoli.idiva_vendita=co_iva.id LEFT JOIN (SELECT SUM(qta-qta_evasa) AS qta_impegnata, idarticolo FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine=or_ordini.id INNER JOIN or_tipiordine ON or_ordini.idtipoordine=or_tipiordine.id WHERE idstatoordine IN(SELECT id FROM or_statiordine WHERE completato=0) AND or_tipiordine.dir=\'entrata\' AND or_righe_ordini.confermato = 1 GROUP BY idarticolo) a ON a.idarticolo=mg_articoli.id LEFT JOIN mg_categorie ON mg_articoli.id_categoria=mg_categorie.id LEFT JOIN mg_categorie AS sottocategorie ON mg_articoli.id_sottocategoria=sottocategorie.id WHERE 1=1 AND (`mg_articoli`.`deleted_at`) IS NULL HAVING 2=2 ORDER BY `mg_articoli`.`descrizione`' WHERE `zz_modules`.`name` = 'Articoli'; -- Aggiunte note prima nota -ALTER TABLE `co_movimenti` ADD `note` TEXT NOT NULL AFTER `descrizione`; +ALTER TABLE `co_movimenti` ADD `note` TEXT AFTER `descrizione`; -- Aggiunta risorse API dedicate alle Stampe in binary formato INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES From d4fc82aa64174e56c7095e0b8cf3d207c2ce7d38 Mon Sep 17 00:00:00 2001 From: Luca <30728163+lucasalva87@users.noreply.github.com> Date: Tue, 6 Oct 2020 23:37:07 +0200 Subject: [PATCH 5/8] Fix tracciato 1.2.1 FE Fix minori --- gulpfile.js | 1 + modules/aggiornamenti/modutil.php | 1 + update/2_4_18.sql | 17 +++++++++++++++++ 3 files changed, 19 insertions(+) diff --git a/gulpfile.js b/gulpfile.js index 44079ad01..ef9a47822 100755 --- a/gulpfile.js +++ b/gulpfile.js @@ -393,6 +393,7 @@ function release(done) { '!.idea/**', '!.git/**', '!node_modules/**', + '!include/custom/**', '!backup/**', '!files/**', '!logs/**', diff --git a/modules/aggiornamenti/modutil.php b/modules/aggiornamenti/modutil.php index 535462349..8c0c68e05 100755 --- a/modules/aggiornamenti/modutil.php +++ b/modules/aggiornamenti/modutil.php @@ -30,6 +30,7 @@ function customStructure() 'modules', 'templates', 'plugins', + 'include', ]; // Controlli di personalizzazione fisica diff --git a/update/2_4_18.sql b/update/2_4_18.sql index b1fd626a1..1c5167fa1 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -235,3 +235,20 @@ ALTER TABLE `co_movimenti` ADD `note` TEXT AFTER `descrizione`; -- Aggiunta risorse API dedicate alle Stampe in binary formato INSERT INTO `zz_api_resources` (`id`, `version`, `type`, `resource`, `class`, `enabled`) VALUES (NULL, 'v1', 'retrieve', 'stampa-binary', 'API\\Common\\Stampa', '1'); + +-- Fix tracciato 1.2.1 FE (che potrà essere utilizzata a partire dal 01/10/2020 e sarà obbligatoria dal 01/01/2021) +INSERT INTO `fe_causali_pagamento_ritenuta` (`codice`, `descrizione`) VALUES ('M2', 'Prestazioni di lavoro autonomo non esercitate abitualmente per le quali sussiste l’obbligo di iscrizione alla Gestione Separata ENPAPI'); + +INSERT INTO `fe_causali_pagamento_ritenuta` (`codice`, `descrizione`) VALUES ('M1', 'Redditi derivanti dall’assunzione di obblighi di fare, di non fare o permettere'); + +INSERT INTO `fe_causali_pagamento_ritenuta` (`codice`, `descrizione`) VALUES ('L1', 'Redditi derivanti dall’utilizzazione economica di opere dell’ingegno, di brevetti industriali e di processi, che sono percepiti da soggetti che abbiano acquistato a titolo oneroso i diritti alla loro utilizzazione'); + +INSERT INTO `fe_causali_pagamento_ritenuta` (`codice`, `descrizione`) VALUES ('O1', 'Redditi derivanti dall’assunzione di obblighi di fare, di non fare o permettere, per le quali non sussiste l’obbligo di iscrizione alla gestione separata (Circ. INPS n. 104/2001)'); + +INSERT INTO `fe_causali_pagamento_ritenuta` (`codice`, `descrizione`) VALUES ('V1', 'Redditi derivanti da attività commerciali non esercitate abitualmente (ad esempio, provvigioni corrisposte per prestazioni occasionali ad agente o rappresentante di commercio, mediatore, procacciatore d’affari)'); + +INSERT INTO `fe_causali_pagamento_ritenuta` (`codice`, `descrizione`) VALUES ('V2', 'Redditi derivanti dalle prestazioni non esercitate abitualmente rese dagli incaricati alla vendita diretta a domicilio'); + +UPDATE `fe_causali_pagamento_ritenuta` SET `codice` = 'ZO' WHERE `fe_causali_pagamento_ritenuta`.`codice` = 'Z'; + +UPDATE `zz_settings` SET `valore` = 'ZO' WHERE `zz_settings`.`nome` = "Causale ritenuta d'acconto" AND `zz_settings`.`valore` = 'Z'; \ No newline at end of file From f7ac4d2652997b03ce8268556ff5fcb3f927f8dd Mon Sep 17 00:00:00 2001 From: Luca <30728163+lucasalva87@users.noreply.github.com> Date: Wed, 7 Oct 2020 00:23:39 +0200 Subject: [PATCH 6/8] Introduzione tabella di supporto per nodo tracciato 1.2.1 FE --- modules/primanota/src/Movimento.php | 2 +- plugins/exportFE/src/FatturaElettronica.php | 2 +- update/2_4_18.sql | 18 +++++++++++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/modules/primanota/src/Movimento.php b/modules/primanota/src/Movimento.php index ff7674952..bd57a229e 100755 --- a/modules/primanota/src/Movimento.php +++ b/modules/primanota/src/Movimento.php @@ -44,7 +44,7 @@ class Movimento extends Model $model->idmastrino = $mastrino->idmastrino; $model->data = $mastrino->data; $model->descrizione = $mastrino->descrizione; - $model->note = ($mastrino->note)? :''; + $model->note = $mastrino->note; $model->primanota = $mastrino->primanota; $model->is_insoluto = $mastrino->is_insoluto; diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index a8e537081..c848258ca 100755 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -825,7 +825,7 @@ class FatturaElettronica if (!empty($id_ritenuta)) { $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', 'ImportoRitenuta' => $totale_ritenutaacconto, diff --git a/update/2_4_18.sql b/update/2_4_18.sql index 1c5167fa1..a95008e53 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -251,4 +251,20 @@ INSERT INTO `fe_causali_pagamento_ritenuta` (`codice`, `descrizione`) VALUES ('V UPDATE `fe_causali_pagamento_ritenuta` SET `codice` = 'ZO' WHERE `fe_causali_pagamento_ritenuta`.`codice` = 'Z'; -UPDATE `zz_settings` SET `valore` = 'ZO' WHERE `zz_settings`.`nome` = "Causale ritenuta d'acconto" AND `zz_settings`.`valore` = 'Z'; \ No newline at end of file +UPDATE `zz_settings` SET `valore` = 'ZO' WHERE `zz_settings`.`nome` = "Causale ritenuta d'acconto" AND `zz_settings`.`valore` = 'Z'; + +-- Introduzione tabella di supporto per nodo tracciato 1.2.1 FE +CREATE TABLE IF NOT EXISTS `fe_tipi_ritenuta` ( + `codice` varchar(4) NOT NULL, + `descrizione` varchar(255) NOT NULL, + PRIMARY KEY (`codice`) +) ENGINE=InnoDB; + + +INSERT INTO `fe_tipi_ritenuta` (`codice`, `descrizione`) VALUES +('RT01', 'Ritenuta persone fisiche'), +('RT02', 'Ritenuta persone giuridiche'), +('RT03', 'Contributo INPS'), +('RT04', 'Contributo ENASARCO'), +('RT05', 'Contributo ENPAM'), +('RT06', 'Altro contributo previdenziale'); \ No newline at end of file From 1f52d9c0332744ebfcb45e26128e4cc61c9fee8d Mon Sep 17 00:00:00 2001 From: Luca <30728163+lucasalva87@users.noreply.github.com> Date: Wed, 7 Oct 2020 00:43:59 +0200 Subject: [PATCH 7/8] =?UTF-8?q?Disattivazione=20aliquote=20IVA=20con=20NAT?= =?UTF-8?q?URA=20non=20pi=C3=B9=20supportata=20dal=20tracciato=201.2.1=20F?= =?UTF-8?q?E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ImportoBollo --> con la nuova versione in vigore dal 01/01/2021, la compilazione di questo nodo è diventata facoltativa. --- plugins/exportFE/src/FatturaElettronica.php | 4 +++- update/2_4_18.sql | 7 ++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index c848258ca..7987fe618 100755 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -835,11 +835,13 @@ class FatturaElettronica } // Bollo (2.1.1.6) + // ImportoBollo --> con la nuova versione in vigore dal 01/01/2021, la compilazione di questo nodo è diventata facoltativa. + // considerato che l'importo è noto e può essere solo di 2,00 Euro. $riga_bollo = $documento->rigaBollo; if (!empty($riga_bollo)) { $result['DatiBollo'] = [ 'BolloVirtuale' => 'SI', - 'ImportoBollo' => $riga_bollo->totale, + //'ImportoBollo' => $riga_bollo->totale, ]; } diff --git a/update/2_4_18.sql b/update/2_4_18.sql index a95008e53..608c71142 100644 --- a/update/2_4_18.sql +++ b/update/2_4_18.sql @@ -267,4 +267,9 @@ INSERT INTO `fe_tipi_ritenuta` (`codice`, `descrizione`) VALUES ('RT03', 'Contributo INPS'), ('RT04', 'Contributo ENASARCO'), ('RT05', 'Contributo ENPAM'), -('RT06', 'Altro contributo previdenziale'); \ No newline at end of file +('RT06', 'Altro contributo previdenziale'); + + +-- 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'); \ No newline at end of file From b6cd04bdaab063433b2af42e874e7a64c2f5969b Mon Sep 17 00:00:00 2001 From: Matteo Date: Wed, 7 Oct 2020 12:18:42 +0200 Subject: [PATCH 8/8] Fix per data in import FE --- plugins/importFE/src/FatturaElettronica.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/plugins/importFE/src/FatturaElettronica.php b/plugins/importFE/src/FatturaElettronica.php index 8efad4761..cd833684e 100755 --- a/plugins/importFE/src/FatturaElettronica.php +++ b/plugins/importFE/src/FatturaElettronica.php @@ -314,6 +314,11 @@ class FatturaElettronica { $dati_generali = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento']; $data = $dati_generali['Data']; + + //Se rilevo che la data contine anche l'orario la formatto togliendo l'orario + if(strpos($data, '+')){ + $data = date('Y-m-d', strtotime($data)); + } $fattura = $this->prepareFattura($id_tipo, $data, $id_sezionale, $ref_fattura); $this->fattura = $fattura;