Example #1
0
        public void CreateAtmWithdraw(AtmWithdrawDetails atmWithdrawDetails)
        {
            var atmWithdraw = Mapper.Map <AtmWithdraw>(atmWithdrawDetails);

            atmWithdraw.CurrentAmount = atmWithdrawDetails.InitialAmount;
            atmWithdraw.IsClosed      = false;
            _atmWithdrawRepository.Create(atmWithdraw);

            var account = _bankAccountRepository.GetById(atmWithdraw.AccountId);

            MovementHelpers.Debit(_historicMovementRepository, atmWithdraw.InitialAmount, account.Id, ObjectType.Account, account.CurrentBalance);

            account.CurrentBalance -= atmWithdraw.InitialAmount;
            _bankAccountRepository.Update(account);
        }
Example #2
0
        public void EditAtmWithdraw(AtmWithdrawDetails atmWithdrawDetails)
        {
            var atmWithdraw = _atmWithdrawRepository.GetById(atmWithdrawDetails.Id);

            var oldCost = atmWithdraw.InitialAmount;

            atmWithdraw.InitialAmount         = atmWithdrawDetails.InitialAmount;
            atmWithdraw.CurrentAmount         = atmWithdrawDetails.InitialAmount;
            atmWithdraw.DateExpense           = atmWithdrawDetails.DateExpense;
            atmWithdraw.HasBeenAlreadyDebited = atmWithdrawDetails.HasBeenAlreadyDebited;

            _atmWithdrawRepository.Update(atmWithdraw);

            if (oldCost != atmWithdraw.InitialAmount)
            {
                var account = _bankAccountRepository.GetById(atmWithdraw.AccountId);
                MovementHelpers.Credit(_historicMovementRepository, oldCost, account.Id, ObjectType.Account, account.CurrentBalance);
                account.CurrentBalance += oldCost;
                MovementHelpers.Debit(_historicMovementRepository, atmWithdraw.InitialAmount, account.Id, ObjectType.Account, account.CurrentBalance);
                account.CurrentBalance -= atmWithdraw.InitialAmount;
                _bankAccountRepository.Update(account);
            }
        }
Example #3
0
 public void Put(int id, [FromBody] AtmWithdrawDetails editedObj)
 {
     _atmWithdrawService.EditAtmWithdraw(editedObj);
 }
Example #4
0
 public void Post([FromBody] AtmWithdrawDetails createdObj)
 {
     _atmWithdrawService.CreateAtmWithdraw(createdObj);
 }