package com.norteksoft.acs.web.sale; import java.util.ArrayList; import java.util.List; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.springframework.beans.factory.annotation.Required; import com.norteksoft.acs.base.web.struts2.CRUDActionSupport; import com.norteksoft.acs.entity.authorization.BusinessSystem; import com.norteksoft.acs.entity.authorization.Function; import com.norteksoft.acs.entity.sale.SalesModule; import com.norteksoft.acs.service.authorization.BusinessSystemManager; import com.norteksoft.acs.service.authorization.FunctionManager; import com.norteksoft.acs.service.sale.SalesModuleManager; import com.norteksoft.product.orm.Page; import com.norteksoft.product.util.CollectionUtils; /** * SalesModuleAction.java * @author Administrator */ @ParentPackage("default") @Results( { @Result(name = CRUDActionSupport.RELOAD, location = "/sale/sales-module.action", type="redirect") }) public class SalesModuleAction extends CRUDActionSupport<SalesModule>{ private static final long serialVersionUID = 1L; private SalesModuleManager salesModuleManager; private Page<SalesModule> page = new Page<SalesModule>(); private SalesModule entity; private FunctionManager functionManager; private List<Function> allFunctions; private List<Long> checkedFunctionIds; private List<Long> functionIds; private List<BusinessSystem> allSystems; private BusinessSystemManager businessSystemManager; private Long systemId; private Long id; @Override public String delete() throws Exception { salesModuleManager.deleteSalesModule(id); return RELOAD; } @Override public String list() throws Exception { page = salesModuleManager.getAllSalesMdule(page); return SUCCESS; } @SuppressWarnings("unchecked") @Override protected void prepareModel() throws Exception { if(id != null){ entity = salesModuleManager.getSalesModule(id); checkedFunctionIds = CollectionUtils.fetchPropertyToList(entity.getFunctions(), "id"); allFunctions = functionManager.getFunctionsBySystem(entity.getSystemId()); allSystems = new ArrayList<BusinessSystem>(); BusinessSystem bs = businessSystemManager.getBusiness(entity.getSystemId()); allSystems.add(bs); }else{ entity = new SalesModule(); allSystems = businessSystemManager.getAllBusiness(); } } @Override public String input() throws Exception { return INPUT; } @Override public String save() throws Exception { CollectionUtils.mergeByCheckedIds(entity.getFunctions(), functionIds, Function.class); salesModuleManager.saveSalesModule(entity); return RELOAD; } public SalesModule getModel() { return entity; } @Required public void setFunctionManager(FunctionManager functionManager) { this.functionManager = functionManager; } @Required public void setSalesModuleManager(SalesModuleManager salesModuleManager) { this.salesModuleManager = salesModuleManager; } public List<Long> getCheckedFunctionIds() { return checkedFunctionIds; } public void setCheckedFunctionIds(List<Long> checkedFunctionIds) { this.checkedFunctionIds = checkedFunctionIds; } public List<Long> getFunctionIds() { return functionIds; } public void setFunctionIds(List<Long> functionIds) { this.functionIds = functionIds; } public List<Function> getAllFunctions() { return allFunctions; } public void setAllFunctions(List<Function> allFunctions) { this.allFunctions = allFunctions; } public Page<SalesModule> getPage() { return page; } public void setPage(Page<SalesModule> page) { this.page = page; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public List<BusinessSystem> getAllSystems() { return allSystems; } public void setAllSystems(List<BusinessSystem> allSystems) { this.allSystems = allSystems; } @Required public void setBusinessSystemManager(BusinessSystemManager businessSystemManager) { this.businessSystemManager = businessSystemManager; } public Long getSystemId() { return systemId; } public void setSystemId(Long systemId) { this.systemId = systemId; } public String getFunctions() throws Exception{ allFunctions = functionManager.getFunctionsBySystem(systemId); return INPUT; } }