Exemplo n.º 1
0
 public IActionResult GetCentroById([FromQuery] string id)
 {
     return(Ok(cBS.Get(id)));
 }
Exemplo n.º 2
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);
        }