/** * @see Command */ protected function execute(InputInterface $input, OutputInterface $output) { $em = $this->getContainer()->get('doctrine.orm.entity_manager'); $repository = $em->getRepository('WealthbotClientBundle:Workflow'); $workflow = $repository->findAll(); $count = 0; foreach ($workflow as $workflowItem) { $type = $workflowItem->getType(); if ($type === Workflow::TYPE_PAPERWORK) { $messageCodes = array_flip(Workflow::getPaperworkMessageChoices()); } else { $messageCodes = array_flip(Workflow::getAlertMessageChoices()); } $workflowItem->setMessageCode($messageCodes[$workflowItem->getDbMessage()]); $em->persist($workflowItem); $count++; } $em->flush(); $output->writeln(sprintf('Updated %d items.', $count)); }
public function PostFlush(PostFlushEventArgs $eventArgs) { $activityManager = $this->container->get('wealthbot.activity.manager'); $paperworkMessages = Workflow::getPaperworkMessageChoices(); foreach ($this->inserted as $entity) { if ($entity instanceof ActivityInterface) { $activityManager->saveActivityByObject($entity); } if ($entity instanceof Distribution || $entity instanceof BaseContribution) { $client = $entity->getClientAccount()->getClient(); $message = str_replace('New/Update', 'New', $paperworkMessages[$entity->getWorkflowMessageCode()]); $message = substr($message, 0, -1); $activity = $this->createActivity($client, $message, $entity->getAmount()); $activityManager->updateActivity($activity); } } }
/** * @param User $client * @param WorkflowableInterface $object * @return null|Workflow */ public function findOneByClientAndObject(User $client, WorkflowableInterface $object) { $messageCode = $object->getWorkflowMessageCode(); if (array_key_exists($messageCode, Workflow::getPaperworkMessageChoices())) { $type = Workflow::TYPE_PAPERWORK; } else { $type = Workflow::TYPE_ALERT; } return $this->findOneByClientAndObjectAndType($client, $object, $type); }