Search in sources :

Example 6 with CollectionSheetEntryDto

use of org.mifos.application.collectionsheet.business.CollectionSheetEntryDto in project head by mifos.

the class CollectionSheetServiceFacadeWebTier method previewCollectionSheetEntry.

@Override
public CollectionSheetEntryGridDto previewCollectionSheetEntry(final CollectionSheetEntryGridDto previousCollectionSheetEntryDto, final CollectionSheetDataDto dataView) {
    CollectionSheetEntryGridDto newCollectionSheetEntryGridDto = null;
    final CollectionSheetEntryDto bulkEntryParent = previousCollectionSheetEntryDto.getBulkEntryParent();
    switch(CustomerLevel.getLevel(bulkEntryParent.getCustomerDetail().getCustomerLevelId())) {
        case CENTER:
            newCollectionSheetEntryGridDto = new CollectionSheetEntryGridDtoTranslator().translateAsCenter(previousCollectionSheetEntryDto, dataView);
            break;
        case GROUP:
        case CLIENT:
            newCollectionSheetEntryGridDto = new CollectionSheetEntryGridDtoTranslator().translateAsGroup(previousCollectionSheetEntryDto, dataView);
            break;
    }
    return newCollectionSheetEntryGridDto;
}
Also used : CollectionSheetEntryDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryDto) CollectionSheetEntryGridDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryGridDto)

Example 7 with CollectionSheetEntryDto

use of org.mifos.application.collectionsheet.business.CollectionSheetEntryDto in project head by mifos.

the class ProductDtoComparator method toLegacyDto.

@Override
public CollectionSheetEntryGridDto toLegacyDto(final CollectionSheetDto collectionSheet, final CollectionSheetFormEnteredDataDto formEnteredDataDto, final List<CustomValueListElementDto> attendanceTypesList, final MifosCurrency currency) {
    final CollectionSheetEntryDto collectionSheetEntryViewHierarchy = createEntryViewHierarchyFromCollectionSheetData(collectionSheet.getCollectionSheetCustomer(), currency);
    final PersonnelDto loanOfficer = formEnteredDataDto.getLoanOfficer();
    final OfficeDetailsDto office = formEnteredDataDto.getOffice();
    final ListItem<Short> paymentType = formEnteredDataDto.getPaymentType();
    final Date meetingDate = formEnteredDataDto.getMeetingDate();
    final String receiptId = formEnteredDataDto.getReceiptId();
    final Date receiptDate = formEnteredDataDto.getReceiptDate();
    final List<ProductDto> loanProductDtos = createListOfLoanProducts(collectionSheet.getCollectionSheetCustomer());
    final List<ProductDto> savingProductDtos = createListOfSavingProducts(collectionSheet.getCollectionSheetCustomer());
    final CollectionSheetEntryGridDto translatedGridDto = new CollectionSheetEntryGridDto(collectionSheetEntryViewHierarchy, loanOfficer, office, paymentType, meetingDate, receiptId, receiptDate, loanProductDtos, savingProductDtos, attendanceTypesList);
    return translatedGridDto;
}
Also used : PersonnelDto(org.mifos.dto.domain.PersonnelDto) OfficeDetailsDto(org.mifos.dto.domain.OfficeDetailsDto) CollectionSheetEntryDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryDto) Date(java.util.Date) CollectionSheetEntryGridDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryGridDto)

Example 8 with CollectionSheetEntryDto

use of org.mifos.application.collectionsheet.business.CollectionSheetEntryDto in project head by mifos.

the class ProductDtoComparator method createEntryViewHierarchyFromCollectionSheetData.

