Ejemplo n.º 1
0
 /**
  * Try and match a score to an answer
  *
  * @param \Jazzee\Entity\Answer
  */
 public function matchScore(\Jazzee\Entity\Answer $answer)
 {
     if ($answer->getPageStatus() == self::SKIPPED) {
         return;
     }
     if (!is_null($answer->getGREScore()) and !is_null($answer->getTOEFLScore())) {
         return;
         //we already have a match
     }
     $testType = $this->_applicationPage->getPage()->getElementByFixedId(self::FID_TEST_TYPE)->getJazzeeElement()->displayValue($answer);
     $registrationNumber = $this->_applicationPage->getPage()->getElementByFixedId(self::FID_REGISTRATION_NUMBER)->getJazzeeElement()->displayValue($answer);
     $testDate = $this->_applicationPage->getPage()->getElementByFixedId(self::FID_TEST_DATE)->getJazzeeElement()->formValue($answer);
     $testMonth = date('m', strtotime($testDate));
     $testYear = date('Y', strtotime($testDate));
     $parameters = array('registrationNumber' => $registrationNumber, 'testMonth' => $testMonth, 'testYear' => $testYear);
     switch ($testType) {
         case 'GRE/GRE Subject':
             $score = $this->_controller->getEntityManager()->getRepository('\\Jazzee\\Entity\\GREScore')->findOneBy($parameters);
             if ($score) {
                 $answer->setGreScore($score);
             }
             break;
         case 'TOEFL':
             $score = $this->_controller->getEntityManager()->getRepository('\\Jazzee\\Entity\\TOEFLScore')->findOneBy($parameters);
             if ($score) {
                 $answer->setTOEFLScore($score);
             }
             break;
         default:
             throw new \Jazzee\Exception("Unknown test type: {$testType} when trying to match a score");
     }
 }
Ejemplo n.º 2
0
 public function rawValue(\Jazzee\Entity\Answer $answer)
 {
     $elementsAnswers = $answer->getElementAnswersForElement($this->_element);
     if (isset($elementsAnswers[0])) {
         return $elementsAnswers[0]->getEText();
     }
     return null;
 }
Ejemplo n.º 3
0
 /**
  * Perform a regular expression match on each value
  * @param \Jazzee\Entity\Answer $answer
  * @param \stdClass $obj
  * @return boolean
  */
 public function testQuery(\Jazzee\Entity\Answer $answer, \stdClass $obj)
 {
     $elementsAnswers = $answer->getElementAnswersForElement($this->_element);
     if (!isset($elementsAnswers[0])) {
         return false;
     }
     $match = false;
     $date = $elementsAnswers[0]->getEDate();
     if (isset($obj->after)) {
         if ($date > new \DateTime($obj->after)) {
             $match = true;
         } else {
             return false;
         }
     }
     if (isset($obj->before)) {
         if ($date < new \DateTime($obj->before)) {
             $match = true;
         } else {
             return false;
         }
     }
     return $match;
 }
Ejemplo n.º 4
0
 /**
  * Get the answer value as an xml element
  * @param \DomDocument $dom
  * @param \Jazzee\Entity\Answer $answer
  * @param integer $version
  * @return \DomElement
  */
 public function getXmlAnswer(\DomDocument $dom, \Jazzee\Entity\Answer $answer, $version)
 {
     $eXml = $dom->createElement('element');
     $eXml->setAttribute('elementId', $this->_element->getId());
     $eXml->setAttribute('title', htmlentities($this->_element->getTitle(), ENT_COMPAT, 'utf-8'));
     $eXml->setAttribute('name', htmlentities($this->_element->getName(), ENT_COMPAT, 'utf-8'));
     $eXml->setAttribute('type', htmlentities($this->_element->getType()->getClass(), ENT_COMPAT, 'utf-8'));
     $eXml->setAttribute('weight', $this->_element->getWeight());
     $elementsAnswers = $answer->getElementAnswersForElement($this->_element);
     if ($value = $this->rawValue($answer)) {
         switch ($version) {
             case 1:
                 $eXml->appendChild($dom->createCDATASection(preg_replace('/[\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]/', '', $value)));
                 break;
             case 2:
                 $vXml = $dom->createElement('value');
                 $vXml->appendChild($dom->createCDATASection(preg_replace('/[\\x00-\\x09\\x0B\\x0C\\x0E-\\x1F\\x7F]/', '', $value)));
                 $eXml->appendChild($vXml);
                 break;
         }
     }
     return $eXml;
 }
