/** * @param string $subject * @param string $description * @param User $reporter * @param Priority $priority * @param Status $status * @param Source $source * @param OroUser|null $assignee */ public function update($subject, $description, User $reporter, Priority $priority, Status $status, Source $source, OroUser $assignee = null) { $hasChanges = false; if ($this->subject !== $subject || $this->description !== $description || $this->reporter !== $reporter || $this->assignee != $assignee || $this->priority->getValue() !== $priority->getValue() || $this->status->notEquals($status) || $this->source->getValue() !== $source->getValue()) { $hasChanges = true; } $this->subject = $subject; $this->description = $description; $this->reporter = $reporter; $this->priority = $priority; $this->source = $source; $this->updatedAt = new \DateTime('now', new \DateTimeZone('UTC')); $this->processUpdateStatus($status); if (is_null($assignee)) { $this->processUnAssign(); } else { $this->processAssign($assignee); } if ($hasChanges) { $this->raise(new TicketWasUpdated((string) $this->uniqueId, $this->subject, $this->description, (string) $this->reporter, (string) $this->priority, (string) $this->status, (string) $this->source)); } }
/** * @return string */ public function getPriorityValue() { return $this->priority->getValue(); }