示例#1
0
        public ActionResult GetBuscarSemejantes(ParametrosBusqueda parBusqueda)
        {
            ModeloMadreTemporal modMadreTemp = new ModeloMadreTemporal();

            List <Madre> Datos  = modMadreTemp.BuscarSemejantes(parBusqueda);
            var          myData = (from d in Datos select new { llavePrimaria = d.Id, d.Nombres, d.PrimerApellido, d.SegundoApellido, d.TercerApellido, d.NombreCompleto, d.DocumentoIdentidad, d.FechaNacimiento, d.LocalidadNacimiento });

            return(Json(myData, JsonRequestBehavior.AllowGet));
        }
示例#2
0
        public List <Madre> BuscarSemejantes(ParametrosBusqueda parBusqueda)
        {
            long          identificador = Convert.ToInt64(parBusqueda.Identificador);
            MadreTemporal madreTemp     = new MadreTemporal();

            madreTemp = Listar().Where(m => m.Id == identificador).FirstOrDefault();

            Dictionary <string, object> propiedadesBusqueda = ObtenerElementos(parBusqueda, MemberTypes.Property);

            List <Madre> madresCandidatas = new List <Madre>();
            Madre        peorSemejanza    = new Madre();

            int distanciaCalculada;
            int peorDistancia = -1;

            //string strParametrosMadreTemporal = madreTemp.NombreCompleto;
            string cadenaMadreTemporal = ConstruirParametroMadreTemporal(madreTemp, propiedadesBusqueda);

            //foreach (Madre ma in madre.Listar())
            foreach (Madre ma in db.Madres.ToList())
            {
                distanciaCalculada = Distancia.Levenshtein(cadenaMadreTemporal, ConstruirParametroMadre(ma, propiedadesBusqueda));
                if (madresCandidatas.Count < 10)
                {
                    ma.IdMunicipio = distanciaCalculada;    //**
                    madresCandidatas.Add(ma);
                    if (distanciaCalculada > peorDistancia)
                    {
                        peorDistancia = distanciaCalculada;
                        peorSemejanza = ma;
                    }
                }
                else
                {
                    if (distanciaCalculada < peorDistancia)
                    {
                        ma.IdMunicipio = distanciaCalculada;    //**
                        madresCandidatas.Remove(peorSemejanza);
                        madresCandidatas.Add(ma);

                        // Peor distancia entre los 10
                        peorDistancia = -1;
                        foreach (var item in madresCandidatas)
                        {
                            distanciaCalculada = Distancia.Levenshtein(madreTemp.NombreCompleto, item.NombreCompleto);
                            if (distanciaCalculada > peorDistancia)
                            {
                                peorDistancia = distanciaCalculada;
                                peorSemejanza = item;
                            }
                        }
                    }
                }
            }
            return(madresCandidatas.OrderBy(m => m.IdMunicipio).ToList());
        }
