List of usage examples for org.joda.time Days daysBetween
public static Days daysBetween(ReadablePartial start, ReadablePartial end)
Days
representing the number of whole days between the two specified partial datetimes. From source file:com.google.api.ads.adwords.awreporting.server.kratu.KratuCompute.java
License:Open Source License
public static Kratu createKratuSummary(List<Kratu> dailyKratus, Date startDate, Date endDate) { Kratu summarizedKratu = new Kratu(); BigDecimal daysInRange = new BigDecimal( Days.daysBetween(new DateTime(startDate.getTime()), new DateTime(endDate.getTime())).getDays()) .add(BigDecimal.ONE); // We use the first Kratu to set the Base Account info (They all should have the same Account info). if (dailyKratus != null && dailyKratus.size() > 0) { summarizedKratu.setTopAccountId(dailyKratus.get(0).getTopAccountId()); summarizedKratu.setAccountName(dailyKratus.get(0).getAccountName()); summarizedKratu.setExternalCustomerId(dailyKratus.get(0).getExternalCustomerId()); summarizedKratu.setCurrencyCode(dailyKratus.get(0).getCurrencyCode()); summarizedKratu.setDateTimeZone(dailyKratus.get(0).getDateTimeZone()); summarizedKratu.setAccountSuspended(dailyKratus.get(0).getAccountSuspended()); }//from ww w. j a v a 2 s .c o m for (Kratu dailyKratu : dailyKratus) { // General summarizedKratu.addSpend(dailyKratu.getSpend()); summarizedKratu.setSpend(summarizedKratu.getSpend().setScale(SCALE, ROUNDING)); summarizedKratu.addSumBudget(dailyKratu.getSumBudget()); summarizedKratu.addConversions(dailyKratu.getConversions()); // Search Info summarizedKratu.addTotalClicksSearch(dailyKratu.getTotalClicksSearch()); summarizedKratu.addImpressionsSearch(dailyKratu.getImpressionsSearch()); summarizedKratu.addElegibleImpressionsSearch(dailyKratu.getElegibleImpressionsSearch()); summarizedKratu.addLostImpressionsDueToBudgetSearch(dailyKratu.getLostImpressionsDueToBudgetSearch()); summarizedKratu .addLostImpressionsDueToBidAdRankSearch(dailyKratu.getLostImpressionsDueToBidAdRankSearch()); summarizedKratu.addCtrSearch(dailyKratu.getCtrSearch().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu .addAverageCpcSearch(dailyKratu.getAverageCpcSearch().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu .addAverageCpmSearch(dailyKratu.getAverageCpmSearch().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addAveragePositionSearch( dailyKratu.getAveragePositionSearch().divide(daysInRange, SCALE, ROUNDING)); // Display Info summarizedKratu.addTotalClicksDisplay(dailyKratu.getTotalClicksDisplay()); summarizedKratu.addImpressionsDisplay(dailyKratu.getImpressionsDisplay()); summarizedKratu.addElegibleImpressionsDisplay(dailyKratu.getElegibleImpressionsDisplay()); summarizedKratu.addLostImpressionsDueToBudgetDisplay(dailyKratu.getLostImpressionsDueToBudgetDisplay()); summarizedKratu .addLostImpressionsDueToBidAdRankDisplay(dailyKratu.getLostImpressionsDueToBidAdRankDisplay()); summarizedKratu.addCtrDisplay(dailyKratu.getCtrDisplay().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu .addAverageCpcDisplay(dailyKratu.getAverageCpcDisplay().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu .addAverageCpmDisplay(dailyKratu.getAverageCpmDisplay().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addAveragePositionDisplay( dailyKratu.getAveragePositionDisplay().divide(daysInRange, SCALE, ROUNDING)); // Structural Info summarizedKratu.addNumberOfActiveCampaigns( dailyKratu.getNumberOfActiveCampaigns().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfActiveAdGroups( dailyKratu.getNumberOfActiveAdGroups().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu .addNumberOfActiveAds(dailyKratu.getNumberOfActiveAds().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfPositiveActiveKeywords( dailyKratu.getNumberOfPositiveActiveKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfActiveBroadMatchingKeywords( dailyKratu.getNumberOfActiveBroadMatchingKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfActivePhraseMatchingKeywords( dailyKratu.getNumberOfActivePhraseMatchingKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfActiveExactMatchingKeywords( dailyKratu.getNumberOfActiveExactMatchingKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfNegativeActiveKeywords( dailyKratu.getNumberOfNegativeActiveKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfCampaignNegativeActiveKeywords( dailyKratu.getNumberOfCampaignNegativeActiveKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfAdGroupNegativeActiveKeywords( dailyKratu.getNumberOfAdGroupNegativeActiveKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfActiveGoodQualityScoreKeywords( dailyKratu.getNumberOfActiveGoodQualityScoreKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfActiveAverageQualityScoreKeywords( dailyKratu.getNumberOfActiveAverageQualityScoreKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfActivePoorQualityScoreKeywords( dailyKratu.getNumberOfActivePoorQualityScoreKeywords().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfCampaignsWithCallExtensionEnabled( dailyKratu.getNumberOfCampaignsWithCallExtensionEnabled().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfCampaignsWithLocationExtensionEnabled(dailyKratu .getNumberOfCampaignsWithLocationExtensionEnabled().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfCampaignsWithSiteLinksEnabled( dailyKratu.getNumberOfCampaignsWithSiteLinksEnabled().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfAdgroupsWithoneActiveAd( dailyKratu.getNumberOfAdgroupsWithoneActiveAd().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfAdgroupsWithTwoActiveAds( dailyKratu.getNumberOfAdgroupsWithTwoActiveAds().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addNumberOfDisapprovedAds( dailyKratu.getNumberOfDisapprovedAds().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addWeightedAverageKeywordPosition( dailyKratu.getWeightedAverageKeywordPosition().divide(daysInRange, SCALE, ROUNDING)); summarizedKratu.addWeightedAverageQualityScore( dailyKratu.getWeightedAverageQualityScore().divide(daysInRange, SCALE, ROUNDING)); System.out.print("."); } if (summarizedKratu.getImpressionsDisplay() + summarizedKratu.getImpressionsSearch() > 0) { summarizedKratu.setAccountActive("Yes"); } return summarizedKratu; }
From source file:com.google.api.ads.adwords.jaxws.extensions.kratu.data.Kratu.java
License:Open Source License
protected static Kratu createKratuSummary(List<Kratu> dailyKratus, Date startDate, Date endDate) { Kratu summarizedKratu = new Kratu(); BigDecimal daysInRange = new BigDecimal( Days.daysBetween(new DateTime(startDate.getTime()), new DateTime(endDate.getTime())).getDays()) .add(new BigDecimal(1)); if (dailyKratus != null && dailyKratus.size() > 0) { summarizedKratu.topAccountId = dailyKratus.get(0).topAccountId; summarizedKratu.accountName = dailyKratus.get(0).accountName; summarizedKratu.externalCustomerId = dailyKratus.get(0).externalCustomerId; summarizedKratu.currencyCode = dailyKratus.get(0).currencyCode; summarizedKratu.dateTimeZone = dailyKratus.get(0).dateTimeZone; summarizedKratu.accountSuspended = dailyKratus.get(0).accountSuspended; }//w ww. j a va 2 s . co m for (Kratu dailyKratu : dailyKratus) { summarizedKratu.spend = summarizedKratu.spend.add(dailyKratu.spend); summarizedKratu.spend = summarizedKratu.spend.setScale(2, RoundingMode.HALF_UP); summarizedKratu.conversions += dailyKratu.conversions; summarizedKratu.totalClicksSearch += dailyKratu.totalClicksSearch; summarizedKratu.impressionsSearch += dailyKratu.impressionsSearch; summarizedKratu.lostImpressionsDueToBudgetSearch = summarizedKratu.lostImpressionsDueToBudgetSearch .add(dailyKratu.lostImpressionsDueToBudgetSearch); summarizedKratu.lostImpressionsDueToBidAdRankSearch = summarizedKratu.lostImpressionsDueToBidAdRankSearch .add(dailyKratu.lostImpressionsDueToBidAdRankSearch); summarizedKratu.ctrSearch = summarizedKratu.ctrSearch .add(dailyKratu.ctrSearch.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.averageCpcSearch = summarizedKratu.averageCpcSearch .add(dailyKratu.ctrSearch.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.averageCpmSearch = summarizedKratu.averageCpmSearch .add(dailyKratu.averageCpmSearch.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.averagePositionSearch = summarizedKratu.averagePositionSearch .add(dailyKratu.averagePositionSearch.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.totalClicksDisplay += dailyKratu.totalClicksDisplay; summarizedKratu.impressionsDisplay += dailyKratu.impressionsDisplay; summarizedKratu.lostImpressionsDueToBudgetDisplay = summarizedKratu.lostImpressionsDueToBudgetDisplay .add(dailyKratu.lostImpressionsDueToBudgetDisplay); summarizedKratu.lostImpressionsDueToBidAdRankDisplay = summarizedKratu.lostImpressionsDueToBidAdRankDisplay .add(dailyKratu.lostImpressionsDueToBidAdRankDisplay); summarizedKratu.ctrDisplay = summarizedKratu.ctrDisplay .add(dailyKratu.ctrDisplay.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.averageCpcDisplay = summarizedKratu.averageCpcDisplay .add(dailyKratu.averageCpcDisplay.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.averageCpmDisplay = summarizedKratu.averageCpmDisplay .add(dailyKratu.averageCpmDisplay.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.averagePositionDisplay = summarizedKratu.averagePositionDisplay .add(dailyKratu.averagePositionDisplay.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActiveCampaigns = summarizedKratu.numberOfActiveCampaigns .add(dailyKratu.numberOfActiveCampaigns.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActiveAdGroups = summarizedKratu.numberOfActiveAdGroups .add(dailyKratu.numberOfActiveAdGroups.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActiveAds = summarizedKratu.numberOfActiveAds .add(dailyKratu.numberOfActiveAds.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfPositiveActiveKeywords = summarizedKratu.numberOfPositiveActiveKeywords .add(dailyKratu.numberOfPositiveActiveKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActiveBroadMatchingKeywords = summarizedKratu.numberOfActiveBroadMatchingKeywords .add(dailyKratu.numberOfActiveBroadMatchingKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActivePhraseMatchingKeywords = summarizedKratu.numberOfActivePhraseMatchingKeywords .add(dailyKratu.numberOfActivePhraseMatchingKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActiveExactMatchingKeywords = summarizedKratu.numberOfActivePhraseMatchingKeywords .add(dailyKratu.numberOfActivePhraseMatchingKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfNegativeActiveKeywords = summarizedKratu.numberOfNegativeActiveKeywords .add(dailyKratu.numberOfNegativeActiveKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfCampaignNegativeActiveKeywords = summarizedKratu.numberOfNegativeActiveKeywords .add(dailyKratu.numberOfNegativeActiveKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfAdGroupNegativeActiveKeywords = summarizedKratu.numberOfAdGroupNegativeActiveKeywords .add(dailyKratu.numberOfAdGroupNegativeActiveKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActiveGoodQualityScoreKeywords = summarizedKratu.numberOfActiveGoodQualityScoreKeywords .add(dailyKratu.numberOfActiveGoodQualityScoreKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActiveAverageQualityScoreKeywords = summarizedKratu.numberOfActiveAverageQualityScoreKeywords .add(dailyKratu.numberOfActiveAverageQualityScoreKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfActivePoorQualityScoreKeywords = summarizedKratu.numberOfActivePoorQualityScoreKeywords .add(dailyKratu.numberOfActivePoorQualityScoreKeywords.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfCampaignsWithCallExtensionEnabled = summarizedKratu.numberOfCampaignsWithCallExtensionEnabled .add(dailyKratu.numberOfCampaignsWithCallExtensionEnabled.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfCampaignsWithLocationExtensionEnabled = summarizedKratu.numberOfCampaignsWithLocationExtensionEnabled .add(dailyKratu.numberOfCampaignsWithLocationExtensionEnabled.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfCampaignsWithSiteLinksEnabled = summarizedKratu.numberOfCampaignsWithSiteLinksEnabled .add(dailyKratu.numberOfCampaignsWithSiteLinksEnabled.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfAdgroupsWithoneActiveAd = summarizedKratu.numberOfAdgroupsWithoneActiveAd .add(dailyKratu.numberOfAdgroupsWithoneActiveAd.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfAdgroupsWithTwoActiveAds = summarizedKratu.numberOfAdgroupsWithTwoActiveAds .add(dailyKratu.numberOfAdgroupsWithTwoActiveAds.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.numberOfDisapprovedAds = summarizedKratu.numberOfDisapprovedAds .add(dailyKratu.numberOfDisapprovedAds.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.weightedAverageKeywordPosition = summarizedKratu.weightedAverageKeywordPosition .add(dailyKratu.weightedAverageKeywordPosition.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.weightedAverageQualityScore = summarizedKratu.weightedAverageQualityScore .add(dailyKratu.weightedAverageQualityScore.divide(daysInRange, 2, RoundingMode.HALF_UP)); summarizedKratu.sumBudget = summarizedKratu.sumBudget.add(dailyKratu.sumBudget); System.out.print("."); } if (summarizedKratu.impressionsDisplay + summarizedKratu.impressionsSearch > 0) { summarizedKratu.accountActive = "Yes"; } return summarizedKratu; }
From source file:com.graph.line.LineGraphData.java
public LineGraphData(String timeIn, String timeOut) { java.sql.Connection con = null; java.sql.PreparedStatement stmt = null; java.sql.ResultSet rs = null; try {// ww w. j a v a 2s . com con = ControlPanelPool.getInstance().getConnection(); DateTimeFormatter format = org.joda.time.format.DateTimeFormat.forPattern("MM/dd/yyyy"); LocalDate startDate = LocalDate.parse(timeIn, format); LocalDate endDate = LocalDate.parse(timeOut, format); int days = Days.daysBetween(startDate, endDate).getDays(); //List<LocalDate> dates = new ArrayList<>(days); sessionCount = new ArrayList<>(); addressCount = new ArrayList<>(); dateCount = new ArrayList<>(); for (int i = 0; i < days; i++) { LocalDate d2 = startDate.withFieldAdded(DurationFieldType.days(), i + 1); //dates.add(d); stmt = con.prepareStatement( "SELECT COUNT(DISTINCT remoteAddress) as remoteAdd, COUNT(DISTINCT sessionId) as sess FROM leadSession WHERE timeIn > CONVERT(date, ?) AND timeIn < CONVERT(date, ?)"); stmt.setString(1, startDate.withFieldAdded(DurationFieldType.days(), i).toString()); stmt.setString(2, startDate.withFieldAdded(DurationFieldType.days(), i + 1).toString()); rs = stmt.executeQuery(); while (rs.next()) { sessionCount.add(rs.getString("sess")); addressCount.add(rs.getString("remoteAdd")); } dateCount.add(startDate.withFieldAdded(DurationFieldType.days(), i).toString()); } con.close(); } catch (IOException | SQLException | PropertyVetoException ex) { Logger.getLogger(LineGraphData.class.getName()).log(Level.SEVERE, null, ex); } finally { DbUtils.closeQuietly(con, stmt, rs); } }
From source file:com.gst.infrastructure.core.domain.LocalDateInterval.java
License:Apache License
private Integer daysBetween() { return Days.daysBetween(this.startDate, this.endDate).getDays(); }
From source file:com.gst.portfolio.interestratechart.domain.InterestRateChartSlabFields.java
License:Apache License
public Integer depositPeriod(final LocalDate periodStartDate, final LocalDate periodEndDate) { Integer actualDepositPeriod = 0; final SavingsPeriodFrequencyType periodFrequencyType = SavingsPeriodFrequencyType.fromInt(periodType()); switch (periodFrequencyType) { case DAYS://from ww w.j a va 2s. c om actualDepositPeriod = Days.daysBetween(periodStartDate, periodEndDate).getDays(); break; case WEEKS: actualDepositPeriod = Weeks.weeksBetween(periodStartDate, periodEndDate).getWeeks(); break; case MONTHS: actualDepositPeriod = Months.monthsBetween(periodStartDate, periodEndDate).getMonths(); break; case YEARS: actualDepositPeriod = Years.yearsBetween(periodStartDate, periodEndDate).getYears(); break; case INVALID: actualDepositPeriod = 0;// default value break; } return actualDepositPeriod; }
From source file:com.gst.portfolio.loanaccount.domain.Loan.java
License:Apache License
private Money[] fetchInterestFeeAndPenaltyTillDate(final LocalDate paymentDate, final MonetaryCurrency currency, final LoanRepaymentScheduleInstallment installment) { Money penaltyForCurrentPeriod = Money.zero(getCurrency()); Money penaltyAccoutedForCurrentPeriod = Money.zero(getCurrency()); Money feeForCurrentPeriod = Money.zero(getCurrency()); Money feeAccountedForCurrentPeriod = Money.zero(getCurrency()); Money interestForCurrentPeriod = Money.zero(getCurrency()); Money interestAccountedForCurrentPeriod = Money.zero(getCurrency()); int totalPeriodDays = Days.daysBetween(installment.getFromDate(), installment.getDueDate()).getDays(); int tillDays = Days.daysBetween(installment.getFromDate(), paymentDate).getDays(); interestForCurrentPeriod = Money.of(getCurrency(), BigDecimal.valueOf(calculateInterestForDays(totalPeriodDays, installment.getInterestCharged(getCurrency()).getAmount(), tillDays))); interestAccountedForCurrentPeriod = installment.getInterestWaived(getCurrency()) .plus(installment.getInterestPaid(getCurrency())); for (LoanCharge loanCharge : this.charges) { if (loanCharge.isActive() && !loanCharge.isDueAtDisbursement()) { if (loanCharge.isDueForCollectionFromAndUpToAndIncluding(installment.getFromDate(), paymentDate)) { if (loanCharge.isPenaltyCharge()) { penaltyForCurrentPeriod = penaltyForCurrentPeriod.plus(loanCharge.getAmount(getCurrency())); penaltyAccoutedForCurrentPeriod = penaltyAccoutedForCurrentPeriod.plus(loanCharge .getAmountWaived(getCurrency()).plus(loanCharge.getAmountPaid(getCurrency()))); } else { feeForCurrentPeriod = feeForCurrentPeriod.plus(loanCharge.getAmount(currency)); feeAccountedForCurrentPeriod = feeAccountedForCurrentPeriod .plus(loanCharge.getAmountWaived(getCurrency()).plus( loanCharge.getAmountPaid(getCurrency()))); }/*from www.jav a 2s . co m*/ } else if (loanCharge.isInstalmentFee()) { LoanInstallmentCharge loanInstallmentCharge = loanCharge .getInstallmentLoanCharge(installment.getInstallmentNumber()); if (loanCharge.isPenaltyCharge()) { penaltyAccoutedForCurrentPeriod = penaltyAccoutedForCurrentPeriod .plus(loanInstallmentCharge.getAmountPaid(currency)); } else { feeAccountedForCurrentPeriod = feeAccountedForCurrentPeriod .plus(loanInstallmentCharge.getAmountPaid(currency)); } } } } Money[] balances = new Money[6]; balances[0] = interestForCurrentPeriod; balances[1] = feeForCurrentPeriod; balances[2] = penaltyForCurrentPeriod; balances[3] = feeAccountedForCurrentPeriod; balances[4] = penaltyAccoutedForCurrentPeriod; balances[5] = interestAccountedForCurrentPeriod; return balances; }
From source file:com.gst.portfolio.loanaccount.domain.Loan.java
License:Apache License
public Money retrieveAccruedAmountAfterDate(final LocalDate tillDate) { Money totalAmountAccrued = Money.zero(getCurrency()); Money actualAmountTobeAccrued = Money.zero(getCurrency()); for (final LoanRepaymentScheduleInstallment installment : this.repaymentScheduleInstallments) { totalAmountAccrued = totalAmountAccrued.plus(installment.getInterestAccrued(getCurrency())); if (tillDate.isAfter(installment.getFromDate()) && tillDate.isBefore(installment.getDueDate())) { int daysInPeriod = Days.daysBetween(installment.getFromDate(), installment.getDueDate()).getDays(); int tillDays = Days.daysBetween(installment.getFromDate(), tillDate).getDays(); double interest = calculateInterestForDays(daysInPeriod, installment.getInterestCharged(getCurrency()).getAmount(), tillDays); actualAmountTobeAccrued = actualAmountTobeAccrued.plus(interest); } else if ((tillDate.isAfter(installment.getFromDate()) && tillDate.isEqual(installment.getDueDate())) || (tillDate.isEqual(installment.getFromDate()) && tillDate.isEqual(installment.getDueDate())) || (tillDate.isAfter(installment.getFromDate()) && tillDate.isAfter(installment.getDueDate()))) { actualAmountTobeAccrued = actualAmountTobeAccrued .plus(installment.getInterestAccrued(getCurrency())); }//from w w w . j a va2 s.c o m } Money accredAmountAfterDate = totalAmountAccrued.minus(actualAmountTobeAccrued); if (accredAmountAfterDate.isLessThanZero()) { accredAmountAfterDate = Money.zero(getCurrency()); } return accredAmountAfterDate; }
From source file:com.gst.portfolio.loanaccount.loanschedule.data.LoanSchedulePeriodData.java
License:Apache License
private LoanSchedulePeriodData(final Integer periodNumber, final LocalDate fromDate, final LocalDate dueDate, final BigDecimal principalDisbursed, final BigDecimal chargesDueAtTimeOfDisbursement, final boolean isDisbursed) { this.period = periodNumber; this.fromDate = fromDate; this.dueDate = dueDate; this.obligationsMetOnDate = null; this.complete = null; if (fromDate != null) { this.daysInPeriod = Days.daysBetween(this.fromDate, this.dueDate).getDays(); } else {/* w w w . j ava 2 s. com*/ this.daysInPeriod = null; } this.principalDisbursed = principalDisbursed; this.principalOriginalDue = null; this.principalDue = null; this.principalPaid = null; this.principalWrittenOff = null; this.principalOutstanding = null; this.principalLoanBalanceOutstanding = principalDisbursed; this.interestOriginalDue = null; this.interestDue = null; this.interestPaid = null; this.interestWaived = null; this.interestWrittenOff = null; this.interestOutstanding = null; this.feeChargesDue = chargesDueAtTimeOfDisbursement; if (isDisbursed) { this.feeChargesPaid = chargesDueAtTimeOfDisbursement; this.feeChargesWaived = null; this.feeChargesWrittenOff = null; this.feeChargesOutstanding = null; } else { this.feeChargesPaid = null; this.feeChargesWaived = null; this.feeChargesWrittenOff = null; this.feeChargesOutstanding = chargesDueAtTimeOfDisbursement; } this.penaltyChargesDue = null; this.penaltyChargesPaid = null; this.penaltyChargesWaived = null; this.penaltyChargesWrittenOff = null; this.penaltyChargesOutstanding = null; this.totalOriginalDueForPeriod = chargesDueAtTimeOfDisbursement; this.totalDueForPeriod = chargesDueAtTimeOfDisbursement; this.totalPaidForPeriod = this.feeChargesPaid; this.totalPaidInAdvanceForPeriod = null; this.totalPaidLateForPeriod = null; this.totalWaivedForPeriod = null; this.totalWrittenOffForPeriod = null; this.totalOutstandingForPeriod = this.feeChargesOutstanding; this.totalActualCostOfLoanForPeriod = this.feeChargesDue; this.totalInstallmentAmountForPeriod = null; if (dueDate.isBefore(new LocalDate())) { this.totalOverdue = this.totalOutstandingForPeriod; } else { this.totalOverdue = null; } }
From source file:com.gst.portfolio.loanaccount.loanschedule.data.LoanSchedulePeriodData.java
License:Apache License
private LoanSchedulePeriodData(final Integer periodNumber, final LocalDate fromDate, final LocalDate dueDate, final BigDecimal principalOriginalDue, final BigDecimal principalOutstanding, final BigDecimal interestDueOnPrincipalOutstanding, final BigDecimal feeChargesDueForPeriod, final BigDecimal penaltyChargesDueForPeriod, final BigDecimal totalDueForPeriod, BigDecimal totalInstallmentAmountForPeriod) { this.period = periodNumber; this.fromDate = fromDate; this.dueDate = dueDate; this.obligationsMetOnDate = null; this.complete = null; if (fromDate != null) { this.daysInPeriod = Days.daysBetween(this.fromDate, this.dueDate).getDays(); } else {// w w w . j a v a 2s . co m this.daysInPeriod = null; } this.principalDisbursed = null; this.principalOriginalDue = principalOriginalDue; this.principalDue = principalOriginalDue; this.principalPaid = null; this.principalWrittenOff = null; this.principalOutstanding = principalOriginalDue; this.principalLoanBalanceOutstanding = principalOutstanding; this.interestOriginalDue = interestDueOnPrincipalOutstanding; this.interestDue = interestDueOnPrincipalOutstanding; this.interestPaid = null; this.interestWaived = null; this.interestWrittenOff = null; this.interestOutstanding = interestDueOnPrincipalOutstanding; this.feeChargesDue = feeChargesDueForPeriod; this.feeChargesPaid = null; this.feeChargesWaived = null; this.feeChargesWrittenOff = null; this.feeChargesOutstanding = null; this.penaltyChargesDue = penaltyChargesDueForPeriod; this.penaltyChargesPaid = null; this.penaltyChargesWaived = null; this.penaltyChargesWrittenOff = null; this.penaltyChargesOutstanding = null; this.totalOriginalDueForPeriod = totalDueForPeriod; this.totalDueForPeriod = totalDueForPeriod; this.totalPaidForPeriod = BigDecimal.ZERO; this.totalPaidInAdvanceForPeriod = null; this.totalPaidLateForPeriod = null; this.totalWaivedForPeriod = null; this.totalWrittenOffForPeriod = null; this.totalOutstandingForPeriod = totalDueForPeriod; this.totalActualCostOfLoanForPeriod = interestDueOnPrincipalOutstanding.add(feeChargesDueForPeriod); this.totalInstallmentAmountForPeriod = totalInstallmentAmountForPeriod; if (dueDate.isBefore(new LocalDate())) { this.totalOverdue = this.totalOutstandingForPeriod; } else { this.totalOverdue = null; } }
From source file:com.gst.portfolio.loanaccount.loanschedule.data.LoanSchedulePeriodData.java
License:Apache License
private LoanSchedulePeriodData(final Integer periodNumber, final LocalDate fromDate, final LocalDate dueDate, final LocalDate obligationsMetOnDate, final boolean complete, final BigDecimal principalOriginalDue, final BigDecimal principalPaid, final BigDecimal principalWrittenOff, final BigDecimal principalOutstanding, final BigDecimal principalLoanBalanceOutstanding, final BigDecimal interestDueOnPrincipalOutstanding, final BigDecimal interestPaid, final BigDecimal interestWaived, final BigDecimal interestWrittenOff, final BigDecimal interestOutstanding, final BigDecimal feeChargesDue, final BigDecimal feeChargesPaid, final BigDecimal feeChargesWaived, final BigDecimal feeChargesWrittenOff, final BigDecimal feeChargesOutstanding, final BigDecimal penaltyChargesDue, final BigDecimal penaltyChargesPaid, final BigDecimal penaltyChargesWaived, final BigDecimal penaltyChargesWrittenOff, final BigDecimal penaltyChargesOutstanding, final BigDecimal totalDueForPeriod, final BigDecimal totalPaid, final BigDecimal totalPaidInAdvanceForPeriod, final BigDecimal totalPaidLateForPeriod, final BigDecimal totalWaived, final BigDecimal totalWrittenOff, final BigDecimal totalOutstanding, final BigDecimal totalActualCostOfLoanForPeriod, final BigDecimal totalInstallmentAmountForPeriod) { this.period = periodNumber; this.fromDate = fromDate; this.dueDate = dueDate; this.obligationsMetOnDate = obligationsMetOnDate; this.complete = complete; if (fromDate != null) { this.daysInPeriod = Days.daysBetween(this.fromDate, this.dueDate).getDays(); } else {/* w w w. j ava 2s . c o m*/ this.daysInPeriod = null; } this.principalDisbursed = null; this.principalOriginalDue = principalOriginalDue; this.principalDue = principalOriginalDue; this.principalPaid = principalPaid; this.principalWrittenOff = principalWrittenOff; this.principalOutstanding = principalOutstanding; this.principalLoanBalanceOutstanding = principalLoanBalanceOutstanding; this.interestOriginalDue = interestDueOnPrincipalOutstanding; this.interestDue = interestDueOnPrincipalOutstanding; this.interestPaid = interestPaid; this.interestWaived = interestWaived; this.interestWrittenOff = interestWrittenOff; this.interestOutstanding = interestOutstanding; this.feeChargesDue = feeChargesDue; this.feeChargesPaid = feeChargesPaid; this.feeChargesWaived = feeChargesWaived; this.feeChargesWrittenOff = feeChargesWrittenOff; this.feeChargesOutstanding = feeChargesOutstanding; this.penaltyChargesDue = penaltyChargesDue; this.penaltyChargesPaid = penaltyChargesPaid; this.penaltyChargesWaived = penaltyChargesWaived; this.penaltyChargesWrittenOff = penaltyChargesWrittenOff; this.penaltyChargesOutstanding = penaltyChargesOutstanding; this.totalOriginalDueForPeriod = totalDueForPeriod; this.totalDueForPeriod = totalDueForPeriod; this.totalPaidForPeriod = totalPaid; this.totalPaidInAdvanceForPeriod = totalPaidInAdvanceForPeriod; this.totalPaidLateForPeriod = totalPaidLateForPeriod; this.totalWaivedForPeriod = totalWaived; this.totalWrittenOffForPeriod = totalWrittenOff; this.totalOutstandingForPeriod = totalOutstanding; this.totalActualCostOfLoanForPeriod = totalActualCostOfLoanForPeriod; this.totalInstallmentAmountForPeriod = totalInstallmentAmountForPeriod; if (dueDate.isBefore(new LocalDate())) { this.totalOverdue = this.totalOutstandingForPeriod; } else { this.totalOverdue = null; } }