From c4e3c2f484721b3a4f396b93c43c14d6ae625c8a Mon Sep 17 00:00:00 2001 From: Pek5892 Date: Fri, 12 Apr 2024 13:22:14 +0200 Subject: [PATCH] Fix riferimenti --- modules/fatture/src/Gestori/Bollo.php | 2 +- modules/ordini/src/Ordine.php | 4 ++-- modules/partitario/edit.php | 22 +++++++++++---------- plugins/exportFE/edit.php | 4 ++-- plugins/exportFE/src/FatturaElettronica.php | 10 ++++++---- src/Common/Components/Component.php | 8 ++++++-- templates/fatture/body.php | 6 ++++-- update/2_5_1.sql | 5 +++++ 8 files changed, 38 insertions(+), 23 deletions(-) diff --git a/modules/fatture/src/Gestori/Bollo.php b/modules/fatture/src/Gestori/Bollo.php index a48df1dee..a3f721051 100644 --- a/modules/fatture/src/Gestori/Bollo.php +++ b/modules/fatture/src/Gestori/Bollo.php @@ -54,7 +54,7 @@ class Bollo $bollo = ($this->fattura->direzione == 'uscita') ? $this->fattura->bollo : setting('Importo marca da bollo'); $marca_da_bollo = 0; - if (abs($bollo) > 0 && abs($importo_righe_bollo) > setting("Soglia minima per l'applicazione della marca da bollo")) { + if ($bollo && abs($bollo) > 0 && abs($importo_righe_bollo) > setting("Soglia minima per l'applicazione della marca da bollo")) { $marca_da_bollo = $bollo; } diff --git a/modules/ordini/src/Ordine.php b/modules/ordini/src/Ordine.php index bb2f73750..1a72666b4 100755 --- a/modules/ordini/src/Ordine.php +++ b/modules/ordini/src/Ordine.php @@ -273,12 +273,12 @@ class Ordine extends Document public function getReferenceNumber() { - return $this->numero_cliente ?: ($this->numero_esterno ?: $this->numero); + return setting('Visualizza numero ordine cliente') ? ($this->numero_cliente ?: ($this->numero_esterno ?: $this->numero)) : ($this->numero_esterno ?: $this->numero); } public function getReferenceDate() { - return $this->data_cliente ?: $this->data; + return setting('Visualizza numero ordine cliente') ? ($this->data_cliente ?: $this->data) : $this->data; } public function getReferenceRagioneSociale() diff --git a/modules/partitario/edit.php b/modules/partitario/edit.php index 0c7966bc1..a2b827b3b 100755 --- a/modules/partitario/edit.php +++ b/modules/partitario/edit.php @@ -112,17 +112,19 @@ foreach ($primo_livello as $conto_primo) { '; // Somma dei totali - if ($conto_primo['descrizione'] == 'Patrimoniale') { - if ($totale_conto2 > 0) { - $totale_attivita[] = abs($totale_conto2); + if ($totale_conto2) { + if ($conto_primo['descrizione'] == 'Patrimoniale') { + if ($totale_conto2 > 0) { + $totale_attivita[] = abs($totale_conto2); + } else { + $totale_passivita[] = abs($totale_conto2); + } } else { - $totale_passivita[] = abs($totale_conto2); - } - } else { - if ($totale_conto2 > 0) { - $totale_ricavi[] = abs($totale_conto2); - } else { - $totale_costi[] = abs($totale_conto2); + if ($totale_conto2 > 0) { + $totale_ricavi[] = abs($totale_conto2); + } else { + $totale_costi[] = abs($totale_conto2); + } } } diff --git a/plugins/exportFE/edit.php b/plugins/exportFE/edit.php index ea4a3fcaa..3a043b7ac 100755 --- a/plugins/exportFE/edit.php +++ b/plugins/exportFE/edit.php @@ -26,8 +26,8 @@ use Util\XML; if ($fattura !== null) { /* Per le PA EC02 e EC01 sono dei stati successivi a NE il quale a sua volta รจ successivo a RC. EC01 e EC02 sono definiti all'interno della ricevuta di NE che di fatto indica il rifiuto o l'accettazione. */ - $stato_fe = StatoFE::find($fattura->codice_stato_fe)->id_record; - $abilita_genera = $fattura->stato->getTranslation('name') != 'Bozza' && (empty($fattura->codice_stato_fe) || intval($stato_fe['is_generabile'])); + $stato_fe = StatoFE::find($fattura->codice_stato_fe); + $abilita_genera = $fattura->stato->getTranslation('name') != 'Bozza' && (empty($fattura->codice_stato_fe) || intval($stato_fe->is_generabile)); $ricevuta_principale = $fattura->getRicevutaPrincipale(); if (!empty($fattura_pa)) { diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 0b5381619..6d7a206cd 100755 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -1419,11 +1419,13 @@ class FatturaElettronica } } - // $descrizione = $riga['descrizione']; - + $descrizione = $riga['descrizione']; // Aggiunta dei riferimenti ai documenti - if (setting('Riferimento dei documenti in Fattura Elettronica') && $riga->hasOriginalComponent()) { - $descrizione .= "\n".$riga->getOriginalComponent()->getDocument()->getReference(); + if (setting('Riferimento dei documenti in Fattura Elettronica') == 0) { + $pos = strpos($descrizione, 'Rif.'); + if ($pos !== false) { + $descrizione = substr($descrizione, 0, $pos); + } } $dettaglio['Descrizione'] = $descrizione; diff --git a/src/Common/Components/Component.php b/src/Common/Components/Component.php index ac8e4e94f..b6f5877ef 100644 --- a/src/Common/Components/Component.php +++ b/src/Common/Components/Component.php @@ -230,9 +230,13 @@ abstract class Component extends Model [$riferimento_precedente, $nuovo_riferimento] = $model->impostaOrigine($this); // Correzione della descrizione - $attributes['descrizione'] = str_replace($riferimento_precedente, '', $attributes['descrizione']); - if (setting('Aggiungi riferimento tra documenti')) { + if (setting('Mantieni riferimenti tra tutti i documenti collegati')) { + $attributes['descrizione'] .= $nuovo_riferimento; + } + + if (setting('Aggiungi riferimento tra documenti') && empty(setting('Mantieni riferimenti tra tutti i documenti collegati'))) { + $attributes['descrizione'] = $riferimento_precedente ? str_replace($riferimento_precedente, '', $attributes['descrizione']) : $attributes['descrizione']; $attributes['descrizione'] .= $nuovo_riferimento; } } diff --git a/templates/fatture/body.php b/templates/fatture/body.php index 0430a5e98..046431466 100755 --- a/templates/fatture/body.php +++ b/templates/fatture/body.php @@ -95,8 +95,10 @@ foreach ($righe as $riga) { if (in_array($riga->id, $riferimento)) { if ($riga->id === $riferimento[0]) { $riga_ordine = $database->fetchOne('SELECT numero_cliente, data_cliente FROM or_ordini WHERE id = '.prepare($riga->idordine)); - if (!empty($riga_ordine['numero_cliente']) && !empty($riga_ordine['data_cliente'])) { - $text = $text.'Ordine n. '.$riga_ordine['numero_cliente'].' del '.Translator::dateToLocale($riga_ordine['data_cliente']).'
'; + if (!(setting('Visualizza numero ordine cliente'))) { + if (!empty($riga_ordine['numero_cliente']) && !empty($riga_ordine['data_cliente'])) { + $text = $text.'Ordine n. '.$riga_ordine['numero_cliente'].' del '.Translator::dateToLocale($riga_ordine['data_cliente']).'
'; + } } $r['descrizione'] = str_replace('Rif. '.strtolower($key), '', $r['descrizione']); preg_match("/Rif\.(.*)/s", $r['descrizione'], $rif2); diff --git a/update/2_5_1.sql b/update/2_5_1.sql index 25be7541e..2450b3075 100644 --- a/update/2_5_1.sql +++ b/update/2_5_1.sql @@ -188,3 +188,8 @@ ALTER TABLE `zz_hooks_lang` ADD CONSTRAINT `zz_hooks_lang_ibfk_2` FOREIGN KEY (` ALTER TABLE `zz_groups_lang` ADD CONSTRAINT `zz_groups_lang_ibfk_2` FOREIGN KEY (`id_lang`) REFERENCES `zz_langs`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; ALTER TABLE `zz_group_module_lang` ADD CONSTRAINT `zz_group_module_lang_ibfk_2` FOREIGN KEY (`id_lang`) REFERENCES `zz_langs`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; ALTER TABLE `zz_cache_lang` ADD CONSTRAINT `zz_cache_lang_ibfk_2` FOREIGN KEY (`id_lang`) REFERENCES `zz_langs`(`id`) ON DELETE CASCADE ON UPDATE RESTRICT; + +ALTER TABLE `zz_settings_lang` CHANGE `help` `help` VARCHAR(500) NULL; +-- Aggiunta impostazione per numero da visualizzare negli ordini +INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES (NULL, 'Visualizza numero ordine cliente', '1', 'boolean', '1', 'Ordini', NULL); +INSERT INTO `zz_settings_lang` (`id_record`, `id_lang`, `title`, `help`) VALUES ((SELECT `id` FROM `zz_settings` WHERE `nome` = 'Visualizza numero ordine cliente'), (SELECT `valore` FROM `zz_settings` WHERE `nome` = "Lingua"), 'Visualizza numero ordine cliente', 'Se abilitata, utilizza nei documenti il numero d\'ordine del cliente al posto del numero interno dell\'ordine'); \ No newline at end of file