/**
  * Persists Dataelement Field Option relation and return json response on success.
  *
  * @Secure(roles="ROLE_SUPER_USER,ROLE_DHISDATACONNECTION_UPDATERELATION")
  * @Route("/updateRelation.{_format}", requirements={"_format"="yml|xml|json"}, defaults={"_format"="json"}, name="dhisdataconnection_updaterelation")
  * @Method("POST")
  * @Template()
  */
 public function updateRelationAction($_format)
 {
     $em = $this->getDoctrine()->getManager();
     $connectionId = $this->getRequest()->request->get('connectionId');
     $dhisDataelementUids = $this->getRequest()->request->get('dhisDataelementUids');
     $dhisDataelementNames = $this->getRequest()->request->get('dhisDataelementNames');
     $dhisComboUids = $this->getRequest()->request->get('dhisComboUids');
     $dhisComboNames = $this->getRequest()->request->get('dhisComboNames');
     $fieldOptionTargetNodes = NULL;
     // Fetch existing targets and field options belonging to target
     $entity = $em->getRepository('HrisIntergrationBundle:DHISDataConnection')->find($connectionId);
     //Get rid of current fields
     $em->createQueryBuilder('dataelementFieldOptionRelation')->delete('HrisIntergrationBundle:DataelementFieldOptionRelation', 'dataelementFieldOptionRelation')->where('dataelementFieldOptionRelation.dhisDataConnection= :dhisDataConnection')->andWhere('dataelementFieldOptionRelation.dataelementUid= :dataelementUid')->andWhere('dataelementFieldOptionRelation.dataelementname= :dataelementname')->andWhere('dataelementFieldOptionRelation.categoryComboUid= :categoryComboUid')->andWhere('dataelementFieldOptionRelation.categoryComboname= :categoryComboname')->setParameters(array('dhisDataConnection' => $entity, 'dataelementUid' => $dhisDataelementUids, 'categoryComboUid' => $dhisComboUids, 'categoryComboname' => $dhisComboNames, 'dataelementname' => $dhisDataelementNames))->getQuery()->getResult();
     $em->flush();
     $columnFieldOptionGroup = $em->getRepository('HrisFormBundle:FieldOptionGroup')->findOneBy(array('name' => $dhisDataelementNames));
     $rowFieldOptionGroup = $em->getRepository('HrisFormBundle:FieldOptionGroup')->findOneBy(array('name' => $dhisComboNames));
     if (sizeof($columnFieldOptionGroup) && sizeof($rowFieldOptionGroup)) {
         //Insert relation
         $dataelementFieldOptionRelation = new DataelementFieldOptionRelation();
         $dataelementFieldOptionRelation->setDhisDataConnection($entity);
         $dataelementFieldOptionRelation->setCategoryComboname($dhisComboNames);
         $dataelementFieldOptionRelation->setCategoryComboUid($dhisComboUids);
         $dataelementFieldOptionRelation->setDataelementname($dhisDataelementNames);
         $dataelementFieldOptionRelation->setDataelementUid($dhisDataelementUids);
         $dataelementFieldOptionRelation->setColumnFieldOptionGroup($columnFieldOptionGroup);
         $dataelementFieldOptionRelation->setRowFieldOptionGroup($rowFieldOptionGroup);
         $result = NULL;
         try {
             $em->persist($dataelementFieldOptionRelation);
             $em->flush();
             $result = 'success';
         } catch (ORMException $e) {
             $result = 'failed';
         }
     } else {
         $result = 'failed';
     }
     $serializer = $this->container->get('serializer');
     return array('entities' => $serializer->serialize($result, $_format));
 }
Пример #2
0
 /**
  * Remove dataelementFieldOptionRelation
  *
  * @param \Hris\IntergrationBundle\Entity\DataelementFieldOptionRelation $dataelementFieldOptionRelation
  */
 public function removeDataelementFieldOptionRelation(\Hris\IntergrationBundle\Entity\DataelementFieldOptionRelation $dataelementFieldOptionRelation)
 {
     $this->dataelementFieldOptionRelation->removeElement($dataelementFieldOptionRelation);
 }