private function createChangesetId(Tracker_Artifact $artifact, PFUser $submitter, $submitted_on)
 {
     $email = null;
     if ($submitter->isAnonymous()) {
         $email = $submitter->getEmail();
     }
     return $this->changeset_dao->create($artifact->getId(), $submitter->getId(), $email, $submitted_on);
 }
 /**
  * @throws Tracker_FieldValueNotStoredException
  */
 private function storeFieldsValues(Tracker_Artifact $artifact, $previous_changeset, array $fields_data, PFUser $submitter, $changeset_id)
 {
     $used_fields = $this->formelement_factory->getUsedFields($artifact->getTracker());
     foreach ($used_fields as $field) {
         if (!$this->saveNewChangesetForField($field, $artifact, $previous_changeset, $fields_data, $submitter, $changeset_id)) {
             $this->changeset_dao->rollBack();
             throw new Tracker_FieldValueNotStoredException($GLOBALS['Language']->getText('plugin_tracker', 'field_not_stored_exception', array($field->getLabel())));
         }
     }
     return true;
 }
 /**
  * Get artifacts that responds to some criteria
  *
  * @param date    $date      The date criteria
  * @param Integer $trackerId The Tracker Id
  *
  * @return Array
  */
 public function getArtifactsByCriterias($date, $trackerId = null)
 {
     $artifacts = array();
     $dao = new Tracker_Artifact_ChangesetDao();
     $dar = $dao->getArtifactsByFieldAndLastUpdateDate($trackerId, $date);
     if ($dar && !$dar->isError()) {
         $artifactFactory = Tracker_ArtifactFactory::instance();
         foreach ($dar as $row) {
             $artifacts[] = $artifactFactory->getArtifactById($row['artifact_id']);
         }
     }
     return $artifacts;
 }