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();
        }
Example #2
0
        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"));
        }
Example #3
0
        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 }));
        }