Example #1
0
 /**
  * Checks visibility condition
  *
  * @param	RM_Anketa_Result_Object		obResult
  * @return	bool
  */
 public function check(RM_Anketa_Result_Object $obResult)
 {
     if (!isNull($this->_related_question)) {
         foreach ($obResult->getResultAnswers($this->_related_question) as $obResultAnswer) {
             $selected_numbers[] = $obResultAnswer->answer_number;
             if (!is_null($obResultAnswer->subanswer_number)) {
                 $selected_subnumbers[] = $obResultAnswer->subanswer_number;
             }
         }
         if (!array_intersect($this->_answer_numbers, (array) @$selected_numbers)) {
             return FALSE;
         }
     }
     return TRUE;
 }
Example #2
0
 /**
  * Checks visibility condition
  *
  * @param	RM_Anketa_Result_Object		obResult
  * @return	bool
  */
 public function check(RM_Anketa_Result_Object $obResult)
 {
     if (!isNull($this->_related_answer)) {
         if (is_null($this->_subanswer_numbers)) {
             return $obResult->isAnswerSelected($this->_related_answer);
         } else {
             $selected_subnumbers = array();
             foreach ($obResult->getResultAnswers()->filter('answer_id = ?', $this->_related_answer->id()) as $obResultAnswer) {
                 if (!is_null($obResultAnswer->subanswer_number)) {
                     $selected_subnumbers[] = $obResultAnswer->subanswer_number;
                 }
             }
             if (!array_intersect($this->_subanswer_numbers, $selected_numbers)) {
                 return FALSE;
             }
         }
     }
     return TRUE;
 }
Example #3
0
 public function checkSex(RM_Anketa_Result_Object $obResult)
 {
     $obRespondent = $obResult->getRespondent();
     return $obRespondent->sex == 2 ? TRUE : FALSE;
 }
Example #4
0
 /**
  * Creates (not save) anketa result answer object
  *
  * @param 		array							post
  * @param 		RM_Anketa_Result_Object			obResult
  * @param 		RM_Anketa_Entity_Answer			obAnswer
  * @param 		RM_Anketa_Entity_Subanswer|NULL	obSubanswer
  * @return		RM_Anketa_Result_Answer
  **/
 public function createResultAnswer($post, RM_Anketa_Result_Object $obResult, RM_Anketa_Entity_Answer $obAnswer, RM_Anketa_Entity_Subanswer $obSubanswer = NULL)
 {
     if ($obResult->getAnketa()->id() !== $obAnswer->getQuestion()->getAnketa()->id()) {
         throw new RM_Base_Exception_BadUsage(__METHOD__ . "(): Result and Answer objects belong to the different forms (anketa).");
     }
     if (!is_null($obSubanswer) && $obAnswer->getQuestion()->id() !== $obSubanswer->getQuestion()->id()) {
         throw new RM_Base_Exception_BadUsage(__METHOD__ . "(): SubAnswer doesn't belong to the specified Question.");
     }
     $data = $this->_filterIncomingData('resultanswer', $post);
     $data['anketa_id'] = $obResult->getAnketa()->id();
     $data['result_id'] = $obResult->id();
     $data['respondent_id'] = $obResult->getRespondent()->getRespondentId();
     $data['respondent_type'] = $obResult->getRespondent()->getRespondentType();
     $data['question_id'] = $obAnswer->getQuestion()->id();
     $data['answer_id'] = $obAnswer->id();
     $data['subanswer_id'] = !is_null($obSubanswer) ? $obSubanswer->id() : NULL;
     $data['tag'] = $obAnswer->getQuestion()->generateTag();
     return $this->_storages['resultanswer']->createObject($data);
 }