public function updateProfile(CustomerCreateOrUpdateEvent $event) { $customer = $event->getCustomer(); $customer->setDispatcher($event->getDispatcher()); if ($event->getTitle() !== null) { $customer->setTitleId($event->getTitle()); } if ($event->getFirstname() !== null) { $customer->setFirstname($event->getFirstname()); } if ($event->getLastname() !== null) { $customer->setLastname($event->getLastname()); } if ($event->getEmail() !== null) { $customer->setEmail($event->getEmail()); } if ($event->getPassword() !== null) { $customer->setPassword($event->getPassword()); } if ($event->getReseller() !== null) { $customer->setReseller($event->getReseller()); } if ($event->getSponsor() !== null) { $customer->setSponsor($event->getSponsor()); } if ($event->getDiscount() !== null) { $customer->setDiscount($event->getDiscount()); } $customer->save(); $event->setCustomer($customer); }
/** * @param CustomerCreateOrUpdateEvent $event */ public function customerUpdateProfile(CustomerCreateOrUpdateEvent $event) { $form = $this->request->request->get(self::THELIA_CUSTOMER_UPDATE_FORM_NAME); if (is_null($form) or !array_key_exists(CustomerFamilyFormListener::CUSTOMER_FAMILY_CODE_FIELD_NAME, $form)) { // Nothing to update => stop here ! return; } // Erase SIRET and VAT if the customer is now in the 'particular' customer family. if ($form[CustomerFamilyFormListener::CUSTOMER_FAMILY_CODE_FIELD_NAME] == CustomerFamily::CUSTOMER_FAMILY_PARTICULAR) { $siret = ''; $vat = ''; } else { $siret = $form[CustomerFamilyFormListener::CUSTOMER_FAMILY_SIRET_FIELD_NAME]; $vat = $form[CustomerFamilyFormListener::CUSTOMER_FAMILY_VAT_FIELD_NAME]; } $newCustomerFamily = CustomerFamilyQuery::create()->findOneByCode($form[CustomerFamilyFormListener::CUSTOMER_FAMILY_CODE_FIELD_NAME]); $updateEvent = new CustomerCustomerFamilyEvent($event->getCustomer()->getId()); $updateEvent->setCustomerFamilyId($newCustomerFamily->getId())->setSiret($siret)->setVat($vat); $event->getDispatcher()->dispatch(CustomerFamilyEvents::CUSTOMER_CUSTOMER_FAMILY_UPDATE, $updateEvent); }