List of usage examples for org.joda.time LocalDate getYearOfEra
public int getYearOfEra()
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; }