diff --git a/include/src/Document.php b/include/src/Document.php new file mode 100644 index 000000000..500169fa4 --- /dev/null +++ b/include/src/Document.php @@ -0,0 +1,111 @@ +righe->merge($this->articoli); + } + + /** + * Funzione per l'arrotondamento degli importi; + * + * @param float $value + * @return float + */ + protected function round($value) + { + $decimals = 2; + + return round($value, $decimals); + } + + /** + * Calcola l'imponibile della fattura. + * + * @return float + */ + public function getImponibileAttribute() + { + return $this->round($this->getRighe()->sum('imponibile')); + } + + /** + * Calcola lo sconto totale della fattura. + * + * @return float + */ + public function getScontoAttribute() + { + return $this->round($this->getRighe()->sum('sconto')); + } + + /** + * Calcola l'imponibile scontato della fattura. + * + * @return float + */ + public function getImponibileScontatoAttribute() + { + return $this->round($this->getRighe()->sum('imponibile_scontato')); + } + + /** + * Calcola l'IVA totale della fattura. + * + * @return float + */ + public function getIvaAttribute() + { + return $this->round($this->getRighe()->sum('iva')); + } + + /** + * Calcola la rivalsa INPS totale della fattura. + * + * @return float + */ + public function getRivalsaINPSAttribute() + { + return $this->round($this->getRighe()->sum('rivalsa_inps')); + } + + /** + * Calcola la ritenuta d'acconto totale della fattura. + * + * @return float + */ + public function getRitenutaAccontoAttribute() + { + return $this->round($this->getRighe()->sum('ritenuta_acconto')); + } + + /** + * Calcola il totale della fattura. + * + * @return float + */ + public function getTotaleAttribute() + { + return $this->round($this->getRighe()->sum('totale')); + } + + /** + * Calcola il netto a pagare della fattura. + * + * @return float + */ + public function getNettoAttribute() + { + return $this->round($this->getRighe()->sum('netto')); + } +} diff --git a/modules/fatture/src/Fattura.php b/modules/fatture/src/Fattura.php index b8334e053..24c81bb0e 100644 --- a/modules/fatture/src/Fattura.php +++ b/modules/fatture/src/Fattura.php @@ -2,12 +2,12 @@ namespace Modules\Fatture; -use Common\Model; +use Common\Document; use Util\Generator; use Traits\RecordTrait; use Modules\Anagrafiche\Anagrafica; -class Fattura extends Model +class Fattura extends Document { use RecordTrait; @@ -175,94 +175,14 @@ class Fattura extends Model return $numero_esterno; } - /** - * Restituisce la collezione di righe e articoli con valori rilevanti per i conti. - * - * @return iterable - */ - protected function getRighe() - { - return $this->righe->merge($this->articoli); - } - - /** - * Calcola l'imponibile della fattura. - * - * @return float - */ - public function getImponibile() - { - return $this->getRighe()->sum('imponibile'); - } - - /** - * Calcola lo sconto totale della fattura. - * - * @return float - */ - public function getSconto() - { - return $this->getRighe()->sum('sconto'); - } - - /** - * Calcola l'imponibile scontato della fattura. - * - * @return float - */ - public function getImponibileScontato() - { - return $this->getRighe()->sum('imponibile_scontato'); - } - - /** - * Calcola l'IVA totale della fattura. - * - * @return float - */ - public function getIva() - { - return $this->getRighe()->sum('iva'); - } - - /** - * Calcola la rivalsa INPS totale della fattura. - * - * @return float - */ - public function getRivalsaINPS() - { - return $this->getRighe()->sum('rivalsa_inps'); - } - - /** - * Calcola la ritenuta d'acconto totale della fattura. - * - * @return float - */ - public function getRitenutaAcconto() - { - return $this->getRighe()->sum('ritenuta_acconto'); - } - - /** - * Calcola il totale della fattura. - * - * @return float - */ - public function getTotale() - { - return $this->getRighe()->sum('totale'); - } - /** * Calcola il netto a pagare della fattura. * * @return float */ - public function getNetto() + public function getNettoAttribute() { - return $this->getRighe()->sum('netto') + $this->bollo; + return parent::getNettoAttribute() + $this->bollo; } /** diff --git a/modules/interventi/src/Intervento.php b/modules/interventi/src/Intervento.php index 77ae10edb..c3b687f1e 100644 --- a/modules/interventi/src/Intervento.php +++ b/modules/interventi/src/Intervento.php @@ -2,10 +2,10 @@ namespace Modules\Interventi; -use Common\Model; +use Common\Document; use Modules\Anagrafiche\Anagrafica; -class Intervento extends Model +class Intervento extends Document { protected $table = 'in_interventi'; diff --git a/src/Backup.php b/src/Backup.php index 7f798e1d2..421738684 100644 --- a/src/Backup.php +++ b/src/Backup.php @@ -246,9 +246,9 @@ class Backup if (file_exists($database_file)) { $database->query('SET foreign_key_checks = 0'); foreach ($tables as $tables) { - $database->query('DROP TABLE `'.$tables.'`'); + $database->query('DROP TABLE IF EXISTS `'.$tables.'`'); } - $database->query('DROP TABLE `updates`'); + $database->query('DROP TABLE IF EXISTS `updates`'); // Ripristino del database $database->multiQuery($database_file);