/**
* 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.stms.web.controller.transactions;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.validation.Valid;
import javax.validation.ValidationException;
import org.egov.commons.service.UOMService;
import org.egov.eis.entity.Assignment;
import org.egov.eis.service.AssignmentService;
import org.egov.eis.web.contract.WorkflowContainer;
import org.egov.eis.web.controller.workflow.GenericWorkFlowController;
import org.egov.infra.admin.master.service.DepartmentService;
import org.egov.infra.filestore.entity.FileStoreMapper;
import org.egov.infra.filestore.service.FileStoreService;
import org.egov.infra.security.utils.SecurityUtils;
import org.egov.ptis.domain.model.AssessmentDetails;
import org.egov.ptis.domain.model.PropertyTaxDetails;
import org.egov.ptis.domain.service.property.PropertyExternalService;
import org.egov.stms.masters.entity.FeesDetailMaster;
import org.egov.stms.masters.entity.enums.OwnerOfTheRoad;
import org.egov.stms.masters.entity.enums.PropertyType;
import org.egov.stms.masters.service.FeesDetailMasterService;
import org.egov.stms.transactions.charges.SewerageChargeCalculationService;
import org.egov.stms.transactions.entity.SewerageApplicationDetails;
import org.egov.stms.transactions.entity.SewerageApplicationDetailsDocument;
import org.egov.stms.transactions.entity.SewerageConnectionEstimationDetails;
import org.egov.stms.transactions.entity.SewerageConnectionFee;
import org.egov.stms.transactions.entity.SewerageFieldInspection;
import org.egov.stms.transactions.entity.SewerageFieldInspectionDetails;
import org.egov.stms.transactions.service.SewerageApplicationDetailsService;
import org.egov.stms.transactions.service.SewerageConnectionFeeService;
import org.egov.stms.transactions.service.SewerageConnectionService;
import org.egov.stms.transactions.service.SewerageEstimationDetailsService;
import org.egov.stms.transactions.service.SewerageFieldInspectionDetailsService;
import org.egov.stms.transactions.service.SewerageThirdPartyServices;
import org.egov.stms.utils.SewerageInspectionDetailsComparatorById;
import org.egov.stms.utils.SewerageTaxUtils;
import org.egov.stms.utils.constants.SewerageTaxConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.SmartValidator;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;
@Controller
@RequestMapping(value = "/transactions")
public class SewerageUpdateConnectionController extends GenericWorkFlowController {
private final SewerageApplicationDetailsService sewerageApplicationDetailsService;
private final DepartmentService departmentService;
@Autowired
private SewerageTaxUtils sewerageTaxUtils;
@Autowired
private SecurityUtils securityUtils;
@Autowired
private AssignmentService assignmentService;
@Autowired
@Qualifier("fileStoreService")
protected FileStoreService fileStoreService;
@Autowired
private FeesDetailMasterService feesDetailMasterService;
@Autowired
private UOMService uOMService;
@Autowired
private SewerageChargeCalculationService sewerageChargeCalculationService;
@Autowired
private SewerageConnectionFeeService SewerageConnectionFeeService;
@Autowired
private SewerageConnectionService sewerageConnectionService;
@Autowired
private SewerageEstimationDetailsService sewerageEstimationDetailsService;
@Autowired
private SewerageFieldInspectionDetailsService sewerageFieldInspectionDetailsService;
@Autowired
private PropertyExternalService propertyExternalService;
@Autowired
private SewerageThirdPartyServices sewerageThirdPartyServices;
@Autowired
public SewerageUpdateConnectionController(
final SewerageApplicationDetailsService sewerageApplicationDetailsService,
final DepartmentService departmentService, final SmartValidator validator) {
this.sewerageApplicationDetailsService = sewerageApplicationDetailsService;
this.departmentService = departmentService;
}
@ModelAttribute("sewerageApplicationDetails")
public SewerageApplicationDetails getSewerageApplicationDetails(@PathVariable final String applicationNumber) {
final SewerageApplicationDetails sewerageApplicationDetails = sewerageApplicationDetailsService
.findByApplicationNumber(applicationNumber);
return sewerageApplicationDetails;
}
@RequestMapping(value = "/update/{applicationNumber}", method = RequestMethod.GET)
public String view(final Model model, @PathVariable final String applicationNumber, final HttpServletRequest request) {
final SewerageApplicationDetails sewerageApplicationDetails = sewerageApplicationDetailsService
.findByApplicationNumber(applicationNumber);
if(sewerageApplicationDetails.getApplicationType().getCode().equalsIgnoreCase(SewerageTaxConstants.CHANGEINCLOSETS))
return "redirect:/transactions/modifyConnection-update/" + applicationNumber;
else if(sewerageApplicationDetails.getApplicationType().getCode().equalsIgnoreCase(SewerageTaxConstants.CLOSESEWERAGECONNECTION))
return "redirect:/transactions/closeSewerageConnection-update/" + applicationNumber;
if(sewerageApplicationDetails.getEstimationDetails()!=null && !sewerageApplicationDetails.getEstimationDetails().isEmpty())
sewerageApplicationDetails.setEstimationDetailsForUpdate(sewerageApplicationDetails.getEstimationDetails());
if(sewerageApplicationDetails.getFieldInspections()!=null && !sewerageApplicationDetails.getFieldInspections().isEmpty() && sewerageApplicationDetails.getFieldInspections().get(0)!=null
&& sewerageApplicationDetails.getFieldInspections().get(0).getFieldInspectionDetails()!=null)
sewerageApplicationDetails.getFieldInspections().get(0).setFieldInspectionDetailsForUpdate(
sewerageApplicationDetails.getFieldInspections().get(0).getFieldInspectionDetails());
model.addAttribute("sewerageApplcationDetails", sewerageApplicationDetails);
setCommonDetails(sewerageApplicationDetails, model, request);
return loadViewData(model, request, sewerageApplicationDetails);
}
private String loadViewData(final Model model, final HttpServletRequest request,
final SewerageApplicationDetails sewerageApplicationDetails) {
model.addAttribute("stateType", sewerageApplicationDetails.getClass().getSimpleName());
for(SewerageFieldInspection fieldInspection : sewerageApplicationDetails.getFieldInspections()){
Collections.sort(fieldInspection.getFieldInspectionDetails(), new SewerageInspectionDetailsComparatorById());
}
model.addAttribute("additionalRule", sewerageApplicationDetails.getApplicationType().getCode());
model.addAttribute("currentUser", sewerageTaxUtils.getCurrentUserRole(securityUtils.getCurrentUser()));
model.addAttribute("currentState", sewerageApplicationDetails.getCurrentState().getValue());
if(sewerageApplicationDetails.getCurrentState().getValue().equalsIgnoreCase(SewerageTaxConstants.WF_STATE_REJECTED))
if (sewerageTaxUtils.isInspectionFeeCollectionRequired())
model.addAttribute("pendingActions", SewerageTaxConstants.WFPA_REJECTED_INSPECTIONFEE_COLLECTION);
else
model.addAttribute("pendingActions", SewerageTaxConstants.WF_STATE_REJECTED);
prepareWorkflow(model, sewerageApplicationDetails, new WorkflowContainer());
model.addAttribute("sewerageApplicationDetails", sewerageApplicationDetails);
model.addAttribute("applicationHistory",
sewerageApplicationDetailsService.getHistory(sewerageApplicationDetails));
model.addAttribute("approvalDepartmentList", departmentService.getAllDepartments());
model.addAttribute("pipeSize", SewerageTaxConstants.PIPE_SCREW_SIZE);
model.addAttribute("roadOwner", OwnerOfTheRoad.values());
model.addAttribute("uomList", uOMService.findAllOrderByCategory());
Map<String, String> modelParams = sewerageApplicationDetailsService.showApprovalDetailsByApplcationCurState(sewerageApplicationDetails);
model.addAttribute("mode", modelParams.get("mode"));
model.addAttribute("showApprovalDtls", modelParams.get("showApprovalDtls"));
if (modelParams.get("mode").equalsIgnoreCase("edit")) {
FeesDetailMaster fdm = feesDetailMasterService.findByCodeAndIsActive(
SewerageTaxConstants.FEES_ESTIMATIONCHARGES_CODE, true);
List<SewerageConnectionFee> connectionFeeList = SewerageConnectionFeeService
.findAllByApplicationDetailsAndFeesDetail(sewerageApplicationDetails, fdm);
if (connectionFeeList.isEmpty()) {
createSewerageConnectionFee(sewerageApplicationDetails,
SewerageTaxConstants.FEES_ESTIMATIONCHARGES_CODE);
}
}
if(sewerageApplicationDetails.getStatus()!=null &&
sewerageApplicationDetails.getStatus().getCode().equalsIgnoreCase(SewerageTaxConstants.APPLICATION_STATUS_INITIALAPPROVED)){
populateDonationSewerageTax(sewerageApplicationDetails);
}
// TODO :To Support Documents Re-Attachment on Edit mode
if (modelParams.get("mode").equals("editOnReject")) {
List<SewerageApplicationDetailsDocument> docList = sewerageConnectionService
.getSewerageApplicationDoc(sewerageApplicationDetails);
model.addAttribute("documentNamesList", docList);
} else {
model.addAttribute("documentNamesList",
sewerageConnectionService.getSewerageApplicationDoc(sewerageApplicationDetails));
}
final BigDecimal sewerageTaxDue = sewerageApplicationDetailsService.getTotalAmount(sewerageApplicationDetails);
model.addAttribute("sewerageTaxDue", sewerageTaxDue);
model.addAttribute("propertyTypes", PropertyType.values());
return "newconnection-edit";
}
private void setCommonDetails(final SewerageApplicationDetails sewerageApplicationDetails,final Model model, final HttpServletRequest request) {
final String assessmentNumber = sewerageApplicationDetails.getConnectionDetail()
.getPropertyIdentifier();
final AssessmentDetails propertyOwnerDetails = sewerageThirdPartyServices.getPropertyDetails(assessmentNumber,
request);
if (propertyOwnerDetails != null)
model.addAttribute("propertyOwnerDetails", propertyOwnerDetails);
final PropertyTaxDetails propertyTaxDetails = propertyExternalService.getPropertyTaxDetails(assessmentNumber,null);
model.addAttribute("propertyTax", propertyTaxDetails.getTotalTaxAmt());
}
private void createSewerageConnectionFee(final SewerageApplicationDetails sewerageApplicationDetails, String feeCode) {
List<FeesDetailMaster> inspectionFeeList = feesDetailMasterService.findAllActiveFeesDetailByFeesCode(feeCode);
for (FeesDetailMaster feeDetailMaster : inspectionFeeList) {
SewerageConnectionFee connectionFee = new SewerageConnectionFee();
connectionFee.setFeesDetail(feeDetailMaster);
if (feeDetailMaster.getIsFixedRate())
connectionFee.setAmount(feeDetailMaster.getAmount().doubleValue());
connectionFee.setApplicationDetails(sewerageApplicationDetails);
sewerageApplicationDetails.getConnectionFees().add(connectionFee);
}
}
@RequestMapping(value = "/update/{applicationNumber}", method = RequestMethod.POST)
public String update(@Valid @ModelAttribute SewerageApplicationDetails sewerageApplicationDetails,
final BindingResult resultBinder, final RedirectAttributes redirectAttributes,
final HttpServletRequest request,final HttpSession session, final Model model, @RequestParam("files") final MultipartFile[] files,
@RequestParam final String removedInspectRowId, @RequestParam final String removedEstimationDtlRowId) {
String mode = "";
String workFlowAction = "";
if (request.getParameter("mode") != null)
mode = request.getParameter("mode");
if (request.getParameter("workFlowAction") != null)
workFlowAction = request.getParameter("workFlowAction");
request.getSession().setAttribute(SewerageTaxConstants.WORKFLOW_ACTION, workFlowAction);
if ((sewerageApplicationDetails.getStatus().getCode()
.equalsIgnoreCase(SewerageTaxConstants.APPLICATION_STATUS_CREATED) || sewerageApplicationDetails.getStatus().getCode()
.equalsIgnoreCase(SewerageTaxConstants.APPLICATION_STATUS_INSPECTIONFEEPAID))
&& mode.equalsIgnoreCase("edit"))
if (workFlowAction.equalsIgnoreCase(SewerageTaxConstants.WFLOW_ACTION_STEP_FORWARD)) {
List<SewerageConnectionEstimationDetails> existingSewerage = populateEstimationDetails(
sewerageApplicationDetails);
List<SewerageFieldInspectionDetails> existingInspection = populateInspectionDetails(
sewerageApplicationDetails, request, files);
populateFeesDetails(sewerageApplicationDetails);
sewerageApplicationDetailsService.save(sewerageApplicationDetails);
if(existingSewerage!=null && !existingSewerage.isEmpty())
sewerageEstimationDetailsService.deleteAllInBatch(existingSewerage);
if(existingInspection!=null && !existingInspection.isEmpty())
sewerageFieldInspectionDetailsService.deleteAllInBatch(existingInspection);
} else if (workFlowAction.equalsIgnoreCase(SewerageTaxConstants.WFLOW_ACTION_STEP_REJECT)) {
sewerageApplicationDetailsService.getCurrentSession().evict(sewerageApplicationDetails);
sewerageApplicationDetails = sewerageApplicationDetailsService.findBy(sewerageApplicationDetails
.getId());
}
if(sewerageApplicationDetails.getStatus().getCode()!=null &&
sewerageApplicationDetails.getStatus().getCode().equalsIgnoreCase(SewerageTaxConstants.APPLICATION_STATUS_INITIALAPPROVED)
&& !workFlowAction.equalsIgnoreCase(SewerageTaxConstants.WFLOW_ACTION_STEP_REJECT)){
populateDonationSewerageTax(sewerageApplicationDetails);
}
Long approvalPosition = 0l;
String approvalComment = "";
if (request.getParameter("approvalComent") != null)
approvalComment = request.getParameter("approvalComent");
if (request.getParameter("approvalPosition") != null && !request.getParameter("approvalPosition").isEmpty())
approvalPosition = Long.valueOf(request.getParameter("approvalPosition"));
if ((approvalPosition == null || approvalPosition.equals(Long.valueOf(0)))
&& request.getParameter("approvalPosition") != null
&& !request.getParameter("approvalPosition").isEmpty())
approvalPosition = Long.valueOf(request.getParameter("approvalPosition"));
if (!resultBinder.hasErrors()) {
try {
if (null != workFlowAction)
if (workFlowAction.equalsIgnoreCase(SewerageTaxConstants.PREVIEWWORKFLOWACTION)
&& sewerageApplicationDetails.getApplicationType().getCode()
.equals(SewerageTaxConstants.NEWSEWERAGECONNECTION))
return "redirect:/transactions/workorder?pathVar="
+ sewerageApplicationDetails.getApplicationNumber();
sewerageApplicationDetailsService.updateSewerageApplicationDetails(sewerageApplicationDetails,
approvalPosition, approvalComment, sewerageApplicationDetails.getApplicationType().getCode(),
workFlowAction, mode, null,request,session);
} catch (final ValidationException e) {
throw new ValidationException(e.getMessage());
}
if (workFlowAction != null && !workFlowAction.isEmpty()
&& workFlowAction.equalsIgnoreCase(SewerageTaxConstants.WF_ESTIMATION_NOTICE_BUTTON))
return "redirect:/transactions/estimationnotice?pathVar="
+ sewerageApplicationDetails.getApplicationNumber();
if (workFlowAction != null && !workFlowAction.isEmpty()
&& workFlowAction.equalsIgnoreCase(SewerageTaxConstants.WF_CLOSERACKNOWLDGEENT_BUTTON))
return "redirect:/applications/acknowlgementNotice?pathVar="
+ sewerageApplicationDetails.getApplicationNumber();
final Assignment currentUserAssignment = assignmentService.getPrimaryAssignmentForGivenRange(securityUtils
.getCurrentUser().getId(), new Date(), new Date());
String nextDesign = "";
Assignment assignObj = null;
List<Assignment> asignList = null;
if(approvalPosition==null || approvalPosition==0){
approvalPosition=assignmentService.getPrimaryAssignmentForUser(sewerageApplicationDetails.getCreatedBy().getId()).getPosition().getId();
}
if (approvalPosition != null)
assignObj = assignmentService.getPrimaryAssignmentForPositon(approvalPosition);
if (assignObj != null) {
asignList = new ArrayList<Assignment>();
asignList.add(assignObj);
} else if (assignObj == null && approvalPosition != null)
asignList = assignmentService.getAssignmentsForPosition(approvalPosition, new Date());
nextDesign = asignList != null && !asignList.isEmpty() ? asignList.get(0).getDesignation().getName() : "";
final String pathVars = sewerageApplicationDetails.getApplicationNumber() + ","
+ sewerageTaxUtils.getApproverName(approvalPosition) + ","
+ (currentUserAssignment != null ? currentUserAssignment.getDesignation().getName() : "") + ","
+ (nextDesign != null ? nextDesign : "");
return "redirect:/transactions/application-success?pathVars=" + pathVars;
} else
return loadViewData(model, request, sewerageApplicationDetails);
}
private void populateDonationSewerageTax(final SewerageApplicationDetails sewerageApplicationDetails) {
FeesDetailMaster donationCharge = feesDetailMasterService.findByCodeAndIsActive(
SewerageTaxConstants.FEES_DONATIONCHARGE_CODE, true);
List<SewerageConnectionFee> donationChargeList = SewerageConnectionFeeService
.findAllByApplicationDetailsAndFeesDetail(sewerageApplicationDetails, donationCharge);
if (donationChargeList.isEmpty()) {
SewerageConnectionFee connectionFee = new SewerageConnectionFee();
connectionFee.setFeesDetail(donationCharge);
connectionFee.setAmount(sewerageChargeCalculationService.calculateDonationCharges(
sewerageApplicationDetails).doubleValue());
connectionFee.setApplicationDetails(sewerageApplicationDetails);
sewerageApplicationDetails.getConnectionFees().add(connectionFee);
}
FeesDetailMaster sewerageTax = feesDetailMasterService.findByCodeAndIsActive(
SewerageTaxConstants.FEES_SEWERAGETAX_CODE, true);
List<SewerageConnectionFee> sewerageTaxFeeList = SewerageConnectionFeeService
.findAllByApplicationDetailsAndFeesDetail(sewerageApplicationDetails, sewerageTax);
if (sewerageTaxFeeList.isEmpty()) {
SewerageConnectionFee connectionFee = new SewerageConnectionFee();
connectionFee = new SewerageConnectionFee();
connectionFee.setFeesDetail(sewerageTax);
connectionFee.setAmount(sewerageChargeCalculationService.calculateSewerageCharges(
sewerageApplicationDetails).doubleValue());
connectionFee.setApplicationDetails(sewerageApplicationDetails);
sewerageApplicationDetails.getConnectionFees().add(connectionFee);
}
}
private List<SewerageConnectionEstimationDetails> populateEstimationDetails(
final SewerageApplicationDetails sewerageApplicationDetails) {
final List<SewerageConnectionEstimationDetails> sewerageConnectionEstimationDetailList = new ArrayList<SewerageConnectionEstimationDetails>();
final List<SewerageConnectionEstimationDetails> existingSewerage = new ArrayList<SewerageConnectionEstimationDetails>();
if (!sewerageApplicationDetails.getEstimationDetailsForUpdate().isEmpty()) {
for (final SewerageConnectionEstimationDetails estimationDetails : sewerageApplicationDetails
.getEstimationDetails()) {
existingSewerage.add(estimationDetails);
}
for (final SewerageConnectionEstimationDetails estimationDetail : sewerageApplicationDetails
.getEstimationDetailsForUpdate()) {
if (validSewerageConnectioEstimationDetail(estimationDetail)) {
SewerageConnectionEstimationDetails estimationDtl = new SewerageConnectionEstimationDetails();
estimationDtl.setAmount(estimationDetail.getAmount());
estimationDtl.setItemDescription(estimationDetail.getItemDescription());
estimationDtl.setQuantity(estimationDetail.getQuantity());
estimationDtl.setUnitOfMeasurement(estimationDetail.getUnitOfMeasurement());
estimationDtl.setUnitRate(estimationDetail.getUnitRate());
estimationDtl.setApplicationDetails(sewerageApplicationDetails);
sewerageConnectionEstimationDetailList.add(estimationDtl);
}
}
}
sewerageApplicationDetails.setEstimationDetails(sewerageConnectionEstimationDetailList);
if (!existingSewerage.isEmpty()) {
return existingSewerage;
}
return null;
}
private void populateFeesDetails(final SewerageApplicationDetails sewerageApplicationDetails) {
if (!sewerageApplicationDetails.getConnectionFees().isEmpty()){
for (final SewerageConnectionFee scf : sewerageApplicationDetails.getConnectionFees()) {
scf.setApplicationDetails(sewerageApplicationDetails);
}
}
}
private List<SewerageFieldInspectionDetails> populateInspectionDetails(final SewerageApplicationDetails sewerageApplicationDetails,
final HttpServletRequest request, final MultipartFile[] files) {
new ArrayList<SewerageFieldInspectionDetails>();
final String inspectionDate = request.getParameter("inspectionDate");
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
List<SewerageFieldInspectionDetails> existingInspectionDtlList = new ArrayList<SewerageFieldInspectionDetails>();
if (!sewerageApplicationDetails.getFieldInspections().isEmpty()) {
for (final SewerageFieldInspection sewerageFieldInspection : sewerageApplicationDetails
.getFieldInspections()) {
List<SewerageFieldInspectionDetails> sewerageFieldInspectionDetailList = new ArrayList<SewerageFieldInspectionDetails>();
sewerageFieldInspection.setApplicationDetails(sewerageApplicationDetails);
try {
sewerageFieldInspection.setInspectionDate(sdf.parse(inspectionDate));
} catch (ParseException e) {
}
final Set<FileStoreMapper> fileStoreSet = sewerageTaxUtils.addToFileStore(files);
Iterator<FileStoreMapper> fsIterator = null;
if (fileStoreSet != null && !fileStoreSet.isEmpty())
fsIterator = fileStoreSet.iterator();
if (fsIterator != null && fsIterator.hasNext())
sewerageFieldInspection.setFileStore(fsIterator.next());
if (!sewerageFieldInspection.getFieldInspectionDetailsForUpdate().isEmpty()) {
for (SewerageFieldInspectionDetails fieldInspectionDtls : sewerageFieldInspection
.getFieldInspectionDetails()) {
existingInspectionDtlList.add(fieldInspectionDtls);
}
for (SewerageFieldInspectionDetails fieldInspectionDtl : sewerageFieldInspection
.getFieldInspectionDetailsForUpdate()) {
if (validSewerageFieldInspectionDetails(fieldInspectionDtl)) {
SewerageFieldInspectionDetails sewerageFieldInspectionDetails = new SewerageFieldInspectionDetails();
sewerageFieldInspectionDetails.setNoOfPipes(fieldInspectionDtl.getNoOfPipes());
sewerageFieldInspectionDetails.setPipeSize(fieldInspectionDtl.getPipeSize());
sewerageFieldInspectionDetails.setPipeLength(fieldInspectionDtl.getPipeLength());
sewerageFieldInspectionDetails.setScrewSize(fieldInspectionDtl.getScrewSize());
sewerageFieldInspectionDetails.setNoOfScrews(fieldInspectionDtl.getNoOfScrews());
sewerageFieldInspectionDetails.setDistance(fieldInspectionDtl.getDistance());
sewerageFieldInspectionDetails.setRoadDigging(fieldInspectionDtl.isRoadDigging());
sewerageFieldInspectionDetails.setRoadLength(fieldInspectionDtl.getRoadLength());
sewerageFieldInspectionDetails.setRoadOwner(fieldInspectionDtl.getRoadOwner());
sewerageFieldInspectionDetails.setFieldInspection(sewerageFieldInspection);
sewerageFieldInspectionDetailList.add(sewerageFieldInspectionDetails);
}
}
}
sewerageFieldInspection.setFieldInspectionDetails(sewerageFieldInspectionDetailList);
}
}
if (existingInspectionDtlList != null) {
return existingInspectionDtlList;
}
return null;
}
private boolean validSewerageFieldInspectionDetails(
final SewerageFieldInspectionDetails sewerageFieldInspectionDetails) {
if (sewerageFieldInspectionDetails == null || sewerageFieldInspectionDetails != null
&& (sewerageFieldInspectionDetails.getNoOfPipes() == null || sewerageFieldInspectionDetails.getNoOfPipes() == 0))
return false;
return true;
}
private boolean validSewerageConnectioEstimationDetail(
final SewerageConnectionEstimationDetails sewerageConnectionEstimationDetails) {
if (sewerageConnectionEstimationDetails == null || (sewerageConnectionEstimationDetails != null
&& sewerageConnectionEstimationDetails.getItemDescription() == null))
return false;
return true;
}
}