Search in sources :

Example 1 with LoanPrdActionForm

use of org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm in project head by mifos.

the class LoanOfferingBOIntegrationTest method testCreateLoanOfferingSameForAllLoan.

@Test
public void testCreateLoanOfferingSameForAllLoan() throws ProductDefinitionException, FeeException {
    createIntitalObjects();
    GracePeriodTypeEntity gracePeriodType = new GracePeriodTypeEntity(GraceType.GRACEONALLREPAYMENTS);
    Date startDate = offSetCurrentDate(0);
    Date endDate = offSetCurrentDate(2);
    periodicFee = TestObjectFactory.createPeriodicAmountFee("Loan Periodic", FeeCategory.LOAN, "100", RecurrenceType.WEEKLY, (short) 1);
    oneTimeFee = TestObjectFactory.createOneTimeAmountFee("Loan One time", FeeCategory.LOAN, "100", FeePayment.UPFRONT);
    List<FeeBO> fees = new ArrayList<FeeBO>();
    fees.add(periodicFee);
    fees.add(oneTimeFee);
    LoanPrdActionForm loanPrdActionForm = new LoanPrdActionForm();
    product = new LoanOfferingBO(TestObjectFactory.getContext(), "Loan Offering", "LOAP", productCategory, prdApplicableMaster, startDate, endDate, "1234", gracePeriodType, (short) 2, interestTypes, 12.0, 2.0, 3.0, false, false, false, null, fees, null, frequency, principalglCodeEntity, intglCodeEntity, populateNoOfInstallSameForAllLoan("1", "12", "1", "2", populateLoanAmountSameForAllLoan("1", new Double("3000"), new Double("1000"), new Double("2000"), loanPrdActionForm)), waiverInterest);
    product.save();
    StaticHibernateUtil.flushAndClearSession();
    product = (LoanOfferingBO) TestObjectFactory.getObject(LoanOfferingBO.class, product.getPrdOfferingId());
    Assert.assertEquals("Loan Offering", product.getPrdOfferingName());
    Assert.assertEquals("LOAP", product.getPrdOfferingShortName());
    Assert.assertEquals(Short.valueOf("1"), product.getPrdCategory().getProductCategoryID());
    Assert.assertEquals(ApplicableTo.CLIENTS, product.getPrdApplicableMasterEnum());
    Assert.assertEquals(startDate, product.getStartDate());
    Assert.assertEquals(endDate, product.getEndDate());
    Assert.assertEquals("1234", product.getDescription());
    Assert.assertEquals(GraceType.GRACEONALLREPAYMENTS.getValue(), product.getGracePeriodType().getId());
    Assert.assertEquals(Short.valueOf("2"), product.getGracePeriodDuration());
    Assert.assertEquals(InterestType.FLAT.getValue(), product.getInterestTypes().getId());
    for (LoanAmountSameForAllLoanBO loanAmountSameForAllLoanBO : product.getLoanAmountSameForAllLoan()) {
        Assert.assertEquals(new Double("3000"), loanAmountSameForAllLoanBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("1000"), loanAmountSameForAllLoanBO.getMinLoanAmount());
        Assert.assertEquals(new Double("2000"), loanAmountSameForAllLoanBO.getDefaultLoanAmount());
    }
    for (NoOfInstallSameForAllLoanBO noofInstallSameForAllLoanBO : product.getNoOfInstallSameForAllLoan()) {
        Assert.assertEquals(new Short("12"), noofInstallSameForAllLoanBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("1"), noofInstallSameForAllLoanBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("2"), noofInstallSameForAllLoanBO.getDefaultNoOfInstall());
    }
    Assert.assertEquals(2.0, product.getMinInterestRate(), DELTA);
    Assert.assertEquals(12.0, product.getMaxInterestRate(), DELTA);
    Assert.assertEquals(3.0, product.getDefInterestRate(), DELTA);
    Assert.assertFalse(product.isIncludeInLoanCounter());
    Assert.assertFalse(product.isIntDedDisbursement());
    Assert.assertFalse(product.isPrinDueLastInst());
    Assert.assertEquals(2, product.getLoanOfferingFees().size());
    Assert.assertNotNull(product.getLoanOfferingMeeting());
    Assert.assertEquals(RecurrenceType.WEEKLY, product.getLoanOfferingMeeting().getMeeting().getMeetingDetails().getRecurrenceTypeEnum());
    Assert.assertNotNull(product.getPrincipalGLcode());
    Assert.assertNotNull(product.getInterestGLcode());
}
Also used : LoanPrdActionForm(org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm) ArrayList(java.util.ArrayList) FeeBO(org.mifos.accounts.fees.business.FeeBO) AmountFeeBO(org.mifos.accounts.fees.business.AmountFeeBO) Date(java.sql.Date) Test(org.junit.Test)

Example 2 with LoanPrdActionForm

use of org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm in project head by mifos.

the class LoanOfferingBOIntegrationTest method testCreateLoanOfferingByLastLoanAmount.

@Test
public void testCreateLoanOfferingByLastLoanAmount() throws ProductDefinitionException, FeeException {
    createIntitalObjects();
    GracePeriodTypeEntity gracePeriodType = new GracePeriodTypeEntity(GraceType.GRACEONALLREPAYMENTS);
    Date startDate = offSetCurrentDate(0);
    Date endDate = offSetCurrentDate(2);
    periodicFee = TestObjectFactory.createPeriodicAmountFee("Loan Periodic", FeeCategory.LOAN, "100", RecurrenceType.WEEKLY, (short) 1);
    oneTimeFee = TestObjectFactory.createOneTimeAmountFee("Loan One time", FeeCategory.LOAN, "100", FeePayment.UPFRONT);
    List<FeeBO> fees = new ArrayList<FeeBO>();
    fees.add(periodicFee);
    fees.add(oneTimeFee);
    LoanPrdActionForm loanPrdActionForm = new LoanPrdActionForm();
    product = new LoanOfferingBO(TestObjectFactory.getContext(), "Loan Offering", "LOAP", productCategory, prdApplicableMaster, startDate, endDate, "1234", gracePeriodType, (short) 2, interestTypes, 12.0, 2.0, 3.0, false, false, false, null, fees, null, frequency, principalglCodeEntity, intglCodeEntity, LoanOfferingTestUtils.populateNoOfInstallFromLastLoanAmount("2", new Integer("0"), new Integer("1000"), new Integer("1001"), new Integer("2000"), new Integer("2001"), new Integer("3000"), new Integer("3001"), new Integer("4000"), new Integer("4001"), new Integer("5000"), new Integer("5001"), new Integer("6000"), "10", "30", "20", "20", "40", "30", "30", "50", "40", "40", "60", "50", "50", "70", "60", "60", "80", "70", LoanOfferingTestUtils.populateLoanAmountFromLastLoanAmount("2", new Integer("0"), new Integer("1000"), new Integer("1001"), new Integer("2000"), new Integer("2001"), new Integer("3000"), new Integer("3001"), new Integer("4000"), new Integer("4001"), new Integer("5000"), new Integer("5001"), new Integer("6000"), new Double("1000"), new Double("3000"), new Double("2000"), new Double("2000"), new Double("4000"), new Double("3000"), new Double("3000"), new Double("5000"), new Double("4000"), new Double("4000"), new Double("6000"), new Double("5000"), new Double("5000"), new Double("7000"), new Double("6000"), new Double("6000"), new Double("8000"), new Double("7000"), loanPrdActionForm)), waiverInterest);
    product.save();
    StaticHibernateUtil.flushAndClearSession();
    product = (LoanOfferingBO) TestObjectFactory.getObject(LoanOfferingBO.class, product.getPrdOfferingId());
    Assert.assertEquals("Loan Offering", product.getPrdOfferingName());
    Assert.assertEquals("LOAP", product.getPrdOfferingShortName());
    Assert.assertEquals(Short.valueOf("1"), product.getPrdCategory().getProductCategoryID());
    Assert.assertEquals(ApplicableTo.CLIENTS, product.getPrdApplicableMasterEnum());
    Assert.assertEquals(startDate, product.getStartDate());
    Assert.assertEquals(endDate, product.getEndDate());
    Assert.assertEquals("1234", product.getDescription());
    Assert.assertEquals(GraceType.GRACEONALLREPAYMENTS.getValue(), product.getGracePeriodType().getId());
    Assert.assertEquals(Short.valueOf("2"), product.getGracePeriodDuration());
    Assert.assertEquals(InterestType.FLAT.getValue(), product.getInterestTypes().getId());
    for (Iterator<LoanAmountFromLastLoanAmountBO> itr = product.getLoanAmountFromLastLoan().iterator(); itr.hasNext(); ) {
        LoanAmountFromLastLoanAmountBO loanAmountFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("0"), loanAmountFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("1000"), loanAmountFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Double("3000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("1000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
        Assert.assertEquals(new Double("2000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
        loanAmountFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("1001"), loanAmountFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("2000"), loanAmountFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Double("4000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("2000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
        Assert.assertEquals(new Double("3000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
        loanAmountFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("2001"), loanAmountFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("3000"), loanAmountFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Double("5000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("3000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
        Assert.assertEquals(new Double("4000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
        loanAmountFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("3001"), loanAmountFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("4000"), loanAmountFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Double("6000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("4000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
        Assert.assertEquals(new Double("5000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
        loanAmountFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("4001"), loanAmountFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("5000"), loanAmountFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Double("7000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("5000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
        Assert.assertEquals(new Double("6000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
        loanAmountFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("5001"), loanAmountFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("6000"), loanAmountFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Double("8000"), loanAmountFromLastLoanAmountBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("6000"), loanAmountFromLastLoanAmountBO.getMinLoanAmount());
        Assert.assertEquals(new Double("7000"), loanAmountFromLastLoanAmountBO.getDefaultLoanAmount());
    }
    for (Iterator<NoOfInstallFromLastLoanAmountBO> itr = product.getNoOfInstallFromLastLoan().iterator(); itr.hasNext(); ) {
        NoOfInstallFromLastLoanAmountBO noOfInstallFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("0"), noOfInstallFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("1000"), noOfInstallFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Short("30"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("10"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("20"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
        noOfInstallFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("1001"), noOfInstallFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("2000"), noOfInstallFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Short("40"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("20"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("30"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
        noOfInstallFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("2001"), noOfInstallFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("3000"), noOfInstallFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Short("50"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("30"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("40"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
        noOfInstallFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("3001"), noOfInstallFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("4000"), noOfInstallFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Short("60"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("40"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("50"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
        noOfInstallFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("4001"), noOfInstallFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("5000"), noOfInstallFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Short("70"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("50"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("60"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
        noOfInstallFromLastLoanAmountBO = itr.next();
        Assert.assertEquals(new Double("5001"), noOfInstallFromLastLoanAmountBO.getStartRange());
        Assert.assertEquals(new Double("6000"), noOfInstallFromLastLoanAmountBO.getEndRange());
        Assert.assertEquals(new Short("80"), noOfInstallFromLastLoanAmountBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("60"), noOfInstallFromLastLoanAmountBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("70"), noOfInstallFromLastLoanAmountBO.getDefaultNoOfInstall());
    }
    Assert.assertEquals(2.0, product.getMinInterestRate(), DELTA);
    Assert.assertEquals(12.0, product.getMaxInterestRate(), DELTA);
    Assert.assertEquals(3.0, product.getDefInterestRate(), DELTA);
    Assert.assertFalse(product.isIncludeInLoanCounter());
    Assert.assertFalse(product.isIntDedDisbursement());
    Assert.assertFalse(product.isPrinDueLastInst());
    Assert.assertEquals(2, product.getLoanOfferingFees().size());
    Assert.assertNotNull(product.getLoanOfferingMeeting());
    Assert.assertEquals(RecurrenceType.WEEKLY, product.getLoanOfferingMeeting().getMeeting().getMeetingDetails().getRecurrenceTypeEnum());
    Assert.assertNotNull(product.getPrincipalGLcode());
    Assert.assertNotNull(product.getInterestGLcode());
}
Also used : LoanPrdActionForm(org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm) ArrayList(java.util.ArrayList) Date(java.sql.Date) FeeBO(org.mifos.accounts.fees.business.FeeBO) AmountFeeBO(org.mifos.accounts.fees.business.AmountFeeBO) Test(org.junit.Test)

Example 3 with LoanPrdActionForm

use of org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm in project head by mifos.

the class LoanOfferingBOIntegrationTest method testCreateLoanOfferingFromLoanCycle.

@Test
public void testCreateLoanOfferingFromLoanCycle() throws ProductDefinitionException, FeeException {
    createIntitalObjects();
    GracePeriodTypeEntity gracePeriodType = new GracePeriodTypeEntity(GraceType.GRACEONALLREPAYMENTS);
    Date startDate = offSetCurrentDate(0);
    Date endDate = offSetCurrentDate(2);
    periodicFee = TestObjectFactory.createPeriodicAmountFee("Loan Periodic", FeeCategory.LOAN, "100", RecurrenceType.WEEKLY, (short) 1);
    oneTimeFee = TestObjectFactory.createOneTimeAmountFee("Loan One time", FeeCategory.LOAN, "100", FeePayment.UPFRONT);
    List<FeeBO> fees = new ArrayList<FeeBO>();
    fees.add(periodicFee);
    fees.add(oneTimeFee);
    LoanPrdActionForm loanPrdActionForm = new LoanPrdActionForm();
    product = new LoanOfferingBO(TestObjectFactory.getContext(), "Loan Offering", "LOAP", productCategory, prdApplicableMaster, startDate, endDate, "1234", gracePeriodType, (short) 2, interestTypes, 12.0, 2.0, 3.0, false, false, false, null, fees, null, frequency, principalglCodeEntity, intglCodeEntity, LoanOfferingTestUtils.populateNoOfInstallFromLoanCycle("3", "10", "30", "20", "20", "40", "30", "30", "50", "40", "40", "60", "50", "50", "70", "60", "60", "80", "70", LoanOfferingTestUtils.populateLoanAmountFromLoanCycle("3", new Double("1000"), new Double("3000"), new Double("2000"), new Double("2000"), new Double("4000"), new Double("3000"), new Double("3000"), new Double("5000"), new Double("4000"), new Double("4000"), new Double("6000"), new Double("5000"), new Double("5000"), new Double("7000"), new Double("6000"), new Double("6000"), new Double("8000"), new Double("7000"), loanPrdActionForm)), waiverInterest);
    product.save();
    StaticHibernateUtil.flushAndClearSession();
    product = (LoanOfferingBO) TestObjectFactory.getObject(LoanOfferingBO.class, product.getPrdOfferingId());
    Assert.assertEquals("Loan Offering", product.getPrdOfferingName());
    Assert.assertEquals("LOAP", product.getPrdOfferingShortName());
    Assert.assertEquals(Short.valueOf("1"), product.getPrdCategory().getProductCategoryID());
    Assert.assertEquals(ApplicableTo.CLIENTS, product.getPrdApplicableMasterEnum());
    Assert.assertEquals(startDate, product.getStartDate());
    Assert.assertEquals(endDate, product.getEndDate());
    Assert.assertEquals("1234", product.getDescription());
    Assert.assertEquals(GraceType.GRACEONALLREPAYMENTS.getValue(), product.getGracePeriodType().getId());
    Assert.assertEquals(Short.valueOf("2"), product.getGracePeriodDuration());
    Assert.assertEquals(InterestType.FLAT.getValue(), product.getInterestTypes().getId());
    for (Iterator<LoanAmountFromLoanCycleBO> itr = product.getLoanAmountFromLoanCycle().iterator(); itr.hasNext(); ) {
        LoanAmountFromLoanCycleBO loanAmountFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Double("3000"), loanAmountFromLoanCycleBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("1000"), loanAmountFromLoanCycleBO.getMinLoanAmount());
        Assert.assertEquals(new Double("2000"), loanAmountFromLoanCycleBO.getDefaultLoanAmount());
        loanAmountFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Double("4000"), loanAmountFromLoanCycleBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("2000"), loanAmountFromLoanCycleBO.getMinLoanAmount());
        Assert.assertEquals(new Double("3000"), loanAmountFromLoanCycleBO.getDefaultLoanAmount());
        loanAmountFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Double("5000"), loanAmountFromLoanCycleBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("3000"), loanAmountFromLoanCycleBO.getMinLoanAmount());
        Assert.assertEquals(new Double("4000"), loanAmountFromLoanCycleBO.getDefaultLoanAmount());
        loanAmountFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Double("6000"), loanAmountFromLoanCycleBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("4000"), loanAmountFromLoanCycleBO.getMinLoanAmount());
        Assert.assertEquals(new Double("5000"), loanAmountFromLoanCycleBO.getDefaultLoanAmount());
        loanAmountFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Double("7000"), loanAmountFromLoanCycleBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("5000"), loanAmountFromLoanCycleBO.getMinLoanAmount());
        Assert.assertEquals(new Double("6000"), loanAmountFromLoanCycleBO.getDefaultLoanAmount());
        loanAmountFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Double("8000"), loanAmountFromLoanCycleBO.getMaxLoanAmount());
        Assert.assertEquals(new Double("6000"), loanAmountFromLoanCycleBO.getMinLoanAmount());
        Assert.assertEquals(new Double("7000"), loanAmountFromLoanCycleBO.getDefaultLoanAmount());
    }
    for (Iterator<NoOfInstallFromLoanCycleBO> itr = product.getNoOfInstallFromLoanCycle().iterator(); itr.hasNext(); ) {
        NoOfInstallFromLoanCycleBO noOfInstallFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Short("30"), noOfInstallFromLoanCycleBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("10"), noOfInstallFromLoanCycleBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("20"), noOfInstallFromLoanCycleBO.getDefaultNoOfInstall());
        noOfInstallFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Short("40"), noOfInstallFromLoanCycleBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("20"), noOfInstallFromLoanCycleBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("30"), noOfInstallFromLoanCycleBO.getDefaultNoOfInstall());
        noOfInstallFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Short("50"), noOfInstallFromLoanCycleBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("30"), noOfInstallFromLoanCycleBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("40"), noOfInstallFromLoanCycleBO.getDefaultNoOfInstall());
        noOfInstallFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Short("60"), noOfInstallFromLoanCycleBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("40"), noOfInstallFromLoanCycleBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("50"), noOfInstallFromLoanCycleBO.getDefaultNoOfInstall());
        noOfInstallFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Short("70"), noOfInstallFromLoanCycleBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("50"), noOfInstallFromLoanCycleBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("60"), noOfInstallFromLoanCycleBO.getDefaultNoOfInstall());
        noOfInstallFromLoanCycleBO = itr.next();
        Assert.assertEquals(new Short("80"), noOfInstallFromLoanCycleBO.getMaxNoOfInstall());
        Assert.assertEquals(new Short("60"), noOfInstallFromLoanCycleBO.getMinNoOfInstall());
        Assert.assertEquals(new Short("70"), noOfInstallFromLoanCycleBO.getDefaultNoOfInstall());
    }
    Assert.assertEquals(2.0, product.getMinInterestRate(), DELTA);
    Assert.assertEquals(12.0, product.getMaxInterestRate(), DELTA);
    Assert.assertEquals(3.0, product.getDefInterestRate(), DELTA);
    Assert.assertFalse(product.isIncludeInLoanCounter());
    Assert.assertFalse(product.isIntDedDisbursement());
    Assert.assertFalse(product.isPrinDueLastInst());
    Assert.assertEquals(2, product.getLoanOfferingFees().size());
    Assert.assertNotNull(product.getLoanOfferingMeeting());
    Assert.assertEquals(RecurrenceType.WEEKLY, product.getLoanOfferingMeeting().getMeeting().getMeetingDetails().getRecurrenceTypeEnum());
    Assert.assertNotNull(product.getPrincipalGLcode());
    Assert.assertNotNull(product.getInterestGLcode());
}
Also used : LoanPrdActionForm(org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm) ArrayList(java.util.ArrayList) Date(java.sql.Date) FeeBO(org.mifos.accounts.fees.business.FeeBO) AmountFeeBO(org.mifos.accounts.fees.business.AmountFeeBO) Test(org.junit.Test)

Example 4 with LoanPrdActionForm

use of org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm in project head by mifos.

the class LoanOfferingBOIntegrationTest method populateLoanPrdActionForm.

private LoanPrdActionForm populateLoanPrdActionForm(String loanAmtCalcType, String calcInstallmentType, Double maxLoanAmount, Double minLoanAmount, Double defLoanAmount, String maxNoOfInstall, String minNoOfInstall, String defNoOfInstall) {
    LoanPrdActionForm loanPrdActionForm = new LoanPrdActionForm();
    if (loanAmtCalcType.equals("1")) {
        loanPrdActionForm.setLoanAmtCalcType(loanAmtCalcType);
        loanPrdActionForm.setCalcInstallmentType(calcInstallmentType);
        loanPrdActionForm.setMaxLoanAmount(maxLoanAmount.toString());
        loanPrdActionForm.setMinLoanAmount(minLoanAmount.toString());
        loanPrdActionForm.setDefaultLoanAmount(defLoanAmount.toString());
        loanPrdActionForm.setMaxNoInstallments(maxNoOfInstall);
        loanPrdActionForm.setMinNoInstallments(minNoOfInstall);
        loanPrdActionForm.setDefNoInstallments(defNoOfInstall);
    }
    return loanPrdActionForm;
}
Also used : LoanPrdActionForm(org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm)

Example 5 with LoanPrdActionForm

use of org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm in project head by mifos.

the class LoanPrdAction method update.

@CloseSession
@TransactionDemarcate(validateAndResetToken = true)
public ActionForward update(ActionMapping mapping, ActionForm form, HttpServletRequest request, @SuppressWarnings("unused") HttpServletResponse response) throws Exception {
    LoanPrdActionForm loanPrdActionForm = (LoanPrdActionForm) form;
    logger.debug("start update method of Loan Product Action" + loanPrdActionForm.getPrdOfferingId());
    UserContext userContext = getUserContext(request);
    Locale locale = getLocale(userContext);
    LoanOfferingBO loanOffering = getLoanOffering(loanPrdActionForm.getPrdOfferingIdValue());
    loanOffering.setUserContext(userContext);
    setInitialObjectForAuditLogging(loanOffering);
    mapVariableInstallmentDetails(loanOffering, loanPrdActionForm);
    loanOffering.setFixedRepaymentSchedule(loanPrdActionForm.isFixedRepaymentSchedule());
    loanOffering.setRoundingDifferenceInFirstPayment(loanPrdActionForm.isRoundingDifferenceInFirstPayment());
    mapCashFlowDetail(loanPrdActionForm, loanOffering);
    loanOffering.update(userContext.getId(), loanPrdActionForm.getPrdOfferingName(), loanPrdActionForm.getPrdOfferingShortName(), getProductCategory(((List<ProductCategoryBO>) SessionUtils.getAttribute(ProductDefinitionConstants.LOANPRODUCTCATEGORYLIST, request)), loanPrdActionForm.getPrdCategoryValue()), (PrdApplicableMasterEntity) findMasterEntity(request, ProductDefinitionConstants.LOANAPPLFORLIST, loanPrdActionForm.getPrdApplicableMasterEnum().getValue()), loanPrdActionForm.getStartDateValue(locale), loanPrdActionForm.getEndDateValue(locale), loanPrdActionForm.getDescription(), PrdStatus.fromInt(loanPrdActionForm.getPrdStatusValue()), (GracePeriodTypeEntity) findMasterEntity(request, ProductDefinitionConstants.LOANGRACEPERIODTYPELIST, loanPrdActionForm.getGracePeriodTypeValue()), (InterestTypesEntity) findMasterEntity(request, ProductDefinitionConstants.INTERESTTYPESLIST, loanPrdActionForm.getInterestTypesValue()), loanPrdActionForm.getGracePeriodDurationValue(), loanPrdActionForm.getMaxInterestRateValue(), loanPrdActionForm.getMinInterestRateValue(), loanPrdActionForm.getDefInterestRateValue(), loanPrdActionForm.isLoanCounterValue(), loanPrdActionForm.isIntDedAtDisbValue(), loanPrdActionForm.isPrinDueLastInstValue(), getFundsFromList((List<FundBO>) SessionUtils.getAttribute(ProductDefinitionConstants.SRCFUNDSLIST, request), loanPrdActionForm.getLoanOfferingFunds()), getFeeList((List<FeeBO>) SessionUtils.getAttribute(ProductDefinitionConstants.LOANPRDFEE, request), loanPrdActionForm.getPrdOfferinFees()), getPenaltyList((List<PenaltyBO>) SessionUtils.getAttribute(ProductDefinitionConstants.LOANPRDPENALTY, request), loanPrdActionForm.getPrdOfferinPenalties()), loanPrdActionForm.getRecurAfterValue(), RecurrenceType.fromInt(loanPrdActionForm.getFreqOfInstallmentsValue()), loanPrdActionForm, loanPrdActionForm.shouldWaiverInterest(), getQuestionGroups(request));
    logger.debug("update method of Loan Product Action called" + loanPrdActionForm.getPrdOfferingId());
    return mapping.findForward(ActionForwards.update_success.toString());
}
Also used : Locale(java.util.Locale) LoanPrdActionForm(org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm) ProductCategoryBO(org.mifos.accounts.productdefinition.business.ProductCategoryBO) UserContext(org.mifos.security.util.UserContext) LoanOfferingBO(org.mifos.accounts.productdefinition.business.LoanOfferingBO) List(java.util.List) ArrayList(java.util.ArrayList) CloseSession(org.mifos.framework.util.helpers.CloseSession) TransactionDemarcate(org.mifos.framework.util.helpers.TransactionDemarcate)

Aggregations

LoanPrdActionForm (org.mifos.accounts.productdefinition.struts.actionforms.LoanPrdActionForm)9 ArrayList (java.util.ArrayList)5 Test (org.junit.Test)4 FeeBO (org.mifos.accounts.fees.business.FeeBO)4 LoanOfferingBO (org.mifos.accounts.productdefinition.business.LoanOfferingBO)4 TransactionDemarcate (org.mifos.framework.util.helpers.TransactionDemarcate)4 Date (java.sql.Date)3 List (java.util.List)3 AmountFeeBO (org.mifos.accounts.fees.business.AmountFeeBO)3 ProductCategoryBO (org.mifos.accounts.productdefinition.business.ProductCategoryBO)3 Locale (java.util.Locale)2 UserContext (org.mifos.security.util.UserContext)2 FeeDto (org.mifos.accounts.fees.business.FeeDto)1 GLCodeEntity (org.mifos.accounts.financial.business.GLCodeEntity)1 FundBO (org.mifos.accounts.fund.business.FundBO)1 LoanAmountSameForAllLoanBO (org.mifos.accounts.productdefinition.business.LoanAmountSameForAllLoanBO)1 NoOfInstallSameForAllLoanBO (org.mifos.accounts.productdefinition.business.NoOfInstallSameForAllLoanBO)1 PrdStatusEntity (org.mifos.accounts.productdefinition.business.PrdStatusEntity)1 MasterDataEntity (org.mifos.application.master.business.MasterDataEntity)1 MeetingBO (org.mifos.application.meeting.business.MeetingBO)1