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

in.succinct.plugins.ecommerce.db.model.inventory.SkuImpl Maven / Gradle / Ivy

The newest version!
package in.succinct.plugins.ecommerce.db.model.inventory;

import com.venky.core.math.DoubleHolder;
import com.venky.core.util.ObjectHolder;
import com.venky.swf.db.table.ModelImpl;

import java.util.ArrayList;
import java.util.List;

public class SkuImpl extends ModelImpl {
    public SkuImpl(Sku sku){
        super(sku);
    }
    public SkuImpl(){
        super();
    }


    private ObjectHolder activeDiscountPlan = null;
    public SkuDiscountPlan getActiveDiscountPlan(){
        if (activeDiscountPlan == null){
            activeDiscountPlan = new ObjectHolder<>(null);
            List plans = getProxy().getDiscountPlans();
            //The default order by is @ORDER_BY("SKU_ID , EFFECTIVE_FROM DESC")
            if (plans.size() > 0){
                activeDiscountPlan.set(plans.get(0));
            }
        }
        return activeDiscountPlan.get();
    }

    public Long getActiveDiscountPlanId(){
        SkuDiscountPlan active = getActiveDiscountPlan();
        if (active != null){
            return active.getId();
        }
        return null;
    }
    public void setActiveDiscountPlanId(Long id){

    }

    public List getActiveDiscountPlans(){
        List plans = getProxy().getDiscountPlans();
        List activeSkuDiscountPlans = new ArrayList<>();
        if (!plans.isEmpty()){
            activeSkuDiscountPlans.add(plans.get(0).getRawRecord().getAsProxy(ActiveSkuDiscountPlan.class));
        }
        return activeSkuDiscountPlans;
    }

    public double getGeneralDiscountPct(){
        Sku sku = getProxy();
        SkuDiscountPlan plan = getActiveDiscountPlan();
        if (plan !=null){
            return plan.getGeneralDiscountPct();
        }
        return 0.0D;
    }

    public double getSellingPrice(){
        Sku sku = getProxy();
        SkuDiscountPlan plan = getActiveDiscountPlan();
        if (plan != null){
            return new DoubleHolder(sku.getMaxRetailPrice() * (1.0 - plan.getGeneralDiscountPct()/100.0),2).getHeldDouble().doubleValue();
        }
        return sku.getMaxRetailPrice();
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy