diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index 31bf18eef..38b9ed886 100644 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -396,12 +396,7 @@ class Fattura extends Document public function save(array $options = []) { // Fix dei campi statici - $bollo = $this->bollo; - if ($bollo == null) { - $bollo = $this->calcolaMarcaDaBollo(); - } - - $this->manageRigaMarcaDaBollo($bollo, $this->addebita_bollo); + $this->manageRigaMarcaDaBollo(); $this->attributes['ritenutaacconto'] = $this->ritenuta_acconto; $this->attributes['iva_rivalsainps'] = $this->iva_rivalsa_inps; @@ -516,8 +511,12 @@ class Fattura extends Document return $result; } - protected function calcolaMarcaDaBollo() + public function getBollo() { + if (isset($this->bollo)) { + return $this->bollo; + } + $righe_bollo = $this->getRighe()->filter(function ($item, $key) { return $item->aliquota != null && in_array($item->aliquota->codice_natura_fe, ['N1', 'N2', 'N3', 'N4']); }); @@ -537,10 +536,13 @@ class Fattura extends Document return $marca_da_bollo; } - protected function manageRigaMarcaDaBollo($marca_da_bollo, $addebita_bollo) + protected function manageRigaMarcaDaBollo() { $riga = $this->rigaBollo; + $addebita_bollo = $this->addebita_bollo; + $marca_da_bollo = $this->getBollo(); + // Rimozione riga bollo se nullo if (empty($addebita_bollo) || empty($marca_da_bollo)) { if (!empty($riga)) { diff --git a/plugins/exportFE/src/FatturaElettronica.php b/plugins/exportFE/src/FatturaElettronica.php index 433164fb9..ebce93e70 100644 --- a/plugins/exportFE/src/FatturaElettronica.php +++ b/plugins/exportFE/src/FatturaElettronica.php @@ -653,11 +653,11 @@ class FatturaElettronica } // Bollo (2.1.1.6) - $documento['bollo'] = floatval($documento['bollo']); - if (!empty($documento['bollo'])) { + $bollo = $documento->getBollo(); + if (!empty($bollo)) { $result['DatiBollo'] = [ 'BolloVirtuale' => 'SI', - 'ImportoBollo' => $documento['bollo'], + 'ImportoBollo' => $bollo, ]; }