From: Vincent Vanwaelscappel Date: Wed, 6 Mar 2024 16:54:54 +0000 (+0100) Subject: wip #6646 @1 X-Git-Url: http://git.cubedesigners.com/?a=commitdiff_plain;h=152a2ff4c812d2e504a8fb13a393d068a94ff40b;p=cubedesigners_userdatabase.git wip #6646 @1 --- diff --git a/src/app/Models/Company.php b/src/app/Models/Company.php index 43f71ef..b7a856d 100644 --- a/src/app/Models/Company.php +++ b/src/app/Models/Company.php @@ -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', diff --git a/src/app/Permissions.php b/src/app/Permissions.php index 29a6ecb..cef18b0 100644 --- a/src/app/Permissions.php +++ b/src/app/Permissions.php @@ -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;