private CollectionSheetEntryDto createEntryViewHierarchyFromCollectionSheetData(final List<CollectionSheetCustomerDto> collectionSheetCustomerHierarchy, final MifosCurrency currency) {
    final int countOfCustomers = collectionSheetCustomerHierarchy.size();
    CollectionSheetEntryDto parentView = null;
    for (CollectionSheetCustomerDto customer : collectionSheetCustomerHierarchy) {
        final CustomerDto parentCustomerDetail = new CustomerDto(customer.getCustomerId(), customer.getName(), customer.getParentCustomerId(), customer.getLevelId());
        CollectionSheetEntryDto childView = new CollectionSheetEntryDto(parentCustomerDetail, currency);
        childView.setAttendence(customer.getAttendanceId());
        childView.setCountOfCustomers(countOfCustomers);
        final Integer accountId = customer.getCollectionSheetCustomerAccount().getAccountId();
        final Integer customerId = customer.getCustomerId();
        final Short installmentId = null;
        final Integer actionDateId = null;
        final Date actionDate = null;
        final Money miscFee = new Money(currency, customer.getCollectionSheetCustomerAccount().getTotalCustomerAccountCollectionFee().toString());
        final Money miscFeePaid = new Money(currency, "0.0");
        final Money miscPenalty = new Money(currency, "0.0");
        final Money miscPenaltyPaid = new Money(currency, "0.0");
        final CustomerAccountDto customerAccountDetails = new CustomerAccountDto(customer.getCollectionSheetCustomerAccount().getAccountId(), customer.getCustomerId(), currency);
        customerAccountDetails.setAccountId(customer.getCollectionSheetCustomerAccount().getAccountId());
        // we only create one installment fee and set the total amount due
        // in the miscFee column for now
        final CollectionSheetEntryInstallmentDto installmentView = new CollectionSheetEntryCustomerAccountInstallmentDto(accountId, customerId, installmentId, actionDateId, actionDate, miscFee, miscFeePaid, miscPenalty, miscPenaltyPaid, currency);
        final List<CollectionSheetEntryInstallmentDto> installmentViewList = java.util.Arrays.asList(installmentView);
        customerAccountDetails.setAccountActionDates(installmentViewList);
        childView.setCustomerAccountDetails(customerAccountDetails);
        // saving accounts
        for (CollectionSheetCustomerSavingDto customerSavingDto : customer.getCollectionSheetCustomerSaving()) {
            final Integer savCustomerId = customerSavingDto.getCustomerId();
            final Integer savAccountId = customerSavingDto.getAccountId();
            final String savingProductShortName = customerSavingDto.getProductShortName();
            final Short savOfferingId = customerSavingDto.getProductId();
            final Short savingsTypeId = Short.valueOf("1");
            final Short recommendedAmntUnitId = customerSavingDto.getRecommendedAmountUnitId();
            final SavingsAccountDto savingsAccount = new SavingsAccountDto(savAccountId, savCustomerId, savingProductShortName, savOfferingId, savingsTypeId, recommendedAmntUnitId);
            final Short savInstallmentId = null;
            final Integer savActionDateId = null;
            final Date savActionDate = null;
            final Money savDeposit = new Money(currency, customerSavingDto.getTotalDepositAmount().toString());
            final Money savDepositPaid = new Money(currency, "0.0");
            final CollectionSheetEntryInstallmentDto accountTrxnDetail = new CollectionSheetEntrySavingsInstallmentDto(savAccountId, savCustomerId, savInstallmentId, savActionDateId, savActionDate, savDeposit, savDepositPaid);
            savingsAccount.addAccountTrxnDetail(accountTrxnDetail);
            childView.addSavingsAccountDetail(savingsAccount);
        }
        // special savings accounts to be paid individually by clients
        for (CollectionSheetCustomerSavingDto clientIndividualSavingsAccount : customer.getIndividualSavingAccounts()) {
            final Integer savCustomerId = clientIndividualSavingsAccount.getCustomerId();
            final Integer savAccountId = clientIndividualSavingsAccount.getAccountId();
            final String savingProductShortName = clientIndividualSavingsAccount.getProductShortName();
            final Short savOfferingId = clientIndividualSavingsAccount.getProductId();
            final Short savingsTypeId = Short.valueOf("1");
            final Short recommendedAmntUnitId = Short.valueOf("1");
            final SavingsAccountDto savingsAccount = new SavingsAccountDto(savAccountId, savCustomerId, savingProductShortName, savOfferingId, savingsTypeId, recommendedAmntUnitId);
            final Short savInstallmentId = null;
            final Integer savActionDateId = null;
            final Date savActionDate = null;
            final Money savDeposit = new Money(currency, clientIndividualSavingsAccount.getDepositDue().toString());
            final Money savDepositPaid = new Money(currency, clientIndividualSavingsAccount.getDepositPaid().toString());
            final CollectionSheetEntryInstallmentDto accountTrxnDetail = new CollectionSheetEntrySavingsInstallmentDto(savAccountId, savCustomerId, savInstallmentId, savActionDateId, savActionDate, savDeposit, savDepositPaid);
            savingsAccount.addAccountTrxnDetail(accountTrxnDetail);
            childView.addSavingsAccountDetail(savingsAccount);
        }
        // loan accounts
        for (CollectionSheetCustomerLoanDto customerLoanDto : customer.getCollectionSheetCustomerLoan()) {
            final Integer loanAccountId = customerLoanDto.getAccountId();
            final Integer loanCustomerId = customerLoanDto.getCustomerId();
            final String loanOfferingShortName = customerLoanDto.getProductShortName();
            final Short loanOfferingId = customerLoanDto.getProductId();
            final Short loanInstallmentId = null;
            final Integer loanActionDateId = null;
            final Date loanActionDate = null;
            final Short loanAccountState = customerLoanDto.getAccountStateId();
            final Short interestDeductedAtDisbursement = customerLoanDto.getPayInterestAtDisbursement();
            final Money loanAmount = new Money(currency, customerLoanDto.getTotalDisbursement().toString());
            final Money principal = new Money(currency, customerLoanDto.getTotalRepaymentDue().toString());
            final LoanAccountDto loanAccount = new LoanAccountDto(loanAccountId, loanCustomerId, loanOfferingShortName, loanOfferingId, loanAccountState, interestDeductedAtDisbursement, loanAmount);
            loanAccount.setAmountPaidAtDisbursement(customerLoanDto.getAmountDueAtDisbursement());
            final CollectionSheetEntryInstallmentDto accountTrxnDetail = new CollectionSheetEntryLoanInstallmentDto(loanAccountId, loanCustomerId, loanInstallmentId, loanActionDateId, loanActionDate, principal, new Money(currency), new Money(currency), new Money(currency), new Money(currency), new Money(currency), new Money(currency), new Money(currency), new Money(currency), new Money(currency), currency);
            loanAccount.addTrxnDetails(Arrays.asList(accountTrxnDetail));
            childView.addLoanAccountDetails(loanAccount);
        }
        // center-group-client hierarchy
        if (parentView == null) {
            parentView = childView;
        } else {
            addChildToAppropriateParent(parentView, childView);
        }
    }
    return parentView;
}
Also used : CollectionSheetEntryLoanInstallmentDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryLoanInstallmentDto) CustomerAccountDto(org.mifos.customers.util.helpers.CustomerAccountDto) CustomerDto(org.mifos.dto.domain.CustomerDto) LoanAccountDto(org.mifos.accounts.loan.util.helpers.LoanAccountDto) Date(java.util.Date) SavingsAccountDto(org.mifos.accounts.savings.util.helpers.SavingsAccountDto) Money(org.mifos.framework.util.helpers.Money) CollectionSheetEntrySavingsInstallmentDto(org.mifos.application.collectionsheet.business.CollectionSheetEntrySavingsInstallmentDto) CollectionSheetEntryDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryDto) CollectionSheetEntryCustomerAccountInstallmentDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryCustomerAccountInstallmentDto) CollectionSheetEntryInstallmentDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryInstallmentDto)

