diff --git a/src/QUI/ERP/Accounting/ArticleDiscount.php b/src/QUI/ERP/Accounting/ArticleDiscount.php
index fbd70cc758c581ef46967c76a0261c6e372c77b4..286e6b6723bcffc540c247ca3f6944a38e95350b 100644
--- a/src/QUI/ERP/Accounting/ArticleDiscount.php
+++ b/src/QUI/ERP/Accounting/ArticleDiscount.php
@@ -10,6 +10,14 @@
 use QUI\ERP\Currency\Currency;
 use QUI\ERP\Currency\Handler as CurrencyHandler;
 
+use function floatval;
+use function is_array;
+use function is_numeric;
+use function json_decode;
+use function json_encode;
+use function str_replace;
+use function strpos;
+
 /**
  * Class ArticleDiscount
  *
@@ -22,7 +30,7 @@ class ArticleDiscount
      *
      * @var int
      */
-    protected $type = Calc::CALCULATION_COMPLEMENT;
+    protected int $type = Calc::CALCULATION_COMPLEMENT;
 
     /**
      * Discount value
@@ -36,12 +44,12 @@ class ArticleDiscount
      *
      * @var null|Currency
      */
-    protected $Currency = null;
+    protected ?Currency $Currency = null;
 
     /**
      * @var null|ArticleInterface
      */
-    protected $Article = null;
+    protected ?ArticleInterface $Article = null;
 
     /**
      * ArticleDiscount constructor.
@@ -80,21 +88,21 @@ public static function unserialize(string $string): ?ArticleDiscount
     {
         $data = [];
 
-        if (\is_numeric($string)) {
+        if (is_numeric($string)) {
             // number, float, int -> 5.99
             $data['value'] = QUI\ERP\Money\Price::validatePrice($string);
             $data['type']  = Calc::CALCULATION_COMPLEMENT;
-        } elseif (\strpos($string, '{') !== false || \strpos($string, '[') !== false) {
+        } elseif (strpos($string, '{') !== false || strpos($string, '[') !== false) {
             // json string
-            $data = \json_decode($string, true);
+            $data = json_decode($string, true);
 
-            if (!\is_array($data)) {
+            if (!is_array($data)) {
                 return null;
             }
         } else {
             // is normal string 5% or 5.99 €
-            if (\strpos($string, '%') !== false) {
-                $data['value'] = \floatval(\str_replace('%', '', $string));
+            if (strpos($string, '%') !== false) {
+                $data['value'] = floatval(str_replace('%', '', $string));
                 $data['type']  = Calc::CALCULATION_PERCENTAGE;
             } else {
                 $data['value'] = QUI\ERP\Money\Price::validatePrice($string);
@@ -200,7 +208,7 @@ public function toArray(): array
      */
     public function toJSON(): string
     {
-        return \json_encode($this->toArray());
+        return json_encode($this->toArray());
     }
 
     /**
@@ -229,7 +237,7 @@ public function formatted(): string
             return $this->getCurrency()->format($value);
         }
 
-        return $value.'%';
+        return $value . '%';
     }
 
     /**
diff --git a/src/QUI/ERP/Accounting/ArticleList.php b/src/QUI/ERP/Accounting/ArticleList.php
index b54c8f1027ed9ffa0ec244969ce6f2b27bd6e4a7..28d8e6d870d152de63bdeeec4d1595a1ed1b66cc 100644
--- a/src/QUI/ERP/Accounting/ArticleList.php
+++ b/src/QUI/ERP/Accounting/ArticleList.php
@@ -6,20 +6,24 @@
 
 namespace QUI\ERP\Accounting;
 
+use IteratorAggregate;
 use QUI;
 
+use function count;
+use function is_null;
+
 /**
  * Class ArticleList
  *
  * @package QUI\ERP\Accounting
  */
