2021-02-24 19:14:18 +03:00

74 lines
2.0 KiB
PHP

<?php
namespace App\Http\ViewComposers;
use App\Utilities\Versions;
use App\Traits\Modules;
use Illuminate\View\View;
class Header
{
use Modules;
/**
* Bind data to the view.
*
* @param View $view
* @return void
*/
public function compose(View $view)
{
$user = user();
$invoices = $bills = [];
$updates = $notifications = 0;
$company = null;
if (!empty($user)) {
// Get customer company
if ($user->can('read-client-portal')) {
$company = (object) [
'company_name' => setting('company.name'),
'company_email' => setting('company.email'),
'company_address' => setting('company.address'),
'company_logo' => setting('company.logo'),
];
}
if ($user->can('read-common-notifications')) {
$unreads = $user->unreadNotifications;
foreach ($unreads as $unread) {
$data = $unread->getAttribute('data');
switch ($unread->getAttribute('type')) {
case 'App\Notifications\Purchase\Bill':
$bills[$data['bill_id']] = $data['amount'];
$notifications++;
break;
case 'App\Notifications\Sale\Invoice':
$invoices[$data['invoice_id']] = $data['amount'];
$notifications++;
break;
}
}
}
if ($user->can('read-install-updates')) {
$updates = count(Versions::getUpdates());
}
$this->loadSuggestions();
}
$view->with([
'user' => $user,
'notifications' => $notifications,
'bills' => $bills,
'invoices' => $invoices,
'company' => $company,
'updates' => $updates,
]);
}
}