Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use CRMCoreBundleEntityCustomer;
- use DoctrineORMEventPreUpdateEventArgs;
- class CustomerPreUpdateListener
- {
- public function preUpdate(PreUpdateEventArgs $args)
- {
- $entity = $args->getObject();
- if (!($entity instanceof Customer)) {
- return;
- }
- if($this->isStatusChanged($args)) {
- $this->syncParentLeadStatus($args);
- }
- }
- private function isStatusChanged(PreUpdateEventArgs $args)
- {
- return $args->hasChangedField('status');
- }
- private function syncParentLeadStatus(PreUpdateEventArgs $args)
- {
- /** @var Customer $entity */
- $entity = $args->getObject();
- if(!$entity->getLead()) {
- return;
- }
- $newStatus = $args->getNewValue('status');
- $entity->getLead()->setStatus($newStatus);
- $args->getEntityManager()->persist($entity->getLead());
- }
- }
- use CRMBasicLeadsBundleEntityLead;
- use CRMCoreBundleEntityCustomer;
- use DoctrineORMEventPreUpdateEventArgs;
- class LeadPreUpdateListener
- {
- public function preUpdate(PreUpdateEventArgs $args)
- {
- $entity = $args->getObject();
- if (!($entity instanceof Lead)) {
- return;
- }
- if($this->isStatusChanged($args)) {
- $this->syncCustomerStatus($args);
- }
- }
- private function isStatusChanged(PreUpdateEventArgs $args)
- {
- return $args->hasChangedField('status');
- }
- private function syncCustomerStatus(PreUpdateEventArgs $args)
- {
- /** @var Lead $entity */
- $entity = $args->getObject();
- if(0 === $entity->getCustomersCreated()->count()) {
- return;
- }
- $newStatus = $args->getNewValue('status');
- foreach ($entity->getCustomersCreated() as $customer) {
- /** @var Customer $customer */
- $customer->setStatus($newStatus);
- $args->getEntityManager()->persist($customer);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement