/**
  * Edit a criteriagroup
  *
  * @param int $level
  * @param StepCondition $conditionDB
  * @param Criteriagroup $criteriagroupDB
  * @return Criteriagroup
  */
 public function editCriteriagroup($level = 0, $currentOrder = 0, Criteriagroup $parent = null, StepCondition $conditionDB, Criteriagroup $criteriagroupDB)
 {
     // Update criteriagroup properties
     $criteriagroupDB->setStepCondition($conditionDB);
     $criteriagroupDB->setParent($parent);
     $criteriagroupDB->setLvl($level);
     $criteriagroupDB->setOrder($currentOrder);
     // Save modifications
     $this->om->persist($criteriagroupDB);
     return $criteriagroupDB;
 }
Ejemplo n.º 2
0
 /**
  * Update an existing group of criteria.
  *
  * @param StepCondition $condition
  * @param int           $level
  * @param Criteriagroup $parent
  * @param int           $order
  * @param \stdClass     $groupStructure
  * @param Criteriagroup $group
  *
  * @return Criteriagroup
  */
 public function editGroup(StepCondition $condition, $level = 0, Criteriagroup $parent = null, $order = 0, \stdClass $groupStructure, Criteriagroup $group)
 {
     // Update group properties
     $group->setCondition($condition);
     $group->setParent($parent);
     $group->setLvl($level);
     $group->setOrder($order);
     // Store existing Criteria to remove those that no longer exist
     $existingCriteria = $group->getCriteria()->toArray();
     $toProcess = !empty($groupStructure->criterion) ? $groupStructure->criterion : [];
     // Manages criteria
     $createdCriteria = $this->updateCriteria($group, $toProcess);
     // Clean CriteriaGroups to remove
     $this->cleanCriteria($group, $createdCriteria, $existingCriteria);
     // Save modifications
     $this->om->persist($group);
     return $group;
 }