Beispiel #1
0
        public bool Agregar(StockMovimiento stockMovimiento, int sucursalID)
        {
            //Si ModificarStock no falla agregamos el StockMovimiento
            var suma = _tipoMovimientosStockServicios.GetAll().Where(a => a.Id == stockMovimiento.TipoMovimientoStockID).FirstOrDefault().Suma;

            if (!suma)
            {
                stockMovimiento.Cantidad = (stockMovimiento.Cantidad * -1);
            }

            if (ModificarStock(stockMovimiento.ArticuloID, stockMovimiento.Cantidad, sucursalID))
            {
                stockMovimiento.SucursalID = sucursalID;
                var stockArticuloSucursal = _stockArticuloSucursalServicios.GetOneBySucursal(stockMovimiento.ArticuloID, sucursalID);
                stockMovimiento.StockActual = stockArticuloSucursal.StockActual;
                if (Add(stockMovimiento))
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            return(false);
        }
Beispiel #2
0
        public bool AgregarMovimientoVentas(List <VentaItem> ventaItem, int sucID, int usuID)
        {
            try
            {
                var tipos  = _tipoMovimientosStockServicios.GetAll();
                var tipoID = tipos.Where(a => a.Nombre == "Venta").FirstOrDefault().Id;
                foreach (var item in ventaItem)
                {
                    StockMovimiento sm = new StockMovimiento();
                    sm.ArticuloID            = item.ArticuloID;
                    sm.Cantidad              = item.Cantidad * -1;
                    sm.Fecha                 = DateTime.Now;
                    sm.SucursalID            = sucID;
                    sm.TipoMovimientoStockID = tipoID;
                    sm.UsuarioID             = usuID;
                    var stockArticuloSucursal = _stockArticuloSucursalServicios.GetOneBySucursal(item.ArticuloID, sucID);
                    sm.StockActual = stockArticuloSucursal.StockActual;
                    if (!Add(sm))
                    {
                        return(false);
                    }
                }

                return(true);
            }
            catch (Exception ex) {
                return(false);
            }
        }
Beispiel #3
0
        public ActionResult ConfirmarDevolucion(DevolucionAgregarViewModel devolucionVM)
        {
            if (ModelState.IsValid)
            {
                if (ValidarCantidades(devolucionVM.Items))
                {
                    decimal montoARestar = 0;
                    foreach (var item in devolucionVM.Items)
                    {
                        if (item.CantidadADevolver > 0)
                        {
                            montoARestar += item.CantidadADevolver * item.PrecioDeVenta;
                            //Resto la CantidadADevolver al registro correspondiente
                            VentaItem VentaItem = _ventaItemsServicios.GetOne(item.VentaItemID);
                            VentaItem.Cantidad -= item.CantidadADevolver;
                            _ventaItemsServicios.Update(VentaItem);
                            //Creo un nuevo registro con la CantidadADevolver y Devuelto = true
                            VentaItem.Cantidad = item.CantidadADevolver;
                            VentaItem.Devuelto = true;
                            _ventaItemsServicios.Add(VentaItem);

                            //Si afecta el stock aumento el stock y agrego un movimiento de stock del tipo "devolucion"
                            if (item.VuelveAlStock)
                            {
                                StockMovimiento StockMovimiento = new StockMovimiento();

                                StockMovimiento.Fecha    = DateTime.Now;
                                StockMovimiento.Cantidad = item.CantidadADevolver;
                                StockMovimiento.TipoMovimientoStockID = 3; //Es la devolucion
                                StockMovimiento.ArticuloID            = item.ArticuloID;
                                var usuario = (Usuario)System.Web.HttpContext.Current.Session["UsuarioActual"];
                                StockMovimiento.UsuarioID = usuario.Id;

                                _stockMovimientosServicios.Agregar(StockMovimiento, (int)System.Web.HttpContext.Current.Session["SucursalActual"]);
                            }
                        }
                    }

                    //Actualiza el monto total de la venta
                    //_ventaServicios.ActualizarMontoDeVenta(devolucionVM.VentaID, montoARestar);

                    ViewBag.Informacion = "Devolución registrada con éxito";
                    devolucionVM.Items.Clear();
                    devolucionVM.VentaID = 0;
                    return(View("Agregar", devolucionVM));
                }
                else
                {
                    ViewBag.Error = "Las cantidades a devolver no pueden ser mayor a las cantidades vendidas.";
                }
            }
            else
            {
                ViewBag.Error = "No se pudo generar la devolución, vuelva a intentarlo.";
            }
            return(View("Agregar", devolucionVM));
        }
Beispiel #4
0
 public bool Add(StockMovimiento stockMovimiento)
 {
     try
     {
         _applicationDbContext.StockMovimientos.Add(stockMovimiento);
         Guardar();
         return(true);
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
Beispiel #5
0
        public StockMovimiento Mapear()
        {
            StockMovimiento StockMovimiento = new StockMovimiento();

            StockMovimiento.Fecha    = DateTime.Now;
            StockMovimiento.Cantidad = Cantidad;
            StockMovimiento.TipoMovimientoStockID = TipoMovimientoStockID;
            StockMovimiento.ArticuloID            = ArticuloID;
            var usuario = (Usuario)System.Web.HttpContext.Current.Session["UsuarioActual"];

            StockMovimiento.UsuarioID = usuario.Id;

            return(StockMovimiento);
        }
Beispiel #6
0
        public ActionResult AsignarStock(FormCollection collection)
        {
            var cont       = collection.GetValues(0).Count();
            var articulos  = collection.GetValues(0);
            var sucursales = collection.GetValues(1);
            var cantidades = collection.GetValues(2);

            for (var i = 0; i < cont; i++)
            {
                var art  = int.Parse(articulos[i].ToString());
                var suc  = int.Parse(sucursales[i].ToString());
                var cant = decimal.Parse(cantidades[i].ToString());
                if (cant != 0)
                {
                    StockMovimiento sm = new StockMovimiento();
                    sm.ArticuloID = art;
                    sm.Cantidad   = cant;
                    sm.Fecha      = DateTime.Now;
                    sm.SucursalID = suc;
                    var usuario = (Usuario)System.Web.HttpContext.Current.Session["UsuarioActual"];
                    sm.UsuarioID = usuario.Id;
                    //Si la sucursal NO es el depsósito, le descuento stock
                    if (suc != 1)
                    {
                        _stockArticuloSucursalServicios.DescontarStockDeposito(art, cant);
                    }
                    sm.TipoMovimientoStockID = _tipoMovimientosStockServicios.GetAll().Where(a => a.Nombre.Contains("Repos")).FirstOrDefault().Id;
                    bool bandera = _stockMovimientosServicios.Agregar(sm, suc);
                }
            }

            ViewBag.Sucursales = _sucursalesServicios.GetAll();

            Session["listaStock"] = null;
            string msj = "Stock asignado correctamente!";

            return(RedirectToAction("AsignarStock", new { mensaje = msj }));
        }
Beispiel #7
0
 public bool Add(StockMovimiento stockMovimiento)
 {
     return(_stockMovimientosRepositorio.Add(stockMovimiento));
 }