Advertisement
Guest User

Untitled

a guest
Jul 27th, 2017
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.93 KB | None | 0 0
  1. use CRMCoreBundleEntityCustomer;
  2. use DoctrineORMEventPreUpdateEventArgs;
  3.  
  4. class CustomerPreUpdateListener
  5. {
  6. public function preUpdate(PreUpdateEventArgs $args)
  7. {
  8. $entity = $args->getObject();
  9. if (!($entity instanceof Customer)) {
  10. return;
  11. }
  12.  
  13. if($this->isStatusChanged($args)) {
  14. $this->syncParentLeadStatus($args);
  15. }
  16. }
  17.  
  18. private function isStatusChanged(PreUpdateEventArgs $args)
  19. {
  20. return $args->hasChangedField('status');
  21. }
  22.  
  23. private function syncParentLeadStatus(PreUpdateEventArgs $args)
  24. {
  25. /** @var Customer $entity */
  26. $entity = $args->getObject();
  27. if(!$entity->getLead()) {
  28. return;
  29. }
  30.  
  31. $newStatus = $args->getNewValue('status');
  32. $entity->getLead()->setStatus($newStatus);
  33. $args->getEntityManager()->persist($entity->getLead());
  34. }
  35. }
  36.  
  37. use CRMBasicLeadsBundleEntityLead;
  38. use CRMCoreBundleEntityCustomer;
  39. use DoctrineORMEventPreUpdateEventArgs;
  40.  
  41. class LeadPreUpdateListener
  42. {
  43. public function preUpdate(PreUpdateEventArgs $args)
  44. {
  45. $entity = $args->getObject();
  46. if (!($entity instanceof Lead)) {
  47. return;
  48. }
  49.  
  50. if($this->isStatusChanged($args)) {
  51. $this->syncCustomerStatus($args);
  52. }
  53. }
  54.  
  55. private function isStatusChanged(PreUpdateEventArgs $args)
  56. {
  57. return $args->hasChangedField('status');
  58. }
  59.  
  60. private function syncCustomerStatus(PreUpdateEventArgs $args)
  61. {
  62. /** @var Lead $entity */
  63. $entity = $args->getObject();
  64. if(0 === $entity->getCustomersCreated()->count()) {
  65. return;
  66. }
  67.  
  68. $newStatus = $args->getNewValue('status');
  69. foreach ($entity->getCustomersCreated() as $customer) {
  70. /** @var Customer $customer */
  71. $customer->setStatus($newStatus);
  72. $args->getEntityManager()->persist($customer);
  73. }
  74. }
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement