Search in sources :

Example 26 with AccountPaymentParametersDto

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

the class StandardAccountServiceIntegrationTest method testValidateValidPayment.

@Test
public void testValidateValidPayment() throws Exception {
    String paymentAmount = "10";
    AccountPaymentParametersDto accountPaymentParametersDto = new AccountPaymentParametersDto(new UserReferenceDto(groupLoan.getPersonnel().getPersonnelId()), new AccountReferenceDto(groupLoan.getAccountId()), new BigDecimal(paymentAmount), new LocalDate(), defaultPaymentType, "");
    List<InvalidPaymentReason> errors = standardAccountService.validatePayment(accountPaymentParametersDto);
    Assert.assertEquals(0, errors.size());
}
Also used : UserReferenceDto(org.mifos.dto.domain.UserReferenceDto) AccountReferenceDto(org.mifos.dto.domain.AccountReferenceDto) AccountPaymentParametersDto(org.mifos.dto.domain.AccountPaymentParametersDto) LocalDate(org.joda.time.LocalDate) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 27 with AccountPaymentParametersDto

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

the class StandardAccountServiceTest method testDisbursalAmountMustMatchFullLoanAmount.

@Test
public void testDisbursalAmountMustMatchFullLoanAmount() throws Exception {
    when(mockLoanAccount.getLoanAmount()).thenReturn(new Money(TestUtils.EURO, "300"));
    AccountPaymentParametersDto disbursal = new AccountPaymentParametersDto(new UserReferenceDto((short) 1), new AccountReferenceDto(1), new BigDecimal("299"), new LocalDate(), new PaymentTypeDto((short) 1, "CASH"), "");
    List<InvalidPaymentReason> errors = new ArrayList<InvalidPaymentReason>();
    standardAccountService.disbursalAmountMatchesFullLoanAmount(disbursal.getPaymentAmount(), errors, mockLoanAccount);
    assertThat(errors.get(0), is(InvalidPaymentReason.INVALID_LOAN_DISBURSAL_AMOUNT));
}
Also used : UserReferenceDto(org.mifos.dto.domain.UserReferenceDto) Money(org.mifos.framework.util.helpers.Money) AccountReferenceDto(org.mifos.dto.domain.AccountReferenceDto) ArrayList(java.util.ArrayList) AccountPaymentParametersDto(org.mifos.dto.domain.AccountPaymentParametersDto) PaymentTypeDto(org.mifos.dto.domain.PaymentTypeDto) LocalDate(org.joda.time.LocalDate) BigDecimal(java.math.BigDecimal) Test(org.junit.Test)

Example 28 with AccountPaymentParametersDto

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

the class K2RESTController method processLoanPayment.

private Map<String, String> processLoanPayment(LoanBO loanBO, String k2TransactionId, String acNo, String mmSystemId, LocalDate transactionDate, BigDecimal amount, String currency) throws Exception {
    MifosUser user = (MifosUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    UserReferenceDto userDto = new UserReferenceDto((short) user.getUserId());
    AccountReferenceDto accountReferenceDto = new AccountReferenceDto(loanBO.getAccountId());
    PaymentTypeDto paymentTypeDto = null;
    List<PaymentTypeDto> loanPaymentTypes = accountService.getLoanPaymentTypes();
    for (PaymentTypeDto paymentTypeDtoIterator : loanPaymentTypes) {
        if (paymentTypeDtoIterator.getName().equals(mmSystemId)) {
            paymentTypeDto = paymentTypeDtoIterator;
            break;
        }
    }
    if (paymentTypeDto == null || !loanBO.getCurrency().getCurrencyCode().equals(currency)) {
        return invalidPayment();
    }
    CustomerDto customerDto = loanBO.getCustomer().toCustomerDto();
    LocalDate receiptLocalDate = transactionDate;
    String receiptIdString = k2TransactionId;
    AccountPaymentParametersDto payment = new AccountPaymentParametersDto(userDto, accountReferenceDto, amount, transactionDate, paymentTypeDto, acNo, receiptLocalDate, receiptIdString, customerDto);
    accountService.makePayment(payment);
    return accepted();
}
Also used : UserReferenceDto(org.mifos.dto.domain.UserReferenceDto) AccountReferenceDto(org.mifos.dto.domain.AccountReferenceDto) CustomerDto(org.mifos.dto.domain.CustomerDto) MifosUser(org.mifos.security.MifosUser) PaymentTypeDto(org.mifos.dto.domain.PaymentTypeDto) AccountPaymentParametersDto(org.mifos.dto.domain.AccountPaymentParametersDto) LocalDate(org.joda.time.LocalDate)

Example 29 with AccountPaymentParametersDto

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

the class LoanAccountRESTController method repay.

@RequestMapping(value = "/account/loan/num-{globalAccountNum}/repay", method = RequestMethod.POST)
@ResponseBody
public Map<String, String> repay(@PathVariable String globalAccountNum, @RequestParam BigDecimal amount, @RequestParam(required = false) String paymentDate, @RequestParam(required = false) Short receiptId, @RequestParam(required = false) String receiptDate, @RequestParam(required = false) Short paymentModeId) throws Exception {
    validateAmount(amount);
    LoanBO loan = loanDao.findByGlobalAccountNum(globalAccountNum);
    validateLoanAccountState(loan);
    MifosUser user = (MifosUser) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
    UserReferenceDto userDto = new UserReferenceDto((short) user.getUserId());
    Money outstandingBeforePayment = loan.getLoanSummary().getOutstandingBalance();
    AccountReferenceDto accountDto = new AccountReferenceDto(loan.getAccountId());
    DateTime today = new DateTime();
    DateTime paymentDateTime = today;
    if (paymentDate != null && !paymentDate.isEmpty()) {
        paymentDateTime = validateDateString(paymentDate, format);
    }
    String receiptIdString = null;
    if (receiptId != null) {
        receiptIdString = receiptId.toString();
    }
    LocalDate receiptLocalDate = null;
    if (receiptDate != null && !receiptDate.isEmpty()) {
        receiptLocalDate = validateDateString(receiptDate, format).toLocalDate();
    }
    PaymentTypeDto paymentType = new PaymentTypeDto(paymentModeId, "");
    validatePaymentTypeId(paymentType, accountService.getLoanPaymentTypes());
    CustomerBO client = loan.getCustomer();
    CustomerDto customer = new CustomerDto();
    customer.setCustomerId(client.getCustomerId());
    AccountPaymentParametersDto payment = new AccountPaymentParametersDto(userDto, accountDto, amount, paymentDateTime.toLocalDate(), paymentType, globalAccountNum, receiptLocalDate, receiptIdString, customer);
    accountService.makePayment(payment);
    Map<String, String> map = new HashMap<String, String>();
    map.put("status", "success");
    map.put("clientName", client.getDisplayName());
    map.put("clientNumber", client.getGlobalCustNum());
    map.put("loanDisplayName", loan.getLoanOffering().getPrdOfferingName());
    map.put("paymentDate", today.toLocalDate().toString());
    map.put("paymentTime", today.toLocalTime().toString());
    map.put("paymentAmount", loan.getLastPmnt().getAmount().toString());
    map.put("paymentMadeBy", personnelDao.findPersonnelById((short) user.getUserId()).getDisplayName());
    map.put("outstandingBeforePayment", outstandingBeforePayment.toString());
    map.put("outstandingAfterPayment", loan.getLoanSummary().getOutstandingBalance().toString());
    return map;
}
Also used : HashMap(java.util.HashMap) AccountReferenceDto(org.mifos.dto.domain.AccountReferenceDto) LoanBO(org.mifos.accounts.loan.business.LoanBO) CustomerDto(org.mifos.dto.domain.CustomerDto) MifosUser(org.mifos.security.MifosUser) PaymentTypeDto(org.mifos.dto.domain.PaymentTypeDto) AccountPaymentParametersDto(org.mifos.dto.domain.AccountPaymentParametersDto) LocalDate(org.joda.time.LocalDate) DateTime(org.joda.time.DateTime) UserReferenceDto(org.mifos.dto.domain.UserReferenceDto) Money(org.mifos.framework.util.helpers.Money) CustomerBO(org.mifos.customers.business.CustomerBO) RequestMapping(org.springframework.web.bind.annotation.RequestMapping) ResponseBody(org.springframework.web.bind.annotation.ResponseBody)

Aggregations

AccountPaymentParametersDto (org.mifos.dto.domain.AccountPaymentParametersDto)29 AccountReferenceDto (org.mifos.dto.domain.AccountReferenceDto)21 BigDecimal (java.math.BigDecimal)18 UserReferenceDto (org.mifos.dto.domain.UserReferenceDto)18 LocalDate (org.joda.time.LocalDate)17 PaymentTypeDto (org.mifos.dto.domain.PaymentTypeDto)12 Test (org.junit.Test)11 LoanBO (org.mifos.accounts.loan.business.LoanBO)10 Money (org.mifos.framework.util.helpers.Money)8 UserContext (org.mifos.security.util.UserContext)8 AccountBO (org.mifos.accounts.business.AccountBO)7 ArrayList (java.util.ArrayList)6 HashMap (java.util.HashMap)6 CustomerAccountBO (org.mifos.customers.business.CustomerAccountBO)6 CustomerDto (org.mifos.dto.domain.CustomerDto)6 MifosUser (org.mifos.security.MifosUser)6 AccountPaymentEntity (org.mifos.accounts.business.AccountPaymentEntity)5 AccountPaymentDto (org.mifos.accounts.servicefacade.AccountPaymentDto)5 Date (java.util.Date)4 AccountException (org.mifos.accounts.exceptions.AccountException)4