Search in sources :

Example 1 with LoanProductRequest

use of org.mifos.dto.domain.LoanProductRequest in project head by mifos.

the class LoanOfferingBO method toFullDto.

public LoanProductRequest toFullDto() {
    ProductDetailsDto details = super.toDetailsDto();
    Integer currencyId = super.getCurrency().getCurrencyId().intValue();
    String currencyCode = super.getCurrency().getCurrencyName();
    boolean includeInLoanCounter = YesNoFlag.YES.getValue().equals(this.loanCounter);
    boolean waiverInterestBool = YesNoFlag.YES.getValue().equals(this.waiverInterest);
    Integer frequencyType = this.loanOfferingMeeting.getMeeting().getRecurrenceType().getValue().intValue();
    Integer recurs = this.loanOfferingMeeting.getMeeting().getRecurAfter().intValue();
    Integer loanAmountCalculationType = LoanProductCalculationType.UNKNOWN.getValue();
    MinMaxDefaultDto loanAmountSameForAllLoanRange = null;
    List<LowerUpperMinMaxDefaultDto> loanAmountByLastLoanAmountList = new ArrayList<LowerUpperMinMaxDefaultDto>();
    List<MinMaxDefaultDto> loanAmountByLoanCycleList = new ArrayList<MinMaxDefaultDto>();
    if (!this.loanAmountSameForAllLoan.isEmpty()) {
        loanAmountCalculationType = LoanProductCalculationType.SAME_FOR_ALL_LOANS.getValue();
        LoanAmountSameForAllLoanBO sameForAllLoans = getEligibleLoanAmountSameForAllLoan();
        loanAmountSameForAllLoanRange = MinMaxDefaultDto.create(sameForAllLoans.getMinLoanAmount(), sameForAllLoans.getMaxLoanAmount(), sameForAllLoans.getDefaultLoanAmount());
    }
    if (!this.loanAmountFromLastLoan.isEmpty()) {
        loanAmountCalculationType = LoanProductCalculationType.BY_LAST_LOAN.getValue();
        for (LoanAmountFromLastLoanAmountBO loanCycle : this.loanAmountFromLastLoan) {
            LowerUpperMinMaxDefaultDto cycle = LowerUpperMinMaxDefaultDto.create(loanCycle.getStartRange(), loanCycle.getEndRange(), loanCycle.getMinLoanAmount(), loanCycle.getMaxLoanAmount(), loanCycle.getDefaultLoanAmount());
            loanAmountByLastLoanAmountList.add(cycle);
        }
    }
    if (!this.loanAmountFromLoanCycle.isEmpty()) {
        loanAmountCalculationType = LoanProductCalculationType.BY_LOAN_CYCLE.getValue();
        for (LoanAmountFromLoanCycleBO loanCycle : this.loanAmountFromLoanCycle) {
            MinMaxDefaultDto cycle = MinMaxDefaultDto.create(loanCycle.getMinLoanAmount(), loanCycle.getMaxLoanAmount(), loanCycle.getDefaultLoanAmount());
            loanAmountByLoanCycleList.add(cycle);
        }
    }
    LoanAmountDetailsDto loanAmountDetails = new LoanAmountDetailsDto(loanAmountCalculationType, loanAmountSameForAllLoanRange, loanAmountByLastLoanAmountList, loanAmountByLoanCycleList);
    Integer installmentCalculationType = LoanProductCalculationType.UNKNOWN.getValue();
    MinMaxDefaultDto installmentSameForAllLoanRange = null;
    List<LowerUpperMinMaxDefaultDto> installmentByLastLoanAmountList = new ArrayList<LowerUpperMinMaxDefaultDto>();
    List<MinMaxDefaultDto> installmentByLoanCycleList = new ArrayList<MinMaxDefaultDto>();
    if (!this.noOfInstallSameForAllLoan.isEmpty()) {
        installmentCalculationType = LoanProductCalculationType.SAME_FOR_ALL_LOANS.getValue();
        LoanOfferingInstallmentRange sameForAllLoans = getEligibleInstallmentSameForAllLoan();
        installmentSameForAllLoanRange = MinMaxDefaultDto.create(sameForAllLoans.getMinNoOfInstall(), sameForAllLoans.getMaxNoOfInstall(), sameForAllLoans.getDefaultNoOfInstall());
    }
    if (!this.noOfInstallFromLastLoan.isEmpty()) {
        installmentCalculationType = LoanProductCalculationType.BY_LAST_LOAN.getValue();
        for (NoOfInstallFromLastLoanAmountBO loanCycle : this.noOfInstallFromLastLoan) {
            LowerUpperMinMaxDefaultDto cycle = LowerUpperMinMaxDefaultDto.create(loanCycle.getStartRange(), loanCycle.getEndRange(), loanCycle.getMinNoOfInstall(), loanCycle.getMaxNoOfInstall(), loanCycle.getDefaultNoOfInstall());
            installmentByLastLoanAmountList.add(cycle);
        }
    }
    if (!this.noOfInstallFromLoanCycle.isEmpty()) {
        installmentCalculationType = LoanProductCalculationType.BY_LOAN_CYCLE.getValue();
        for (NoOfInstallFromLoanCycleBO loanCycle : this.noOfInstallFromLoanCycle) {
            MinMaxDefaultDto cycle = MinMaxDefaultDto.create(loanCycle.getMinNoOfInstall(), loanCycle.getMaxNoOfInstall(), loanCycle.getDefaultNoOfInstall());
            installmentByLoanCycleList.add(cycle);
        }
    }
    LoanAmountDetailsDto installmentCalculationDetails = new LoanAmountDetailsDto(installmentCalculationType, installmentSameForAllLoanRange, installmentByLastLoanAmountList, installmentByLoanCycleList);
    RepaymentDetailsDto repaymentDetails = new RepaymentDetailsDto(frequencyType, recurs, installmentCalculationDetails, this.gracePeriodType.getId().intValue(), this.gracePeriodDuration.intValue());
    Integer interestRateType = this.interestTypes.getId().intValue();
    MinMaxDefaultDto interestRateRange = MinMaxDefaultDto.create(this.minInterestRate, this.maxInterestRate, this.defInterestRate);
    List<String> fees = new ArrayList<String>();
    List<Integer> applicableFees = new ArrayList<Integer>();
    for (LoanOfferingFeesEntity fee : this.loanOfferingFees) {
        applicableFees.add(fee.getFees().getFeeId().intValue());
        fees.add(fee.getFees().getFeeName());
    }
    List<String> funds = new ArrayList<String>();
    List<Integer> applicableFunds = new ArrayList<Integer>();
    for (LoanOfferingFundEntity fund : this.loanOfferingFunds) {
        applicableFunds.add(fund.getFund().getFundId().intValue());
        funds.add(fund.getFund().getFundName());
    }
    List<String> penalties = new ArrayList<String>();
    List<Integer> applicablePenalties = new ArrayList<Integer>();
    for (PrdOfferingPenaltiesEntity penalty : this.loanOfferingPenalties) {
        applicablePenalties.add(penalty.getPenalty().getPenaltyId().intValue());
        penalties.add(penalty.getPenalty().getPenaltyName());
    }
    Integer interestGlCodeId = this.interestGLcode.getGlcodeId().intValue();
    String interestGlCodeValue = this.interestGLcode.getGlcode();
    Integer principalClCodeId = this.principalGLcode.getGlcodeId().intValue();
    String principalGlCodeValue = this.principalGLcode.getGlcode();
    AccountingDetailsDto accountDetails = new AccountingDetailsDto(applicableFunds, interestGlCodeId, principalClCodeId);
    LoanProductRequest loanProductDto = new LoanProductRequest(details, includeInLoanCounter, waiverInterestBool, currencyId, loanAmountDetails, interestRateType, interestRateRange, repaymentDetails, applicableFees, applicablePenalties, accountDetails);
    loanProductDto.setMultiCurrencyEnabled(false);
    loanProductDto.setCurrencyCode(currencyCode);
    loanProductDto.setInterestRateTypeName(this.interestTypes.getName());
    loanProductDto.setFees(fees);
    loanProductDto.setFunds(funds);
    loanProductDto.setPenalties(penalties);
    loanProductDto.setInterestGlCodeValue(interestGlCodeValue);
    loanProductDto.setPrincipalGlCodeValue(principalGlCodeValue);
    return loanProductDto;
}
Also used : LoanAmountDetailsDto(org.mifos.dto.screen.LoanAmountDetailsDto) ArrayList(java.util.ArrayList) ProductDetailsDto(org.mifos.dto.domain.ProductDetailsDto) MinMaxDefaultDto(org.mifos.dto.domain.MinMaxDefaultDto) LowerUpperMinMaxDefaultDto(org.mifos.dto.domain.LowerUpperMinMaxDefaultDto) LowerUpperMinMaxDefaultDto(org.mifos.dto.domain.LowerUpperMinMaxDefaultDto) RepaymentDetailsDto(org.mifos.dto.domain.RepaymentDetailsDto) LoanProductRequest(org.mifos.dto.domain.LoanProductRequest) AccountingDetailsDto(org.mifos.dto.screen.AccountingDetailsDto)

