public void AddAccountTransaction(Ticket ticket, Account sourceAccount, Account targetAccount, decimal amount, decimal exchangeRate) { var transactionType = _cacheService.FindAccountTransactionType(sourceAccount.AccountTypeId, targetAccount.AccountTypeId, sourceAccount.Id, targetAccount.Id); if (transactionType != null) { ticket.TransactionDocument.AddNewTransaction(transactionType, ticket.GetTicketAccounts(), amount, exchangeRate); } }
public void AddAccountTransaction(Ticket ticket, Account sourceAccount, Account targetAccount, decimal amount, decimal exchangeRate) { var transactionType = _cacheService.FindAccountTransactionType(sourceAccount.AccountTypeId, targetAccount.AccountTypeId, sourceAccount.Id, targetAccount.Id); if (transactionType != null) { var transaction = ticket.TransactionDocument.AddNewTransaction(transactionType, ticket.GetTicketAccounts(), amount, exchangeRate); transaction.UpdateDescription(string.Format("{0} - {1}: {2}", transaction.Name, Resources.TicketNumber, ticket.TicketNumber)); } }
public void AddAccountTransaction(Ticket ticket, Account sourceAccount, Account targetAccount, decimal amount, decimal exchangeRate) { var transactionType = _cacheService.FindAccountTransactionType(sourceAccount.AccountTypeId, targetAccount.AccountTypeId, sourceAccount.Id, targetAccount.Id); if (transactionType != null) { var transaction = ticket.TransactionDocument.AddNewTransaction(transactionType, ticket.GetTicketAccounts(), amount, exchangeRate); transaction.UpdateDescription(string.Format("{0} - {1}: {2}", transaction.Name, Resources.TicketNumber, ticket.TicketNumber)); _applicationState.NotifyEvent(RuleEventNames.AccountTransactionAddedToTicket, new { Ticket = ticket, TransactionTypeName = transactionType.Name, SourceAccountName = sourceAccount.Name, TargetAccountName = targetAccount.Name, Amount = amount, ExchangeRate = exchangeRate }); } }
public void RefreshAccountTransactions(Ticket ticket) { foreach (var template in from order in ticket.Orders.GroupBy(x => x.AccountTransactionTypeId) where ticket.TransactionDocument.AccountTransactions.All(x => x.AccountTransactionTypeId != order.Key) select _cacheService.GetAccountTransactionTypeById(order.Key)) { var transaction = ticket.TransactionDocument.AddNewTransaction(template, ticket.GetTicketAccounts()); transaction.Reversable = false; } foreach (var taxTransactionTemplate in ticket.GetTaxIds().Select(x => _cacheService.GetAccountTransactionTypeById(x))) { ticket.TransactionDocument.AddSingletonTransaction(taxTransactionTemplate.Id, taxTransactionTemplate, ticket.GetTicketAccounts()); } }