diff --git a/CHANGELOG.md b/CHANGELOG.md index 63cb44605..30f791183 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -119,7 +119,10 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Corretta l'indicazione della scadenza da pagare in Fatture - Corretta la creazione di una nota di debito - Corretto il controllo su stati contratti omonimi al salvataggio - +- Corrette le api dell'applicazione +- Corretta la generazione di righe vuote nelle stampe delle fatture +- Corretta la cartella di riferimento in fase di importazione delle fatture di acquisto +- Corretti gli arrotondamenti automatici in fase di importazione fatture di acquisto ## 2.5.5 (2024-09-27) ### Aggiunto (Added) diff --git a/include/common/riga.php b/include/common/riga.php index 560599fa2..33077f4cb 100755 --- a/include/common/riga.php +++ b/include/common/riga.php @@ -254,11 +254,11 @@ if (in_array($module->getTranslation('title'), ['Ordini cliente', 'Ordini fornit $confermato = $result['confermato']; } echo ' -
+

'.tr('Informazioni aggiuntive').'

- +
@@ -303,7 +303,7 @@ if (in_array($module->getTranslation('title'), ['Ordini cliente', 'Ordini fornit input("ora_evasione").set(); } }); - '; + '; } if (in_array($module->getTranslation('title'), ['Fatture di vendita', 'Fatture di acquisto'])) { diff --git a/plugins/importFE/src/FatturaElettronica.php b/plugins/importFE/src/FatturaElettronica.php index 08ba03311..0dacbbf1d 100755 --- a/plugins/importFE/src/FatturaElettronica.php +++ b/plugins/importFE/src/FatturaElettronica.php @@ -82,17 +82,16 @@ class FatturaElettronica public static function getImportDirectory() { - if (!isset(self::$directory)) { - $module = Module::where('name', 'Fatture di vendita')->first(); + $module = Module::where('name', 'Fatture di acquisto')->first(); - $plugins = $module->plugins; - if (!empty($plugins)) { - $plugin = $plugins->first(fn ($value, $key) => $value->getTranslation('title') == 'Fatturazione Elettronica'); + $plugins = $module->plugins; + if (!empty($plugins)) { + $plugin = $plugins->first(fn ($value, $key) => $value->getTranslation('title') == 'Fatturazione Elettronica'); - self::$directory = base_dir().'/'.$plugin->upload_directory; - } + self::$directory = base_dir().'/'.$plugin->upload_directory; } + return self::$directory; } diff --git a/plugins/importFE/src/FatturaOrdinaria.php b/plugins/importFE/src/FatturaOrdinaria.php index 827ef6dfa..09686905f 100755 --- a/plugins/importFE/src/FatturaOrdinaria.php +++ b/plugins/importFE/src/FatturaOrdinaria.php @@ -152,7 +152,7 @@ class FatturaOrdinaria extends FatturaElettronica // Calcolo la differenza IVA per aliquota, per creare una riga relativa all'arrotondamento IVA foreach ($riepiloghi_raggruppati as $riepilogo) { $valore = 0; - $differenza_iva = round((float) $riepilogo['Imposta'] - $totale_imposta[$riepilogo['AliquotaIVA']], 2); + $differenza_iva = round((float) $riepilogo['Imposta'] - round($totale_imposta[$riepilogo['AliquotaIVA']], 2), 2); if ($differenza_iva) { $valore = $differenza_iva * 100 / ($riepilogo['AliquotaIVA'] ?: 1); @@ -491,9 +491,9 @@ class FatturaOrdinaria extends FatturaElettronica $iva_arrotondamento = database()->fetchOne('SELECT * FROM `co_iva` WHERE `percentuale`= 0 AND `deleted_at` IS NULL LIMIT 1'); if ($diff || $differenza_iva) { if ($diff && $differenza_iva) { - $diff = abs($diff + $differenza_iva); + $diff = ($diff + $differenza_iva) * '-1'; } elseif ($diff == 0 && $differenza_iva) { - $diff = $differenza_iva; + $diff = $differenza_iva * '-1'; } else { $diff = -$diff; } diff --git a/src/Util/Autofill.php b/src/Util/Autofill.php index 0a5a3e696..1d4f1371a 100755 --- a/src/Util/Autofill.php +++ b/src/Util/Autofill.php @@ -29,9 +29,10 @@ class Autofill protected $space = 0; protected $current = 0; - protected $max_rows = 20; - protected $max_rows_first_page = 20; - protected $max_additional = 15; + protected $max_rows = 26; + protected $max_rows_first_page = 38; + protected $max_additional = 0; + public function __construct(protected $column_number, protected $char_number = 70) { @@ -41,32 +42,25 @@ class Autofill { $this->max_rows = $rows; - $this->max_additional = $additional ?? floor($this->max_rows - $this->max_rows / 4); - $this->max_rows_first_page = $first_page ?? $rows; + $this->max_additional = $additional ?: $this->max_rows; + $this->max_rows_first_page = $first_page ?? $this->max_rows_first_page; } public function count($text, $small = false) { $count = ceil(strlen((string) $text) / $this->char_number); - $count += substr_count((string) $text, PHP_EOL); - $count += substr_count((string) $text, '
'); // Ricerca dei caratteri a capo preg_match_all("/(\r\n|\r|\n)/", (string) $text, $matches); $count += count($matches[0]); - - if ($small) { - $count = $count / 3; - } + $count = ($count == 1 ? $count : $count / 1.538461538 ); $this->set($count); } public function set($count) { - if ($count > $this->current) { - $this->current = $count; - } + $this->current += $count; } public function next() @@ -77,11 +71,20 @@ class Autofill public function getAdditionalNumber() { - $page = ceil($this->space / $this->max_rows_first_page); - if ($page > 1) { - $rows = floor($this->space) % $this->max_rows; + if ($this->space <= $this->max_rows) { + $page = 1; } else { - $rows = floor($this->space) % $this->max_rows_first_page; + if ($this->space <= $this->max_rows_first_page) { + $page = 2; + } else { + $page = ceil(1 + (($this->space - $this->max_rows_first_page) / $this->max_rows)); + } + } + + if ($page > 1) { + $rows = $this->space - $this->max_rows_first_page * ($page - 1); + } else { + $rows = floor($this->space); } $number = $this->max_additional - $rows; diff --git a/templates/fatture/body.php b/templates/fatture/body.php index 48a4bf793..6271dffcf 100755 --- a/templates/fatture/body.php +++ b/templates/fatture/body.php @@ -25,9 +25,9 @@ $v_totale = []; $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); // Creazione righe fantasma -$autofill = new Util\Autofill(6, 40); -$rows_per_page = $rows_per_page ?: ($fattura_accompagnatoria ? 13 : 25); -$autofill->setRows($rows_per_page); +$autofill = new Util\Autofill(6, 70); +$rows_per_page = $rows_per_page ?: ($fattura_accompagnatoria ? 13 : 26); +$autofill->setRows($rows_per_page, 0); // Intestazione tabella per righe echo " @@ -52,13 +52,6 @@ if (setting('Raggruppa attività per tipologia in fattura')) { $righe = $documento->getRighe(); } -if (count($righe) > 25) { - if (!empty($options['last-page-footer'])) { - $rows_per_page += 5; - $autofill->setRows($rows_per_page); - } -} - $num = 0; if (!setting('Visualizza riferimento su ogni riga in stampa')) {