-class ArticleList extends ArticleListUnique implements \IteratorAggregate
+class ArticleList extends ArticleListUnique implements IteratorAggregate
 {
     /**
      * is the article list calculated?
      * @var bool
      */
-    protected $calculated = false;
+    protected bool $calculated = false;
 
     /**
      * @var int|float
@@ -37,14 +41,14 @@ class ArticleList extends ArticleListUnique implements \IteratorAggregate
     protected $User = null;
 
     /**
-     * @var QUI\ERP\Order\AbstractOrder
+     * @var ?QUI\ERP\Order\AbstractOrder
      */
-    protected $Order = null;
+    protected ?QUI\ERP\Order\AbstractOrder $Order = null;
 
     /**
-     * @var QUI\ERP\Currency\Currency
+     * @var ?QUI\ERP\Currency\Currency
      */
-    protected $Currency = null;
+    protected ?QUI\ERP\Currency\Currency $Currency = null;
 
     /**
      * @var int|float
@@ -62,34 +66,39 @@ class ArticleList extends ArticleListUnique implements \IteratorAggregate
     protected $nettoSubSum;
 
     /**
-     * key 19% value[sum] = sum value[text] = text value[display_sum] formatiert
+     * key 19% value[sum] = sum value[text] = text value[display_sum] formatted
+     *
      * @var array
      */
-    protected $vatArray = [];
+    protected array $vatArray = [];
 
     /**
-     * key 19% value[sum] = sum value[text] = text value[display_sum] formatiert
-     * @var array()
+     * key 19% value[sum] = sum value[text] = text value[display_sum] formatted
+     *
+     * @var array
      */
-    protected $vatText;
+    protected array $vatText;
 
     /**
      * Prüfen ob EU Vat für den Benutzer in Frage kommt
+     *
      * @var
      */
-    protected $isEuVat = false;
+    protected bool $isEuVat = false;
 
     /**
      * Wird Brutto oder Netto gerechnet
+     *
      * @var bool
      */
-    protected $isNetto = true;
+    protected bool $isNetto = true;
 
     /**
      * Currency information
+     *
      * @var array
      */
-    protected $currencyData = [
+    protected array $currencyData = [
         'currency_sign' => '',
         'currency_code' => '',
         'user_currency' => '',
@@ -136,7 +145,7 @@ public function setUser(QUI\Interfaces\Users\User $User)
         }
 
         $this->calculated = false;
-        $this->User = $User;
+        $this->User       = $User;
 
         foreach ($this->articles as $Article) {
             $Article->setUser($User);
@@ -148,9 +157,9 @@ public function setUser(QUI\Interfaces\Users\User $User)
     /**
      * Return the list user
      *
-     * @return QUI\Interfaces\Users\User|QUI\Users\User
+     * @return QUI\Interfaces\Users\User
      */
-    public function getUser()
+    public function getUser(): ?QUI\Interfaces\Users\User
     {
         return $this->User;
     }
@@ -162,11 +171,11 @@ public function getUser()
      */
     public function getCurrency(): ?QUI\ERP\Currency\Currency
     {
-        if (!\is_null($this->Currency)) {
+        if (!is_null($this->Currency)) {
             return $this->Currency;
         }
 
-        if (\is_array($this->currencyData) && !empty($this->currencyData['currency_code'])) {
+        if (!empty($this->currencyData['currency_code'])) {
             try {
                 $this->Currency = QUI\ERP\Currency\Handler::getCurrency(
                     $this->currencyData['currency_code']
@@ -208,7 +217,7 @@ public function setCurrency(QUI\ERP\Currency\Currency $Currency)
             ];
         }
 
-        if (\count($this->articles)) {
+        if (count($this->articles)) {
             foreach ($this->articles as $Article) {
                 $Article->setCurrency($Currency);
             }
@@ -218,9 +227,9 @@ public function setCurrency(QUI\ERP\Currency\Currency $Currency)
         $priceFactors = $PriceFactors->toArray();
 
         foreach ($priceFactors as $k => $factor) {
-            $priceFactors[$k]['sumFormatted'] = $Currency->format($factor['sum']);
+            $priceFactors[$k]['sumFormatted']      = $Currency->format($factor['sum']);
             $priceFactors[$k]['nettoSumFormatted'] = $Currency->format($factor['nettoSum']);
-            $priceFactors[$k]['valueText'] = $priceFactors[$k]['sumFormatted'];
+            $priceFactors[$k]['valueText']         = $priceFactors[$k]['sumFormatted'];
 
             if ($factor['sum'] > 0) {
                 $priceFactors[$k]['valueText'] = '+' . $priceFactors[$k]['sumFormatted'];
@@ -246,7 +255,7 @@ public function toArray(): array
         $Currency = $this->getCurrency();
 
         // format
-        $articles = $data['articles'];
+        $articles     = $data['articles'];
         $calculations = $data['calculations'];
 
         $calculations['currencyData'] = $Currency->toArray();
@@ -256,16 +265,16 @@ public function toArray(): array
         );
 
         $calculations['display_subSum'] = $Currency->format($calculations['subSum']);
-        $calculations['display_sum'] = $Currency->format($calculations['sum']);
+        $calculations['display_sum']    = $Currency->format($calculations['sum']);
         $calculations['display_vatSum'] = $Currency->format($calculations['vatSum']);
 
         foreach ($articles as $key => $article) {
-            $articles[$key]['position'] = $key + 1;
-            $articles[$key]['display_sum'] = $Currency->format($article['sum']);
+            $articles[$key]['position']          = $key + 1;
+            $articles[$key]['display_sum']       = $Currency->format($article['sum']);
             $articles[$key]['display_unitPrice'] = $Currency->format($article['unitPrice']);
         }
 
-        $data['articles'] = $articles;
+        $data['articles']     = $articles;
         $data['calculations'] = $calculations;
 
         /* @var $Factor PriceFactors\Factor */
@@ -331,7 +340,7 @@ public function recalculate($Calc = null)
      * @param null|Calc $Calc
      * @return ArticleList|ArticleListUnique
      */
-    public function calc($Calc = null)
+    public function calc($Calc = null): ArticleList
     {
         if ($this->calculated) {
             return $this;
@@ -348,15 +357,15 @@ public function calc($Calc = null)
         }
 
         $Calc->calcArticleList($this, function ($data) use ($self) {
-            $self->sum = $data['sum'];
-            $self->grandSubSum = $data['grandSubSum'];
-            $self->subSum = $data['subSum'];
-            $self->nettoSum = $data['nettoSum'];
-            $self->nettoSubSum = $data['nettoSubSum'];
-            $self->vatArray = $data['vatArray'];
-            $self->vatText = $data['vatText'];
-            $self->isEuVat = $data['isEuVat'];
-            $self->isNetto = $data['isNetto'];
+            $self->sum          = $data['sum'];
+            $self->grandSubSum  = $data['grandSubSum'];
+            $self->subSum       = $data['subSum'];
+            $self->nettoSum     = $data['nettoSum'];
+            $self->nettoSubSum  = $data['nettoSubSum'];
+            $self->vatArray     = $data['vatArray'];
+            $self->vatText      = $data['vatText'];
+            $self->isEuVat      = $data['isEuVat'];
+            $self->isNetto      = $data['isNetto'];
             $self->currencyData = $data['currencyData'];
 
             $this->calculations = [
@@ -451,7 +460,7 @@ public function clear()
      */
     public function count(): int
     {
-        return \count($this->articles);
+        return count($this->articles);
     }
 
     //endregion
diff --git a/src/QUI/ERP/Accounting/ArticleListUnique.php b/src/QUI/ERP/Accounting/ArticleListUnique.php
index 1b5bcfebe17ab271781b3c728654c710ad063ab6..753fc680becccc5ea6fb38c7ab3f8262fa016e6d 100644
--- a/src/QUI/ERP/Accounting/ArticleListUnique.php
+++ b/src/QUI/ERP/Accounting/ArticleListUnique.php
@@ -6,8 +6,22 @@
 
 namespace QUI\ERP\Accounting;
 
+use ArrayIterator;
+use IteratorAggregate;
 use QUI;
 use QUI\ERP\Accounting\PriceFactors\FactorList as ErpFactorList;
+use Traversable;
+
+use function array_map;
+use function class_exists;
+use function class_implements;
+use function count;
+use function dirname;
+use function file_exists;
+use function file_get_contents;
+use function is_string;
+use function json_decode;
+use function json_encode;
 
 /**
  * Class ArticleListUnique
@@ -15,12 +29,12 @@
  *
  * @package QUI\ERP\Accounting
  */
-class ArticleListUnique implements \IteratorAggregate
+class ArticleListUnique implements IteratorAggregate
 {
     /**
      * @var Article[]
      */
-    protected $articles = [];
+    protected array $articles = [];
 
     /**
      * @var array
@@ -40,9 +54,9 @@ class ArticleListUnique implements \IteratorAggregate
     protected $PriceFactors = false;
 
     /**
-     * @var null
+     * @var null|QUI\Locale
      */
-    protected $Locale = null;
+    protected ?QUI\Locale $Locale = null;
 
     /**
      * @var QUI\Interfaces\Users\User
@@ -52,17 +66,17 @@ class ArticleListUnique implements \IteratorAggregate
     /**
      * @var bool
      */
-    protected $showExchangeRate = true;
+    protected bool $showExchangeRate = true;
 
     /**
-     * @var null
+     * @var null|QUI\ERP\Currency\Currency
      */
-    protected $ExchangeCurrency = null;
+    protected ?QUI\ERP\Currency\Currency $ExchangeCurrency = null;
 
     /**
-     * @var float
+     * @var float|null
      */
-    protected $exchangeRate = null;
+    protected ?float $exchangeRate = null;
 
     /**
      * ArticleList constructor.
@@ -71,7 +85,7 @@ class ArticleListUnique implements \IteratorAggregate
      * @param null|QUI\Interfaces\Users\User|QUI\Users\User $User
      * @throws QUI\ERP\Exception
      */
-    public function __construct($attributes = [], $User = null)
+    public function __construct(array $attributes = [], $User = null)
     {
         $this->Locale = QUI::getLocale();
 
@@ -109,12 +123,12 @@ public function __construct($attributes = [], $User = null)
 
             $class = $article['class'];
 
-            if (!\class_exists($class)) {
+            if (!class_exists($class)) {
                 $this->articles[] = new Article($article);
                 continue;
             }
 
-            $interfaces = \class_implements($class);
+            $interfaces = class_implements($class);
 
             if (isset($interfaces[ArticleInterface::class])) {
                 $this->articles[] = new $class($article);
@@ -133,7 +147,7 @@ public function __construct($attributes = [], $User = null)
         }
 
         $this->calculations = $attributes['calculations'];
-        $this->showHeader   = isset($attributes['showHeader']) ? $attributes['showHeader'] : true;
+        $this->showHeader   = $attributes['showHeader'] ?? true;
 
         // price factors
         $this->PriceFactors = new ErpFactorList();
@@ -170,7 +184,7 @@ public function recalculate($Calc = null)
      * @param $Calc
      * @return ArticleListUnique
      */
-    public function calc($Calc = null)
+    public function calc($Calc = null): ArticleListUnique
     {
         // placeholder. unique list cant be calc
         return $this;
@@ -189,15 +203,15 @@ public function setLocale(QUI\Locale $Locale)
     /**
      * Creates a list from a stored representation
      *
-     * @param string $data
+     * @param string|array $data
      * @return ArticleListUnique
      *
      * @throws QUI\Exception
      */
-    public static function unserialize(string $data): ArticleListUnique
+    public static function unserialize($data): ArticleListUnique
     {
-        if (\is_string($data)) {
-            $data = \json_decode($data, true);
+        if (is_string($data)) {
+            $data = json_decode($data, true);
         }
 
         return new self($data);
@@ -210,7 +224,7 @@ public static function unserialize(string $data): ArticleListUnique
      */
     public function serialize(): string
     {
-        return \json_encode($this->toArray());
+        return json_encode($this->toArray());
     }
 
     /**
@@ -240,7 +254,7 @@ public function getArticles(): array
      */
     public function count(): int
     {
-        return \count($this->articles);
+        return count($this->articles);
     }
 
     /**
@@ -263,7 +277,7 @@ public function toArray(): array
     {
         $this->calc();
 
-        $articles = \array_map(function ($Article) {
+        $articles = array_map(function ($Article) {
             return $Article->toArray();
         }, $this->articles);
 
@@ -339,7 +353,7 @@ public function toHTML($template = false): string
 
         // price display
         foreach ($vatArray as $key => $vat) {
-            $vatArray[$key]['sum'] = $Currency->format($vatArray[$key]['sum']);
+            $vatArray[$key]['sum'] = $Currency->format($vat['sum']);
         }
 
         $this->calculations['sum']    = $Currency->format($this->calculations['sum']);
@@ -356,7 +370,7 @@ public function toHTML($template = false): string
 
         $pos = 1;
 
-        $articles = \array_map(function ($Article) use ($Currency, &$pos) {
+        $articles = array_map(function ($Article) use ($Currency, &$pos) {
             $View = $Article->getView();
             $View->setCurrency($Currency);
             $View->setPosition($pos);
@@ -414,11 +428,11 @@ public function toHTML($template = false): string
             'exchangeRateText' => $exchangeRateText
         ]);
 
-        if ($template && \file_exists($template)) {
+        if ($template && file_exists($template)) {
             return $Engine->fetch($template);
         }
 
-        return $Engine->fetch(\dirname(__FILE__).'/ArticleList.html');
+        return $Engine->fetch(dirname(__FILE__) . '/ArticleList.html');
     }
 
     /**
@@ -427,7 +441,7 @@ public function toHTML($template = false): string
      */
     public function toMailHTML(): string
     {
-        return $this->toHTML(\dirname(__FILE__).'/ArticleList.Mail.html');
+        return $this->toHTML(dirname(__FILE__) . '/ArticleList.Mail.html');
     }
 
     /**
@@ -440,10 +454,10 @@ public function toMailHTML(): string
     public function toHTMLWithCSS(): string
     {
         $style = '<style>';
-        $style .= \file_get_contents(\dirname(__FILE__).'/ArticleList.css');
+        $style .= file_get_contents(dirname(__FILE__) . '/ArticleList.css');
         $style .= '</style>';
 
-        return $style.$this->toHTML();
+        return $style . $this->toHTML();
     }
 
     /**
@@ -453,7 +467,7 @@ public function toHTMLWithCSS(): string
      *
      * @throws QUI\Exception
      */
-    public function render()
+    public function render(): string
     {
         return $this->toHTMLWithCSS();
     }
@@ -468,10 +482,10 @@ public function render()
     public function renderForMail(): string
     {
         $style = '<style>';
-        $style .= \file_get_contents(\dirname(__FILE__).'/ArticleList.Mail.css');
+        $style .= file_get_contents(dirname(__FILE__) . '/ArticleList.Mail.css');
         $style .= '</style>';
 
-        return $style.$this->toMailHTML();
+        return $style . $this->toMailHTML();
     }
 
     //region Price Factors
@@ -493,11 +507,11 @@ public function getPriceFactors()
     /**
      * Iterator helper
      *
-     * @return \ArrayIterator|\Traversable
+     * @return ArrayIterator|Traversable
      */
     public function getIterator()
     {
-        return new \ArrayIterator($this->articles);
+        return new ArrayIterator($this->articles);
     }
 
     //endregion
diff --git a/src/QUI/ERP/Accounting/Articles/Article.php b/src/QUI/ERP/Accounting/Articles/Article.php
index 17485c8e3d3226ecd8a5b224d23f553a68878bb4..7ccd2d769eb47079d688b761fcaedc1ecd1ea5e0 100644
--- a/src/QUI/ERP/Accounting/Articles/Article.php
+++ b/src/QUI/ERP/Accounting/Articles/Article.php
@@ -8,6 +8,9 @@
 
 use QUI;
 
+use function array_merge;
+use function get_class;
+
 /**
  * Article
  * An temporary invoice article
@@ -24,8 +27,8 @@ class Article extends QUI\ERP\Accounting\Article
      */
     public function toArray(): array
     {
-        return \array_merge(parent::toArray(), [
-            'class'   => \get_class($this),
+        return array_merge(parent::toArray(), [
+            'class'   => get_class($this),
             'control' => 'package/quiqqer/erp/bin/backend/controls/articles/Article'
         ]);
     }
diff --git a/src/QUI/ERP/Accounting/Articles/Text.php b/src/QUI/ERP/Accounting/Articles/Text.php
index 0a64c83942caf1ad7f03a6e3aae6a9391788fb68..c7e9087186dcbb989ca2c4de43f77a26dbda60e2 100644
--- a/src/QUI/ERP/Accounting/Articles/Text.php
+++ b/src/QUI/ERP/Accounting/Articles/Text.php
@@ -9,6 +9,9 @@
 use QUI;
 use QUI\ERP\Money\Price;
 
+use function array_merge;
+use function get_class;
+
 /**
  * Article Text
  *
@@ -67,8 +70,8 @@ public function displayPrice(): bool
      */
     public function toArray(): array
     {
-        return \array_merge(parent::toArray(), [
-            'class'        => \get_class($this),
+        return array_merge(parent::toArray(), [
+            'class'        => get_class($this),
             'control'      => 'package/quiqqer/erp/bin/backend/controls/articles/Text',
             'displayPrice' => $this->displayPrice()
         ]);
diff --git a/src/QUI/ERP/Accounting/PriceFactors/Factor.php b/src/QUI/ERP/Accounting/PriceFactors/Factor.php
index abda9886fd0203b650565343cf2b6aa89dfea767..7d220cab4fee45df61c737d9271a3a911f36cdf9 100644
--- a/src/QUI/ERP/Accounting/PriceFactors/Factor.php
+++ b/src/QUI/ERP/Accounting/PriceFactors/Factor.php
@@ -6,9 +6,13 @@
 
 namespace QUI\ERP\Accounting\PriceFactors;
 
+use QUI\ERP\Accounting\Calc as ERPCalc;
 use QUI\ERP\Exception;
 use QUI\Utils\Math;
-use QUI\ERP\Accounting\Calc as ERPCalc;
+
+use function abs;
+use function is_string;
+use function json_encode;
 
 /**
  * Class FactorList
@@ -31,7 +35,7 @@ class Factor
     protected $description = '';
 
     /**
-     * @var int|double|float
+     * @var int|double
      */
     protected $sum = 0;
 
@@ -41,7 +45,7 @@ class Factor
     protected $sumFormatted = '';
 
     /**
-     * @var int|double|float
+     * @var int|double
      */
     protected $nettoSum = '';
 
@@ -53,7 +57,7 @@ class Factor
     /**
      * @var int
      */
-    protected $visible = 1;
+    protected int $visible = 1;
 
     /**
      * @var bool
@@ -73,17 +77,17 @@ class Factor
     /**
      * @var integer
      */
-    protected $calculation = ERPCalc::CALCULATION_COMPLEMENT;
+    protected int $calculation = ERPCalc::CALCULATION_COMPLEMENT;
 
     /**
      * @var integer
      */
-    protected $calculation_basis = ERPCalc::CALCULATION_BASIS_NETTO;
+    protected int $calculation_basis = ERPCalc::CALCULATION_BASIS_NETTO;
 
     /**
-     * @var
+     * @var bool
      */
-    protected $euVat = false;
+    protected bool $euVat = false;
 
     /**
      * FactorList constructor.
@@ -92,7 +96,7 @@ class Factor
      *
      * @throws Exception
      */
-    public function __construct($data = [])
+    public function __construct(array $data = [])
     {
         $fields = [
             'title',
@@ -108,7 +112,7 @@ public function __construct($data = [])
         foreach ($fields as $field) {
             if (!isset($data[$field])) {
                 throw new Exception(
-                    'Missing QUI\ERP\Accounting\PriceFactors\Factor field '.$field,
+                    'Missing QUI\ERP\Accounting\PriceFactors\Factor field ' . $field,
                     500,
                     [
                         'data' => $data
@@ -138,11 +142,11 @@ public function __construct($data = [])
             $this->vat = (int)$data['vat'];
         }
 
-        if (isset($data['valueText']) && \is_string($data['valueText'])) {
+        if (isset($data['valueText']) && is_string($data['valueText'])) {
             $this->valueText = $data['valueText'];
         }
 
-        if (isset($data['identifier']) && \is_string($data['identifier'])) {
+        if (isset($data['identifier']) && is_string($data['identifier'])) {
             $this->identifier = $data['identifier'];
         }
     }
@@ -160,7 +164,7 @@ public function getIdentifier()
      *
      * @return string
      */
-    public function getTitle()
+    public function getTitle(): string
     {
         return $this->title;
     }
@@ -170,7 +174,7 @@ public function getTitle()
      *
      * @return string
      */
-    public function getDescription()
+    public function getDescription(): string
     {
         return $this->description;
     }
@@ -202,7 +206,7 @@ public function getSum()
      *
      * @return string
      */
-    public function getSumFormatted()
+    public function getSumFormatted(): string
     {
         return $this->sumFormatted;
     }
@@ -250,8 +254,8 @@ public function getVat()
             return $this->vat;
         }
 
-        $vat      = \abs($this->sum - $this->nettoSum);
-        $nettoSum = \abs($this->nettoSum);
+        $vat      = abs($this->sum - $this->nettoSum);
+        $nettoSum = abs($this->nettoSum);
 
         return Math::percent($vat, $nettoSum);
     }
@@ -261,7 +265,7 @@ public function getVat()
      *
      * @return string
      */
-    public function getNettoSumFormatted()
+    public function getNettoSumFormatted(): string
     {
         return $this->nettoSumFormatted;
     }
@@ -269,7 +273,7 @@ public function getNettoSumFormatted()
     /**
      * @return int
      */
-    public function getCalculation()
+    public function getCalculation(): int
     {
         return $this->calculation;
     }
@@ -277,7 +281,7 @@ public function getCalculation()
     /**
      * @return int
      */
-    public function getCalculationBasis()
+    public function getCalculationBasis(): int
     {
         return $this->calculation_basis;
     }
@@ -285,7 +289,7 @@ public function getCalculationBasis()
     /**
      * @return int
      */
-    public function isVisible()
+    public function isVisible(): int
     {
         return $this->visible;
     }
@@ -295,7 +299,7 @@ public function isVisible()
      *
      * @return array
      */
-    public function toArray()
+    public function toArray(): array
     {
         return [
             'identifier'        => $this->identifier,
@@ -319,14 +323,17 @@ public function toArray()
      *
      * @return string
      */
-    public function toJSON()
+    public function toJSON(): string
     {
-        return \json_encode($this->toArray());
+        return json_encode($this->toArray());
     }
 
     //region eu vat
 
-    public function isEuVat()
+    /**
+     * @return bool
+     */
+    public function isEuVat(): bool
     {
         return $this->euVat;
     }
@@ -352,7 +359,7 @@ public function setSum($sum)
     /**
      * @param string $sumFormatted
      */
-    public function setSumFormatted($sumFormatted)
+    public function setSumFormatted(string $sumFormatted)
     {
         $this->sumFormatted = $sumFormatted;
     }
@@ -368,7 +375,7 @@ public function setNettoSum($sum)
     /**
      * @param string $sumFormatted
      */
-    public function setNettoSumFormatted($sumFormatted)
+    public function setNettoSumFormatted(string $sumFormatted)
     {
         $this->nettoSumFormatted = $sumFormatted;
     }
@@ -384,7 +391,7 @@ public function setValue($value)
     /**
      * @param string $valueText
      */
-    public function setValueText($valueText)
+    public function setValueText(string $valueText)
     {
         $this->valueText = $valueText;
     }
diff --git a/src/QUI/ERP/Accounting/PriceFactors/FactorList.php b/src/QUI/ERP/Accounting/PriceFactors/FactorList.php
index 3f95cb36adfb20e65921e1f7580584f05fadb700..a6bb331ae69166c836a93fbadf01f7db5fe9459f 100644
--- a/src/QUI/ERP/Accounting/PriceFactors/FactorList.php
+++ b/src/QUI/ERP/Accounting/PriceFactors/FactorList.php
@@ -6,7 +6,16 @@
 
 namespace QUI\ERP\Accounting\PriceFactors;
 
+use ArrayIterator;
+use Countable;
+use IteratorAggregate;
 use QUI;
+use Traversable;
+
+use function array_map;
+use function count;
+use function is_array;
+use function json_encode;
 
 /**
  * Class FactorList
@@ -16,7 +25,7 @@
  *
  * This is list is only a presentation layer
  */
-class FactorList implements \IteratorAggregate, \Countable
+class FactorList implements IteratorAggregate, Countable
 {
     /**
      * internal list of price factors
@@ -32,9 +41,9 @@ class FactorList implements \IteratorAggregate, \Countable
      *
      * @throws QUI\ERP\Exception
      */
-    public function __construct($data = [])
+    public function __construct(array $data = [])
     {
-        if (!\is_array($data)) {
+        if (!is_array($data)) {
             return;
         }
 
@@ -53,9 +62,9 @@ public function __construct($data = [])
      *
      * @return int
      */
-    public function count()
+    public function count(): int
     {
-        return \count($this->list);
+        return count($this->list);
     }
 
     /**
@@ -63,9 +72,9 @@ public function count()
      *
      * @return array
      */
-    public function toArray()
+    public function toArray(): array
     {
-        return \array_map(function ($Factor) {
+        return array_map(function ($Factor) {
             /* @var $Factor Factor */
             return $Factor->toArray();
         }, $this->list);
@@ -76,9 +85,9 @@ public function toArray()
      *
      * @return string
      */
-    public function toJSON()
+    public function toJSON(): string
     {
-        return \json_encode($this->toArray());
+        return json_encode($this->toArray());
     }
 
     //region iterator
@@ -86,11 +95,11 @@ public function toJSON()
     /**
      * Iterator helper
      *
-     * @return \ArrayIterator|\Traversable
+     * @return ArrayIterator|Traversable
      */
     public function getIterator()
     {
-        return new \ArrayIterator($this->list);
+        return new ArrayIterator($this->list);
     }
 
     //endregion
diff --git a/src/QUI/ERP/Api/AbstractErpProvider.php b/src/QUI/ERP/Api/AbstractErpProvider.php
index 95399ffd8ae0281bfeded2ef3ea2958fef6653ae..dc6489e06f182316fbf23479c22a5a469148e517 100644
--- a/src/QUI/ERP/Api/AbstractErpProvider.php
+++ b/src/QUI/ERP/Api/AbstractErpProvider.php
@@ -7,6 +7,7 @@
 namespace QUI\ERP\Api;
 
 use QUI;
+use QUI\Controls\Sitemap\Map;
 
 /**
  * Class AbstractErpProvider
@@ -18,9 +19,9 @@ abstract class AbstractErpProvider
     /**
      * Add menu items to the e-commerce panel
      *
-     * @param \QUI\Controls\Sitemap\Map $Map
+     * @param Map $Map
      */
-    public static function addMenuItems(QUI\Controls\Sitemap\Map $Map)
+    public static function addMenuItems(Map $Map)
     {
     }
 
diff --git a/src/QUI/ERP/BankAccounts/Handler.php b/src/QUI/ERP/BankAccounts/Handler.php
index 363aca156c33ac8de02e7d4e0b4a814338f68895..2dd5f333e52612d544c67bccabface33f7d98906 100644
--- a/src/QUI/ERP/BankAccounts/Handler.php
+++ b/src/QUI/ERP/BankAccounts/Handler.php
@@ -2,8 +2,13 @@
 
 namespace QUI\ERP\BankAccounts;
 
+use Exception;
 use QUI;
 
+use function json_decode;
+use function json_encode;
+use function mt_rand;
+
 /**
  * Class Handler.
  *
@@ -36,7 +41,7 @@ public static function addBankAccount(array $data): array
 
         foreach ($fields as $field => $isRequired) {
             if ($isRequired && empty($data[$field])) {
-                throw new QUI\Exception('Cannot add bank account. Required field "'.$field.'" is empty.');
+                throw new QUI\Exception('Cannot add bank account. Required field "' . $field . '" is empty.');
             }
 
             $bankAccount[$field] = !empty($data[$field]) ? $data[$field] : '';
@@ -45,7 +50,7 @@ public static function addBankAccount(array $data): array
         $list = self::getList();
 
         do {
-            $id = \mt_rand(10000, 99999);
+            $id = mt_rand(10000, 99999);
         } while (!empty($list[$id]));
 
         $Conf = QUI::getPackage('quiqqer/erp')->getConfig();
@@ -53,7 +58,7 @@ public static function addBankAccount(array $data): array
         $bankAccount['id'] = $id;
         $list[$id]         = $bankAccount;
 
-        $Conf->setValue('bankAccounts', 'accounts', \json_encode($list));
+        $Conf->setValue('bankAccounts', 'accounts', json_encode($list));
         $Conf->save();
 
         return $bankAccount;
@@ -69,7 +74,7 @@ public static function getCompanyBankAccount()
         try {
             $bankAccounts  = self::getList();
             $bankAccountId = QUI::getPackage('quiqqer/erp')->getConfig()->get('company', 'bankAccountId');
-        } catch (\Exception $Exception) {
+        } catch (Exception $Exception) {
             QUI\System\Log::writeException($Exception);
             return false;
         }
@@ -90,7 +95,7 @@ public static function getDefaultBankAccount()
     {
         try {
             $bankAccounts = self::getList();
-        } catch (\Exception $Exception) {
+        } catch (Exception $Exception) {
             QUI\System\Log::writeException($Exception);
             return false;
         }
@@ -113,7 +118,7 @@ public static function getBankAccountById(int $id)
     {
         try {
             $bankAccounts = self::getList();
-        } catch (\Exception $Exception) {
+        } catch (Exception $Exception) {
             QUI\System\Log::writeException($Exception);
             return false;
         }
@@ -136,7 +141,7 @@ public static function getList(): array
     {
         try {
             $config = self::getConfig();
-        } catch (\Exception $Exception) {
+        } catch (Exception $Exception) {
             QUI\System\Log::writeException($Exception);
             return [];
         }
@@ -147,7 +152,7 @@ public static function getList(): array
             return [];
         }
 
-        return \json_decode($bankAccounts, true);
+        return json_decode($bankAccounts, true);
     }
 
     /**
diff --git a/src/QUI/ERP/Dashboard/Dashboard.php b/src/QUI/ERP/Dashboard/Dashboard.php
index d8dee809b1a67531bd577ee96ba8ee047ab80ff2..734f5350d5d606d84d54c39985f1e3eae1fb49f4 100644
--- a/src/QUI/ERP/Dashboard/Dashboard.php
+++ b/src/QUI/ERP/Dashboard/Dashboard.php
@@ -32,4 +32,9 @@ public function getCards(): array
     {
         return [];
     }
+
+    public function getJavaScriptControl(): string
+    {
+        return '';
+    }
 }
diff --git a/src/QUI/ERP/Money/Price.php b/src/QUI/ERP/Money/Price.php
index 52a213cd9be2de536d2eb21cde8211e61b015584..e23df0ddab3232aaad9979e7ce6fa28550724be0 100644
--- a/src/QUI/ERP/Money/Price.php
+++ b/src/QUI/ERP/Money/Price.php
@@ -9,6 +9,16 @@
 use QUI;
 use QUI\ERP\Discount\Discount;
 
+use function floatval;
+use function is_float;
+use function mb_strpos;
+use function mb_substr;
+use function preg_replace;
+use function round;
+use function str_replace;
+use function substr;
+use function trim;
+
 /**
  * Class Price
  * @package QUI\ERP\Products\Price
@@ -25,18 +35,18 @@ class Price
      * Price currency
      * @var QUI\ERP\Currency\Currency
      */
-    protected $Currency;
+    protected QUI\ERP\Currency\Currency $Currency;
 
     /**
      * Flag for Price from
      * @var bool
      */
-    protected $isMinimalPrice = false;
+    protected bool $isMinimalPrice = false;
 
     /**
      * @var array
      */
-    protected $discounts;
+    protected array $discounts;
 
     /**
      * User
@@ -181,17 +191,17 @@ public function getCurrency(): QUI\ERP\Currency\Currency
      */
     public static function validatePrice($value, $Locale = null)
     {
-        if (\is_float($value)) {
-            return \round($value, QUI\ERP\Defaults::getPrecision());
+        if (is_float($value)) {
+            return round($value, QUI\ERP\Defaults::getPrecision());
         }
 
         $value      = (string)$value;
-        $isNegative = \substr($value, 0, 1) === '-';
+        $isNegative = substr($value, 0, 1) === '-';
 
         // value cleanup
-        $value = \preg_replace('#[^\d,.]#i', '', $value);
+        $value = preg_replace('#[^\d,.]#i', '', $value);
 
-        if (\trim($value) === '') {
+        if (trim($value) === '') {
             return null;
         }
 
@@ -208,30 +218,30 @@ public static function validatePrice($value, $Locale = null)
         $decimalSeparator  = $Locale->getDecimalSeparator();
         $thousandSeparator = $Locale->getGroupingSeparator();
 
-        $decimal   = \mb_strpos($value, $decimalSeparator);
-        $thousands = \mb_strpos($value, $thousandSeparator);
+        $decimal   = mb_strpos($value, $decimalSeparator);
+        $thousands = mb_strpos($value, $thousandSeparator);
 
         if ($thousands === false && $decimal === false) {
-            return \round(\floatval($value), 4) * $negativeTurn;
+            return round(floatval($value), 4) * $negativeTurn;
         }
 
         if ($thousands !== false && $decimal === false) {
-            if (\mb_substr($value, -4, 1) === $thousandSeparator) {
-                $value = \str_replace($thousandSeparator, '', $value);
+            if (mb_substr($value, -4, 1) === $thousandSeparator) {
+                $value = str_replace($thousandSeparator, '', $value);
             }
         }
 
         if ($thousands === false && $decimal !== false) {
-            $value = \str_replace($decimalSeparator, '.', $value);
+            $value = str_replace($decimalSeparator, '.', $value);
         }
 
         if ($thousands !== false && $decimal !== false) {
-            $value = \str_replace($thousandSeparator, '', $value);
-            $value = \str_replace($decimalSeparator, '.', $value);
+            $value = str_replace($thousandSeparator, '', $value);
+            $value = str_replace($decimalSeparator, '.', $value);
         }
 
-        $value = \floatval($value);
-        $value = \round($value, QUI\ERP\Defaults::getPrecision());
+        $value = floatval($value);
+        $value = round($value, QUI\ERP\Defaults::getPrecision());
         $value = $value * $negativeTurn;
 
         return $value;
diff --git a/src/QUI/ERP/Output/Output.php b/src/QUI/ERP/Output/Output.php
index d47045a5126ff9dbf7eea73db6508457c172a76c..47c91f7effce486f34842d0f597816989881c596 100644
--- a/src/QUI/ERP/Output/Output.php
+++ b/src/QUI/ERP/Output/Output.php
@@ -2,8 +2,18 @@
 
 namespace QUI\ERP\Output;
 
+use Exception;
 use QUI;
 
+use function array_column;
+use function class_exists;
+use function file_exists;
+use function http_build_query;
+use function json_decode;
+use function rename;
+use function unlink;
+use function usort;
+
 /**
  * Class Output
  *
@@ -80,7 +90,7 @@ public static function getDocumentHtml(
         }
 
         if (empty($OutputProvider)) {
-            throw new QUI\Exception('No output provider found for entity type "'.$entityType.'"');
+            throw new QUI\Exception('No output provider found for entity type "' . $entityType . '"');
         }
 
         if (empty($TemplateProvider)) {
@@ -88,7 +98,7 @@ public static function getDocumentHtml(
         }
 
         if (empty($TemplateProvider)) {
-            throw new QUI\Exception('No default output template provider found for entity type "'.$entityType.'"');
+            throw new QUI\Exception('No default output template provider found for entity type "' . $entityType . '"');
         }
 
         $OutputTemplate = new OutputTemplate(
@@ -151,8 +161,8 @@ public static function getDocumentPdf(
      */
     public static function getDocumentPdfDownloadUrl($entityId, string $entityType): string
     {
-        $url = URL_OPT_DIR.'quiqqer/erp/bin/output/frontend/download.php?';
-        $url .= \http_build_query([
+        $url = URL_OPT_DIR . 'quiqqer/erp/bin/output/frontend/download.php?';
+        $url .= http_build_query([
             'id' => $entityId,
             't'  => $entityType
         ]);
@@ -208,8 +218,8 @@ public static function sendPdfViaMail(
 
         // Re-name PDF
         $pdfDir   = QUI::getPackage('quiqqer/erp')->getVarDir();
-        $mailFile = $pdfDir.$OutputProvider::getDownloadFileName($entityId).'.pdf';
-        \rename($pdfFile, $mailFile);
+        $mailFile = $pdfDir . $OutputProvider::getDownloadFileName($entityId) . '.pdf';
+        rename($pdfFile, $mailFile);
 
         if (!QUI\Utils\Security\Orthos::checkMailSyntax($recipientEmail)) {
             throw new QUI\ERP\Exception([
@@ -267,8 +277,8 @@ public static function sendPdfViaMail(
         QUI::getEvents()->fireEvent('quiqqerErpOutputSendMail', [$entityId, $entityType, $recipientEmail]);
 
         // Delete PDF file after send
-        if (\file_exists($mailFile)) {
-            \unlink($mailFile);
+        if (file_exists($mailFile)) {
+            unlink($mailFile);
         }
     }
 
@@ -301,7 +311,7 @@ public static function getTemplates(string $entityType = null): array
         $outputProviders = [];
 
         if (empty($entityType)) {
-            $outputProviders = \array_column(self::getAllOutputProviders(), 'class');
+            $outputProviders = array_column(self::getAllOutputProviders(), 'class');
         } else {
             $OutputProvider = self::getOutputProviderByEntityType($entityType);
 
@@ -324,12 +334,12 @@ public static function getTemplates(string $entityType = null): array
                     $templateTitle = $class::getTemplateTitle($providerTemplateId);
 
                     if ($provider['isSystemDefault']) {
-                        $templateTitle .= ' '.QUI::getLocale()->get('quiqqer/erp', 'output.default_template.suffix');
+                        $templateTitle .= ' ' . QUI::getLocale()->get('quiqqer/erp', 'output.default_template.suffix');
                     }
 
                     $isDefault = isset($defaultOutputTemplate['provider']) &&
-                                 $defaultOutputTemplate['provider'] === $provider['package'] &&
-                                 $defaultOutputTemplate['id'] === $providerTemplateId;
+                        $defaultOutputTemplate['provider'] === $provider['package'] &&
+                        $defaultOutputTemplate['id'] === $providerTemplateId;
 
                     $providerTemplate = [
                         'id'              => $providerTemplateId,
@@ -347,7 +357,7 @@ public static function getTemplates(string $entityType = null): array
         }
 
         // Sort so that system default is first
-        \usort($templates, function ($a, $b) {
+        usort($templates, function ($a, $b) {
             if ($a['isSystemDefault']) {
                 return -1;
             }
@@ -384,14 +394,14 @@ public static function getDefaultOutputTemplateForEntityType(string $entityType)
                 return $fallBackTemplate;
             }
 
-            $defaultTemplates = \json_decode($defaultTemplates, true);
+            $defaultTemplates = json_decode($defaultTemplates, true);
 
             if (empty($defaultTemplates[$entityType])) {
                 return $fallBackTemplate;
             }
 
             return $defaultTemplates[$entityType];
-        } catch (\Exception $Exception) {
+        } catch (Exception $Exception) {
             QUI\System\Log::writeException($Exception);
 
             return $fallBackTemplate;
@@ -454,7 +464,7 @@ protected static function getAllOutputProviders(): array
 
                 /** @var OutputProviderInterface $class */
                 foreach ($packageProvider['erpOutput'] as $class) {
-                    if (!\class_exists($class)) {
+                    if (!class_exists($class)) {
                         continue;
                     }
 
@@ -497,7 +507,7 @@ protected static function getAllOutputTemplateProviders(): array
 
                 /** @var OutputTemplateProviderInterface $class */
                 foreach ($packageProvider['erpOutputTemplate'] as $class) {
-                    if (!\class_exists($class)) {
+                    if (!class_exists($class)) {
                         continue;
                     }
 
@@ -513,7 +523,7 @@ protected static function getAllOutputTemplateProviders(): array
         }
 
         // Sort providers that system default is first
-        \usort($providerClasses, function ($a, $b) {
+        usort($providerClasses, function ($a, $b) {
             if ($a['isSystemDefault']) {
                 return -1;
             }
diff --git a/src/QUI/ERP/Output/OutputTemplate.php b/src/QUI/ERP/Output/OutputTemplate.php
index 434321198698c1c8c4d18bdb3475e9fd84cbbd0d..48b839aef933de4eea6e5096ea8fcf890efffe1c 100644
--- a/src/QUI/ERP/Output/OutputTemplate.php
+++ b/src/QUI/ERP/Output/OutputTemplate.php
@@ -2,8 +2,13 @@
 
 namespace QUI\ERP\Output;
 
+use Exception;
 use QUI;
 
+use function get_class;
+use function is_string;
+use function putenv;
+
 /**
  * Class OutputTemplate
  */
@@ -27,12 +32,12 @@ class OutputTemplate
     /**
      * @var QUI\Interfaces\Template\EngineInterface
      */
-    protected $Engine;
+    protected QUI\Interfaces\Template\EngineInterface $Engine;
 
     /**
      * @var string
      */
-    protected $entityType;
+    protected string $entityType;
 
     /**
      * @var string|int
@@ -49,7 +54,7 @@ class OutputTemplate
     /**
      * @var bool
      */
-    protected $preview = false;
+    protected bool $preview = false;
 
     /**
      * Template constructor.
@@ -146,9 +151,9 @@ public function getHTML($preview = false): string
     }
 </style>';
 
-        $html .= '<div class="quiqqer-erp-output-html-header">'.$this->getHTMLHeader().'</div>';
-        $html .= '<div class="quiqqer-erp-output-html-body">'.$this->getHTMLBody().'</div>';
-        $html .= '<div class="quiqqer-erp-output-html-footer">'.$this->getHTMLFooter().'</div>';
+        $html .= '<div class="quiqqer-erp-output-html-header">' . $this->getHTMLHeader() . '</div>';
+        $html .= '<div class="quiqqer-erp-output-html-body">' . $this->getHTMLBody() . '</div>';
+        $html .= '<div class="quiqqer-erp-output-html-footer">' . $this->getHTMLFooter() . '</div>';
 
         QUI::getLocale()->resetCurrent();
 
@@ -169,7 +174,7 @@ public function getPDFDocument(): QUI\HtmlToPdf\Document
 
         $Document = new QUI\HtmlToPdf\Document([
             'marginTop'         => 30, // dies ist variabel durch quiqqerInvoicePdfCreate
-            'filename'          => $this->OutputProvider::getDownloadFileName($this->entityId).'.pdf',
+            'filename'          => $this->OutputProvider::getDownloadFileName($this->entityId) . '.pdf',
             'marginBottom'      => 80,  // dies ist variabel durch quiqqerInvoicePdfCreate,
             'pageNumbersPrefix' => $Locale->get('quiqqer/htmltopdf', 'footer.page.prefix')
         ]);
@@ -180,7 +185,7 @@ public function getPDFDocument(): QUI\HtmlToPdf\Document
         );
 
         try {
-            \putenv('QUIQQER_CACHE_DISABLE_WEBP=1');
+            putenv('QUIQQER_CACHE_DISABLE_WEBP=1');
 
             $templateData = $this->OutputProvider::getTemplateData($this->entityId);
             $this->Engine->assign($templateData);
@@ -189,8 +194,8 @@ public function getPDFDocument(): QUI\HtmlToPdf\Document
             $Document->setContentHTML($this->getHTMLBody());
             $Document->setFooterHTML($this->getHTMLFooter());
 
-            \putenv('QUIQQER_CACHE_DISABLE_WEBP');
-        } catch (\Exception $Exception) {
+            putenv('QUIQQER_CACHE_DISABLE_WEBP');
+        } catch (Exception $Exception) {
             QUI\System\Log::writeException($Exception);
         }
 
@@ -212,11 +217,11 @@ public function getEngine(): QUI\Interfaces\Template\EngineInterface
      */
     public function getTemplateProvider()
     {
-        if (\is_string($this->TemplateProvider)) {
+        if (is_string($this->TemplateProvider)) {
             return $this->TemplateProvider;
         }
 
-        return \get_class($this->TemplateProvider);
+        return get_class($this->TemplateProvider);
     }
 
     //region Template Output Helper
@@ -235,6 +240,7 @@ public function getHTMLHeader(): string
      * Return the html body
      *
      * @return string
+     * @throws QUI\Exception
      */
     public function getHTMLBody(): string
     {
@@ -288,7 +294,7 @@ public function getHTMLFooter(): string
             $css .= '</style>';
         }
 
-        return $css.$footerHtml;
+        return $css . $footerHtml;
     }
 
     //endregion
diff --git a/src/QUI/ERP/Packages/Installer.php b/src/QUI/ERP/Packages/Installer.php
index 8ead526c36b84dfa54656c761af0ececc8e5037b..4e63cf7962ca7dad5408dba6ed3f2c694533581b 100644
--- a/src/QUI/ERP/Packages/Installer.php
+++ b/src/QUI/ERP/Packages/Installer.php
@@ -8,6 +8,9 @@
 
 use QUI;
 
+use function array_keys;
+use function in_array;
+
 /**
  * Class Installer
  * - ERP package installer, installs ERP Packages to the system
@@ -22,7 +25,7 @@ class Installer extends QUI\Utils\Singleton
      *
      * @var array
      */
-    protected $packages = [
+    protected array $packages = [
         'quiqqer/areas' => [
             'server' => [
                 'git@dev.quiqqer.com:quiqqer/areas.git'
@@ -105,11 +108,13 @@ class Installer extends QUI\Utils\Singleton
      * Installs an erp package
      *
      * @param string $packageName - Package name
+     *
      * @throws Exception
+     * @throws QUI\Exception
      */
-    public function install($packageName)
+    public function install(string $packageName)
     {
-        if (!\in_array($packageName, $this->getPackageList())) {
+        if (!in_array($packageName, $this->getPackageList())) {
             throw new Exception([
                 'quiqqer/erp',
                 'exception.package.is.not.erp.package'
@@ -127,9 +132,9 @@ public function install($packageName)
      *
      * @return array
      */
-    public function getPackageList()
+    public function getPackageList(): array
     {
-        return \array_keys($this->packages);
+        return array_keys($this->packages);
     }
 
     /**
@@ -139,9 +144,9 @@ public function getPackageList()
      * @return array
      * @throws Exception
      */
-    protected function getPackageRequirements($packageName)
+    protected function getPackageRequirements($packageName): array
     {
-        if (!\in_array($packageName, $this->getPackageList())) {
+        if (!in_array($packageName, $this->getPackageList())) {
             throw new Exception([
                 'quiqqer/erp',
                 'exception.erp.package.not.an.erp.package'
@@ -167,7 +172,7 @@ protected function getPackageRequirements($packageName)
      */
     public function setPackageRequirements($packageName)
     {
-        if (!\in_array($packageName, $this->getPackageList())) {
+        if (!in_array($packageName, $this->getPackageList())) {
             throw new Exception([
                 'quiqqer/erp',
                 'exception.package.is.not.erp.package'
diff --git a/src/QUI/ERP/Provider/Erp.php b/src/QUI/ERP/Provider/Erp.php
index fc18ec3880231cc095f6f9d338c4dd9e8451ea85..82b6b0936de26c4c225ce9ecc6850f563ee19498 100644
--- a/src/QUI/ERP/Provider/Erp.php
+++ b/src/QUI/ERP/Provider/Erp.php
@@ -7,11 +7,9 @@
 namespace QUI\ERP\Provider;
 
 use QUI;
-
-use QUI\ERP\Api\AbstractErpProvider;
-
-use QUI\Controls\Sitemap\Map;
 use QUI\Controls\Sitemap\Item;
+use QUI\Controls\Sitemap\Map;
+use QUI\ERP\Api\AbstractErpProvider;
 
 /**
  * Class ErpProvider
@@ -21,7 +19,7 @@
 class Erp extends AbstractErpProvider
 {
     /**
-     * @param \QUI\Controls\Sitemap\Map $Map
+     * @param Map $Map
      */
     public static function addMenuItems(Map $Map)
     {
diff --git a/src/QUI/ERP/Provider/Requirements.php b/src/QUI/ERP/Provider/Requirements.php
index f27f2e0ec3904ec7896f5c78e320ff06c61d5d83..d52ffebc648f8122aaa9be5278e9ef1322c62b03 100644
--- a/src/QUI/ERP/Provider/Requirements.php
+++ b/src/QUI/ERP/Provider/Requirements.php
@@ -6,15 +6,16 @@
 
 namespace QUI\ERP\Provider;
 
+use QUI\Requirements\Api\AbstractRequirementProvider;
+
 /**
  * Class Requirements
  *
  * @package QUI\ERP\Provider
  */
-class Requirements extends \QUI\Requirements\Api\AbstractRequirementProvider
+class Requirements extends AbstractRequirementProvider
 {
     public function __construct()
     {
-
     }
 }
diff --git a/src/QUI/ERP/Requirements/Area.php b/src/QUI/ERP/Requirements/Area.php
index 500e57451d74a7e9d976904c1c693f8908be53a4..ccb3c7607f442d0952f31ee88a083dbb88074ad6 100644
--- a/src/QUI/ERP/Requirements/Area.php
+++ b/src/QUI/ERP/Requirements/Area.php
@@ -8,6 +8,7 @@
 
 use QUI;
 use QUI\ERP\Defaults;
+use QUI\Requirements\TestResult;
 use QUI\Requirements\Tests\Test;
 
 /**
@@ -21,20 +22,20 @@ class Area extends Test
     /**
      * Execute the test
      *
-     * @return \QUI\Requirements\TestResult
+     * @return TestResult
      */
-    public function run()
+    public function run(): TestResult
     {
         try {
             Defaults::getArea();
 
-            return new QUI\Requirements\TestResult(
-                QUI\Requirements\TestResult::STATUS_FAILED,
+            return new TestResult(
+                TestResult::STATUS_FAILED,
                 QUI::getLocale()->get('quiqqer/erp', 'message.default.area.missing')
             );
         } catch (QUI\Exception $Exception) {
-            return new QUI\Requirements\TestResult(
-                QUI\Requirements\TestResult::STATUS_OK,
+            return new TestResult(
+                TestResult::STATUS_OK,
                 QUI::getLocale()->get('quiqqer/erp', 'message.default.area.ok')
             );
         }