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 '
-
+
@@ -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')) {