/** * 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; }
/** * Set criteriagroup. * * @param \Innova\PathBundle\Entity\Criteriagroup $criteriagroup * * @return \Innova\PathBundle\Entity\Criterion */ public function setCriteriagroup(Criteriagroup $criteriagroup = null) { if ($criteriagroup !== $this->criteriagroup) { $this->criteriagroup = $criteriagroup; if (null !== $criteriagroup) { $criteriagroup->addCriterion($this); } } return $this; }
/** * Clean criteria data which no long exist in the current criteriagroup * * @param array $neededCriteria * @param array $existingCriteria * @param Criteriagroup $criteriagroup * @return PublishingManager */ protected function cleanCriteria(array $neededCriteria = array(), array $existingCriteria = array(), Criteriagroup $criteriagroup) { //echo "inside cleanCriteria<br>\n"; $toRemove = array_filter($existingCriteria, function (Criterion $current) use($neededCriteria) { //echo "inside cleanCriteria closure<br>\n"; $removeCriterion = true; foreach ($neededCriteria as $data) { if ($current->getId() == $data->getId()) { $removeCriterion = false; break; } } return $removeCriterion; }); foreach ($toRemove as $criterionToRemove) { $criteriagroup->removeCriterion($criterionToRemove); $this->om->remove($criterionToRemove); } return $this; }
/** * Set parent. * * @param \Innova\PathBundle\Entity\Criteriagroup $parent * * @return \Innova\PathBundle\Entity\Criteriagroup */ public function setParent(Criteriagroup $parent = null) { if ($parent !== $this->parent) { $this->parent = $parent; $parent->addChild($this); } return $this; }
/** * Clean Criteria which no longer exist in the current Group. * * @param \Innova\PathBundle\Entity\Criteriagroup $group * @param array $neededCriteria * @param array $existingCriteria * * @return \Innova\PathBundle\Manager\Condition\CriteriaManager */ public function cleanCriteria(Criteriagroup $group, array $neededCriteria = [], array $existingCriteria = []) { $toRemove = array_filter($existingCriteria, function (Criterion $current) use($neededCriteria) { $removeCriterion = true; foreach ($neededCriteria as $criterion) { if ($current->getId() == $criterion->getId()) { $removeCriterion = false; break; } } return $removeCriterion; }); foreach ($toRemove as $criterionToRemove) { $group->removeCriterion($criterionToRemove); $this->om->remove($criterionToRemove); } return $this; }