Пример #1
0
 /**
  *
  * @param Evaluation $evaluation        	
  * @return \Amisure\DataBrokerBundle\Entity\EvaluationModel
  */
 public function mergeWithEvaluation(Evaluation $evaluation)
 {
     $this->folderSectionId = $evaluation->getFolderSectionId();
     $this->state = $evaluation->getState();
     $this->beneficiaryId = $evaluation->getBeneficiaryId();
     $this->evaluatorId = $evaluation->getEvaluatorId();
     $this->appId = $evaluation->getAppId();
     $this->date = $evaluation->getDate();
     $this->lastUpdate = $evaluation->getLastUpdate();
     $cats = $this->getCategories();
     $newCats = array();
     $this->setCategories($newCats);
     $nbOfCat = count($cats);
     for ($i = 0; $i < $nbOfCat; $i++) {
         $newCat = new EvaluationModelCategory($cats[$i]->getLabel(), $cats[$i]->getCode(), $cats[$i]->getCategoryId(), $cats[$i]->getId());
         $items = $cats[$i]->getItems();
         $nbOfItem = count($items);
         for ($j = 0; $j < $nbOfItem; $j++) {
             $newItem = new EvaluationModelItem($items[$j]->getLabel(), $items[$j]->getResponseType(), $items[$j]->getItemId(), $items[$j]->getId());
             $responses = $items[$j]->getResponses();
             $nbOfResponse = count($responses);
             $relatedItem = $evaluation->getItemById($cats[$i]->getCategoryId(), $items[$j]->getItemId());
             for ($k = 0; $k < $nbOfResponse; $k++) {
                 $newResponse = new EvaluationModelItemResponse($responses[$k]->getValue(), $responses[$k]->getLabel(), $responses[$k]->getType(), $responses[$k]->getResponseId(), $responses[$k]->getId());
                 if (null != $relatedItem) {
                     $relatedResponse = $relatedItem->getResponseById($responses[$k]->getResponseId());
                     if (null != $relatedResponse) {
                         $newResponse->setValue($relatedResponse->getValue());
                         $newResponse->selected = $relatedResponse->getSelected();
                     }
                 }
                 $newItem->addResponse($newResponse);
             }
             $newCat->addItem($newItem);
         }
         $newCats[] = $newCat;
     }
     $this->setCategories($newCats);
     $this->setId($evaluation->getId());
     return $this;
 }