/* * 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.works.web.actions.reports; import org.apache.commons.lang.StringUtils; import org.apache.log4j.Logger; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.egov.commons.CChartOfAccounts; import org.egov.commons.CFinancialYear; import org.egov.commons.dao.ChartOfAccountsHibernateDAO; import org.egov.commons.dao.FinancialYearHibernateDAO; import org.egov.commons.dao.FunctionHibernateDAO; import org.egov.commons.dao.FundHibernateDAO; import org.egov.dao.budget.BudgetDetailsDAO; import org.egov.eis.service.AssignmentService; import org.egov.infra.reporting.engine.ReportConstants.FileFormat; import org.egov.infra.reporting.engine.ReportOutput; import org.egov.infra.reporting.engine.ReportRequest; import org.egov.infra.reporting.engine.ReportService; import org.egov.infra.utils.DateUtils; import org.egov.infra.web.struts.actions.BaseFormAction; import org.egov.infra.web.utils.EgovPaginatedList; import org.egov.infstr.search.SearchQuerySQL; import org.egov.infstr.services.Page; import org.egov.model.budget.BudgetGroup; import org.egov.pims.service.PersonalInformationService; import org.egov.works.services.WorkProgressAbstractReportService; import org.egov.works.services.WorksService; import org.egov.works.utils.WorksConstants; import org.egov.works.web.actions.estimate.AjaxEstimateAction; import org.hibernate.Query; import org.springframework.beans.factory.annotation.Autowired; import java.io.ByteArrayInputStream; import java.io.InputStream; import java.math.BigDecimal; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Locale; import java.util.Map; @Results({ @Result(name = ContractorwiseAbstractReportAction.PDF, type = "stream", location = "reportInputStream", params = { "inputName", "contractorwiseAbstractReport", "contentType", "application/pdf", "contentDisposition", "no-cache;filename=ContractorwiseAbstractReport.pdf" }), @Result(name = ContractorwiseAbstractReportAction.XLS, type = "stream", location = "reportInputStream", params = { "inputName", "contractorwiseAbstractReport", "contentType", "application/xls", "contentDisposition", "no-cache;filename=ContractorwiseAbstractReport.xls" }), @Result(name = "estimateXLS", type = "stream", location = "reportInputStream", params = { "inputName", "contractorwiseReport_Estimates", "contentType", "application/xls", "contentDisposition", "no-cache;filename=ContractorwiseReport_Estimates.xls" }), @Result(name = "estimatePDF", type = "stream", location = "reportInputStream", params = { "inputName", "contractorwiseReport_Estimates", "contentType", "application/pdf", "contentDisposition", "no-cache;filename=ContractorwiseReport_Estimates.pdf" }) }) @ParentPackage("egov") public class ContractorwiseAbstractReportAction extends BaseFormAction { private static final long serialVersionUID = 6545841427307931948L; private static final Logger LOGGER = Logger.getLogger(ContractorwiseAbstractReportAction.class); private static final String DEPT_WISE = "deptwise"; private String finYearId; private String finYearRange; private Date fromDate; private Date toDate; private Integer executingDepartment = -1; private Integer worksType = -1; private Integer worksSubType = -1; private Integer fund = -1;; private Integer function = -1; private Integer scheme = -1; private Integer subScheme = -1; @Autowired private AssignmentService assignmentService; @Autowired private FundHibernateDAO fundDao; @Autowired private FunctionHibernateDAO functionHibDao; @Autowired private FinancialYearHibernateDAO finHibernateDao; @Autowired private ChartOfAccountsHibernateDAO chartOfAccountsHibernateDAO; private static final String BUDGET_HEADS_APPCONFIG_KEY = "WORK_PROGRESS_ABSTRACT_RPT2_BUDGT_HEADS"; private String budgetHeadsAppConfValue = null; private WorksService worksService; private List<String> dropDownBudgetHeads; // This contains values from the // drop down private String depositCodesAppConfValue = null; private static final String DEPOSITCODES_APPCONFIG_KEY = "WORK_PROGRESS_ABSTRACT_RPT2_DEPOSIT_CODES"; private List<String> dropDownDepositCodes; private List<Long> allDepositCodes; private List<Long> allBudgetHeads; // This contains values from the drop // down private String currentFinancialYearId; private String finYearRangeStr; private String subHeader; private String contractorName = ""; private Long contractorId; private Long gradeId; private List<String> budgetHeads; private List<Long> budgetHeadIds; private List<Long> depositCodeIds; private BudgetDetailsDAO budgetDetailsDAO; private final SimpleDateFormat dateFormatter = new SimpleDateFormat("dd-MMM-yyyy", Locale.getDefault()); private List<ContractorwiseReportBean> resultList = new LinkedList<ContractorwiseReportBean>(); private String resultStatus = "beforeSearch"; public static final String PDF = "PDF"; public static final String XLS = "XLS"; private InputStream reportInputStream; private ReportService reportService; private final String JASPER_NAME = "contractorwiseAbstractReport"; private String searchType = ""; private EgovPaginatedList paginatedList; private Integer page = 1; private Integer pageSize = 30; private final List<CommonDrillDownReportBean> commonBeanList = new ArrayList<CommonDrillDownReportBean>(); private List<Object> paramList; public WorkProgressAbstractReportService workProgressAbstractReportService; private String budgetHeadsStr; private String depositCodesStr; private String depositCodeIdsStr; private String budgetHeadIdsStr; private String reportMessage; @Override public Object getModel() { return null; } public String beforeSearch() { return DEPT_WISE; } @Override @SuppressWarnings("unchecked") public void prepare() { super.prepare(); final List<CFinancialYear> finYrList = worksService.getAllFinancialYearsForWorks(); addDropdownData("finYearList", finYrList); addDropdownData("executingDepartmentList", getPersistenceService().findAllBy("from Department")); addDropdownData("worksTypeList", getPersistenceService().findAllBy("from EgwTypeOfWork etw1 where etw1.parentid is null")); final AjaxEstimateAction ajaxEstimateAction = new AjaxEstimateAction(); ajaxEstimateAction.setPersistenceService(getPersistenceService()); ajaxEstimateAction.setAssignmentService(assignmentService); populateCategoryList(ajaxEstimateAction, getWorksType() == -1 ? false : getWorksType() != -1); addDropdownData("fundList", fundDao.findAllActiveIsLeafFunds()); addDropdownData("functionList", functionHibDao.findAll()); addDropdownData("schemeList", getPersistenceService().findAllBy("from Scheme sc where sc.isactive=true")); final AjaxWorkProgressAction ajaxWorkProgressAction = new AjaxWorkProgressAction(); populateSubSchemeList(ajaxWorkProgressAction, getScheme() != null); addDropdownData("budgetHeadList", getBudgetGroupsFromAppConfig()); addDropdownData("depositCodeList", getDepositCodesFromAppConfig()); addDropdownData( "allDepositCodeCOAList", getPersistenceService() .findAllBy( "select distinct(fd.coa) from FinancialDetail fd where fd.abstractEstimate in ( select woe.estimate from WorkOrderEstimate woe where woe.workOrder.egwStatus.code='APPROVED' ) order by name ")); addDropdownData( "allBudgetHeadList", getPersistenceService() .findAllBy( "select distinct(fd.budgetGroup) from FinancialDetail fd where fd.abstractEstimate in ( select woe.estimate from WorkOrderEstimate woe where woe.workOrder.egwStatus.code='APPROVED' ) order by name ")); final CFinancialYear financialYear = finHibernateDao.getFinYearByDate(new Date()); if (financialYear != null) currentFinancialYearId = financialYear.getId().toString(); finYearRangeStr = generateFinYrList(finYrList); addDropdownData("gradeList", getPersistenceService().findAllBy("from ContractorGrade order by upper(grade)")); if (dropDownBudgetHeads != null && dropDownBudgetHeads.size() > 0) generateBudgetHeads(); if (dropDownDepositCodes != null && dropDownDepositCodes.size() > 0) generateDepositCodes(); // All deposit codes and budget heads if (allDepositCodes != null && allDepositCodes.size() > 0) getDepositCodesFromAllDepositCodes(); if (allBudgetHeads != null && allBudgetHeads.size() > 0) getBudgetHeadsFromAllBudgetHeads(); setBudgetHeadIdsAndDepositCodeIds(); } private void setBudgetHeadIdsAndDepositCodeIds() { if (StringUtils.isNotBlank(budgetHeadsStr)) { budgetHeads = new ArrayList<String>(); budgetHeadIds = new ArrayList<Long>(); workProgressAbstractReportService.setBudgetHeadsFromString(budgetHeadsStr, budgetHeads, budgetHeadIds); } if (StringUtils.isNotBlank(depositCodesStr)) { depositCodeIds = new ArrayList<Long>(); workProgressAbstractReportService.setDepositCodesFromString(depositCodesStr, depositCodeIds); } if (StringUtils.isNotBlank(budgetHeadIdsStr)) { budgetHeads = new ArrayList<String>(); budgetHeadIds = new ArrayList<Long>(); workProgressAbstractReportService.setBudgetHeadsFromIdString(budgetHeadIdsStr, budgetHeads, budgetHeadIds); } if (StringUtils.isNotBlank(depositCodeIdsStr)) { depositCodeIds = new ArrayList<Long>(); workProgressAbstractReportService.setDepositCodesFromIdString(depositCodeIdsStr, depositCodeIds); } } private void formReportMessage() { final String dateStr = (String) persistenceService.getSession() .createSQLQuery(" select min(VIEW_TIMESTAMP) from EGW_WPREPORT_EST_WO_MVIEW ").list().get(0); reportMessage = getText("contractorwiseAbstractReport.data.message", new String[] { dateStr }); } public String search() { resultStatus = "afterSearch"; formReportMessage(); final String commonSearchFilter = constructSearchFilter(); final Map<String, String> queryMap = generateQuery(commonSearchFilter); final String query = queryMap.get("query"); final String countQuery = queryMap.get("count"); Page resPage; final List<Object> listWithRepeatedPramsForUnion = new LinkedList(); listWithRepeatedPramsForUnion.addAll(paramList); listWithRepeatedPramsForUnion.addAll(paramList); listWithRepeatedPramsForUnion.addAll(paramList); listWithRepeatedPramsForUnion.addAll(paramList); if (searchType.equals("")) { final SearchQuerySQL sqlQuery = new SearchQuerySQL(query, countQuery, listWithRepeatedPramsForUnion); resPage = sqlQuery.getPage(getPersistenceService(), page, pageSize); paginatedList = new EgovPaginatedList(resPage, sqlQuery.getCount(getPersistenceService())); populateData(paginatedList.getList()); if (paginatedList.getList() == null) paginatedList.setList(resultList); else { paginatedList.getList().clear(); paginatedList.getList().addAll(resultList); } } else if (searchType.equalsIgnoreCase("report")) { List<Object[]> wholeQueryList = null; final Query qry = getPersistenceService().getSession().createSQLQuery(query); for (int i = 0; i < listWithRepeatedPramsForUnion.size(); i++) qry.setParameter(i, listWithRepeatedPramsForUnion.get(i)); wholeQueryList = qry.list(); populateData(wholeQueryList); } return DEPT_WISE; } public String viewEstimatePDF() { setSearchType("report"); showEstimatesTakenUpDrillDown(); final Map<String, Object> reportParams = new HashMap<String, Object>(); reportParams.put("subHeader", subHeader + "\n" + reportMessage); reportParams.put("mainHeader", getText("contractorwiseAbstractReport.showTakenUpEst") + getContractorName()); final ReportRequest reportRequest = new ReportRequest("contractorwiseReport_Estimates", commonBeanList, reportParams); final ReportOutput reportOutput = reportService.createReport(reportRequest); if (reportOutput != null && reportOutput.getReportOutputData() != null) reportInputStream = new ByteArrayInputStream(reportOutput.getReportOutputData()); return "estimatePDF"; } public String viewEstimateXLS() { setSearchType("report"); showEstimatesTakenUpDrillDown(); final Map<String, Object> reportParams = new HashMap<String, Object>(); reportParams.put("subHeader", subHeader + "\n" + reportMessage); reportParams.put("mainHeader", getText("contractorwiseAbstractReport.showTakenUpEst") + getContractorName()); final ReportRequest reportRequest = new ReportRequest("contractorwiseReport_Estimates", commonBeanList, reportParams); reportRequest.setReportFormat(FileFormat.XLS); final ReportOutput reportOutput = reportService.createReport(reportRequest); if (reportOutput != null && reportOutput.getReportOutputData() != null) reportInputStream = new ByteArrayInputStream(reportOutput.getReportOutputData()); return "estimateXLS"; } private String getTakenUpQuery(final String commonSearchCriteriaQueryStr, final String finalBillType) { final StringBuffer query = new StringBuffer( " SELECT WORK_ORDER_CONTRACTOR_ID,WORK_ORDER_CONTRACTOR_NAME,WORK_ORDER_CONTRACTOR_CODE, " + " SUM(EST_COUNT) TAKEN_UP_EST_COUNT ,SUM(NVL(WORK_ORDER_WORKORDER_AMOUNT,0)) TAKEN_UP_WO_AMOUNT, " + " 0 COMPLETED_EST_COUNT,0 COMPLETED_PYMT_RLSD,0 IN_PROGRESS_EST_COUNT,0 IN_PROGRESS_NEGO_VAL ,0 IN_PROGRESS_PYMT_RLSD,0 NOT_STARTED_EST_COUNT,0 NOT_STARTED_WO_AMT," + " SUM(NVL(REV_WO_TAKEN_UP_AMT,0)) REV_WO_TAKEN_UP_AMT_SUM, 0 REV_WO_IN_PROGRESS_NEG_VAL_SUM, 0 REV_WO_NOT_STARTED_AMT_SUM " + " FROM (select WORK_ORDER_CONTRACTOR_ID , WORK_ORDER_CONTRACTOR_NAME, " + " WORK_ORDER_CONTRACTOR_CODE, COUNT(DISTINCT(ABS_EST_ID)) EST_COUNT , WORK_ORDER_ID, WORK_ORDER_WORKORDER_AMOUNT, " + " (SELECT SUM(NVL(INNER_VIEW.WORK_ORDER_WORKORDER_AMOUNT,0)) FROM EGW_WPREPORT_EST_WO_MVIEW INNER_VIEW WHERE INNER_VIEW.WORK_ORDER_PARENTID = OUTER_VIEW.WORK_ORDER_ID) REV_WO_TAKEN_UP_AMT " + " from EGW_WPREPORT_EST_WO_MVIEW OUTER_VIEW "); query.append(" where ABS_EST_PARENTID IS NULL AND WORK_ORDER_STATUS_CODE = 'APPROVED' " + commonSearchCriteriaQueryStr + " group by WORK_ORDER_CONTRACTOR_ID, WORK_ORDER_CONTRACTOR_NAME , " + " WORK_ORDER_CONTRACTOR_CODE,WORK_ORDER_ID,WORK_ORDER_WORKORDER_AMOUNT ) " + " group by WORK_ORDER_CONTRACTOR_ID, WORK_ORDER_CONTRACTOR_NAME , WORK_ORDER_CONTRACTOR_CODE "); return query.toString(); } private String getCompletedQuery(final String commonSearchCriteriaQueryStr, final String finalBillType) { final StringBuffer query = new StringBuffer(""); query.append(" SELECT WORK_ORDER_CONTRACTOR_ID,"); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE, 0 TAKEN_UP_EST_COUNT ,0 TAKEN_UP_WO_AMOUNT,"); query.append(" SUM(EST_COUNT) COMPLETED_EST_COUNT ,"); query.append( " SUM(PYMT_RELEASED_AMT) COMPLETED_PYMT_RLSD , 0 IN_PROGRESS_EST_COUNT,0 IN_PROGRESS_NEGO_VAL,0 IN_PROGRESS_PYMT_RLSD,0 NOT_STARTED_EST_COUNT,0 NOT_STARTED_WO_AMT, " + "0 REV_WO_TAKEN_UP_AMT_SUM, 0 REV_WO_IN_PROGRESS_NEG_VAL_SUM, 0 REV_WO_NOT_STARTED_AMT_SUM "); query.append(" FROM"); query.append(" (SELECT WORK_ORDER_CONTRACTOR_ID ,"); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE,"); query.append(" WORK_ORDER_ID,"); query.append(" COUNT(DISTINCT(ABS_EST_ID)) EST_COUNT ,"); query.append(" (SELECT SUM(NVL(bill_view.PMT_RLSD_TO_CONTRACTOR_FOR_WO,0))"); query.append(" FROM EGW_WPREPORT_EST_BILLS_MVIEW bill_view"); query.append(" WHERE bill_view.BILL_REG_BILLTYPE='" + finalBillType + "'"); query.append(" AND bill_view.WORK_ORDER_ID =WO_VIEW.WORK_ORDER_ID"); query.append(" AND bill_view.BILL_REG_BILLSTATUS='APPROVED'"); query.append(" ) AS PYMT_RELEASED_AMT"); query.append(" FROM EGW_WPREPORT_EST_WO_MVIEW WO_VIEW"); query.append(" WHERE WORK_ORDER_STATUS_CODE = 'APPROVED'"); query.append(" AND WORK_ORDER_ID IN"); query.append(" (SELECT bill_view.WORK_ORDER_ID"); query.append(" FROM EGW_WPREPORT_EST_BILLS_MVIEW bill_view"); query.append(" WHERE bill_view.BILL_REG_BILLTYPE='" + finalBillType + "'"); query.append(" AND bill_view.WORK_ORDER_ID =WO_VIEW.WORK_ORDER_ID"); query.append(" AND bill_view.BILL_REG_BILLSTATUS='APPROVED'"); query.append(" )"); query.append(" AND ABS_EST_PARENTID IS NULL " + commonSearchCriteriaQueryStr); query.append(" GROUP BY WORK_ORDER_CONTRACTOR_ID ,"); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE,"); query.append(" WORK_ORDER_ID"); query.append(" )"); query.append(" GROUP BY WORK_ORDER_CONTRACTOR_ID,"); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE"); return query.toString(); } private String getInProgressQuery(final String commonSearchCriteriaQueryStr, final String finalBillType) { final StringBuffer query = new StringBuffer(""); query.append(" SELECT WORK_ORDER_CONTRACTOR_ID , WORK_ORDER_CONTRACTOR_NAME,"); query.append( " WORK_ORDER_CONTRACTOR_CODE, 0 TAKEN_UP_EST_COUNT ,0 TAKEN_UP_WO_AMOUNT, 0 COMPLETED_EST_COUNT,0 COMPLETED_PYMT_RLSD, SUM(EST_COUNT) IN_PROGRESS_EST_COUNT, "); query.append( " SUM(NVL(TENDER_RESP_NEGOTIATED_VALUE,0)) IN_PROGRESS_NEGO_VAL , SUM(PYMT_RELEASED_AMT) IN_PROGRESS_PYMT_RLSD , 0 NOT_STARTED_EST_COUNT,0 NOT_STARTED_WO_AMT," + " 0 REV_WO_TAKEN_UP_AMT_SUM, SUM(NVL(REV_WO_IN_PROGRESS_NEG_VAL,0)) REV_WO_IN_PROGRESS_NEG_VAL_SUM,0 REV_WO_NOT_STARTED_AMT_SUM "); query.append(" FROM "); query.append(" ("); query.append(" SELECT WORK_ORDER_CONTRACTOR_ID ,"); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE ,"); query.append(" WORK_ORDER_ID,"); query.append(" COUNT(DISTINCT(ABS_EST_ID)) EST_COUNT ,"); query.append(" TENDER_RESP_NEGOTIATED_VALUE,"); query.append(" (SELECT SUM(NVL(BILL_VIEW.PMT_RLSD_TO_CONTRACTOR_FOR_WO,0))"); query.append(" FROM EGW_WPREPORT_EST_BILLS_MVIEW BILL_VIEW"); query.append(" WHERE BILL_VIEW.WORK_ORDER_ID =EST_VIEW.WORK_ORDER_ID"); query.append(" AND BILL_VIEW.BILL_REG_BILLSTATUS='APPROVED'"); query.append(" ) AS PYMT_RELEASED_AMT, " + " (SELECT SUM(NVL(INNER_VIEW.WORK_ORDER_WORKORDER_AMOUNT,0)) FROM EGW_WPREPORT_EST_WO_MVIEW INNER_VIEW WHERE INNER_VIEW.WORK_ORDER_PARENTID = EST_VIEW.WORK_ORDER_ID) REV_WO_IN_PROGRESS_NEG_VAL "); query.append(" FROM EGW_WPREPORT_EST_WO_MVIEW EST_VIEW"); query.append(" WHERE WORK_ORDER_STATUS_CODE = 'APPROVED'"); query.append(" AND WO_LATEST_OFFLINE_STATUS_CODE = '" + WorksConstants.WO_STATUS_WOCOMMENCED + "'"); query.append(" AND '" + finalBillType + "' NOT IN"); query.append(" (SELECT DISTINCT(BILL_VIEW.BILL_REG_BILLTYPE)"); query.append(" FROM EGW_WPREPORT_EST_BILLS_MVIEW BILL_VIEW"); query.append(" WHERE BILL_VIEW.WORK_ORDER_ID = EST_VIEW.WORK_ORDER_ID"); query.append(" AND BILL_VIEW.BILL_REG_BILLSTATUS='APPROVED'"); query.append(" )"); query.append(" AND EST_VIEW.TENDER_RESP_STATUS_CODE='APPROVED' "); query.append(" AND ABS_EST_PARENTID IS NULL " + commonSearchCriteriaQueryStr); query.append(" GROUP BY WORK_ORDER_CONTRACTOR_ID ,"); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE,"); query.append(" WORK_ORDER_ID,"); query.append(" TENDER_RESP_NEGOTIATED_VALUE"); query.append(" )"); query.append(" GROUP BY WORK_ORDER_CONTRACTOR_ID ,"); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE"); return query.toString(); } private String getNotYetStartedQuery(final String commonSearchCriteriaQueryStr, final String finalBillType) { final StringBuffer query = new StringBuffer(""); query.append(" SELECT WORK_ORDER_CONTRACTOR_ID, WORK_ORDER_CONTRACTOR_NAME,"); query.append(" WORK_ORDER_CONTRACTOR_CODE, " + " 0 TAKEN_UP_EST_COUNT ,0 TAKEN_UP_WO_AMOUNT, 0 COMPLETED_EST_COUNT,0 COMPLETED_PYMT_RLSD, " + " 0 IN_PROGRESS_EST_COUNT, 0 IN_PROGRESS_NEGO_VAL, 0 IN_PROGRESS_PYMT_RLSD, "); query.append(" SUM(EST_COUNT) NOT_STARTED_EST_COUNT, SUM(NVL(WORK_ORDER_WORKORDER_AMOUNT,0)) NOT_STARTED_WO_AMT," + " 0 REV_WO_TAKEN_UP_AMT_SUM,0 REV_WO_IN_PROGRESS_NEG_VAL_SUM, SUM(NVL(REV_WO_NOT_STARTED_AMT,0)) REV_WO_NOT_STARTED_AMT_SUM "); query.append(" FROM("); query.append(" SELECT WORK_ORDER_CONTRACTOR_ID ,"); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE ,"); query.append(" WORK_ORDER_ID,"); query.append(" COUNT(DISTINCT(ABS_EST_ID)) EST_COUNT,"); query.append(" WORK_ORDER_WORKORDER_AMOUNT," + " (SELECT SUM(NVL(INNER_VIEW.WORK_ORDER_WORKORDER_AMOUNT,0)) FROM EGW_WPREPORT_EST_WO_MVIEW INNER_VIEW WHERE INNER_VIEW.WORK_ORDER_PARENTID = OUTER_VIEW.WORK_ORDER_ID) REV_WO_NOT_STARTED_AMT "); query.append(" FROM EGW_WPREPORT_EST_WO_MVIEW OUTER_VIEW "); query.append(" WHERE (WO_LATEST_OFFLINE_STATUS_CODE!='" + WorksConstants.WO_STATUS_WOCOMMENCED + "'"); query.append(" OR WO_LATEST_OFFLINE_STATUS_CODE IS NULL)"); query.append(" AND WORK_ORDER_STATUS_CODE = 'APPROVED' "); query.append(" AND ABS_EST_PARENTID IS NULL " + commonSearchCriteriaQueryStr); query.append(" GROUP BY WORK_ORDER_CONTRACTOR_ID , "); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE,"); query.append(" WORK_ORDER_ID,"); query.append(" WORK_ORDER_WORKORDER_AMOUNT "); query.append(" )"); query.append(" GROUP BY WORK_ORDER_CONTRACTOR_ID , "); query.append(" WORK_ORDER_CONTRACTOR_NAME ,"); query.append(" WORK_ORDER_CONTRACTOR_CODE"); return query.toString(); } private Map<String, String> generateQuery(final String commonSearchCriteriaQueryStr) { final String finalBillType = worksService.getWorksConfigValue("FinalBillType"); final String getTakenUpQuery = getTakenUpQuery(commonSearchCriteriaQueryStr, finalBillType); final String getCompletedQuery = getCompletedQuery(commonSearchCriteriaQueryStr, finalBillType); final String getInProgressQuery = getInProgressQuery(commonSearchCriteriaQueryStr, finalBillType); final String getNotYetStartedQuery = getNotYetStartedQuery(commonSearchCriteriaQueryStr, finalBillType); final String mainQuery = " select WORK_ORDER_CONTRACTOR_ID, WORK_ORDER_CONTRACTOR_NAME, WORK_ORDER_CONTRACTOR_CODE, " + " SUM(TAKEN_UP_EST_COUNT),SUM(TAKEN_UP_WO_AMOUNT), " + " SUM(COMPLETED_EST_COUNT),SUM(COMPLETED_PYMT_RLSD)," + " SUM(IN_PROGRESS_EST_COUNT),SUM(IN_PROGRESS_NEGO_VAL)," + " SUM(IN_PROGRESS_PYMT_RLSD),SUM(NOT_STARTED_EST_COUNT)," + " SUM(NOT_STARTED_WO_AMT), SUM(NVL(REV_WO_TAKEN_UP_AMT_SUM,0))," + " SUM(NVL(REV_WO_IN_PROGRESS_NEG_VAL_SUM,0))," + " SUM(NVL(REV_WO_NOT_STARTED_AMT_SUM,0)) FROM ( " + getTakenUpQuery + " UNION " + getCompletedQuery + " UNION " + getInProgressQuery + " UNION " + getNotYetStartedQuery + " ) GROUP BY WORK_ORDER_CONTRACTOR_ID, WORK_ORDER_CONTRACTOR_NAME,WORK_ORDER_CONTRACTOR_CODE "; final Map returnMap = new HashMap<String, String>(); returnMap.put("query", mainQuery.toString()); returnMap.put("count", "Select count (*) from (" + mainQuery.toString() + ")"); return returnMap; } private void populateData(final List<Object[]> objResultList) { if (objResultList != null && objResultList.size() > 0) { populateBeanData(objResultList); populateBalanceInfo(); populateContractorClass(); if (searchType.equalsIgnoreCase("report")) populateTotalRow(); convertAllAmountsToCrores(); } } private void populateBeanData(final List<Object[]> objResultList) { ContractorwiseReportBean bean = null; for (final Object[] objArr : objResultList) { bean = new ContractorwiseReportBean(); if (objArr[0] != null) bean.setContractorId(((BigDecimal) objArr[0]).longValue()); if (objArr[1] != null) bean.setContractorName(objArr[1].toString()); if (objArr[2] != null) bean.setContractorCode(objArr[2].toString()); if (objArr[3] != null) bean.setTakenUpEstimateCount(((BigDecimal) objArr[3]).intValue()); if (objArr[4] != null) bean.setTakenUpWOAmount((BigDecimal) objArr[4]); if (objArr[5] != null) bean.setCompletedEstimateCount(((BigDecimal) objArr[5]).intValue()); if (objArr[6] != null) bean.setCompletedWOAmount((BigDecimal) objArr[6]); if (objArr[7] != null) bean.setInProgressEstimateCount(((BigDecimal) objArr[7]).intValue()); if (objArr[8] != null) bean.setInProgressTenderNegotiatedAmt((BigDecimal) objArr[8]); if (objArr[9] != null) bean.setInProgressPaymentReleasedAmt((BigDecimal) objArr[9]); if (objArr[10] != null) bean.setNotYetStartedEstimateCount(((BigDecimal) objArr[10]).intValue()); if (objArr[11] != null) bean.setNotYetStartedWOAmount((BigDecimal) objArr[11]); if (objArr[12] != null) bean.setTakenUpWOAmount(bean.getTakenUpWOAmount().add((BigDecimal) objArr[12])); if (objArr[13] != null) bean.setInProgressTenderNegotiatedAmt(bean.getInProgressTenderNegotiatedAmt().add( (BigDecimal) objArr[13])); if (objArr[14] != null) bean.setNotYetStartedWOAmount(bean.getNotYetStartedWOAmount().add((BigDecimal) objArr[14])); bean.setInProgressBalanceAmount(bean.getInProgressTenderNegotiatedAmt().subtract( bean.getInProgressPaymentReleasedAmt())); resultList.add(bean); } } private void populateBalanceInfo() { for (final ContractorwiseReportBean bean : resultList) { bean.setBalanceAmount(bean.getInProgressTenderNegotiatedAmt().add(bean.getNotYetStartedWOAmount())); bean.setBalanceEstimateCount(bean.getInProgressEstimateCount() + bean.getNotYetStartedEstimateCount()); } } private void convertAllAmountsToCrores() { for (final ContractorwiseReportBean bean : resultList) { bean.setBalanceAmount(workProgressAbstractReportService.getRoundedOfAmount(bean.getBalanceAmount(), 4)); bean.setCompletedWOAmount(workProgressAbstractReportService.getRoundedOfAmount(bean.getCompletedWOAmount(), 4)); bean.setInProgressBalanceAmount(workProgressAbstractReportService.getRoundedOfAmount( bean.getInProgressBalanceAmount(), 4)); bean.setInProgressPaymentReleasedAmt(workProgressAbstractReportService.getRoundedOfAmount( bean.getInProgressPaymentReleasedAmt(), 4)); bean.setInProgressTenderNegotiatedAmt(workProgressAbstractReportService.getRoundedOfAmount( bean.getInProgressTenderNegotiatedAmt(), 4)); bean.setNotYetStartedWOAmount(workProgressAbstractReportService.getRoundedOfAmount( bean.getNotYetStartedWOAmount(), 4)); bean.setTakenUpWOAmount(workProgressAbstractReportService.getRoundedOfAmount(bean.getTakenUpWOAmount(), 4)); } } private void populateContractorClass() { final List<Long> contractorIdList = new LinkedList<Long>(); for (final ContractorwiseReportBean bean : resultList) contractorIdList.add(bean.getContractorId()); final String contractorClassQry = " select cd.contractor_id,cg.grade from egw_contractor_detail cd, " + " egw_contractor_grade cg where cg.id= cd.contractor_grade_id and cd.contractor_id in (:contractorIdList) group by cd.contractor_id,cg.grade "; final Query sqlQuery = getPersistenceService().getSession().createSQLQuery(contractorClassQry); sqlQuery.setParameterList("contractorIdList", contractorIdList); final List<Object[]> resultObjList = sqlQuery.list(); if (resultObjList != null) { final Map<String, String> contractorIdGradeMap = new HashMap<String, String>(); String concGrade = null; for (final Object[] objArr : resultObjList) if (objArr[1] != null) { concGrade = contractorIdGradeMap.get(objArr[0].toString()); if (concGrade == null) contractorIdGradeMap.put(objArr[0].toString(), objArr[1].toString()); else contractorIdGradeMap.put(objArr[0].toString(), concGrade + "," + objArr[1].toString()); } for (final String key : contractorIdGradeMap.keySet()) for (final ContractorwiseReportBean bean : resultList) if (Long.parseLong(key) == bean.getContractorId().longValue()) bean.setContractorClass(contractorIdGradeMap.get(key)); } } private void populateTotalRow() { final ContractorwiseReportBean totalBean = new ContractorwiseReportBean(); totalBean.setContractorName("Total"); for (final ContractorwiseReportBean bean : resultList) { totalBean.setBalanceAmount(bean.getBalanceAmount().add(totalBean.getBalanceAmount())); totalBean.setBalanceEstimateCount(bean.getBalanceEstimateCount() + totalBean.getBalanceEstimateCount()); totalBean.setCompletedEstimateCount(bean.getCompletedEstimateCount() + totalBean.getCompletedEstimateCount()); totalBean.setCompletedWOAmount(bean.getCompletedWOAmount().add(totalBean.getCompletedWOAmount())); totalBean.setInProgressBalanceAmount(bean.getInProgressBalanceAmount().add( totalBean.getInProgressBalanceAmount())); totalBean.setInProgressEstimateCount(bean.getInProgressEstimateCount() + totalBean.getInProgressEstimateCount()); totalBean.setInProgressPaymentReleasedAmt(bean.getInProgressPaymentReleasedAmt().add( totalBean.getInProgressPaymentReleasedAmt())); totalBean.setInProgressTenderNegotiatedAmt(bean.getInProgressTenderNegotiatedAmt().add( totalBean.getInProgressTenderNegotiatedAmt())); totalBean.setNotYetStartedEstimateCount(bean.getNotYetStartedEstimateCount() + totalBean.getNotYetStartedEstimateCount()); totalBean.setNotYetStartedWOAmount(bean.getNotYetStartedWOAmount() .add(totalBean.getNotYetStartedWOAmount())); totalBean.setTakenUpEstimateCount(bean.getTakenUpEstimateCount() + totalBean.getTakenUpEstimateCount()); totalBean.setTakenUpWOAmount(bean.getTakenUpWOAmount().add(totalBean.getTakenUpWOAmount())); } resultList.add(totalBean); } public String generatePDF() { searchType = "report"; search(); final ReportRequest reportRequest = new ReportRequest(JASPER_NAME, resultList, getParamMap()); final ReportOutput reportOutput = reportService.createReport(reportRequest); if (reportOutput != null && reportOutput.getReportOutputData() != null) reportInputStream = new ByteArrayInputStream(reportOutput.getReportOutputData()); return PDF; } public String generateXLS() { searchType = "report"; search(); final ReportRequest reportRequest = new ReportRequest(JASPER_NAME, resultList, getParamMap()); reportRequest.setReportFormat(FileFormat.XLS); final ReportOutput reportOutput = reportService.createReport(reportRequest); if (reportOutput != null && reportOutput.getReportOutputData() != null) reportInputStream = new ByteArrayInputStream(reportOutput.getReportOutputData()); return XLS; } private Map<String, Object> getParamMap() { final Map<String, Object> reportParams = new HashMap<String, Object>(); reportParams.put("reportTitle", getText("contractorwiseAbstractReport.title")); reportParams.put("subHeader", getSubHeader() + "\n" + reportMessage); return reportParams; } private String getTakenUpEstimateDrillDownQuery() { final String searchConditions = constructSearchFilter(); final StringBuffer query = new StringBuffer( " select ABS_EST_ID,ABS_EST_ESTIMATE_NUMBER,ABS_EST_ESTIMATEDATE,ABS_EST_NAME,ABS_EST_WARD_NAME,ABS_EST_APPROVEDDATE,ABS_EST_VALUE_WITH_OH from EGW_WPREPORT_EST_WO_MVIEW "); query.append(" where WORK_ORDER_STATUS_CODE = 'APPROVED' " + searchConditions + " order by ABS_EST_ESTIMATEDATE "); return query.toString(); } public String showEstimatesTakenUpDrillDown() { Page resPage; formReportMessage(); final String query = getTakenUpEstimateDrillDownQuery(); final String countQuery = " select count (*) from ( " + query + ")"; List<CommonDrillDownReportBean> resultBeanList = null; if (searchType.equals("")) { final SearchQuerySQL sqlQuery = new SearchQuerySQL(query, countQuery, paramList); resPage = sqlQuery.getPage(getPersistenceService(), page, pageSize); paginatedList = new EgovPaginatedList(resPage, sqlQuery.getCount(getPersistenceService())); resultBeanList = generateEstimateList(paginatedList.getList()); if (paginatedList.getList() == null) paginatedList.setList(resultBeanList); else { paginatedList.getList().clear(); paginatedList.getList().addAll(resultBeanList); } } else if (searchType.equalsIgnoreCase("report")) { List<Object[]> wholeQueryList = null; final Query qry = getPersistenceService().getSession().createSQLQuery(query); for (int i = 0; i < paramList.size(); i++) qry.setParameter(i, paramList.get(i)); wholeQueryList = qry.list(); resultBeanList = generateEstimateList(wholeQueryList); commonBeanList.addAll(resultBeanList); } return "showEstimatesForDrillDown"; } private List<CommonDrillDownReportBean> generateEstimateList(final List<Object[]> objArrList) { final List<CommonDrillDownReportBean> beanList = new LinkedList<CommonDrillDownReportBean>(); CommonDrillDownReportBean bean = null; BigDecimal amount = null; for (final Object[] objArr : objArrList) { bean = new CommonDrillDownReportBean(); bean.setEstimateId(((BigDecimal) objArr[0]).longValue()); bean.setEstNumber(objArr[1].toString()); bean.setEstDate((Date) objArr[2]); bean.setEstName(objArr[3].toString()); bean.setWardName(objArr[4].toString()); bean.setEstApprovedDate((Date) objArr[5]); amount = (BigDecimal) objArr[6]; if (amount != null) bean.setEstAmount(new BigDecimal(amount.toString()).setScale(2, RoundingMode.HALF_UP)); beanList.add(bean); } return beanList; } private String constructSearchFilter() { final StringBuffer queryBfr = new StringBuffer(1000); paramList = new LinkedList<Object>(); if (fromDate != null && toDate != null) queryBfr.append(" AND TRUNC(WORK_ORDER_APPROVEDDATE) between '" + dateFormatter.format(fromDate) + "' and '" + dateFormatter.format(toDate) + "' "); if (fromDate != null && toDate == null) queryBfr.append(" AND TRUNC(WORK_ORDER_APPROVEDDATE) >= '" + dateFormatter.format(fromDate) + "' "); if (fromDate == null && toDate != null) queryBfr.append(" AND TRUNC(WORK_ORDER_APPROVEDDATE) <= '" + dateFormatter.format(toDate) + "' "); if (executingDepartment != null && executingDepartment != -1) { queryBfr.append(" AND ABS_EST_EXECUTINGDEPARTMENT=?"); paramList.add(executingDepartment); } if (worksType != null && worksType != -1) { queryBfr.append(" AND ABS_EST_PARENT_CATEGORY=?"); paramList.add(worksType); } if (worksSubType != null && worksSubType != -1) { queryBfr.append(" AND ABS_EST_CATEGORY=?"); paramList.add(worksSubType); } if (fund != null && fund != -1) { queryBfr.append(" AND FIN_DETAILS_FUND_ID=? "); paramList.add(fund); } if (function != null && function != -1) { queryBfr.append(" AND FIN_DETAILS_FUNCTION_ID=?"); paramList.add(function); } if (scheme != null && scheme != -1) { queryBfr.append(" AND FIN_DETAILS_SCHEME_ID=?"); paramList.add(scheme); } if (subScheme != null && subScheme != -1) { queryBfr.append(" AND FIN_DETAILS_SUBSCHEME_ID=?"); paramList.add(subScheme); } if (budgetHeads != null && !budgetHeads.isEmpty() && !budgetHeads.contains("-1") && !budgetHeads.get(0).equals("") && depositCodeIds != null && !depositCodeIds.isEmpty()) { // When both are selected queryBfr.append(" AND ( "); if (budgetHeads != null && !budgetHeads.isEmpty() && !budgetHeads.contains("-1") && !budgetHeads.get(0).equals("")) { queryBfr.append(" FIN_DETAILS_BUDGETGROUP_ID in ("); for (int i = 0; i < budgetHeadIds.size(); i++) { if (i == 0) queryBfr.append(" ?"); else queryBfr.append(" ,? "); paramList.add(budgetHeadIds.get(i)); } queryBfr.append(" ) "); } if (depositCodeIds != null && !depositCodeIds.isEmpty()) { queryBfr.append(" OR FIN_DETAILS_COA_ID in ("); for (int i = 0; i < depositCodeIds.size(); i++) { if (i == 0) queryBfr.append(" ?"); else queryBfr.append(" ,? "); paramList.add(depositCodeIds.get(i)); } queryBfr.append(" ) "); } queryBfr.append(" ) "); } else { if (budgetHeads != null && !budgetHeads.isEmpty() && !budgetHeads.contains("-1") && !budgetHeads.get(0).equals("")) { queryBfr.append(" AND FIN_DETAILS_BUDGETGROUP_ID in ("); for (int i = 0; i < budgetHeadIds.size(); i++) { if (i == 0) queryBfr.append(" ?"); else queryBfr.append(" ,? "); paramList.add(budgetHeadIds.get(i)); } queryBfr.append(" ) "); } if (depositCodeIds != null && !depositCodeIds.isEmpty()) { queryBfr.append(" AND FIN_DETAILS_COA_ID in ("); for (int i = 0; i < depositCodeIds.size(); i++) { if (i == 0) queryBfr.append(" ?"); else queryBfr.append(" ,? "); paramList.add(depositCodeIds.get(i)); } queryBfr.append(" ) "); } } if (contractorId != null && contractorId != -1 && StringUtils.isNotBlank(contractorName)) { queryBfr.append(" AND WORK_ORDER_CONTRACTOR_ID=?"); paramList.add(contractorId); } else if (StringUtils.isNotBlank(contractorName)) queryBfr.append(" AND WORK_ORDER_CONTRACTOR_NAME like '%" + contractorName + "%'"); if (gradeId != null && gradeId != -1) { queryBfr.append( " AND WORK_ORDER_CONTRACTOR_ID IN ( SELECT CONTRACTOR_ID FROM EGW_CONTRACTOR_DETAIL WHERE CONTRACTOR_GRADE_ID=? AND CONTRACTOR_ID=WORK_ORDER_CONTRACTOR_ID)"); paramList.add(gradeId); } return queryBfr.toString(); } private void generateBudgetHeads() { final List<CChartOfAccounts> coaList = new ArrayList<CChartOfAccounts>(); final List<BudgetGroup> budgetHeadList = new ArrayList<BudgetGroup>(); // In case all is selected, then should consider all the budget heads if (dropDownBudgetHeads.size() == 1 && dropDownBudgetHeads.get(0).equalsIgnoreCase(WorksConstants.ALL)) { final String[] budgetHeadsFromAppConf = budgetHeadsAppConfValue.split(","); for (final String element : budgetHeadsFromAppConf) // Split and obtain only the glcode coaList.addAll(chartOfAccountsHibernateDAO.getListOfDetailCode(element.split("-")[0])); budgetHeadList.addAll(budgetDetailsDAO.getBudgetHeadForGlcodeList(coaList)); } // Incase all is not selected if (!dropDownBudgetHeads.get(0).equalsIgnoreCase(WorksConstants.ALL)) { for (int i = 0; i < dropDownBudgetHeads.size(); i++) coaList.addAll(chartOfAccountsHibernateDAO.getListOfDetailCode(dropDownBudgetHeads.get(i).split("-")[0])); budgetHeadList.addAll(budgetDetailsDAO.getBudgetHeadForGlcodeList(coaList)); } final List<Long> budgetHeadIdsLong = new ArrayList<Long>(); final List<String> budgetHeadIdStr = new ArrayList<String>(); if (budgetHeadList != null && budgetHeadList.size() > 0) for (final BudgetGroup bdgtGrp : budgetHeadList) { budgetHeadIdStr.add(bdgtGrp.getId().toString()); budgetHeadIdsLong.add(bdgtGrp.getId()); } budgetHeads = budgetHeadIdStr; budgetHeadIds = budgetHeadIdsLong; } private void generateDepositCodes() { final List<CChartOfAccounts> coaList = new ArrayList<CChartOfAccounts>(); if (dropDownDepositCodes.size() == 1 && dropDownDepositCodes.get(0).equalsIgnoreCase(WorksConstants.ALL)) { final String[] depositCodesFromAppConf = depositCodesAppConfValue.split(","); for (final String element : depositCodesFromAppConf) coaList.addAll(chartOfAccountsHibernateDAO.getListOfDetailCode(element.split("-")[0])); } // Incase all is not selected if (!dropDownDepositCodes.get(0).equalsIgnoreCase(WorksConstants.ALL)) for (int i = 0; i < dropDownDepositCodes.size(); i++) coaList.addAll(chartOfAccountsHibernateDAO.getListOfDetailCode(dropDownDepositCodes.get(i).split("-")[0])); final List<Long> depositCodeIdsLong = new ArrayList<Long>(); if (coaList != null && coaList.size() > 0) for (final CChartOfAccounts coa : coaList) depositCodeIdsLong.add(coa.getId()); depositCodeIds = depositCodeIdsLong; } private void getBudgetHeadsFromAllBudgetHeads() { budgetHeadIds = allBudgetHeads; budgetHeads = new ArrayList<String>(); for (int i = 0; i < allBudgetHeads.size(); i++) budgetHeads.add(allBudgetHeads.get(i).toString()); } private void getDepositCodesFromAllDepositCodes() { depositCodeIds = allDepositCodes; } private String generateFinYrList(final List<CFinancialYear> finYrList) { final Date todaysDate = new Date(); final StringBuffer finStrBfr = new StringBuffer(); for (final CFinancialYear yr : finYrList) if (yr.getStartingDate().compareTo(todaysDate) <= 0 && yr.getEndingDate().compareTo(todaysDate) >= 0) finStrBfr.append("id:" + yr.getId() + "--" + DateUtils.getFormattedDate(yr.getStartingDate(), "dd/MM/yyyy") + "--" + DateUtils.getFormattedDate(todaysDate, "dd/MM/yyyy")); else finStrBfr.append("id:" + yr.getId() + "--" + DateUtils.getFormattedDate(yr.getStartingDate(), "dd/MM/yyyy") + "--" + DateUtils.getFormattedDate(yr.getEndingDate(), "dd/MM/yyyy")); return finStrBfr.toString(); } private List<String> getBudgetGroupsFromAppConfig() { final List<String> budgetGrpStrList = new ArrayList<String>(); budgetGrpStrList.add(WorksConstants.ALL); budgetHeadsAppConfValue = worksService.getWorksConfigValue(BUDGET_HEADS_APPCONFIG_KEY); if (budgetHeadsAppConfValue != null) for (final String appValues : budgetHeadsAppConfValue.split(",")) budgetGrpStrList.add(appValues); return budgetGrpStrList; } private List<String> getDepositCodesFromAppConfig() { final List<String> glcodesStrList = new ArrayList<String>(); glcodesStrList.add(WorksConstants.ALL); depositCodesAppConfValue = worksService.getWorksConfigValue(DEPOSITCODES_APPCONFIG_KEY); if (depositCodesAppConfValue != null) for (final String appValues : depositCodesAppConfValue.split(",")) glcodesStrList.add(appValues); return glcodesStrList; } private void populateCategoryList(final AjaxEstimateAction ajaxEstimateAction, final boolean categoryPopulated) { if (categoryPopulated) { ajaxEstimateAction.setCategory(getWorksType().longValue()); ajaxEstimateAction.subcategories(); addDropdownData("worksSubTypeList", ajaxEstimateAction.getSubCategories()); } else addDropdownData("worksSubTypeList", Collections.emptyList()); } private void populateSubSchemeList(final AjaxWorkProgressAction ajaxWorkProgressAction, final boolean schemePopulated) { if (schemePopulated) { ajaxWorkProgressAction.setPersistenceService(getPersistenceService()); ajaxWorkProgressAction.setSchemeId(getScheme()); ajaxWorkProgressAction.loadSubSchemes(); addDropdownData("subSchemeList", ajaxWorkProgressAction.getSubSchemes()); } else addDropdownData("subSchemeList", Collections.emptyList()); } public Date getFromDate() { return fromDate; } public Date getToDate() { return toDate; } public Integer getExecutingDepartment() { return executingDepartment; } public Integer getWorksType() { return worksType; } public Integer getWorksSubType() { return worksSubType; } public Integer getFund() { return fund; } public Integer getFunction() { return function; } public Integer getScheme() { return scheme; } public Integer getSubScheme() { return subScheme; } public void setFromDate(final Date fromDate) { this.fromDate = fromDate; } public void setToDate(final Date toDate) { this.toDate = toDate; } public void setExecutingDepartment(final Integer executingDepartment) { this.executingDepartment = executingDepartment; } public void setWorksType(final Integer worksType) { this.worksType = worksType; } public void setWorksSubType(final Integer worksSubType) { this.worksSubType = worksSubType; } public void setFund(final Integer fund) { this.fund = fund; } public void setFunction(final Integer function) { this.function = function; } public void setScheme(final Integer scheme) { this.scheme = scheme; } public void setSubScheme(final Integer subScheme) { this.subScheme = subScheme; } public void setPersonalInformationService(final PersonalInformationService personalInformationService) { } public String getBudgetHeadsAppConfValue() { return budgetHeadsAppConfValue; } public void setBudgetHeadsAppConfValue(final String budgetHeadsAppConfValue) { this.budgetHeadsAppConfValue = budgetHeadsAppConfValue; } public void setWorksService(final WorksService worksService) { this.worksService = worksService; } public List<String> getDropDownBudgetHeads() { return dropDownBudgetHeads; } public void setDropDownBudgetHeads(final List<String> dropDownBudgetHeads) { this.dropDownBudgetHeads = dropDownBudgetHeads; } public String getDepositCodesAppConfValue() { return depositCodesAppConfValue; } public void setDepositCodesAppConfValue(final String depositCodesAppConfValue) { this.depositCodesAppConfValue = depositCodesAppConfValue; } public List<String> getDropDownDepositCodes() { return dropDownDepositCodes; } public void setDropDownDepositCodes(final List<String> dropDownDepositCodes) { this.dropDownDepositCodes = dropDownDepositCodes; } public List<Long> getAllDepositCodes() { return allDepositCodes; } public void setAllDepositCodes(final List<Long> allDepositCodes) { this.allDepositCodes = allDepositCodes; } public List<Long> getAllBudgetHeads() { return allBudgetHeads; } public void setAllBudgetHeads(final List<Long> allBudgetHeads) { this.allBudgetHeads = allBudgetHeads; } public String getFinYearId() { return finYearId; } public void setFinYearId(final String finYearId) { this.finYearId = finYearId; } public String getFinYearRange() { return finYearRange; } public void setFinYearRange(final String finYearRange) { this.finYearRange = finYearRange; } public String getCurrentFinancialYearId() { return currentFinancialYearId; } public void setCurrentFinancialYearId(final String currentFinancialYearId) { this.currentFinancialYearId = currentFinancialYearId; } public String getFinYearRangeStr() { return finYearRangeStr; } public String getSubHeader() { return subHeader; } public void setSubHeader(final String subHeader) { this.subHeader = subHeader; } public String getContractorName() { return contractorName; } public Long getContractorId() { return contractorId; } public void setContractorName(final String contractorName) { this.contractorName = contractorName; } public void setContractorId(final Long contractorId) { this.contractorId = contractorId; } public Long getGradeId() { return gradeId; } public void setGradeId(final Long gradeId) { this.gradeId = gradeId; } public List<String> getBudgetHeads() { return budgetHeads; } public void setBudgetHeads(final List<String> budgetHeads) { this.budgetHeads = budgetHeads; } public void setBudgetDetailsDAO(final BudgetDetailsDAO budgetDetailsDAO) { this.budgetDetailsDAO = budgetDetailsDAO; } public List<ContractorwiseReportBean> getResultList() { return resultList; } public void setResultList(final List<ContractorwiseReportBean> resultList) { this.resultList = resultList; } public String getResultStatus() { return resultStatus; } public InputStream getReportInputStream() { return reportInputStream; } public void setReportService(final ReportService reportService) { this.reportService = reportService; } public Integer getPage() { return page; } public Integer getPageSize() { return pageSize; } public void setPage(final Integer page) { this.page = page; } public void setPageSize(final Integer pageSize) { this.pageSize = pageSize; } public List<CommonDrillDownReportBean> getCommonBeanList() { return commonBeanList; } public void setWorkProgressAbstractReportService( final WorkProgressAbstractReportService workProgressAbstractReportService) { this.workProgressAbstractReportService = workProgressAbstractReportService; } public void setSearchType(final String searchType) { this.searchType = searchType; } public EgovPaginatedList getPaginatedList() { return paginatedList; } public void setPaginatedList(final EgovPaginatedList paginatedList) { this.paginatedList = paginatedList; } public String getBudgetHeadsStr() { return budgetHeadsStr; } public String getDepositCodesStr() { return depositCodesStr; } public String getDepositCodeIdsStr() { return depositCodeIdsStr; } public String getBudgetHeadIdsStr() { return budgetHeadIdsStr; } public void setBudgetHeadsStr(final String budgetHeadsStr) { this.budgetHeadsStr = budgetHeadsStr; } public void setDepositCodesStr(final String depositCodesStr) { this.depositCodesStr = depositCodesStr; } public void setDepositCodeIdsStr(final String depositCodeIdsStr) { this.depositCodeIdsStr = depositCodeIdsStr; } public void setBudgetHeadIdsStr(final String budgetHeadIdsStr) { this.budgetHeadIdsStr = budgetHeadIdsStr; } public String getReportMessage() { return reportMessage; } }