Example 9 with CollectionSheetEntryDto

use of org.mifos.application.collectionsheet.business.CollectionSheetEntryDto in project head by mifos.

the class CollectionSheetEntryGridDtoTranslator method translateAsGroup.

public CollectionSheetEntryGridDto translateAsGroup(final CollectionSheetEntryGridDto previousCollectionSheetEntryDto, final CollectionSheetDataDto bulkEntryDataView) {
    final CollectionSheetEntryDto bulkEntryParent = previousCollectionSheetEntryDto.getBulkEntryParent();
    int rowIndex = 0;
    List<CollectionSheetEntryDto> bulkEntrySubChildrens = bulkEntryParent.getCollectionSheetEntryChildren();
    for (CollectionSheetEntryDto bulkEntrySubChildView : bulkEntrySubChildrens) {
        setLoanAmountEntered(bulkEntrySubChildView, rowIndex, bulkEntryDataView.getLoanAmountEntered(), bulkEntryDataView.getDisbursementAmountEntered(), previousCollectionSheetEntryDto.getLoanProducts());
        setSavingsAmountEntered(bulkEntrySubChildView, rowIndex, bulkEntryDataView.getDepositAmountEntered(), bulkEntryDataView.getWithDrawalAmountEntered(), previousCollectionSheetEntryDto.getSavingProducts());
        setCustomerAccountAmountEntered(bulkEntrySubChildView, rowIndex, bulkEntryDataView.getCustomerAccountAmountEntered());
        setClientAttendance(bulkEntrySubChildView, bulkEntryDataView.getAttendance()[rowIndex]);
        rowIndex++;
    }
    setLoanAmountEntered(bulkEntryParent, rowIndex, bulkEntryDataView.getLoanAmountEntered(), bulkEntryDataView.getDisbursementAmountEntered(), previousCollectionSheetEntryDto.getLoanProducts());
    setSavingsAmountEntered(bulkEntryParent, rowIndex, bulkEntryDataView.getDepositAmountEntered(), bulkEntryDataView.getWithDrawalAmountEntered(), previousCollectionSheetEntryDto.getSavingProducts());
    setCustomerAccountAmountEntered(bulkEntryParent, rowIndex, bulkEntryDataView.getCustomerAccountAmountEntered());
    return previousCollectionSheetEntryDto;
}
Also used : CollectionSheetEntryDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryDto)

