Blame view

app/Http/ViewComposers/Header.php 1.99 KB
b7c7a5f6   Alexey Boroda   first commit
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
  <?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,
          ]);
      }
  }