Example 2 with LoanProductRequest

use of org.mifos.dto.domain.LoanProductRequest in project head by mifos.

the class LoanProductChangeLogController method showAllAuditLogsForSavingsProducts.

@ModelAttribute("auditLog")
@RequestMapping(method = RequestMethod.GET)
public AuditLogScreenDto showAllAuditLogsForSavingsProducts(@RequestParam(value = "productId", required = true) Integer productId) {
    LoanProductRequest productDetails = adminServiceFacade.retrieveLoanProductDetails(productId);
    List<AuditLogDto> auditLogRecords = adminServiceFacade.retrieveLoanProductAuditLogs(productId);
    return new AuditLogScreenDto(productDetails.getProductDetails().getId(), productDetails.getProductDetails().getName(), productDetails.getProductDetails().getCreatedDateFormatted(), auditLogRecords);
}
Also used : AuditLogScreenDto(org.mifos.dto.screen.AuditLogScreenDto) AuditLogDto(org.mifos.dto.domain.AuditLogDto) LoanProductRequest(org.mifos.dto.domain.LoanProductRequest) ModelAttribute(org.springframework.web.bind.annotation.ModelAttribute) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 3 with LoanProductRequest

use of org.mifos.dto.domain.LoanProductRequest in project head by mifos.

the class EditLoanProductFormController method showPopulatedForm.

