public function update(Tracker $tracker, SimpleXMLElement $artifact_xml, array $submitted_values, PFUser $user, $submitted_on) { $artifact_xml->changeset->submitted_on = date('c', $submitted_on); $artifact_xml->changeset->submitted_by = $user->getId(); foreach ($artifact_xml->changeset->field_change as $field_change) { $field_name = (string) $field_change['field_name']; $field = $this->formelement_factory->getUsedFieldByNameForUser($tracker->getId(), $field_name, $user); if ($field && isset($submitted_values[$field->getId()])) { $submitted_value = $submitted_values[$field->getId()]; $this->visitor->update($field_change, $field, $submitted_value); } } }
private function getTimestamp(PFUser $user, Tracker_Artifact $milestone_artifact, $field_name) { $field = $this->formelement_factory->getUsedFieldByNameForUser($milestone_artifact->getTracker()->getId(), $field_name, $user); if (!$field) { return 0; } $value = $field->getLastChangesetValue($milestone_artifact); if (!$value) { return 0; } return $value->getTimestamp(); }