time_open = new DateTime(); $this->time_close = new DateTime(); $this->riders = new ArrayCollection(); $this->outlets = new ArrayCollection(); } public function getRiders() { return $this->riders; } public function getAvailableRiders() { $crit = Criteria::create(); $crit->where(Criteria::expr()->eq('flag_available', true)); return $this->riders->matching($crit); } public function getActiveRiders() { $crit = Criteria::create(); $crit->where(Criteria::expr()->eq('flag_active', true)); return $this->riders->matching($crit); } public function getUsers() { return $this->users; } public function getUsersCount() { return $this->users->count(); } public function getJobOrders() { return $this->job_orders; } public function getOngoingJobOrders() { $crit = Criteria::create(); $crit->where(Criteria::expr()->notIn('status', [JOStatus::CANCELLED, JOStatus::FULFILLED])); return $this->job_orders->matching($crit); } public function getForAssignmentJobOrders() { $crit = Criteria::create(); $crit->where(Criteria::expr()->eq('status', JOStatus::RIDER_ASSIGN)); return $this->job_orders->matching($crit); } public function addOutlet(Outlet $outlet) { $this->outlets[] = $outlet; return $this; } public function getOutlets() { return $this->outlets; } }