This commit is contained in:
MatteoPistorello 2024-10-25 16:43:35 +02:00
commit 268ae98a3c
6 changed files with 40 additions and 42 deletions

View File

@ -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 l'indicazione della scadenza da pagare in Fatture
- Corretta la creazione di una nota di debito - Corretta la creazione di una nota di debito
- Corretto il controllo su stati contratti omonimi al salvataggio - 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) ## 2.5.5 (2024-09-27)
### Aggiunto (Added) ### Aggiunto (Added)

View File

@ -254,11 +254,11 @@ if (in_array($module->getTranslation('title'), ['Ordini cliente', 'Ordini fornit
$confermato = $result['confermato']; $confermato = $result['confermato'];
} }
echo ' echo '
<div class="card card-info collapsable collapsed-card"> <div class="card card-info collapsed-card">
<div class="card-header with-border"> <div class="card-header with-border">
<h3 class="card-title">'.tr('Informazioni aggiuntive').'</h3> <h3 class="card-title">'.tr('Informazioni aggiuntive').'</h3>
<div class="card-tools pull-right"> <div class="card-tools pull-right">
<button type="button" class="btn btn-tool" data-widget="collapse"><i class="fa fa-plus"></i></button> <button type="button" class="btn btn-tool" data-card-widget="collapse"><i class="fa fa-plus"></i></button>
</div> </div>
</div> </div>

View File

@ -82,8 +82,7 @@ class FatturaElettronica
public static function getImportDirectory() public static function getImportDirectory()
{ {
if (!isset(self::$directory)) { $module = Module::where('name', 'Fatture di acquisto')->first();
$module = Module::where('name', 'Fatture di vendita')->first();
$plugins = $module->plugins; $plugins = $module->plugins;
if (!empty($plugins)) { if (!empty($plugins)) {
@ -91,7 +90,7 @@ class FatturaElettronica
self::$directory = base_dir().'/'.$plugin->upload_directory; self::$directory = base_dir().'/'.$plugin->upload_directory;
} }
}
return self::$directory; return self::$directory;
} }

View File

@ -152,7 +152,7 @@ class FatturaOrdinaria extends FatturaElettronica
// Calcolo la differenza IVA per aliquota, per creare una riga relativa all'arrotondamento IVA // Calcolo la differenza IVA per aliquota, per creare una riga relativa all'arrotondamento IVA
foreach ($riepiloghi_raggruppati as $riepilogo) { foreach ($riepiloghi_raggruppati as $riepilogo) {
$valore = 0; $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) { if ($differenza_iva) {
$valore = $differenza_iva * 100 / ($riepilogo['AliquotaIVA'] ?: 1); $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'); $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) {
if ($diff && $differenza_iva) { if ($diff && $differenza_iva) {
$diff = abs($diff + $differenza_iva); $diff = ($diff + $differenza_iva) * '-1';
} elseif ($diff == 0 && $differenza_iva) { } elseif ($diff == 0 && $differenza_iva) {
$diff = $differenza_iva; $diff = $differenza_iva * '-1';
} else { } else {
$diff = -$diff; $diff = -$diff;
} }

View File

@ -29,9 +29,10 @@ class Autofill
protected $space = 0; protected $space = 0;
protected $current = 0; protected $current = 0;
protected $max_rows = 20; protected $max_rows = 26;
protected $max_rows_first_page = 20; protected $max_rows_first_page = 38;
protected $max_additional = 15; protected $max_additional = 0;
public function __construct(protected $column_number, protected $char_number = 70) public function __construct(protected $column_number, protected $char_number = 70)
{ {
@ -41,32 +42,25 @@ class Autofill
{ {
$this->max_rows = $rows; $this->max_rows = $rows;
$this->max_additional = $additional ?? floor($this->max_rows - $this->max_rows / 4); $this->max_additional = $additional ?: $this->max_rows;
$this->max_rows_first_page = $first_page ?? $rows; $this->max_rows_first_page = $first_page ?? $this->max_rows_first_page;
} }
public function count($text, $small = false) public function count($text, $small = false)
{ {
$count = ceil(strlen((string) $text) / $this->char_number); $count = ceil(strlen((string) $text) / $this->char_number);
$count += substr_count((string) $text, PHP_EOL);
$count += substr_count((string) $text, '<br>');
// Ricerca dei caratteri a capo // Ricerca dei caratteri a capo
preg_match_all("/(\r\n|\r|\n)/", (string) $text, $matches); preg_match_all("/(\r\n|\r|\n)/", (string) $text, $matches);
$count += count($matches[0]); $count += count($matches[0]);
$count = ($count == 1 ? $count : $count / 1.538461538 );
if ($small) {
$count = $count / 3;
}
$this->set($count); $this->set($count);
} }
public function set($count) public function set($count)
{ {
if ($count > $this->current) { $this->current += $count;
$this->current = $count;
}
} }
public function next() public function next()
@ -77,11 +71,20 @@ class Autofill
public function getAdditionalNumber() public function getAdditionalNumber()
{ {
$page = ceil($this->space / $this->max_rows_first_page); if ($this->space <= $this->max_rows) {
if ($page > 1) { $page = 1;
$rows = floor($this->space) % $this->max_rows;
} else { } 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; $number = $this->max_additional - $rows;

View File

@ -25,9 +25,9 @@ $v_totale = [];
$prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA'); $prezzi_ivati = setting('Utilizza prezzi di vendita comprensivi di IVA');
// Creazione righe fantasma // Creazione righe fantasma
$autofill = new Util\Autofill(6, 40); $autofill = new Util\Autofill(6, 70);
$rows_per_page = $rows_per_page ?: ($fattura_accompagnatoria ? 13 : 25); $rows_per_page = $rows_per_page ?: ($fattura_accompagnatoria ? 13 : 26);
$autofill->setRows($rows_per_page); $autofill->setRows($rows_per_page, 0);
// Intestazione tabella per righe // Intestazione tabella per righe
echo " echo "
@ -52,13 +52,6 @@ if (setting('Raggruppa attività per tipologia in fattura')) {
$righe = $documento->getRighe(); $righe = $documento->getRighe();
} }
if (count($righe) > 25) {
if (!empty($options['last-page-footer'])) {
$rows_per_page += 5;
$autofill->setRows($rows_per_page);
}
}
$num = 0; $num = 0;
if (!setting('Visualizza riferimento su ogni riga in stampa')) { if (!setting('Visualizza riferimento su ogni riga in stampa')) {