Пример #1
0
 public function load(ObjectManager $manager)
 {
     $logger = $this->container->get('logger');
     $stopwatch = new Stopwatch();
     $stopwatch->start('dummyResourceTableGeneration');
     // Populate dummy forms
     $this->addDummyResourceTables();
     // Seek dummy fields
     $loadFieldData = new LoadFieldData();
     $loadFieldData->addDummyFields();
     $dummyFields = $loadFieldData->getFields();
     foreach ($this->resourceTables as $resourceTableKey => $humanResourceResourceTable) {
         $resourceTable = new ResourceTable();
         $resourceTable->setName($humanResourceResourceTable['name']);
         $resourceTable->setDescription($humanResourceResourceTable['description']);
         $resourceTableRefernce = strtolower(str_replace(' ', '', $humanResourceResourceTable['name'])) . '-resourcetable';
         $this->addReference($resourceTableRefernce, $resourceTable);
         $manager->persist($resourceTable);
         // Add Field Members for the resource table created
         $sort = 1;
         foreach ($dummyFields as $key => $dummyField) {
             //Filter addition of fields not compliant to filter
             if ($humanResourceResourceTable['filter'] == false || $humanResourceResourceTable['inputType'] == $dummyField['inputType'] || $humanResourceResourceTable['compulsory'] == $dummyField['compulsory']) {
                 $resourceTableMember = new ResourceTableFieldMember();
                 $resourceTableMember->setField($manager->merge($this->getReference(strtolower(str_replace(' ', '', $dummyField['name'])) . '-field')));
                 $resourceTableMember->setResourceTable($manager->merge($this->getReference($resourceTableRefernce)));
                 $resourceTableMember->setSort($sort++);
                 $referenceName = strtolower(str_replace(' ', '', $humanResourceResourceTable['name']) . str_replace(' ', '', $dummyField['name'])) . '-resourcetable-field-member';
                 $this->addReference($referenceName, $resourceTableMember);
                 $manager->persist($resourceTableMember);
                 $resourceTable->addResourceTableFieldMember($resourceTableMember);
                 unset($resourceTableMember);
             }
         }
         $manager->persist($resourceTable);
         unset($resourceTable);
     }
     $manager->flush();
     $dummyResourceTableGenerationLap = $stopwatch->lap('dummyResourceTableGeneration');
     $dummyResourceTableGenerationDuration = round($dummyResourceTableGenerationLap->getDuration() / 1000, 2);
     if ($dummyResourceTableGenerationDuration < 60) {
         $dummyResourceTableGenerationDurationMessage = round($dummyResourceTableGenerationDuration, 2) . ' sec.';
     } elseif ($dummyResourceTableGenerationDuration >= 60 && $dummyResourceTableGenerationDuration < 3600) {
         $dummyResourceTableGenerationDurationMessage = round($dummyResourceTableGenerationDuration / 60, 2) . ' min.';
     } elseif ($dummyResourceTableGenerationDuration >= 3600 && $dummyResourceTableGenerationDuration < 216000) {
         $dummyResourceTableGenerationDurationMessage = round($dummyResourceTableGenerationDuration / 3600, 2) . ' hrs';
     } else {
         $dummyResourceTableGenerationDurationMessage = round($dummyResourceTableGenerationDuration / 86400, 2) . ' days';
     }
     echo "\tDummy data schema generation complete in " . $dummyResourceTableGenerationDurationMessage . "\n";
     // Generate resource tables
     $resourceTables = $manager->getRepository('HrisFormBundle:ResourceTable')->findAll();
     foreach ($resourceTables as $resourceTableKey => $resourceTable) {
         // Ugly hack to generate resource table for "All Fields" only
         if ($resourceTable->getName() == "All Fields") {
             $success = $resourceTable->generateResourceTable($manager, $logger);
             $messageLog = $resourceTable->getMessageLog();
             if ($success) {
                 echo $messageLog;
             } else {
                 echo "Failed with:" . $messageLog;
             }
         }
     }
 }
Пример #2
0
 /**
  * Remove resourceTableFieldMember
  *
  * @param ResourceTableFieldMember $resourceTableFieldMember
  */
 public function removeResourceTableFieldMember(ResourceTableFieldMember $resourceTableFieldMember)
 {
     $this->resourceTableFieldMember->removeElement($resourceTableFieldMember);
 }
Пример #3
0
 /**
  * Edits an existing ResourceTable entity.
  *
  * @Secure(roles="ROLE_SUPER_USER,ROLE_RESOURCETABLE_UPDATE")
  * @Route("/{id}", requirements={"id"="\d+"}, name="resourcetable_update")
  * @Method("PUT")
  * @Template("HrisFormBundle:ResourceTable:edit.html.twig")
  */
 public function updateAction(Request $request, $id)
 {
     $em = $this->getDoctrine()->getManager();
     $entity = $em->getRepository('HrisFormBundle:ResourceTable')->find($id);
     if (!$entity) {
         throw $this->createNotFoundException('Unable to find ResourceTable entity.');
     }
     $deleteForm = $this->createDeleteForm($id);
     $editForm = $this->createForm(new ResourceTableType(), $entity);
     $editForm->bind($request);
     if ($editForm->isValid()) {
         $incr = 1;
         $requestcontent = $request->request->get('hris_formbundle_resourcetabletype');
         $fieldIds = $requestcontent['fields'];
         // Clear ResourceTableFieldMembers
         //Get rid of current fields
         $em->createQueryBuilder('resourceTableFieldMember')->delete('HrisFormBundle:ResourceTableFieldMember', 'resourceTableFieldMember')->where('resourceTableFieldMember.resourceTable= :resourceTable')->setParameter('resourceTable', $entity)->getQuery()->getResult();
         $em->flush();
         foreach ($fieldIds as $fieldIdKey => $fieldId) {
             $field = $this->getDoctrine()->getRepository('HrisFormBundle:Field')->findOneBy(array('id' => $fieldId));
             $resourceTableFieldMember = new ResourceTableFieldMember();
             $resourceTableFieldMember->setField($field);
             $resourceTableFieldMember->setResourceTable($entity);
             $resourceTableFieldMember->setSort($incr++);
             $entity->addResourceTableFieldMember($resourceTableFieldMember);
             unset($field);
         }
         $em->persist($entity);
         $em->flush();
         return $this->redirect($this->generateUrl('resourcetable_show', array('id' => $id)));
     }
     return array('entity' => $entity, 'edit_form' => $editForm->createView(), 'delete_form' => $deleteForm->createView());
 }