Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions modules/commerce-order-status-override/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@

.gradle/
build/
target/
4 changes: 4 additions & 0 deletions modules/commerce-order-status-override/bnd.bnd
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
Bundle-Name: commerce-order-status-override
Bundle-SymbolicName: com.liferay.commerce.order.status.override
Bundle-Version: 1.0.0
Export-Package: com.liferay.commerce.order.status.override.constants
3 changes: 3 additions & 0 deletions modules/commerce-order-status-override/build.gradle
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
dependencies {
compileOnly group: "com.liferay.portal", name: "release.dxp.api", version:"2024.q1.1"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
package com.liferay.commerce.order.status.override;

import com.liferay.commerce.constants.CommerceOrderConstants;
import com.liferay.commerce.model.CommerceOrder;
import com.liferay.commerce.order.status.CommerceOrderStatus;
import com.liferay.commerce.service.CommerceOrderService;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.commerce.order.status.override.constants.CommerceOrderStatusOverrideConstants;

import java.util.Locale;

import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

/**
* @author Payal
*/
@Component(property = {
"commerce.order.status.key=" + CommerceOrderStatusOverrideConstants.ORDER_STATUS_AWAITING_PAYMENT,
"commerce.order.status.priority:Integer=" + AwaitingPaymentOrderStatusOverride.PRIORITY,
"service.ranking:Integer=100" }, service = CommerceOrderStatus.class)

public class AwaitingPaymentOrderStatusOverride implements CommerceOrderStatus {

public static final int PRIORITY = 50;

/**
* Called on transition change for order status
*
* @param commerceOrder
* @param userId
* @return commerceOrder
*/
@Override
public CommerceOrder doTransition(CommerceOrder commerceOrder, long userId, boolean secure) throws PortalException {

commerceOrder.setOrderStatus(CommerceOrderStatusOverrideConstants.ORDER_STATUS_AWAITING_PAYMENT);
return commerceOrderService.updateCommerceOrder(commerceOrder);
}


/**
* Get key
*
* @return key in int
*/
@Override
public int getKey() {
return CommerceOrderStatusOverrideConstants.ORDER_STATUS_AWAITING_PAYMENT;
}

/**
* Get Label
*
* @param locale
* @return order status label
*/
@Override
public String getLabel(Locale locale) {
return LanguageUtil.get(locale, CommerceOrderStatusOverrideConstants.ORDER_STATUS_AWAITING_PAYMENT_LABEL);
}

/**
* Get priority
*
* @return priority in int
*/
@Override
public int getPriority() {
return PRIORITY;
}

/**
* verify the order is in complete state or not
*
* @param commerceOrder
* @return true or false
*/
@Override
public boolean isComplete(CommerceOrder commerceOrder) {
boolean isComplete = Boolean.FALSE;

if (!commerceOrder.isOpen() && commerceOrder.isApproved()
&& (commerceOrder.getOrderStatus() != CommerceOrderConstants.ORDER_STATUS_PROCESSING)) {
isComplete = Boolean.TRUE;
}


return isComplete;

}

/**
* Check transition criteria met or not based on next status will be enable
*
* @param commerceOrder
* @return true or false
*/
@Override
public boolean isTransitionCriteriaMet(CommerceOrder commerceOrder) throws PortalException {
boolean isTransitionMet = Boolean.FALSE;

if (commerceOrder.getOrderStatus() == CommerceOrderStatusOverrideConstants.ORDER_STATUS_PLACED) {
isTransitionMet = Boolean.TRUE;
}

return isTransitionMet;

}


@Reference
private CommerceOrderService commerceOrderService;
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
package com.liferay.commerce.order.status.override;

import com.liferay.commerce.constants.CommerceOrderConstants;
import com.liferay.commerce.model.CommerceOrder;
import com.liferay.commerce.order.status.CommerceOrderStatus;
import com.liferay.commerce.service.CommerceOrderService;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.language.LanguageUtil;
import com.liferay.commerce.order.status.override.constants.CommerceOrderStatusOverrideConstants;

import java.util.Locale;

import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

/**
* @author Payal
*/
@Component(property = { "commerce.order.status.key=" + CancelledOrderStatusOverride.KEY,
"commerce.order.status.priority:Integer=" + CancelledOrderStatusOverride.PRIORITY,
"service.ranking:Integer=100" }, service = CommerceOrderStatus.class)
public class CancelledOrderStatusOverride implements CommerceOrderStatus {

public static final int KEY = CommerceOrderConstants.ORDER_STATUS_CANCELLED;

public static final int PRIORITY = 54;

/**
* Called on transition change for order status
*
* @param commerceOrder
* @param userId
* @return commerceOrder
*/
@Override
public CommerceOrder doTransition(CommerceOrder commerceOrder, long userId, boolean secure) throws PortalException {

commerceOrder.setOrderStatus(KEY);

return commerceOrderService.updateCommerceOrder(commerceOrder);
}

/**
* Get key
*
* @return key in int
*/
@Override
public int getKey() {
return KEY;
}

/**
* Get Label
*
* @param locale
* @return order status label
*/
@Override
public String getLabel(Locale locale) {
return LanguageUtil.get(locale, CommerceOrderConstants.getOrderStatusLabel(KEY));
}

/**
* Get priority
*
* @return priority in int
*/
@Override
public int getPriority() {
return PRIORITY;
}

/**
* Check transition criteria met or not based on next status will be enable
*
* @param commerceOrder
* @return true or false
*/
@Override
public boolean isTransitionCriteriaMet(CommerceOrder commerceOrder) throws PortalException {
boolean isTransitionMet = Boolean.FALSE;

if ((commerceOrder.getOrderStatus() == CommerceOrderStatusOverrideConstants.ORDER_STATUS_PENDING_CANCELLATION)) {
isTransitionMet = Boolean.TRUE;
}
return isTransitionMet;

}

/**
* Check the status is valid for current status
*
* @param commerceOrder
* @return true or false
*/
@Override
public boolean isValidForOrder(CommerceOrder commerceOrder) throws PortalException {
boolean isValid = Boolean.FALSE;

if (commerceOrder.getOrderStatus() == CommerceOrderStatusOverrideConstants.ORDER_STATUS_PENDING_CANCELLATION
|| commerceOrder.getOrderStatus() == CommerceOrderConstants.ORDER_STATUS_CANCELLED) {
isValid = Boolean.TRUE;
}
return isValid;

}

@Reference
private CommerceOrderService commerceOrderService;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
package com.liferay.commerce.order.status.override;

import com.liferay.commerce.constants.CommerceOrderConstants;
import com.liferay.commerce.model.CommerceOrder;
import com.liferay.commerce.order.status.CommerceOrderStatus;
import com.liferay.commerce.service.CommerceOrderService;
import com.liferay.commerce.util.CommerceShippingHelper;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.commerce.order.status.override.constants.CommerceOrderStatusOverrideConstants;

import java.util.Locale;

import org.osgi.service.component.annotations.Component;
import org.osgi.service.component.annotations.Reference;

@Component(property = { "commerce.order.status.key=" + CommerceOrderConstants.ORDER_STATUS_COMPLETED,
"commerce.order.status.priority:Integer=" + CompletedOrderStatusOverride.PRIORITY,
"service.ranking:Integer=100" }, service = CommerceOrderStatus.class)
public class CompletedOrderStatusOverride implements CommerceOrderStatus {

public static final int KEY = CommerceOrderConstants.ORDER_STATUS_COMPLETED;

public static final int PRIORITY = 70;

/**
* Called on transition change for order status
*
* @param commerceOrder
* @param userId
* @return commerceOrder
*/
@Override
public CommerceOrder doTransition(CommerceOrder commerceOrder, long userId, boolean secure) throws PortalException {

commerceOrder.setOrderStatus(KEY);

return commerceOrderService.updateCommerceOrder(commerceOrder);
}

/**
* Get key
*
* @return key in int
*/
@Override
public int getKey() {
return KEY;
}

/**
* Get Label
*
* @param locale
* @return order status label
*/
@Override
public String getLabel(Locale locale) {
return CommerceOrderStatusOverrideConstants.ORDER_STATUS_COMPLETED_LABEL;
}

/**
* Get priority
*
* @return priority in int
*/
@Override
public int getPriority() {
return PRIORITY;
}

/**
* Check transition criteria met or not based on next status will be enable
*
* @param commerceOrder
* @return true or false
*/
@Override
public boolean isTransitionCriteriaMet(CommerceOrder commerceOrder) throws PortalException {
boolean isTransitionMet = Boolean.FALSE;

if ((commerceOrder.getOrderStatus() == CommerceOrderConstants.ORDER_STATUS_SHIPPED)
|| ((commerceOrder.getOrderStatus() == CommerceOrderConstants.ORDER_STATUS_PROCESSING)
&& !commerceShippingHelper.isShippable(commerceOrder))) {
isTransitionMet = Boolean.TRUE;
}

return isTransitionMet;

}

/**
* Check the status is valid for current status
*
* @param commerceOrder
* @return true or false
*/
@Override
public boolean isValidForOrder(CommerceOrder commerceOrder) throws PortalException {
boolean isValid = Boolean.TRUE;

if (commerceOrder.getOrderStatus() == CommerceOrderConstants.ORDER_STATUS_CANCELLED || commerceOrder
.getOrderStatus() == CommerceOrderStatusOverrideConstants.ORDER_STATUS_PENDING_CANCELLATION) {
isValid = Boolean.FALSE;
}
return isValid;

}

@Reference
private CommerceOrderService commerceOrderService;

@Reference
private CommerceShippingHelper commerceShippingHelper;
}
Loading