public ActionResult reporteExistencias(string inicio, string termino) //inicio y termino deben tener el siguiente formato dia-mes-año { if (Session["ID"] == null || !roles.tienePermiso(1, int.Parse(Session["ID"].ToString()))) { return RedirectToAction("Index", "Home"); } DateTime Inicio = DateTime.Now.AddMonths(-1); DateTime Termino = DateTime.Now; if (inicio != null && termino != null) { string[] inicioSeparado = inicio.Split('-'); string[] terminoSeparado = termino.Split('-'); Inicio = new DateTime(int.Parse(inicioSeparado[2]), int.Parse(inicioSeparado[1]), int.Parse(inicioSeparado[0])); Termino = new DateTime(int.Parse(terminoSeparado[2]), int.Parse(terminoSeparado[1]), int.Parse(terminoSeparado[0])); } List<reportExistenciasProductos> lista = new List<reportExistenciasProductos>(); List<string> idsProductos = Maestro.ObtenerIdsProductosPeriodo(Inicio, Termino); reportExistenciasProductos masIngresos = new reportExistenciasProductos( db.Productos.Find(int.Parse(idsProductos[0])), Inicio, Termino); reportExistenciasProductos masEgresos = new reportExistenciasProductos( db.Productos.Find(int.Parse(idsProductos[0])), Inicio, Termino); int temp=0; foreach (string IDProducto in idsProductos) { if (!string.IsNullOrEmpty(IDProducto) && int.TryParse(IDProducto, out temp)) { lista.Add(new reportExistenciasProductos(db.Productos.Find(int.Parse(IDProducto)), Inicio, Termino)); if (lista[lista.Count - 1].stockProductosIngresadosPeriodo == 0 && lista[lista.Count - 1].stockProductosSalientesPeriodo == 0) { lista.RemoveAt(lista.Count - 1); } else { if (lista[lista.Count - 1].stockProductosIngresadosPeriodo > masIngresos.stockProductosIngresadosPeriodo) { masIngresos = lista[lista.Count - 1]; } if (lista[lista.Count - 1].stockProductosIngresadosPeriodo > masIngresos.stockProductosIngresadosPeriodo) { masEgresos = lista[lista.Count - 1]; } } } } ViewBag.ProductoMasIngresos = masIngresos; ViewBag.ProductoMasEgresos = masEgresos; return View(lista); }
public reportExistenciasReporte(reportExistenciasProductos Rep) { this.NumeroDeParte = Rep.Producto.numeroDeParte; this.descripcionProducto = Rep.Producto.descripcion; this.StockDisponible = Rep.stockDisponible; this.Inicio = Rep.Inicio; this.Termino = Rep.Termino; this.stockDisponibleValorizado = Rep.stockDisponibleValorizado; this.stockProductosIngresadosPeriodo = Rep.stockProductosIngresadosPeriodo; this.stockProductosSalientesPeriodo = Rep.stockProductosSalientesPeriodo; }