public static void MoneyTransfer(MoneyTransferVM moneyTransfer, ShopContext shopContext) { var prevInfoMoney = new InfoMoney() { Sum = -moneyTransfer.Sum, PaymentType = moneyTransfer.PrevMoneyWorkerType == 3 || moneyTransfer.NextMoneyWorkerType == 3 //Проверка на магазин ? PaymentType.Cash : PaymentType.Cashless, MoneyOperationType = MoneyOperationType.Transfer, MoneyWorkerId = moneyTransfer.PrevMoneyWorkerID, Date = DateTime.Now.AddHours(3), }; var nextInfoMoney = new InfoMoney() { Sum = moneyTransfer.Sum, PaymentType = moneyTransfer.PrevMoneyWorkerType == 3 || moneyTransfer.NextMoneyWorkerType == 3 //Проверка на магазин ? PaymentType.Cash : PaymentType.Cashless, MoneyOperationType = MoneyOperationType.Transfer, MoneyWorkerId = moneyTransfer.NextMoneyWorkerID, Date = DateTime.Now.AddHours(3), }; var moneyTransferAdd = new MoneyTransfer() { PrevInfoMoney = prevInfoMoney, NextInfoMoney = nextInfoMoney, }; shopContext.MoneyTransfers.Add(moneyTransferAdd); shopContext.SaveChanges(); }
public ActionResult Realization(Sale model) { Sale sale = _db.Sales.Include(d => d.Stock).FirstOrDefault(s => s.Id == model.Id); sale.DeliveryCost = model.DeliveryCost; sale.Comment = model.Comment; sale.PayForTerminal = model.PayForTerminal; Sale newSale = new Sale() { Stock = sale.Stock, Date = DateTime.UtcNow.AddHours(6), Number = sale.Number, Inspect = true, Confirmed = true, Description = "Изменение способа оплаты" }; InfoMoney info = _db.InfoMoneys.Include(s => s.Sale).FirstOrDefault(i => i.Sale.Id == sale.Id); info.PayForTerminal = model.PayForTerminal; _db.Sales.Add(newSale); _db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult ShipmentConfirmM(int?id) { Sale sale = db.Sales .Include(s => s.Dealer) .Include(s => s.Stock) .Include(s => s.GreenhouseForSales) .FirstOrDefault(s => s.Id == id); Stock stock = db.Stocks.FirstOrDefault(s => s.Id == sale.Stock.Id); sale.Confirmed = true; //Увеличивает задолжность дилера, если есть необходимость и дилер if (sale.Remain > 0 && sale.Dealer != null) { Dealer d1 = db.Dealers.FirstOrDefault(d => d.Name == sale.Dealer.Name); d1.Debt += sale.Remain; } //Списывает пакеты со склада, если была отгрузка if (sale.Shipment == true) { foreach (var g in sale.GreenhouseForSales) { Greenhouse g1 = db.Greenhouses .Include(gh => gh.PacksForGH) .Include(gh => gh.Stock) .FirstOrDefault(gh => gh.Name == g.Name && gh.Stock.Id == stock.Id); foreach (var p in g1.PacksForGH) { Pack p1 = db.Packs .Include(pck => pck.Stock) .FirstOrDefault(pck => pck.Name == p.Name && pck.Stock.Id == stock.Id); p1.Amount -= 1 * p.Amount * g.Amount; HistoryPack hp1 = new HistoryPack() { Name = p1.Name, Amount = p.Amount * g.Amount * -1, Date = DateTime.Now, ForHistory = false, Sale = sale, Pack = p1, Stock = stock, Description = sale.Number }; db.HistoryPacks.Add(hp1); } } } foreach (var g in sale.GreenhouseForSales) { Greenhouse g1 = db.Greenhouses .Include(gh => gh.PacksForGH) .Include(gh => gh.Stock) .FirstOrDefault(gh => gh.Name == g.Name && gh.Stock.Id == stock.Id); sale.SumBonuses += (g1.Bonus * g.Amount); sale.SumCostPrice += (g1.CostPrice * g.Amount); sale.Profit = sale.SumWithD - sale.SumCostPrice; } InfoMoney im1 = null; im1 = db.InfoMoneys.Include(i => i.Sale).FirstOrDefault(i => i.Sale.Id == sale.Id); if (im1 == null) { im1 = new InfoMoney() { Stock = stock, Sale = sale, Cost = sale.AddMoney, Date = DateTime.UtcNow.AddHours(6), PayForTerminal = sale.PayForTerminal }; db.InfoMoneys.Add(im1); } else { im1.Stock = stock; im1.Sale = sale; im1.Cost = sale.AddMoney; im1.Date = DateTime.UtcNow.AddHours(6); im1.PayForTerminal = sale.PayForTerminal; } db.SaveChanges(); HttpCookie cookie = Request.Cookies["Greenhouses"]; cookie["ListForRealization"] = null; Response.Cookies.Add(cookie); return(RedirectToAction("Index", "Production", new { id = sale.Id })); }