/* * eGov suite of products aim to improve the internal efficiency,transparency, * accountability and the service delivery of the government organizations. * * Copyright (C) <2015> eGovernments Foundation * * The updated version of eGov suite of products as by eGovernments Foundation * is available at http://www.egovernments.org * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see http://www.gnu.org/licenses/ or * http://www.gnu.org/licenses/gpl.html . * * In addition to the terms of the GPL license to be adhered to in using this * program, the following additional terms are to be complied with: * * 1) All versions of this program, verbatim or modified must carry this * Legal Notice. * * 2) Any misrepresentation of the origin of the material is prohibited. It * is required that all modified versions of this material be marked in * reasonable ways as different from the original version. * * 3) This license does not grant any rights to any user of the program * with regards to rights under trademark law for use of the trade names * or trademarks of eGovernments Foundation. * * In case of any queries, you can reach eGovernments Foundation at contact@egovernments.org. */ package org.egov.infra.web.struts.actions.workflow; import org.apache.struts2.convention.annotation.ParentPackage; import org.egov.infra.admin.master.entity.Department; import org.egov.infra.web.struts.actions.BaseFormAction; import org.egov.infra.workflow.entity.WorkflowTypes; import org.egov.infra.workflow.matrix.entity.WorkFlowMatrix; import org.egov.infra.workflow.matrix.entity.WorkFlowMatrixDetails; import org.egov.infra.workflow.matrix.service.WorkFlowMatrixService; import org.egov.pims.commons.Designation; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import java.math.BigDecimal; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; import java.util.List; @ParentPackage("egov") public class WorkFlowMatrixAction extends BaseFormAction { private static final long serialVersionUID = 1L; public WorkFlowMatrix workFlowMatrix = new WorkFlowMatrix(); private static final Logger LOGGER = LoggerFactory.getLogger(WorkFlowMatrixAction.class); private String mode; private Boolean amountRule; private Date fromDate; private Date toDate; private BigDecimal fromAmount; private BigDecimal toAmount; private String additionalRule; private Long objectType; private String[] department; private String[] departmentSelected; private String additionalRuleSelected; private List<Department> departmentList = new ArrayList<Department>(); private List<WorkflowTypes> objectList = new ArrayList<WorkflowTypes>(); private List<String> additionlRuleList = new ArrayList(); private WorkFlowMatrixService workFlowMatrixService; private Long objectTypeid; private List additionalRuleList; private List<WorkFlowMatrixDetails> workFlowMatrixDetails = new ArrayList<WorkFlowMatrixDetails>(); private List<WorkFlowMatrixDetails> workFlowMatrixRejectDetails = new ArrayList<WorkFlowMatrixDetails>(); private List<Designation> designationList = new ArrayList(); private List stateList = new ArrayList(); private List statusList = new ArrayList(); private List buttonList = new ArrayList(); private List actionList = new ArrayList(); private List<WorkFlowMatrixDetails> viewList = new ArrayList<WorkFlowMatrixDetails>(); private String objectTypeView; private Date fromDateView; private Date toDateView; private BigDecimal fromQtyView; private BigDecimal toQtyView; private String additionalRuleView; private String searchAction; private Date modifyToDate; private Date legacyDate; private final SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); private String departmentstring; private WorkFlowMatrixDetails rejectionDetail; public static final String REJECTED = "Rejected"; public static final String DEFAULT = "ANY"; public static final String SEARCH = "search"; public static final String RESULTS = "results"; public static final String VIEW = "view"; public static final String MODIFY = "modify"; public static final String OBJECTTYPE = "ObjectType"; public static final String ADDITIONALRULE = "AdditionalRule"; public static final String FROMDATE = "FromDate"; public static final String TODATE = "ToDate"; public static final String FROMAMOUNT = "FromAmount"; public static final String TOAMOUNT = "ToAmount"; public static final String DEPARTMENTS = "Departments"; public static final String MODIFYDATE = "ModifyDate"; @Override public void prepare() { LOGGER.info("Prepare Method is called"); super.prepare(); final Department anyDept = new Department(); anyDept.setName(DEFAULT); anyDept.setCode(DEFAULT); this.departmentList = this.workFlowMatrixService.getdepartmentList(); this.departmentList.add(anyDept); this.objectList = this.workFlowMatrixService.getobjectTypeList(); addDropdownData("objectTypeList", this.objectList); addDropdownData("departmentList", this.departmentList); if (getObjectType() != null) { this.additionlRuleList = this.workFlowMatrixService.getAdditionalRulesforObject(getObjectType()); this.stateList = this.workFlowMatrixService.getDetailsforObject(getObjectType()).get("StateList"); this.statusList = this.workFlowMatrixService.getDetailsforObject(getObjectType()).get("StatusList"); this.buttonList = this.workFlowMatrixService.getDetailsforObject(getObjectType()).get("ButtonsList"); this.actionList = this.workFlowMatrixService.getDetailsforObject(getObjectType()).get("ActionsList"); } this.designationList = this.workFlowMatrixService.getdesignationList(); addDropdownData("additionalRuleList", this.additionlRuleList); addDropdownData("stateList", this.stateList); addDropdownData("statusList", this.statusList); addDropdownData("buttonList", this.buttonList); addDropdownData("designationList", this.designationList); addDropdownData("actionList", this.actionList); LOGGER.info("Prepare Method Ended"); } @Override public Object getModel() { return null; } /** * This method displays the create workflow matrix screen * @return */ public String newForm() { setAmountRule(Boolean.FALSE); return NEW; } /** * This method displays the view workflow matrix screen * @return */ public String viewForm() { setMode(SEARCH); return SEARCH; } /** * This method returns list of workflowmatrixdetails containing workflowmatrix objects * @return */ public String viewMatrixResults() { LOGGER.info("viewMatrixResults Method is called"); final HashMap workflowheaderparams = getHeaderParams(); getWorkFlowMatrixObject(workflowheaderparams); setMode(RESULTS); LOGGER.info("viewMatrixResults Method is ended"); return SEARCH; } /** * This method checks for any existing matrix (validation for duplicates) for the enterd objecttype,date,fromqty,toqty and department and returns matrixdetails table on success else displays error message * @return */ public String buildWorkflow() { LOGGER.info("buildWorkflow Method is called"); setDepartmentSelected(getDepartment()); setAdditionalRuleSelected(getAdditionalRule()); if (!checkEistingMatrix()) { addActionError("WorkFlow already exists for " + getDepartmentstring() + " departments"); return NEW; } final SimpleDateFormat dateFormat = new SimpleDateFormat("ddMMyyyy"); Date formatfromDate = null; Date formatCurrentDate = null; try { formatCurrentDate = dateFormat.parse(dateFormat.format(new Date())); formatfromDate = dateFormat.parse(dateFormat.format(getFromDate())); } catch (final ParseException e) { } if (formatfromDate.before(formatCurrentDate) && getDepartment().length > 1) { addActionError("Only one department can be selected if you are entering matrix for older dates "); return NEW; } if (formatfromDate.before(formatCurrentDate)) { if (!checkExistingMatrixforLegacy()) { final Calendar calendar = Calendar.getInstance(); calendar.setTime(getLegacyDate()); calendar.add(Calendar.DAY_OF_YEAR, -1); addActionMessage("A workflow is already present from " + this.sdf.format(getLegacyDate()) + ". The workflow you are about to add will be valid for records created between " + this.sdf.format(getFromDate()) + " and " + this.sdf.format(calendar.getTime())); } } setMode(EDIT); this.workFlowMatrixDetails.add(new WorkFlowMatrixDetails()); this.workFlowMatrixRejectDetails.add(new WorkFlowMatrixDetails()); LOGGER.info("buildWorkflow Method is ended"); return NEW; } /** * This method deletes the workflow matrix object * @return */ private void deleteWorkFlowMatrixObject(final HashMap workflowsearchparams) { this.workFlowMatrixService.deleteWorkFlowforObject(workflowsearchparams); } /** * This method checks for any existing matrix (validation for duplicates) for the enterd objecttype,date,fromqty,toqty and department and returns true if none found else returns false * @return */ private boolean checkEistingMatrix() { LOGGER.info("checkEistingMatrix Method is called"); final HashMap workflowheaderparams = getHeaderParams(); final List checkmatrixList = this.workFlowMatrixService.checkIfMatrixExists(workflowheaderparams); if (checkmatrixList == null) { return true; } else { final StringBuffer departmentString = new StringBuffer(); for (final Long matrixid : (List<Long>) checkmatrixList) { ; if (!new String(departmentString).contains(this.workFlowMatrixService.getWorkFlowObjectbyId(matrixid).getDepartment())) { departmentString.append(" "); departmentString.append(this.workFlowMatrixService.getWorkFlowObjectbyId(matrixid).getDepartment()); departmentString.append(","); } } ; setDepartmentstring(departmentString.substring(0, departmentString.length() - 1)); LOGGER.info("checkEistingMatrix Method is ended"); return false; } } /** * This method checks for any existing matrix for legacy date, for the entered objecttype,date,fromqty,toqty and department and returns true if none found else returns false * @return */ private boolean checkExistingMatrixforLegacy() { LOGGER.info("checkExistingMatrixforLegacy Method is called"); final HashMap workflowheaderparams = getHeaderParams(); setLegacyDate(this.workFlowMatrixService.checkLegacyMatrix(workflowheaderparams)); LOGGER.info("checkExistingMatrixforLegacy Method is ended"); if (this.legacyDate == null) { return true; } else { return false; } } /** * This method gets the additional rules defined for the objecttype in WorkFlowAdditionalRule * @return */ public String getAdditionalRuleforObjecttype() { this.additionalRuleList = this.workFlowMatrixService.getAdditionalRulesforObject(getObjectTypeid()); return "additionalRule"; } /** * This method creates the workflow matrix for the selected objecttype * @return */ public String createWorkFlowforobjects() { LOGGER.info("createWorkFlowforobjects Method is called"); final List<WorkFlowMatrixDetails> matrixList = getWorkFlowMatrixDetails(); Collections.sort(matrixList); prepareWorkFlowMatrixDetails(matrixList); setDepartmentSelected(getDepartment()); setAdditionalRuleSelected(getAdditionalRule()); setMode(VIEW); LOGGER.info("createWorkFlowforobjects Method is ended"); return NEW; } /** * This method is called to create the workflow matrix object from the workflowmatrixdetails entered and to persist in the db * @return */ private String prepareWorkFlowMatrixDetails(final List<WorkFlowMatrixDetails> matrixList) { LOGGER.info("prepareWorkFlowMatrixDetails Method is called"); final List<WorkFlowMatrix> actWorkFlowMatrixList = new LinkedList<WorkFlowMatrix>(); for (int i = 0; i < matrixList.size(); i++) { final WorkFlowMatrix wfMatrixObj = new WorkFlowMatrix(); wfMatrixObj.setFromDate(getFromDate()); if (getLegacyDate() != null) { setToDate((getLegacyDate())); } wfMatrixObj.setToDate(getToDate()); wfMatrixObj.setObjectType((this.workFlowMatrixService.getobjectTypebyId(getObjectType())).getType()); wfMatrixObj.setFromQty(getFromAmount()); wfMatrixObj.setToQty(getToAmount()); wfMatrixObj.setAdditionalRule(getAdditionalRule() != "-1" ? getAdditionalRule() : null); actWorkFlowMatrixList.add(wfMatrixObj); } if (getMode().equals(MODIFY)) { if (updateExistingMatrix()) { this.workFlowMatrixService.save(createActualWorkFlowMatrixDetails(actWorkFlowMatrixList, matrixList), getDepartment()); } else { deleteWorkFlowMatrixObject(getSearchParams()); this.workFlowMatrixService.save(createActualWorkFlowMatrixDetails(actWorkFlowMatrixList, matrixList), getDepartment()); // addActionMessage("The Matrix you are trying to modify was created today ,It has been deleted and a new matrix is created"); return NEW; } } else { this.workFlowMatrixService.save(createActualWorkFlowMatrixDetails(actWorkFlowMatrixList, matrixList), getDepartment()); } LOGGER.info("prepareWorkFlowMatrixDetails Method is ended"); return NEW; } /** * This method is called to create the workflow matrix object from the workflowmatrixdetails entered * @return */ private List<WorkFlowMatrix> createActualWorkFlowMatrixDetails(final List<WorkFlowMatrix> ActualwfMatrixObjList, final List<WorkFlowMatrixDetails> matrixList) { LOGGER.info("createActualWorkFlowMatrixDetails Method is called"); for (int i = 0; i < ActualwfMatrixObjList.size(); i++) { final WorkFlowMatrix wfMatrixObj = ActualwfMatrixObjList.get(i); wfMatrixObj.setNextState(matrixList.get(i).getState()); wfMatrixObj.setNextAction(matrixList.get(i).getAction()); wfMatrixObj.setNextDesignation(matrixList.get(i).getDesignationString()); wfMatrixObj.setNextStatus(matrixList.get(i).getStatus()); wfMatrixObj.setValidActions(matrixList.get(i).getButtonString()); wfMatrixObj.setAdditionalRule(!getAdditionalRule().equals("-1") ? getAdditionalRule() : null); if (i == 0) { wfMatrixObj.setCurrentState("NEW"); wfMatrixObj.setCurrentStatus(matrixList.get(i).getStatus()); } else { wfMatrixObj.setCurrentState(ActualwfMatrixObjList.get(i - 1).getNextState()); wfMatrixObj.setCurrentStatus(ActualwfMatrixObjList.get(i - 1).getNextStatus()); wfMatrixObj.setPendingActions(ActualwfMatrixObjList.get(i - 1).getNextAction()); wfMatrixObj.setCurrentDesignation(ActualwfMatrixObjList.get(i - 1).getNextDesignation()); } } if (ActualwfMatrixObjList.size() > 1) { if (getWorkFlowMatrixRejectDetails().get(0).getRejectAction() == null) { final WorkFlowMatrix matrixforReject = ActualwfMatrixObjList.get(0).clone(); matrixforReject.setCurrentState(REJECTED); ActualwfMatrixObjList.add(matrixforReject); } else { final List<WorkFlowMatrix> RejectionList = new ArrayList(); final List<WorkFlowMatrixDetails> matrixDetList = getWorkFlowMatrixRejectDetails(); if (matrixDetList.size() > 0) { for (int i = 0; i < matrixDetList.size(); i++) { final WorkFlowMatrix wfMatrixObj = new WorkFlowMatrix(); wfMatrixObj.setFromDate(getFromDate()); if (getLegacyDate() != null) { setToDate((getLegacyDate())); } wfMatrixObj.setToDate(getToDate()); wfMatrixObj.setObjectType((this.workFlowMatrixService.getobjectTypebyId(getObjectType())).getType()); wfMatrixObj.setFromQty(getFromAmount()); wfMatrixObj.setToQty(getToAmount()); wfMatrixObj.setAdditionalRule(!getAdditionalRule().equals("-1") ? getAdditionalRule() : null); if (i == 0) { wfMatrixObj.setCurrentState("Rejected"); } else { wfMatrixObj.setCurrentState(RejectionList.get(i - 1).getNextState()); wfMatrixObj.setCurrentStatus(RejectionList.get(i - 1).getNextStatus()); wfMatrixObj.setPendingActions(RejectionList.get(i - 1).getNextAction()); wfMatrixObj.setCurrentDesignation(RejectionList.get(i - 1).getNextDesignation()); } wfMatrixObj.setNextDesignation(matrixDetList.get(i).getRejectdesignationString()); wfMatrixObj.setNextAction(matrixDetList.get(i).getRejectAction()); wfMatrixObj.setNextState(matrixDetList.get(i).getRejectState()); wfMatrixObj.setNextStatus(matrixDetList.get(i).getRejectStatus()); wfMatrixObj.setValidActions(matrixDetList.get(i).getRejectbuttonString()); RejectionList.add(wfMatrixObj); } } ; ActualwfMatrixObjList.addAll(RejectionList); } } LOGGER.info("createActualWorkFlowMatrixDetails Method is ended"); return ActualwfMatrixObjList; } /** * This method is called to get the workflowmatrixdetails containing workflowmatrix objects * @return */ private List<WorkFlowMatrixDetails> getWorkFlowMatrixObject(final HashMap<String, String> workFlowObjectMap) { this.viewList = this.workFlowMatrixService.getWorkFlowMatrixObjectForView(workFlowObjectMap); return this.viewList; } /** * This method is called to display the modify screen for the selected objecttype,department,date,from and to amount * @return */ public String prepareModifyForm() { LOGGER.info("prepareModifyForm Method is called"); final HashMap workflowsearchparams = getSearchParams(); setDepartmentSelected(getDepartment()); setAdditionalRuleSelected((String) workflowsearchparams.get("AdditionalRule")); if (workflowsearchparams.get("FromAmount") != null) { setFromAmount((BigDecimal) (workflowsearchparams.get("FromAmount"))); setToAmount((BigDecimal) (workflowsearchparams.get("ToAmount"))); setAmountRule(Boolean.TRUE); } else { setAmountRule(Boolean.FALSE); } final List<WorkFlowMatrix> matrixList = this.workFlowMatrixService.getWorkFlowforObjectforModify(workflowsearchparams); int sublistIndex = matrixList.size(); for (int i = 0; i < matrixList.size(); i++) { if (matrixList.get(i).getNextAction().equals("END")) { sublistIndex = i; } } List<WorkFlowMatrixDetails> workFlowList = new LinkedList(); List<WorkFlowMatrixDetails> rejectionList = new LinkedList(); workFlowList = this.workFlowMatrixService.prepareWorkFlowMatrixDetailsList(matrixList.subList(0, sublistIndex + 1), workFlowList, Boolean.TRUE); rejectionList = this.workFlowMatrixService.prepareWorkFlowMatrixDetailsList(matrixList.subList(sublistIndex + 1, matrixList.size()), rejectionList, Boolean.FALSE); if (rejectionList.isEmpty()) { rejectionList.add(new WorkFlowMatrixDetails()); } this.workFlowMatrixDetails.addAll(workFlowList); setMode(MODIFY); setModifyToDate(new Date()); setFromDate(new Date()); this.workFlowMatrixRejectDetails.addAll(rejectionList); LOGGER.info("prepareModifyForm Method is ended"); return NEW; } /** * This method is called to delete the workflow matrix the selected objecttype,department,date,from and to amount * @return */ public String deleteWorkFlowMatrix() { LOGGER.info("deleteWorkFlowMatrix Method is called"); final HashMap workflowsearchparams = getSearchParams(); deleteWorkFlowMatrixObject(workflowsearchparams); final HashMap workflowheaderparams = getHeaderParams(); getWorkFlowMatrixObject(workflowheaderparams); setMode(RESULTS); addActionMessage("The Matrix was successfully deleted"); LOGGER.info("deleteWorkFlowMatrix Method is ended"); return "search"; } /** * This method is called to modify the existing workflow matrix(To date is set)during the modify. * @return */ private Boolean updateExistingMatrix() { final HashMap workflowheaderparams = getSearchParams(); return this.workFlowMatrixService.updateWorkFlowforObject(workflowheaderparams); } /** * This method is called to get all the parameters entered from the create and search screens * @return */ private HashMap getHeaderParams() { LOGGER.info("getHeaderParams Method is called"); final HashMap workflowheaderparams = new HashMap(); workflowheaderparams.put(OBJECTTYPE, getObjectType()); workflowheaderparams.put(ADDITIONALRULE, getAdditionalRule()); workflowheaderparams.put(FROMDATE, getFromDate()); workflowheaderparams.put(TODATE, getToDate()); workflowheaderparams.put(FROMAMOUNT, getFromAmount()); workflowheaderparams.put(TOAMOUNT, getToAmount()); workflowheaderparams.put(DEPARTMENTS, getDepartment()); workflowheaderparams.put(MODIFYDATE, getModifyToDate()); LOGGER.info("getHeaderParams Method is ended"); return workflowheaderparams; } /** * This method is called to get all the parameters entered from the search screens which are passed as hidden values * @return */ private HashMap getSearchParams() { LOGGER.info("getSearchParams Method is called"); final HashMap workflowsearchparams = new HashMap(); workflowsearchparams.put(OBJECTTYPE, getObjectTypeView()); workflowsearchparams.put(ADDITIONALRULE, getAdditionalRuleView()); workflowsearchparams.put(FROMDATE, getFromDateView()); workflowsearchparams.put(TODATE, getToDateView()); workflowsearchparams.put(FROMAMOUNT, getFromQtyView()); workflowsearchparams.put(TOAMOUNT, getToQtyView()); workflowsearchparams.put(DEPARTMENTS, getDepartment()); workflowsearchparams.put(MODIFYDATE, getModifyToDate()); LOGGER.info("getSearchParams Method is ended"); return workflowsearchparams; } public String getSearchAction() { return this.searchAction; } public void setSearchAction(final String searchAction) { this.searchAction = searchAction; } public String getObjectTypeView() { return this.objectTypeView; } public void setObjectTypeView(final String objectTypeView) { this.objectTypeView = objectTypeView; } public Date getFromDateView() { return this.fromDateView; } public void setFromDateView(final Date fromDateView) { this.fromDateView = fromDateView; } public Date getToDateView() { return this.toDateView; } public void setToDateView(final Date toDateView) { this.toDateView = toDateView; } public String getAdditionalRuleView() { return this.additionalRuleView; } public void setAdditionalRuleView(final String additionalRuleView) { this.additionalRuleView = additionalRuleView; } public List<WorkFlowMatrixDetails> getViewList() { return this.viewList; } public void setViewList(final List<WorkFlowMatrixDetails> viewList) { this.viewList = viewList; } public List getButtonList() { return this.buttonList; } public void setButtonList(final List buttonList) { this.buttonList = buttonList; } public List getStatusList() { return this.statusList; } public void setStatusList(final List statusList) { this.statusList = statusList; } public List getStateList() { return this.stateList; } public void setStateList(final List stateList) { this.stateList = stateList; } public List<Designation> getDesignationList() { return this.designationList; } public void setDesignationList(final List<Designation> designationList) { this.designationList = designationList; } public List<WorkFlowMatrixDetails> getWorkFlowMatrixDetails() { return this.workFlowMatrixDetails; } public void setWorkFlowMatrixDetails(final List<WorkFlowMatrixDetails> workFlowMatrixDetails) { this.workFlowMatrixDetails = workFlowMatrixDetails; } public List getAdditionalRuleList() { return this.additionalRuleList; } public void setAdditionalRuleList(final List additionalRuleList) { this.additionalRuleList = additionalRuleList; } public Long getObjectTypeid() { return this.objectTypeid; } public void setObjectTypeid(final Long objectTypeid) { this.objectTypeid = objectTypeid; } public String[] getDepartmentSelected() { return this.departmentSelected; } public void setDepartmentSelected(final String[] departmentSelected) { this.departmentSelected = departmentSelected; } public String getAdditionalRuleSelected() { return this.additionalRuleSelected; } public void setAdditionalRuleSelected(final String additionalRuleSelected) { this.additionalRuleSelected = additionalRuleSelected; } public WorkFlowMatrixService getWorkFlowMatrixService() { return this.workFlowMatrixService; } public void setWorkFlowMatrixService(final WorkFlowMatrixService workFlowMatrixService) { this.workFlowMatrixService = workFlowMatrixService; } public String[] getDepartment() { return this.department; } public void setDepartment(final String[] department) { this.department = department; } public String getAdditionalRule() { return this.additionalRule; } public void setAdditionalRule(final String additionalRule) { this.additionalRule = additionalRule; } public Long getObjectType() { return this.objectType; } public void setObjectType(final Long objectType) { this.objectType = objectType; } public Boolean getAmountRule() { return this.amountRule; } public void setAmountRule(final Boolean amountRule) { this.amountRule = amountRule; } public Date getFromDate() { return this.fromDate; } public void setFromDate(final Date fromDate) { this.fromDate = fromDate; } public Date getToDate() { return this.toDate; } public void setToDate(final Date toDate) { this.toDate = toDate; } public BigDecimal getFromAmount() { return this.fromAmount; } public void setFromAmount(final BigDecimal fromAmount) { this.fromAmount = fromAmount; } public BigDecimal getToAmount() { return this.toAmount; } public void setToAmount(final BigDecimal toAmount) { this.toAmount = toAmount; } public String getMode() { return this.mode; } public void setMode(final String mode) { this.mode = mode; } public WorkFlowMatrix getWorkFlowMatrix() { return this.workFlowMatrix; } public void setWorkFlowMatrix(final WorkFlowMatrix workFlowMatrix) { this.workFlowMatrix = workFlowMatrix; } public BigDecimal getFromQtyView() { return this.fromQtyView; } public void setFromQtyView(final BigDecimal fromQtyView) { this.fromQtyView = fromQtyView; } public BigDecimal getToQtyView() { return this.toQtyView; } public void setToQtyView(final BigDecimal toQtyView) { this.toQtyView = toQtyView; } public Date getModifyToDate() { return this.modifyToDate; } public void setModifyToDate(final Date modifyToDate) { this.modifyToDate = modifyToDate; } public Date getLegacyDate() { return this.legacyDate; } public void setLegacyDate(final Date legacyDate) { this.legacyDate = legacyDate; } public WorkFlowMatrixDetails getRejectionDetail() { return this.rejectionDetail; } public void setRejectionDetail(final WorkFlowMatrixDetails rejectionDetail) { this.rejectionDetail = rejectionDetail; } public String getDepartmentstring() { return this.departmentstring; } public void setDepartmentstring(final String departmentstring) { this.departmentstring = departmentstring; } public List<WorkFlowMatrixDetails> getWorkFlowMatrixRejectDetails() { return this.workFlowMatrixRejectDetails; } public void setWorkFlowMatrixRejectDetails(final List<WorkFlowMatrixDetails> workFlowMatrixRejectDetails) { this.workFlowMatrixRejectDetails = workFlowMatrixRejectDetails; } }