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); }
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); } }
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)); }
public bool Add(StockMovimiento stockMovimiento) { try { _applicationDbContext.StockMovimientos.Add(stockMovimiento); Guardar(); return(true); } catch (Exception ex) { return(false); } }
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); }
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 })); }
public bool Add(StockMovimiento stockMovimiento) { return(_stockMovimientosRepositorio.Add(stockMovimiento)); }