push(Item::find($item)); } $col_items->forget(0); return $col_items; } protected $casts = [ 'metadata' => 'array', ]; public function bookings() { return $this->hasMany('App\Booking'); } public function category() { if (\App\ItemCategory::find($this->category_id) == null) { $this->category_id = -1; $this->save(); $c = new \App\ItemCategory(); $c->name = "[Categorie Supprimé]"; $c->is_training = 0; $c->is_op_appro = 0; return $c; } return \App\ItemCategory::find($this->category_id); } public function available($begin = null,$end = null) { if ($begin == null && $end == null) { return $this->quantity - $this->booked(); } } public function booked() { $nbBooked = 0; foreach ($this->bookings() as $b) { $nbBooked = $nbBooked + $b->amount; } return $nbBooked; } public static function training() { $training = collect(); $training = \App\Item::all()->filter(function($value,$key){ return $value->category()->is_training == 1 && $value->category()->is_op_appro != 1; }); return $training; } }