Example #1
0
 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());
 }
Example #2
0
 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;
 }
Example #3
0
 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);
 }