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);
        }
Пример #2
0
 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;
 }
 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;
 }