All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.broadleafcommerce.core.offer.service.mvelFunctions.mvel Maven / Gradle / Ivy

There is a newer version: 3.1.15-GA
Show newest version
import org.broadleafcommerce.core.offer.domain.Offer;
import org.broadleafcommerce.profile.core.domain.Customer;
import org.broadleafcommerce.core.order.domain.Order;
import org.broadleafcommerce.core.order.domain.OrderItem;
import org.broadleafcommerce.core.order.domain.DiscreteOrderItem;
import org.broadleafcommerce.core.offer.service.type.*;

def orderContains(quantity) {
    count = 0;
    foreach (itemInList : order.orderItems) {
        if (evalItemForOrderContains(itemInList)) {
            itemQty = itemInList.quantity;
            foreach (x : itemQty) {
                count++;
            }
        }
    }
    
    return (count >= quantity);
}

def orderContainsPlusMark(quantity) {
    count = 0;
    foreach (itemInList : order.orderItems) {
        if (itemInList != currentItem) {
            if (! itemInList.allQuantityMarkedForOffer) {
                if (itemInList.salePrice.amount >= currentItem.salePrice.amount) {
                    if (evalItemForOrderContains(itemInList)) {
                        itemQty = itemInList.quantity;
                        markedQty = itemInList.markedForOffer;
                        quantityToCount = itemQty - markedQty;
                        foreach (x : quantityToCount) {
                            count++;
                        }
                    }
                }
            }
        }
    }
    
    result = (count >= quantity);
    count = 0;
    
    if (result && doMark) {
        foreach (itemInList : order.orderItems) {
            if (itemInList != currentItem) {
                if (count < quantity) {
                    if (! itemInList.allQuantityMarkedForOffer) {
                        if (itemInList.salePrice.amount >= currentItem.salePrice.amount) {
                            if (evalItemForOrderContains(itemInList)) {
                                itemQty = itemInList.quantity;
                                markedQty = itemInList.markedForOffer;
                                quantityToCount = itemQty - markedQty;
                                foreach (x : quantityToCount) {
                                    if (count < quantity){                              
                                        if (itemInList.markForOffer()) {  
                                            count++;
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }

    return result;
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy