flag_active = true; $this->job_orders = new ArrayCollection(); } public function getID() { return $this->id; } public function setName($name) { $this->name = $name; return $this; } public function getName() { return $this->name; } public function setCustomer(Customer $customer) { $this->customer = $customer; return $this; } public function getCustomer() { return $this->customer; } public function setVehicle(Vehicle $vehicle) { $this->vehicle = $vehicle; return $this; } public function getVehicle() { return $this->vehicle; } public function setPlateNumber($plate_number) { // make it upper case $plate_number = trim(strtoupper($plate_number)); // remove spaces $plate_number = str_replace(' ', '', $plate_number); // upper case $plate_number = strtoupper($plate_number); $this->plate_number = $plate_number; return $this; } public function getPlateNumber() { return strtoupper($this->plate_number); } public function setModelYear($model_year) { $this->model_year = $model_year; return $this; } public function getModelYear() { return $this->model_year; } public function setColor($color) { $this->color = $color; return $this; } public function getColor() { return $this->color; } public function setStatusCondition($status_condition) { $this->status_condition = $status_condition; return $this; } public function getStatusCondition() { return $this->status_condition; } public function setFuelType($fuel_type) { $this->fuel_type = $fuel_type; return $this; } public function getFuelType() { return $this->fuel_type; } public function setWarrantyCode($warranty_code) { $this->warranty_code = $warranty_code; return $this; } public function getWarrantyCode() { return $this->warranty_code; } public function setWarrantyExpiration(DateTime $warranty_expiration = null) { $this->warranty_expiration = $warranty_expiration; return $this; } public function getWarrantyExpiration() { return $this->warranty_expiration; } public function setCurrentBattery(Battery $curr_battery) { $this->curr_battery = $curr_battery; return $this; } public function getCurrentBattery() { return $this->curr_battery; } public function getJobOrders() { return $this->job_orders; } public function setHasMotoliteBattery($flag_motolite_battery = true) { $this->flag_motolite_battery = $flag_motolite_battery; return $this; } public function hasMotoliteBattery() { return $this->flag_motolite_battery; } public function setActive($flag_active = true) { $this->flag_active = $flag_active; return $this; } public function isActive() { return $this->flag_active; } public function getInsuranceApplications() { return $this->insurance_applications; } public function getLatestInsuranceApplication() { $criteria = Criteria::create() ->where(Criteria::expr()->notIn('status', [InsuranceApplicationStatus::CANCELLED])) ->orderBy(['date_submit' => Criteria::DESC]) ->setMaxResults(1); $result = $this->insurance_applications->matching($criteria); return !empty($result) ? $result[0] : null; } public function getSubscriptions() { return $this->subscriptions; } public function getLatestSubscription() { // we get the latest subscription that actually started $criteria = Criteria::create() ->where(Criteria::expr()->notIn('status', [ SubscriptionStatus::CANCELLED, SubscriptionStatus::PENDING, ])) ->where(Criteria::expr()->neq('date_start', null)) ->orderBy(['date_create' => Criteria::DESC]) ->setMaxResults(1); $result = $this->subscriptions->matching($criteria); return !empty($result) ? $result[0] : null; } }