diff --git a/ajax/memberships/canUnlock.php b/ajax/memberships/canUnlock.php
index d0618286e4c513e61bab40c5d4cadf0b6414de20..847d11853e7b9e2e4ef3b92bf1dfeb3f1683337c 100644
--- a/ajax/memberships/canUnlock.php
+++ b/ajax/memberships/canUnlock.php
@@ -1,13 +1,14 @@
 <?php
 
-use QUI\Permissions\Permission;
-use QUI\Memberships\Handler as MembershipsHandler;
-
 /**
  * Checks if a user has the necessary permisssions to unlock a locked membership panel
  *
  * @return bool
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Permissions\Permission;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_canUnlock',
     function () {
@@ -16,6 +17,6 @@ function () {
             QUI::getUserBySession()
         );
     },
-    array(),
+    [],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/create.php b/ajax/memberships/create.php
index 660bdf7231127b6b988319fa66a7ca96feff02e4..413884ec76b192193d6f414adbe38f30add1d01f 100644
--- a/ajax/memberships/create.php
+++ b/ajax/memberships/create.php
@@ -1,8 +1,5 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Utils\Security\Orthos;
-
 /**
  * Create a new QUIQQER membership
  *
@@ -10,6 +7,10 @@
  * @param array $groupIds - IDs of all groups belonging to the new membership
  * @return integer|false - ID of new membership or false on error
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Utils\Security\Orthos;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_create',
     function ($title, $groupIds) {
@@ -17,18 +18,18 @@ function ($title, $groupIds) {
             $Memberships = MembershipsHandler::getInstance();
 
             /** @var \QUI\Memberships\Membership $NewMembership */
-            $NewMembership = $Memberships->createChild(array(
-                'title'    => Orthos::clear($title),
+            $NewMembership = $Memberships->createChild([
+                'title' => Orthos::clear($title),
                 'groupIds' => Orthos::clearArray(json_decode($groupIds, true))
-            ));
+            ]);
         } catch (QUI\Memberships\Exception $Exception) {
             QUI::getMessagesHandler()->addError(
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.create.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -41,9 +42,9 @@ function ($title, $groupIds) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -54,14 +55,14 @@ function ($title, $groupIds) {
             QUI::getLocale()->get(
                 'quiqqer/memberships',
                 'message.ajax.memberships.create.success',
-                array(
+                [
                     'title' => $title
-                )
+                ]
             )
         );
 
         return $NewMembership->getId();
     },
-    array('title', 'groupIds'),
+    ['title', 'groupIds'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/delete.php b/ajax/memberships/delete.php
index 2825603cda44c32e20eb36d03846182b93c553ca..31e4cf54a2dc7af831011640ead49018f80b77bd 100644
--- a/ajax/memberships/delete.php
+++ b/ajax/memberships/delete.php
@@ -1,19 +1,20 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-
 /**
  * Delete multiple memberships
  *
  * @param array $membershipsIds - Membership IDs
  * @return bool - success
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_delete',
     function ($membershipIds) {
         try {
             $membershipIds = json_decode($membershipIds, true);
-            $Memberships   = new MembershipsHandler();
+            $Memberships = new MembershipsHandler();
 
             foreach ($membershipIds as $membershipId) {
                 $Membership = $Memberships->getChild((int)$membershipId);
@@ -24,9 +25,9 @@ function ($membershipIds) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.delete.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -39,9 +40,9 @@ function ($membershipIds) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -57,6 +58,6 @@ function ($membershipIds) {
 
         return true;
     },
-    array('membershipIds'),
+    ['membershipIds'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/get.php b/ajax/memberships/get.php
index 508449780555c980ba3be4fc46c7adde1040cae7..2005f24d3ca43213ef80eb7bec4598c3964039b6 100644
--- a/ajax/memberships/get.php
+++ b/ajax/memberships/get.php
@@ -1,24 +1,25 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-
 /**
  * Get data of single membership
  *
  * @return array
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_get',
     function ($id) {
         $Memberships = MembershipsHandler::getInstance();
-        $Membership  = $Memberships->getChild((int)$id);
-        $attributes  = $Membership->getAttributes();
+        $Membership = $Memberships->getChild((int)$id);
+        $attributes = $Membership->getAttributes();
 
-        $attributes['groupIds']       = trim($attributes['groupIds'], ',');
+        $attributes['groupIds'] = trim($attributes['groupIds'], ',');
         $attributes['uniqueGroupIds'] = $Membership->getUniqueGroupIds();
 
         return $attributes;
     },
-    array('id'),
+    ['id'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/getInstalledMembershipPackages.php b/ajax/memberships/getInstalledMembershipPackages.php
index 30b4852ea0e16ca52be9ed7f32fb646aa747395d..9a6bfe9599af96401a6f24a9b84966fe7fb4b107 100644
--- a/ajax/memberships/getInstalledMembershipPackages.php
+++ b/ajax/memberships/getInstalledMembershipPackages.php
@@ -1,17 +1,18 @@
 <?php
 
-use QUI\Memberships\Utils;
-
 /**
  * Get all installed packages that are relevant for quiqqer/memberships
  *
  * @return array
  */
+
+use QUI\Memberships\Utils;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_getInstalledMembershipPackages',
     function () {
         return Utils::getInstalledMembershipPackages();
     },
-    array(),
+    [],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/getList.php b/ajax/memberships/getList.php
index d8587c81fc0c43180702dbff867ea59aca4275d5..152645b4cc627c45aea861a6934a4c32bfb6ef65 100644
--- a/ajax/memberships/getList.php
+++ b/ajax/memberships/getList.php
@@ -1,34 +1,35 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Utils\Security\Orthos;
-use QUI\Utils\Grid;
-use QUI\Memberships\Membership;
-
 /**
  * Get/search QUIQQER memberships
  *
  * @return array
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Memberships\Membership;
+use QUI\Utils\Grid;
+use QUI\Utils\Security\Orthos;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_getList',
     function ($searchParams) {
         $searchParams = Orthos::clearArray(json_decode($searchParams, true));
-        $Memberships  = MembershipsHandler::getInstance();
-        $memberships  = array();
+        $Memberships = MembershipsHandler::getInstance();
+        $memberships = [];
 
         foreach ($Memberships->search($searchParams) as $membershipId) {
             /** @var Membership $Membership */
-            $Membership    = $Memberships->getChild($membershipId);
-            $data          = $Membership->getAttributes();
-            $memberships[] = array(
-                'id'          => $data['id'],
-                'title'       => $Membership->getTitle(),
+            $Membership = $Memberships->getChild($membershipId);
+            $data = $Membership->getAttributes();
+            $memberships[] = [
+                'id' => $data['id'],
+                'title' => $Membership->getTitle(),
                 'description' => $Membership->getDescription(),
-                'duration'    => $data['duration'],
-                'userCount'   => count($Membership->getMembershipUserIds()),
-                'autoExtend'  => boolval($data['autoExtend'])
-            );
+                'duration' => $data['duration'],
+                'userCount' => count($Membership->getMembershipUserIds()),
+                'autoExtend' => boolval($data['autoExtend'])
+            ];
         }
 
         $Grid = new Grid($searchParams);
@@ -38,6 +39,6 @@ function ($searchParams) {
             $Memberships->countChildren() // @todo ggf. andere methode
         );
     },
