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

in.succinct.plugins.ecommerce.extensions.service.BeforeSaveServiceOrder Maven / Gradle / Ivy

The newest version!
package in.succinct.plugins.ecommerce.extensions.service;

import com.venky.core.util.ObjectUtil;
import com.venky.swf.db.Database;
import com.venky.swf.db.extensions.BeforeModelSaveExtension;
import in.succinct.plugins.ecommerce.db.model.service.ServiceOrder;
import in.succinct.plugins.ecommerce.db.model.service.ServiceOrderRemark;

import java.util.HashSet;
import java.util.Set;

public class BeforeSaveServiceOrder extends BeforeModelSaveExtension {
    static {
        registerExtension(new BeforeSaveServiceOrder());
    }
    @Override
    public void beforeSave(ServiceOrder model) {
        if (model.getFulfillmentStatus().equals(ServiceOrder.FULFILLMENT_STATUS_COMPLETE) && model.getRawRecord().isFieldDirty("FULFILLMENT_STATUS")){
            if (ObjectUtil.isVoid(model.getServicedById())){
                throw new RuntimeException("Please enter who serviced the request");
            }

            Set allowedUsers = new HashSet<>();
            model.getService().getServiceResources().forEach(sr->allowedUsers.add(sr.getUserId()));

            if (!allowedUsers.isEmpty() && !allowedUsers.contains(model.getServicedById())){
                throw new RuntimeException("Connect be serviced by " + model.getServicedBy().getLongName());
            }
        }
        if (model.getRawRecord().isFieldDirty("REMARKS") &&
                !model.getReflector().isVoid(model.getRemarks()) &&
                !model.getRawRecord().isNewRecord() && model.getId() > 0 ){
            ServiceOrderRemark remark = Database.getTable(ServiceOrderRemark.class).newRecord();
            remark.setServiceOrderId(model.getId());
            remark.setRemarks(model.getRemarks());
            remark.save();
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy