Model for Accessories. More...

Inheritance diagram for App\Models\Accessory:

Public Member Functions

 company ()
 
 location ()
 
 category ()
 
 assetlog ()
 Get action logs for this accessory. More...
 
 users ()
 
 hasUsers ()
 
 checkin_email ()
 
 requireAcceptance ()
 
 getEula ()
 
 numRemaining ()
 
 scopeTextSearch ($query, $search)
 Query builder scope to search on text. More...
 
 scopeOrderCompany ($query, $order)
 Query builder scope to order on company. More...
 
 scopeOrderCategory ($query, $order)
 Query builder scope to order on company. More...
 
 scopeOrderLocation ($query, $order)
 Query builder scope to order on company. More...
 

Public Attributes

 $rules
 Accessory validation rules. More...
 

Protected Attributes

 $dates = ['deleted_at']
 
 $table = 'accessories'
 
 $injectUniqueIdentifier = true
 
 $fillable = ['name','qty','category_id']
 

Detailed Description

Model for Accessories.

Version
v1.0

Definition at line 13 of file Accessory.php.

Member Function Documentation

App\Models\Accessory::assetlog ( )

Get action logs for this accessory.

Definition at line 68 of file Accessory.php.

69  {
70  return $this->hasMany('\App\Models\Actionlog', 'accessory_id')->where('asset_type', '=', 'accessory')->orderBy('created_at', 'desc')->withTrashed();
71  }
App\Models\Accessory::category ( )

Definition at line 60 of file Accessory.php.

61  {
62  return $this->belongsTo('\App\Models\Category', 'category_id')->where('category_type', '=', 'accessory');
63  }
App\Models\Accessory::checkin_email ( )

Definition at line 84 of file Accessory.php.

85  {
86  return $this->category->checkin_email;
87  }
App\Models\Accessory::company ( )

Definition at line 50 of file Accessory.php.

51  {
52  return $this->belongsTo('\App\Models\Company', 'company_id');
53  }
App\Models\Accessory::getEula ( )

Definition at line 94 of file Accessory.php.

95  {
96 
97  $Parsedown = new \Parsedown();
98 
99  if ($this->category->eula_text) {
100  return $Parsedown->text(e($this->category->eula_text));
101  } elseif ((Setting::getSettings()->default_eula_text) && ($this->category->use_default_eula=='1')) {
102  return $Parsedown->text(e(Setting::getSettings()->default_eula_text));
103  } else {
104  return null;
105  }
106 
107  }
static getSettings()
Definition: Setting.php:33
App\Models\Accessory::hasUsers ( )

Definition at line 79 of file Accessory.php.

80  {
81  return $this->belongsToMany('\App\Models\User', 'accessories_users', 'accessory_id', 'assigned_to')->count();
82  }
App\Models\Accessory::location ( )

Definition at line 55 of file Accessory.php.

56  {
57  return $this->belongsTo('\App\Models\Location', 'location_id');
58  }
App\Models\Accessory::numRemaining ( )

Definition at line 109 of file Accessory.php.

110  {
111  $checkedout = $this->users->count();
112  $total = $this->qty;
113  $remaining = $total - $checkedout;
114  return $remaining;
115  }
App\Models\Accessory::requireAcceptance ( )

Definition at line 89 of file Accessory.php.

90  {
91  return $this->category->require_acceptance;
92  }
App\Models\Accessory::scopeOrderCategory (   $query,
  $order 
)

Query builder scope to order on company.

Parameters
Illuminate\Database\Query\Builder$queryQuery builder instance
text$orderOrder
Returns
Illuminate Modified query builder

Definition at line 176 of file Accessory.php.

177  {
178  return $query->leftJoin('categories', 'accessories.category_id', '=', 'categories.id')->orderBy('categories.name', $order);
179  }
App\Models\Accessory::scopeOrderCompany (   $query,
  $order 
)

Query builder scope to order on company.

Parameters
Illuminate\Database\Query\Builder$queryQuery builder instance
text$orderOrder
Returns
Illuminate Modified query builder

Definition at line 163 of file Accessory.php.

164  {
165  return $query->leftJoin('companies', 'accessories.company_id', '=', 'companies.id')->orderBy('companies.name', $order);
166  }
App\Models\Accessory::scopeOrderLocation (   $query,
  $order 
)

Query builder scope to order on company.

Parameters
Illuminate\Database\Query\Builder$queryQuery builder instance
text$orderOrder
Returns
Illuminate Modified query builder

Definition at line 189 of file Accessory.php.

190  {
191  return $query->leftJoin('locations', 'consumables.location_id', '=', 'locations.id')->orderBy('locations.name', $order);
192  }
App\Models\Accessory::scopeTextSearch (   $query,
  $search 
)

Query builder scope to search on text.

Parameters
Illuminate\Database\Query\Builder$queryQuery builder instance
text$searchSearch term
Returns
Illuminate Modified query builder

Definition at line 125 of file Accessory.php.

126  {
127  $search = explode('+', $search);
128 
129  return $query->where(function ($query) use ($search) {
130 
131  foreach ($search as $search) {
132  $query->whereHas('category', function ($query) use ($search) {
133  $query->where('categories.name', 'LIKE', '%'.$search.'%');
134  })->orWhere(function ($query) use ($search) {
135  $query->whereHas('company', function ($query) use ($search) {
136  $query->where('companies.name', 'LIKE', '%'.$search.'%');
137  });
138  })->orWhere(function ($query) use ($search) {
139  $query->whereHas('assetlog', function ($query) use ($search) {
140  $query->where('action_type', '=', 'checkout')
141  ->where('created_at', 'LIKE', '%'.$search.'%');
142  });
143  })->orWhere(function ($query) use ($search) {
144  $query->whereHas('location', function ($query) use ($search) {
145  $query->where('locations.name', 'LIKE', '%'.$search.'%');
146  });
147  })->orWhere('accessories.name', 'LIKE', '%'.$search.'%')
148  ->orWhere('accessories.order_number', 'LIKE', '%'.$search.'%')
149  ->orWhere('accessories.purchase_cost', 'LIKE', '%'.$search.'%')
150  ->orWhere('accessories.purchase_date', 'LIKE', '%'.$search.'%');
151  }
152  });
153  }
App\Models\Accessory::users ( )

Definition at line 74 of file Accessory.php.

75  {
76  return $this->belongsToMany('\App\Models\User', 'accessories_users', 'accessory_id', 'assigned_to')->withPivot('id')->withTrashed();
77  }

Member Data Documentation

App\Models\Accessory::$dates = ['deleted_at']
protected

Definition at line 18 of file Accessory.php.

App\Models\Accessory::$fillable = ['name','qty','category_id']
protected

Definition at line 48 of file Accessory.php.

App\Models\Accessory::$injectUniqueIdentifier = true
protected

Definition at line 40 of file Accessory.php.

App\Models\Accessory::$rules
Initial value:
= array(
'name' => 'required|min:3|max:255',
'qty' => 'required|integer|min:1',
'category_id' => 'required|integer',
'company_id' => 'integer',
'min_amt' => 'integer|min:1',
)

Accessory validation rules.

Definition at line 24 of file Accessory.php.

App\Models\Accessory::$table = 'accessories'
protected

Definition at line 19 of file Accessory.php.


The documentation for this class was generated from the following file: