use of org.mifos.application.collectionsheet.business.CollectionSheetEntryGridDto in project head by mifos.
the class BulkEntryDisplayHelperIntegrationTest method testBuildForCenterForGetMethod.
@Test
public void testBuildForCenterForGetMethod() throws Exception {
CollectionSheetEntryGridDto bulkEntry = createBulkEntry();
StringBuilder builder = new StringBuilder();
// Assert that the extracted attendance types are the ones expected
final String[] EXPECTED_ATTENDANCE_TYPES = { "P", "A", "AA", "L" };
List<CustomValueListElementDto> attendanceTypesCustomValueList = legacyMasterDao.getCustomValueList(MasterConstants.ATTENDENCETYPES, "org.mifos.application.master.business.CustomerAttendanceType", "attendanceId").getCustomValueListElements();
List<String> attendanceTypesLookupValueList = new ArrayList<String>();
for (CustomValueListElementDto attendanceTypeCustomValueListElement : attendanceTypesCustomValueList) {
attendanceTypesLookupValueList.add(attendanceTypeCustomValueListElement.getLookUpValue());
}
Assert.assertEquals(Arrays.asList(EXPECTED_ATTENDANCE_TYPES), attendanceTypesLookupValueList);
new BulkEntryDisplayHelper().buildForCenter(bulkEntry.getBulkEntryParent(), bulkEntry.getLoanProducts(), bulkEntry.getSavingProducts(), attendanceTypesCustomValueList, builder, Methods.get.toString(), TestObjectFactory.getContext());
String result = builder.toString();
StringAssert.assertContains("Group", result);
StringAssert.assertContains("Client", result);
StringAssert.assertNotContains("<option value= \"\"></option>)", result);
StringAssert.assertContains(groupAccount.getLoanBalance().toString(), result);
StringAssert.assertContains(clientAccount.getLoanBalance().toString(), result);
StringAssert.assertContains("0.0", result);
StringAssert.assertContains("enteredAmount", result);
StringAssert.assertContains("depositAmountEntered", result);
StringAssert.assertContains("withDrawalAmountEntered", result);
}
use of org.mifos.application.collectionsheet.business.CollectionSheetEntryGridDto in project head by mifos.
the class BulkEntryDisplayHelperIntegrationTest method createBulkEntry.
private CollectionSheetEntryGridDto createBulkEntry() throws Exception {
MeetingBO meeting = TestObjectFactory.createMeeting(TestObjectFactory.getNewMeetingForToday(WEEKLY, EVERY_WEEK, CUSTOMER_MEETING));
Date startDate = new Date(System.currentTimeMillis());
center = TestObjectFactory.createWeeklyFeeCenter(this.getClass().getSimpleName() + " Center", meeting);
group = TestObjectFactory.createWeeklyFeeGroupUnderCenter(this.getClass().getSimpleName() + " Group", CustomerStatus.GROUP_ACTIVE, center);
client = TestObjectFactory.createClient(this.getClass().getSimpleName() + " Client", CustomerStatus.CLIENT_ACTIVE, group);
LoanOfferingBO loanOffering1 = TestObjectFactory.createLoanOffering(startDate, meeting);
LoanOfferingBO loanOffering2 = TestObjectFactory.createLoanOffering("Loan2345", "313f", startDate, meeting);
groupAccount = TestObjectFactory.createLoanAccount("42423142341", group, AccountState.LOAN_ACTIVE_IN_GOOD_STANDING, startDate, loanOffering1);
clientAccount = getLoanAccount(AccountState.LOAN_APPROVED, startDate, loanOffering2);
java.util.Date currentDate = new java.util.Date(System.currentTimeMillis());
SavingsOfferingBO savingsOffering1 = TestObjectFactory.createSavingsProduct("SavingPrd1", "ased", currentDate, RecommendedAmountUnit.COMPLETE_GROUP);
SavingsOfferingBO savingsOffering2 = TestObjectFactory.createSavingsProduct("SavingPrd2", "cvdf", currentDate, RecommendedAmountUnit.COMPLETE_GROUP);
SavingsOfferingBO savingsOffering3 = TestObjectFactory.createSavingsProduct("SavingPrd3", "zxsd", currentDate, RecommendedAmountUnit.COMPLETE_GROUP);
centerSavingsAccount = TestObjectFactory.createSavingsAccount("43244334", center, Short.valueOf("16"), startDate, savingsOffering1);
groupSavingsAccount = TestObjectFactory.createSavingsAccount("43234434", group, Short.valueOf("16"), startDate, savingsOffering2);
clientSavingsAccount = TestObjectFactory.createSavingsAccount("43245434", client, Short.valueOf("16"), startDate, savingsOffering3);
CollectionSheetEntryDto bulkEntryParent = new CollectionSheetEntryDto(getCusomerView(center), TestUtils.RUPEE);
SavingsAccountDto centerSavingsAccountView = getSavingsAccountView(centerSavingsAccount);
centerSavingsAccountView.setDepositAmountEntered("100");
centerSavingsAccountView.setWithDrawalAmountEntered("10");
bulkEntryParent.addSavingsAccountDetail(centerSavingsAccountView);
bulkEntryParent.setCustomerAccountDetails(getCustomerAccountView(center));
CollectionSheetEntryDto bulkEntryChild = new CollectionSheetEntryDto(getCusomerView(group), TestUtils.RUPEE);
LoanAccountDto groupLoanAccountView = getLoanAccountView(groupAccount);
SavingsAccountDto groupSavingsAccountView = getSavingsAccountView(groupSavingsAccount);
groupSavingsAccountView.setDepositAmountEntered("100");
groupSavingsAccountView.setWithDrawalAmountEntered("10");
bulkEntryChild.addLoanAccountDetails(groupLoanAccountView);
bulkEntryChild.addSavingsAccountDetail(groupSavingsAccountView);
bulkEntryChild.setCustomerAccountDetails(getCustomerAccountView(group));
CollectionSheetEntryDto bulkEntrySubChild = new CollectionSheetEntryDto(getCusomerView(client), TestUtils.RUPEE);
LoanAccountDto clientLoanAccountView = getLoanAccountView(clientAccount);
clientLoanAccountView.setAmountPaidAtDisbursement(0.0);
SavingsAccountDto clientSavingsAccountView = getSavingsAccountView(clientSavingsAccount);
clientSavingsAccountView.setDepositAmountEntered("100");
clientSavingsAccountView.setWithDrawalAmountEntered("10");
bulkEntrySubChild.addLoanAccountDetails(clientLoanAccountView);
bulkEntrySubChild.setAttendence(new Short("2"));
bulkEntrySubChild.addSavingsAccountDetail(clientSavingsAccountView);
bulkEntrySubChild.setCustomerAccountDetails(getCustomerAccountView(client));
bulkEntryChild.addChildNode(bulkEntrySubChild);
bulkEntryParent.addChildNode(bulkEntryChild);
bulkEntryChild.getLoanAccountDetails().get(0).setPrdOfferingId(groupLoanAccountView.getPrdOfferingId());
bulkEntryChild.getLoanAccountDetails().get(0).setEnteredAmount("100.0");
bulkEntrySubChild.getLoanAccountDetails().get(0).setDisBursementAmountEntered(clientAccount.getLoanAmount().toString());
bulkEntrySubChild.getLoanAccountDetails().get(0).setPrdOfferingId(clientLoanAccountView.getPrdOfferingId());
ProductDto loanOfferingDto = new ProductDto(loanOffering1.getPrdOfferingId(), loanOffering1.getPrdOfferingShortName());
ProductDto loanOfferingDto2 = new ProductDto(loanOffering2.getPrdOfferingId(), loanOffering2.getPrdOfferingShortName());
List<ProductDto> loanProducts = Arrays.asList(loanOfferingDto, loanOfferingDto2);
ProductDto savingOfferingDto = new ProductDto(savingsOffering1.getPrdOfferingId(), savingsOffering1.getPrdOfferingShortName());
ProductDto savingOfferingDto2 = new ProductDto(savingsOffering2.getPrdOfferingId(), savingsOffering2.getPrdOfferingShortName());
ProductDto savingOfferingDto3 = new ProductDto(savingsOffering3.getPrdOfferingId(), savingsOffering3.getPrdOfferingShortName());
List<ProductDto> savingsProducts = Arrays.asList(savingOfferingDto, savingOfferingDto2, savingOfferingDto3);
final PersonnelDto loanOfficer = getPersonnelView(center.getPersonnel());
final OfficeDetailsDto officeDetailsDto = null;
final List<CustomValueListElementDto> attendanceTypesList = new ArrayList<CustomValueListElementDto>();
CollectionSheetEntryGridDto bulkEntry = new CollectionSheetEntryGridDto(bulkEntryParent, loanOfficer, officeDetailsDto, getPaymentTypeView(), new java.util.Date(), "324343242", new java.util.Date(), loanProducts, savingsProducts, attendanceTypesList);
return bulkEntry;
}
use of org.mifos.application.collectionsheet.business.CollectionSheetEntryGridDto in project head by mifos.
the class CollectionSheetDtoTranslatorImplTest method shouldTranslateLoanSavingsAndCustomerDetailsOnToCollectionSheetEntryGridDto.
@Test
public void shouldTranslateLoanSavingsAndCustomerDetailsOnToCollectionSheetEntryGridDto() throws Exception {
// setup
final Integer customerId = Integer.valueOf(7);
final Integer customerAccountId = Integer.valueOf("55");
final Integer savingsAccountId = Integer.valueOf("77");
final String savingsProductShortName = "sav1";
final Double savingsDepositDue = Double.valueOf("125.00");
final Integer loanAccountId = Integer.valueOf("101");
final String loanProductShortName = "lon1";
final Double totalRepaymentDue = Double.valueOf("67.00");
final Double totalCustomerAccountCollectionFee = Double.valueOf("29.87");
final CollectionSheetCustomerAccountDto customerAccountDto = new CollectionSheetCustomerAccountDto(customerAccountId, defaultCurrencyId, totalCustomerAccountCollectionFee);
final List<CollectionSheetCustomerDto> collectionSheetCustomer = Arrays.asList(centerCustomer);
final List<CollectionSheetCustomerSavingDto> collectionSheetCustomerSavings = Arrays.asList(collectionSheetSaving);
final List<CollectionSheetCustomerLoanDto> collectionSheetCustomerLoans = Arrays.asList(collectionSheetLoan);
// stubbing
when(collectionSheetData.getCollectionSheetCustomer()).thenReturn(collectionSheetCustomer);
when(centerCustomer.getCustomerId()).thenReturn(customerId);
when(centerCustomer.getCollectionSheetCustomerAccount()).thenReturn(customerAccountDto);
when(centerCustomer.getCollectionSheetCustomerSaving()).thenReturn(collectionSheetCustomerSavings);
when(centerCustomer.getCollectionSheetCustomerLoan()).thenReturn(collectionSheetCustomerLoans);
// stub savings
when(collectionSheetSaving.getCustomerId()).thenReturn(customerId);
when(collectionSheetSaving.getAccountId()).thenReturn(savingsAccountId);
when(collectionSheetSaving.getProductShortName()).thenReturn(savingsProductShortName);
when(collectionSheetSaving.getTotalDepositAmount()).thenReturn(savingsDepositDue);
// stub loans
when(collectionSheetLoan.getCustomerId()).thenReturn(customerId);
when(collectionSheetLoan.getAccountId()).thenReturn(loanAccountId);
when(collectionSheetLoan.getProductShortName()).thenReturn(loanProductShortName);
when(collectionSheetLoan.getPayInterestAtDisbursement()).thenReturn(Constants.NO);
when(collectionSheetLoan.getTotalRepaymentDue()).thenReturn(totalRepaymentDue);
when(collectionSheetLoan.getAccountStateId()).thenReturn(AccountState.LOAN_ACTIVE_IN_GOOD_STANDING.getValue());
// exercise test
final CollectionSheetEntryGridDto formDto = collectionSheetDtoTranslator.toLegacyDto(collectionSheetData, formEnteredDataDto, null, defaultCurrency);
// verification
assertThat(formDto.getTotalCustomers(), is(collectionSheetCustomer.size()));
// assert that the parent entry view exists with correctly populated
final CollectionSheetEntryDto collectionSheetEntryParent = formDto.getBulkEntryParent();
assertThat(collectionSheetEntryParent, is(notNullValue()));
assertThat(collectionSheetEntryParent.getAttendence(), is(Short.valueOf("0")));
assertThat(collectionSheetEntryParent.getCountOfCustomers(), is(1));
assertThat(collectionSheetEntryParent.getCustomerDetail().getCustomerId(), is(customerId));
// customer account details
assertThat(collectionSheetEntryParent.getCustomerAccountDetails().getAccountId(), is(customerAccountId));
assertThat(collectionSheetEntryParent.getCustomerAccountDetails().getTotalAmountDue().getAmountDoubleValue(), is(totalCustomerAccountCollectionFee));
// savings account
List<SavingsAccountDto> savingAccounts = collectionSheetEntryParent.getSavingsAccountDetails();
assertThat(savingAccounts.size(), is(1));
assertThat(savingAccounts.get(0).getAccountId(), is(savingsAccountId));
assertThat(savingAccounts.get(0).getCustomerId(), is(customerId));
assertThat(savingAccounts.get(0).getTotalDepositDue(), is(savingsDepositDue));
// loan accounts
List<LoanAccountsProductDto> loanAccountProductViews = collectionSheetEntryParent.getLoanAccountDetails();
assertThat(loanAccountProductViews.size(), is(1));
assertThat(loanAccountProductViews.get(0).getPrdOfferingShortName(), is(loanProductShortName));
assertThat(loanAccountProductViews.get(0).getTotalAmountDue(), is(totalRepaymentDue));
assertThat(loanAccountProductViews.get(0).getLoanAccountViews().size(), is(1));
assertThat(loanAccountProductViews.get(0).getLoanAccountViews().get(0).getTotalAmountDue(), is(totalRepaymentDue));
}
use of org.mifos.application.collectionsheet.business.CollectionSheetEntryGridDto in project head by mifos.
the class CollectionSheetDtoTranslatorImplTest method shouldTranslateFormEnteredDataOnToCollectionSheetEntryGridDto.
@Test
public void shouldTranslateFormEnteredDataOnToCollectionSheetEntryGridDto() throws Exception {
// setup
final List<CollectionSheetCustomerDto> collectionSheetCustomer = Arrays.asList(centerCustomer);
final PersonnelDto loanOfficer = new PersonnelDto(Short.valueOf("1"), "loanOfficer");
final OfficeDetailsDto office = new OfficeDetailsDto(Short.valueOf("1"), "office", OfficeLevel.BRANCHOFFICE.getValue(), "levelNameKey", Integer.valueOf(1));
final Short paymentTypeId = Short.valueOf("99");
final ListItem<Short> paymentType = new ListItem<Short>(paymentTypeId, "item1");
final Date today = new DateTime().toDate();
final String receiptNumber = "XXX-120";
final Integer accountId = Integer.valueOf("55");
final Short currencyId = Short.valueOf("2");
final Double totalCustomerAccountCollectionFee = Double.valueOf("29.87");
final CollectionSheetCustomerAccountDto customerAccountDto = new CollectionSheetCustomerAccountDto(accountId, currencyId, totalCustomerAccountCollectionFee);
// stubbing
when(collectionSheetData.getCollectionSheetCustomer()).thenReturn(collectionSheetCustomer);
when(centerCustomer.getCollectionSheetCustomerAccount()).thenReturn(customerAccountDto);
when(formEnteredDataDto.getLoanOfficer()).thenReturn(loanOfficer);
when(formEnteredDataDto.getOffice()).thenReturn(office);
when(formEnteredDataDto.getPaymentType()).thenReturn(paymentType);
when(formEnteredDataDto.getMeetingDate()).thenReturn(today);
when(formEnteredDataDto.getReceiptDate()).thenReturn(today);
when(formEnteredDataDto.getReceiptId()).thenReturn(receiptNumber);
// exercise test
final CollectionSheetEntryGridDto formDto = collectionSheetDtoTranslator.toLegacyDto(collectionSheetData, formEnteredDataDto, null, defaultCurrency);
// verification
assertThat(formDto.getTotalCustomers(), is(collectionSheetCustomer.size()));
// assert that the parent entry view exists with correctly populated
// assert form selected data set on dto
assertThat(formDto.getLoanOfficer(), is(loanOfficer));
assertThat(formDto.getOffice(), is(office));
assertThat(formDto.getPaymentType(), is(paymentType));
assertThat(formDto.getTransactionDate(), is(today));
assertThat(formDto.getReceiptDate(), is(today));
assertThat(formDto.getReceiptId(), is(receiptNumber));
assertThat(formDto.getPaymentTypeId(), is(paymentTypeId));
}
use of org.mifos.application.collectionsheet.business.CollectionSheetEntryGridDto in project head by mifos.
the class CollectionSheetServiceFacadeWebTier method generateCollectionSheetEntryGridView.
@Override
public CollectionSheetEntryGridDto generateCollectionSheetEntryGridView(final CollectionSheetFormEnteredDataDto formEnteredDataDto, final MifosCurrency currency) {
final CollectionSheetDto collectionSheet = getCollectionSheet(formEnteredDataDto.getCustomer().getCustomerId(), DateUtils.getLocalDateFromDate(formEnteredDataDto.getMeetingDate()));
try {
final List<CustomValueListElementDto> attendanceTypesList = legacyMasterDao.getCustomValueList(MasterConstants.ATTENDENCETYPES, "org.mifos.application.master.business.CustomerAttendanceType", "attendanceId").getCustomValueListElements();
final CollectionSheetEntryGridDto translatedGridView = collectionSheetTranslator.toLegacyDto(collectionSheet, formEnteredDataDto, attendanceTypesList, currency);
return translatedGridView;
} catch (SystemException e) {
throw new MifosRuntimeException(e);
}
}
Aggregations