Programming Language PHP

Namespace Oro\Bundle\WorkflowBundle\Entity

Class WorkflowDefinition

Total Examples 12

12 code examples of PHP Oro\Bundle\WorkflowBundle\Entity\WorkflowDefinition extracted from open source projects

Was this example useful?
0
                                                    private function assertObjectsDefinitions(
        WorkflowDefinition $definition1,
        WorkflowDefinition $definition2,
        bool $isCopy = false
    ) {
        if ($isCopy) {
            $testDefinition = $definition2;
        } else {
            $testDefinition = $definition1;
        }

        foreach ($definition1->getSteps() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getSteps() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }

        foreach ($definition1->getEntityAcls() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getEntityAcls() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }

        foreach ($definition1->getRestrictions() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getRestrictions() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }
    }
                                            
Was this example useful?
0
                                                    private function assertObjectsDefinitions(
        WorkflowDefinition $definition1,
        WorkflowDefinition $definition2,
        bool $isCopy = false
    ) {
        if ($isCopy) {
            $testDefinition = $definition2;
        } else {
            $testDefinition = $definition1;
        }

        foreach ($definition1->getSteps() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getSteps() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }

        foreach ($definition1->getEntityAcls() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getEntityAcls() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }

        foreach ($definition1->getRestrictions() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getRestrictions() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }
    }
                                            
Was this example useful?
0
                                                    private function assertObjectsDefinitions(
        WorkflowDefinition $definition1,
        WorkflowDefinition $definition2,
        bool $isCopy = false
    ) {
        if ($isCopy) {
            $testDefinition = $definition2;
        } else {
            $testDefinition = $definition1;
        }

        foreach ($definition1->getSteps() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getSteps() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }

        foreach ($definition1->getEntityAcls() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getEntityAcls() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }

        foreach ($definition1->getRestrictions() as $item) {
            $this->assertSame($definition1, $item->getDefinition());
        }
        foreach ($definition2->getRestrictions() as $item) {
            $this->assertSame($testDefinition, $item->getDefinition());
        }
    }
                                            
Was this example useful?
0
                                                    protected function processConfiguration(TranslationProcessor $processor, WorkflowDefinition $definition)
    {
        $sourceConfiguration = array_merge(
            $definition->getConfiguration(),
            [
                'name' => $definition->getName(),
                'label' => $definition->getLabel(),
            ]
        );

        $preparedConfiguration = $processor->prepare($definition->getName(), $processor->handle($sourceConfiguration));

        if (isset($preparedConfiguration[WorkflowConfiguration::NODE_STEPS])) {
            $this->setWorkflowdefinitionSteps($definition, $preparedConfiguration[WorkflowConfiguration::NODE_STEPS]);
        }

        $definition->setLabel($preparedConfiguration['label']);

        unset($preparedConfiguration['label'], $preparedConfiguration['name']);

        $definition->setConfiguration($preparedConfiguration);
    }
                                            
Was this example useful?
0
                                                    protected function processConfiguration(TranslationProcessor $processor, WorkflowDefinition $definition)
    {
        $sourceConfiguration = array_merge(
            $definition->getConfiguration(),
            [
                'name' => $definition->getName(),
                'label' => $definition->getLabel(),
            ]
        );

        $preparedConfiguration = $processor->prepare($definition->getName(), $processor->handle($sourceConfiguration));

        if (isset($preparedConfiguration[WorkflowConfiguration::NODE_STEPS])) {
            $this->setWorkflowdefinitionSteps($definition, $preparedConfiguration[WorkflowConfiguration::NODE_STEPS]);
        }

        $definition->setLabel($preparedConfiguration['label']);

        unset($preparedConfiguration['label'], $preparedConfiguration['name']);

        $definition->setConfiguration($preparedConfiguration);
    }
                                            
Was this example useful?
0
                                                    public function updateWorkflowVariables(WorkflowDefinition $definition, WorkflowData $data): WorkflowDefinition
    {
        $workflowConfig = $definition->getConfiguration();
        $variableDefinitionsConfig = $workflowConfig[WorkflowConfiguration::NODE_VARIABLE_DEFINITIONS];
        $variablesConfig = $variableDefinitionsConfig[WorkflowConfiguration::NODE_VARIABLES];

        foreach ($data as $name => $value) {
            if (!isset($variablesConfig[$name])) {
                continue;
            }
            $variablesConfig[$name]['value'] = $value;
        }

        $variableDefinitionsConfig[WorkflowConfiguration::NODE_VARIABLES] = $variablesConfig;
        $workflowConfig[WorkflowConfiguration::NODE_VARIABLE_DEFINITIONS] = $variableDefinitionsConfig;
        $definition->setConfiguration($workflowConfig);
        $this->process($definition);

        return $definition;
    }
                                            
