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