protected void ButtonSecuencial_Click(object sender, EventArgs e)
        {
            try
            {
                SolicitudAvaluos objSolicitudAvaluos = null;
                objSolicitudAvaluos = new NG().ObtenerJustipreciacionAvaluos(this.TextBoxSecuencial.Text.Trim());

                if (objSolicitudAvaluos == null)
                {
                    this.LabelInfoSec.Text = "No existe";
                }
                else
                {
                    string SupRentable = null;
                    //existen justipreciaciones de renta que no tienen SuperficieRentableDictaminado, entonces se tomara la capturada
                    if (objSolicitudAvaluos.SuperficieRentableDictaminado.Value > 0 && String.IsNullOrEmpty(objSolicitudAvaluos.SuperficieRentableDictaminado.ToString()) == false)
                    {
                        //se toma como 1ra opcion, siempre la Sup. rentable dictaminada
                        SupRentable = objSolicitudAvaluos.SuperficieRentableDictaminado.ToString();
                    }
                    else//la sup. rentable que se toma, es la captura por el promovente en la solicitud
                    {
                        SupRentable = objSolicitudAvaluos.SuperficieRentable.ToString();
                    }

                    this.LabelInfoSec.Text = "Estatus: " + objSolicitudAvaluos.Estatus +
                                             "</br>Estado: " + objSolicitudAvaluos.EstadoDescripcion +
                                             "</br>Mpo: " + objSolicitudAvaluos.MunicipioDescripcion +
                                             "</br>CP: " + objSolicitudAvaluos.CP +
                                             "</br># ext: " + objSolicitudAvaluos.NoExterior +
                                             "</br>Fecha Dictamen: " + objSolicitudAvaluos.FechaDictamen +
                                             "</br>Sup. m2 : " + SupRentable +
                                             "</br>Unidad de medida rentable: " + objSolicitudAvaluos.UnidadMedidaRentable +
                                             "</br>Monto Dictaminado $: " + objSolicitudAvaluos.MontoDictaminado;
                }
            }
            catch (Exception ex)
            {
                this.LabelInfoSec.Text = ex.Message;
            }
        }
        public static Respuesta ObtenerJustipreciacionSecuencial(string secuencial, int IdPais, int IdEstado, int IdMunicipio, int IdInmueble)
        {
            Respuesta      Respuesta        = new Respuesta();
            ControladorBUS cBus             = new ControladorBUS();
            string         SupRentable      = null;
            string         MontoDictaminado = null;
            NG_Inmueble    nInm             = new NG_Inmueble();
            bool           valCP            = false;

            try
            {
                List <SolicitudAvaluos> LsolAvaluos = cBus.ObtenerJustipreciacionAvaluos(secuencial);

                ModeloNegocios.InmuebleArrto Inmueble = new NG_InmuebleArrto().ObtenerInmuebleArrto(System.Convert.ToInt32(IdInmueble));

                if (Inmueble.IdPais != Constantes.IdMexico)
                {
                    Respuesta.Mensaje   = "El secuencial de justipreciación debe ser para un inmueble nacional. Favor de validar tus datos";
                    Respuesta.respuesta = false;
                    return(Respuesta);
                }

                if (LsolAvaluos == null)
                {
                    Respuesta.respuesta = false;
                    Respuesta.Mensaje   = "No se encontró ningun resultado en la busqueda del secuencial. Favor de validar tus datos";
                    return(Respuesta);
                }

                if (LsolAvaluos.Count == 0)
                {
                    Respuesta.respuesta = false;
                    Respuesta.Mensaje   = "No se encontró ningun resultado en la busqueda del secuencial. Favor de validar tus datos";
                    return(Respuesta);
                }

                SolicitudAvaluos solAvaluos = LsolAvaluos.FirstOrDefault();

                if (solAvaluos.Estatus.ToUpper() == "CANCELADO")
                {
                    Respuesta.respuesta = false;
                    Respuesta.Mensaje   = "El estatus de la justipreciación es cancelado";
                    return(Respuesta);
                }

                if (nInm.QuitarAcentosTexto(solAvaluos.EstadoDescripcion.Replace(" ", "").ToUpper()) == nInm.QuitarAcentosTexto(Inmueble.NombreEstado.Replace(" ", "").ToUpper()) && nInm.QuitarAcentosTexto(solAvaluos.MunicipioDescripcion.Replace(" ", "").ToUpper()) == nInm.QuitarAcentosTexto(Inmueble.NombreMunicipio.Replace(" ", "").ToUpper()))
                {
                    valCP = true;

                    if (!string.IsNullOrEmpty(solAvaluos.CP))
                    {
                        var res  = solAvaluos.CP.Trim().Replace(" ", "").PadLeft(5, '0');
                        var res1 = Inmueble.CodigoPostal.Trim().Replace(" ", "").PadLeft(5, '0');

                        if (res != res1)
                        {
                            valCP = false;
                        }
                    }

                    if (!valCP)
                    {
                        Respuesta.respuesta = false;
                        Respuesta.Mensaje   = "El secuencial de justipreciación proporcionado no corresponde con el código postal  de la dirección del inmueble. Favor de validar tus datos";
                        return(Respuesta);
                    }
                }

                else
                {
                    Respuesta.respuesta = false;
                    Respuesta.Mensaje   = "El secuencial de justipreciación proporcionado no corresponde con la entidad federativa y municipio en la dirección del inmueble. Favor de validar tus datos";
                    return(Respuesta);
                }

                if (solAvaluos.SuperficieRentableDictaminado != null || solAvaluos.SuperficieRentable != null)
                {
                    if ((solAvaluos.SuperficieRentableDictaminado != null) && (solAvaluos.SuperficieRentableDictaminado > 0))
                    {
                        SupRentable = solAvaluos.SuperficieRentableDictaminado.Value.ToString("0.00");
                    }
                    if ((solAvaluos.SuperficieRentable != null) && (solAvaluos.SuperficieRentable > 0))
                    {
                        SupRentable = solAvaluos.SuperficieRentable.Value.ToString("0.00");
                    }
                }

                if (solAvaluos.MontoDictaminado != null)
                {
                    MontoDictaminado = solAvaluos.MontoDictaminado.Value.ToString("0.00");
                }

                if ((SupRentable == null && MontoDictaminado == null) || (Convert.ToDecimal(SupRentable) == 0 || Convert.ToDecimal(MontoDictaminado) == 0))
                {
                    string msjError = "El secuencial de justipreciación proporcionado con estatus de atención: " + solAvaluos.Estatus.ToUpper() + ", aun no cuenta con: <br/> * Monto dictaminado <br/> * Superficie rentable dictaminado ó capturada por el promovente en la solicitud de avalúo <br/> Es necesario que se cuente con esta información para poder registrarlo al contrato, por favor contacte al Indaabin";

                    if (solAvaluos.Estatus.ToUpper() != "CONCLUIDO")
                    {
                        msjError = "El secuencial de justipreciación proporcionado con estatus de atención: " + solAvaluos.Estatus.ToUpper() + ", aun no cuenta con: <br/> * Monto dictaminado <br/> * Superficie rentable dictaminado ó capturada por el promovente en la solicitud de avalúo <br/> Es necesario que se cuente con esta información para poder registrarlo al contrato, por favor contacte al Indaabin";
                    }

                    Respuesta.Mensaje   = msjError;
                    Respuesta.respuesta = false;
                    return(Respuesta);
                }

                DateTime?fechaDictamen = null;

                if (string.IsNullOrEmpty(solAvaluos.FechaDictamen.ToString()) == false)
                {
                    fechaDictamen = Convert.ToDateTime(solAvaluos.FechaDictamen.Substring(0, 10));
                }


                JustripreciacionContrato justipreciacion = new JustripreciacionContrato
                {
                    MontoDictaminado      = Convert.ToDecimal(MontoDictaminado),
                    SuperficieDictaminada = SupRentable,
                    UnidadMedidaSupRentableDictaminada = solAvaluos.UnidadMedidaRentable,
                    EstatusAtencion            = solAvaluos.Estatus,
                    NoGenerico                 = solAvaluos.NoGenerico,
                    FechaDictamen              = fechaDictamen,
                    descFechaDictamen          = fechaDictamen == null ? "" : fechaDictamen.Value.ToString("d"),
                    Secuencial                 = secuencial,
                    InstitucionJustipreciacion = solAvaluos.InstitucionDescripcion,
                };

                Respuesta.Justipreciacion = justipreciacion;
                Respuesta.respuesta       = true;
                Respuesta.Mensaje         = string.Empty;
            }

            catch (Exception ex)
            {
                Respuesta.respuesta = false;
                Respuesta.Mensaje   = "Hubo un problema al realizar la búsqueda del secuencial. Favor de contactar a tu administrador";
            }

            return(Respuesta);
        }
        public SolicitudAvaluos ObtenerJustipreciacionAvaluos(string pSecuencial)
        {
            ControladorBUS   ws_bus = new ControladorBUS();
            SolicitudAvaluos objSolicitudAvaluos = null;

            // MZT 15/08/2017
            var avaluo = JustipreciacionDAL.Consulta(pSecuencial);

            if (avaluo == null)
            {
                // MZT 15/08/2017
                var justipreciaciones = ws_bus.ObtenerJustipreciacionAvaluos(pSecuencial);

                if (justipreciaciones != null)
                {
                    objSolicitudAvaluos = justipreciaciones.FirstOrDefault();
                }
                // MZT 15/08/2017
            }
            else
            {
                //nombre de la institucion
                var instucion = AdministradorCatalogos.ObtenerCatalogoInstitucion().FirstOrDefault(x => x.IdValue == avaluo.InstitucionId);

                var MunicipioDes = AdministradorCatalogos.ObtenerCatalogoMunicipio().FirstOrDefault(x => x.IdValue == avaluo.MunicipioId);

                var EstadoDesc = AdministradorCatalogos.ObtenerCatalogoEstados().FirstOrDefault(x => x.IdValue == avaluo.EstadoId);

                var UnidadMedida = AdministradorCatalogos.ObtenerCatalogoUnidadMedida().FirstOrDefault(x => x.IdValue == Convert.ToInt32(avaluo.UnidadMedidaRentableDictaminado));

                // MZT 16/08/2017
                objSolicitudAvaluos = new SolicitudAvaluos
                {
                    Calle             = avaluo.Calle,
                    Cargo             = avaluo.Cargo,
                    Ciudad            = avaluo.Ciudad,
                    CP                = avaluo.CP,
                    Email             = avaluo.Email,
                    EstadoDescripcion = EstadoDesc != null ? EstadoDesc.Descripcion : string.Empty,
                    EstadoId          = avaluo.EstadoId,
                    Estatus           = "CONCLUIDO",
                    FechaDictamen     = avaluo.FechaDictamen.ToString("d"),//convertimos de datetime a string
                    //FechaDictamen = avaluo.FechaDictamen,
                    InstitucionDescripcion = instucion != null ? instucion.Descripcion : string.Empty,
                    InstitucionId          = avaluo.InstitucionId,
                    MontoDictaminado       = avaluo.MontoDictaminado,
                    MunicipioDescripcion   = MunicipioDes != null ? MunicipioDes.Descripcion : string.Empty,
                    MunicipioId            = avaluo.MunicipioId,
                    NoExterior             = avaluo.NoExterior,
                    NoGenerico             = avaluo.NoGenerico,
                    NoInterior             = avaluo.NoInterior,
                    NoSecuencial           = avaluo.NoSecuencial,

                    //Propietario = avaluo.Nombre,
                    Responsable                       = avaluo.Responsable,
                    SectorDescripcion                 = avaluo.SectorDescripcion,
                    SectorId                          = avaluo.SectorId,
                    SuperficieConstruida              = avaluo.SuperficieConstruida,
                    SuperficieConstruidaDictaminado   = avaluo.SuperficieConstruidaDictaminado,
                    SuperficieRentable                = avaluo.SuperficieRentable,
                    SuperficieRentableDictaminado     = avaluo.SuperficieRentableDictaminado,
                    SuperficieTerreno                 = avaluo.SuperficieTerreno,
                    SuperficieTerrenoDictaminado      = avaluo.SuperficieTerrenoDictaminado,
                    UnidadMedidaConstruida            = avaluo.UnidadMedidaConstruida,
                    UnidadMedidaConstruidaDictaminado = avaluo.UnidadMedidaConstruidaDictaminado,
                    UnidadMedidaRentable              = UnidadMedida != null ? UnidadMedida.Descripcion : string.Empty,
                    UnidadMedidaRentableDictaminado   = UnidadMedida != null ? UnidadMedida.Descripcion : string.Empty,
                    UnidadMedidaTerreno               = avaluo.UnidadMedidaTerreno,
                    UnidadMedidaTerrenoDictaminado    = avaluo.UnidadMedidaTerrenoDictaminado
                };
                // MZT 16/08/2017
            }

            return(objSolicitudAvaluos);
        }