/* * 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.ptis.actions.search; import static java.math.BigDecimal.ZERO; import static org.egov.infra.web.struts.actions.BaseFormAction.NEW; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_ADD_DEMAND; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_ALTER_ASSESSENT; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_BIFURCATE_ASSESSENT; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_COLLECT_TAX; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_DEMAND_BILL; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_DEMOLITION; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_EDIT_COLLECTION; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_EDIT_DEMAND; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_EDIT_OWNER; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_GRP; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_MEESEVA_GRP; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_MEESEVA_RP; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_MEESEVA_TRANSFER_OF_OWNERSHIP; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_MODIFY_DATA_ENTRY; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_REVISION_PETITION; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_TAX_EXEMTION; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_TRANSFER_OF_OWNERSHIP; import static org.egov.ptis.constants.PropertyTaxConstants.APPLICATION_TYPE_VACANCY_REMISSION; import static org.egov.ptis.constants.PropertyTaxConstants.ARR_COLL_STR; import static org.egov.ptis.constants.PropertyTaxConstants.ARR_DMD_STR; import static org.egov.ptis.constants.PropertyTaxConstants.CURR_COLL_STR; import static org.egov.ptis.constants.PropertyTaxConstants.CURR_FIRSTHALF_COLL_STR; import static org.egov.ptis.constants.PropertyTaxConstants.CURR_FIRSTHALF_DMD_STR; import static org.egov.ptis.constants.PropertyTaxConstants.CURR_SECONDHALF_COLL_STR; import static org.egov.ptis.constants.PropertyTaxConstants.CURR_SECONDHALF_DMD_STR; import static org.egov.ptis.constants.PropertyTaxConstants.LOCATION_HIERARCHY_TYPE; import static org.egov.ptis.constants.PropertyTaxConstants.NOT_AVAILABLE; import static org.egov.ptis.constants.PropertyTaxConstants.PROPERTY_STATUS_MARK_DEACTIVE; import static org.egov.ptis.constants.PropertyTaxConstants.REVENUE_HIERARCHY_TYPE; import static org.egov.ptis.constants.PropertyTaxConstants.SESSIONLOGINID; import static org.egov.ptis.constants.PropertyTaxConstants.SOURCEOFDATA_DATAENTRY; import static org.egov.ptis.constants.PropertyTaxConstants.SOURCEOFDATA_MIGRATION; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import javax.servlet.http.HttpServletRequest; import org.apache.commons.lang3.StringUtils; import org.apache.log4j.Logger; import org.apache.struts2.ServletActionContext; import org.apache.struts2.convention.annotation.Action; import org.apache.struts2.convention.annotation.ParentPackage; import org.apache.struts2.convention.annotation.Result; import org.apache.struts2.convention.annotation.Results; import org.apache.struts2.interceptor.validation.SkipValidation; import org.egov.infra.admin.master.entity.Boundary; import org.egov.infra.admin.master.entity.User; import org.egov.infra.admin.master.service.BoundaryService; import org.egov.infra.admin.master.service.UserService; import org.egov.infra.exception.ApplicationRuntimeException; import org.egov.infra.persistence.entity.Address; import org.egov.infra.security.utils.SecurityUtils; import org.egov.infra.validation.exception.ValidationError; import org.egov.infra.validation.exception.ValidationException; import org.egov.infra.web.struts.actions.BaseFormAction; import org.egov.infra.web.struts.annotation.ValidationErrorPage; import org.egov.ptis.actions.common.CommonServices; import org.egov.ptis.client.util.PropertyTaxUtil; import org.egov.ptis.constants.PropertyTaxConstants; import org.egov.ptis.domain.dao.demand.PtDemandDao; import org.egov.ptis.domain.dao.property.BasicPropertyDAO; import org.egov.ptis.domain.entity.property.BasicProperty; import org.egov.ptis.domain.entity.property.Property; import org.egov.ptis.domain.entity.property.PropertyMaterlizeView; import org.egov.ptis.domain.entity.property.PropertyOwnerInfo; import org.egov.ptis.domain.entity.property.PropertyStatusValues; import org.egov.ptis.domain.service.property.PropertyService; import org.springframework.beans.factory.annotation.Autowired; import com.opensymphony.xwork2.validator.annotations.Validations; @ParentPackage("egov") @Validations @Results({ @Result(name = NEW, location = "searchProperty-new.jsp"), @Result(name = SearchPropertyAction.TARGET, location = "searchProperty-result.jsp"), @Result(name = SearchPropertyAction.COMMON_FORM, location = "searchProperty-commonForm.jsp"), @Result(name = APPLICATION_TYPE_ALTER_ASSESSENT, type = "redirectAction", location = "modifyProperty-modifyForm", params = { "namespace", "/modify", "indexNumber", "${assessmentNum}", "modifyRsn", "ADD_OR_ALTER", "applicationType", "${applicationType}" }), @Result(name = APPLICATION_TYPE_GRP, type = "redirectAction", location = "modifyProperty-modifyForm", params = { "namespace", "/modify", "indexNumber", "${assessmentNum}", "modifyRsn", "GRP", "applicationType", "${applicationType}" }), @Result(name = APPLICATION_TYPE_BIFURCATE_ASSESSENT, type = "redirectAction", location = "modifyProperty-modifyForm", params = { "namespace", "/modify", "indexNumber", "${assessmentNum}", "modifyRsn", "BIFURCATE", "applicationType", "${applicationType}" }), @Result(name = APPLICATION_TYPE_TRANSFER_OF_OWNERSHIP, type = "redirectAction", location = "redirect", params = { "namespace", "/property/transfer", "assessmentNo", "${assessmentNum}", "applicationType", "${applicationType}" }), @Result(name = APPLICATION_TYPE_MEESEVA_TRANSFER_OF_OWNERSHIP, type = "redirectAction", location = "redirect", params = { "namespace", "/property/transfer", "assessmentNo", "${assessmentNum}", "meesevaApplicationNumber", "${meesevaApplicationNumber}", "meesevaServiceCode", "${meesevaServiceCode}", "applicationType", "${applicationType}" }), @Result(name = APPLICATION_TYPE_REVISION_PETITION, type = "redirectAction", location = "revPetition-newForm", params = { "namespace", "/revPetition", "propertyId", "${assessmentNum}" }), @Result(name = "meesevaerror", location = "/WEB-INF/jsp/common/meeseva-errorPage.jsp"), @Result(name = APPLICATION_TYPE_COLLECT_TAX, type = "redirectAction", location = "searchProperty-searchOwnerDetails", params = { "namespace", "/search", "assessmentNum", "${assessmentNum}" }), @Result(name = APPLICATION_TYPE_DEMAND_BILL, type = "redirectAction", location = "billGeneration-generateDemandBill", params = { "namespace", "/bills", "indexNumber", "${assessmentNum}" }), @Result(name = APPLICATION_TYPE_VACANCY_REMISSION, type = "redirect", location = "../vacancyremission/create/${assessmentNum},${mode}", params = { "meesevaApplicationNumber", "${meesevaApplicationNumber}" }), @Result(name = APPLICATION_TYPE_TAX_EXEMTION, type = "redirect", location = "..//exemption/form/${assessmentNum}", params = { "meesevaApplicationNumber", "${meesevaApplicationNumber}" }), @Result(name = APPLICATION_TYPE_EDIT_DEMAND, type = "redirectAction", location = "editDemand-newEditForm", params = { "namespace", "/edit", "propertyId", "${assessmentNum}" }), @Result(name = APPLICATION_TYPE_ADD_DEMAND, type = "redirectAction", location = "addDemand-newAddForm", params = { "namespace", "/edit", "propertyId", "${assessmentNum}" }), @Result(name = APPLICATION_TYPE_EDIT_COLLECTION, type = "redirect", location = "../editCollection/editForm/${assessmentNum}"), @Result(name = APPLICATION_TYPE_DEMOLITION, type = "redirect", location = "../property/demolition/${assessmentNum}"), @Result(name = APPLICATION_TYPE_EDIT_OWNER, type = "redirect", location = "../editowner/${assessmentNum}"), @Result(name = SearchPropertyAction.USER_DETAILS, location = "searchProperty-ownerDetails.jsp"), @Result(name = APPLICATION_TYPE_MODIFY_DATA_ENTRY, type = "redirectAction", location = "createProperty-editDataEntryForm", params = { "namespace", "/create", "indexNumber", "${assessmentNum}", "modifyRsn", "EDIT_DATA_ENTRY", "modelId", "${activePropertyId}" }), @Result(name = APPLICATION_TYPE_MEESEVA_GRP, type = "redirectAction", location = "modifyProperty-modifyForm", params = { "namespace", "/modify", "indexNumber", "${assessmentNum}", "meesevaApplicationNumber", "${meesevaApplicationNumber}", "meesevaServiceCode", "${meesevaServiceCode}", "modifyRsn", "GRP", "applicationType", "${applicationType}" }), @Result(name = APPLICATION_TYPE_MEESEVA_RP, type = "redirectAction", location = "revPetition-newForm", params = { "namespace", "/revPetition", "propertyId", "${assessmentNum}", "meesevaApplicationNumber", "${meesevaApplicationNumber}", "meesevaServiceCode", "${meesevaServiceCode}", "applicationType", "${applicationType}" })}) public class SearchPropertyAction extends BaseFormAction { /** * */ private static final long serialVersionUID = 6978874588028662454L; protected static final String COMMON_FORM = "commonForm"; private final Logger LOGGER = Logger.getLogger(getClass()); private static final String RESULT_ERROR = "meesevaerror"; protected static final String USER_DETAILS = "ownerDetails"; protected static final String UPDATEMOBILE_FORM = "updateMobileNo"; public static final String TARGET = "result"; private Long zoneId; private Long wardId; private Long propertyTypeMasterId; private Integer locationId; private Integer areaName; private String assessmentNum; private String houseNumBndry; private String ownerNameBndry; private String houseNumArea; private String ownerName; private String oldHouseNum; private String mode; private String searchUri; private String searchCriteria; private String searchValue; private String roleName; private String markedForDeactive = "N"; private String fromDemand; private String toDemand; private String applicationType; private String doorNo; private String mobileNumber; private String meesevaApplicationNumber; private String meesevaServiceCode; private List<Map<String, String>> searchResultList; List<Map<String, String>> searchList = new ArrayList<Map<String, String>>(); private Map<Long, String> ZoneBndryMap; private Map<Long, String> WardndryMap; private User propertyOwner; private BasicProperty basicProperty; private boolean isDemandActive; private Boolean loggedUserIsMeesevaUser = Boolean.FALSE; private String activePropertyId; @Autowired private BoundaryService boundaryService; @Autowired private BasicPropertyDAO basicPropertyDAO; @Autowired private PtDemandDao ptDemandDAO; @Autowired private PropertyTaxUtil propertyTaxUtil; @Autowired private PropertyService propertyService; @Autowired private SecurityUtils securityUtils; @Autowired private UserService userService; @Override public Object getModel() { return null; } /** * @return - Gets forwarded to Search Property Screen for officials */ @SkipValidation @Action(value = "/search/searchProperty-searchForm") public String searchForm() { setAssessmentNum(""); setDoorNo(""); setMobileNumber(""); return NEW; } /** * Generalised method to give search property screen to perform different * transactions like alter, bifurcate, transfer etc * * @return */ public String commonForm() { loggedUserIsMeesevaUser = propertyService.isMeesevaUser(securityUtils.getCurrentUser()); if (loggedUserIsMeesevaUser) { final HttpServletRequest request = ServletActionContext.getRequest(); if (request.getParameter("applicationNo") == null || request.getParameter("meesevaServicecode") == null) { addActionMessage(getText("MEESEVA.005")); return RESULT_ERROR; } else { setMeesevaApplicationNumber(request.getParameter("applicationNo")); setMeesevaServiceCode(request.getParameter("meesevaServicecode")); } } return COMMON_FORM; } /** * Generalised method to redirect the form page to different transactional * form pages * * @return */ @ValidationErrorPage(value = COMMON_FORM) @Action(value = "/search/searchProperty-commonSearch") public String commonSearch() { final BasicProperty basicProperty = basicPropertyDAO.getBasicPropertyByIndexNumAndParcelID(assessmentNum, null); if (basicProperty == null) { addActionError(getText("validation.property.doesnot.exists")); return COMMON_FORM; } checkIsDemandActive(basicProperty.getProperty()); if (!applicationType.equalsIgnoreCase(APPLICATION_TYPE_COLLECT_TAX) && !applicationType.equalsIgnoreCase(APPLICATION_TYPE_DEMAND_BILL) && !applicationType.equalsIgnoreCase(APPLICATION_TYPE_REVISION_PETITION)) { if (!isDemandActive) { addActionError(getText("error.msg.demandInactive")); return COMMON_FORM; } else if (basicProperty.getActiveProperty().getPropertyDetail().getPropertyTypeMaster().getCode() .equalsIgnoreCase(PropertyTaxConstants.OWNERSHIP_TYPE_EWSHS)) { addActionError(getText("EWSHS.transaction.error")); return COMMON_FORM; } } if (applicationType.equalsIgnoreCase(APPLICATION_TYPE_MODIFY_DATA_ENTRY)){ Property activeProperty = basicProperty.getProperty(); //Allow modification only for properties where source is Data Entry if(!basicProperty.getSource().toString().equalsIgnoreCase(SOURCEOFDATA_DATAENTRY.toString())){ addActionError(getText("edit.dataEntry.source.error")); return COMMON_FORM; } if(basicProperty.getSource().toString().equalsIgnoreCase(SOURCEOFDATA_DATAENTRY.toString())){ //Validate if any other type of transactions are performed on the property if(basicProperty.getPropertySet().size()>1){ addActionError(getText("edit.dataEntry.transaction.error")); return COMMON_FORM; } //Validate if collection is done for the property. If done, then do not allow modification if(!activeProperty.getPtDemandSet().isEmpty()){ BigDecimal arrearCollection = BigDecimal.ZERO; BigDecimal currentCollection = BigDecimal.ZERO; Map<String, BigDecimal> demandCollectionMap = propertyTaxUtil.getDemandAndCollection(activeProperty); if(!demandCollectionMap.isEmpty()){ arrearCollection = demandCollectionMap.get(ARR_COLL_STR); currentCollection = demandCollectionMap.get(CURR_COLL_STR); if(arrearCollection.compareTo(BigDecimal.ZERO) > 0 || currentCollection.compareTo(BigDecimal.ZERO) > 0){ addActionError(getText("edit.dataEntry.collection.done.error")); return COMMON_FORM; } } } } activePropertyId = basicProperty.getActiveProperty().getId().toString(); } boolean hasChildPropertyUnderWorkflow = propertyTaxUtil.checkForParentUsedInBifurcation(assessmentNum); if (hasChildPropertyUnderWorkflow) { addActionError(getText("error.msg.child.underworkflow")); return COMMON_FORM; } if (APPLICATION_TYPE_REVISION_PETITION.equals(applicationType)) { if (isDemandActive) { addActionError(getText("revPetition.demandActive")); return COMMON_FORM; } } else if (APPLICATION_TYPE_ALTER_ASSESSENT.equals(applicationType) || APPLICATION_TYPE_BIFURCATE_ASSESSENT.equals(applicationType) || APPLICATION_TYPE_TRANSFER_OF_OWNERSHIP.equals(applicationType) || APPLICATION_TYPE_GRP.equals(applicationType) || APPLICATION_TYPE_DEMOLITION.equals(applicationType)) { if (!isDemandActive) { addActionError(getText("error.msg.demandInactive")); return COMMON_FORM; } } else if (APPLICATION_TYPE_DEMAND_BILL.equals(applicationType)) if (basicProperty.getProperty().getIsExemptedFromTax()) { addActionError(getText("error.msg.taxExempted")); return COMMON_FORM; } loggedUserIsMeesevaUser = propertyService.isMeesevaUser(securityUtils.getCurrentUser()); if (loggedUserIsMeesevaUser) { if (APPLICATION_TYPE_TRANSFER_OF_OWNERSHIP.equals(applicationType)) return APPLICATION_TYPE_MEESEVA_TRANSFER_OF_OWNERSHIP; else if(APPLICATION_TYPE_GRP.equals(applicationType)) return APPLICATION_TYPE_MEESEVA_GRP; else if(APPLICATION_TYPE_REVISION_PETITION.equals(applicationType)) return APPLICATION_TYPE_MEESEVA_RP; } if (APPLICATION_TYPE_EDIT_DEMAND.equals(applicationType)) { if(!(basicProperty.getSource().toString().equalsIgnoreCase(SOURCEOFDATA_DATAENTRY.toString()))){ addActionError(getText("edit.dataEntry.source.error")); return COMMON_FORM; } return APPLICATION_TYPE_EDIT_DEMAND; } if (APPLICATION_TYPE_ADD_DEMAND.equals(applicationType)) { if(!(basicProperty.getSource().toString().equalsIgnoreCase(SOURCEOFDATA_DATAENTRY.toString()) || basicProperty.getSource().toString().equalsIgnoreCase(SOURCEOFDATA_MIGRATION.toString()))){ addActionError(getText("add.dataEntry.source.error")); return COMMON_FORM; } return APPLICATION_TYPE_ADD_DEMAND; } if (basicProperty.getProperty().getIsExemptedFromTax() && !(applicationType.equalsIgnoreCase(APPLICATION_TYPE_TAX_EXEMTION)) && !applicationType.equalsIgnoreCase(APPLICATION_TYPE_MODIFY_DATA_ENTRY)) { addActionError(getText("action.error.msg.for.taxExempted")); return COMMON_FORM; } if (APPLICATION_TYPE_EDIT_OWNER.equals(applicationType)) { return APPLICATION_TYPE_EDIT_OWNER; } if (applicationType.equalsIgnoreCase(APPLICATION_TYPE_VACANCY_REMISSION) || applicationType.equalsIgnoreCase(APPLICATION_TYPE_TAX_EXEMTION)) { if (!isDemandActive) { addActionError(getText("error.msg.demandInactive")); return COMMON_FORM; } else mode = "commonSearch"; } if (APPLICATION_TYPE_EDIT_COLLECTION.equals(applicationType)) { if (!basicProperty.isEligible()) { addActionError(getText("error.msg.editCollection.noteligible")); return COMMON_FORM; } else { return APPLICATION_TYPE_EDIT_COLLECTION; } } return applicationType; } /** * @return to official search property result screen * @description searches property based on assessment no */ @ValidationErrorPage(value = "new") @Action(value = "/search/searchProperty-srchByAssessment") public String srchByAssessment() { if (LOGGER.isDebugEnabled()) LOGGER.debug("Entered into srchByAssessment method. Assessment Number : " + assessmentNum); try { if (LOGGER.isDebugEnabled()) LOGGER.debug("srchByAssessment : BasicProperty : " + basicProperty); if (basicProperty != null) { setSearchResultList(getSearchResults(basicProperty.getUpicNo())); checkIsMarkForDeactive(basicProperty); } if (assessmentNum != null && !assessmentNum.equals("")) setSearchValue("Assessment Number : " + assessmentNum); setSearchUri("../search/searchProperty-srchByAssessment.action"); setSearchCriteria("Search By Assessment number"); setSearchValue("Assessment number :" + assessmentNum); } catch (final IndexOutOfBoundsException iob) { final String msg = "Rollover is not done for " + assessmentNum; throw new ValidationException(Arrays.asList(new ValidationError(msg, msg))); } catch (final Exception e) { LOGGER.error("Exception in Search Property By Assessment ", e); throw new ApplicationRuntimeException("Exception : ", e); } if (LOGGER.isDebugEnabled()) LOGGER.debug("Exit from srchByAssessment method "); return TARGET; } @ValidationErrorPage(value = "new") @Action(value = "/search/searchProperty-srchByDoorNo") public String srchByDoorNo() { if (LOGGER.isDebugEnabled()) LOGGER.debug("Entered into srchByDoorNo method. Door No : " + doorNo); if (null != doorNo) try { final List<PropertyMaterlizeView> propertyList = propertyService.getPropertyByDoorNo(doorNo); for (final PropertyMaterlizeView propMatview : propertyList) { if (LOGGER.isDebugEnabled()) LOGGER.debug("srchByBndry : Property : " + propMatview); setSearchResultList(getResultsFromMv(propMatview)); } if (assessmentNum != null && !assessmentNum.equals("")) setSearchValue("Assessment Number : " + assessmentNum); setSearchUri("../search/searchProperty-srchByDoorNo.action"); setSearchCriteria("Search By Door Number"); setSearchValue("Door number :" + doorNo); } catch (final Exception e) { LOGGER.error("Exception in Search Property By Door number ", e); throw new ApplicationRuntimeException("Exception : ", e); } if (LOGGER.isDebugEnabled()) LOGGER.debug("Exit from srchByDoorNo method "); return TARGET; } @ValidationErrorPage(value = "new") @Action(value = "/search/searchProperty-srchByMobileNumber") public String srchByMobileNumber() { if (LOGGER.isDebugEnabled()) LOGGER.debug("Entered into srchByMobileNumber method. Mobile No : " + mobileNumber); if (StringUtils.isNotBlank(mobileNumber)) try { final List<PropertyMaterlizeView> propertyList = propertyService .getPropertyByMobileNumber(mobileNumber); for (final PropertyMaterlizeView propMatview : propertyList) { if (LOGGER.isDebugEnabled()) LOGGER.debug("srchByBndry : Property : " + propMatview); setSearchResultList(getResultsFromMv(propMatview)); } if (mobileNumber != null && !mobileNumber.equals("")) setSearchValue("Mobile Number : " + mobileNumber); setSearchUri("../search/searchProperty-srchByMobileNumber.action"); setSearchCriteria("Search By Mobile Number"); setSearchValue("Mobile number :" + mobileNumber); } catch (final Exception e) { LOGGER.error("Exception in Search Property By MobileNumber number ", e); throw new ApplicationRuntimeException("Exception : ", e); } if (LOGGER.isDebugEnabled()) LOGGER.debug("Exit from srchByMobileNumber method "); return TARGET; } /** * @return to official search property result screen * @description searches property based on Boundary : zone and ward */ @ValidationErrorPage(value = "new") @Action(value = "/search/searchProperty-srchByBndry") public String srchByBndry() { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Entered into srchByBndry method"); LOGGER.debug("srchByBndry : Zone Id : " + zoneId + ", " + "ward Id : " + wardId + ", " + "House Num : " + houseNumBndry + ", " + "Owner Name : " + ownerNameBndry); } String strZoneNum = ""; String strWardNum = ""; if (null != zoneId && zoneId != -1) strZoneNum = boundaryService.getBoundaryById(zoneId).getName(); if (null != wardId && wardId != -1) strWardNum = boundaryService.getBoundaryById(wardId).getName(); if (zoneId != null && zoneId != -1 || wardId != null && wardId != -1) try { final List<PropertyMaterlizeView> propertyList = propertyService.getPropertyByBoundary(zoneId, wardId, ownerNameBndry, houseNumBndry); if (!propertyList.isEmpty() && propertyList.size() > Integer.parseInt(PropertyTaxConstants.SEARCH_RESULT_COUNT)) { throw new ValidationException(Arrays.asList(new ValidationError("resultCountValidation", getText("search.validate.resultcountexceed500")))); } for (final PropertyMaterlizeView propMatview : propertyList) { if (LOGGER.isDebugEnabled()) LOGGER.debug("srchByBndry : Property : " + propMatview); setSearchResultList(getResultsFromMv(propMatview)); } setSearchUri("../search/searchProperty-srchByBndry.action"); setSearchCriteria("Search By Zone, Ward, Plot No/House No, Owner Name"); setSearchValue("Zone Num: " + strZoneNum + ", Ward Num: " + strWardNum + ", Plot No/House No: " + houseNumBndry + ", Owner Name: " + ownerNameBndry); } catch (final ValidationException e) { throw new ValidationException(e.getErrors()); } catch (final Exception e) { LOGGER.error("Exception in Search Property By Bndry ", e); throw new ApplicationRuntimeException("Exception : " + e); } if (LOGGER.isDebugEnabled()) LOGGER.debug("Exit from srchByBndry method"); return TARGET; } /** * @return to official search property result screen * @description searches property based on location boundary */ @ValidationErrorPage(value = "new") @Action(value = "/search/searchProperty-srchByLocation") public String srchByLocation() { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Entered into srchByArea method"); LOGGER.debug("srchByLocation : Location Id : " + locationId + ", " + "Owner Name : " + ownerName + ", " + "Plot No/House No : " + houseNumArea); } final String strLocationNum = boundaryService.getBoundaryById(locationId.longValue()).getName(); if (null != ownerName && org.apache.commons.lang.StringUtils.isNotEmpty(ownerName) && locationId != null && locationId != -1) try { final List<PropertyMaterlizeView> propertyList = propertyService.getPropertyByLocation(locationId, houseNumArea, ownerName); if (!propertyList.isEmpty() && propertyList.size() > Integer.parseInt(PropertyTaxConstants.SEARCH_RESULT_COUNT)) { ValidationError vr = new ValidationError("search.validate.resultcountexceed500", "search.validate.resultcountexceed500"); throw new ValidationException(Arrays.asList(vr)); } for (final PropertyMaterlizeView propMatview : propertyList) { if (LOGGER.isDebugEnabled()) LOGGER.debug("srchByLocation : Property : " + propMatview); setSearchResultList(getResultsFromMv(propMatview)); } setSearchUri("../search/searchProperty-srchByLocation.action"); setSearchCriteria("Search By Location, Owner Name"); setSearchValue("Location : " + strLocationNum + ", Owner Name : " + ownerName); } catch (final ValidationException e) { throw new ValidationException(e.getErrors()); } catch (final Exception e) { LOGGER.error("Exception in Search Property By Bndry ", e); throw new ApplicationRuntimeException("Exception : " + e); } if (LOGGER.isDebugEnabled()) LOGGER.debug("Exit from srchByArea method"); return TARGET; } /** * @return to official search property result screen * @description searches property based on Demand */ @ValidationErrorPage(value = "new") @Action(value = "/search/searchProperty-searchByDemand") public String searchByDemand() { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Entered into searchByDemand method"); LOGGER.debug("From Demand No : " + fromDemand + ", " + "To Demand No : " + toDemand); } if (fromDemand != null && fromDemand != "" && toDemand != null && toDemand != "") try { final List<PropertyMaterlizeView> propertyList = propertyService.getPropertyByDemand(fromDemand, toDemand); if (!propertyList.isEmpty() && propertyList.size() > Integer.parseInt(PropertyTaxConstants.SEARCH_RESULT_COUNT)) { ValidationError vr = new ValidationError("search.validate.resultcountexceed500", "search.validate.resultcountexceed500"); throw new ValidationException(Arrays.asList(vr)); } for (final PropertyMaterlizeView propMatview : propertyList) { if (LOGGER.isDebugEnabled()) LOGGER.debug("searchByDemand : Property : " + propMatview); setSearchResultList(getResultsFromMv(propMatview)); } setSearchUri("../search/searchProperty-searchByDemand.action"); setSearchCriteria("Search By FromDemand, ToDemand"); setSearchValue("From Demand: " + fromDemand + ", To Demand: " + toDemand); } catch (final ValidationException e) { throw new ValidationException(e.getErrors()); } catch (final Exception e) { LOGGER.error("Exception in Search Property By Bndry ", e); throw new ApplicationRuntimeException("Exception : " + e); } return TARGET; } /* * (non-Javadoc) * @see org.egov.infra.web.struts.actions.BaseFormAction#prepare() */ @Override public void prepare() { final List<Boundary> zoneList = boundaryService.getActiveBoundariesByBndryTypeNameAndHierarchyTypeName("Zone", REVENUE_HIERARCHY_TYPE); final List<Boundary> wardList = boundaryService.getActiveBoundariesByBndryTypeNameAndHierarchyTypeName("Ward", REVENUE_HIERARCHY_TYPE); final List<Boundary> locationList = boundaryService.getActiveBoundariesByBndryTypeNameAndHierarchyTypeName( "Locality", LOCATION_HIERARCHY_TYPE); setZoneBndryMap(CommonServices.getFormattedBndryMap(zoneList)); setWardndryMap(CommonServices.getFormattedBndryMap(wardList)); prepareWardDropDownData(zoneId != null, wardId != null); addDropdownData("Location", locationList); addDropdownData("PropTypeMaster", getPersistenceService().findAllByNamedQuery(PropertyTaxConstants.GET_PROPERTY_TYPES)); final Long userId = (Long) session().get(SESSIONLOGINID); if (userId != null) setRoleName(propertyTaxUtil.getRolesForUserId(userId)); if (StringUtils.isNotBlank(assessmentNum)) { basicProperty = basicPropertyDAO.getBasicPropertyByPropertyID(assessmentNum); } } /** * @Description Loads ward drop down for selected zone * @param zoneExists * @param wardExists */ @SkipValidation private void prepareWardDropDownData(final boolean zoneExists, final boolean wardExists) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Entered into prepareWardDropDownData method"); LOGGER.debug("Zone exists ? : " + zoneExists + ", " + "Ward exists ? : " + wardExists); } if (zoneExists && wardExists) { List<Boundary> wardNewList = new ArrayList<Boundary>(); wardNewList = boundaryService.getActiveChildBoundariesByBoundaryId(getZoneId()); addDropdownData("wardList", wardNewList); } else addDropdownData("wardList", Collections.EMPTY_LIST); } @Override public void validate() { if (StringUtils.equals(mode, "assessment")) { if (org.apache.commons.lang.StringUtils.isEmpty(assessmentNum) || org.apache.commons.lang.StringUtils.isBlank(assessmentNum)) addActionError(getText("mandatory.assessmentNo")); } else if (StringUtils.equals(mode, "bndry")) { if ((zoneId == null || zoneId == -1) && (wardId == null || wardId == -1)) addActionError(getText("mandatory.zoneorward")); } else if (StringUtils.equals(mode, "location")) { if (locationId == null || locationId == -1) addActionError(getText("mandatory.location")); if (ownerName == null || StringUtils.isEmpty(ownerName)) addActionError(getText("search.ownerName.null")); } else if (StringUtils.equals(mode, "demand")) { if (fromDemand == null || StringUtils.isEmpty(fromDemand)) addActionError(getText("mandatory.fromdemand")); if (toDemand == null || StringUtils.isEmpty(toDemand)) addActionError(getText("mandatory.todemand")); } else if (StringUtils.equals(mode, "doorNo")) { if (StringUtils.isBlank(doorNo)) addActionError(getText("mandatory.doorNo")); } else if (StringUtils.equals(mode, "mobileNo")) { if (StringUtils.isBlank(mobileNumber)) addActionError(getText("mandatory.MobileNumber")); } } /** * @param assessmentNumber * @return */ private List<Map<String, String>> getSearchResults(final String assessmentNumber) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Entered into getSearchResults method"); LOGGER.debug("Assessment Number : " + assessmentNumber); } if (assessmentNumber != null || org.apache.commons.lang.StringUtils.isNotEmpty(assessmentNumber)) { final BasicProperty basicProperty = basicPropertyDAO.getBasicPropertyByPropertyID(assessmentNumber); if (LOGGER.isDebugEnabled()) LOGGER.debug("BasicProperty : " + basicProperty); if (basicProperty != null) { final Property property = basicProperty.getProperty(); if (LOGGER.isDebugEnabled()) LOGGER.debug("Property : " + property); checkIsDemandActive(property); final Map<String, BigDecimal> demandCollMap = ptDemandDAO.getDemandCollMap(property); final Map<String, String> searchResultMap = new HashMap<String, String>(); searchResultMap.put("assessmentNum", assessmentNumber); searchResultMap.put("ownerName", basicProperty.getFullOwnerName()); searchResultMap.put("address", basicProperty.getAddress().toString()); searchResultMap.put("source", basicProperty.getSource().toString()); searchResultMap.put("isDemandActive", String.valueOf(isDemandActive)); searchResultMap.put("propType", property.getPropertyDetail().getPropertyTypeMaster().getCode()); searchResultMap.put("isTaxExempted", String.valueOf(property.getIsExemptedFromTax())); searchResultMap.put("isUnderWorkflow", String.valueOf(basicProperty.isUnderWorkflow())); searchResultMap.put("enableVacancyRemission", String.valueOf(propertyTaxUtil.enableVacancyRemission(basicProperty.getUpicNo()))); searchResultMap.put("enableMonthlyUpdate", String.valueOf(propertyTaxUtil.enableMonthlyUpdate(basicProperty.getUpicNo()))); searchResultMap.put("enableVRApproval", String.valueOf(propertyTaxUtil.enableVRApproval(basicProperty.getUpicNo()))); if (!property.getIsExemptedFromTax()) { searchResultMap.put("currFirstHalfDemand", demandCollMap.get(CURR_FIRSTHALF_DMD_STR).toString()); searchResultMap.put("currSecondHalfDemand", demandCollMap.get(CURR_SECONDHALF_DMD_STR).toString()); searchResultMap.put("arrDemandDue", demandCollMap.get(ARR_DMD_STR).subtract(demandCollMap.get(ARR_COLL_STR)).toString()); searchResultMap.put( "currFirstHalfDemandDue", demandCollMap.get(CURR_FIRSTHALF_DMD_STR) .subtract(demandCollMap.get(CURR_FIRSTHALF_COLL_STR)).toString()); searchResultMap.put( "currSecondHalfDemandDue", demandCollMap.get(CURR_SECONDHALF_DMD_STR) .subtract(demandCollMap.get(CURR_SECONDHALF_COLL_STR)).toString()); } else { searchResultMap.put("currFirstHalfDemand", "0"); searchResultMap.put("currFirstHalfDemandDue", "0"); searchResultMap.put("currSecondHalfDemand", "0"); searchResultMap.put("currSecondHalfDemandDue", "0"); searchResultMap.put("arrDemandDue", "0"); } if (LOGGER.isDebugEnabled()) LOGGER.debug("Assessment Number : " + searchResultMap.get("assessmentNum") + ", " + "Owner Name : " + searchResultMap.get("ownerName") + ", " + "Parcel id : " + searchResultMap.get("parcelId") + ", " + "Address : " + searchResultMap.get("address") + ", " + "Current Demand : " + searchResultMap.get("currDemand") + ", " + "Arrears Demand Due : " + searchResultMap.get("arrDemandDue") + ", " + "Current Demand Due : " + searchResultMap.get("currDemandDue")); searchList.add(searchResultMap); } } if (LOGGER.isDebugEnabled()) { LOGGER.debug("Search list : " + (searchList != null ? searchList : ZERO)); LOGGER.debug("Exit from getSearchResults method"); } return searchList; } /** * @param basicProperty */ private void checkIsMarkForDeactive(final BasicProperty basicProperty) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Entered into checkIsMarkForDeactive method"); LOGGER.debug("BasicProperty : " + basicProperty); } Set<PropertyStatusValues> propStatusValSet = new HashSet<PropertyStatusValues>(); propStatusValSet = basicProperty.getPropertyStatusValuesSet(); for (final PropertyStatusValues propStatusVal : propStatusValSet) { if (propStatusVal.getPropertyStatus().getStatusCode().equals(PROPERTY_STATUS_MARK_DEACTIVE)) markedForDeactive = "Y"; if (LOGGER.isDebugEnabled()) { LOGGER.debug("Property Status Values : " + propStatusVal); LOGGER.debug("Marked for Deactivation ? : " + markedForDeactive); } } } /** * @param property */ private void checkIsDemandActive(final Property property) { if (LOGGER.isDebugEnabled()) LOGGER.debug("Entered into checkIsDemandActive"); if (property.getStatus().equals(PropertyTaxConstants.STATUS_DEMAND_INACTIVE)) isDemandActive = false; else isDemandActive = true; if (LOGGER.isDebugEnabled()) { LOGGER.debug("checkIsDemandActive - Is demand active? : " + isDemandActive); LOGGER.debug("Exiting from checkIsDemandActive"); } } /** * @param pmv * @return */ private List<Map<String, String>> getResultsFromMv(final PropertyMaterlizeView pmv) { if (LOGGER.isDebugEnabled()) { LOGGER.debug("Entered into getSearchResults method"); LOGGER.debug("Assessment Number : " + pmv.getPropertyId()); } BasicProperty basicProperty = basicPropertyDAO.getBasicPropertyByPropertyID(pmv.getPropertyId()); Property property = basicProperty.getProperty(); if (basicProperty != null) { checkIsDemandActive(basicProperty.getProperty()); } if (pmv.getPropertyId() != null || org.apache.commons.lang.StringUtils.isNotEmpty(pmv.getPropertyId())) if (pmv != null) { final Map<String, String> searchResultMap = new HashMap<String, String>(); searchResultMap.put("assessmentNum", pmv.getPropertyId()); searchResultMap.put("ownerName", pmv.getOwnerName()); searchResultMap.put("parcelId", pmv.getGisRefNo()); searchResultMap.put("address", pmv.getPropertyAddress()); searchResultMap.put("source", pmv.getSource().toString()); searchResultMap.put("isDemandActive", String.valueOf(isDemandActive)); searchResultMap.put("propType", property.getPropertyDetail().getPropertyTypeMaster().getCode()); searchResultMap.put("isTaxExempted", String.valueOf(property.getIsExemptedFromTax())); searchResultMap.put("isUnderWorkflow", String.valueOf(basicProperty.isUnderWorkflow())); searchResultMap.put("enableVacancyRemission", String.valueOf(propertyTaxUtil.enableVacancyRemission(basicProperty.getUpicNo()))); searchResultMap.put("enableMonthlyUpdate", String.valueOf(propertyTaxUtil.enableMonthlyUpdate(basicProperty.getUpicNo()))); searchResultMap.put("enableVRApproval", String.valueOf(propertyTaxUtil.enableVRApproval(basicProperty.getUpicNo()))); if (pmv.getIsExempted()) { searchResultMap.put("currFirstHalfDemand", "0"); searchResultMap.put("currFirstHalfDemandDue", "0"); searchResultMap.put("currSecondHalfDemand", "0"); searchResultMap.put("currSecondHalfDemandDue", "0"); searchResultMap.put("arrDemandDue", "0"); } else { searchResultMap.put("currFirstHalfDemand", pmv.getAggrCurrFirstHalfDmd() == null ? "0" : pmv.getAggrCurrFirstHalfDmd().toString()); searchResultMap.put("currFirstHalfDemandDue", (pmv.getAggrCurrFirstHalfDmd() == null ? BigDecimal.ZERO : pmv.getAggrCurrFirstHalfDmd()) .subtract(pmv.getAggrCurrFirstHalfColl() == null ? BigDecimal.ZERO : pmv.getAggrCurrFirstHalfColl()) .toString()); searchResultMap.put("currSecondHalfDemand", pmv.getAggrCurrSecondHalfDmd() == null ? "0" : pmv.getAggrCurrSecondHalfDmd().toString()); searchResultMap.put("currSecondHalfDemandDue", (pmv.getAggrCurrSecondHalfDmd() == null ? BigDecimal.ZERO : pmv.getAggrCurrSecondHalfDmd()) .subtract(pmv.getAggrCurrSecondHalfColl() == null ? BigDecimal.ZERO : pmv.getAggrCurrSecondHalfColl()) .toString()); searchResultMap.put("arrDemandDue", (pmv.getAggrArrDmd() == null ? BigDecimal.ZERO : pmv.getAggrArrDmd()) .subtract(pmv.getAggrArrColl() == null ? BigDecimal.ZERO : pmv.getAggrArrColl()) .toString()); } searchList.add(searchResultMap); } if (LOGGER.isDebugEnabled()) { LOGGER.debug("Search list : " + (searchList != null ? searchList : ZERO)); LOGGER.debug("Exit from getSearchResults method"); } return searchList; } @ValidationErrorPage(value = "new") @Action(value = "/search/searchProperty-searchOwnerDetails") public String searchOwnerDetails() { if (basicProperty == null) { addActionError(getText("validation.property.doesnot.exists")); return NEW; } else { setPropertyOwner(basicProperty.getPrimaryOwner()); setMobileNumber(getPropertyOwner().getMobileNumber()); if (StringUtils.isBlank(propertyOwner.getMobileNumber())) { propertyOwner.setMobileNumber("N/A"); } for (final PropertyOwnerInfo propOwner : basicProperty.getPropertyOwnerInfo()) { final List<Address> addrSet = propOwner.getOwner().getAddress(); for (final Address address : addrSet) { setDoorNo(address.getHouseNoBldgApt() == null ? NOT_AVAILABLE : address.getHouseNoBldgApt()); break; } } return USER_DETAILS; } } @Action(value = "/search/searchProperty-updateMobileNo") public String updateMobileNo() { if (null != basicProperty) { setPropertyOwner(basicProperty.getPrimaryOwner()); } if (StringUtils.isNotBlank(mobileNumber)) { propertyOwner.setMobileNumber(mobileNumber); userService.updateUser(propertyOwner); } return UPDATEMOBILE_FORM; } @Action(value = "/search/searchproperty-alter-assessment") public String alterAssessment() { setApplicationType(APPLICATION_TYPE_ALTER_ASSESSENT); return commonForm(); } @Action(value = "/search/searchproperty-bifurcation") public String bifurcation() { setApplicationType(APPLICATION_TYPE_BIFURCATE_ASSESSENT); return commonForm(); } @Action(value = "/search/searchproperty-taxexemption") public String taxExemption() { setApplicationType(APPLICATION_TYPE_TAX_EXEMTION); return commonForm(); } @Action(value = "/search/searchproperty-editcollection") public String editCollection() { setApplicationType(APPLICATION_TYPE_EDIT_COLLECTION); return commonForm(); } @Action(value = "/search/searchproperty-editdemand") public String editDemand() { setApplicationType(APPLICATION_TYPE_EDIT_DEMAND); return commonForm(); } @Action(value = "/search/searchproperty-transferownership") public String transferOwnership() { setApplicationType(APPLICATION_TYPE_TRANSFER_OF_OWNERSHIP); return commonForm(); } @Action(value = "/search/searchproperty-collecttax") public String collectTax() { setApplicationType(APPLICATION_TYPE_COLLECT_TAX); return commonForm(); } @Action(value = "/search/searchproperty-revisionpetition") public String revisionPetition() { setApplicationType(APPLICATION_TYPE_REVISION_PETITION); return commonForm(); } @Action(value = "/search/searchproperty-general-revisionpetition") public String generalRevisionPetition() { setApplicationType(APPLICATION_TYPE_GRP); return commonForm(); } @Action(value = "/search/searchproperty-demolition") public String demolition() { setApplicationType(APPLICATION_TYPE_DEMOLITION); return commonForm(); } @Action(value = "/search/searchproperty-vacancyremission") public String vacancyRemission() { setApplicationType(APPLICATION_TYPE_VACANCY_REMISSION); return commonForm(); } @Action(value = "/search/searchproperty-generatedemandbill") public String generateDemandBill() { setApplicationType(APPLICATION_TYPE_DEMAND_BILL); return commonForm(); } @Action(value = "/search/searchproperty-editdataentry") public String editDataEntry() { setApplicationType(APPLICATION_TYPE_MODIFY_DATA_ENTRY); return commonForm(); } @Action(value = "/search/searchproperty-editownerdetails") public String editOwnerDetails() { setApplicationType(APPLICATION_TYPE_EDIT_OWNER); return commonForm(); } @Action(value = "/search/searchproperty-adddemand") public String AddDemand() { setApplicationType(APPLICATION_TYPE_ADD_DEMAND); return commonForm(); } public List<Map<String, String>> getSearchResultList() { return searchResultList; } public void setSearchResultList(final List<Map<String, String>> searchResultList) { this.searchResultList = searchResultList; } public Long getZoneId() { return zoneId; } public void setZoneId(final Long zoneId) { this.zoneId = zoneId; } public Long getWardId() { return wardId; } public void setWardId(final Long wardId) { this.wardId = wardId; } public String getOldHouseNum() { return oldHouseNum; } public void setOldHouseNum(final String oldHouseNum) { this.oldHouseNum = oldHouseNum; } public String getMode() { return mode; } public void setMode(final String mode) { this.mode = mode; } public String getSearchUri() { return searchUri; } public void setSearchUri(final String searchUri) { this.searchUri = searchUri; } public String getSearchCriteria() { return searchCriteria; } public void setSearchCriteria(String searchCriteria) { this.searchCriteria = searchCriteria; } public String getSearchValue() { return searchValue; } public void setSearchValue(final String searchValue) { this.searchValue = searchValue; } public Integer getAreaName() { return areaName; } public void setAreaName(final Integer areaName) { this.areaName = areaName; } public String getHouseNumBndry() { return houseNumBndry; } public void setHouseNumBndry(final String houseNumBndry) { this.houseNumBndry = houseNumBndry; } public String getOwnerNameBndry() { return ownerNameBndry; } public void setOwnerNameBndry(final String ownerNameBndry) { this.ownerNameBndry = ownerNameBndry; } public String getHouseNumArea() { return houseNumArea; } public void setHouseNumArea(final String houseNumArea) { this.houseNumArea = houseNumArea; } public String getOwnerName() { return ownerName; } public void setOwnerName(final String ownerName) { this.ownerName = ownerName; } public String getRoleName() { return roleName; } public void setRoleName(final String roleName) { this.roleName = roleName; } public Long getPropertyTypeMasterId() { return propertyTypeMasterId; } public void setPropertyTypeMasterId(final Long propertyTypeMasterId) { this.propertyTypeMasterId = propertyTypeMasterId; } public String getMarkedForDeactive() { return markedForDeactive; } public void setMarkedForDeactive(final String markedForDeactive) { this.markedForDeactive = markedForDeactive; } public Map<Long, String> getZoneBndryMap() { return ZoneBndryMap; } public void setZoneBndryMap(final Map<Long, String> zoneBndryMap) { ZoneBndryMap = zoneBndryMap; } public Map<Long, String> getWardndryMap() { return WardndryMap; } public void setWardndryMap(Map<Long, String> wardndryMap) { WardndryMap = wardndryMap; } public boolean getIsDemandActive() { return isDemandActive; } public void setIsDemandActive(final boolean isDemandActive) { this.isDemandActive = isDemandActive; } public Integer getLocationId() { return locationId; } public void setLocationId(final Integer locationId) { this.locationId = locationId; } public String getFromDemand() { return fromDemand; } public void setFromDemand(final String fromDemand) { this.fromDemand = fromDemand; } public String getToDemand() { return toDemand; } public void setToDemand(final String toDemand) { this.toDemand = toDemand; } public String getAssessmentNum() { return assessmentNum; } public void setAssessmentNum(final String assessmentNum) { this.assessmentNum = assessmentNum; } public String getApplicationType() { return applicationType; } public void setApplicationType(final String applicationType) { this.applicationType = applicationType; } public String getDoorNo() { return doorNo; } public void setDoorNo(String doorNo) { this.doorNo = doorNo; } public String getMobileNumber() { return mobileNumber; } public void setMobileNumber(String mobileNumber) { this.mobileNumber = mobileNumber; } public String getMeesevaApplicationNumber() { return meesevaApplicationNumber; } public void setMeesevaApplicationNumber(String meesevaApplicationNumber) { this.meesevaApplicationNumber = meesevaApplicationNumber; } public String getMeesevaServiceCode() { return meesevaServiceCode; } public void setMeesevaServiceCode(String meesevaServiceCode) { this.meesevaServiceCode = meesevaServiceCode; } public boolean getIsNagarPanchayat() { return propertyTaxUtil.checkIsNagarPanchayat(); } public User getPropertyOwner() { return propertyOwner; } public void setPropertyOwner(User propertyOwner) { this.propertyOwner = propertyOwner; } public BasicProperty getBasicProperty() { return basicProperty; } public void setBasicProperty(BasicProperty basicProperty) { this.basicProperty = basicProperty; } public String getActivePropertyId() { return activePropertyId; } public void setActivePropertyId(String activePropertyId) { this.activePropertyId = activePropertyId; } }