public IActionResult Create(Recuento recuento)
        {
            int nVeces = 0;

            try
            {
                nVeces = _db.Recuento.Where(m => m.RecuentoId == recuento.RecuentoId).Count();
                if (!ModelState.IsValid || nVeces >= 1)
                {
                    if (nVeces >= 1)
                    {
                        ViewBag.Error = "Este Id ya existe!";
                    }
                    cargarMateriales();
                    cargarClasificacion();
                }
                else
                {
                    Recuento _recuento = new Recuento();
                    _recuento.RecuentoId      = recuento.RecuentoId;
                    _recuento.PesoGlobal      = recuento.PesoGlobal;
                    _recuento.FechaPeso       = recuento.FechaPeso;
                    _recuento.MaterialId      = recuento.MaterialId;
                    _recuento.ClasificacionId = recuento.ClasificacionId;
                    _db.Recuento.Add(_recuento);
                    _db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                ViewBag.Error = ex.Message;
            }
            return(RedirectToAction(nameof(Index)));
        }
        public IActionResult Edit(Recuento recuento)
        {
            string error = "";

            try
            {
                if (!ModelState.IsValid)
                {
                    cargarMateriales();
                    cargarClasificacion();

                    return(View(recuento));
                }
                else
                {
                    _db.Recuento.Update(recuento);
                    _db.SaveChanges();
                }
            }
            catch (Exception ex)
            {
                error = ex.Message;
            }
            return(RedirectToAction(nameof(Index)));
        }
        public IActionResult Details(int id)
        {
            cargarClasificacion();
            cargarMateriales();

            Recuento recuento = _db.Recuento
                                .Where(e => e.RecuentoId == id).First();

            return(View(recuento));
        }
        public IActionResult Edit(int id)
        {
            cargarClasificacion();
            cargarMateriales();

            int      recCount  = _db.Recuento.Count(e => e.RecuentoId == id);
            Recuento _recuento = (from p in _db.Recuento
                                  where p.RecuentoId == id
                                  select p).DefaultIfEmpty().Single();

            return(View(_recuento));
        }
        public IActionResult Delete(int?RecuentoId)
        {
            var Error = "";

            try
            {
                Recuento oRecuento = _db.Recuento
                                     .Where(e => e.RecuentoId == RecuentoId).First();
                _db.Recuento.Remove(oRecuento);
                _db.SaveChanges();
            }
            catch (Exception ex)
            {
                Error = ex.Message;
            }
            return(RedirectToAction(nameof(Index)));
        }
Example #6
0
        public ResultAndError <Recuento> IniciarRecuento(string center, string almacen, string product, string zona)
        {
            Center oCenter = cnBS.Get("088");//TODO modificar cuando este el login
            ResultAndError <Recuento> recount = new ResultAndError <Recuento>();
            var almacenes = db.AlmacenZPs
                            .Include(o => o.Location)
                            .Include(o => o.Zonas)
                            .Include(o => o.Product)
                            .Where(o => o.LocationCode == almacen)
                            .GroupBy(o => o.LocationCode)
                            .ToList();

            if (almacenes.Count() == 0)
            {
                return(recount.AddError("No hay datos"));
            }

            List <string> zonas = zona.Split(',').ToList();

            recount = CheckZonaRecuento(zonas, recount);

            if (recount.HasErrors)
            {
                return(recount);
            }

            CabeceraRecuento oCabecera = new CabeceraRecuento()
            {
                Status = 0
            };

            cBS.Update(oCabecera, true);

            Recuento oRecuento = new Recuento();

            //Recorremos el group by del almacen
            foreach (var group in almacenes)
            {
                //Aqui recorremos los items que esten agrupados en este almacen
                foreach (AlmacenZP alm in group.ToList())
                {
                    oRecuento.Almacen = alm.Location.Name;
                    List <Zonas> zonaAlmacen = new List <Zonas>();
                    //Recorremos las zonas seleccionadas
                    foreach (string z in zonas)
                    {
                        var tempAlmacenes = group.Where(o => o.Zona == z).ToList();
                        if (tempAlmacenes.Count() == 0)
                        {
                            continue;                             //Si no hay zona saltamos a la siguiente vuelta
                        }
                        Zonas oZona = new Zonas();
                        foreach (AlmacenZP zP in tempAlmacenes)//Recorremos los productos
                        {
                            oZona = new Zonas()
                            {
                                Zona      = zP.Zonas.Name,
                                Productos = tempAlmacenes.OrderBy(o => o.Product.Description).ToList()
                            };//Creamos el objeto Zonas
                            recount = CheckProductoRecuento(zP.ProductNo, recount);
                            if (recount.HasErrors)
                            {
                                return(recount);
                            }
                            //Creamos el objeto HojaRecuento
                            HojaRecuento oHoja = new HojaRecuento()
                            {
                                Codigo       = "HR" + oCabecera.IdRecuento,
                                Date         = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month)),
                                CenterCode   = center,
                                LocationCode = zP.LocationCode,
                                Zone         = zP.Zona,
                                ProductNo    = zP.ProductNo,
                                Quantity     = zP.Product.StockActual
                            };
                            Update(oHoja, true);//Creamos la hoja del producto
                        }
                        zonaAlmacen.Add(oZona);
                    }
                    oRecuento.Zonas = zonaAlmacen.OrderBy(o => o.Zona).ToList();
                    break;
                }
            }

            recount.AddResult(oRecuento);
            return(recount);
        }