/** * @param \Generated\Shared\Transfer\AddressTransfer $addressTransfer * @param \Generated\Shared\Transfer\CustomerTransfer $customerTransfer * * @return void */ protected function processCustomerAddress(AddressTransfer $addressTransfer, CustomerTransfer $customerTransfer) { $addressTransfer->setFkCustomer($customerTransfer->getIdCustomer()); if ($addressTransfer->getIdCustomerAddress() === null) { $this->address->createAddressAndUpdateCustomerDefaultAddresses($addressTransfer); } else { $this->address->updateAddressAndCustomerDefaultAddresses($addressTransfer); } }
/** * @param \Symfony\Component\HttpFoundation\Request $request * * @return \Symfony\Component\HttpFoundation\JsonResponse */ public function addressAction(Request $request) { $form = $this->getFactory()->createAddressForm($request); if ($form->isValid() === true) { $addressTransfer = new AddressTransfer(); $addressTransfer->fromArray($form->getRequestData()); if ($addressTransfer->getIdCustomerAddress()) { $this->getFacade()->updateAddress($addressTransfer); return $this->jsonResponse($form->renderData()); } $this->getFacade()->createAddress($addressTransfer); } return $this->jsonResponse($form->renderData()); }
/** * @param \Generated\Shared\Transfer\AddressTransfer $addressTransfer * * @return bool */ protected function isValidAddressTransfer(AddressTransfer $addressTransfer) { return empty($addressTransfer->getIdCustomerAddress()) === false && $addressTransfer->getFkCustomer() !== null; }
/** * @param \Generated\Shared\Transfer\AddressTransfer $addressTransfer * @param \Orm\Zed\Customer\Persistence\SpyCustomer $customerEntity * * @return void */ protected function updateCustomerDefaultAddresses(AddressTransfer $addressTransfer, SpyCustomer $customerEntity) { if ($customerEntity->getDefaultBillingAddress() === null || $addressTransfer->getIsDefaultBilling()) { $customerEntity->setDefaultBillingAddress($addressTransfer->getIdCustomerAddress()); } if ($customerEntity->getDefaultShippingAddress() === null || $addressTransfer->getIsDefaultShipping()) { $customerEntity->setDefaultShippingAddress($addressTransfer->getIdCustomerAddress()); } $customerEntity->save(); }