Ejemplo n.º 5
0
 /**
  * Convert an answer to an xml element
  * @param \DomDocument $dom
  * @param \Jazzee\Entity\Answer $answer
  * @param integer $version the XML version to create
  * @return \DomElement
  */
 protected function xmlAnswer(\DomDocument $dom, \Jazzee\Entity\Answer $answer, $version)
 {
     $answerXml = $dom->createElement('answer');
     $answerXml->setAttribute('answerId', $answer->getId());
     $answerXml->setAttribute('uniqueId', $answer->getUniqueId());
     $answerXml->setAttribute('updatedAt', $answer->getUpdatedAt()->format('c'));
     $answerXml->setAttribute('pageStatus', $answer->getPageStatus());
     $answerXml->setAttribute('publicStatus', $answer->getPublicStatus() ? $answer->getPublicStatus()->getName() : '');
     $answerXml->setAttribute('privateStatus', $answer->getPrivateStatus() ? $answer->getPrivateStatus()->getName() : '');
     foreach ($answer->getPage()->getElements() as $element) {
         $element->getJazzeeElement()->setController($this->_controller);
         if ($element->getJazzeeElement() instanceof \Jazzee\Interfaces\XmlElement) {
             $answerXml->appendChild($element->getJazzeeElement()->getXmlAnswer($dom, $answer, $version));
         }
     }
     $attachment = $dom->createElement('attachment');
     if ($answer->getAttachment()) {
         $attachment->appendChild($dom->createCDATASection(base64_encode($answer->getAttachment()->getAttachment())));
     }
     $answerXml->appendChild($attachment);
     $children = $dom->createElement('children');
     foreach ($answer->getChildren() as $child) {
         $children->appendChild($this->xmlAnswer($dom, $child, $version));
     }
     $answerXml->appendChild($children);
     return $answerXml;
 }
Ejemplo n.º 6
0
 /**
  * Convert an answer to an xml element and add school information
  * Since school data is stored either in the School entity or else in a child answer
  * we combine these two
  * @param \DomDocument $dom
  * @param \Jazzee\Entity\Answer $answer
  * @param integer $version the XML version to create
  * @return \DomElement
  */
 protected function xmlAnswer(\DomDocument $dom, \Jazzee\Entity\Answer $answer, $version)
 {
     $answerXml = $dom->createElement('answer');
     $answerXml->setAttribute('answerId', $answer->getId());
     $answerXml->setAttribute('uniqueId', $answer->getUniqueId());
     $answerXml->setAttribute('updatedAt', $answer->getUpdatedAt()->format('c'));
     $answerXml->setAttribute('pageStatus', $answer->getPageStatus());
     $answerXml->setAttribute('publicStatus', $answer->getPublicStatus() ? $answer->getPublicStatus()->getName() : '');
     $answerXml->setAttribute('privateStatus', $answer->getPrivateStatus() ? $answer->getPrivateStatus()->getName() : '');
     foreach ($answer->getPage()->getElements() as $element) {
         $element->getJazzeeElement()->setController($this->_controller);
         if ($element->getJazzeeElement() instanceof \Jazzee\Interfaces\XmlElement) {
             $answerXml->appendChild($element->getJazzeeElement()->getXmlAnswer($dom, $answer, $version));
         }
     }
     $attachment = $dom->createElement('attachment');
     if ($answer->getAttachment()) {
         $attachment->appendChild($dom->createCDATASection(base64_encode($answer->getAttachment()->getAttachment())));
     }
     $answerXml->appendChild($attachment);
     $schoolXml = $dom->createElement('school');
     if ($school = $answer->getSchool()) {
         $schoolXml->setAttribute('type', 'known');
         $schoolXml->setAttribute('code', htmlentities($school->getCode(), ENT_COMPAT, 'utf-8'));
         $eXml = $dom->createElement('name');
         $eXml->appendChild($dom->createCDATASection($school->getName()));
         $schoolXml->appendChild($eXml);
         $eXml = $dom->createElement('city');
         $eXml->appendChild($dom->createCDATASection($school->getCity()));
         $schoolXml->appendChild($eXml);
         $eXml = $dom->createElement('state');
         $eXml->appendChild($dom->createCDATASection($school->getState()));
         $schoolXml->appendChild($eXml);
         $eXml = $dom->createElement('country');
         $eXml->appendChild($dom->createCDATASection($school->getCountry()));
         $schoolXml->appendChild($eXml);
         $eXml = $dom->createElement('postalCode');
         $eXml->appendChild($dom->createCDATASection($school->getPostalCode()));
         $schoolXml->appendChild($eXml);
     } else {
         $schoolXml->setAttribute('type', 'new');
         $newSchoolElements = array(self::ELEMENT_FID_NAME => 'name', self::ELEMENT_FID_CITY => 'city', self::ELEMENT_FID_STATE => 'state', self::ELEMENT_FID_COUNTRY => 'country', self::ELEMENT_FID_POSTALCODE => 'postalCode');
         foreach ($newSchoolElements as $fid => $name) {
             $element = $this->_applicationPage->getPage()->getChildByFixedId(self::PAGE_FID_NEWSCHOOL)->getElementByFixedId($fid);
             $element->getJazzeeElement()->setController($this->_controller);
             if ($element->getJazzeeElement() instanceof \Jazzee\Interfaces\XmlElement) {
                 $eXml = $dom->createElement($name);
                 $eXml->appendChild($dom->createCDATASection($element->getJazzeeElement()->displayValue($answer->getChildren()->first())));
                 $schoolXml->appendChild($eXml);
             }
         }
     }
     $answerXml->appendChild($schoolXml);
     return $answerXml;
 }