Example 10 with CollectionSheetEntryDto

use of org.mifos.application.collectionsheet.business.CollectionSheetEntryDto in project head by mifos.

the class CollectionSheetEntryGridDtoTranslator method translateAsCenter.

public CollectionSheetEntryGridDto translateAsCenter(final CollectionSheetEntryGridDto collectionSheetEntryGridDto, final CollectionSheetDataDto dataView) {
    final CollectionSheetEntryDto collectionSheetParent = collectionSheetEntryGridDto.getBulkEntryParent();
    final List<CollectionSheetEntryDto> collectionSheetChildViews = collectionSheetParent.getCollectionSheetEntryChildren();
    int rowIndex = 0;
    for (CollectionSheetEntryDto collectionSheetChild : collectionSheetChildViews) {
        final List<CollectionSheetEntryDto> bulkEntrySubChildrenViews = collectionSheetChild.getCollectionSheetEntryChildren();
        for (CollectionSheetEntryDto bulkEntrySubChildView : bulkEntrySubChildrenViews) {
            setLoanAmountEntered(bulkEntrySubChildView, rowIndex, dataView.getLoanAmountEntered(), dataView.getDisbursementAmountEntered(), collectionSheetEntryGridDto.getLoanProducts());
            setSavingsAmountEntered(bulkEntrySubChildView, rowIndex, dataView.getDepositAmountEntered(), dataView.getWithDrawalAmountEntered(), collectionSheetEntryGridDto.getSavingProducts());
            setCustomerAccountAmountEntered(bulkEntrySubChildView, rowIndex, dataView.getCustomerAccountAmountEntered());
            setClientAttendance(bulkEntrySubChildView, dataView.getAttendance()[rowIndex]);
            rowIndex++;
        }
        setLoanAmountEntered(collectionSheetChild, rowIndex, dataView.getLoanAmountEntered(), dataView.getDisbursementAmountEntered(), collectionSheetEntryGridDto.getLoanProducts());
        setSavingsAmountEntered(collectionSheetChild, rowIndex, dataView.getDepositAmountEntered(), dataView.getWithDrawalAmountEntered(), collectionSheetEntryGridDto.getSavingProducts());
        setCustomerAccountAmountEntered(collectionSheetChild, rowIndex, dataView.getCustomerAccountAmountEntered());
        rowIndex++;
    }
    setSavingsAmountEntered(collectionSheetParent, rowIndex, dataView.getDepositAmountEntered(), dataView.getWithDrawalAmountEntered(), collectionSheetEntryGridDto.getSavingProducts());
    setCustomerAccountAmountEntered(collectionSheetParent, rowIndex, dataView.getCustomerAccountAmountEntered());
    return collectionSheetEntryGridDto;
}
Also used : CollectionSheetEntryDto(org.mifos.application.collectionsheet.business.CollectionSheetEntryDto)

Aggregations

CollectionSheetEntryDto (org.mifos.application.collectionsheet.business.CollectionSheetEntryDto)16 CollectionSheetEntryGridDto (org.mifos.application.collectionsheet.business.CollectionSheetEntryGridDto)6 ArrayList (java.util.ArrayList)5 SavingsAccountDto (org.mifos.accounts.savings.util.helpers.SavingsAccountDto)5 Money (org.mifos.framework.util.helpers.Money)5 Date (java.util.Date)4 LoanAccountDto (org.mifos.accounts.loan.util.helpers.LoanAccountDto)4 LoanAccountsProductDto (org.mifos.accounts.loan.util.helpers.LoanAccountsProductDto)4 OfficeDetailsDto (org.mifos.dto.domain.OfficeDetailsDto)4 PersonnelDto (org.mifos.dto.domain.PersonnelDto)4 LoanOfferingBO (org.mifos.accounts.productdefinition.business.LoanOfferingBO)3 SavingsOfferingBO (org.mifos.accounts.productdefinition.business.SavingsOfferingBO)3 CustomValueListElementDto (org.mifos.application.master.business.CustomValueListElementDto)3 MeetingBO (org.mifos.application.meeting.business.MeetingBO)3 ProductDto (org.mifos.application.servicefacade.ProductDto)3 MifosCurrency (org.mifos.application.master.business.MifosCurrency)2 MifosRuntimeException (org.mifos.core.MifosRuntimeException)2 CustomerAccountDto (org.mifos.customers.util.helpers.CustomerAccountDto)2 Date (java.sql.Date)1 Locale (java.util.Locale)1