public SavingUnblockCompulsorySavingsEvent GenerateUnblockCompulsoruSavingEvent(User user, bool cancellable) { int contracId = Id; SavingBlockCompulsarySavingsEvent savingBlockEvent = GetBlockCompulsorySavingEvent(); SavingUnblockCompulsorySavingsEvent savingUnblockEvent = new SavingUnblockCompulsorySavingsEvent { ContracId = contracId, User = user, Amount = savingBlockEvent.Amount, Date = TimeProvider.Now, EntryDate = TimeProvider.Now, Cancelable = cancellable, Branch = Branch, Currency = Product.Currency, }; Events.Add(savingUnblockEvent); return(savingUnblockEvent); }
public void FireSavingBlockEvent(SavingBlockCompulsarySavingsEvent savingBlockEvent, int contracId, SqlTransaction sqlTransac) { _savingEventManagement.Add(savingBlockEvent, contracId, sqlTransac); }
public void SavingBlockEventOnDisburse() { SavingsBookProduct savingsProduct = new SavingsBookProduct { Id = 1, Name = "SavingProduct", Code = "P123", InitialAmountMin = 1000, InitialAmountMax = 2000, DepositMin = 250, DepositMax = 400, WithdrawingMin = 400, WithdrawingMax = 450, TransferMin = 100, TransferMax = 300, InterestRateMin = 0.12, InterestRateMax = 0.20, BalanceMin = 1000, BalanceMax = 2000, InterestBase = OSavingInterestBase.Daily, InterestFrequency = OSavingInterestFrequency.EndOfMonth, EntryFeesMin = 10, EntryFeesMax = 20, Currency = new Currency { Id = 1 }, WithdrawFeesType = OSavingsFeesType.Flat, FlatWithdrawFeesMin = 1, FlatWithdrawFeesMax = 5, TransferFeesType = OSavingsFeesType.Flat, FlatTransferFeesMin = 1, FlatTransferFeesMax = 5, DepositFeesMin = 1, DepositFeesMax = 5, ManagementFeeFreq = new InstallmentType { Id = 1, Name = "Monthly", NbOfDays = 0, NbOfMonths = 1 }, AgioFeesFreq = new InstallmentType { Id = 2, Name = "Daily", NbOfDays = 1, NbOfMonths = 0 } }; SavingBookContract compulsorySaving = new SavingBookContract(ApplicationSettings.GetInstance(""), new User()) { CreationDate = _contractStartDate, InterestRate = 0.13, Product = savingsProduct }; _myContract.CompulsorySavings = compulsorySaving; _myContract.CompulsorySavingsPercentage = 5; _myContract.Disburse(_contractStartDate, true, true); IEnumerable <SavingEvent> savingBlockEvents = compulsorySaving.Events.Where(e => e.Code == OSavingEvents.BlockCompulsarySavings); Assert.AreEqual(1, savingBlockEvents.Count()); SavingBlockCompulsarySavingsEvent savingBlockEvent = savingBlockEvents.First() as SavingBlockCompulsarySavingsEvent; Assert.IsNotNull(savingBlockEvent); Assert.IsTrue(!savingBlockEvent.Deleted); Assert.AreEqual(50m, savingBlockEvent.Amount.Value); }
private static SavingEvent GetSavingsEvent(string code) { SavingEvent e; switch (code) { case OSavingEvents.Deposit: e = new SavingDepositEvent(); break; case OSavingEvents.Withdraw: e = new SavingWithdrawEvent(); break; case OSavingEvents.Accrual: e = new SavingInterestsAccrualEvent(); break; case OSavingEvents.Posting: e = new SavingInterestsPostingEvent(); break; case OSavingEvents.InitialDeposit: e = new SavingInitialDepositEvent(); break; case OSavingEvents.CreditTransfer: e = new SavingCreditTransferEvent(); break; case OSavingEvents.DebitTransfer: e = new SavingDebitTransferEvent(); break; case OSavingEvents.ManagementFee: e = new SavingManagementFeeEvent(); break; case OSavingEvents.SavingClosure: e = new SavingClosureEvent(); break; case OSavingEvents.Close: e = new SavingCloseEvent(); break; case OSavingEvents.OverdraftFees: e = new SavingOverdraftFeeEvent(); break; case OSavingEvents.Agio: e = new SavingAgioEvent(); break; case OSavingEvents.PendingDeposit: e = new SavingPendingDepositEvent(); break; case OSavingEvents.Reopen: e = new SavingReopenEvent(); break; case OSavingEvents.PendingDepositRefused: e = new SavingPendingDepositRefusedEvent(); break; case OSavingEvents.SpecialOperationCredit: e = new SavingCreditOperationEvent(); break; case OSavingEvents.SpecialOperationDebit: e = new SavingDebitOperationEvent(); break; case OSavingEvents.InterBranchCreditTransfer: e = new SavingCreditInterBranchTransferEvent(); break; case OSavingEvents.InterBranchDebitTransfer: e = new SavingDebitInterBranchTransferEvent(); break; case OSavingEvents.LoanDisbursement: e = new SavingLoanDisbursementEvent(); break; case OSavingEvents.SavingLoanRepayment: e = new LoanRepaymentFromSavingEvent(); break; case OSavingEvents.BlockCompulsarySavings: e = new SavingBlockCompulsarySavingsEvent(); break; case OSavingEvents.UnblockCompulsorySavings: e = new SavingUnblockCompulsorySavingsEvent(); break; default: Debug.Fail("Failed to create saving event object"); throw new Exception(); } return(e); }