]> _ Git - cubedesigners_userdatabase.git/commitdiff
wip #6646 @1
authorVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 6 Mar 2024 16:54:54 +0000 (17:54 +0100)
committerVincent Vanwaelscappel <vincent@cubedesigners.com>
Wed, 6 Mar 2024 16:54:54 +0000 (17:54 +0100)
src/app/Models/Company.php
src/app/Permissions.php

index 43f71ef878d2da1eb8b187f9242aecbf93d07902..b7a856dde6995be002b73877bf89553bace5f243 100644 (file)
@@ -80,6 +80,11 @@ class Company extends CubistMagicAbstractModel
             'default' => $buid,
         ]);
 
+        $this->addField('invoicable', Checkbox::class, __('Facturer cette entité même si elle est administrée par une autre entité'),
+            ['tab' => __('Permissions'),
+                'default' => false,
+                'databaseDefault' => false]);
+
         $this->addField(['name' => 'e1_ws_grade',
                 'label' => __('Permissions Fluidbook'),
                 'type' => 'SelectFromArray',
index 29a6ecbb77b438dcd056dff605dd03065b9dd7af..cef18b0fd23d240526568d818295d1c55d5426ea 100644 (file)
@@ -46,6 +46,7 @@ class Permissions
                 $data['enabledUsers'][$user->id] = $user->enabled;
             }
 
+            $forceInvoicable = [];
             $companies = DB::connection('extranet_users')->select(Company::withoutGlobalScopes()->toSql());
             foreach ($companies as $company) {
                 if (!$company->admin || !isset($data['usersCompany'][$company->admin])) {
@@ -55,6 +56,7 @@ class Permissions
                 $data['companyManagedBy'][$company->id] = [$adminCompany, $company->id];
                 $data['companyAdmin'][$company->id] = $adminCompany;
                 $data['companyNames'][$company->id] = $company->name;
+                $forceInvoicable[$company->id] = !!$company->invoicable;
 
             }
 
@@ -63,7 +65,7 @@ class Permissions
                     if (isset($data['invoicableCompany'][$company_id])) {
                         continue;
                     }
-                    if ($company_admin == 7) {
+                    if ($company_admin == 7 || $forceInvoicable[$company_id]) {
                         $data['invoicableCompany'][$company_id] = $company_id;
                         continue;
                     }
@@ -132,6 +134,9 @@ class Permissions
     {
         $data = self::_getData();
         $res = [];
+        if (!is_array($data)) {
+            return $res;
+        }
         foreach ($data['invoicableCompany'] as $id => $invoicable) {
             if ($id !== $invoicable) {
                 continue;