return $company . '<br><em>' . $name . '</em>';
}
+ public function getAllTreeInfosAttribute()
+ {
+ $name = $this->name;
+ $res = '';
+ if ($name) {
+ $res .= '<i class="las la-user-shield"></i> ' . $name . '<br>';
+ }
+ $res .= '<i class="las la-building"></i> ' . $this->companyName;
+
+ $invoicable = Permissions::getInvoicableCompany($this->company);
+ if ($invoicable != $this->company) {
+ $res .= '<br><i class="las la-file-invoice-dollar"></i> ' . Permissions::getCompanyName($invoicable);
+ }
+ //$res .= '<br><i class="las la-user-shield"></i> ' . $this->getAdministratorFirstname();
+ return $res;
+ }
+
+ protected function getAdministratorFirstname()
+ {
+
+ }
+
public function getCompanyNameAttribute()
{
return self::_getCompanyNames($this->company);
'companyUsers' => [],
'usersCompany' => [],
'companyManagedBy' => [],
+ 'invoicableCompany' => [],
'managedCompanies' => [],
'managedUsers' => [],
'userNames' => [],
'enabledUsers' => [],
+ 'companyAdmin' => [],
+ 'companyNames' => [],
];
foreach (User::withoutGlobalScopes()->get() as $user) {
continue;
}
$adminCompany = $data['usersCompany'][$company->admin];
-
$data['companyManagedBy'][$company->id] = [$adminCompany, $company->id];
+ $data['companyAdmin'][$company->id] = $adminCompany;
+ $data['companyNames'][$company->id] = $company->name;
+
}
- for ($i = 0; $i <= 3; $i++) {
+ for ($i = 0; $i <= 5; $i++) {
+ foreach ($data['companyAdmin'] as $company_id => $company_admin) {
+ if (isset($data['invoicableCompany'][$company_id])) {
+ continue;
+ }
+ if ($company_admin == 7) {
+ $data['invoicableCompany'][$company_id] = $company_id;
+ continue;
+ }
+ if (isset($data['invoicableCompany'][$company_admin])) {
+ $data['invoicableCompany'][$company_id] = $data['invoicableCompany'][$company_admin];
+ }
+ }
+
foreach ($data['companyManagedBy'] as $company => $admins) {
foreach ($admins as $admin) {
if ($admin === $company) {
return null;
}
+ /**
+ * @param $company
+ * @return string|null
+ */
+ public static function getCompanyName($company)
+ {
+ $data = self::_getData();
+ return $data['companyNames'][$company] ?? null;
+ }
+
+ /**
+ * @param $company
+ * @return integer|null
+ */
+ public static function getInvoicableCompany($company)
+ {
+ $data = self::_getData();
+ return $data['invoicableCompany'][$company] ?? null;
+ }
+
/**
* @param $user integer