public IActionResult DefferedSaleFromStock([FromBody] DefferedSaleFromStockVM sale) { try { var supplierId = _db.Suppliers.FirstOrDefault(x => x.Title == sale.Supplier)?.Id ?? throw new Exception("Не указан поставщик"); var managerId = _postgresContext.Managers.FirstOrDefault(x => x.Name == sale.Manager)?.Id ?? throw new Exception("Не указан менеджер"); var user = _userService.All().FirstOrDefault(x => x.Id == sale.UserId); SaleCreateVM saleCreate = new SaleCreateVM() { UserId = sale.UserId, Discount = sale.Discount, CashSum = sale.CashSum, CashlessSum = sale.CashlessSum, Comment = sale.Comment, Sum = sale.Sum, Products = sale.Products, PartnerId = sale.Buyer == "Обычный покупатель" ? null : _partnerService.All().First(p => p.Title == sale.Buyer)?.Id, SaleType = SaleType.DefferedSaleFromStock, ForRussian = sale.ForRussian }; var createdSale = _saleService.CreatePostPayment(_db, saleCreate, sale.UserId); _db.SaleInformations.Add(new SaleInformation() { Sale = createdSale, SaleType = SaleType.DefferedSaleFromStock }); if (sale.CashSum > 0) { _infoMoneyService.Create(new InfoMoney() { MoneyWorkerId = _shopService.All().FirstOrDefault(x => x.Id == user.ShopId).Id, Sum = sale.CashSum, Sale = createdSale, PaymentType = PaymentType.Cash, MoneyOperationType = MoneyOperationType.Sale }); } if (sale.CashlessSum > 0) { _infoMoneyService.Create(new InfoMoney() { MoneyWorkerId = sale.MoneyWorkerId, Sum = sale.CashlessSum, Sale = createdSale, PaymentType = PaymentType.Cashless, MoneyOperationType = MoneyOperationType.Sale }); } _db.SaveChanges(); var saleFromStockOld = new SaleFromStockOld() { SaleId = createdSale.Id, SupplierId = supplierId, Products = sale.Products.Select(x => new SoldProductFromStockOld() { ProcurementCost = x.ProcurementCost, ProductId = x.Id }).ToList() }; _postgresContext.SalesFromStockOld.Add(saleFromStockOld); _postgresContext.SaleManagersOld.Add( new SaleManagerOld(managerId, createdSale.Id, DateTime.Now.AddHours(3))); _postgresContext.SaveChanges(); return(RedirectToAction("CheckPrint", new { saleId = createdSale.Id, operationSum = sale.CashSum + sale.CashlessSum })); } catch (Exception e) { return(BadRequest(new { message = e.Message })); } }
public IActionResult SaleFromStock([FromBody] SaleFromStockVM json) { try { var supplierId = _db.Suppliers.FirstOrDefault(x => x.Title == json.Supplier)?.Id ?? throw new Exception("Не указан поставщик"); var managerId = _postgresContext.Managers.FirstOrDefault(x => x.Name == json.Manager)?.Id ?? throw new Exception("Не указан менеджер"); SaleCreateVM saleCreate = new SaleCreateVM() { UserId = json.UserId, Discount = json.Discount, AdditionalComment = json.AdditionalComment, Comment = json.Comment, Sum = json.Sum, CashSum = json.Cash, CashlessSum = json.Cashless, Products = json.Products, PartnerId = json.Buyer == "Обычный покупатель" ? null : _partnerService.All().First(p => p.Title == json.Buyer)?.Id, SaleType = SaleType.SaleFromStock, ForRussian = json.ForRussian }; var createdSale = _saleService.CreatePostPayment(_db, saleCreate, json.UserId); var shop = _shopService.ShopByUserId(_db, json.UserId); _db.SaleInformations.Add(new SaleInformation() { Sale = createdSale, MoneyWorkerForIncomeId = shop.Id, MoneyWorkerForCashlessIncomeId = json.MoneyWorkerIdForCashlessIncome == 0 ? null : json.MoneyWorkerIdForCashlessIncome, SaleType = SaleType.SaleFromStock }); _db.SaveChanges(); var saleFromStockOld = new SaleFromStockOld() { SaleId = createdSale.Id, SupplierId = supplierId, Products = json.Products.Select(x => new SoldProductFromStockOld() { ProcurementCost = x.ProcurementCost, ProductId = x.Id }).ToList() }; _postgresContext.SalesFromStockOld.Add(saleFromStockOld); _postgresContext.SaleManagersOld.Add( new SaleManagerOld(managerId, createdSale.Id, DateTime.Now.AddHours(3))); _postgresContext.SaveChanges(); return(RedirectToAction("CheckPrint", new { saleId = createdSale.Id, operationSum = json.Cash + json.Cashless })); } catch (Exception e) { return(BadRequest(new { message = e.Message })); } }