コード例 #1
0
ファイル: SavingBookContract.cs プロジェクト: aelhadi/opencbs
 private void CloseAndTransfer(ISavingsContract from, ISavingsContract to, DateTime date, User pUser,
     OCurrency amount, bool pIsDesactivateFees, Teller teller)
 {
     from.Transfer(to, amount, 0, date, "Closing transfer");
     from.Close(date, pUser, "Close savings contract", pIsDesactivateFees, teller, true);
 }
コード例 #2
0
ファイル: SavingServices.cs プロジェクト: TalasZh/opencbs
        public List<SavingEvent> CloseAndTransfer(ISavingsContract from, ISavingsContract to, DateTime date, User pUser,
            OCurrency amount, bool pIsDesactivateFees, Teller teller)
        {
            if (to.Status == OSavingsStatus.Closed)
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.CreditTransferAccountInvalid);

            if (from.Id == to.Id)
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.SavingsContractForTransferIdenticals);

            if (from.Product.Currency.Id != to.Product.Currency.Id)
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.SavingsContractForTransferNotSameCurrncy);

            OCurrency balance = SimulateCloseAccount(from, date, pUser, pIsDesactivateFees, teller).GetBalance(date);
            if (from is SavingBookContract && !pIsDesactivateFees) balance -= ((SavingBookContract)from).CloseFees;

            if (balance != amount)
                throw new OpenCbsSavingException(OpenCbsSavingExceptionEnum.TransferAmountIsInvalid);

            List<SavingEvent> events = new List<SavingEvent>();
            events.AddRange(from.Transfer(to, amount, 0, date, "Closing transfer"));
            events.AddRange(from.Close(date, pUser, "Close savings contract", pIsDesactivateFees, teller, false));
            foreach (SavingEvent e in events)
                _ePS.FireEvent(e);

            if (from.ClosedDate != null)
                _savingManager.UpdateStatus(from.Id, from.Status, from.ClosedDate.Value);

            return events;
        }
コード例 #3
0
ファイル: SavingServices.cs プロジェクト: TalasZh/opencbs
        public List<SavingEvent> Transfer(ISavingsContract from, ISavingsContract to, DateTime date, OCurrency amount, OCurrency fee, string description, User user, bool noFee)
        {
            CheckTransfer(to, from, amount, fee, date, description);
            List<SavingEvent> events = from.Transfer(to, amount, fee, date, description);
            foreach (SavingEvent e in events)
                _ePS.FireEvent(e);

            return events;
        }
コード例 #4
0
 private void CloseAndTransfer(ISavingsContract from, ISavingsContract to, DateTime date, User pUser,
                               OCurrency amount, bool pIsDesactivateFees, Teller teller)
 {
     from.Transfer(to, amount, 0, date, "Closing transfer");
     from.Close(date, pUser, "Close savings contract", pIsDesactivateFees, teller, true);
 }