示例#3
0
        public static BuscaArticulo BuscarArticuloUM(ListaCamposBusqueda campos, out short resultado, string valorBusqueda, Form formP)
        {
            var c = new CampoBusqueda("IdEmpresa", TOperador.Igual, Parametros.IdEmpresaArticulos, DbType.Int32, TEnlace.Y);

            campos.Add(c);
            var criterioAuxiliares = new CriterioBusqueda
            {
                IdISOLang       = Settings.Default.Lenguaje,
                CampoOrdenacion = "Descripcion",
                TipoOrden       = "ASC",
                NumPagina       = 1,
                TamanoPagina    = Settings.Default.TamanoPagina,
                CamposBusqueda  = campos,
                Entidad         = "BuscaArticuloUM",
                Paginacion      = false,
                Operacion       = "F",
                Valor           = "",
                ValorClave      = "",
                CampoClave      = "IdArticulo",
                EntidadFuncion  = "BuscaArticuloUM",
                ValorFuncion    = "'" + valorBusqueda + "'",
                EntidadVista    = "VBuscaArticulo"
            };
            var r = CargaListaParaNavegar(criterioAuxiliares);

            if (r.ContadorResultados == 1)
            {
                resultado = 1;
                return((BuscaArticulo)r.ListaResultados[0]);
            }
            if (r.ContadorResultados > 1)
            {
                var cache = new CacheNavegacion {
                    ListaResultados = r.ListaResultados, CampoClave = "IDArticulo", CampoOrden = "Descripcion", TotalRegistros = r.ContadorResultados
                };
                var parametros = new ParametrosBusqueda
                {
                    TipoEntidad          = typeof(BuscaArticulo),
                    Cache                = cache,
                    CriterioB            = criterioAuxiliares,
                    ConfiguracionRejilla = null,
                    MetodoLectura        = CargaListaParaNavegar,
                    //MetodoLecturaCategorias = LeerCategorias,
                    RutaXml           = VariablesGlobales.rutaAtributos,
                    Subtitulo         = "Busqueda de Articulos",
                    TamBloqueLec      = 20,
                    Titulo            = "Articulos",
                    MostrarCategorias = false,
                    Tactil            = false,
                    CadenaBusqueda    = valorBusqueda,
                    Vista             = "BuscaArticuloUM",
                    FormP             = formP
                };
                var res = AyudaLayout.RealizarConsultaHorizontal(parametros);
                if (res == DialogResult.OK)
                {
                    resultado = 1;
                    return((BuscaArticulo)cache.ListaResultados[cache.PosicionSeleccionado]);
                }
                resultado = 2;
                return(null);
            }
            resultado = 0;
            return(null);
        }
示例#4
0
        public static ConsultaCliente BuscarCliente(ListaCamposBusqueda campos, out short resultado, string valorBusqueda, Form formP)
        {
            var c = new CampoBusqueda
            {
                NombreCampo = "IdDelegacion",
                Operador    = TOperador.Igual,
                Valor       = Parametros.IdDelegacion,
                Tipo        = System.Data.DbType.String,
                Permanente  = true
            };

            campos.Add(c);
            var criterioAuxiliares = new CriterioBusqueda
            {
                IdISOLang       = Settings.Default.Lenguaje,
                CampoOrdenacion = "Cliente",
                TipoOrden       = "ASC",
                NumPagina       = 1,
                TamanoPagina    = Settings.Default.TamanoPagina,
                CamposBusqueda  = campos,
                Entidad         = "ClienteDomicilio",
                Paginacion      = false,
                Operacion       = "F",
                Valor           = "",
                ValorClave      = "",
                CampoClave      = "IdDomicilio",
                EntidadFuncion  = "BuscaClienteConDomiEnt",
                ValorFuncion    = "'" + valorBusqueda + "'",
                EntidadVista    = "ClientesConDomicilio"
            };
            var r = CargaListaParaNavegar(criterioAuxiliares);

            if (r.ContadorResultados == 1)
            {
                resultado = 1;
                return((ConsultaCliente)r.ListaResultados[0]);
            }
            if (r.ContadorResultados > 1)
            {
                var cache = new CacheNavegacion {
                    ListaResultados = r.ListaResultados, CampoClave = "IdDomicilio", CampoOrden = "Cliente", TotalRegistros = r.ContadorResultados
                };
                var parametros = new ParametrosBusqueda
                {
                    TipoEntidad          = typeof(ConsultaCliente),
                    Cache                = cache,
                    CriterioB            = criterioAuxiliares,
                    ConfiguracionRejilla = null,
                    MetodoLectura        = CargaListaParaNavegar,
                    RutaXml              = VariablesGlobales.rutaAtributos,
                    Subtitulo            = "Busqueda de Clientes",
                    TamBloqueLec         = 20,
                    Titulo               = "Clientes",
                    MostrarCategorias    = false,
                    Tactil               = false,
                    CadenaBusqueda       = valorBusqueda,
                    Vista                = "ClientesConDomicilio",
                    FormP                = formP
                };
                DialogResult res = AyudaLayout.RealizarConsultaHorizontal(parametros);
                if (res == DialogResult.OK)
                {
                    resultado = 1;
                    return((ConsultaCliente)cache.ListaResultados[cache.PosicionSeleccionado]);
                }
                resultado = 2;
                return(null);
            }
            resultado = 0;
            return(null);
        }