public ResultAndError <CabeceraRecuento> Add(CabeceraRecuento pr) { ResultAndError <CabeceraRecuento> result = new ResultAndError <CabeceraRecuento>(); try { db.CabeceraRecuentos.Add(pr); db.SaveChanges(); return(result.AddResult(pr)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public ResultAndError <CabeceraRecuento> Update(CabeceraRecuento pr, bool insertIfNoExists = false) { ResultAndError <CabeceraRecuento> result = new ResultAndError <CabeceraRecuento>(); try { CabeceraRecuento old = Get(pr.IdRecuento); if (old == null && insertIfNoExists) { return(Add(pr)); } db.Entry(old).CurrentValues.SetValues(pr); db.SaveChanges(); return(result.AddResult(pr)); } catch (Exception e) { return(result.AddError(e, HttpStatusCode.InternalServerError)); } }
public IActionResult UpdCabeceraRecuento([FromBody] CabeceraRecuento CabeceraRecuento, bool insertIfNoExists = false) { return(Ok(cBS.Update(CabeceraRecuento, insertIfNoExists))); }
public CabeceraRecuento_View(CabeceraRecuento c) { IdRecuento = c.IdRecuento; Name = "HR" + c.IdRecuento; Status = Status = c.Status == 0 ? "Pendiente" : "Cerrado"; }
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); }