private static Loan _SetContract(OLoanTypes pLoansType, NonRepaymentPenalties pNonRepaymentPenalties, bool pKeepExpectedInstallment) { var package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = pLoansType, ChargeInterestWithinGracePeriod = true, Currency = new Currency { Id = 1, UseCents = true }, RoundingType = ORoundingType.Approximate }; package.KeepExpectedInstallment = pKeepExpectedInstallment; package.AnticipatedTotalRepaymentPenaltiesBase = OAnticipatedRepaymentPenaltiesBases.RemainingOLB; var myContract = new Loan(package, 1000, 0.03m, 6, 1, new DateTime(2006, 1, 1), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())); myContract.BadLoan = true; myContract.AnticipatedTotalRepaymentPenalties = 0.01; myContract.NonRepaymentPenalties = pNonRepaymentPenalties; return(myContract); }
public bool CheckIfSumIsOk(OLoanTypes loanType) { if (OLoanTypes.DecliningFixedPrincipal == loanType) { return(100 == _SumOfPrincipal() * 100); } return(_SumOfPrincipal() * 100 == 100 && _SumOfInterest() * 100 == 100); }
public CalculateInstallmentsOptions(DateTime pStartDate, OLoanTypes pLoanType, bool pIsExotic, Loan pContract, bool pChangeDate) { _loanType = pLoanType; _isExotic = pIsExotic; _contract = pContract; _changeDate = pChangeDate; _startDate = pStartDate; }
public CreditContractOptions(OLoanTypes pLoanType, bool pKeepExpectedInstallments, bool pCancelFees, OCurrency pManualFeesAmount, OCurrency pManualCommissionAmount, bool pCancelInterests, OCurrency pManualInterestsAmount, OAnticipatedRepaymentPenaltiesBases pAnticipatedTotalRepaymentPenaltiesBase) { _loanType = pLoanType; _keepExpectedInstallments = pKeepExpectedInstallments; _cancelFees = pCancelFees; _manualFeesAmount = pManualFeesAmount; _manualCommissionAmount = pManualCommissionAmount; _cancelInterests = pCancelInterests; _manualInterestsAmount = pManualInterestsAmount; _anticipatedTotalRepaymentPenaltiesBase = pAnticipatedTotalRepaymentPenaltiesBase; }
public int AddExoticProduct(ExoticInstallmentsTable pExoticProduct, OLoanTypes loanType) { if (_productManager.IsThisExoticProductNameAlreadyExist(pExoticProduct.Name)) { throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.ExoticProductNameAlreadyExist); } if (!pExoticProduct.CheckIfSumIsOk(loanType)) { throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.ExoticProductSumInIncorrect); } pExoticProduct.Id = _productManager.AddExoticInstallmentsTable(pExoticProduct); foreach (ExoticInstallment installment in pExoticProduct) { _productManager.AddExoticInstallment(installment, pExoticProduct); } return(pExoticProduct.Id); }
private static Loan _SetContract(OLoanTypes pLoansType, bool pKeepExpectedInstallment, int pGracePeriod, int pMaturity, ExoticInstallmentsTable pExoticProduct) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = pLoansType, ChargeInterestWithinGracePeriod = true, KeepExpectedInstallment = pKeepExpectedInstallment, ExoticProduct = pExoticProduct, AnticipatedTotalRepaymentPenaltiesBase = OAnticipatedRepaymentPenaltiesBases.RemainingOLB, Currency = new Currency { Id = 1 } }; Loan myContract = new Loan(package, 1000, 0.03m, pMaturity, pGracePeriod, new DateTime(2006, 1, 1), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())); myContract.BadLoan = false; myContract.AnticipatedTotalRepaymentPenalties = 0.01; myContract.NonRepaymentPenalties.InitialAmount = 0.003; return(myContract); }
private static Loan _SetContract(OCurrency amount, decimal rate, OLoanTypes loansType, NonRepaymentPenalties nonRepaymentFees, bool keepExpectedInstallment, int numberOfGracePeriod, DateTime stratDate, int nbInstallment) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = loansType, ChargeInterestWithinGracePeriod = true, Currency = new Currency { Id = 1 } }; package.KeepExpectedInstallment = keepExpectedInstallment; package.AnticipatedTotalRepaymentPenaltiesBase = OAnticipatedRepaymentPenaltiesBases.RemainingOLB; Loan myContract = new Loan(package, amount, rate, nbInstallment, numberOfGracePeriod, stratDate, new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())); myContract.BadLoan = false; myContract.AnticipatedTotalRepaymentPenalties = 0; myContract.NonRepaymentPenalties = nonRepaymentFees; return(myContract); }
public int AddExoticProduct(ExoticInstallmentsTable pExoticProduct, OLoanTypes loanType) { if (_productManager.IsThisExoticProductNameAlreadyExist(pExoticProduct.Name)) throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.ExoticProductNameAlreadyExist); if(!pExoticProduct.CheckIfSumIsOk(loanType)) throw new OpenCbsPackageSaveException(OpenCbsPackageSaveExceptionEnum.ExoticProductSumInIncorrect); pExoticProduct.Id = _productManager.AddExoticInstallmentsTable(pExoticProduct); foreach (ExoticInstallment installment in pExoticProduct) { _productManager.AddExoticInstallment(installment, pExoticProduct); } return pExoticProduct.Id; }
private static Loan _SetContract(OLoanTypes pLoansType, int pNumberOfInstallments, int pGracePeriod, NonRepaymentPenalties pNonRepaymentPenalties, bool pKeepExpectedInstallment, OAnticipatedRepaymentPenaltiesBases pAnticipatedBase, double pAnticipatedPenalties,bool pBadLoan) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = pLoansType, ChargeInterestWithinGracePeriod = true, Currency = new Currency { Id = 1 } }; package.KeepExpectedInstallment = pKeepExpectedInstallment; package.AnticipatedRepaymentPenaltiesBase = pAnticipatedBase; Loan myContract = new Loan(package, 1000, 0.03, pNumberOfInstallments, pGracePeriod, new DateTime(2006, 1, 1), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisioningTable.GetInstance(new User())); myContract.BadLoan = pBadLoan; myContract.AnticipatedRepaymentPenalties = pAnticipatedPenalties; myContract.NonRepaymentPenalties = pNonRepaymentPenalties; return myContract; }
private static Loan _SetContract(OLoanTypes pLoansType, NonRepaymentPenalties pNonRepaymentFees,bool pKeepExpectedInstallment) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = pLoansType, ChargeInterestWithinGracePeriod = true, Currency = new Currency { Id = 1, UseCents = true } }; package.KeepExpectedInstallment = pKeepExpectedInstallment; package.AnticipatedTotalRepaymentPenaltiesBase = OAnticipatedRepaymentPenaltiesBases.RemainingOLB; Loan myContract = new Loan(package, 1000, 0.03m, 6, 1, new DateTime(2006, 1, 1), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())); myContract.BadLoan = false; myContract.AnticipatedTotalRepaymentPenalties = 0.01; myContract.NonRepaymentPenalties = pNonRepaymentFees; return myContract; }
private static Loan _GetLoan(DateTime pDisburseDate, int pNumberOfInstallments, int pGracePeriod, OLoanTypes pLoanTypes) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = pLoanTypes, ChargeInterestWithinGracePeriod = true, Currency = new Currency { Id = 1, UseCents = true } }; return(new Loan(package, 1000, 0.03m, pNumberOfInstallments, pGracePeriod, pDisburseDate, new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User()))); }
private static Loan _SetContract(OLoanTypes pLoansType, int pNumberOfInstallments, int pGracePeriod, NonRepaymentPenalties pNonRepaymentPenalties, bool pKeepExpectedInstallment, OAnticipatedRepaymentPenaltiesBases pAnticipatedBase, bool pBadLoan) { return _SetContract(pLoansType,pNumberOfInstallments, pGracePeriod, pNonRepaymentPenalties, pKeepExpectedInstallment, pAnticipatedBase, 0.01,pBadLoan); }
private static Loan _SetContract(OLoanTypes pLoansType, int pNumberOfInstallments, int pGracePeriod, NonRepaymentPenalties pNonRepaymentPenalties, bool pKeepExpectedInstallment, OAnticipatedRepaymentPenaltiesBases pAnticipatedBase, double pAnticipatedPenalties, bool pBadLoan) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = pLoansType, ChargeInterestWithinGracePeriod = true, Currency = new Currency {Id = 1, UseCents = true}, KeepExpectedInstallment = pKeepExpectedInstallment, AnticipatedTotalRepaymentPenaltiesBase = pAnticipatedBase, RoundingType = ORoundingType.Approximate }; Loan myContract = new Loan(package, 1000, 0.03m, pNumberOfInstallments, pGracePeriod, new DateTime(2006, 1, 1), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())) { BadLoan = pBadLoan, AnticipatedTotalRepaymentPenalties = pAnticipatedPenalties, NonRepaymentPenalties = pNonRepaymentPenalties }; return myContract; }
private void InitScheduleType(OLoanTypes loanType, string scriptName) { _scheduleTypeComboBox.Items.Clear(); _scheduleTypeComboBox.Items.Add(GetString("FrmAddLoanProduct", "Flat.Text")); _scheduleTypeComboBox.Items.Add(GetString("FrmAddLoanProduct", "DecliningFixedPrincipal.Text")); _scheduleTypeComboBox.Items.Add(GetString("FrmAddLoanProduct", "DecliningFixedInstallments.Text")); var scripts = ServicesProvider.GetInstance().GetProductServices().SelectLoanProuctTypeScripts(); foreach (var script in scripts) { _scheduleTypeComboBox.Items.Add(script); } var scheduleGeneratorNames = ServicesProvider.GetInstance().GetContractServices().GetScheduleGeneratorNames(); foreach (var name in scheduleGeneratorNames) { _scheduleTypeComboBox.Items.Add(name); } switch (loanType) { case OLoanTypes.All: _scheduleTypeComboBox.SelectedIndex = 0; break; case OLoanTypes.Flat: _scheduleTypeComboBox.SelectedIndex = 0; break; case OLoanTypes.DecliningFixedPrincipal: _scheduleTypeComboBox.SelectedIndex = 1; break; case OLoanTypes.DecliningFixedInstallments: _scheduleTypeComboBox.SelectedIndex = 2; break; case OLoanTypes.CustomLoanType: _scheduleTypeComboBox.Text = scriptName; break; } _scheduleTypeComboBox.Enabled = loanType == OLoanTypes.All; }
public bool CheckIfSumIsOk(OLoanTypes loanType) { if (OLoanTypes.DecliningFixedPrincipal == loanType) { return 100 == _SumOfPrincipal() * 100; } return _SumOfPrincipal() * 100 == 100 && _SumOfInterest() * 100 == 100; }
private static Loan _SetContract(OCurrency amount, decimal rate, OLoanTypes loansType, NonRepaymentPenalties nonRepaymentFees, bool keepExpectedInstallment, int numberOfGracePeriod, DateTime stratDate, int nbInstallment) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = loansType, ChargeInterestWithinGracePeriod = true, Currency = new Currency { Id = 1 } }; package.KeepExpectedInstallment = keepExpectedInstallment; package.AnticipatedTotalRepaymentPenaltiesBase = OAnticipatedRepaymentPenaltiesBases.RemainingOLB; Loan myContract = new Loan(package, amount, rate, nbInstallment, numberOfGracePeriod, stratDate, new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())); myContract.BadLoan = false; myContract.AnticipatedTotalRepaymentPenalties = 0; myContract.NonRepaymentPenalties = nonRepaymentFees; return myContract; }
private static Loan _SetContract(OLoanTypes pLoansType, bool pKeepExpectedInstallment, int pGracePeriod, int pMaturity, ExoticInstallmentsTable pExoticProduct) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = pLoansType, ChargeInterestWithinGracePeriod = true, KeepExpectedInstallment = pKeepExpectedInstallment, ExoticProduct = pExoticProduct, AnticipatedTotalRepaymentPenaltiesBase = OAnticipatedRepaymentPenaltiesBases.RemainingOLB, Currency = new Currency { Id = 1 } }; Loan myContract = new Loan(package, 1000, 0.03m, pMaturity, pGracePeriod, new DateTime(2006, 1, 1), new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())); myContract.BadLoan = false; myContract.AnticipatedTotalRepaymentPenalties = 0.01; myContract.NonRepaymentPenalties.InitialAmount = 0.003; return myContract; }
private static Loan _GetLoan(DateTime pDisburseDate, int pNumberOfInstallments, int pGracePeriod, OLoanTypes pLoanTypes) { LoanProduct package = new LoanProduct { InstallmentType = new InstallmentType(1, "Monthly", 0, 1), LoanType = pLoanTypes, ChargeInterestWithinGracePeriod = true, Currency = new Currency { Id = 1, UseCents = true} }; return new Loan(package, 1000, 0.03m, pNumberOfInstallments, pGracePeriod, pDisburseDate, new User(), ApplicationSettings.GetInstance(""), NonWorkingDateSingleton.GetInstance(""), ProvisionTable.GetInstance(new User()), ChartOfAccounts.GetInstance(new User())); }