-    array('searchParams'),
+    ['searchParams'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/getSetting.php b/ajax/memberships/getSetting.php
index edaba14703e7af2d919e43a9203e5ca45d1490d1..88c6cf6c465ca3f98bf90847ee32c2a2c7f7beec 100644
--- a/ajax/memberships/getSetting.php
+++ b/ajax/memberships/getSetting.php
@@ -1,17 +1,18 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-
 /**
  * Get membership setting
  *
  * @return mixed
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_getSetting',
     function ($key) {
         return MembershipsHandler::getSetting($key);
     },
-    array('key'),
+    ['key'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/getView.php b/ajax/memberships/getView.php
index 5f5f25ecb5fc1c19f058c033aa80b937e1e289cd..35e1a55b403ad870b9db336ef4247c8cb6ccb826 100644
--- a/ajax/memberships/getView.php
+++ b/ajax/memberships/getView.php
@@ -1,19 +1,20 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-
 /**
  * Get data of single membership
  *
  * @return array
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_getView',
     function ($id) {
         $Memberships = MembershipsHandler::getInstance();
-        $Membership  = $Memberships->getChild((int)$id);
+        $Membership = $Memberships->getChild((int)$id);
         return $Membership->getBackendViewData();
     },
-    array('id'),
+    ['id'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/lock.php b/ajax/memberships/lock.php
index cf79125024b37260d1efa5f30d6a80e13ff6b56f..5d34bd279a3095ca8974859765496865a5b5c871 100644
--- a/ajax/memberships/lock.php
+++ b/ajax/memberships/lock.php
@@ -1,8 +1,5 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Watcher;
-
 /**
  * Locks a membership panel if the user has the necessary permission(s)
  *
@@ -10,6 +7,10 @@
  * @param string $lockKey - Membership panel lock key
  * @return bool - success
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Watcher;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_lock',
     function ($id) {
@@ -25,9 +26,9 @@ function ($id) {
                     QUI::getLocale()->get(
                         'quiqqer/memberships',
                         'watcher.membership.force.edit',
-                        array(
+                        [
                             'id' => $id
-                        )
+                        ]
                     ),
                     'package_quiqqer_memberships_ajax_memberships_lock'
                 );
@@ -53,6 +54,6 @@ function ($id) {
 
         return true;
     },
-    array('id'),
+    ['id'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/products/createMembershipProducts.php b/ajax/memberships/products/createMembershipProducts.php
index a029edf31fa186c9c2f4bc0867316fdc6c87ef7b..b0551814d40de6c0e4a18cececcd4df2a235a302 100644
--- a/ajax/memberships/products/createMembershipProducts.php
+++ b/ajax/memberships/products/createMembershipProducts.php
@@ -1,43 +1,46 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-
 /**
  * Create a new Product from a Membership
  *
  * @param int $membershipId
  * @return bool - success
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_products_createMembershipProducts',
     function ($membershipId) {
         try {
             $Memberships = MembershipsHandler::getInstance();
-            $Membership  = $Memberships->getChild((int)$membershipId);
+            $Membership = $Memberships->getChild((int)$membershipId);
             $Membership->createProduct();
         } catch (QUI\Memberships\Exception $Exception) {
             QUI::getMessagesHandler()->addError(
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.products.createMembershipProducts.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
             return false;
         } catch (\Exception $Exception) {
-            QUI\System\Log::addError('AJAX :: package_quiqqer_memberships_ajax_memberships_products_createMembershipProducts');
+            QUI\System\Log::addError(
+                'AJAX :: package_quiqqer_memberships_ajax_memberships_products_createMembershipProducts'
+            );
             QUI\System\Log::writeException($Exception);
 
             QUI::getMessagesHandler()->addError(
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -53,6 +56,6 @@ function ($membershipId) {
 
         return true;
     },
-    array('membershipId'),
+    ['membershipId'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/products/getMembershipProducts.php b/ajax/memberships/products/getMembershipProducts.php
index 9d84d7afd6d035d9a1c1905b74303ec8ae338a62..bad7953b57ef887f0c83ad1e6ebdba68cbe6ed98 100644
--- a/ajax/memberships/products/getMembershipProducts.php
+++ b/ajax/memberships/products/getMembershipProducts.php
@@ -1,32 +1,33 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\ERP\Products\Handler\Fields as ProductFields;
-
 /**
  * Get list of Products that have a specific Membership assigned
  *
  * @param int $membershipId
  * @return array
  */
+
+use QUI\ERP\Products\Handler\Fields as ProductFields;
+use QUI\Memberships\Handler as MembershipsHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_products_getMembershipProducts',
     function ($membershipId) {
         $Memberships = MembershipsHandler::getInstance();
-        $Membership  = $Memberships->getChild((int)$membershipId);
-        $productData = array();
+        $Membership = $Memberships->getChild((int)$membershipId);
+        $productData = [];
 
         /** @var \QUI\ERP\Products\Product\Product $Product */
         foreach ($Membership->getProducts() as $Product) {
-            $productData[] = array(
-                'id'        => $Product->getId(),
-                'title'     => $Product->getTitle(),
+            $productData[] = [
+                'id' => $Product->getId(),
+                'title' => $Product->getTitle(),
                 'articleNo' => $Product->getFieldValue(ProductFields::FIELD_PRODUCT_NO)
-            );
+            ];
         }
 
         return $productData;
     },
-    array('membershipId'),
+    ['membershipId'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/unlock.php b/ajax/memberships/unlock.php
index be624d93f178c57a1c243dcc33a256a3e8c922e1..f9d97931e21f39e7750a64f08d14f5684cff2e95 100644
--- a/ajax/memberships/unlock.php
+++ b/ajax/memberships/unlock.php
@@ -1,9 +1,5 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Lock\Locker;
-use QUI\Watcher;
-
 /**
  * Unlocks a location panel if the user has the necessary permission(s)
  *
@@ -12,6 +8,10 @@
  *
  * @throws \QUI\Permissions\Exception
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Watcher;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_unlock',
     function ($id) {
@@ -27,9 +27,9 @@ function ($id) {
                     QUI::getLocale()->get(
                         'quiqqer/memberships',
                         'watcher.location.force.edit',
-                        array(
+                        [
                             'id' => $Membership->getId()
-                        )
+                        ]
                     ),
                     'package_quiqqer_memberships_ajax_memberships_lock'
                 );
@@ -55,6 +55,6 @@ function ($id) {
 
         return true;
     },
-    array('id'),
+    ['id'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/update.php b/ajax/memberships/update.php
index 37da37e0392c305ecee21d391d09966476fcfbe0..4e63929d19eab0157b2e2f1949a63739e68004fb 100644
--- a/ajax/memberships/update.php
+++ b/ajax/memberships/update.php
@@ -1,8 +1,5 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Memberships\Utils;
-
 /**
  * Update a membership
  *
@@ -10,6 +7,10 @@
  * @param array $attributes - Update attributes
  * @return array|false - License data or false on error
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Memberships\Utils;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_update',
     function ($id, $attributes) {
@@ -19,10 +20,10 @@ function ($id, $attributes) {
             $Membership = $Memberships->getChild((int)$id);
 
             if ($Membership->isLocked()) {
-                throw new QUI\Memberships\Exception(array(
+                throw new QUI\Memberships\Exception([
                     'quiqqer/memberships',
                     'exception.membership.cannot.update.when.locked'
-                ));
+                ]);
             }
 
             $attributes = json_decode($attributes, true);
@@ -53,9 +54,9 @@ function ($id, $attributes) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.update.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -68,9 +69,9 @@ function ($id, $attributes) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -81,15 +82,15 @@ function ($id, $attributes) {
             QUI::getLocale()->get(
                 'quiqqer/memberships',
                 'message.ajax.memberships.update.success',
-                array(
-                    'id'    => $Membership->getId(),
+                [
+                    'id' => $Membership->getId(),
                     'title' => $Membership->getTitle()
-                )
+                ]
             )
         );
 
         return true;
     },
-    array('id', 'attributes'),
+    ['id', 'attributes'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/users/create.php b/ajax/memberships/users/create.php
index ae0e657858033d4a067cc8693f7d51fe76f82f28..1df32977b4e2bfee613aeafca3a1cdf184dd8f83 100644
--- a/ajax/memberships/users/create.php
+++ b/ajax/memberships/users/create.php
@@ -1,8 +1,5 @@
 <?php
 
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Memberships\Handler as MembershipsHandler;
-
 /**
  * Add user(s) to a QUIQQER membership
  *
@@ -10,27 +7,31 @@
  * @param array $userIds - QUIQQER user IDs
  * @return bool - success
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_create',
     function ($membershipId, $userIds) {
         try {
             $MembershipUsers = MembershipUsersHandler::getInstance();
-            $userIds         = json_decode($userIds, true);
+            $userIds = json_decode($userIds, true);
 
             foreach ($userIds as $userId) {
-                $MembershipUsers->createChild(array(
+                $MembershipUsers->createChild([
                     'membershipId' => (int)$membershipId,
-                    'userId'       => (int)$userId
-                ));
+                    'userId' => (int)$userId
+                ]);
             }
         } catch (QUI\Memberships\Exception $Exception) {
             QUI::getMessagesHandler()->addError(
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.users.create.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -43,9 +44,9 @@ function ($membershipId, $userIds) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -58,15 +59,15 @@ function ($membershipId, $userIds) {
             QUI::getLocale()->get(
                 'quiqqer/memberships',
                 'message.ajax.memberships.users.create.success',
-                array(
-                    'membershipId'    => $Membership->getId(),
+                [
+                    'membershipId' => $Membership->getId(),
                     'membershipTitle' => $Membership->getTitle()
-                )
+                ]
             )
         );
 
         return true;
     },
-    array('membershipId', 'userIds'),
+    ['membershipId', 'userIds'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/users/delete.php b/ajax/memberships/users/delete.php
index f7b40e401ab7409a5d5c17642fb66533a6eea892..9dac9cc5fc159fe4f9d2e1b961f98982e6161a66 100644
--- a/ajax/memberships/users/delete.php
+++ b/ajax/memberships/users/delete.php
@@ -1,20 +1,20 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-
 /**
  * Delete user(s) from a membership
  *
  * @param array $membershipsIds - Membership IDs
  * @return bool - success
  */
+
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_delete',
     function ($userIds) {
         try {
             $MembershipUsers = MembershipUsersHandler::getInstance();
-            $userIds     = json_decode($userIds, true);
+            $userIds = json_decode($userIds, true);
 
             foreach ($userIds as $userId) {
                 $MembershipUsers->getChild((int)$userId)->delete();
@@ -24,9 +24,9 @@ function ($userIds) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.users.delete.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -39,9 +39,9 @@ function ($userIds) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -57,6 +57,6 @@ function ($userIds) {
 
         return true;
     },
-    array('userIds'),
+    ['userIds'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/users/get.php b/ajax/memberships/users/get.php
index 3fb539bc9fb0cf1682335c2e25120115be1abcc0..95f486d6a4cacadec27dcce411d14f27c7cc48bf 100644
--- a/ajax/memberships/users/get.php
+++ b/ajax/memberships/users/get.php
@@ -1,14 +1,15 @@
 <?php
 
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Memberships\Users\MembershipUser;
-
 /**
  * Get general data of a MembershipUser
  *
  * @param int $membershipUserId
  * @return array|false - history data or false on error
  */
+
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+use QUI\Memberships\Users\MembershipUser;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_get',
     function ($membershipUserId) {
@@ -25,15 +26,15 @@ function ($membershipUserId) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
             return false;
         }
     },
-    array('membershipUserId'),
+    ['membershipUserId'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/users/getArchiveList.php b/ajax/memberships/users/getArchiveList.php
index 0c60b1a79745a76201baa88d3f514c1bf65f9796..f431331374a455c6b71e6488b9c870ea051a5b86 100644
--- a/ajax/memberships/users/getArchiveList.php
+++ b/ajax/memberships/users/getArchiveList.php
@@ -1,11 +1,5 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Utils\Security\Orthos;
-use QUI\Utils\Grid;
-use QUI\Memberships\Users\MembershipUser;
-
 /**
  * Get/search QUIQQER membership users (archived)
  *
@@ -13,18 +7,25 @@
  * @param array $searchParams - Search params
  * @return array
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+use QUI\Memberships\Users\MembershipUser;
+use QUI\Utils\Grid;
+use QUI\Utils\Security\Orthos;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_getArchiveList',
     function ($membershipId, $searchParams) {
-        $searchParams    = Orthos::clearArray(json_decode($searchParams, true));
-        $Memberships     = MembershipsHandler::getInstance();
+        $searchParams = Orthos::clearArray(json_decode($searchParams, true));
+        $Memberships = MembershipsHandler::getInstance();
         $MembershipUsers = MembershipUsersHandler::getInstance();
-        $Membership      = $Memberships->getChild((int)$membershipId);
-        $membershipUsers = array();
+        $Membership = $Memberships->getChild((int)$membershipId);
+        $membershipUsers = [];
 
         foreach ($Membership->searchUsers($searchParams, true) as $membershipUserId) {
             /** @var MembershipUser $MembershipUser */
-            $MembershipUser    = $MembershipUsers->getChild($membershipUserId);
+            $MembershipUser = $MembershipUsers->getChild($membershipUserId);
             $membershipUsers[] = $MembershipUser->getBackendViewData();
         }
 
@@ -35,6 +36,6 @@ function ($membershipId, $searchParams) {
             $Membership->searchUsers($searchParams, true, true)
         );
     },
-    array('membershipId', 'searchParams'),
+    ['membershipId', 'searchParams'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/users/getHistory.php b/ajax/memberships/users/getHistory.php
index 3bae571fa589dcf849bce7129ffe1d5380e79c76..e3170aad72a1817e98ec169cab7fee104beea746 100644
--- a/ajax/memberships/users/getHistory.php
+++ b/ajax/memberships/users/getHistory.php
@@ -1,14 +1,15 @@
 <?php
 
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Memberships\Users\MembershipUser;
-
 /**
  * Get history of a MembershipUser
  *
  * @param int $membershipUserId
  * @return array|false - history data or false on error
  */
+
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+use QUI\Memberships\Users\MembershipUser;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_getHistory',
     function ($membershipUserId) {
@@ -16,7 +17,7 @@ function ($membershipUserId) {
             $MembershipUsers = MembershipUsersHandler::getInstance();
             /** @var MembershipUser $MembershipUser */
             $MembershipUser = $MembershipUsers->getChild((int)$membershipUserId);
-            $history        = $MembershipUser->getHistory();
+            $history = $MembershipUser->getHistory();
 
             // reverse history entries so the latest entries come first
             return array_reverse($history);
@@ -28,15 +29,15 @@ function ($membershipUserId) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
             return false;
         }
     },
-    array('membershipUserId'),
+    ['membershipUserId'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/users/getList.php b/ajax/memberships/users/getList.php
index ec0d11f22c375c36f35e2e79941bd61465201304..d4df22deecb83dc8b4dc8fc1eb9adb3538070c5a 100644
--- a/ajax/memberships/users/getList.php
+++ b/ajax/memberships/users/getList.php
@@ -1,11 +1,5 @@
 <?php
 
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Utils\Security\Orthos;
-use QUI\Utils\Grid;
-use QUI\Memberships\Users\MembershipUser;
-
 /**
  * Get/search QUIQQER membership users
  *
@@ -13,20 +7,27 @@
  * @param array $searchParams - Search params
  * @return array
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+use QUI\Memberships\Users\MembershipUser;
+use QUI\Utils\Grid;
+use QUI\Utils\Security\Orthos;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_getList',
     function ($membershipId, $searchParams) {
-        $searchParams    = Orthos::clearArray(json_decode($searchParams, true));
-        $Memberships     = MembershipsHandler::getInstance();
+        $searchParams = Orthos::clearArray(json_decode($searchParams, true));
+        $Memberships = MembershipsHandler::getInstance();
         $MembershipUsers = MembershipUsersHandler::getInstance();
-        $Membership      = $Memberships->getChild((int)$membershipId);
-        $membershipUsers = array();
+        $Membership = $Memberships->getChild((int)$membershipId);
+        $membershipUsers = [];
 
 //        $Membership->addUser(QUI::getUserBySession());
 
         foreach ($Membership->searchUsers($searchParams) as $membershipUserId) {
             /** @var MembershipUser $MembershipUser */
-            $MembershipUser    = $MembershipUsers->getChild($membershipUserId);
+            $MembershipUser = $MembershipUsers->getChild($membershipUserId);
             $membershipUsers[] = $MembershipUser->getBackendViewData();
         }
 
@@ -41,6 +42,6 @@ function ($membershipId, $searchParams) {
             $Membership->searchUsers($searchParams, false, true)
         );
     },
-    array('membershipId', 'searchParams'),
+    ['membershipId', 'searchParams'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/users/getProfileData.php b/ajax/memberships/users/getProfileData.php
index 5e49ae46aed90e6018738e492813cbde333a6798..b346fe56c285b00ee5e2c3bdd569e11e0d5581c8 100644
--- a/ajax/memberships/users/getProfileData.php
+++ b/ajax/memberships/users/getProfileData.php
@@ -1,13 +1,14 @@
 <?php
 
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Memberships\Handler as MembershipsHandler;
-
 /**
  * Get all MembershipUser Objects data for the current session user (for frontend)
  *
  * @return array - view data for all relevant MembershipUser objects
  */
+
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_getProfileData',
     function () {
diff --git a/ajax/memberships/users/sendCancelMail.php b/ajax/memberships/users/sendCancelMail.php
index 7baa2523a810d72fbe2dacdc3222e1699b8ef4be..44636f7e0fe1057b99c386e246f575710cfff679 100644
--- a/ajax/memberships/users/sendCancelMail.php
+++ b/ajax/memberships/users/sendCancelMail.php
@@ -1,14 +1,14 @@
 <?php
 
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Memberships\Utils;
-
 /**
  * Send cancel email to user (manually)
  *
  * @param int $membershipUserId
  * @return bool - success
  */
+
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_sendCancelMail',
     function ($membershipUserId) {
@@ -23,9 +23,9 @@ function ($membershipUserId) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.users.sendCancelMail.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -38,9 +38,9 @@ function ($membershipUserId) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -51,15 +51,15 @@ function ($membershipUserId) {
             QUI::getLocale()->get(
                 'quiqqer/memberships',
                 'message.ajax.memberships.users.sendCancelMail.success',
-                array(
-                    'membershipUserId'   => $MembershipUser->getId(),
+                [
+                    'membershipUserId' => $MembershipUser->getId(),
                     'membershipUserName' => $MembershipUser->getUser()->getName()
-                )
+                ]
             )
         );
 
         return true;
     },
-    array('membershipUserId'),
+    ['membershipUserId'],
     'Permission::checkAdminUser'
 );
diff --git a/ajax/memberships/users/startAbortCancel.php b/ajax/memberships/users/startAbortCancel.php
index 9f561173dd5e3842b4962681839612eb8bdf6b7b..aa10bac892bbba94f8fe9b0f3b8b92fb2cf08c14 100644
--- a/ajax/memberships/users/startAbortCancel.php
+++ b/ajax/memberships/users/startAbortCancel.php
@@ -1,13 +1,14 @@
 <?php
 
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-
 /**
  * Abort cancellation process
  *
  * @param int $membershipUserId
  * @return bool - success
  */
+
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_startAbortCancel',
     function ($membershipUserId) {
@@ -33,9 +34,9 @@ function ($membershipUserId) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.users.abortCancel.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -48,9 +49,9 @@ function ($membershipUserId) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -66,6 +67,6 @@ function ($membershipUserId) {
 
         return true;
     },
-    array('membershipUserId'),
+    ['membershipUserId'],
     'Permission::checkUser'
 );
diff --git a/ajax/memberships/users/startCancel.php b/ajax/memberships/users/startCancel.php
index 159f692011b650a7e2754536e80fe83f89b0e0dc..fcfa4633e4a11c39bfa38e14b6823345dde8e599 100644
--- a/ajax/memberships/users/startCancel.php
+++ b/ajax/memberships/users/startCancel.php
@@ -1,13 +1,14 @@
 <?php
 
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-
 /**
  * Start cancellation process
  *
  * @param int $membershipUserId
  * @return bool - success
  */
+
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_startCancel',
     function ($membershipUserId) {
@@ -33,9 +34,9 @@ function ($membershipUserId) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.memberships.users.startCancel.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -48,9 +49,9 @@ function ($membershipUserId) {
                 QUI::getLocale()->get(
                     'quiqqer/memberships',
                     'message.ajax.general.error',
-                    array(
+                    [
                         'error' => $Exception->getMessage()
-                    )
+                    ]
                 )
             );
 
@@ -66,6 +67,6 @@ function ($membershipUserId) {
 
         return true;
     },
-    array('membershipUserId'),
+    ['membershipUserId'],
     'Permission::checkUser'
 );
diff --git a/ajax/memberships/users/update.php b/ajax/memberships/users/update.php
index 294dd1cf6be0242ba3d576b57283d9cd28728cc9..c727941d174f475b42cc21ba7002ffaad578ac0f 100644
--- a/ajax/memberships/users/update.php
+++ b/ajax/memberships/users/update.php
@@ -1,8 +1,5 @@
 <?php
 
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Memberships\Utils;
-
 /**
  * Update a MembershipUser
  *
@@ -10,30 +7,34 @@
  * @param array $attributes - Update attributes
  * @return bool - success
  */
+
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+use QUI\Memberships\Utils;
+
 QUI::$Ajax->registerFunction(
     'package_quiqqer_memberships_ajax_memberships_users_update',
     function ($membershipUserId, $attributes) {
         try {
             $MembershipUsers = MembershipUsersHandler::getInstance();
             /** @var \QUI\Memberships\Users\MembershipUser $MembershipUser */
-            $MembershipUser     = $MembershipUsers->getChild((int)$membershipUserId);
-            $attributes         = json_decode($attributes, true);
-            $updated            = [];
+            $MembershipUser = $MembershipUsers->getChild((int)$membershipUserId);
+            $attributes = json_decode($attributes, true);
+            $updated = [];
             $sendAutoExtendMail = false;
 
             foreach ($attributes as $k => $v) {
                 switch ($k) {
                     case 'beginDate':
                     case 'endDate':
-                        $v      = Utils::getFormattedTimestamp(strtotime($v));
+                        $v = Utils::getFormattedTimestamp(strtotime($v));
                         $oldVal = $MembershipUser->getAttribute($k);
 
-                        $updated[$k] = $oldVal.' => '.$v;
+                        $updated[$k] = $oldVal . ' => ' . $v;
 
                         if ($k === 'endDate') {
                             $oldEndDate = strtotime($MembershipUser->getAttribute('endDate'));
                             $newEndDate = strtotime($v);
-                            $now        = time();
+                            $now = time();
 
                             if ($newEndDate >= $now && $newEndDate > $oldEndDate) {
                                 $sendAutoExtendMail = true;
@@ -60,7 +61,7 @@ function ($membershipUserId, $attributes) {
                                  * considered here.
                                  */
                                 $MembershipUser->setAttributes([
-                                    'cancelStatus'  => MembershipUsersHandler::CANCEL_STATUS_CANCELLED_BY_SYSTEM,
+                                    'cancelStatus' => MembershipUsersHandler::CANCEL_STATUS_CANCELLED_BY_SYSTEM,
                                     'cancelEndDate' => $MembershipUser->getAttribute('endDate')
                                 ]);
 
@@ -71,7 +72,7 @@ function ($membershipUserId, $attributes) {
                                 );
 
                                 $MembershipUser->setAttributes([
-                                    'cancelStatus'  => MembershipUsersHandler::CANCEL_STATUS_NOT_CANCELLED,
+                                    'cancelStatus' => MembershipUsersHandler::CANCEL_STATUS_NOT_CANCELLED,
                                     'cancelEndDate' => null
                                 ]);
                             }
@@ -132,7 +133,7 @@ function ($membershipUserId, $attributes) {
                 'quiqqer/memberships',
                 'message.ajax.memberships.users.update.success',
                 [
-                    'membershipUserId'   => $MembershipUser->getId(),
+                    'membershipUserId' => $MembershipUser->getId(),
                     'membershipUserName' => $MembershipUser->getUser()->getName()
                 ]
             )
diff --git a/src/QUI/Memberships/Controls/Profile/Memberships.php b/src/QUI/Memberships/Controls/Profile/Memberships.php
index ec4ca45615474771879bef1936365986db83d528..29108790e9311af224006e6bcb2491576f043ab6 100644
--- a/src/QUI/Memberships/Controls/Profile/Memberships.php
+++ b/src/QUI/Memberships/Controls/Profile/Memberships.php
@@ -28,7 +28,7 @@ public function __construct(array $attributes = [])
     public function getBody()
     {
         $Engine = QUI::getTemplateManager()->getEngine();
-        return $Engine->fetch(dirname(__FILE__).'/Memberships.html');
+        return $Engine->fetch(dirname(__FILE__) . '/Memberships.html');
     }
 
     /**
diff --git a/src/QUI/Memberships/Events.php b/src/QUI/Memberships/Events.php
index 55ad3ee3e1bdecdf4e17e2d92f5b79dea65e4496..28165c6d74055c9b73f2f39789c121c7580414b8 100644
--- a/src/QUI/Memberships/Events.php
+++ b/src/QUI/Memberships/Events.php
@@ -3,18 +3,17 @@
 namespace QUI\Memberships;
 
 use QUI;
-use QUI\Package\Package;
-use QUI\Memberships\Handler as MembershipsHandler;
-use QUI\Memberships\Users\Handler as MembershipUsersHandler;
-use QUI\Memberships\Products\MembershipField;
-use QUI\ERP\Products\Handler\Fields as ProductFields;
+use QUI\ERP\Accounting\Contracts\Contract;
 use QUI\ERP\Products\Field\Field as ProductField;
 use QUI\ERP\Products\Handler\Categories as ProductCategories;
+use QUI\ERP\Products\Handler\Fields as ProductFields;
+use QUI\ERP\Products\Handler\Products as ProductsHandler;
 use QUI\ERP\Products\Handler\Search as ProductSearchHandler;
 use QUI\ERP\Products\Product\Product;
-use QUI\ERP\Products\Handler\Products as ProductsHandler;
-use QUI\ERP\Accounting\Contracts\Contract;
-use QUI\ERP\Order\Order;
+use QUI\Memberships\Handler as MembershipsHandler;
+use QUI\Memberships\Products\MembershipField;
+use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+use QUI\Package\Package;
 
 /**
  * Class Events
@@ -78,7 +77,7 @@ public static function onQuiqqerProductsProductDelete(Product $Product)
 
         // delete Product ID from MembershipUsers
         try {
-            $Membership      = MembershipsHandler::getInstance()->getChild($membershipId);
+            $Membership = MembershipsHandler::getInstance()->getChild($membershipId);
             $MembershipUsers = MembershipUsersHandler::getInstance();
 
             $membershipUserIds = $Membership->searchUsers([
@@ -92,8 +91,8 @@ public static function onQuiqqerProductsProductDelete(Product $Product)
             }
         } catch (\Exception $Exception) {
             QUI\System\Log::addError(
-                self::class.' :: onQuiqqerProductsProductDelete -> '
-                .$Exception->getMessage()
+                self::class . ' :: onQuiqqerProductsProductDelete -> '
+                . $Exception->getMessage()
             );
         }
     }
@@ -150,7 +149,7 @@ public static function onUserDelete(QUI\Users\User $User): void
      */
     protected static function createProductFields()
     {
-        $L    = new QUI\Locale();
+        $L = new QUI\Locale();
         $Conf = QUI::getPackage('quiqqer/memberships')->getConfig();
 
         // Membership field (create new one is not configured)
@@ -172,8 +171,8 @@ protected static function createProductFields()
 
             try {
                 $MembershipField = ProductFields::createField([
-                    'type'          => MembershipField::TYPE,
-                    'titles'        => $translations,
+                    'type' => MembershipField::TYPE,
+                    'titles' => $translations,
                     'workingtitles' => $translations
                 ]);
 
@@ -184,7 +183,7 @@ protected static function createProductFields()
                 $Conf->set('products', 'membershipFieldId', $MembershipField->getId());
                 $Conf->save();
             } catch (\Exception $Exception) {
-                QUI\System\Log::addError(self::class.' :: createProductFields');
+                QUI\System\Log::addError(self::class . ' :: createProductFields');
                 QUI\System\Log::writeException($Exception);
             }
         }
@@ -208,8 +207,8 @@ protected static function createProductFields()
 
             try {
                 $MembershipFlagField = ProductFields::createField([
-                    'type'          => ProductFields::TYPE_BOOL,
-                    'titles'        => $translations,
+                    'type' => ProductFields::TYPE_BOOL,
+                    'titles' => $translations,
                     'workingtitles' => $translations
                 ]);
 
@@ -217,8 +216,8 @@ protected static function createProductFields()
                 $MembershipFlagField->save();
 
                 // add Flag field to backend search
-                $BackendSearch                               = ProductSearchHandler::getBackendSearch();
-                $searchFields                                = $BackendSearch->getSearchFields();
+                $BackendSearch = ProductSearchHandler::getBackendSearch();
+                $searchFields = $BackendSearch->getSearchFields();
                 $searchFields[$MembershipFlagField->getId()] = true;
 
                 $BackendSearch->setSearchFields($searchFields);
@@ -227,7 +226,7 @@ protected static function createProductFields()
                 $Conf->set('products', 'membershipFlagFieldId', $MembershipFlagField->getId());
                 $Conf->save();
             } catch (\Exception $Exception) {
-                QUI\System\Log::addError(self::class.' :: createProductFields');
+                QUI\System\Log::addError(self::class . ' :: createProductFields');
                 QUI\System\Log::writeException($Exception);
             }
         }
@@ -247,17 +246,17 @@ public static function onQuiqqerOrderSuccessful($Order)
 
         if ($MembershipField === false) {
             QUI\System\Log::addError(
-                self::class.' :: onQuiqqerOrderSuccessful -> Could not parse membership'
-                .' from Order #'.$Order->getPrefixedId().' because no membership field'
-                .' is configured. Please execute a system setup.'
+                self::class . ' :: onQuiqqerOrderSuccessful -> Could not parse membership'
+                . ' from Order #' . $Order->getPrefixedId() . ' because no membership field'
+                . ' is configured. Please execute a system setup.'
             );
 
             return;
         }
 
         $membershipFieldId = $MembershipField->getId();
-        $Memberships       = Handler::getInstance();
-        $Users             = QUI::getUsers();
+        $Memberships = Handler::getInstance();
+        $Users = QUI::getUsers();
 
         try {
             $User = $Users->get($Order->getCustomer()->getId());
@@ -265,8 +264,8 @@ public static function onQuiqqerOrderSuccessful($Order)
             QUI\System\Log::writeDebugException($Exception);
 
             QUI\System\Log::addError(
-                self::class.' :: onQuiqqerOrderSuccessful -> Could not load user #'.$Order->getCustomer()->getId()
-                .' from Order #'.$Order->getPrefixedId().'. Cannot add user to membership'
+                self::class . ' :: onQuiqqerOrderSuccessful -> Could not load user #' . $Order->getCustomer()->getId()
+                . ' from Order #' . $Order->getPrefixedId() . '. Cannot add user to membership'
             );
             return;
         }
@@ -285,9 +284,9 @@ public static function onQuiqqerOrderSuccessful($Order)
         /** @var QUI\ERP\Accounting\Article $Article */
         foreach ($Order->getArticles()->getArticles() as $Article) {
             try {
-                $Product                = ProductsHandler::getProduct($Article->getId());
+                $Product = ProductsHandler::getProduct($Article->getId());
                 $ProductMembershipField = $Product->getField($membershipFieldId);
-                $membershipId           = $ProductMembershipField->getValue();
+                $membershipId = $ProductMembershipField->getValue();
 
                 if (empty($membershipId)) {
                     continue;
@@ -301,7 +300,7 @@ public static function onQuiqqerOrderSuccessful($Order)
 
                 $MembershipUser->addHistoryEntry(
                     MembershipUsersHandler::HISTORY_TYPE_MISC,
-                    'Order: '.$Order->getPrefixedId()
+                    'Order: ' . $Order->getPrefixedId()
                 );
 
                 $MembershipUser->update();
@@ -341,8 +340,8 @@ public static function onQuiqqerContractsExtend(Contract $Contract, \DateTime $E
         try {
             $result = QUI::getDataBase()->fetch([
                 'select' => ['id'],
-                'from'   => $MembershipUsers->getDataBaseTableName(),
-                'where'  => [
+                'from' => $MembershipUsers->getDataBaseTableName(),
+                'where' => [
                     'contractId' => $Contract->getCleanId()
                 ]
             ]);
@@ -394,26 +393,26 @@ public static function onQuiqqerContractsCreateFromOrder(Contract $Contract, $Or
 
         if ($MembershipField === false) {
             QUI\System\Log::addError(
-                self::class.' :: onQuiqqerContractsCreateFromOrder -> Could not parse membership'
-                .' from Order #'.$Order->getPrefixedId().' because no membership field'
-                .' is configured. Please execute a system setup.'
+                self::class . ' :: onQuiqqerContractsCreateFromOrder -> Could not parse membership'
+                . ' from Order #' . $Order->getPrefixedId() . ' because no membership field'
+                . ' is configured. Please execute a system setup.'
             );
 
             return;
         }
 
         $membershipFieldId = $MembershipField->getId();
-        $Memberships       = Handler::getInstance();
-        $Customer          = $Order->getCustomer();
+        $Memberships = Handler::getInstance();
+        $Customer = $Order->getCustomer();
 
         // Look for the article/product that contains a membership and add
         /** @var QUI\ERP\Accounting\Article $Article */
         foreach ($Order->getArticles()->getArticles() as $Article) {
             try {
-                $Product                = ProductsHandler::getProduct($Article->getId());
+                $Product = ProductsHandler::getProduct($Article->getId());
                 $ProductMembershipField = $Product->getField($membershipFieldId);
 
-                $Membership     = $Memberships->getChild($ProductMembershipField->getValue());
+                $Membership = $Memberships->getChild($ProductMembershipField->getValue());
                 $MembershipUser = $Membership->getMembershipUser($Customer->getId());
                 $MembershipUser->setEditUser(QUI::getUsers()->getSystemUser());
 
@@ -480,8 +479,8 @@ public static function onQuiqqerContractsDelete(Contract $Contract)
 
         $result = QUI::getDataBase()->fetch([
             'select' => ['id'],
-            'from'   => $MembershipUsers->getDataBaseTableName(),
-            'where'  => [
+            'from' => $MembershipUsers->getDataBaseTableName(),
+            'where' => [
                 'contractId' => $Contract->getCleanId()
             ]
         ]);
@@ -578,7 +577,11 @@ public static function onQuiqqerVerificationDeleteUnverified($membershipUserId)
             return;
         }
 
-        if ((int)$MembershipUser->getAttribute('cancelStatus') !== MembershipUsersHandler::CANCEL_STATUS_CANCEL_CONFIRM_PENDING) {
+        if (
+            (int)$MembershipUser->getAttribute(
+                'cancelStatus'
+            ) !== MembershipUsersHandler::CANCEL_STATUS_CANCEL_CONFIRM_PENDING
+        ) {
             return;
         }
 
@@ -607,13 +610,13 @@ protected static function createProductCategory()
         try {
             $Category = ProductCategories::createCategory();
         } catch (\Exception $Exception) {
-            QUI\System\Log::addError(self::class.' :: createProductCategory()');
+            QUI\System\Log::addError(self::class . ' :: createProductCategory()');
             QUI\System\Log::writeException($Exception);
 
             return;
         }
 
-        $catId  = $Category->getId();
+        $catId = $Category->getId();
         $titles = [
             'de' => '',
             'en' => ''
@@ -631,35 +634,35 @@ protected static function createProductCategory()
             $t = $L->get('quiqqer/memberships', 'products.category.title');
             $d = $L->get('quiqqer/memberships', 'products.category.description');
 
-            $titles[$l]               = $t;
-            $titles[$l.'_edit']       = $t;
-            $descriptions[$l]         = $d;
-            $descriptions[$l.'_edit'] = $d;
+            $titles[$l] = $t;
+            $titles[$l . '_edit'] = $t;
+            $descriptions[$l] = $d;
+            $descriptions[$l . '_edit'] = $d;
         }
 
         // change title and description
         QUI\Translator::edit(
             'quiqqer/products',
-            'products.category.'.$catId.'.title',
+            'products.category.' . $catId . '.title',
             'quiqqer/products',
             array_merge(
                 $titles,
                 [
                     'datatype' => 'php,js',
-                    'html'     => 0
+                    'html' => 0
                 ]
             )
         );
 
         QUI\Translator::edit(
             'quiqqer/products',
-            'products.category.'.$catId.'.description',
+            'products.category.' . $catId . '.description',
             'quiqqer/products',
             array_merge(
                 $descriptions,
                 [
                     'datatype' => 'php,js',
-                    'html'     => 0
+                    'html' => 0
                 ]
             )
         );
diff --git a/src/QUI/Memberships/Exception.php b/src/QUI/Memberships/Exception.php
index 5df1880270e66b2df131735eb0877325e9e5c984..7194cd3f08690775ee08f0bd948a4dd66205f708 100644
--- a/src/QUI/Memberships/Exception.php
+++ b/src/QUI/Memberships/Exception.php
@@ -11,5 +11,4 @@
  */
 class Exception extends QUI\Exception
 {
-
-}
\ No newline at end of file
+}
diff --git a/src/QUI/Memberships/Handler.php b/src/QUI/Memberships/Handler.php
index 5aa022b45ebf4aa45338234d05e373077637ce57..392a1a4b6b7fcb6d77460c4d229bc923ac54942c 100644
--- a/src/QUI/Memberships/Handler.php
+++ b/src/QUI/Memberships/Handler.php
@@ -2,13 +2,13 @@
 
 namespace QUI\Memberships;
 
-use QUI\CRUD\Factory;
-use QUI\Utils\Grid;
 use QUI;
-use QUI\Permissions\Permission;
+use QUI\CRUD\Factory;
 use QUI\ERP\Products\Handler\Categories as ProductCategories;
 use QUI\ERP\Products\Handler\Fields as ProductFields;
 use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+use QUI\Permissions\Permission;
+use QUI\Utils\Grid;
 use QUI\Utils\Security\Orthos;
 
 class Handler extends Factory
@@ -16,9 +16,9 @@ class Handler extends Factory
     /**
      * quiqqer/memberships permissions
      */
-    const PERMISSION_CREATE     = 'quiqqer.memberships.create';
-    const PERMISSION_EDIT       = 'quiqqer.memberships.edit';
-    const PERMISSION_DELETE     = 'quiqqer.memberships.delete';
+    const PERMISSION_CREATE = 'quiqqer.memberships.create';
+    const PERMISSION_EDIT = 'quiqqer.memberships.edit';
+    const PERMISSION_DELETE = 'quiqqer.memberships.delete';
     const PERMISSION_FORCE_EDIT = 'quiqqer.memberships.force_edit';
 
     /**
@@ -51,10 +51,11 @@ public function createChild($data = [])
         $data['title'] = json_encode($data['title']);
 
         // groupIds
-        $Groups   = QUI::getGroups();
+        $Groups = QUI::getGroups();
         $groupIds = $data['groupIds'];
 
-        if (empty($groupIds)
+        if (
+            empty($groupIds)
             || !is_array($groupIds)
         ) {
             throw new QUI\Memberships\Exception([
@@ -68,11 +69,11 @@ public function createChild($data = [])
             $Groups->get((int)$groupId);
         }
 
-        $data['groupIds']   = ','.implode(',', $groupIds).',';
-        $data['duration']   = '1-month';
+        $data['groupIds'] = ',' . implode(',', $groupIds) . ',';
+        $data['duration'] = '1-month';
         $data['autoExtend'] = 0;
-        $data['editDate']   = null;
-        $data['editUser']   = null;
+        $data['editDate'] = null;
+        $data['editUser'] = null;
 
         /** @var Membership $NewMembership */
         $NewMembership = parent::createChild($data);
@@ -135,8 +136,8 @@ public function getChildAttributes()
     public function search($searchParams, $countOnly = false)
     {
         $memberships = [];
-        $Grid        = new Grid($searchParams);
-        $gridParams  = $Grid->parseDBParams($searchParams);
+        $Grid = new Grid($searchParams);
+        $gridParams = $Grid->parseDBParams($searchParams);
 
         $binds = [];
         $where = [];
@@ -147,7 +148,7 @@ public function search($searchParams, $countOnly = false)
             $sql = "SELECT id";
         }
 
-        $sql .= " FROM `".$this->getDataBaseTableName()."`";
+        $sql .= " FROM `" . $this->getDataBaseTableName() . "`";
 
         if (!empty($searchParams['userId'])) {
             $memberhsipUsers = MembershipUsersHandler::getInstance()->getMembershipUsersByUserId(
@@ -162,7 +163,7 @@ public function search($searchParams, $countOnly = false)
             }
 
             if (!empty($membershipIds)) {
-                $where[] = '`id` IN ('.implode(',', $membershipIds).')';
+                $where[] = '`id` IN (' . implode(',', $membershipIds) . ')';
             }
         }
 
@@ -176,49 +177,51 @@ public function search($searchParams, $countOnly = false)
             $whereOr = [];
 
             foreach ($searchColumns as $searchColumn) {
-                $whereOr[] = '`'.$searchColumn.'` LIKE :search';
+                $whereOr[] = '`' . $searchColumn . '` LIKE :search';
             }
 
             if (!empty($whereOr)) {
-                $where[] = '('.implode(' OR ', $whereOr).')';
+                $where[] = '(' . implode(' OR ', $whereOr) . ')';
 
                 $binds['search'] = [
-                    'value' => '%'.$searchParams['search'].'%',
-                    'type'  => \PDO::PARAM_STR
+                    'value' => '%' . $searchParams['search'] . '%',
+                    'type' => \PDO::PARAM_STR
                 ];
             }
         }
 
         // build WHERE query string
         if (!empty($where)) {
-            $sql .= " WHERE ".implode(" AND ", $where);
+            $sql .= " WHERE " . implode(" AND ", $where);
         }
 
         // ORDER
         if (!empty($searchParams['sortOn'])
         ) {
             $sortOn = Orthos::clear($searchParams['sortOn']);
-            $order  = "ORDER BY ".$sortOn;
+            $order = "ORDER BY " . $sortOn;
 
-            if (isset($searchParams['sortBy']) &&
+            if (
+                isset($searchParams['sortBy']) &&
                 !empty($searchParams['sortBy'])
             ) {
-                $order .= " ".Orthos::clear($searchParams['sortBy']);
+                $order .= " " . Orthos::clear($searchParams['sortBy']);
             } else {
                 $order .= " ASC";
             }
 
-            $sql .= " ".$order;
+            $sql .= " " . $order;
         }
 
         // LIMIT
-        if (!empty($gridParams['limit'])
+        if (
+            !empty($gridParams['limit'])
             && !$countOnly
         ) {
-            $sql .= " LIMIT ".$gridParams['limit'];
+            $sql .= " LIMIT " . $gridParams['limit'];
         } else {
             if (!$countOnly) {
-                $sql .= " LIMIT ".(int)20;
+                $sql .= " LIMIT " . (int)20;
             }
         }
 
@@ -226,7 +229,7 @@ public function search($searchParams, $countOnly = false)
 
         // bind search values
         foreach ($binds as $var => $bind) {
-            $Stmt->bindValue(':'.$var, $bind['value'], $bind['type']);
+            $Stmt->bindValue(':' . $var, $bind['value'], $bind['type']);
         }
 
         try {
@@ -234,7 +237,7 @@ public function search($searchParams, $countOnly = false)
             $result = $Stmt->fetchAll(\PDO::FETCH_ASSOC);
         } catch (\Exception $Exception) {
             QUI\System\Log::addError(
-                self::class.' :: searchUsers() -> '.$Exception->getMessage()
+                self::class . ' :: searchUsers() -> ' . $Exception->getMessage()
             );
 
             return [];
@@ -265,28 +268,28 @@ public function getMembershipIdsByGroupIds($groupIds)
             return $ids;
         }
 
-        $sql = 'SELECT `id` FROM '.self::getDataBaseTableName();
+        $sql = 'SELECT `id` FROM ' . self::getDataBaseTableName();
         $sql .= ' WHERE ';
 
         $whereOr = [];
-        $binds   = [];
+        $binds = [];
 
         foreach ($groupIds as $groupId) {
-            $whereOr[]       = '`groupIds` LIKE :'.$groupId;
+            $whereOr[] = '`groupIds` LIKE :' . $groupId;
             $binds[$groupId] = [
-                'value' => '%,'.$groupId.',%',
-                'type'  => \PDO::PARAM_INT
+                'value' => '%,' . $groupId . ',%',
+                'type' => \PDO::PARAM_INT
             ];
         }
 
         $sql .= implode(" OR ", $whereOr);
 
-        $PDO  = QUI::getDataBase()->getPDO();
+        $PDO = QUI::getDataBase()->getPDO();
         $Stmt = $PDO->prepare($sql);
 
         // bind search values
         foreach ($binds as $var => $bind) {
-            $Stmt->bindValue(':'.$var, $bind['value'], $bind['type']);
+            $Stmt->bindValue(':' . $var, $bind['value'], $bind['type']);
         }
 
         try {
@@ -325,7 +328,7 @@ public static function getSetting($key)
      */
     public static function getProductCategory()
     {
-        $Conf       = QUI::getPackage('quiqqer/memberships')->getConfig();
+        $Conf = QUI::getPackage('quiqqer/memberships')->getConfig();
         $categoryId = $Conf->get('products', 'categoryId');
 
         if (empty($categoryId)) {
@@ -336,7 +339,7 @@ public static function getProductCategory()
             return ProductCategories::getCategory((int)$categoryId);
         } catch (\Exception $Exception) {
             if ($Exception->getCode() !== 404) {
-                QUI\System\Log::addError(self::class.' :: getProductCategory()');
+                QUI\System\Log::addError(self::class . ' :: getProductCategory()');
                 QUI\System\Log::writeException($Exception);
             }
 
@@ -358,7 +361,7 @@ public static function getProductMembershipField()
         }
 
         try {
-            $Conf    = QUI::getPackage('quiqqer/memberships')->getConfig();
+            $Conf = QUI::getPackage('quiqqer/memberships')->getConfig();
             $fieldId = $Conf->get('products', 'membershipFieldId');
 
             if (empty($fieldId)) {
@@ -386,7 +389,7 @@ public static function getProductMembershipFlagField()
         }
 
         try {
-            $Conf    = QUI::getPackage('quiqqer/memberships')->getConfig();
+            $Conf = QUI::getPackage('quiqqer/memberships')->getConfig();
             $fieldId = $Conf->get('products', 'membershipFlagFieldId');
 
             if (empty($fieldId)) {
diff --git a/src/QUI/Memberships/Membership.php b/src/QUI/Memberships/Membership.php
index 6e540b69340285bf753ba190e958edef825c061e..78717f0dee5884ef8ac8f04063e9176d9ed20a4b 100644
--- a/src/QUI/Memberships/Membership.php
+++ b/src/QUI/Memberships/Membership.php
@@ -4,17 +4,16 @@
 
 use QUI;
 use QUI\CRUD\Child;
-use QUI\ERP\Products\Handler\Products;
+use QUI\ERP\Plans\Handler as ErpPlansHandler;
+use QUI\ERP\Products\Handler\Fields as ProductFields;
+use QUI\ERP\Products\Handler\Products as ProductsHandler;
+use QUI\ERP\Products\Search\BackendSearch;
+use QUI\Interfaces\Users\User as QUIUserInterface;
 use QUI\Locale;
 use QUI\Lock\Locker;
 use QUI\Memberships\Users\Handler as MembershipUsersHandler;
 use QUI\Permissions\Permission;
 use QUI\Utils\Security\Orthos;
-use QUI\ERP\Products\Search\BackendSearch;
-use QUI\ERP\Products\Handler\Products as ProductsHandler;
-use QUI\ERP\Products\Handler\Fields as ProductFields;
-use QUI\ERP\Plans\Handler as ErpPlansHandler;
-use QUI\Interfaces\Users\User as QUIUserInterface;
 
 class Membership extends Child
 {
@@ -138,10 +137,11 @@ public function update()
             ]);
         }
 
-        $attributes['groupIds'] = ','.$attributes['groupIds'].',';
+        $attributes['groupIds'] = ',' . $attributes['groupIds'] . ',';
 
         // check duration
-        if (empty($attributes['duration'])
+        if (
+            empty($attributes['duration'])
             || $attributes['duration'] === 'infinite'
         ) {
             $attributes['duration'] = 'infinite';
@@ -237,11 +237,11 @@ public function getMembershipUser($userId)
             'select' => [
                 'id'
             ],
-            'from'   => MembershipUsersHandler::getInstance()->getDataBaseTableName(),
-            'where'  => [
+            'from' => MembershipUsersHandler::getInstance()->getDataBaseTableName(),
+            'where' => [
                 'membershipId' => $this->id,
-                'userId'       => $userId,
-                'archived'     => 0
+                'userId' => $userId,
+                'archived' => 0
             ]
         ]);
 
@@ -270,7 +270,7 @@ public function getMembershipUserIds($includeArchived = false)
 
         $where = [
             'membershipId' => $this->id,
-            'archived'     => 0
+            'archived' => 0
         ];
 
         if ($includeArchived) {
@@ -280,8 +280,8 @@ public function getMembershipUserIds($includeArchived = false)
         try {
             $result = QUI::getDataBase()->fetch([
                 'select' => 'id',
-                'from'   => QUI\Memberships\Users\Handler::getInstance()->getDataBaseTableName(),
-                'where'  => $where
+                'from' => QUI\Memberships\Users\Handler::getInstance()->getDataBaseTableName(),
+                'where' => $where
             ]);
         } catch (\Exception $Exception) {
             QUI\System\Log::writeException($Exception);
@@ -302,8 +302,8 @@ public function getMembershipUserIds($includeArchived = false)
      */
     public function getUniqueGroupIds()
     {
-        $Memberships    = Handler::getInstance();
-        $groupIds       = $this->getGroupIds();
+        $Memberships = Handler::getInstance();
+        $groupIds = $this->getGroupIds();
         $uniqueGroupIds = $groupIds;
 
         foreach ($Memberships->getMembershipIdsByGroupIds($groupIds) as $membershipId) {
@@ -336,15 +336,15 @@ public function getUniqueGroupIds()
     public function hasMembershipUserId($userId)
     {
         $result = QUI::getDataBase()->fetch([
-            'count'  => 1,
+            'count' => 1,
             'select' => [
                 'id'
             ],
-            'from'   => MembershipUsersHandler::getInstance()->getDataBaseTableName(),
-            'where'  => [
+            'from' => MembershipUsersHandler::getInstance()->getDataBaseTableName(),
+            'where' => [
                 'membershipId' => $this->id,
-                'userId'       => $userId,
-                'archived'     => 0
+                'userId' => $userId,
+                'archived' => 0
             ]
         ]);
 
@@ -362,12 +362,12 @@ public function hasMembershipUserId($userId)
     public function searchUsers($searchParams, $archivedOnly = false, $countOnly = false)
     {
         $membershipUserIds = [];
-        $Grid              = new QUI\Utils\Grid($searchParams);
-        $gridParams        = $Grid->parseDBParams($searchParams);
-        $tbl               = MembershipUsersHandler::getInstance()->getDataBaseTableName();
-        $usersTbl          = QUI::getDBTableName('users');
-        $binds             = [];
-        $where             = [];
+        $Grid = new QUI\Utils\Grid($searchParams);
+        $gridParams = $Grid->parseDBParams($searchParams);
+        $tbl = MembershipUsersHandler::getInstance()->getDataBaseTableName();
+        $usersTbl = QUI::getDBTableName('users');
+        $binds = [];
+        $where = [];
 
         if ($countOnly) {
             $sql = "SELECT COUNT(*)";
@@ -375,11 +375,11 @@ public function searchUsers($searchParams, $archivedOnly = false, $countOnly = f
             $sql = "SELECT `musers`.id";
         }
 
-        $sql .= " FROM `".$tbl."` musers LEFT JOIN `".$usersTbl."` users";
+        $sql .= " FROM `" . $tbl . "` musers LEFT JOIN `" . $usersTbl . "` users";
         $sql .= ' ON `musers`.userId = `users`.id';
 
 //        $where[] = '`musers`.userId = `users`.id';
-        $where[] = '`musers`.membershipId = '.$this->id;
+        $where[] = '`musers`.membershipId = ' . $this->id;
 
         if ($archivedOnly === false) {
             $where[] = '`musers`.archived = 0';
@@ -397,27 +397,27 @@ public function searchUsers($searchParams, $archivedOnly = false, $countOnly = f
             ];
 
             foreach ($searchColumns as $tbl => $column) {
-                $whereOR[]       = $column.' LIKE :search';
+                $whereOR[] = $column . ' LIKE :search';
                 $binds['search'] = [
-                    'value' => '%'.$searchParams['search'].'%',
-                    'type'  => \PDO::PARAM_STR
+                    'value' => '%' . $searchParams['search'] . '%',
+                    'type' => \PDO::PARAM_STR
                 ];
             }
 
-            $where[] = '('.implode(' OR ', $whereOR).')';
+            $where[] = '(' . implode(' OR ', $whereOR) . ')';
         }
 
         if (!empty($searchParams['productId'])) {
-            $where[]            = '`musers`.productId = :productId';
+            $where[] = '`musers`.productId = :productId';
             $binds['productId'] = [
                 'value' => (int)$searchParams['productId'],
-                'type'  => \PDO::PARAM_INT
+                'type' => \PDO::PARAM_INT
             ];
         }
 
         // build WHERE query string
         if (!empty($where)) {
-            $sql .= " WHERE ".implode(" AND ", $where);
+            $sql .= " WHERE " . implode(" AND ", $where);
         }
 
         // ORDER
@@ -428,34 +428,36 @@ public function searchUsers($searchParams, $archivedOnly = false, $countOnly = f
                 case 'username':
                 case 'firstname':
                 case 'lastname':
-                    $sortOn = '`users`.'.$sortOn;
+                    $sortOn = '`users`.' . $sortOn;
                     break;
 
                 default:
-                    $sortOn = '`musers`.'.$sortOn;
+                    $sortOn = '`musers`.' . $sortOn;
             }
 
-            $order = "ORDER BY ".$sortOn;
+            $order = "ORDER BY " . $sortOn;
 
-            if (isset($searchParams['sortBy']) &&
+            if (
+                isset($searchParams['sortBy']) &&
                 !empty($searchParams['sortBy'])
             ) {
-                $order .= " ".Orthos::clear($searchParams['sortBy']);
+                $order .= " " . Orthos::clear($searchParams['sortBy']);
             } else {
                 $order .= " ASC";
             }
 
-            $sql .= " ".$order;
+            $sql .= " " . $order;
         }
 
         // LIMIT
-        if (!empty($gridParams['limit'])
+        if (
+            !empty($gridParams['limit'])
             && !$countOnly
         ) {
-            $sql .= " LIMIT ".$gridParams['limit'];
+            $sql .= " LIMIT " . $gridParams['limit'];
         } else {
             if (!$countOnly) {
-                $sql .= " LIMIT ".(int)20;
+                $sql .= " LIMIT " . (int)20;
             }
         }
 
@@ -463,7 +465,7 @@ public function searchUsers($searchParams, $archivedOnly = false, $countOnly = f
 
         // bind search values
         foreach ($binds as $var => $bind) {
-            $Stmt->bindValue(':'.$var, $bind['value'], $bind['type']);
+            $Stmt->bindValue(':' . $var, $bind['value'], $bind['type']);
         }
 
         try {
@@ -471,7 +473,7 @@ public function searchUsers($searchParams, $archivedOnly = false, $countOnly = f
             $result = $Stmt->fetchAll(\PDO::FETCH_ASSOC);
         } catch (\Exception $Exception) {
             QUI\System\Log::addError(
-                self::class.' :: searchUsers() -> '.$Exception->getMessage()
+                self::class . ' :: searchUsers() -> ' . $Exception->getMessage()
             );
 
             return [];
@@ -506,7 +508,7 @@ public function calcEndDate($start = null)
 
         $start = Utils::getFormattedTimestamp($start);
 
-        $duration      = explode('-', $this->getAttribute('duration'));
+        $duration = explode('-', $this->getAttribute('duration'));
         $durationCount = $duration[0];
         $durationScope = $duration[1];
 
@@ -514,13 +516,13 @@ public function calcEndDate($start = null)
 
         switch ($durationMode) {
             case MembershipUsersHandler::DURATION_MODE_DAY:
-                $endTime    = strtotime($start.' +'.$durationCount.' '.$durationScope);
+                $endTime = strtotime($start . ' +' . $durationCount . ' ' . $durationScope);
                 $beginOfDay = strtotime("midnight", $endTime);
-                $end        = strtotime("tomorrow", $beginOfDay) - 1;
+                $end = strtotime("tomorrow", $beginOfDay) - 1;
                 break;
 
             default:
-                $end = strtotime($start.' +'.$durationCount.' '.$durationScope);
+                $end = strtotime($start . ' +' . $durationCount . ' ' . $durationScope);
         }
 
         return Utils::getFormattedTimestamp($end);
@@ -540,7 +542,7 @@ public function getProducts()
         }
 
         try {
-            $Search          = new BackendSearch();
+            $Search = new BackendSearch();
             $MembershipField = Handler::getProductMembershipField();
 
             if ($MembershipField === false) {
@@ -588,7 +590,7 @@ public function createProduct()
         }
 
         $categories = [];
-        $fields     = [];
+        $fields = [];
 
         $Category = Handler::getProductCategory();
 
@@ -613,9 +615,9 @@ public function createProduct()
         }
 
         // set title and description
-        $TitleField  = ProductFields::getField(ProductFields::FIELD_TITLE);
-        $DescField   = ProductFields::getField(ProductFields::FIELD_SHORT_DESC);
-        $title       = json_decode($this->getAttribute('title'), true);
+        $TitleField = ProductFields::getField(ProductFields::FIELD_TITLE);
+        $DescField = ProductFields::getField(ProductFields::FIELD_SHORT_DESC);
+        $title = json_decode($this->getAttribute('title'), true);
         $description = json_decode($this->getAttribute('description'), true);
 
         if (!empty($title)) {
@@ -697,7 +699,7 @@ public function isLocked()
      */
     protected function getLockKey()
     {
-        return 'membership_'.$this->id;
+        return 'membership_' . $this->id;
     }
 
     /**
@@ -708,10 +710,10 @@ protected function getLockKey()
     public function getBackendViewData()
     {
         return [
-            'id'          => $this->getId(),
-            'title'       => $this->getTitle(),
+            'id' => $this->getId(),
+            'title' => $this->getTitle(),
             'description' => $this->getDescription(),
-            'content'     => $this->getContent()
+            'content' => $this->getContent()
         ];
     }
 
@@ -751,7 +753,7 @@ public function isDefault()
     public function addUser(QUI\Users\User $User)
     {
         return MembershipUsersHandler::getInstance()->createChild([
-            'userId'       => $User->getId(),
+            'userId' => $User->getId(),
             'membershipId' => $this->id
         ], $this->EditUser);
     }
diff --git a/src/QUI/Memberships/Products/MembershipField.php b/src/QUI/Memberships/Products/MembershipField.php
index df459fdc06a675cd3c0b80e1240912425d26b1a0..2b71b9fcd8ed7d55181bd053f1ca95f53063a6bf 100644
--- a/src/QUI/Memberships/Products/MembershipField.php
+++ b/src/QUI/Memberships/Products/MembershipField.php
@@ -6,7 +6,6 @@
 
 namespace QUI\Memberships\Products;
 
-use QUI;
 use QUI\ERP\Products;
 use QUI\Memberships\Handler as MembershipsHandler;
 
@@ -65,15 +64,15 @@ public function validate($value)
         try {
             MembershipsHandler::getInstance()->getChild($value);
         } catch (\Exception $Exception) {
-            throw new Products\Field\Exception(array(
+            throw new Products\Field\Exception([
                 'quiqqer/products',
                 'exception.field.invalid',
-                array(
-                    'fieldId'    => $this->getId(),
+                [
+                    'fieldId' => $this->getId(),
                     'fieldTitle' => $this->getTitle(),
-                    'fieldType'  => $this->getType()
-                )
-            ));
+                    'fieldType' => $this->getType()
+                ]
+            ]);
         }
     }
 
diff --git a/src/QUI/Memberships/Users/AbortCancelVerification.php b/src/QUI/Memberships/Users/AbortCancelVerification.php
index 05202da63be92e5b49968f6c9b17950d98cb99b5..e6761290067798059d4336b1faeed34c1b8644dc 100644
--- a/src/QUI/Memberships/Users/AbortCancelVerification.php
+++ b/src/QUI/Memberships/Users/AbortCancelVerification.php
@@ -2,9 +2,9 @@
 
 namespace QUI\Memberships\Users;
 
+use QUI;
 use QUI\Memberships\Users\Handler as MembershipUsersHandler;
 use QUI\Verification\Verifier;
-use QUI;
 
 /**
  * Class CancelVerification
@@ -23,9 +23,9 @@ class AbortCancelVerification extends QUI\Verification\AbstractVerification
     public function getValidDuration()
     {
         $MembershipUser = MembershipUsersHandler::getInstance()->getChild($this->getIdentifier());
-        $endDate        = $MembershipUser->getAttribute('endDate');
-        $endDate        = strtotime($endDate) / 60; // minutes
-        $now            = time() / 60; // minutes
+        $endDate = $MembershipUser->getAttribute('endDate');
+        $endDate = strtotime($endDate) / 60; // minutes
+        $now = time() / 60; // minutes
 
         return $endDate - $now;
     }
@@ -64,15 +64,15 @@ public function getSuccessMessage()
     {
         /** @var MembershipUser $MembershipUser */
         $MembershipUser = MembershipUsersHandler::getInstance()->getChild($this->getIdentifier());
-        $Membership     = $MembershipUser->getMembership();
-        $data           = $MembershipUser->getFrontendViewData();
+        $Membership = $MembershipUser->getMembership();
+        $data = $MembershipUser->getFrontendViewData();
 
         if ($Membership->isAutoExtend()) {
             $msg = QUI::getLocale()->get(
                 'quiqqer/memberships',
                 'verification.abortcancel.success.autoExtend',
                 [
-                    'endDate'         => $data['endDate'],
+                    'endDate' => $data['endDate'],
                     'membershipTitle' => $Membership->getTitle()
                 ]
             );
@@ -81,7 +81,7 @@ public function getSuccessMessage()
                 'quiqqer/memberships',
                 'verification.abortcancel.success.noAutoExtend',
                 [
-                    'endDate'         => $data['endDate'],
+                    'endDate' => $data['endDate'],
                     'membershipTitle' => $Membership->getTitle()
                 ]
             );
diff --git a/src/QUI/Memberships/Users/Handler.php b/src/QUI/Memberships/Users/Handler.php
index a7e0308d3d60f67d271c921dfc56394d3f2cc124..afb09d6b83fb0a0e48c16cd90f663c8c02a69d2f 100644
--- a/src/QUI/Memberships/Users/Handler.php
+++ b/src/QUI/Memberships/Users/Handler.php
@@ -4,9 +4,9 @@
 
 use QUI;
 use QUI\CRUD\Factory;
-use QUI\Memberships\Utils;
 use QUI\Memberships\Handler as MembershipsHandler;
 use QUI\Memberships\Users\Handler as MembershipUsersHandler;
+use QUI\Memberships\Utils;
 use QUI\Permissions\Permission;
 
 class Handler extends Factory
@@ -16,7 +16,7 @@ class Handler extends Factory
      *
      * Determines how the cycle begin date is set if a membership user is extended
      */
-    const EXTEND_MODE_RESET   = 'reset';
+    const EXTEND_MODE_RESET = 'reset';
     const EXTEND_MODE_PROLONG = 'prolong';
 
     /**
@@ -24,44 +24,44 @@ class Handler extends Factory
      *
      * Determines how exact membership user dates are calculated
      */
-    const DURATION_MODE_DAY   = 'day';
+    const DURATION_MODE_DAY = 'day';
     const DURATION_MODE_EXACT = 'exact';
 
     /**
      * History entry types
      */
-    const HISTORY_TYPE_CREATED              = 'created';
-    const HISTORY_TYPE_UPDATED              = 'updated';
-    const HISTORY_TYPE_CANCEL_BY_EDIT       = 'cancel_by_edit';
-    const HISTORY_TYPE_UNCANCEL_BY_EDIT     = 'uncancel_by_edit';
-    const HISTORY_TYPE_CANCEL_START         = 'cancel_start';
-    const HISTORY_TYPE_CANCEL_START_SYSTEM  = 'cancel_system';
-    const HISTORY_TYPE_CANCEL_ABORT_START   = 'cancel_abort_start';
+    const HISTORY_TYPE_CREATED = 'created';
+    const HISTORY_TYPE_UPDATED = 'updated';
+    const HISTORY_TYPE_CANCEL_BY_EDIT = 'cancel_by_edit';
+    const HISTORY_TYPE_UNCANCEL_BY_EDIT = 'uncancel_by_edit';
+    const HISTORY_TYPE_CANCEL_START = 'cancel_start';
+    const HISTORY_TYPE_CANCEL_START_SYSTEM = 'cancel_system';
+    const HISTORY_TYPE_CANCEL_ABORT_START = 'cancel_abort_start';
     const HISTORY_TYPE_CANCEL_ABORT_CONFIRM = 'cancel_abort_confirm';
-    const HISTORY_TYPE_CANCEL_CONFIRM       = 'cancel_confirm';
-    const HISTORY_TYPE_CANCELLED            = 'cancelled';
-    const HISTORY_TYPE_EXPIRED              = 'expired';
-    const HISTORY_TYPE_DELETED              = 'deleted';
-    const HISTORY_TYPE_ARCHIVED             = 'archived';
-    const HISTORY_TYPE_EXTENDED             = 'extended';
-    const HISTORY_TYPE_MISC                 = 'misc';
+    const HISTORY_TYPE_CANCEL_CONFIRM = 'cancel_confirm';
+    const HISTORY_TYPE_CANCELLED = 'cancelled';
+    const HISTORY_TYPE_EXPIRED = 'expired';
+    const HISTORY_TYPE_DELETED = 'deleted';
+    const HISTORY_TYPE_ARCHIVED = 'archived';
+    const HISTORY_TYPE_EXTENDED = 'extended';
+    const HISTORY_TYPE_MISC = 'misc';
 
     /**
      * Archive reasons
      */
-    const ARCHIVE_REASON_CANCELLED    = 'cancelled';
-    const ARCHIVE_REASON_EXPIRED      = 'expired';
-    const ARCHIVE_REASON_DELETED      = 'deleted';
+    const ARCHIVE_REASON_CANCELLED = 'cancelled';
+    const ARCHIVE_REASON_EXPIRED = 'expired';
+    const ARCHIVE_REASON_DELETED = 'deleted';
     const ARCHIVE_REASON_USER_DELETED = 'user_deleted';
 
     /**
      * Cancel statusses
      */
-    const CANCEL_STATUS_NOT_CANCELLED                = 0;
-    const CANCEL_STATUS_CANCEL_CONFIRM_PENDING       = 1;
+    const CANCEL_STATUS_NOT_CANCELLED = 0;
+    const CANCEL_STATUS_CANCEL_CONFIRM_PENDING = 1;
     const CANCEL_STATUS_ABORT_CANCEL_CONFIRM_PENDING = 2;
-    const CANCEL_STATUS_CANCELLED                    = 3;
-    const CANCEL_STATUS_CANCELLED_BY_SYSTEM          = 4;
+    const CANCEL_STATUS_CANCELLED = 3;
+    const CANCEL_STATUS_CANCELLED_BY_SYSTEM = 4;
 
     /**
      * User attributes
@@ -105,7 +105,7 @@ public function createChild($data = [], $PermissionUser = null)
         }
 
         $Membership = MembershipsHandler::getInstance()->getChild($data['membershipId']);
-        $User       = QUI::getUsers()->get($data['userId']);
+        $User = QUI::getUsers()->get($data['userId']);
 
         // if the user is already in the membership -> extend runtime
         if ($Membership->hasMembershipUserId($User->getId())) {
@@ -117,20 +117,20 @@ public function createChild($data = [], $PermissionUser = null)
 
         // current begin and end
         $data['beginDate'] = Utils::getFormattedTimestamp();
-        $data['endDate']   = $Membership->calcEndDate();
+        $data['endDate'] = $Membership->calcEndDate();
 
         $data['extendCounter'] = 0;
-        $data['cancelDate']    = null;
+        $data['cancelDate'] = null;
         $data['cancelEndDate'] = null;
-        $data['cancelled']     = 0;
-        $data['cancelStatus']  = 0;
-        $data['archived']      = 0;
-        $data['archiveDate']   = null;
+        $data['cancelled'] = 0;
+        $data['cancelStatus'] = 0;
+        $data['archived'] = 0;
+        $data['archiveDate'] = null;
         $data['archiveReason'] = null;
-        $data['history']       = null;
-        $data['extraData']     = null;
-        $data['productId']     = null;
-        $data['contractId']    = null;
+        $data['history'] = null;
+        $data['extraData'] = null;
+        $data['productId'] = null;
+        $data['contractId'] = null;
 
         /** @var MembershipUser $NewChild */
         $NewChild = parent::createChild($data);
@@ -156,7 +156,7 @@ public function getIdsByMembershipId($membershipId, $includeArchived = false)
     {
         $where = [
             'membershipId' => $membershipId,
-            'archived'     => 0
+            'archived' => 0
         ];
 
         if ($includeArchived === true) {
@@ -167,8 +167,8 @@ public function getIdsByMembershipId($membershipId, $includeArchived = false)
             'select' => [
                 'id'
             ],
-            'from'   => MembershipUsersHandler::getDataBaseTableName(),
-            'where'  => $where
+            'from' => MembershipUsersHandler::getDataBaseTableName(),
+            'where' => $where
         ]);
 
         $membershipUserIds = [];
@@ -190,7 +190,7 @@ public function getIdsByMembershipId($membershipId, $includeArchived = false)
     public function getMembershipUsersByUserId($userId, $includeArchived = false)
     {
         $where = [
-            'userId'   => $userId,
+            'userId' => $userId,
             'archived' => 0
         ];
 
@@ -202,8 +202,8 @@ public function getMembershipUsersByUserId($userId, $includeArchived = false)
             'select' => [
                 'id'
             ],
-            'from'   => self::getDataBaseTableName(),
-            'where'  => $where
+            'from' => self::getDataBaseTableName(),
+            'where' => $where
         ]);
 
         $membershipUsers = [];
@@ -228,8 +228,8 @@ public function getMembershipUserByContractId(int $contractId)
                 'select' => [
                     'id'
                 ],
-                'from'   => self::getDataBaseTableName(),
-                'where'  => [
+                'from' => self::getDataBaseTableName(),
+                'where' => [
                     'contractId' => $contractId
                 ]
             ]);
diff --git a/src/QUI/Memberships/Users/MembershipUser.php b/src/QUI/Memberships/Users/MembershipUser.php
index 1fdbfeff6a24ff04d2aa8a1af4ad69a92a618257..794045fee354657e3ece253f1f78eda7e7d8953f 100644
--- a/src/QUI/Memberships/Users/MembershipUser.php
+++ b/src/QUI/Memberships/Users/MembershipUser.php
@@ -4,16 +4,15 @@
 
 use QUI;
 use QUI\CRUD\Child;
-use QUI\Memberships\Handler;
+use QUI\ERP\Accounting\Contracts\Handler as ContractsHandler;
+use QUI\ERP\Products\Handler\Products as ProductsHandler;
+use QUI\Interfaces\Users\User as QUIUserInterface;
+use QUI\Mail\Mailer;
 use QUI\Memberships\Handler as MembershipsHandler;
 use QUI\Memberships\Users\Handler as MembershipUsersHandler;
 use QUI\Memberships\Utils;
-use QUI\Mail\Mailer;
 use QUI\Permissions\Permission;
 use QUI\Verification\Verifier;
-use QUI\ERP\Products\Handler\Products as ProductsHandler;
-use QUI\ERP\Accounting\Contracts\Handler as ContractsHandler;
-use QUI\Interfaces\Users\User as QUIUserInterface;
 
 /**
  * Class MembershipUser
@@ -59,9 +58,10 @@ public function update()
         // check certain attributes
         if (!$this->getMembership()->isInfinite()) {
             $beginDate = strtotime($this->getAttribute('beginDate'));
-            $endDate   = strtotime($this->getAttribute('endDate'));
+            $endDate = strtotime($this->getAttribute('endDate'));
 
-            if ($beginDate === false
+            if (
+                $beginDate === false
                 || $endDate === false
             ) {
                 throw new QUI\Memberships\Exception([
@@ -133,8 +133,8 @@ public function extend($auto = true, \DateTime $NextBeginDate = null, \DateTime
             $extendCounter = $this->getAttribute('extendCounter');
 
             $this->setAttributes([
-                'beginDate'     => Utils::getFormattedTimestamp($NextBeginDate),
-                'endDate'       => Utils::getFormattedTimestamp($NextEndDate),
+                'beginDate' => Utils::getFormattedTimestamp($NextBeginDate),
+                'endDate' => Utils::getFormattedTimestamp($NextEndDate),
                 'extendCounter' => $extendCounter + 1
             ]);
         } else {
@@ -145,8 +145,8 @@ public function extend($auto = true, \DateTime $NextBeginDate = null, \DateTime
 
         $historyData = [
             'start' => Utils::getFormattedTimestamp($NextBeginDate),
-            'end'   => Utils::getFormattedTimestamp($NextEndDate),
-            'auto'  => $auto ? '1' : '0'
+            'end' => Utils::getFormattedTimestamp($NextEndDate),
+            'auto' => $auto ? '1' : '0'
         ];
 
         $this->addHistoryEntry(MembershipUsersHandler::HISTORY_TYPE_EXTENDED, json_encode($historyData));
@@ -180,7 +180,7 @@ public function calcEndDate($Start = null)
         }
 
         try {
-            $Contract                  = ContractsHandler::getInstance()->getContract($contractId);
+            $Contract = ContractsHandler::getInstance()->getContract($contractId);
             $ContractExtensionInterval = $Contract->getExtensionInterval();
         } catch (\Exception $Exception) {
             QUI\System\Log::writeException($Exception);
@@ -222,7 +222,7 @@ protected function sendAutoExtendMail()
                 'templates.mail.autoextend.subject'
             );
 
-            $this->sendMail($subject, dirname(__FILE__, 5).'/templates/mail_autoextend.html');
+            $this->sendMail($subject, dirname(__FILE__, 5) . '/templates/mail_autoextend.html');
         } catch (\Exception $Exception) {
             QUI\System\Log::writeException($Exception);
         }
@@ -250,7 +250,7 @@ public function sendManualExtendMail()
                 'templates.mail.manualextend.subject'
             );
 
-            $this->sendMail($subject, dirname(__FILE__, 5).'/templates/mail_manualextend.html');
+            $this->sendMail($subject, dirname(__FILE__, 5) . '/templates/mail_manualextend.html');
         } catch (\Exception $Exception) {
             QUI\System\Log::writeException($Exception);
         }
@@ -269,7 +269,7 @@ public function expire()
 
         // send expire mail
         $subject = $this->getUser()->getLocale()->get('quiqqer/memberships', 'templates.mail.expired.subject');
-        $this->sendMail($subject, dirname(__FILE__, 5).'/templates/mail_expired.html');
+        $this->sendMail($subject, dirname(__FILE__, 5) . '/templates/mail_expired.html');
 
         QUI::getEvents()->fireEvent('quiqqerMembershipsExpired', [$this]);
     }
@@ -320,13 +320,13 @@ public function startManualCancel()
             ]);
         }
 
-        $cancelUrl     = Verifier::startVerification($this->getCancelVerification(), true);
-        $cancelDate    = Utils::getFormattedTimestamp();
+        $cancelUrl = Verifier::startVerification($this->getCancelVerification(), true);
+        $cancelDate = Utils::getFormattedTimestamp();
         $CancelEndDate = $this->getCurrentCancelEndDate();
 
         $this->setAttributes([
-            'cancelStatus'  => MembershipUsersHandler::CANCEL_STATUS_CANCEL_CONFIRM_PENDING,
-            'cancelDate'    => $cancelDate,
+            'cancelStatus' => MembershipUsersHandler::CANCEL_STATUS_CANCEL_CONFIRM_PENDING,
+            'cancelDate' => $cancelDate,
             'cancelEndDate' => $CancelEndDate->format('Y-m-d H:i:s')
         ]);
 
@@ -341,10 +341,10 @@ public function startManualCancel()
 
         $this->sendMail(
             QUI::getLocale()->get('quiqqer/memberships', 'templates.mail.startcancel.subject'),
-            dirname(__FILE__, 5).'/templates/mail_startcancel.html',
+            dirname(__FILE__, 5) . '/templates/mail_startcancel.html',
             [
-                'cancelDate'    => $cancelDate,
-                'cancelUrl'     => $cancelUrl,
+                'cancelDate' => $cancelDate,
+                'cancelUrl' => $cancelUrl,
                 'cancelEndDate' => $User->getLocale()->formatDate($CancelEndDate->getTimestamp())
             ]
         );
@@ -383,8 +383,8 @@ public function autoCancel()
 
         $this->setAttributes([
             'cancelStatus' => MembershipUsersHandler::CANCEL_STATUS_CANCELLED_BY_SYSTEM,
-            'cancelDate'   => $cancelDate,
-            'cancelled'    => true
+            'cancelDate' => $cancelDate,
+            'cancelled' => true
         ]);
 
         $this->addHistoryEntry(MembershipUsersHandler::HISTORY_TYPE_CANCEL_START_SYSTEM);
@@ -428,7 +428,8 @@ public function startAbortCancel()
             ]);
         }
 
-        if ($cancelStatus !== MembershipUsersHandler::CANCEL_STATUS_CANCEL_CONFIRM_PENDING
+        if (
+            $cancelStatus !== MembershipUsersHandler::CANCEL_STATUS_CANCEL_CONFIRM_PENDING
             && $cancelStatus !== MembershipUsersHandler::CANCEL_STATUS_CANCELLED
         ) {
             return;
@@ -456,7 +457,7 @@ public function startAbortCancel()
         // send abort cancellation mail
         $this->sendMail(
             QUI::getLocale()->get('quiqqer/memberships', 'templates.mail.startabortcancel.subject'),
-            dirname(__FILE__, 5).'/templates/mail_startabortcancel.html',
+            dirname(__FILE__, 5) . '/templates/mail_startabortcancel.html',
             [
                 'abortCancelUrl' => $abortCancelUrl
             ]
@@ -471,9 +472,9 @@ public function startAbortCancel()
     public function confirmAbortCancel()
     {
         $this->setAttributes([
-            'cancelDate'    => null,
-            'cancelStatus'  => MembershipUsersHandler::CANCEL_STATUS_NOT_CANCELLED,
-            'cancelled'     => false,
+            'cancelDate' => null,
+            'cancelStatus' => MembershipUsersHandler::CANCEL_STATUS_NOT_CANCELLED,
+            'cancelled' => false,
             'cancelEndDate' => null
         ]);
 
@@ -508,8 +509,8 @@ public function confirmManualCancel()
         }
 
         $this->setAttributes([
-            'cancelled'     => true,
-            'cancelStatus'  => MembershipUsersHandler::CANCEL_STATUS_CANCELLED,
+            'cancelled' => true,
+            'cancelStatus' => MembershipUsersHandler::CANCEL_STATUS_CANCELLED,
             'cancelEndDate' => $this->getCurrentCancelEndDate()->format('Y-m-d H:i:s')
         ]);
 
@@ -535,7 +536,7 @@ public function sendConfirmCancelMail()
                 'templates.mail.confirmcancel.subject'
             );
 
-            $this->sendMail($subject, dirname(__FILE__, 5).'/templates/mail_confirmcancel.html');
+            $this->sendMail($subject, dirname(__FILE__, 5) . '/templates/mail_confirmcancel.html');
         } catch (\Exception $Exception) {
             QUI\System\Log::writeException($Exception);
         }
@@ -556,7 +557,7 @@ public function sendConfirmCancelReminderMail()
 
             $this->sendMail(
                 $subject,
-                dirname(__FILE__, 5).'/templates/mail_confirmcancel_reminder.html',
+                dirname(__FILE__, 5) . '/templates/mail_confirmcancel_reminder.html',
                 [
                     'cancelUrl' => Verifier::getVerificationUrl($this->getCancelVerification())
                 ]
@@ -592,7 +593,7 @@ public function cancel()
 
         // send expired mail
         $subject = $this->getUser()->getLocale()->get('quiqqer/memberships', 'templates.mail.expired.subject');
-        $this->sendMail($subject, dirname(__FILE__, 5).'/templates/mail_cancelled.html');
+        $this->sendMail($subject, dirname(__FILE__, 5) . '/templates/mail_cancelled.html');
 
         QUI::getEvents()->fireEvent('quiqqerMembershipsCancelled', [$this]);
     }
@@ -634,7 +635,7 @@ public function delete()
     public function addToGroups()
     {
         $groupIds = $this->getMembership()->getGroupIds();
-        $User     = $this->getUser();
+        $User = $this->getUser();
 
         foreach ($groupIds as $groupId) {
             $User->addToGroup($groupId);
@@ -667,9 +668,9 @@ protected function removeFromGroups()
             return;
         }
 
-        $Groups             = QUI::getGroups();
-        $Memberships        = MembershipsHandler::getInstance();
-        $Membership         = $this->getMembership();
+        $Groups = QUI::getGroups();
+        $Memberships = MembershipsHandler::getInstance();
+        $Membership = $this->getMembership();
         $membershipGroupIds = $Membership->getGroupIds();
 
         // remove user from unique group ids
@@ -711,8 +712,8 @@ public function archive($reason)
             'reason' => $reason
         ]);
         $this->setAttributes([
-            'archived'      => 1,
-            'archiveDate'   => Utils::getFormattedTimestamp(),
+            'archived' => 1,
+            'archiveDate' => Utils::getFormattedTimestamp(),
             'archiveReason' => $reason
         ]);
         $this->update();
@@ -822,7 +823,7 @@ public function getContract()
     public function linkToContract($contractId)
     {
         try {
-            $Contract             = ContractsHandler::getInstance()->getContract($contractId);
+            $Contract = ContractsHandler::getInstance()->getContract($contractId);
             $ContractCycleEndDate = $Contract->getCycleEndDate();
         } catch (\Exception $Exception) {
             QUI\System\Log::writeException($Exception);
@@ -861,8 +862,8 @@ public function addHistoryEntry($type, $msg = "")
         $history[] = [
             'type' => $type,
             'time' => Utils::getFormattedTimestamp(),
-            'user' => $User->getName().' ('.$User->getId().')',
-            'msg'  => $msg
+            'user' => $User->getName() . ' (' . $User->getId() . ')',
+            'msg' => $msg
         ];
 
         $this->setAttribute('history', json_encode($history));
@@ -902,8 +903,8 @@ protected function formatDate($date)
         }
 
         $Locale = $this->getUser()->getLocale();
-        $lang   = $Locale->getCurrent();
-        $Conf   = QUI::getPackage('quiqqer/memberships')->getConfig();
+        $lang = $Locale->getCurrent();
+        $Conf = QUI::getPackage('quiqqer/memberships')->getConfig();
 
         switch (MembershipUsersHandler::getDurationMode()) {
             case MembershipUsersHandler::DURATION_MODE_DAY:
@@ -935,31 +936,32 @@ protected function formatDate($date)
     public function getFrontendViewData()
     {
         $QuiqqerUser = $this->getUser();
-        $Membership  = $this->getMembership();
-        $Locale      = QUI::getLocale();
+        $Membership = $this->getMembership();
+        $Locale = QUI::getLocale();
 
         // determine source of title, short and content
         $viewDataMode = MembershipUsersHandler::getSetting('viewDataMode');
-        $productId    = $this->getAttribute('productId');
+        $productId = $this->getAttribute('productId');
 
-        if ($viewDataMode === 'product'
+        if (
+            $viewDataMode === 'product'
             && !empty($productId)
             && Utils::isQuiqqerProductsInstalled()
         ) {
-            $Product     = ProductsHandler::getProduct($productId);
-            $title       = $Product->getTitle($Locale);
+            $Product = ProductsHandler::getProduct($productId);
+            $title = $Product->getTitle($Locale);
             $description = $Product->getDescription($Locale);
-            $content     = '';
+            $content = '';
         } else {
-            $title       = $Membership->getTitle($Locale);
+            $title = $Membership->getTitle($Locale);
             $description = $Membership->getDescription($Locale);
-            $content     = $Membership->getContent($Locale);
+            $content = $Membership->getContent($Locale);
         }
 
         $CurrentCancelEndDate = $this->getCurrentCancelEndDate();
-        $CancelUntilDate      = false;
-        $cancelAllowed        = !$this->isCancelled();
-        $Contract             = $this->getContract();
+        $CancelUntilDate = false;
+        $cancelAllowed = !$this->isCancelled();
+        $Contract = $this->getContract();
 
         if (!$this->isCancelled() && $Contract) {
             try {
@@ -968,7 +970,7 @@ public function getFrontendViewData()
                 }
 
                 $PeriodOfNoticeInterval = $Contract->getPeriodOfNoticeInterval();
-                $EndBaseDate            = clone $CurrentCancelEndDate;
+                $EndBaseDate = clone $CurrentCancelEndDate;
                 $EndBaseDate->setTime(0, 0, 0);
                 $EndBaseDate->sub(\date_interval_create_from_date_string('1 second'));
 
@@ -982,10 +984,10 @@ public function getFrontendViewData()
             }
         }
 
-        $addedDate        = $this->formatDate($this->getAttribute('addedDate'));
-        $CycleEndDate     = $this->getCycleEndDate();
-        $cycleEndDate     = $CycleEndDate ? $this->formatDate($CycleEndDate) : '-';
-        $cycleBeginDate   = $this->formatDate($this->getCycleBeginDate());
+        $addedDate = $this->formatDate($this->getAttribute('addedDate'));
+        $CycleEndDate = $this->getCycleEndDate();
+        $cycleEndDate = $CycleEndDate ? $this->formatDate($CycleEndDate) : '-';
+        $cycleBeginDate = $this->formatDate($this->getCycleBeginDate());
         $NextCycleEndDate = $this->getNextCycleEndDate();
         $nextCycleEndDate = $NextCycleEndDate ? $this->formatDate($NextCycleEndDate) : '-';
 
@@ -997,9 +999,9 @@ public function getFrontendViewData()
                         'quiqqer/memberships',
                         'MembershipUser.cancel.info_text.cancel_until_date',
                         [
-                            'addedDate'        => $addedDate,
-                            'cancelUntilDate'  => $this->formatDate($CancelUntilDate),
-                            'cycleEndDate'     => $cycleEndDate,
+                            'addedDate' => $addedDate,
+                            'cancelUntilDate' => $this->formatDate($CancelUntilDate),
+                            'cycleEndDate' => $cycleEndDate,
                             'nextCycleEndDate' => $nextCycleEndDate
                         ]
                     );
@@ -1008,10 +1010,10 @@ public function getFrontendViewData()
                         'quiqqer/memberships',
                         'MembershipUser.cancel.info_text.period_of_notice_expired',
                         [
-                            'addedDate'        => $addedDate,
-                            'cancelUntilDate'  => $this->formatDate($CancelUntilDate),
-                            'cycleBeginDate'   => $cycleBeginDate,
-                            'cycleEndDate'     => $cycleEndDate,
+                            'addedDate' => $addedDate,
+                            'cancelUntilDate' => $this->formatDate($CancelUntilDate),
+                            'cycleBeginDate' => $cycleBeginDate,
+                            'cycleEndDate' => $cycleEndDate,
                             'nextCycleEndDate' => $nextCycleEndDate
                         ]
                     );
@@ -1021,8 +1023,8 @@ public function getFrontendViewData()
                     'quiqqer/memberships',
                     'MembershipUser.cancel.info_text.cycle_cancel_anytime',
                     [
-                        'addedDate'        => $addedDate,
-                        'cycleEndDate'     => $cycleEndDate,
+                        'addedDate' => $addedDate,
+                        'cycleEndDate' => $cycleEndDate,
                         'nextCycleEndDate' => $nextCycleEndDate
                     ]
                 );
@@ -1037,36 +1039,36 @@ public function getFrontendViewData()
                 'quiqqer/memberships',
                 'MembershipUser.cancel.info_text.cycle_cancel_anytime',
                 [
-                    'addedDate'        => $addedDate,
-                    'cycleEndDate'     => $cycleEndDate,
+                    'addedDate' => $addedDate,
+                    'cycleEndDate' => $cycleEndDate,
                     'nextCycleEndDate' => $nextCycleEndDate
                 ]
             );
         }
 
         return [
-            'id'                => $this->getId(),
-            'userId'            => $QuiqqerUser->getId(),
-            'membershipId'      => $Membership->getId(),
-            'membershipTitle'   => $title,
-            'membershipShort'   => $description,
+            'id' => $this->getId(),
+            'userId' => $QuiqqerUser->getId(),
+            'membershipId' => $Membership->getId(),
+            'membershipTitle' => $title,
+            'membershipShort' => $description,
             'membershipContent' => $content,
-            'username'          => $QuiqqerUser->getUsername(),
-            'fullName'          => $QuiqqerUser->getName(),
-            'addedDate'         => $addedDate,
-            'beginDate'         => $cycleBeginDate,
-            'endDate'           => $cycleEndDate,
-            'cancelEndDate'     => $this->formatDate($CurrentCancelEndDate),
-            'cancelDate'        => $this->formatDate($this->getAttribute('cancelDate')),
+            'username' => $QuiqqerUser->getUsername(),
+            'fullName' => $QuiqqerUser->getName(),
+            'addedDate' => $addedDate,
+            'beginDate' => $cycleBeginDate,
+            'endDate' => $cycleEndDate,
+            'cancelEndDate' => $this->formatDate($CurrentCancelEndDate),
+            'cancelDate' => $this->formatDate($this->getAttribute('cancelDate')),
 //            'cancelUntilDate'   => $CancelUntilDate ? $this->formatDate($CancelUntilDate) : false,
-            'cancelStatus'      => $this->getAttribute('cancelStatus'),
-            'cancelAllowed'     => $cancelAllowed,
-            'cancelInfoText'    => $cancelInfoText,
+            'cancelStatus' => $this->getAttribute('cancelStatus'),
+            'cancelAllowed' => $cancelAllowed,
+            'cancelInfoText' => $cancelInfoText,
 //            'archived'        => $this->isArchived(),
 //            'archiveReason'   => $this->getAttribute('archiveReason'),
-            'cancelled'         => $this->isCancelled(),
-            'autoExtend'        => $Membership->isAutoExtend(),
-            'infinite'          => $Membership->isInfinite()
+            'cancelled' => $this->isCancelled(),
+            'autoExtend' => $Membership->isAutoExtend(),
+            'infinite' => $Membership->isInfinite()
         ];
     }
 
@@ -1078,27 +1080,27 @@ public function getFrontendViewData()
     public function getBackendViewData()
     {
         $QuiqqerUser = $this->getUser();
-        $Membership  = $this->getMembership();
+        $Membership = $this->getMembership();
 
         return [
-            'id'              => $this->getId(),
-            'userId'          => $this->getUserId(),
-            'membershipId'    => $Membership->getId(),
+            'id' => $this->getId(),
+            'userId' => $this->getUserId(),
+            'membershipId' => $Membership->getId(),
             'membershipTitle' => $Membership->getTitle(),
-            'username'        => $QuiqqerUser ? $QuiqqerUser->getUsername() : '-',
-            'firstname'       => $QuiqqerUser ? $QuiqqerUser->getAttribute('firstname') : '-',
-            'lastname'        => $QuiqqerUser ? $QuiqqerUser->getAttribute('lastname') : '-',
-            'fullName'        => $QuiqqerUser ? $QuiqqerUser->getName() : '-',
-            'addedDate'       => $this->getAttribute('addedDate'),
-            'beginDate'       => $this->getAttribute('beginDate'),
-            'endDate'         => $this->getAttribute('endDate'),
-            'archived'        => $this->isArchived(),
-            'archiveReason'   => $this->getAttribute('archiveReason'),
-            'archiveDate'     => $this->getAttribute('archiveDate'),
-            'cancelled'       => $this->isCancelled(),
-            'extraData'       => $this->getExtraData(),
-            'infinite'        => $Membership->isInfinite(),
-            'contractId'      => $this->getContractId()
+            'username' => $QuiqqerUser ? $QuiqqerUser->getUsername() : '-',
+            'firstname' => $QuiqqerUser ? $QuiqqerUser->getAttribute('firstname') : '-',
+            'lastname' => $QuiqqerUser ? $QuiqqerUser->getAttribute('lastname') : '-',
+            'fullName' => $QuiqqerUser ? $QuiqqerUser->getName() : '-',
+            'addedDate' => $this->getAttribute('addedDate'),
+            'beginDate' => $this->getAttribute('beginDate'),
+            'endDate' => $this->getAttribute('endDate'),
+            'archived' => $this->isArchived(),
+            'archiveReason' => $this->getAttribute('archiveReason'),
+            'archiveDate' => $this->getAttribute('archiveDate'),
+            'cancelled' => $this->isCancelled(),
+            'extraData' => $this->getExtraData(),
+            'infinite' => $Membership->isInfinite(),
+            'contractId' => $this->getContractId()
         ];
     }
 
@@ -1134,13 +1136,13 @@ protected function getAbortCancelVerification()
      */
     public function sendMail($subject, $templateFile, $templateVars = [])
     {
-        $User  = $this->getUser();
+        $User = $this->getUser();
         $email = $User->getAttribute('email');
 
         if (empty($email)) {
             QUI\System\Log::addError(
-                'Could not send mail to user #'.$User->getId().' because the user has'
-                .' no email address!'
+                'Could not send mail to user #' . $User->getId() . ' because the user has'
+                . ' no email address!'
             );
 
             return;
@@ -1148,14 +1150,16 @@ public function sendMail($subject, $templateFile, $templateVars = [])
 
         $Engine = QUI::getTemplateManager()->getEngine();
 
-        $Engine->assign(array_merge(
-            [
-                'MembershipUser' => $this,
-                'Locale'         => $this->getUser()->getLocale(),
-                'data'           => $this->getFrontendViewData()
-            ],
-            $templateVars
-        ));
+        $Engine->assign(
+            array_merge(
+                [
+                    'MembershipUser' => $this,
+                    'Locale' => $this->getUser()->getLocale(),
+                    'data' => $this->getFrontendViewData()
+                ],
+                $templateVars
+            )
+        );
 
         $template = $Engine->fetch($templateFile);
 
@@ -1179,18 +1183,18 @@ public function setExtraData($key, $value)
     {
         $extraData = $this->getExtraData();
 
-        $User       = QUI::getUserBySession();
-        $userString = $User->getName().' ('.$User->getId().')';
-        $editString = Utils::getFormattedTimestamp().' - '.$userString;
+        $User = QUI::getUserBySession();
+        $userString = $User->getName() . ' (' . $User->getId() . ')';
+        $editString = Utils::getFormattedTimestamp() . ' - ' . $userString;
 
         if (isset($extraData[$key])) {
-            $extraData[$key]['edit']  = $editString;
+            $extraData[$key]['edit'] = $editString;
             $extraData[$key]['value'] = $value;
         } else {
             $extraData[$key] = [
                 'value' => $value,
-                'add'   => $editString,
-                'edit'  => '-'
+                'add' => $editString,
+                'edit' => '-'
             ];
         }
 
@@ -1264,7 +1268,7 @@ public function getNextCycleBeginDate()
         $Contract = $this->getContract();
 
         if ($Contract) {
-            $EndDate       = $Contract->getCycleEndDate();
+            $EndDate = $Contract->getCycleEndDate();
             $NextBeginDate = clone $EndDate;
             $NextBeginDate->add(\date_interval_create_from_date_string('1 day'));
             $NextBeginDate->setTime(0, 0, 0);
@@ -1326,23 +1330,23 @@ public function getNextCycleEndDate()
             return false;
         }
 
-        $start         = $NextCycleBeginDate->format('Y-m-d');
-        $duration      = explode('-', $Membership->getAttribute('duration'));
+        $start = $NextCycleBeginDate->format('Y-m-d');
+        $duration = explode('-', $Membership->getAttribute('duration'));
         $durationCount = $duration[0];
         $durationScope = $duration[1];
 
         switch (MembershipUsersHandler::getDurationMode()) {
             case MembershipUsersHandler::DURATION_MODE_DAY:
-                $endTime    = strtotime($start.' +'.$durationCount.' '.$durationScope);
+                $endTime = strtotime($start . ' +' . $durationCount . ' ' . $durationScope);
                 $beginOfDay = strtotime("midnight", $endTime);
-                $end        = strtotime("tomorrow", $beginOfDay) - 1;
+                $end = strtotime("tomorrow", $beginOfDay) - 1;
                 break;
 
             default:
-                $end = strtotime($start.' +'.$durationCount.' '.$durationScope);
+                $end = strtotime($start . ' +' . $durationCount . ' ' . $durationScope);
         }
 
-        return \date_create('@'.$end);
+        return \date_create('@' . $end);
     }
 
     /**
diff --git a/src/QUI/Memberships/Utils.php b/src/QUI/Memberships/Utils.php
index 0ac8e822bf45f668600c7b2099c834f3d6d8e80d..903f059c3e13470b548d0606392aefe2dfc7dc6a 100644
--- a/src/QUI/Memberships/Utils.php
+++ b/src/QUI/Memberships/Utils.php
@@ -90,7 +90,7 @@ public static function getFormattedTimestamp($time = null)
      */
     public static function getInstalledMembershipPackages()
     {
-        $packages         = [];
+        $packages = [];
         $relevantPackages = [
             'quiqqer/products',
             'quiqqer/contracts',
@@ -122,7 +122,7 @@ public static function parseIntervalFromDuration($duration)
             return false;
         }
 
-        $duration       = \explode('-', $duration);
+        $duration = \explode('-', $duration);
         $intervalNumber = $duration[0];
 
         switch ($duration[1]) {
@@ -144,7 +144,7 @@ public static function parseIntervalFromDuration($duration)
                 break;
         }
 
-        return new \DateInterval('P'.$intervalNumber.$intervalPeriod);
+        return new \DateInterval('P' . $intervalNumber . $intervalPeriod);
     }
 
     /**