Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 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 CalculateInstallmentsOptions(DateTime pStartDate, OLoanTypes pLoanType, bool pIsExotic, Loan pContract, bool pChangeDate)
 {
     _loanType = pLoanType;
     _isExotic = pIsExotic;
     _contract = pContract;
     _changeDate = pChangeDate;
     _startDate = pStartDate;
 }
Exemplo n.º 5
0
 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;
 }
Exemplo n.º 6
0
 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;
 }
Exemplo n.º 7
0
        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);
        }
Exemplo n.º 9
0
        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);
        }
Exemplo n.º 10
0
        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;
        }
Exemplo n.º 11
0
        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;
 }
Exemplo n.º 13
0
        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;
        }
Exemplo n.º 16
0
        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;
        }
Exemplo n.º 17
0
 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;
 }
Exemplo n.º 20
0
 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()));
 }