本文整理汇总了C#中OpenCBS.CoreDomain.Contracts.Loans.Loan.GetPastDueDays方法的典型用法代码示例。如果您正苦于以下问题:C# Loan.GetPastDueDays方法的具体用法?C# Loan.GetPastDueDays怎么用?C# Loan.GetPastDueDays使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OpenCBS.CoreDomain.Contracts.Loans.Loan
的用法示例。
在下文中一共展示了Loan.GetPastDueDays方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: _LoanLossReserveBalance
private static OCurrency _LoanLossReserveBalance(Loan pCredit,ProvisionTable pProvisionningTable, int writeOffDays)
{
OCurrency balance = 0;
if (!pCredit.Disbursed) return balance;
if (pCredit.GetPastDueDays(TimeProvider.Today) == 0) return balance;
if (pCredit.GetPastDueDays(TimeProvider.Today) > writeOffDays) return balance;
foreach (Installment installment in pCredit.InstallmentList)
{
if (installment.ExpectedDate >= TimeProvider.Today)
break;
balance += (installment.InterestsRepayment - installment.PaidInterests);
}
balance += pCredit.GetUnpaidLatePenalties(TimeProvider.Today);
int pastDueDays = pCredit.GetPastDueDays(TimeProvider.Today);
balance += pCredit.GetOlb() * Convert.ToDecimal(pProvisionningTable.GetProvisiningRateByNbOfDays(pastDueDays).Rate);
OCurrency realBalance = 0;
return balance > realBalance ? balance : realBalance;
}
示例2: _AccruedInterestsLoanBalance
private static OCurrency _AccruedInterestsLoanBalance(Loan pCredit)
{
if (!pCredit.Disbursed || pCredit.Rescheduled) return 0;
if (pCredit.GetPastDueDays(TimeProvider.Today) != 0) return 0;
foreach (Installment installment in pCredit.InstallmentList)
{
if(!installment.IsRepaid)
{
DateTime date = installment.Number == 1
? pCredit.StartDate
: pCredit.GetInstallment(installment.Number - 2).ExpectedDate;
int days = (TimeProvider.Today - date).Days;
OCurrency accruedInterest = installment.InterestsRepayment * (double)days / (double)DateTime.DaysInMonth(date.Year, date.Month);
accruedInterest -= installment.PaidInterests;
return accruedInterest > 0 ? accruedInterest : 0;
}
}
return 0;
}
示例3: _InterestsPastDueLoanBalance
private static OCurrency _InterestsPastDueLoanBalance(Loan pCredit, int writeOffDays)
{
OCurrency balance = 0;
if (!pCredit.Disbursed) return balance;
if (pCredit.GetPastDueDays(TimeProvider.Today) == 0) return balance;
if (pCredit.GetPastDueDays(TimeProvider.Today) > writeOffDays) return balance;
foreach (Installment installment in pCredit.InstallmentList)
{
if (installment.ExpectedDate > TimeProvider.Today)
break;
balance += (installment.InterestsRepayment - installment.PaidInterests);
}
return balance;
}
示例4: _LoanLossBalance
private static OCurrency _LoanLossBalance(Loan pCredit, int writeOffDays)
{
if (pCredit.WrittenOff || pCredit.GetPastDueDays(TimeProvider.Today) > writeOffDays) return pCredit.GetOlb();
return 0;
}
示例5: _CashCreditBalance
private static OCurrency _CashCreditBalance(Loan pCredit)
{
if (!pCredit.Disbursed || pCredit.Rescheduled) return 0;
if (pCredit.GetPastDueDays(TimeProvider.Today) == 0)
return pCredit.GetOlb();
else
return 0;
}
示例6: _BadLoanBalance
private static OCurrency _BadLoanBalance(Loan pCredit, int badLoanDays)
{
int pastDueDays = pCredit.GetPastDueDays(TimeProvider.Today);
if (pastDueDays <= badLoanDays && pastDueDays != 0)
return pCredit.GetOlb();
else
return 0;
}
示例7: _IncomeLoanLossBalance
private static OCurrency _IncomeLoanLossBalance(Loan pCredit, ProvisionTable pProvisionningTable)
{
OCurrency olb = pCredit.GetOlb();
OCurrency rate = Convert.ToDecimal(pProvisionningTable.GetProvisiningRateByNbOfDays(0).Rate);
if (pCredit.GetPastDueDays(TimeProvider.Today) != 0) olb = 0;
if (pCredit.WrittenOff) return 0;
if (!pCredit.Disbursed) return 0;
if (pCredit.AllInstallmentsRepaid) return 0;
if (!pCredit.BadLoan) return (pCredit.Amount - olb) * rate;
else return (pCredit.Amount) * rate;
}
示例8: _LiabilitiesLoanLossBalance
private static OCurrency _LiabilitiesLoanLossBalance(Loan pCredit,ProvisionTable pProvisionningTable)
{
if (pCredit.Disbursed && !pCredit.BadLoan)
if (pCredit.GetPastDueDays(TimeProvider.Today) == 0)
return pCredit.GetOlb() * Convert.ToDecimal(pProvisionningTable.GetProvisiningRateByNbOfDays(0).Rate);
else
return 0;
else
return 0;
}
示例9: _ProvisionWriteOffBalance
private static OCurrency _ProvisionWriteOffBalance(Loan pCredit, int writeOffDays)
{
OCurrency balance = 0;
if (pCredit.WrittenOff || pCredit.GetPastDueDays(TimeProvider.Today) > writeOffDays) return pCredit.GetOlb();
foreach (BadLoanRepaymentEvent e in pCredit.Events.GetEventsByType(typeof(BadLoanRepaymentEvent)))
{
balance += e.AccruedProvision;
}
return balance;
}
示例10: _InterestOnBadloanBalance
private static OCurrency _InterestOnBadloanBalance(Loan pCredit)
{
OCurrency balance = 0;
if (!pCredit.Disbursed) return 0;
if(pCredit.GetPastDueDays(TimeProvider.Today) > 0)
{
foreach (Installment installment in pCredit.InstallmentList)
{
if (installment.ExpectedDate > TimeProvider.Today)
break;
balance += (installment.InterestsRepayment - installment.PaidInterests);
}
}
OCurrency realBalance = 0;
return balance > realBalance ? balance : realBalance;
}
示例11: _UnrecoverableBadLoanBalance
private static OCurrency _UnrecoverableBadLoanBalance(Loan pCredit, int badLoanDays, int writeOffDays)
{
int pastDueDays = pCredit.GetPastDueDays(TimeProvider.Today);
if (pastDueDays > badLoanDays && pastDueDays <= writeOffDays)
return pCredit.GetOlb();
else
return 0;
}
示例12: _PenaltiesPastDueLoansBalanceAsset
private static OCurrency _PenaltiesPastDueLoansBalanceAsset(Loan pCredit, int writeOffDays)
{
OCurrency balance = 0;
if (!pCredit.Disbursed) return balance;
if (pCredit.GetPastDueDays(TimeProvider.Today) == 0) return balance;
if (pCredit.GetPastDueDays(TimeProvider.Today) > writeOffDays) return balance;
balance += pCredit.GetUnpaidLatePenalties(TimeProvider.Today);
return balance;
}
示例13: _DeferredIncomeBalance
private static OCurrency _DeferredIncomeBalance(Loan pCredit)
{
if (!pCredit.Disbursed || pCredit.GetPastDueDays(TimeProvider.Today) != 0) return 0;
OCurrency repaidAmount = 0;
foreach (Installment installment in pCredit.InstallmentList)
{
if (TimeProvider.Today >= installment.ExpectedDate) continue;
repaidAmount += installment.PaidInterests;
}
foreach (Installment installment in pCredit.InstallmentList)
{
if (TimeProvider.Today >= installment.ExpectedDate) continue;
DateTime date = installment.Number == 1
? pCredit.StartDate
: pCredit.GetInstallment(installment.Number - 2).ExpectedDate;
int days = (TimeProvider.Today - date).Days;
OCurrency accruedInterest = installment.InterestsRepayment * (double)days / (double)DateTime.DaysInMonth(date.Year, date.Month);
repaidAmount -= accruedInterest;
break;
}
return repaidAmount > 0 ? repaidAmount : 0;
}
示例14: _InterestOnRescheduledloanBalance
private static OCurrency _InterestOnRescheduledloanBalance(Loan pCredit)
{
if (!pCredit.Rescheduled) return 0;
OCurrency balance = 0;
balance += pCredit.GetPaidInterest();
foreach (BadLoanRepaymentEvent e in pCredit.Events.GetEventsByType(typeof(BadLoanRepaymentEvent)))
{
balance -= e.Interests;
}
if (pCredit.GetPastDueDays(TimeProvider.Today) != 0) return balance;
foreach (Installment installment in pCredit.InstallmentList)
{
if (!installment.IsRepaid)
{
DateTime date = installment.Number == 1
? pCredit.StartDate
: pCredit.GetInstallment(installment.Number - 2).ExpectedDate;
int days = (TimeProvider.Today - date).Days;
OCurrency accruedInterest = installment.InterestsRepayment * (double)days / (double)DateTime.DaysInMonth(date.Year, date.Month);
accruedInterest -= installment.PaidInterests;
balance += accruedInterest > 0 ? accruedInterest : 0;
break;
}
}
return balance;
}