public ActionResult _AddEditEntryExitProduct(_AddEditEntryExitProductViewModel model) { try { using (var ts = new TransactionScope()) { EntryExitProduct entryExitProduct = new EntryExitProduct(); if (model.EntryExitProductId.HasValue) { entryExitProduct = context.EntryExitProduct.FirstOrDefault(x => x.EntryExitProductId == model.EntryExitProductId); } else { context.EntryExitProduct.Add(entryExitProduct); entryExitProduct.StatusType = ConstantHelpers.ESTADO.ENTRADA; entryExitProduct.Creation_Date = DateTime.Now; } entryExitProduct.Amount = model.Amount; entryExitProduct.UserId = Session.GetUserId(); entryExitProduct.ProductBrandId = model.ProductBrandId; context.SaveChanges(); //INSERTAR EN EL STOCK Decimal?entradasProducto = context.EntryExitProduct.Where(x => x.StatusType == ConstantHelpers.ESTADO.ENTRADA && x.ProductBrandId == model.ProductBrandId).Sum(x => x.Amount); Decimal?salidasProducto = context.EntryExitProduct.Where(x => x.StatusType == ConstantHelpers.ESTADO.SALIDA && x.ProductBrandId == model.ProductBrandId).Sum(x => x.Amount); StockProduct stockProduct = new StockProduct(); if (context.StockProduct.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId) != null) { stockProduct = context.StockProduct.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId); } else { context.StockProduct.Add(stockProduct); } stockProduct.Amount = (entradasProducto.HasValue ? Convert.ToDecimal(entradasProducto) : Convert.ToDecimal(0)) - (salidasProducto.HasValue ? Convert.ToDecimal(salidasProducto) : Convert.ToDecimal(0)); stockProduct.Status = ConstantHelpers.ESTADO.ACTIVO; stockProduct.ProductBrandId = model.ProductBrandId; context.SaveChanges(); ts.Complete(); PostMessage(MessageType.Success, "Entrada de producto Guardado"); return(RedirectToAction("ListStockProduct", "StockProduct")); } } catch (Exception e) { return(View(model)); } }
public IHttpActionResult AddEntryExitProduct(EntryExitProductEntity model) { try { using (var ts = new TransactionScope()) { EntryExitProduct entryExitProduct = new EntryExitProduct(); if (!model.EntryExitProductId.HasValue) { context.EntryExitProduct.Add(entryExitProduct); entryExitProduct.StatusType = ConstantHelpers.ESTADO.ENTRADA; entryExitProduct.Creation_Date = DateTime.Now; } entryExitProduct.Amount = model.Amount; entryExitProduct.UserId = model.UserId; entryExitProduct.ProductBrandId = model.ProductBrandId; context.SaveChanges(); Decimal?entradasProducto = context.EntryExitProduct.Where(x => x.StatusType == ConstantHelpers.ESTADO.ENTRADA && x.ProductBrandId == model.ProductBrandId).Sum(x => x.Amount); Decimal?salidasProducto = context.EntryExitProduct.Where(x => x.StatusType == ConstantHelpers.ESTADO.SALIDA && x.ProductBrandId == model.ProductBrandId).Sum(x => x.Amount); StockProduct stockProduct = new StockProduct(); if (context.StockProduct.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId) != null) { stockProduct = context.StockProduct.FirstOrDefault(x => x.ProductBrandId == model.ProductBrandId); } else { context.StockProduct.Add(stockProduct); } stockProduct.Amount = (entradasProducto.HasValue ? Convert.ToDecimal(entradasProducto) : Convert.ToDecimal(0)) - (salidasProducto.HasValue ? Convert.ToDecimal(salidasProducto) : Convert.ToDecimal(0)); stockProduct.Status = ConstantHelpers.ESTADO.ACTIVO; stockProduct.ProductBrandId = model.ProductBrandId; context.SaveChanges(); ts.Complete(); } response.Data = "User added"; response.Error = false; response.Message = "Success"; return(Ok(response)); } catch (Exception ex) { return(Unauthorized()); } }
public ActionResult _AddEditSale(_AddEditSaleViewModel model, FormCollection form) { try { using (TransactionScope ts = new TransactionScope()) { Sale sale = new Sale(); if (model.SaleId.HasValue) { sale = context.Sale.FirstOrDefault(x => x.SaleId == model.SaleId); var saleDetailEdit = context.SaleDetail.Where(x => x.SaleId == sale.SaleId).ToList(); var entryExitProductEdit = context.EntryExitProduct.Where(x => x.SaleId == sale.SaleId).ToList(); foreach (var item in saleDetailEdit) { var stockProductEdit = new StockProduct(); stockProductEdit = context.StockProduct.FirstOrDefault(x => x.ProductBrandId == item.ProductBrandId); stockProductEdit.Amount = stockProductEdit.Amount + item.Amount; } saleDetailEdit.ForEach(x => context.SaleDetail.Remove(x)); entryExitProductEdit.ForEach(x => context.EntryExitProduct.Remove(x)); } else { context.Sale.Add(sale); sale.Status = ConstantHelpers.ESTADO.ACTIVO; sale.StatusPayment = ConstantHelpers.ESTADO.PREVENTA; sale.StatusDelivery = ConstantHelpers.ESTADO.NOENTREGADO; sale.Creation_Date = DateTime.Now; } sale.Update_Date = DateTime.Now; sale.LocalId = Session.GetLocalId(); sale.UserId = Session.GetUserId(); sale.CodeVoucher = model.CodeVoucher; sale.CustomerId = model.CustomerId; context.SaveChanges(); Decimal?totalGeneral = 0; foreach (var key in form.AllKeys.Where(x => x.StartsWith("product-")).ToList()) { var num = key.Split('-'); var keyProduct = "product-" + num[1]; var keyQuantity = "quantity-" + num[1]; var keyUnitPrice = "unitprice-" + num[1]; var keyimport = "import-" + num[1]; var productBrandId = Convert.ToInt32(form[keyProduct]); SaleDetail saleDetail = new SaleDetail(); context.SaleDetail.Add(saleDetail); saleDetail.SaleId = sale.SaleId; saleDetail.ProductBrandId = Convert.ToInt32(form[keyProduct]); saleDetail.Amount = Convert.ToInt32(form[keyQuantity]); saleDetail.Price = Convert.ToDecimal(form[keyUnitPrice]); saleDetail.Total = saleDetail.Price * saleDetail.Amount; saleDetail.Status = ConstantHelpers.ESTADO.ACTIVO; EntryExitProduct entryExitProduct = new EntryExitProduct(); context.EntryExitProduct.Add(entryExitProduct); entryExitProduct.Amount = Convert.ToInt32(form[keyQuantity]); entryExitProduct.Creation_Date = DateTime.Now; entryExitProduct.StatusType = ConstantHelpers.ESTADO.SALIDA; entryExitProduct.UserId = Session.GetUserId(); entryExitProduct.ProductBrandId = Convert.ToInt32(form[keyProduct]); entryExitProduct.SaleId = sale.SaleId; StockProduct stockProduct = new StockProduct(); stockProduct = context.StockProduct.FirstOrDefault(x => x.ProductBrandId == productBrandId); stockProduct.Amount -= Convert.ToInt32(form[keyQuantity]);; totalGeneral += saleDetail.Total; } sale.General_Price = totalGeneral; context.SaveChanges(); ts.Complete(); } PostMessage(MessageType.Success, "Venta Realizada"); return(RedirectToAction("ListSale")); } catch (Exception ex) { return(RedirectToAction("ListSale")); } }
public IHttpActionResult AddSale(SaleEntity model) { try { using (TransactionScope ts = new TransactionScope()) { Sale sale = new Sale(); if (!model.SaleId.HasValue) { context.Sale.Add(sale); sale.Status = ConstantHelpers.ESTADO.ACTIVO; sale.StatusPayment = ConstantHelpers.ESTADO.PREVENTA; sale.StatusDelivery = ConstantHelpers.ESTADO.NOENTREGADO; sale.Creation_Date = DateTime.Now; } sale.Update_Date = DateTime.Now; sale.LocalId = model.LocalId; sale.UserId = model.UserId; sale.CodeVoucher = model.CodeVoucher; sale.CustomerId = model.CustomerId; context.SaveChanges(); Decimal?totalGeneral = 0; foreach (var item in model.LstSaleDetail) { SaleDetail saleDetail = new SaleDetail(); context.SaleDetail.Add(saleDetail); saleDetail.SaleId = sale.SaleId; saleDetail.ProductBrandId = item.ProductBrandId; saleDetail.Amount = item.Amount; saleDetail.Price = item.Price; saleDetail.Total = saleDetail.Price * saleDetail.Amount; saleDetail.Status = ConstantHelpers.ESTADO.ACTIVO; EntryExitProduct entryExitProduct = new EntryExitProduct(); context.EntryExitProduct.Add(entryExitProduct); entryExitProduct.Amount = item.Amount; entryExitProduct.Creation_Date = DateTime.Now; entryExitProduct.StatusType = ConstantHelpers.ESTADO.SALIDA; entryExitProduct.UserId = model.UserId; entryExitProduct.ProductBrandId = item.ProductBrandId; entryExitProduct.SaleId = sale.SaleId; StockProduct stockProduct = new StockProduct(); stockProduct = context.StockProduct.FirstOrDefault(x => x.ProductBrandId == item.ProductBrandId); stockProduct.Amount -= item.Amount; totalGeneral += saleDetail.Total; } sale.General_Price = totalGeneral; context.SaveChanges(); ts.Complete(); } response.Data = "User added"; response.Error = false; response.Message = "Success"; return(Ok(response)); } catch (Exception ex) { return(Unauthorized()); } }