76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Http\ViewComposers;
 | |
| 
 | |
| use Auth;
 | |
| use App\Utilities\Updater;
 | |
| use Illuminate\View\View;
 | |
| use App\Traits\Modules as RemoteModules;
 | |
| 
 | |
| class Header
 | |
| {
 | |
|     use RemoteModules;
 | |
| 
 | |
|     /**
 | |
|      * Bind data to the view.
 | |
|      *
 | |
|      * @param  View  $view
 | |
|      * @return void
 | |
|      */
 | |
|     public function compose(View $view)
 | |
|     {
 | |
|         $user = Auth::user();
 | |
| 
 | |
|         $bills = [];
 | |
|         $invoices = [];
 | |
|         $items = [];
 | |
|         $notifications = 0;
 | |
|         $company = null;
 | |
| 
 | |
|         // Get customer company
 | |
|         if ($user->customer()) {
 | |
|             $company = (object)[
 | |
|                 'company_name' => setting('general.company_name'),
 | |
|                 'company_email' => setting('general.company_email'),
 | |
|                 'company_address' => setting('general.company_address'),
 | |
|                 'company_logo' => setting('general.company_logo'),
 | |
|             ];
 | |
|         }
 | |
| 
 | |
|         $undereads = $user->unreadNotifications;
 | |
| 
 | |
|         foreach ($undereads as $underead) {
 | |
|             $data = $underead->getAttribute('data');
 | |
| 
 | |
|             switch ($underead->getAttribute('type')) {
 | |
|                 case 'App\Notifications\Expense\Bill':
 | |
|                     $bills[$data['bill_id']] = $data['amount'];
 | |
|                     $notifications++;
 | |
|                     break;
 | |
|                 case 'App\Notifications\Income\Invoice':
 | |
|                     $invoices[$data['invoice_id']] = $data['amount'];
 | |
|                     $notifications++;
 | |
|                     break;
 | |
|                 case 'App\Notifications\Common\Item':
 | |
|                     $items[$data['item_id']] = $data['name'];
 | |
|                     $notifications++;
 | |
|                     break;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         $updates = count(Updater::all());
 | |
| 
 | |
|         $this->loadSuggestions();
 | |
| 
 | |
|         $view->with([
 | |
|             'user' => $user,
 | |
|             'notifications' => $notifications,
 | |
|             'bills' => $bills,
 | |
|             'invoices' => $invoices,
 | |
|             'items' => $items,
 | |
|             'company' => $company,
 | |
|             'updates' => $updates,
 | |
|         ]);
 | |
|     }
 | |
| }
 |