}//CONSTRUCTOR public async Task <List <zt_inventarios_acumulados> > FicMetGetAcumuladosList(int _idinventario) { /*TRAEGO TODOS LOS CONTEOS*/ var FicSourceConteos = await(from con in FicLoBDContext.zt_inventarios_conteos where con.IdInventario == _idinventario select con).AsNoTracking().ToListAsync(); /*TRAEGO CADA UNO DE LOS PRODUCTOS, PERO SIN REPETIRCE*/ var FicSourceProductos = await(from c in FicLoBDContext.zt_inventarios_conteos where c.IdInventario == _idinventario group c by c.IdSKU into c select c.Key).AsNoTracking().ToListAsync(); if (FicSourceConteos != null) { if (FicSourceProductos != null) { foreach (string c in FicSourceProductos) { var FicSourceSuma = (from t in FicSourceConteos where t.IdSKU == c select t).ToList(); if (FicSourceSuma != null) { var FicSuma = FicSourceSuma.GroupBy(x => x.IdSKU).Select(conteo => new { SumaPZA = conteo.Sum(l => l.CantidadPZA) }); var FicSourceAcumulados = await(from t in FicLoBDContext.zt_inventarios_acumulados where t.IdSKU == c && t.IdInventario == _idinventario select t).SingleOrDefaultAsync(); if (FicSourceAcumulados == null) { await FicLoBDContext.AddAsync(new zt_inventarios_acumulados() { IdInventario = _idinventario, IdSKU = c, CantidadTeorica = FicSuma.First().SumaPZA, CantidadFisica = FicSuma.First().SumaPZA, Diferencia = 0, IdUnidadMedida = "PZA", FechaReg = DateTime.Now.Date, UsuarioReg = "BUAP", Activo = "S", Borrado = "N" }); await FicLoBDContext.SaveChangesAsync(); } else { FicSourceAcumulados.CantidadFisica = FicSuma.First().SumaPZA; FicSourceAcumulados.Diferencia = FicSourceAcumulados.CantidadTeorica - FicSourceAcumulados.CantidadFisica; FicSourceAcumulados.FechaUltMod = DateTime.Now; FicSourceAcumulados.UsuarioMod = "BUAP"; // FicLoBDContext.Update(FicSourceAcumulados); await FicLoBDContext.SaveChangesAsync(); } //INSERT o UPDATE DEL ACUMULADO } //TRAER LA SUMA DE PIEZAS DEL CONTEO DE ESE PRODUCTO } //RECORRERER LA LISTA DE PRODUCTOS PARA OBTENER EL ENCABEZADO } //LISTA DE PRODUCTOS } //SI EXISTEN CONTEOS return(await(from acu in FicLoBDContext.zt_inventarios_acumulados where acu.IdInventario == _idinventario select acu).AsNoTracking().ToListAsync()); }
public async Task <string> Insert_zt_inventarios_conteos(zt_inventarios_conteos zt_inventarios_conteos, bool modo) { try { zt_inventarios_conteos.CantidadPZA = await FicMetCantPza(zt_inventarios_conteos.IdSKU, zt_inventarios_conteos.IdUnidadMedida, zt_inventarios_conteos.CantidadFisica); if (modo) { zt_inventarios_conteos.NumConteo = await FicExitConteo(zt_inventarios_conteos); await FicLoBDContext.AddAsync(zt_inventarios_conteos); return(await FicLoBDContext.SaveChangesAsync() > 0 ? "OK" : "ERROR AL REGISTRAR"); } else { var FicSourceInvExits = await( from con in FicLoBDContext.zt_inventarios_conteos join inv in FicLoBDContext.zt_inventarios on con.IdInventario equals inv.IdInventario where con.IdSKU == zt_inventarios_conteos.IdSKU && con.IdAlmacen == zt_inventarios_conteos.IdAlmacen && con.IdUnidadMedida == zt_inventarios_conteos.IdUnidadMedida && con.NumConteo == zt_inventarios_conteos.NumConteo && con.IdUbicacion == zt_inventarios_conteos.IdUbicacion select con ).SingleOrDefaultAsync(); FicSourceInvExits.Lote = zt_inventarios_conteos.Lote; FicSourceInvExits.CantidadFisica = zt_inventarios_conteos.CantidadFisica; FicSourceInvExits.CantidadPZA = zt_inventarios_conteos.CantidadPZA; FicLoBDContext.Update(FicSourceInvExits); return(await FicLoBDContext.SaveChangesAsync() > 0 ? "OK" : "ERROR AL ACTUALIZAR"); } } catch (Exception ex) { return(ex.Message.ToString()); } }//INSERTAR NUEVO CONTEO
public async Task <string> FicGetImportInventarios(int id = 0) { string FicMensaje = ""; try { FicMensaje = "IMPORTACION: \n"; var FicGetReultREST = new zt_inventatios_acumulados_conteos(); if (id != 0) { FicGetReultREST = await FicGetListInventarioActualiza(id); } else { FicGetReultREST = await FicGetListInventarioActualiza(); } if (FicGetReultREST != null && FicGetReultREST.zt_inventarios != null) { FicMensaje += "IMPORTANDO: zt_inventarios \n"; foreach (zt_inventarios inv in FicGetReultREST.zt_inventarios) { var respuesta = await FicExistzt_inventarios(inv.IdInventario); if (respuesta != null) { try { respuesta.IdInventario = inv.IdInventario; respuesta.IdInventarioSAP = inv.IdInventarioSAP; respuesta.IdCEDI = inv.IdCEDI; respuesta.IdAlmacen = inv.IdAlmacen; respuesta.IdEstatus = inv.IdEstatus; respuesta.FechaReg = inv.FechaReg; respuesta.UsuarioReg = inv.UsuarioReg; respuesta.FechaUltMod = inv.FechaUltMod; respuesta.UsuarioMod = inv.UsuarioMod; respuesta.Activo = inv.Activo; respuesta.Borrado = inv.Borrado; // FicLoBDContext.Update(respuesta); FicMensaje += await FicLoBDContext.SaveChangesAsync() > 0 ? "-UPDATE-> IdInventario: " + inv.IdInventario + " \n" : "-NO NECESITO ACTUALIZAR-> IdInventario: " + inv.IdInventario + " \n"; } catch (Exception e) { FicMensaje += "-ALERTA-> " + e.Message.ToString() + " \n"; } } else { try { FicLoBDContext.Add(inv); FicMensaje += await FicLoBDContext.SaveChangesAsync() > 0 ? "-INSERT-> IdInventario: " + inv.IdInventario + " \n" : "-ERROR EN INSERT-> IdInventario: " + inv.IdInventario + " \n"; } catch (Exception e) { FicMensaje += "-ALERTA-> " + e.Message.ToString() + " \n"; } } } } else { FicMensaje += "-> SIN DATOS. \n"; } if (FicGetReultREST != null && FicGetReultREST.zt_inventarios_conteos != null) { FicMensaje += "IMPORTANDO: zt_inventarios_conteos \n"; foreach (zt_inventarios_conteos inv in FicGetReultREST.zt_inventarios_conteos) { var respuesta = await FicExistzt_inventarios_conteos(inv.IdInventario, inv.IdAlmacen, inv.IdSKU, inv.NumConteo, inv.IdUbicacion); if (respuesta != null) { try { respuesta.IdInventario = inv.IdInventario; respuesta.IdAlmacen = inv.IdAlmacen; respuesta.NumConteo = inv.NumConteo; respuesta.IdSKU = inv.IdSKU; respuesta.CodigoBarras = inv.CodigoBarras; respuesta.IdUbicacion = inv.IdUbicacion; respuesta.CantidadFisica = inv.CantidadFisica; respuesta.IdUnidadMedida = inv.IdUnidadMedida; respuesta.CantidadPZA = inv.CantidadPZA; respuesta.Lote = inv.Lote; respuesta.FechaReg = inv.FechaReg; respuesta.UsuarioReg = inv.UsuarioReg; respuesta.Activo = inv.Activo; respuesta.Borrado = inv.Borrado; //FicLoBDContext.Update(respuesta); FicMensaje += await FicLoBDContext.SaveChangesAsync() > 0 ? "-UPDATE-> IdInventario: " + inv.IdInventario + " ,IdAlmacen: " + inv.IdAlmacen + " ,IdSKU: " + inv.IdSKU + " ,NumConteo: " + inv.NumConteo + " ,IdUbicacion: " + inv.IdUbicacion + " \n" : "-NO NECESITO ACTUALIZAR-> IdInventario: " + inv.IdInventario + " ,IdAlmacen: " + inv.IdAlmacen + " ,IdSKU: " + inv.IdSKU + " ,NumConteo: " + inv.NumConteo + " ,IdUbicacion: " + inv.IdUbicacion + " \n"; } catch (Exception e) { FicMensaje += "-ALERTA-> " + e.Message.ToString() + " \n"; } } else { try { FicLoBDContext.Add(inv); FicMensaje += await FicLoBDContext.SaveChangesAsync() > 0 ? "-INSERT-> IdInventario: " + inv.IdInventario + " ,IdAlmacen: " + inv.IdAlmacen + " ,IdSKU: " + inv.IdSKU + " ,NumConteo: " + inv.NumConteo + " ,IdUbicacion: " + inv.IdUbicacion + " \n" : "-ERROR EN INSERT-> IdInventario: " + inv.IdInventario + " ,IdAlmacen: " + inv.IdAlmacen + " ,IdSKU: " + inv.IdSKU + " ,NumConteo: " + inv.NumConteo + " ,IdUbicacion: " + inv.IdUbicacion + " \n"; } catch (Exception e) { FicMensaje += "-ALERTA-> " + e.Message.ToString() + " \n"; } } } } else { FicMensaje += "-> SIN DATOS. \n"; } if (FicGetReultREST != null && FicGetReultREST.zt_inventarios_acumulados != null) { FicMensaje += "IMPORTANDO: zt_inventarios_acumulados \n"; foreach (zt_inventarios_acumulados inv in FicGetReultREST.zt_inventarios_acumulados) { var respuesta = await FicExistzt_inventarios_acumulados(inv.IdInventario, inv.IdSKU); if (respuesta != null) { try { respuesta.IdInventario = inv.IdInventario; respuesta.IdSKU = inv.IdSKU; respuesta.CantidadTeorica = inv.CantidadTeorica; respuesta.CantidadTeoricaCJA = inv.CantidadTeoricaCJA; respuesta.CantidadFisica = inv.CantidadFisica; respuesta.Diferencia = inv.Diferencia; respuesta.IdUnidadMedida = inv.IdUnidadMedida; respuesta.FechaReg = inv.FechaReg; respuesta.UsuarioReg = inv.UsuarioReg; respuesta.FechaUltMod = inv.FechaUltMod; respuesta.UsuarioMod = inv.UsuarioMod; respuesta.Activo = inv.Activo; respuesta.Borrado = inv.Borrado; //FicLoBDContext.Update(respuesta); FicMensaje += await FicLoBDContext.SaveChangesAsync() > 0 ? "-UPDATE-> IdInventario: " + inv.IdInventario + " ,IdSKU: " + inv.IdSKU + " \n" : "-NO NECESITO ACTUALIZAR-> IdInventario: " + inv.IdInventario + " ,IdSKU: " + inv.IdSKU + " \n"; } catch (Exception e) { FicMensaje += "-ALERTA-> " + e.Message.ToString() + " \n"; } } else { try { FicLoBDContext.Add(inv); FicMensaje += await FicLoBDContext.SaveChangesAsync() > 0 ? "-INSERT-> IdInventario: " + inv.IdInventario + " ,IdSKU: " + inv.IdSKU + " \n" : "-ERROR EN INSERT-> IdInventario: " + inv.IdInventario + " ,IdSKU: " + inv.IdSKU + " \n"; } catch (Exception e) { FicMensaje += "-ALERTA-> " + e.Message.ToString() + " \n"; } } } } else { FicMensaje += "-> SIN DATOS. \n"; } } catch (Exception e) { FicMensaje += "ALERTA: " + e.Message.ToString() + "\n"; } return(FicMensaje); }//FicGetImportInventarios()