Beispiel #1
0
        }//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()