public function testCreatedCustomerWithSpecifiedRef() { $customerCreateEvent = new CustomerCreateOrUpdateEvent(1, "thelia", "thelia", "street address 1", "street address 2", "street address 3", "0102030405", "0607080910", "63000", "clermont-ferrand", 64, sprintf("*****@*****.**", uniqid()), uniqid(), 1, 0, 0, 0, 'My super company', 'testRef'); $customerCreateEvent->setDispatcher($this->getMock("Symfony\\Component\\EventDispatcher\\EventDispatcherInterface")); $customerAction = $this->customerAction; $customerAction->create($customerCreateEvent); $customerCreated = $customerCreateEvent->getCustomer(); $this->assertInstanceOf("Thelia\\Model\\Customer", $customerCreated, "new customer created must be an instance of Thelia\\Model\\Customer"); $this->assertFalse($customerCreated->isNew()); $this->assertEquals($customerCreateEvent->getFirstname(), $customerCreated->getFirstname()); $this->assertEquals($customerCreateEvent->getLastname(), $customerCreated->getLastname()); $this->assertEquals($customerCreateEvent->getTitle(), $customerCreated->getTitleId()); $this->assertEquals($customerCreateEvent->getEmail(), $customerCreated->getEmail()); $this->assertEquals($customerCreateEvent->getReseller(), $customerCreated->getReseller()); $this->assertEquals($customerCreateEvent->getSponsor(), $customerCreated->getSponsor()); $this->assertEquals($customerCreateEvent->getDiscount(), $customerCreated->getDiscount()); $this->assertEquals($customerCreateEvent->getRef(), $customerCreated->getRef()); $addressCreated = $customerCreated->getDefaultAddress(); $this->assertInstanceOf("Thelia\\Model\\Address", $addressCreated); $this->assertEquals($customerCreateEvent->getFirstname(), $addressCreated->getFirstname()); $this->assertEquals($customerCreateEvent->getLastname(), $addressCreated->getLastname()); $this->assertEquals($customerCreateEvent->getTitle(), $addressCreated->getTitleId()); $this->assertEquals($customerCreateEvent->getAddress1(), $addressCreated->getAddress1()); $this->assertEquals($customerCreateEvent->getAddress2(), $addressCreated->getAddress2()); $this->assertEquals($customerCreateEvent->getAddress3(), $addressCreated->getAddress3()); $this->assertEquals($customerCreateEvent->getZipcode(), $addressCreated->getZipcode()); $this->assertEquals($customerCreateEvent->getCity(), $addressCreated->getCity()); $this->assertEquals($customerCreateEvent->getCountry(), $addressCreated->getCountryId()); $this->assertEquals($customerCreateEvent->getPhone(), $addressCreated->getPhone()); $this->assertEquals($customerCreateEvent->getCellphone(), $addressCreated->getCellphone()); $this->assertEquals($customerCreateEvent->getCompany(), $addressCreated->getCompany()); }
protected function hydrateEvent(array $data) { $customerCreateEvent = new CustomerCreateOrUpdateEvent($data['title'], $data['firstname'], $data['lastname'], $data['address1'], $data['address2'], $data['address3'], $data['phone'], $data['cellphone'], $data['zipcode'], $data['city'], $data['country'], $data['email'], $data['password'], $data['lang'], isset($data["reseller"]) ? $data["reseller"] : null, isset($data["sponsor"]) ? $data["sponsor"] : null, isset($data["discount"]) ? $data["discount"] : null, $data['company'], null); if (isset($data["id"])) { $customerCreateEvent->setCustomer(CustomerQuery::create()->findPk($data["id"])); } return $customerCreateEvent; }
private function createOrUpdateCustomer(CustomerModel $customer, CustomerCreateOrUpdateEvent $event) { $customer->setDispatcher($event->getDispatcher()); $customer->createOrUpdate($event->getTitle(), $event->getFirstname(), $event->getLastname(), $event->getAddress1(), $event->getAddress2(), $event->getAddress3(), $event->getPhone(), $event->getCellphone(), $event->getZipcode(), $event->getCity(), $event->getCountry(), $event->getEmail(), $event->getPassword(), $event->getLang(), $event->getReseller(), $event->getSponsor(), $event->getDiscount(), $event->getCompany(), $event->getRef(), $event->getEmailUpdateAllowed()); $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); }