@RequestMapping(method = RequestMethod.GET)
@ModelAttribute("loanProduct")
public LoanProductFormBean showPopulatedForm(@RequestParam(value = "productId", required = true) Integer productId) {
    LoanProductFormDto referenceData = this.adminServiceFacade.retrieveLoanProductFormReferenceData();
    LoanProductRequest loanProductRequest = adminServiceFacade.retrieveLoanProductDetails(productId);
    LoanProductFormBean loanProductFormBean = loanProductFormBeanAssembler.populateWithReferenceData(referenceData);
    loanProductFormBeanAssembler.populateWithLoanProductDetails(loanProductFormBean, loanProductRequest);
    return loanProductFormBean;
}
Also used : LoanProductFormDto(org.mifos.dto.screen.LoanProductFormDto) LoanProductRequest(org.mifos.dto.domain.LoanProductRequest) ModelAttribute(org.springframework.web.bind.annotation.ModelAttribute) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 4 with LoanProductRequest

use of org.mifos.dto.domain.LoanProductRequest in project head by mifos.

the class ViewEditLoanProductController method showLoanProductDetails.

@RequestMapping(method = RequestMethod.GET)
public ModelAndView showLoanProductDetails(@RequestParam("productId") Integer productId) {
    LoanProductRequest loanProductDetails = adminServiceFacade.retrieveLoanProductDetails(productId);
    ModelAndView mav = new ModelAndView("viewEditLoanProduct");
    mav.addObject("loanProductDetails", loanProductDetails);
    return mav;
}
Also used : ModelAndView(org.springframework.web.servlet.ModelAndView) LoanProductRequest(org.mifos.dto.domain.LoanProductRequest) RequestMapping(org.springframework.web.bind.annotation.RequestMapping)

Example 5 with LoanProductRequest

use of org.mifos.dto.domain.LoanProductRequest in project head by mifos.

the class AdminServiceFacadeWebTier method retrieveLoanProductDetails.

@Override
public LoanProductRequest retrieveLoanProductDetails(Integer productId) {
    LoanOfferingBO loanProduct = this.loanProductDao.findById(productId);
    boolean multiCurrencyEnabled = AccountingRules.isMultiCurrencyEnabled();
    LoanProductRequest productDetails = loanProduct.toFullDto();
    productDetails.setMultiCurrencyEnabled(multiCurrencyEnabled);
    return productDetails;
}
Also used : LoanOfferingBO(org.mifos.accounts.productdefinition.business.LoanOfferingBO) LoanProductRequest(org.mifos.dto.domain.LoanProductRequest)

Aggregations

LoanProductRequest (org.mifos.dto.domain.LoanProductRequest)7 RequestMapping (org.springframework.web.bind.annotation.RequestMapping)4 ArrayList (java.util.ArrayList)2 LowerUpperMinMaxDefaultDto (org.mifos.dto.domain.LowerUpperMinMaxDefaultDto)2 MinMaxDefaultDto (org.mifos.dto.domain.MinMaxDefaultDto)2 ProductDetailsDto (org.mifos.dto.domain.ProductDetailsDto)2 RepaymentDetailsDto (org.mifos.dto.domain.RepaymentDetailsDto)2 AccountingDetailsDto (org.mifos.dto.screen.AccountingDetailsDto)2 LoanAmountDetailsDto (org.mifos.dto.screen.LoanAmountDetailsDto)2 ModelAttribute (org.springframework.web.bind.annotation.ModelAttribute)2 ModelAndView (org.springframework.web.servlet.ModelAndView)2 LoanOfferingBO (org.mifos.accounts.productdefinition.business.LoanOfferingBO)1 AuditLogDto (org.mifos.dto.domain.AuditLogDto)1 PrdOfferingDto (org.mifos.dto.domain.PrdOfferingDto)1 AuditLogScreenDto (org.mifos.dto.screen.AuditLogScreenDto)1 LoanProductFormDto (org.mifos.dto.screen.LoanProductFormDto)1