diff --git a/CHANGELOG.md b/CHANGELOG.md index d284cb024..8884fccad 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -74,6 +74,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Corretto filtro articoli negli automezzi prendendo correttamente la giacenza della sede centrale - Corretta selezione automatica iva all'aggiunta degli articoli nei documenti di vendita. Il sistema da priorità all'iva del fornitore se presente, altrimenti passa all'iva dell'articolo se presente, altrimenti assegna l'iva di default definita in impostazioni. - Corretta la visata vista riferimenti negli ordini cliente aggiungendo il numero esterno del DDT al posto dell'id come veniva erronamente visualizzato prima +- Corretta l'applicazione della rivalsa sulla marca da bollo ## 2.4.52 (2023-12-08) ### Aggiunto (Added) diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index 02e242448..610564725 100755 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -585,14 +585,14 @@ class Fattura extends Document // Salvataggio effettivo parent::save($options); - // Fix dei campi statici - $this->id_riga_bollo = $this->gestoreBollo->manageRigaMarcaDaBollo(); - $this->attributes['ritenutaacconto'] = $this->ritenuta_acconto; $this->attributes['iva_rivalsainps'] = $this->iva_rivalsa_inps; $this->attributes['rivalsainps'] = $this->rivalsa_inps; $this->attributes['ritenutaacconto'] = $this->ritenuta_acconto; + // Fix dei campi statici + $this->id_riga_bollo = $this->gestoreBollo->manageRigaMarcaDaBollo(); + // Generazione numero fattura se non presente (Bozza -> Emessa) if ((($stato_precedente->descrizione == 'Bozza' && $this->stato['descrizione'] == 'Emessa') or (!$is_fiscale)) && empty($this->numero_esterno)) { $this->numero_esterno = self::getNextNumeroSecondario($this->data, $this->direzione, $this->id_segment); diff --git a/modules/fatture/src/Gestori/Bollo.php b/modules/fatture/src/Gestori/Bollo.php index de8391493..9c4cee00f 100644 --- a/modules/fatture/src/Gestori/Bollo.php +++ b/modules/fatture/src/Gestori/Bollo.php @@ -72,37 +72,38 @@ class Bollo public function manageRigaMarcaDaBollo() { $riga = $this->fattura->rigaBollo; - $addebita_bollo = $this->fattura->addebita_bollo; $marca_da_bollo = $this->getBollo(); + $cassa_pred = database()->fetchOne('SELECT percentuale FROM co_rivalse WHERE id='.setting('Cassa previdenziale predefinita')); + // Verifico se la fattura ha righe con rivalsa applicata, esclusa la marca da bollo + $rivalsa = ($this->fattura->rivalsainps > 0 && $this->fattura->rivalsainps != (setting('Importo marca da bollo') * $cassa_pred['percentuale'] / 100)) ? 1 : 0; + // Rimozione riga bollo se nullo if (empty($addebita_bollo) || empty($marca_da_bollo)) { if (!empty($riga)) { $riga->delete(); } - return null; } - + // Creazione riga bollo se non presente if (empty($riga)) { $riga = Components\Riga::build($this->fattura); - $riga->save(); } - $riga->prezzo_unitario = $marca_da_bollo; $riga->qta = 1; $riga->descrizione = setting('Descrizione addebito bollo'); $riga->id_iva = setting('Iva da applicare su marca da bollo'); $riga->idconto = setting('Conto predefinito per la marca da bollo'); - + + // Applico la rivalsa alla marca da bollo se previsto if ((setting('Regime Fiscale') == 'RF19') && (!empty(setting('Cassa previdenziale predefinita')))) { - $riga['id_rivalsa_inps'] = setting('Cassa previdenziale predefinita'); + $riga['id_rivalsa_inps'] = $rivalsa ? setting('Cassa previdenziale predefinita') : ''; } - + $riga->save(); - + return $riga->id; } }