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.sale.Product; import com.norteksoft.acs.entity.sale.SalesModule; import com.norteksoft.acs.service.authorization.BusinessSystemManager; import com.norteksoft.acs.service.sale.ProductManager; import com.norteksoft.acs.service.sale.SalesModuleManager; import com.norteksoft.product.orm.Page; import com.norteksoft.product.util.CollectionUtils; /** * ProductAction.java * @author Administrator */ @ParentPackage("default") @Results( { @Result(name = CRUDActionSupport.RELOAD, location = "/sale/product.action", type="redirect") }) public class ProductAction extends CRUDActionSupport<Product>{ private static final long serialVersionUID = 1L; private ProductManager productManager; private Page<Product> page = new Page<Product>(); private Product entity; private Long id; private List<Long> salesModuleIds; private List<Long> checkedSalesModuleIds; private List<SalesModule> allSalesModules; private SalesModuleManager salesModuleManager; private BusinessSystemManager businessSystemManager; private List<BusinessSystem> allSystems; private Long systemId; @Override public String delete() throws Exception { productManager.deleteProduct(id); return RELOAD; } @Override public String list() throws Exception { productManager.getAllProduct(page); return SUCCESS; } @Override public String input() throws Exception { return INPUT; } @SuppressWarnings("unchecked") @Override protected void prepareModel() throws Exception { if(id == null){ entity = new Product(); allSystems = businessSystemManager.getAllBusiness(); }else{ entity = productManager.getProduct(id); checkedSalesModuleIds = CollectionUtils.fetchPropertyToList(entity.getSalesModuels(), "id"); allSystems = new ArrayList<BusinessSystem>(); BusinessSystem bs = businessSystemManager.getBusiness(entity.getSystemId()); allSystems.add(bs); } } @Override public String save() throws Exception { CollectionUtils.mergeByCheckedIds(entity.getSalesModuels(), salesModuleIds, SalesModule.class); productManager.saveProduct(entity); return RELOAD; } public Product getModel() { return entity; } @Required public void setSalesModuleManager(SalesModuleManager salesModuleManager) { this.salesModuleManager = salesModuleManager; } @Required public void setProductManager(ProductManager productManager) { this.productManager = productManager; } public Page<Product> getPage() { return page; } public void setPage(Page<Product> page) { this.page = page; } public List<Long> getSalesModuleIds() { return salesModuleIds; } public void setSalesModuleIds(List<Long> salesModuleIds) { this.salesModuleIds = salesModuleIds; } public List<Long> getCheckedSalesModuleIds() { return checkedSalesModuleIds; } public void setCheckedSalesModuleIds(List<Long> checkedSalesModuleIds) { this.checkedSalesModuleIds = checkedSalesModuleIds; } public List<SalesModule> getAllSalesModules() { return allSalesModules; } public void setAllSalesModules(List<SalesModule> allSalesModules) { this.allSalesModules = allSalesModules; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getSalesModules(){ allSalesModules = salesModuleManager.getSalesModulesBySystem(systemId); return INPUT; } public Long getSystemId() { return systemId; } public void setSystemId(Long systemId) { this.systemId = systemId; } public List<BusinessSystem> getAllSystems() { return allSystems; } public void setAllSystems(List<BusinessSystem> allSystems) { this.allSystems = allSystems; } @Required public void setBusinessSystemManager(BusinessSystemManager businessSystemManager) { this.businessSystemManager = businessSystemManager; } }