public void Update(SysTransactionDTO item) { SysTransaction map = Mapper.Map <SysTransaction>(item); Database.TransactionsAC.Update(map); Database.Save(); }
public ClientsAndTransactionDTO Copy(int id, string userId, int clientToId, int clientFromId) { SysTransaction copyTransaction = Database.TransactionsAC.Get(id); Client clientTo = Database.Clients.Get(clientToId); Client clientFrom = Database.Clients.Get(clientFromId); ClientsAndTransactionDTO copyClientsAndTransactionTransactionDto = new ClientsAndTransactionDTO { SysTransactionDto = new SysTransactionDTO { Sum = copyTransaction.Sum, CurrencyName = copyTransaction.Currency.Name, CountryId = copyTransaction.CountryId, ClientFromId = copyTransaction.ClientFromId, }, ClientDto = new ClientDTO { Name = clientTo.Name, LastName = clientTo.LastName, MobilePhone = clientTo.MobilePhone }, Id = clientFrom.Id, Name = clientFrom.Name, LastName = clientFrom.LastName }; return(copyClientsAndTransactionTransactionDto); }
public Tariff GetTariff(SysTransaction transaction, int agentFromId) { Agent agent = _database.Agents.Get(agentFromId); Range range = _database.Ranges.SingleOrDefault(r => r.MinValue <= transaction.Sum && r.MaxValue >= transaction.Sum); Currency currency = _database.Currencies.SingleOrDefault(c => c.Id == Convert.ToInt32(transaction.CurrencyId)); if (agent.ParentAgentId != null) { agentFromId = (int)agent.ParentAgentId; } Tariff tariff = _database.Tariffs.SingleOrDefault ( t => t.CountryId == transaction.CountryId && t.RangeId == range.Id && t.CurrencyId == currency.Id && t.AgentId == agentFromId ) ?? _database.Tariffs.SingleOrDefault ( t => t.CountryId == transaction.CountryId && t.RangeId == range.Id && t.CurrencyId == currency.Id && t.AgentId == null ); return(tariff); }
public void Delete(int id) { SysTransaction transaction = _context.Transactions.Find(id); if (transaction != null) { _context.Transactions.Remove(transaction); } }
//+++++++++++++++++++++++++++++++++++++++++++++++ Statuses +++++++++++++++++++++++++++++++++++++++++++++++++ //перевод в статусы "К оплате" и "Одобрено" public bool StatusToPayAndApproved(int id, string value) { SysTransaction transaction = Database.TransactionsAC.Get(id); transaction.TransactionStatus = (int)(TransactionStatus)Enum.Parse(typeof(TransactionStatus), value); Database.TransactionsAC.Update(transaction); Database.Save(); return(transaction.TransactionStatus == (int)(TransactionStatus)Enum.Parse(typeof(TransactionStatus), value)); }
public void Update(SysTransaction item) { _context.Entry(item).State = EntityState.Modified; _context.SaveChanges(); //SysTransaction transaction = _context.Transactions // .Include(t => t.ClientFrom) // .Include(t => t.ClientTo) // .FirstOrDefault(t => t.Id == item.Id); //transaction = item; }
//перевод в статус "К выплате" public bool StatusToPayOff(int id, string userId) { SysTransaction transaction = Database.TransactionsAC.Get(id); transaction.TransactionStatus = (int)TransactionStatus.ToPayOff; transaction.UserToId = userId; transaction.AgentToId = Database.Users.GetByUserId(userId).AgentId; Database.TransactionsAC.Update(transaction); Database.Save(); return(transaction.TransactionStatus == (int)TransactionStatus.ToPayOff); }
//++++++++++++++++++++++++++++++++++++++++++++++ Other ++++++++++++++++++++++++++++++++++++++++++++++++++ // Метод проверки для отмены транзакции // Он выполняет проверку этот ли агент отправлял этот перевод, если да то возращает true public bool Checker(int transactionId, string userId) { SysTransaction transaction = Database.TransactionsAC.SingleOrDefault(t => t.Id == transactionId); User user = Database.Users.GetByUserId(userId); Agent agent = Database.Agents.SingleOrDefault(a => a.Id == user.AgentId); if (transaction.AgentFromId == Database.Users.GetByUserId(userId).AgentId || transaction.CountryId == agent.CountryId) { return(true); } return(false); }
//перевод в статус "Выдан" public bool StatusToIssued(int id) { SysTransaction transaction = Database.TransactionsAC.Get(id); Country country = Mapper.Map <Country>(_countryService.Get(transaction.CountryId)); Tariff tariff = _commissionService.GetTariff(transaction, transaction.AgentFromId); decimal summ = _commissionService.GetCommissionWhenTransactionIssued(tariff.CommissionType, tariff.Value, transaction); transaction.TransactionStatus = (int)TransactionStatus.Issued; transaction.IssueDateLocal = DateTime.UtcNow.AddHours(country.Utc); // Дата в часовом поясе агента transaction.IssueDateUtc = DateTime.UtcNow; transaction.Sum = summ; Database.TransactionsAC.Update(transaction); Database.Save(); _commissionService.SendSmsToClientSender(transaction.ClientFromId); return(transaction.TransactionStatus == (int)TransactionStatus.Issued); }
//перевод в статус "Подтвержден" public bool StatusConfirmed(int id, string userId) { SysTransaction transaction = Database.TransactionsAC.Get(id); //User user = Database.Users.GetByUserId(userId); Agent agent = Database.Agents.Get(transaction.AgentFromId); Country country = Mapper.Map <Country>(_countryService.Get(agent.CountryId)); Tariff tariff = _commissionService.GetTariff(transaction, transaction.AgentFromId); decimal summ = _commissionService.GetCommissionWhenTransactionCreate(tariff.CommissionType, tariff.Value, transaction); transaction.TransactionStatus = (int)TransactionStatus.Confirmed; transaction.ConfirmDateLocal = DateTime.UtcNow.AddHours(country.Utc); // Дата в часовом поясе агента transaction.ConfirmDateUtc = DateTime.UtcNow; transaction.ControllerId = userId; transaction.Sum = summ; Database.TransactionsAC.Update(transaction); Database.Save(); return(transaction.TransactionStatus == (int)TransactionStatus.Confirmed); }
//перевод в статус "Отменен" public bool StatusToCanceled(int id) { SysTransaction transaction = Database.TransactionsAC.Get(id); Agent agent = Database.Agents.Get(transaction.AgentFromId); Country country = Mapper.Map <Country>(_countryService.Get(agent.CountryId)); Tariff tariff = _commissionService.GetTariff(transaction, transaction.AgentFromId); if (transaction.TransactionStatus == (int)TransactionStatus.Issued && transaction.AgentFromId == id) { return(false); } decimal summ = _commissionService.GetCommissionWhenTransactionIssued(tariff.CommissionType, tariff.Value, transaction); transaction.TransactionStatus = (int)TransactionStatus.Canceled; transaction.IssueDateLocal = DateTime.UtcNow.AddHours(country.Utc); // Дата в часовом поясе агента transaction.IssueDateUtc = DateTime.UtcNow; Database.TransactionsAC.Update(transaction); Database.Save(); return(transaction.TransactionStatus == (int)TransactionStatus.Canceled); }
public void Create(SysTransaction item) { _context.Transactions.Add(item); }
public decimal GetCommissionWhenTransactionIssued(int tariffCommissionType, decimal tariffvalue, SysTransaction transaction) { Agent system = _database.Agents.SingleOrDefault(a => a.Name == "System"); if (transaction.TransactionStatus <= (int)TransactionStatus.Confirmed) { return(transaction.Sum); } else { if (tariffCommissionType == (int)CommissionType.Fixed) { Divide = CommissionDividing.AgentToCommission * tariffvalue + CommissionDividing.SystemCommission * tariffvalue; _database.Commissions.Create(new Commission() { AgentId = transaction.AgentToId.GetValueOrDefault(), Transaction = transaction, Value = CommissionDividing.AgentToCommission * tariffvalue }); _database.Commissions.Create(new Commission() { AgentId = system.Id, Transaction = transaction, Value = CommissionDividing.SystemCommission * tariffvalue }); _database.Save(); return(transaction.Sum - Divide); } else { Divide = CommissionDividing.AgentToCommission * (transaction.Sum * tariffvalue / 100) + CommissionDividing.SystemCommission * (transaction.Sum * tariffvalue / 100); _database.Commissions.Create(new Commission() { AgentId = transaction.AgentToId.GetValueOrDefault(), Transaction = transaction, Value = CommissionDividing.AgentToCommission * (transaction.Sum * tariffvalue / 100) }); _database.Commissions.Create(new Commission() { AgentId = system.Id, Transaction = transaction, Value = CommissionDividing.SystemCommission * (transaction.Sum * tariffvalue / 100) }); _database.Save(); return(transaction.Sum - Divide); } } }
public decimal GetCommissionWhenTransactionCreate(int tariffCommissionType, decimal tariffvalue, SysTransaction transaction) { if (tariffCommissionType == (int)CommissionType.Fixed) { Divide = CommissionDividing.AgentFromCommission * tariffvalue; _database.Commissions.Create(new Commission() { AgentId = transaction.AgentFromId, Transaction = transaction, Value = CommissionDividing.AgentFromCommission * tariffvalue }); _database.Save(); return(transaction.Sum - Divide); } else { Divide = CommissionDividing.AgentFromCommission * (transaction.Sum * tariffvalue / 100); _database.Commissions.Create(new Commission() { AgentId = transaction.AgentFromId, Transaction = transaction, Value = CommissionDividing.AgentFromCommission * (transaction.Sum * tariffvalue / 100) }); _database.Save(); } return(transaction.Sum - Divide); }