/// <summary>
        /// Muestra el popup de búsqueda de Responsablees
        /// </summary>
        /// <returns>Vista Parcial</returns>
        public ActionResult FormularioBuscarResponsable(ResponsableRequest filtro)
        {
            FormularioResponsableModel modelo = new FormularioResponsableModel();

            filtro.EstadoRegistro = filtro.EstadoRegistroDescripcion == DatosConstantes.ParametrosEstadoRegistro.Activo ? DatosConstantes.EstadoRegistro.Activo : (filtro.EstadoRegistroDescripcion == DatosConstantes.ParametrosEstadoRegistro.Inactivo ? DatosConstantes.EstadoRegistro.Inactivo : null);

            filtro.CodigoIdioma = obtenerCodigoIdioma();

            modelo.ListaTipoDocumento.Add(new SelectListItem()
            {
                Value = string.Empty, Text = GenericoResource.EtiquetaSeleccionar, Selected = true
            });
            modelo.ListaTipoDocumento.AddRange(parametroValorService.BuscarValorPorSeccionParametro(new ParametroValorRequest()
            {
                CodigoIdentificador = DatosConstantes.ParametrosGenerales.TipoDocumento,
                IndicadorEmpresa    = true,
                CodigoSistema       = DatosConstantes.Sistema.CodigoSGI,
                CodigoEmpresa       = DatosConstantes.Empresa.CodigoElectroPeru,
                CodigoIdioma        = filtro.CodigoIdioma
            }).Result.Select(x => new SelectListItem()
            {
                Text     = x.Valor,
                Value    = x.CodigoValorString,
                Selected = false
            }));

            modelo.ListaCargo.Add(new SelectListItem {
                Value = string.Empty, Text = GenericoResource.EtiquetaSeleccionar
            });
            modelo.ListaCargo.AddRange(parametroValorService.BuscarValorPorSeccionParametro(new ParametroValorRequest()
            {
                CodigoIdentificador = DatosConstantes.ParametrosGenerales.Cargo,
                CodigoEmpresa       = DatosConstantes.Empresa.CodigoElectroPeru,
                CodigoSistema       = DatosConstantes.Sistema.CodigoSGI,
                IndicadorEmpresa    = true,
                CodigoIdioma        = filtro.CodigoIdioma
            }).Result.Select(x => new SelectListItem()
            {
                Value    = x.CodigoValorString,
                Text     = x.Valor,
                Selected = false
            }));

            return(PartialView(modelo));
        }
        public ActionResult FormularioResponsablePrincipal(ResponsableRequest filtro)
        {
            FormularioResponsableModel modelo = new FormularioResponsableModel();

            var requestIndicador = Request.QueryString["indicador"];

            if (requestIndicador != null ||
                (Session["PortalStracon"] != null && Session["PortalStracon"].ToString() == "true"))
            {
                Session["PortalStracon"] = "true";
                if (Session["CodigoIdioma"] == null)
                {
                    Session["CodigoIdioma"] = DatosConstantes.ParametrosGenerales.CodigoIdiomaEspaniol;
                    filtro.CodigoIdioma     = Session["CodigoIdioma"].ToString();

                    CultureInfo cultureInfo = null;
                    cultureInfo = new CultureInfo(filtro.CodigoIdioma);
                    if (cultureInfo == null)
                    {
                        cultureInfo = new CultureInfo(filtro.CodigoIdioma);
                    }

                    //Finally setting culture for each request
                    Thread.CurrentThread.CurrentUICulture = cultureInfo;
                    Thread.CurrentThread.CurrentCulture   = CultureInfo.CreateSpecificCulture(cultureInfo.Name);

                    var listaIdioma = parametroValorService.BuscarValorPorSeccionParametro(new ParametroValorRequest()
                    {
                        CodigoIdentificador = DatosConstantes.ParametrosGenerales.Idioma,
                        CodigoEmpresa       = DatosConstantes.Empresa.CodigoElectroPeru,
                        CodigoSistema       = DatosConstantes.Sistema.CodigoSGI,
                        IndicadorEmpresa    = true,
                        CodigoIdioma        = filtro.CodigoIdioma
                    }).Result.Select(x => new SelectListItem()
                    {
                        Value    = x.CodigoValorString,
                        Text     = x.Valor,
                        Selected = (x.CodigoValorString == filtro.CodigoIdioma)
                    }).ToList();
                    Session["ListaIdioma"] = listaIdioma;
                }
            }
            else
            {
                var cuentaUsuario = "alosno";//Pe.GyM.Security.Web.Session.HttpGyMSessionContext.CurrentAccount();
                if (Session["CodigoIdioma"] != null)
                {
                    filtro.CodigoIdioma = Session["CodigoIdioma"].ToString();
                }
                else
                {
                    filtro.CodigoIdioma = DatosConstantes.ParametrosGenerales.CodigoIdiomaPorDefecto;
                }
            }

            modelo.ListaGenero.Add(new SelectListItem {
                Value = string.Empty, Text = GenericoResource.EtiquetaSeleccionar
            });
            modelo.ListaGenero.AddRange(parametroValorService.BuscarValorPorSeccionParametro(new ParametroValorRequest()
            {
                CodigoIdentificador = DatosConstantes.ParametrosGenerales.TipoGenero,
                CodigoEmpresa       = DatosConstantes.Empresa.CodigoElectroPeru,
                CodigoSistema       = DatosConstantes.Sistema.CodigoSGI,
                IndicadorEmpresa    = true,
                CodigoIdioma        = filtro.CodigoIdioma
            }).Result.Select(x => new SelectListItem()
            {
                Value    = x.CodigoValorString,
                Text     = x.Valor,
                Selected = false
            }));

            modelo.ListaCargo.Add(new SelectListItem {
                Value = string.Empty, Text = GenericoResource.EtiquetaSeleccionar
            });
            modelo.ListaCargo.AddRange(parametroValorService.BuscarValorPorSeccionParametro(new ParametroValorRequest()
            {
                CodigoIdentificador = DatosConstantes.ParametrosGenerales.Cargo,
                CodigoEmpresa       = DatosConstantes.Empresa.CodigoElectroPeru,
                CodigoSistema       = DatosConstantes.Sistema.CodigoSGI,
                IndicadorEmpresa    = true,
                CodigoIdioma        = filtro.CodigoIdioma
            }).Result.Select(x => new SelectListItem()
            {
                Value    = x.CodigoValorString,
                Text     = x.Valor,
                Selected = false
            }));

            modelo.ListaTipoDocumento.Add(new SelectListItem {
                Value = string.Empty, Text = GenericoResource.EtiquetaSeleccionar
            });
            modelo.ListaTipoDocumento.AddRange(parametroValorService.BuscarValorPorSeccionParametro(new ParametroValorRequest()
            {
                CodigoIdentificador = DatosConstantes.ParametrosGenerales.TipoDocumento,
                CodigoEmpresa       = DatosConstantes.Empresa.CodigoElectroPeru,
                CodigoSistema       = DatosConstantes.Sistema.CodigoSGI,
                IndicadorEmpresa    = true,
                CodigoIdioma        = filtro.CodigoIdioma
            }).Result.Select(x => new SelectListItem()
            {
                Value    = x.CodigoValorString,
                Text     = x.Valor,
                Selected = false
            }));


            if (!string.IsNullOrEmpty(filtro.CodigoResponsable.ToString()))
            {
                var response = ResponsableService.BuscarResponsable(filtro);
                modelo.Responsable.CodigoResponsable   = response.Result[0].CodigoResponsable;
                modelo.Responsable.Nombres             = response.Result[0].Nombres;
                modelo.Responsable.ApellidoPaterno     = response.Result[0].ApellidoPaterno;
                modelo.Responsable.ApellidoMaterno     = response.Result[0].ApellidoMaterno;
                modelo.Responsable.CodigoCargo         = response.Result[0].CodigoCargo;
                modelo.Responsable.CodigoGenero        = response.Result[0].CodigoGenero;
                modelo.Responsable.CodigoTipoDocumento = response.Result[0].CodigoTipoDocumento;
                modelo.Responsable.NumeroDocumento     = response.Result[0].NumeroDocumento;
                modelo.Responsable.CorreoElectronico   = response.Result[0].CorreoElectronico;
            }

            return(View(modelo));
        }