Skip to content

Commit

Permalink
COMMERCE-2014 Don't show subscription actions in Subscriptions panel …
Browse files Browse the repository at this point in the history
…if the payment method isn't active
  • Loading branch information
alecsloan authored and marco-leo committed Dec 12, 2019
1 parent 4d42693 commit 9aae3d6
Show file tree
Hide file tree
Showing 7 changed files with 95 additions and 38 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
import com.liferay.commerce.constants.CommerceSubscriptionEntryConstants;
import com.liferay.commerce.model.CommerceOrder;
import com.liferay.commerce.model.CommerceSubscriptionEntry;
import com.liferay.commerce.payment.model.CommercePaymentMethodGroupRel;
import com.liferay.commerce.payment.service.CommercePaymentMethodGroupRelLocalService;
import com.liferay.commerce.product.display.context.util.CPRequestHelper;
import com.liferay.commerce.product.util.CPSubscriptionType;
import com.liferay.commerce.product.util.CPSubscriptionTypeJSPContributor;
Expand Down Expand Up @@ -61,13 +63,17 @@
public class CommerceSubscriptionEntryDisplayContext {

public CommerceSubscriptionEntryDisplayContext(
CommercePaymentMethodGroupRelLocalService
commercePaymentMethodGroupRelLocalService,
CommerceSubscriptionEntryService commerceSubscriptionEntryService,
ConfigurationProvider configurationProvider,
CPSubscriptionTypeJSPContributorRegistry
cpSubscriptionTypeJSPContributorRegistry,
CPSubscriptionTypeRegistry cpSubscriptionTypeRegistry,
HttpServletRequest httpServletRequest) {

_commercePaymentMethodGroupRelLocalService =
commercePaymentMethodGroupRelLocalService;
_commerceSubscriptionEntryService = commerceSubscriptionEntryService;
_configurationProvider = configurationProvider;
_cpSubscriptionTypeJSPContributorRegistry =
Expand Down Expand Up @@ -401,11 +407,24 @@ public boolean hasManageCommerceSubscriptionEntryPermission() {
CommerceActionKeys.MANAGE_COMMERCE_SUBSCRIPTIONS);
}

public boolean isPaymentMethodActive(String engineKey)
throws PortalException {

CommercePaymentMethodGroupRel commercePaymentMethodGroupRel =
_commercePaymentMethodGroupRelLocalService.
getCommercePaymentMethodGroupRel(
_themeDisplay.getScopeGroupId(), engineKey);

return commercePaymentMethodGroupRel.isActive();
}

protected String getNavigation() {
return ParamUtil.getString(_httpServletRequest, "navigation", "all");
}

private final Format _commerceOrderDateFormatDateTime;
private final CommercePaymentMethodGroupRelLocalService
_commercePaymentMethodGroupRelLocalService;
private CommerceSubscriptionEntry _commerceSubscriptionEntry;
private final CommerceSubscriptionEntryService
_commerceSubscriptionEntryService;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

package com.liferay.commerce.subscription.web.internal.portlet;

import com.liferay.commerce.payment.service.CommercePaymentMethodGroupRelLocalService;
import com.liferay.commerce.product.constants.CPPortletKeys;
import com.liferay.commerce.product.util.CPSubscriptionTypeJSPContributorRegistry;
import com.liferay.commerce.product.util.CPSubscriptionTypeRegistry;
Expand Down Expand Up @@ -69,6 +70,7 @@ public void render(
CommerceSubscriptionEntryDisplayContext
commerceSubscriptionEntryDisplayContext =
new CommerceSubscriptionEntryDisplayContext(
_commercePaymentMethodGroupRelLocalService,
_commerceSubscriptionEntryService, _configurationProvider,
_cpSubscriptionTypeJSPContributorRegistry,
_cpSubscriptionTypeRegistry,
Expand All @@ -81,6 +83,10 @@ public void render(
super.render(renderRequest, renderResponse);
}

@Reference
private CommercePaymentMethodGroupRelLocalService
_commercePaymentMethodGroupRelLocalService;

@Reference
private CommerceSubscriptionEntryService _commerceSubscriptionEntryService;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

package com.liferay.commerce.subscription.web.internal.portlet.action;

import com.liferay.commerce.payment.service.CommercePaymentMethodGroupRelLocalService;
import com.liferay.commerce.product.constants.CPPortletKeys;
import com.liferay.commerce.product.util.CPSubscriptionTypeJSPContributorRegistry;
import com.liferay.commerce.product.util.CPSubscriptionTypeRegistry;
Expand Down Expand Up @@ -53,6 +54,7 @@ public String render(
CommerceSubscriptionEntryDisplayContext
commerceSubscriptionEntryDisplayContext =
new CommerceSubscriptionEntryDisplayContext(
_commercePaymentMethodGroupRelLocalService,
_commerceSubscriptionEntryService, _configurationProvider,
_cpSubscriptionTypeJSPContributorRegistry,
_cpSubscriptionTypeRegistry,
Expand All @@ -65,6 +67,10 @@ public String render(
return "/edit_subscription_entry.jsp";
}

@Reference
private CommercePaymentMethodGroupRelLocalService
_commercePaymentMethodGroupRelLocalService;

@Reference
private CommerceSubscriptionEntryService _commerceSubscriptionEntryService;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
package com.liferay.commerce.subscription.web.internal.servlet.taglib.ui;

import com.liferay.commerce.model.CommerceSubscriptionEntry;
import com.liferay.commerce.payment.service.CommercePaymentMethodGroupRelLocalService;
import com.liferay.commerce.product.util.CPSubscriptionTypeJSPContributorRegistry;
import com.liferay.commerce.product.util.CPSubscriptionTypeRegistry;
import com.liferay.commerce.service.CommerceSubscriptionEntryService;
Expand Down Expand Up @@ -86,6 +87,7 @@ public void render(
CommerceSubscriptionEntryDisplayContext
commerceSubscriptionEntryDisplayContext =
new CommerceSubscriptionEntryDisplayContext(
_commercePaymentMethodGroupRelLocalService,
_commerceSubscriptionEntryService, _configurationProvider,
_cpSubscriptionTypeJSPContributorRegistry,
_cpSubscriptionTypeRegistry, httpServletRequest);
Expand All @@ -99,6 +101,10 @@ public void render(
"/subscription_entry/details.jsp");
}

@Reference
private CommercePaymentMethodGroupRelLocalService
_commercePaymentMethodGroupRelLocalService;

@Reference
private CommerceSubscriptionEntryService _commerceSubscriptionEntryService;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,8 @@ taglib uri="http://liferay.com/tld/frontend" prefix="liferay-frontend" %><%@
taglib uri="http://liferay.com/tld/theme" prefix="liferay-theme" %><%@
taglib uri="http://liferay.com/tld/ui" prefix="liferay-ui" %>

<%@ page import="com.liferay.commerce.constants.CommerceSubscriptionEntryConstants" %><%@
<%@ page import="com.liferay.commerce.constants.CommerceOrderConstants" %><%@
page import="com.liferay.commerce.constants.CommerceSubscriptionEntryConstants" %><%@
page import="com.liferay.commerce.exception.CommerceSubscriptionEntrySubscriptionStatusException" %><%@
page import="com.liferay.commerce.exception.CommerceSubscriptionTypeException" %><%@
page import="com.liferay.commerce.exception.NoSuchSubscriptionEntryException" %><%@
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ int subscriptionStatus = CommerceSubscriptionEntryConstants.SUBSCRIPTION_STATUS_
if (commerceSubscriptionEntry != null) {
subscriptionStatus = commerceSubscriptionEntry.getSubscriptionStatus();
}
CommerceOrder commerceOrder = (CommerceOrder)request.getAttribute(CommerceOrderConstants.COMMERCE_ORDER);
%>

<liferay-ui:icon-menu
Expand All @@ -49,43 +51,45 @@ if (commerceSubscriptionEntry != null) {
url="<%= editURL %>"
/>

<c:if test="<%= subscriptionStatus != CommerceSubscriptionEntryConstants.SUBSCRIPTION_STATUS_ACTIVE %>">
<portlet:actionURL name="editCommerceSubscriptionEntry" var="activateURL">
<portlet:param name="<%= Constants.CMD %>" value="activate" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="commerceSubscriptionEntryId" value="<%= String.valueOf(commerceSubscriptionEntry.getCommerceSubscriptionEntryId()) %>" />
</portlet:actionURL>

<liferay-ui:icon
message="activate"
url="<%= activateURL %>"
/>
</c:if>

<c:if test="<%= subscriptionStatus != CommerceSubscriptionEntryConstants.SUBSCRIPTION_STATUS_SUSPENDED %>">
<portlet:actionURL name="editCommerceSubscriptionEntry" var="suspendURL">
<portlet:param name="<%= Constants.CMD %>" value="suspend" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="commerceSubscriptionEntryId" value="<%= String.valueOf(commerceSubscriptionEntry.getCommerceSubscriptionEntryId()) %>" />
</portlet:actionURL>

<liferay-ui:icon
message="suspend"
url="<%= suspendURL %>"
/>
</c:if>

<c:if test="<%= subscriptionStatus != CommerceSubscriptionEntryConstants.SUBSCRIPTION_STATUS_CANCELLED %>">
<portlet:actionURL name="editCommerceSubscriptionEntry" var="cancelURL">
<portlet:param name="<%= Constants.CMD %>" value="cancel" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="commerceSubscriptionEntryId" value="<%= String.valueOf(commerceSubscriptionEntry.getCommerceSubscriptionEntryId()) %>" />
</portlet:actionURL>

<liferay-ui:icon
message="cancel"
url="<%= cancelURL %>"
/>
<c:if test="<%= commerceSubscriptionEntryDisplayContext.isPaymentMethodActive(commerceOrder.getCommercePaymentMethodKey()) %>">
<c:if test="<%= subscriptionStatus != CommerceSubscriptionEntryConstants.SUBSCRIPTION_STATUS_ACTIVE %>">
<portlet:actionURL name="editCommerceSubscriptionEntry" var="activateURL">
<portlet:param name="<%= Constants.CMD %>" value="activate" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="commerceSubscriptionEntryId" value="<%= String.valueOf(commerceSubscriptionEntry.getCommerceSubscriptionEntryId()) %>" />
</portlet:actionURL>

<liferay-ui:icon
message="activate"
url="<%= activateURL %>"
/>
</c:if>

<c:if test="<%= subscriptionStatus != CommerceSubscriptionEntryConstants.SUBSCRIPTION_STATUS_SUSPENDED %>">
<portlet:actionURL name="editCommerceSubscriptionEntry" var="suspendURL">
<portlet:param name="<%= Constants.CMD %>" value="suspend" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="commerceSubscriptionEntryId" value="<%= String.valueOf(commerceSubscriptionEntry.getCommerceSubscriptionEntryId()) %>" />
</portlet:actionURL>

<liferay-ui:icon
message="suspend"
url="<%= suspendURL %>"
/>
</c:if>

<c:if test="<%= subscriptionStatus != CommerceSubscriptionEntryConstants.SUBSCRIPTION_STATUS_CANCELLED %>">
<portlet:actionURL name="editCommerceSubscriptionEntry" var="cancelURL">
<portlet:param name="<%= Constants.CMD %>" value="cancel" />
<portlet:param name="redirect" value="<%= currentURL %>" />
<portlet:param name="commerceSubscriptionEntryId" value="<%= String.valueOf(commerceSubscriptionEntry.getCommerceSubscriptionEntryId()) %>" />
</portlet:actionURL>

<liferay-ui:icon
message="cancel"
url="<%= cancelURL %>"
/>
</c:if>
</c:if>

<portlet:actionURL name="editCommerceSubscriptionEntry" var="deleteURL">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ boolean hasManageCommerceSubscriptionEntryPermission = commerceSubscriptionEntry
if (commerceOrderItem != null) {
commerceOrder = commerceOrderItem.getCommerceOrder();
}
request.setAttribute(CommerceOrderConstants.COMMERCE_ORDER, commerceOrder);
%>

<liferay-ui:search-container-column-text
Expand Down Expand Up @@ -163,6 +165,19 @@ boolean hasManageCommerceSubscriptionEntryPermission = commerceSubscriptionEntry
value="<%= String.valueOf(commerceOrder.getCommerceAccountId()) %>"
/>

<%
String paymentMethod = LanguageUtil.get(request, commerceOrder.getCommercePaymentMethodKey());
if (!commerceSubscriptionEntryDisplayContext.isPaymentMethodActive(commerceOrder.getCommercePaymentMethodKey())) {
paymentMethod += StringPool.DOUBLE_SPACE + StringPool.OPEN_PARENTHESIS + LanguageUtil.get(request, "inactive") + StringPool.CLOSE_PARENTHESIS;
}
%>

<liferay-ui:search-container-column-text
name="payment-method"
value="<%= paymentMethod %>"
/>

<liferay-ui:search-container-column-jsp
cssClass="entry-action-column"
path="/subscription_entry_action.jsp"
Expand Down

0 comments on commit 9aae3d6

Please sign in to comment.