Exemplo n.º 1
0
        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());
            }
        }
Exemplo n.º 3
0
        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"));
            }
        }
Exemplo n.º 4
0
        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());
            }
        }