com.liferay.commerce.checkout.web.internal.util.DeliveryTermCommerceCheckoutStep Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of com.liferay.commerce.checkout.web
Show all versions of com.liferay.commerce.checkout.web
Liferay Commerce Checkout Web
/**
* SPDX-FileCopyrightText: (c) 2000 Liferay, Inc. https://liferay.com
* SPDX-License-Identifier: LGPL-2.1-or-later OR LicenseRef-Liferay-DXP-EULA-2.0.0-2023-06
*/
package com.liferay.commerce.checkout.web.internal.util;
import com.liferay.account.model.AccountEntry;
import com.liferay.commerce.checkout.helper.CommerceCheckoutStepHttpHelper;
import com.liferay.commerce.checkout.web.internal.display.context.TermCommerceCheckoutStepDisplayContext;
import com.liferay.commerce.constants.CommerceCheckoutWebKeys;
import com.liferay.commerce.constants.CommerceOrderActionKeys;
import com.liferay.commerce.constants.CommerceOrderConstants;
import com.liferay.commerce.model.CommerceOrder;
import com.liferay.commerce.payment.service.CommercePaymentMethodGroupRelLocalService;
import com.liferay.commerce.service.CommerceOrderLocalService;
import com.liferay.commerce.service.CommerceShippingMethodLocalService;
import com.liferay.commerce.shipping.engine.fixed.service.CommerceShippingFixedOptionLocalService;
import com.liferay.commerce.term.service.CommerceTermEntryLocalService;
import com.liferay.commerce.util.BaseCommerceCheckoutStep;
import com.liferay.commerce.util.CommerceCheckoutStep;
import com.liferay.commerce.util.CommerceShippingEngineRegistry;
import com.liferay.frontend.taglib.servlet.taglib.util.JSPRenderer;
import com.liferay.portal.kernel.language.Language;
import com.liferay.portal.kernel.security.permission.PermissionChecker;
import com.liferay.portal.kernel.security.permission.PermissionCheckerFactoryUtil;
import com.liferay.portal.kernel.security.permission.resource.PortletResourcePermission;
import com.liferay.portal.kernel.theme.ThemeDisplay;
import com.liferay.portal.kernel.util.ParamUtil;
import com.liferay.portal.kernel.util.Portal;
import com.liferay.portal.kernel.util.WebKeys;
import javax.portlet.ActionRequest;
import javax.portlet.ActionResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;
/**
* @author Luca Pellizzon
*/
@Component(
property = {
"commerce.checkout.step.name=" + DeliveryTermCommerceCheckoutStep.NAME,
"commerce.checkout.step.order:Integer=25"
},
service = CommerceCheckoutStep.class
)
public class DeliveryTermCommerceCheckoutStep extends BaseCommerceCheckoutStep {
public static final String NAME = "delivery-terms";
@Override
public String getName() {
return NAME;
}
@Override
public boolean isActive(
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
throws Exception {
CommerceOrder commerceOrder =
(CommerceOrder)httpServletRequest.getAttribute(
CommerceCheckoutWebKeys.COMMERCE_ORDER);
boolean activeDeliveryTermCommerceCheckoutStep =
_commerceCheckoutStepHttpHelper.
isActiveDeliveryTermCommerceCheckoutStep(
httpServletRequest, commerceOrder,
_language.getLanguageId(
_portal.getLocale(httpServletRequest)));
commerceOrder = (CommerceOrder)httpServletRequest.getAttribute(
CommerceCheckoutWebKeys.COMMERCE_ORDER);
ThemeDisplay themeDisplay =
(ThemeDisplay)httpServletRequest.getAttribute(
WebKeys.THEME_DISPLAY);
PermissionChecker permissionChecker =
PermissionCheckerFactoryUtil.create(themeDisplay.getUser());
AccountEntry accountEntry = commerceOrder.getAccountEntry();
if (commerceOrder.isGuestOrder() || accountEntry.isPersonalAccount() ||
_portletResourcePermission.contains(
permissionChecker, accountEntry.getAccountEntryGroup(),
CommerceOrderActionKeys.MANAGE_COMMERCE_ORDER_DELIVERY_TERMS)) {
return activeDeliveryTermCommerceCheckoutStep;
}
return false;
}
@Override
public void processAction(
ActionRequest actionRequest, ActionResponse actionResponse)
throws Exception {
CommerceOrder commerceOrder = (CommerceOrder)actionRequest.getAttribute(
CommerceCheckoutWebKeys.COMMERCE_ORDER);
long deliveryCommerceTermEntryId = ParamUtil.getLong(
actionRequest, "deliveryCommerceTermEntryId",
commerceOrder.getDeliveryCommerceTermEntryId());
commerceOrder = _commerceOrderLocalService.updateTermsAndConditions(
commerceOrder.getCommerceOrderId(), deliveryCommerceTermEntryId, 0,
_language.getLanguageId(actionRequest.getLocale()));
actionRequest.setAttribute(
CommerceCheckoutWebKeys.COMMERCE_ORDER, commerceOrder);
}
@Override
public void render(
HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse)
throws Exception {
TermCommerceCheckoutStepDisplayContext
termCommerceCheckoutStepDisplayContext =
new TermCommerceCheckoutStepDisplayContext(
_commercePaymentMethodGroupRelLocalService,
_commerceShippingEngineRegistry,
_commerceShippingFixedOptionLocalService,
_commerceShippingMethodLocalService,
_commerceTermEntryLocalService, httpServletRequest);
httpServletRequest.setAttribute(
CommerceCheckoutWebKeys.COMMERCE_CHECKOUT_STEP_DISPLAY_CONTEXT,
termCommerceCheckoutStepDisplayContext);
_jspRenderer.renderJSP(
httpServletRequest, httpServletResponse,
"/checkout_step/delivery_term.jsp");
}
@Reference
private CommerceCheckoutStepHttpHelper _commerceCheckoutStepHttpHelper;
@Reference
private CommerceOrderLocalService _commerceOrderLocalService;
@Reference
private CommercePaymentMethodGroupRelLocalService
_commercePaymentMethodGroupRelLocalService;
@Reference
private CommerceShippingEngineRegistry _commerceShippingEngineRegistry;
@Reference
private CommerceShippingFixedOptionLocalService
_commerceShippingFixedOptionLocalService;
@Reference
private CommerceShippingMethodLocalService
_commerceShippingMethodLocalService;
@Reference
private CommerceTermEntryLocalService _commerceTermEntryLocalService;
@Reference
private JSPRenderer _jspRenderer;
@Reference
private Language _language;
@Reference
private Portal _portal;
@Reference(
target = "(resource.name=" + CommerceOrderConstants.RESOURCE_NAME + ")"
)
private PortletResourcePermission _portletResourcePermission;
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy