Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
 public void FireSavingBlockEvent(SavingBlockCompulsarySavingsEvent savingBlockEvent, int contracId, SqlTransaction sqlTransac)
 {
     _savingEventManagement.Add(savingBlockEvent, contracId, sqlTransac);
 }
Exemplo n.º 3
0
        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);
        }
Exemplo n.º 4
0
        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);
        }