public string Guia(int IdCaja)
 {
     try
     {
         wl_detenvios tienda = db.wl_detenvios.Where(x => x.wl_cajas_Id == IdCaja).FirstOrDefault();
         return(tienda.wl_guias.guia);
     }
     catch (Exception)
     {
         return("");
     }
 }
        public bool BusquedaGuia(string caja, string guia)
        {
            try
            {
                int          cajabusqueda = db.wl_cajas.Where(x => x.Codigo.Equals(caja)).FirstOrDefault().id;
                int          guiabusqueda = db.wl_guias.Where(x => x.guia.Equals(guia)).FirstOrDefault().id;
                wl_detenvios detalleenvio = db.wl_detenvios.Where(x => x.wl_cajas_Id == cajabusqueda && x.wl_guias_Id == guiabusqueda).FirstOrDefault();

                return(detalleenvio != null ? true : false);
            }
            catch (Exception)
            {
                return(false);
            }
        }
        public async Task <bool> InsercionDetalleEnvios(DataTable dtCharge)
        {
            try
            {
                List <wl_guias> listaGuiasBusqueda = await ListaGuiasAsync();

                List <wl_cajas> listaCajasBusqueda = await ListaCajasAsync();

                List <wl_tiendas> listaTiendasBusqueda = await ListaTiendasAsync();

                string    folioenvio = "OGL-WLD-" + (db.wl_waldos.Count() + 1);
                wl_waldos waldos     = new wl_waldos();
                waldos.folio     = folioenvio;
                waldos.fechaalta = DateTime.Now;

                db.wl_waldos.Add(waldos);
                await db.SaveChangesAsync();

                int idenvio = waldos.id;

                List <wl_detenvios> listaEnvios = new List <wl_detenvios>();

                foreach (DataRow row in dtCharge.Rows)
                {
                    string cajacodigo   = row[3].ToString().Trim().ToUpper();
                    string guia         = row[6].ToString().Trim().ToUpper();
                    string codigotienda = row[0].ToString().Trim().ToUpper();

                    wl_detenvios detenvios = new wl_detenvios();
                    detenvios.wl_cajas_Id   = listaCajasBusqueda.Where(x => x.Codigo.Equals(cajacodigo)).FirstOrDefault().id;
                    detenvios.wl_guias_Id   = listaGuiasBusqueda.Where(x => x.guia.Equals(guia)).FirstOrDefault().id;
                    detenvios.wl_tiendas_Id = listaTiendasBusqueda.Where(x => x.codigo.Equals(codigotienda)).FirstOrDefault().id;

                    listaEnvios.Add(detenvios);
                }

                var listaAgrupada = listaEnvios.GroupBy(x => x.wl_cajas_Id);

                List <wl_detenvios> listaEnviosAgregar = new List <wl_detenvios>();

                foreach (var item in listaAgrupada)
                {
                    wl_detenvios detenvios = new wl_detenvios();
                    detenvios.wl_cajas_Id   = item.Key;
                    detenvios.wl_guias_Id   = listaEnvios.Where(x => x.wl_cajas_Id.Equals(item.Key)).FirstOrDefault().wl_guias_Id;
                    detenvios.wl_tiendas_Id = listaEnvios.Where(x => x.wl_cajas_Id.Equals(item.Key)).FirstOrDefault().wl_tiendas_Id;
                    detenvios.wl_waldos_Id  = idenvio;

                    listaEnviosAgregar.Add(detenvios);
                }

                db.wl_detenvios.AddRange(listaEnviosAgregar);
                await db.SaveChangesAsync();

                return(true);
            }
            catch (Exception)
            {
                return(false);
            }
        }