Ejemplo n.º 7
0
 public function pdfValue(\Jazzee\Entity\Answer $answer, \Jazzee\ApplicantPDF $pdf)
 {
     $elementsAnswers = $answer->getElementAnswersForElement($this->_element);
     if (isset($elementsAnswers[0])) {
         $pdf->addPdf(\Jazzee\Globals::getFileStore()->getFileContents($elementsAnswers[0]->getEShortString()));
         return 'Attached';
     }
     return null;
 }
Ejemplo n.º 8
0
 /**
  * Perform a regular expression match on each value
  * @param \Jazzee\Entity\Answer $answer
  * @param \stdClass $obj
  * @return boolean
  */
 public function testQuery(\Jazzee\Entity\Answer $answer, \stdClass $obj)
 {
     $elementsAnswers = $answer->getElementAnswersForElement($this->_element);
     if (!isset($elementsAnswers[0])) {
         return false;
     }
     return preg_match($obj->pattern, $this->_element->getItemById($elementsAnswers[0]->getEInteger())->getValue());
 }
Ejemplo n.º 9
0
 /**
  * Perform a regular expression match on each value
  * @param \Jazzee\Entity\Answer $answer
  * @param \stdClass $obj
  * @return boolean
  */
 public function testQuery(\Jazzee\Entity\Answer $answer, \stdClass $obj)
 {
     $elementsAnswers = $answer->getElementAnswersForElement($this->_element);
     if (!isset($elementsAnswers[0])) {
         return false;
     }
     return preg_match($obj->pattern, $elementsAnswers[0]->getEShortString());
 }
Ejemplo n.º 10
0
 /**
  * Perform a regular expression match on each value
  * @param \Jazzee\Entity\Answer $answer
  * @param \stdClass $obj
  * @return boolean
  */
 public function testQuery(\Jazzee\Entity\Answer $answer, \stdClass $obj)
 {
     $elementsAnswers = $answer->getElementAnswersForElement($this->_element);
     foreach ($elementsAnswers as $elementsAnswer) {
         if (isset($obj->all)) {
             if (preg_match($obj->all, $this->_element->getItemById($elementsAnswer->getEInteger())->getValue())) {
                 return true;
             }
         }
         if (isset($obj->{$elementsAnswer->getPosition()})) {
             if (preg_match($obj->{$elementsAnswer->getPosition()}, $this->_element->getItemById($elementsAnswer->getEInteger())->getValue())) {
                 return true;
             }
         }
     }
     return false;
 }
Ejemplo n.º 11
0
 public function fillLorForm(\Jazzee\Entity\Answer $answer)
 {
     foreach ($answer->getPage()->getElements() as $element) {
         $element->getJazzeeElement()->setController($this->_controller);
         $value = $element->getJazzeeElement()->formValue($answer);
         if ($value) {
             $this->getForm()->getElementByName('el' . $element->getId())->setValue($value);
         }
     }
 }
Ejemplo n.º 12
0
 /**
  * Add answer
  *
  * @param \Jazzee\Entity\Answer $answer
  */
 public function addAnswer(\Jazzee\Entity\Answer $answer)
 {
     $this->answers[] = $answer;
     if ($answer->getApplicant() != $this) {
         $answer->setApplicant($this);
     }
 }
Ejemplo n.º 13
0
 /**
  * Get the action path for a form
  * @return string
  */
 public function getActionPath()
 {
     return $this->path('lor/' . $this->_parentAnswer->getUniqueId());
 }