Example usage for org.joda.time LocalDate getYearOfEra

List of usage examples for org.joda.time LocalDate getYearOfEra

Introduction

In this page you can find the example usage for org.joda.time LocalDate getYearOfEra.

Prototype

public int getYearOfEra() 

Source Link

Document

Get the year of era field value.

Usage

From source file:com.gst.infrastructure.core.api.JodaLocalDateAdapter.java

License:Apache License

@SuppressWarnings("unused")
@Override//from  ww  w  . j a v  a  2  s.  c  om
public JsonElement serialize(final LocalDate src, final Type typeOfSrc,
        final JsonSerializationContext context) {

    JsonArray array = null;
    if (src != null) {
        array = new JsonArray();
        array.add(new JsonPrimitive(src.getYearOfEra()));
        array.add(new JsonPrimitive(src.getMonthOfYear()));
        array.add(new JsonPrimitive(src.getDayOfMonth()));
    }

    return array;
}

From source file:com.gst.portfolio.savings.domain.interest.PostingPeriod.java

License:Apache License

private static LocalDate determineInterestPeriodEndDateFrom(final LocalDate periodStartDate,
        final SavingsCompoundingInterestPeriodType interestPeriodType,
        final LocalDate upToInterestCalculationDate) {

    LocalDate periodEndDate = upToInterestCalculationDate;

    switch (interestPeriodType) {
    case INVALID:
        break;/*from  w  ww  .  ja v  a 2s .  c om*/
    case DAILY:
        periodEndDate = periodStartDate;
        break;
    // case WEEKLY:
    // periodEndDate = periodStartDate.dayOfWeek().withMaximumValue();
    // break;
    // case BIWEEKLY:
    // final LocalDate closestEndOfWeek =
    // periodStartDate.dayOfWeek().withMaximumValue();
    // periodEndDate = closestEndOfWeek.plusWeeks(1);
    // break;
    case MONTHLY:
        // produce period end date on last day of current month
        periodEndDate = periodStartDate.dayOfMonth().withMaximumValue();
        break;
    case QUATERLY:
        // // jan 1st to mar 31st, 1st apr to jun 30, jul 1st to sept
        // 30,
        // // oct 1st to dec 31
        int year = periodStartDate.getYearOfEra();
        int monthofYear = periodStartDate.getMonthOfYear();
        if (monthofYear <= 3) {
            periodEndDate = new DateTime().withDate(year, 3, 31).toLocalDate();
        } else if (monthofYear <= 6) {
            periodEndDate = new DateTime().withDate(year, 6, 30).toLocalDate();
        } else if (monthofYear <= 9) {
            periodEndDate = new DateTime().withDate(year, 9, 30).toLocalDate();
        } else if (monthofYear <= 12) {
            periodEndDate = new DateTime().withDate(year, 12, 31).toLocalDate();
        }
        break;
    case BI_ANNUAL:
        // // jan 1st to 30, jul 1st to dec 31
        year = periodStartDate.getYearOfEra();
        monthofYear = periodStartDate.getMonthOfYear();
        if (monthofYear <= 6) {
            periodEndDate = new DateTime().withDate(year, 6, 30).toLocalDate();
        } else if (monthofYear <= 12) {
            periodEndDate = new DateTime().withDate(year, 12, 31).toLocalDate();
        }
        break;
    case ANNUAL:
        periodEndDate = periodStartDate.monthOfYear().withMaximumValue();
        periodEndDate = periodEndDate.dayOfMonth().withMaximumValue();
        break;

    // case NO_COMPOUNDING_SIMPLE_INTEREST:
    // periodEndDate = periodStartDate.monthOfYear().withMaximumValue();
    // periodEndDate = periodEndDate.dayOfMonth().withMaximumValue();
    // break;
    }

    return periodEndDate;
}

From source file:org.mifos.clientportfolio.loan.ui.LoanAccountController.java

License:Open Source License

