@RequestMapping(value = "/summary/createUpdateDeliveryAddress.json", method = RequestMethod.POST) @RequireHardLogIn public String createUpdateDeliveryAddress( final Model model, @Valid final AddressForm form, final BindingResult bindingResult) { if (bindingResult.hasErrors()) { model.addAttribute("edit", Boolean.valueOf(StringUtils.isNotBlank(form.getAddressId()))); // Work out if the address form should be displayed based on the payment type final B2BPaymentTypeData paymentType = getCheckoutFacade().getCheckoutCart().getPaymentType(); final boolean payOnAccount = paymentType != null && CheckoutPaymentType.ACCOUNT.getCode().equals(paymentType.getCode()); model.addAttribute("showAddressForm", Boolean.valueOf(!payOnAccount)); return ControllerConstants.Views.Fragments.SingleStepCheckout.DeliveryAddressFormPopup; } // create delivery address and set it on cart final AddressData addressData = new AddressData(); addressData.setId(form.getAddressId()); addressData.setTitleCode(form.getTitleCode()); addressData.setFirstName(form.getFirstName()); addressData.setLastName(form.getLastName()); addressData.setLine1(form.getLine1()); addressData.setLine2(form.getLine2()); addressData.setTown(form.getTownCity()); addressData.setPostalCode(form.getPostcode()); addressData.setCountry(getI18NFacade().getCountryForIsocode(form.getCountryIso())); addressData.setShippingAddress( Boolean.TRUE.equals(form.getShippingAddress()) || Boolean.TRUE.equals(form.getSaveInAddressBook())); addressData.setVisibleInAddressBook( Boolean.TRUE.equals(form.getSaveInAddressBook()) || StringUtils.isNotBlank(form.getAddressId())); addressData.setDefaultAddress(Boolean.TRUE.equals(form.getDefaultAddress())); if (StringUtils.isBlank(form.getAddressId())) { getUserFacade().addAddress(addressData); } else { getUserFacade().editAddress(addressData); } getCheckoutFacade().setDeliveryAddress(addressData); if (getCheckoutFacade().getCheckoutCart().getDeliveryMode() == null) { getCheckoutFacade().setDeliveryModeIfAvailable(); } model.addAttribute("createUpdateStatus", "Success"); model.addAttribute("addressId", addressData.getId()); return REDIRECT_PREFIX + "/checkout/single/summary/getDeliveryAddressForm.json?addressId=" + addressData.getId() + "&createUpdateStatus=Success"; }
@RequestMapping( value = "/summary/getDeliveryAddressForm.json", method = {RequestMethod.GET, RequestMethod.POST}) @RequireHardLogIn public String getDeliveryAddressForm( final Model model, @RequestParam(value = "addressId") final String addressId, @RequestParam(value = "createUpdateStatus") final String createUpdateStatus) { AddressData addressData = null; if (addressId != null && !addressId.isEmpty()) { addressData = getCheckoutFacade().getDeliveryAddressForCode(addressId); } final AddressForm addressForm = new AddressForm(); final boolean hasAddressData = addressData != null; if (hasAddressData) { addressForm.setAddressId(addressData.getId()); addressForm.setTitleCode(addressData.getTitleCode()); addressForm.setFirstName(addressData.getFirstName()); addressForm.setLastName(addressData.getLastName()); addressForm.setLine1(addressData.getLine1()); addressForm.setLine2(addressData.getLine2()); addressForm.setTownCity(addressData.getTown()); addressForm.setPostcode(addressData.getPostalCode()); addressForm.setCountryIso(addressData.getCountry().getIsocode()); addressForm.setShippingAddress(Boolean.valueOf(addressData.isShippingAddress())); addressForm.setBillingAddress(Boolean.valueOf(addressData.isBillingAddress())); } model.addAttribute("edit", Boolean.valueOf(hasAddressData)); model.addAttribute("noAddresses", Boolean.valueOf(getUserFacade().isAddressBookEmpty())); model.addAttribute(addressForm); model.addAttribute("createUpdateStatus", createUpdateStatus); // Work out if the address form should be displayed based on the payment type final B2BPaymentTypeData paymentType = getCheckoutFacade().getCheckoutCart().getPaymentType(); final boolean payOnAccount = paymentType != null && CheckoutPaymentType.ACCOUNT.getCode().equals(paymentType.getCode()); model.addAttribute("showAddressForm", Boolean.valueOf(!payOnAccount)); return ControllerConstants.Views.Fragments.SingleStepCheckout.DeliveryAddressFormPopup; }