Was this example useful?
0
                                                    private static function copyRestrictions(WorkflowDefinition $definition): ArrayCollection
    {
        $newsRestrictions = new ArrayCollection();
        foreach ($definition->getRestrictions() as $restriction) {
            $newsRestriction = new WorkflowRestriction();
            $newsRestriction->setDefinition($definition)->import($restriction);

            $newsRestrictions->add($newsRestriction);
        }

        return $newsRestrictions;
    }
                                            
Was this example useful?
0
                                                    private static function copyEntityAcls(WorkflowDefinition $definition): ArrayCollection
    {
        $newEntityAcls = new ArrayCollection();
        foreach ($definition->getEntityAcls() as $entityAcl) {
            $newEntityAcl = new WorkflowEntityAcl();
            $newEntityAcl->setDefinition($definition)->import($entityAcl);

            $newEntityAcls->add($newEntityAcl);
        }

        return $newEntityAcls;
    }
                                            
Was this example useful?
0
                                                    /**
     * Collects init context of all start transitions.
     */
    private function processInitContext(Workflow $workflow, WorkflowDefinition $definition)
    {
        $initData = [];
        foreach ($workflow->getTransitionManager()->getStartTransitions() as $startTransition) {
            foreach ($startTransition->getInitEntities() as $entity) {
                $initData[WorkflowConfiguration::NODE_INIT_ENTITIES][$entity][] = $startTransition->getName();
            }
            foreach ($startTransition->getInitRoutes() as $route) {
                $initData[WorkflowConfiguration::NODE_INIT_ROUTES][$route][] = $startTransition->getName();
            }
            foreach ($startTransition->getInitDatagrids() as $datagrid) {
                $initData[WorkflowConfiguration::NODE_INIT_DATAGRIDS][$datagrid][] = $startTransition->getName();
            }
        }
        $definition->setConfiguration(array_merge($definition->getConfiguration(), $initData));
    }
                                            
Was this example useful?
0
                                                    private function setEntityRestrictions(WorkflowDefinition $workflowDefinition, Workflow $workflow)
    {
        $restrictions = $workflow->getRestrictions();
        $workflowRestrictions = [];
        foreach ($restrictions as $restriction) {
            $workflowRestriction = new WorkflowRestriction();
            $workflowRestriction
                ->setField($restriction->getField())
                ->setAttribute($restriction->getAttribute())
                ->setEntityClass($restriction->getEntity())
                ->setMode($restriction->getMode())
                ->setValues($restriction->getValues())
                ->setStep($workflowDefinition->getStepByName($restriction->getStep()));

            $workflowRestrictions[] = $workflowRestriction;
        }
        $workflowDefinition->setRestrictions($workflowRestrictions);
    }
                                            
Was this example useful?
0
                                                    private function setEntityAcls(WorkflowDefinition $workflowDefinition, Workflow $workflow)
    {
        $entityAcls = [];
        foreach ($workflow->getAttributeManager()->getEntityAttributes() as $attribute) {
            foreach ($workflow->getStepManager()->getSteps() as $step) {
                $updatable = $attribute->isEntityUpdateAllowed()
                    && $step->isEntityUpdateAllowed($attribute->getName());
                $deletable = $attribute->isEntityDeleteAllowed()
                    && $step->isEntityDeleteAllowed($attribute->getName());

                if (!$updatable || !$deletable) {
                    $entityAcl = new WorkflowEntityAcl();
                    $entityAcl
                        ->setAttribute($attribute->getName())
                        ->setStep($workflowDefinition->getStepByName($step->getName()))
                        ->setEntityClass($attribute->getOption('class'))
                        ->setUpdatable($updatable)
                        ->setDeletable($deletable);
                    $entityAcls[] = $entityAcl;
                }
            }
        }

        $workflowDefinition->setEntityAcls($entityAcls);
    }
                                            
Was this example useful?
0
                                                    private function setSteps(WorkflowDefinition $workflowDefinition, Workflow $workflow)
    {
        $workflowSteps = [];
        foreach ($workflow->getStepManager()->getSteps() as $step) {
            $workflowStep = new WorkflowStep();
            $workflowStep
                ->setName($step->getName())
                ->setLabel($step->getLabel())
                ->setStepOrder($step->getOrder())
                ->setFinal($step->isFinal());

            $workflowSteps[] = $workflowStep;
        }

        $workflowDefinition->setSteps($workflowSteps);
    }