@SuppressWarnings("PMD")
public LoanCreationLoanDetailsDto retrieveLoanCreationDetails(int customerId, int productId, String eventId,
        String fileToDelete, LoanAccountFormBean formBean) {

    if ("newFileSelected".equals(eventId)) {
        if (formBean.getSelectedFile() != null) {
            CommonsMultipartFile file = formBean.getSelectedFile();
            formBean.getFiles().add(file);
            formBean.getFilesMetadata().add(new UploadedFileDto(file.getOriginalFilename(),
                    file.getContentType(), (int) file.getSize(), formBean.getSelectedFileDescription()));
        }//w w  w  .  j a v  a2  s .  c o  m
        return dto;
    } else if ("fileDeleted".equals(eventId)) {
        if (fileToDelete != null) {
            int index = 0;
            for (CommonsMultipartFile formFile : formBean.getFiles()) {
                if (formFile.getOriginalFilename().equals(fileToDelete)) {
                    index = formBean.getFiles().indexOf(formFile);
                    break;
                }
            }
            if (index >= 0) {
                formBean.getFiles().remove(index);
                formBean.getFilesMetadata().remove(index);
            }
        }
        return dto;
    }
    MandatoryHiddenFieldsDto mandatoryHidden = this.adminServiceFacade.retrieveHiddenMandatoryFieldsToRead();
    dto = this.loanAccountServiceFacade.retrieveLoanDetailsForLoanAccountCreation(customerId,
            Integer.valueOf(productId).shortValue(), formBean.isRedoLoanAccount());

    formBean.setLocale(Locale.getDefault());

    formBean.setDigitsBeforeDecimalForInterest(dto.getAppConfig().getDigitsBeforeDecimalForInterest());
    formBean.setDigitsAfterDecimalForInterest(dto.getAppConfig().getDigitsAfterDecimalForInterest());
    formBean.setDigitsBeforeDecimalForMonetaryAmounts(
            dto.getAppConfig().getDigitsBeforeDecimalForMonetaryAmounts());
    formBean.setDigitsAfterDecimalForMonetaryAmounts(
            dto.getAppConfig().getDigitsAfterDecimalForMonetaryAmounts());

    formBean.setProductId(productId);
    formBean.setCustomerId(dto.getCustomerDetailDto().getCustomerId());
    formBean.setRepaymentScheduleIndependentOfCustomerMeeting(dto.isRepaymentIndependentOfMeetingEnabled());
    formBean.setGraceDuration(dto.getGracePeriodInInstallments());
    formBean.setMaxGraceDuration(dto.getGracePeriodInInstallments());

    if (dto.isRepaymentIndependentOfMeetingEnabled()) {

        // use loan product to default meeting details
        Integer recursEvery = dto.getLoanOfferingMeetingDetail().getMeetingDetailsDto().getEvery();
        Integer dayOfMonth = dto.getLoanOfferingMeetingDetail().getMeetingDetailsDto().getRecurrenceDetails()
                .getDayNumber();
        Integer weekOfMonth = dto.getLoanOfferingMeetingDetail().getMeetingDetailsDto().getRecurrenceDetails()
                .getWeekOfMonth();
        Integer dayOfWeek = dto.getLoanOfferingMeetingDetail().getMeetingDetailsDto().getRecurrenceDetails()
                .getDayOfWeek();
        Integer recurrenceType = dto.getLoanOfferingMeetingDetail().getMeetingDetailsDto()
                .getRecurrenceTypeId();

        Integer customerRecurrenceType = dto.getCustomerMeetingDetail().getMeetingDetailsDto()
                .getRecurrenceTypeId();
        if (recurrenceType.equals(customerRecurrenceType)) {
            // if customer and product meeting frequencies are the same e.g. weekly or monthly, then default to customer details except for recurrence details
            dayOfMonth = dto.getCustomerMeetingDetail().getMeetingDetailsDto().getRecurrenceDetails()
                    .getDayNumber();
            weekOfMonth = dto.getCustomerMeetingDetail().getMeetingDetailsDto().getRecurrenceDetails()
                    .getWeekOfMonth();
            dayOfWeek = dto.getCustomerMeetingDetail().getMeetingDetailsDto().getRecurrenceDetails()
                    .getDayOfWeek();
        }

        // sometimes it seems customer meeting information can be setup wrong (i.e. has a day of month even though its weekly)
        if (recurrenceType == 1) {
            if (dateInformationIsAvailable(dayOfWeek)) {
                formBean.setWeeklyDetails(dayOfWeek, recursEvery);
            }
        } else if (recurrenceType == 2) {
            if (dateInformationIsAvailable(weekOfMonth) && dateInformationIsAvailable(dayOfWeek)) {
                formBean.setWeekOfMonthDetails(weekOfMonth, dayOfWeek, recursEvery);
            } else if (dateInformationIsAvailable(dayOfMonth)) {
                formBean.setDayOfMonthDetails(dayOfMonth, recursEvery);
            }
        } else if (recurrenceType == 3) {
            formBean.setRepaymentRecursEvery(recursEvery);
        }
    }

    formBean.setVariableInstallmentsAllowed(dto.isVariableInstallmentsAllowed());
    if (dto.isVariableInstallmentsAllowed()) {
        formBean.setMinGapInDays(dto.getMinGapInDays());
        formBean.setMaxGapInDays(dto.getMaxGapInDays());
        formBean.setMinInstallmentAmount(dto.getMinInstallmentAmount());
    }
    formBean.setGlimApplicable(dto.isGlimApplicable());
    if (dto.isGroup()) {
        formBean.setGroupLoanWithMembersEnabled(dto.isGroupLoanWithMembersEnabled());
    }
    if (dto.isGlimApplicable() || (dto.isGroup() && dto.isGroupLoanWithMembersEnabled())) {
        List<LoanAccountDetailsDto> clientData = dto.getClientDetails();
        String[] clientGlobalIdArray = new String[clientData.size()];
        int index = 0;
        for (LoanAccountDetailsDto loanAccountDetailsDto : clientData) {
            clientGlobalIdArray[index] = loanAccountDetailsDto.getClientId();
            index++;
        }
        formBean.setClientGlobalId(clientGlobalIdArray);

        formBean.setClientSelectForGroup(new Boolean[clientData.size()]);
        formBean.setClientAmount(new Number[clientData.size()]);
        Integer[] loanPurpose = new Integer[clientData.size()];
        formBean.setClientLoanPurposeId(loanPurpose);

        Number[][] selectedFeeIndividualAmounts = new Number[3][clientData.size()];
        formBean.setSelectedFeeIndividualAmounts(selectedFeeIndividualAmounts);

        Number[][] defaultFeeIndividualAmounts = new Number[dto.getDefaultFees().size()][clientData.size()];
        formBean.setDefaultFeeIndividualAmounts(defaultFeeIndividualAmounts);
    } else {
        formBean.setAmount(Double.valueOf(dto.getDefaultLoanAmount().toPlainString()));
    }

    formBean.setMinAllowedAmount(dto.getMinLoanAmount());
    formBean.setMaxAllowedAmount(dto.getMaxLoanAmount());

    formBean.setInterestRate(dto.getDefaultInterestRate());
    formBean.setMinAllowedInterestRate(dto.getMinInterestRate());
    formBean.setMaxAllowedInterestRate(dto.getMaxInterestRate());

    formBean.setNumberOfInstallments(dto.getDefaultNumberOfInstallments());
    formBean.setMinNumberOfInstallments(dto.getMinNumberOfInstallments());
    formBean.setMaxNumberOfInstallments(dto.getMaxNumberOfInstallments());

    formBean.setSourceOfFundsMandatory(mandatoryHidden.isMandatoryLoanSourceOfFund());
    formBean.setPurposeOfLoanMandatory(mandatoryHidden.isMandatoryLoanAccountPurpose());
    formBean.setCollateralTypeAndNotesHidden(mandatoryHidden.isHideSystemCollateralTypeNotes());
    formBean.setExternalIdHidden(mandatoryHidden.isHideSystemExternalId());
    if (!mandatoryHidden.isHideSystemExternalId()) {
        formBean.setExternalIdMandatory(mandatoryHidden.isMandatorySystemExternalId());
    }

    LocalDate possibleDisbursementDate = dto.getNextPossibleDisbursementDate();
    if (possibleDisbursementDate != null) {
        formBean.setDisbursementDateDD(possibleDisbursementDate.getDayOfMonth());
        formBean.setDisbursementDateMM(possibleDisbursementDate.getMonthOfYear());
        formBean.setDisbursementDateYY(possibleDisbursementDate.getYearOfEra());
    }

    formBean.setCollateralNotes("");

    Number[] defaultFeeId = new Number[dto.getDefaultFees().size()];
    Number[] defaultFeeAmountOrRate = new Number[dto.getDefaultFees().size()];
    int index = 0;
    for (FeeDto defaultFee : dto.getDefaultFees()) {
        if (defaultFee.isRateBasedFee()) {
            defaultFeeAmountOrRate[index] = defaultFee.getRate();
        } else {
            defaultFeeAmountOrRate[index] = defaultFee.getAmountAsNumber();
        }
        defaultFeeId[index] = Long.valueOf(defaultFee.getId());
        index++;
    }
    formBean.setDefaultFeeAmountOrRate(defaultFeeAmountOrRate);
    formBean.setDefaultFeeId(defaultFeeId);
    formBean.setDefaultFeeSelected(new Boolean[dto.getDefaultFees().size()]);
    formBean.setDefaultFees(dto.getDefaultFees());

    Number[] defaultPenaltyId = new Number[dto.getDefaultPenalties().size()];
    Number[] defaultPenaltyAmountOrRate = new Number[dto.getDefaultPenalties().size()];
    int idx = 0;
    for (PenaltyDto defaultPenalty : dto.getDefaultPenalties()) {
        if (defaultPenalty.isRateBasedPenalty()) {
            defaultPenaltyAmountOrRate[idx] = defaultPenalty.getRate();
        } else {
            defaultPenaltyAmountOrRate[idx] = defaultPenalty.getAmountAsNumber();
        }
        defaultPenaltyId[idx] = Long.valueOf(defaultPenalty.getPenaltyId());
        idx++;
    }
    formBean.setDefaultPenaltyAmountOrRate(defaultPenaltyAmountOrRate);
    formBean.setDefaultPenaltyId(defaultPenaltyId);
    formBean.setDefaultPenaltySelected(new Boolean[dto.getDefaultPenalties().size()]);
    formBean.setDefaultPenalties(dto.getDefaultPenalties());

    Number[] selectedFeeId = new Number[3];
    formBean.setSelectedFeeId(selectedFeeId);

    Number[] selectedFeeAmount = new Number[3];
    formBean.setSelectedFeeAmount(selectedFeeAmount);
    formBean.setAdditionalFees(dto.getAdditionalFees());

    if (formBean.getFiles() == null) {
        formBean.setFiles(new ArrayList<CommonsMultipartFile>());
        formBean.setFilesMetadata(new ArrayList<UploadedFileDto>());
    }

    formBean.setLoanInformationOrder(informationOrderServiceFacade.getInformationOrder("CreateLoan"));

    return dto;
}