//devuelve el num. de veces que se ha relacionado un SMOI con registros de emisión de opinión
        public int ObtenerCountUsoFolioSMOIenOpionion(int IdFolioSMOI, int IdInstitucion)
        {
            int?CountUsoFolioSMOIenOpionion;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    CountUsoFolioSMOIenOpionion = Conn.spuSelectCountUsoFolioSMOIenOpionion(IdFolioSMOI, IdInstitucion).FirstOrDefault();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerCountUsoFolioSMOIenOpionion: ", ex.Message));
                }
            }//using

            if (!CountUsoFolioSMOIenOpionion.HasValue)
            {
                CountUsoFolioSMOIenOpionion = 0;
            }


            return(CountUsoFolioSMOIenOpionion.Value);
        }
        //Acuse de Solicitud de emisión de opinión con la informacion del  inmueble para el que se aplica la solicitud
        public AcuseFolio ObtenerAcuseSMOI(int IdFolioAplicacionCpto)
        {
            AcuseFolio objAcuseOpinionFolio;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                //try
                //{
                objAcuseOpinionFolio = Conn.spuSelectAcuseSMOI(IdFolioAplicacionCpto)
                                       .Select(RegistroBD => new ModeloNegocios.AcuseFolio
                {
                    //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                    Folio                    = RegistroBD.FolioAplicacionConcepto.Value,
                    FechaRegistro            = RegistroBD.FechaRegistro,
                    HoraRegistro             = RegistroBD.HoraRegistro,
                    IdUsuarioRegistro        = RegistroBD.IdUsuarioRegistro.Value,
                    IdInstitucionSolicitante = RegistroBD.IdInstitucionUsrRegistro.Value,
                    CadenaOriginal           = RegistroBD.CadenaOriginal,
                    SelloDigital             = RegistroBD.SelloDigital,
                    TotalSMOIm2FactorX       = RegistroBD.TotalSMOIm2FactorX,
                    TotalSMOIm2FactorY       = RegistroBD.TotalSMOIFactorY,
                    TotalSMOIm2FactorZ       = RegistroBD.TotalSMOIm2FactorZ,
                    TotalSMOIm2              = RegistroBD.TotalSMOIm2,
                    LeyendaAnio              = RegistroBD.LeyendaAnio,
                    QR                = RegistroBD.QR,
                    LeyendaQR         = RegistroBD.Leyendaqr,
                    FechaAutorizacion = RegistroBD.FechaAutorizacion
                }).FirstOrDefault();
                //}
                //catch(Exception ex)
                //{
                //    throw new Exception(string.Format("ObtenerAcuseSMOI: ", ex.Message));
                //}
            }//using
            return(objAcuseOpinionFolio);
        }
        //recuperar el IdEstado y IdMpo de un inmueble
        public ModeloNegocios.InmuebleArrto ObtenerEstadoMpoXIdInmuebleArrto(int IdInmuebleArrto)
        {
            ModeloNegocios.InmuebleArrto objInmuebleArrto;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    objInmuebleArrto = Conn.spuSelectEstadoMpoXIdInmuebleArrto(IdInmuebleArrto)
                                       .Select(RegistroBD => new ModeloNegocios.InmuebleArrto
                    {
                        //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                        IdEstado    = RegistroBD.Fk_IdEstado,
                        IdMunicipio = RegistroBD.Fk_IdMunicipio
                    }).FirstOrDefault();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerEstadoMpoXIdInmuebleArrto: ", ex.Message));
                }
            }//using

            return(objInmuebleArrto);
        }
Beispiel #4
0
        public static EmisionOpinionSAEF ObtenerDatosEmisionSAEF(string FolioEmision)
        {
            EmisionOpinionSAEF ObjEmisionSAEF = null;

            using (ArrendamientoInmuebleEntities conexion = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    ObjEmisionSAEF = conexion.spuObtenerEmisionOpinion(FolioEmision).Select(x => new EmisionOpinionSAEF
                    {
                        IdAplicacionConcepto    = x.IdAplicacionConcepto,
                        FolioEmisionOpinion     = x.FolioAplicacionConcepto,
                        IdUsuarioEmisionOpinion = x.Fk_IdUsuarioRegistro,
                        FechaRegistro           = x.FechaRegistro
                    }).FirstOrDefault();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerDatosEmisionSAEF:{0}", ex.Message));
                }
            }

            return(ObjEmisionSAEF);
        }
Beispiel #5
0
        }//insert

        //Acuse de Solicitud de emisión de opinión con la informacion del  inmueble para el que se aplica la solicitud
        public AcuseFolio ObtenerAcuseSolicitudOpinionConInmueble(int IdFolioAplicacionCpto, string TipoArrendamiento) //TipoArrendamiento=Nuevo, Continuación, Sustitución,seguridad
        {
            AcuseFolio objAcuseOpinionFolio;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    objAcuseOpinionFolio = Conn.spuSelectAcuseEmisionOpinionXIdFolio(IdFolioAplicacionCpto, TipoArrendamiento)
                                           .Select(RegistroBD => new AcuseFolio
                    {
                        //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                        Folio                      = RegistroBD.FolioAplicacionConcepto.Value,
                        FechaRegistro              = RegistroBD.FechaRegistro,
                        HoraRegistro               = RegistroBD.HoraRegistro,
                        TipoArrendamientoDesc      = RegistroBD.DescripcionTipoArrendamiento,
                        ResultadoAplicacionOpinion = RegistroBD.Resultado,
                        IdUsuarioRegistro          = RegistroBD.IdUsuarioRegistro.Value,
                        IdInstitucionSolicitante   = RegistroBD.IdInstitucionUsrRegistro.Value,
                        CadenaOriginal             = RegistroBD.CadenaOriginal,
                        SelloDigital               = RegistroBD.SelloDigital,
                        LeyendaAnio                = RegistroBD.LeyendaAnio,

                        //RCA 13/08/2018
                        QR                = RegistroBD.QR,
                        LeyendaQR         = RegistroBD.leyendaqr,
                        FechaAutorizacion = RegistroBD.fechaautorizacion,

                        //objeto de negocio embedido, crear para poblar propiedades
                        InmuebleArrtoEmisionOpinion = new InmuebleArrto
                        {
                            IdPais = RegistroBD.Fk_IdPais,
                            //propiedades de inmueble nacional
                            IdEstado           = RegistroBD.Fk_IdEstado,
                            IdMunicipio        = RegistroBD.Fk_IdMunicipio,
                            IdLocalidadColonia = RegistroBD.Fk_IdLocalidad,
                            OtraColonia        = RegistroBD.otraColonia,
                            CodigoPostal       = RegistroBD.CodigoPostal,
                            //propiedades comunnes de cualquier inmueble
                            IdTipoVialidad = RegistroBD.Fk_IdTipoVialidad,
                            NombreVialidad = RegistroBD.NombreVialidad,
                            NumExterior    = RegistroBD.NumExterior,
                            NumInterior    = RegistroBD.NumInterior,
                            GeoRefLatitud  = RegistroBD.GeoRefLatitud,
                            GeoRefLongitud = RegistroBD.GeoRefLongitud,
                            //propiedades de inmueble extranjero
                            CodigoPostalExtranjero = RegistroBD.CodigoPostalExtranjero,
                            EstadoExtranjero       = RegistroBD.EstadoExtranjero,
                            CiudadExtranjero       = RegistroBD.CiudadExtranjero,
                            MunicipioExtranjero    = RegistroBD.MunicipioExtranjero
                        }
                    }).FirstOrDefault();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerAcuseSolicitudOpinionConInmueble: {0}", ex.Message));
                }
            }    //using

            return(objAcuseOpinionFolio);
        }//ObtenerCptosRespuestaValor
        //Obtener un Inmueble y sus correspondientes mvtos de emisión de opinión con otros otros conocceptos como: emisión de opinión y/o ContratoArrto.
        public List <ModeloNegocios.InmuebleArrto> ObtenerMvtosEmisionOpinionInmueblesRegistrados(int?IdInstitucion, int?FolioOpinion, int IdEstado, int IdMpo, int FolioSMOI, int?FolioSAEF)
        {
            List <ModeloNegocios.InmuebleArrto> ListInmuebleArrtoConAsociacionesCptos = null;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    List <spuSelectMvtosEmisionOpinionParaInmueblesArrto_Result> LSO = Conn.spuSelectMvtosEmisionOpinionParaInmueblesArrto(IdInstitucion, FolioOpinion, IdEstado, IdMpo, FolioSMOI, FolioSAEF).ToList();
                    ListInmuebleArrtoConAsociacionesCptos = Conn.spuSelectMvtosEmisionOpinionParaInmueblesArrto(IdInstitucion, FolioOpinion, IdEstado, IdMpo, FolioSMOI, FolioSAEF)
                                                            .Select(RegistroBD => new ModeloNegocios.InmuebleArrto
                    {
                        //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                        IdInmuebleArrendamiento = RegistroBD.IdInmuebleArrendamiento, //PK
                        IdInstitucion           = RegistroBD.Fk_IdInstitucion,
                        NombreCargo             = RegistroBD.CargoUsuarioRegistro,

                        //RCA 02/01/2018
                        //se comento ya que por medio del stored se obtiene este dato
                        // IdCargo = RegistroBD.Fk_IdCargo,

                        IdUsuarioRegistro      = RegistroBD.Fk_IdUsuarioRegistro,
                        FechaAltaMvtoAInmueble = RegistroBD.FechaRegistro,

                        NombreInmueble = RegistroBD.NombreInmueble,
                        IdPais         = RegistroBD.Fk_IdPais,
                        //propiedades de inmueble nacional
                        IdEstado           = RegistroBD.Fk_IdEstado,    //posible: null
                        IdMunicipio        = RegistroBD.Fk_IdMunicipio, //posible: null
                        IdLocalidadColonia = RegistroBD.Fk_IdLocalidad, //posible: null
                        IdTipoVialidad     = RegistroBD.Fk_IdTipoVialidad,
                        CodigoPostal       = RegistroBD.CodigoPostal,
                        //propiedades comunnes de cualquier inmueble
                        NombreVialidad = RegistroBD.NombreVialidad,
                        NumExterior    = RegistroBD.NumExterior,
                        NumInterior    = RegistroBD.NumInterior,
                        //propiedades de inmueble extranjero
                        CodigoPostalExtranjero = RegistroBD.CodigoPostalExtranjero,
                        EstadoExtranjero       = RegistroBD.EstadoExtranjero,
                        CiudadExtranjero       = RegistroBD.CiudadExtranjero,
                        MunicipioExtranjero    = RegistroBD.MunicipioExtranjero,

                        //RCA 06/07/2018
                        FolioSAEF = RegistroBD.FolioSAEF,

                        //propiedad que es un apuntador a objeto de negocio embedido: opcional
                        EmisionOpinion = new ModeloNegocios.AplicacionConcepto
                        {
                            IdAplicacionConcepto      = RegistroBD.IdAplicacionConcepto,
                            FolioAplicacionConcepto   = RegistroBD.FolioAplicacionConcepto,
                            TemaAplicacionConcepto    = RegistroBD.TemaAplicacionConcepto,
                            FolioSMOI_AplicadoOpinion = RegistroBD.FolioSMOI,
                            IsNotReusable             = RegistroBD.IsNotReusable
                        },

                        FolioContratoArrtoVsInmuebleArrendado = RegistroBD.FolioContratoAlQueAlplicaOpinion,//puede ser nulo, porque quizas el inmueble no se asocia a un ContratoArrto.
                        OtraColonia = RegistroBD.OtraColonia
                    }).OrderByDescending(o => o.EmisionOpinion.IdAplicacionConcepto).ThenByDescending(o => o.FolioContratoArrtoVsInmuebleArrendado).ToList();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("Ha ocurrido un error al recuperar emisiones de opinón de inmuebles [ObtenerMvtosEmisionOpinionInmueblesRegistrados]: ", ex.Message));
                }
            }
            return(ListInmuebleArrtoConAsociacionesCptos);
        }
Beispiel #7
0
        static void ReporteTotalEnInmuebles()
        {
            ArrendamientoInmuebleEntities ctx = new ArrendamientoInmuebleEntities();
            var    Contratos    = ctx.ContratoArrto;
            var    Vigentes     = ctx.ContratosVigentes;
            var    Inmuebles    = ctx.InmuebleArrendamiento;
            var    ReporteTotal = ctx.ReporteTotal;
            string SQLqqsaved   = @"D:\temp\SQLQQSAVED.txt";
            string LOGqqsaved   = @"D:\temp\LOGqqsaved.txt";
            string line;
            int    registrosErroneos = 1;
            int    registros         = 0;

            if (File.Exists(SQLqqsaved))
            {
                File.Delete(SQLqqsaved);
            }
            StreamWriter SqlFile = new StreamWriter(SQLqqsaved);

            if (File.Exists(LOGqqsaved))
            {
                File.Delete(LOGqqsaved);
            }
            StreamWriter LOGFile = new StreamWriter(LOGqqsaved);

            LOGFile.WriteLine("\nCS " + ConfigurationManager.ConnectionStrings["ArrendamientoInmuebleEntities"]);

            bool RegistrosIguales;

            foreach (var reporte in ReporteTotal)
            {
                registros++;
                line = ">" + reporte.NumeroSecuencial.ToString() + "/" + reporte.FolioContrato.ToString() + "<";
                var inmueblesEncontrados = (from inmueble in Inmuebles
                                            where EDS(reporte.Calle) == EDS(inmueble.NombreVialidad)
                                            select inmueble);
                foreach (var inenc in inmueblesEncontrados)
                {
                    RegistrosIguales = true;
                    line            += ">" + inenc.IdInmuebleArrendamiento.ToString() + "<";
                    //  1
                    string pais = GetPais((int)inenc.Fk_IdPais);
                    RegistrosIguales &= Result(line, out line, reporte.FkIdPais == inenc.Fk_IdPais, "-pais no coincide-" + reporte.FkIdPais.ToString() + "-" + inenc.Fk_IdPais.ToString() + "-");
                    //RegistrosIguales &= Result(line, out line, GetInstitucion((int)reporte.Fk_IdInstitucion).Equals(GetInstitucion((int)inenc.Fk_IdInstitucion)), "-institucion no coincide-");
                    RegistrosIguales &= Result(line, out line, reporte.Fk_IdTipoInmueble == inenc.Fk_IdTipoInmueble, "-institucion no coincide-" + reporte.Fk_IdTipoInmueble.ToString() + "-" + inenc.Fk_IdTipoInmueble.ToString() + "-");
                    RegistrosIguales &= Result(line, out line, reporte.Fk_IdEstado == inenc.Fk_IdEstado, "-Estado no coincide-" + reporte.Fk_IdEstado.ToString() + "-" + inenc.Fk_IdEstado.ToString() + "-");
                    RegistrosIguales &= Result(line, out line, reporte.Fk_IdMunicipio == inenc.Fk_IdMunicipio, "-Municipio no coincide-" + reporte.Fk_IdMunicipio.ToString() + "-" + inenc.Fk_IdMunicipio.ToString() + "-");
                    RegistrosIguales &= Result(line, out line, reporte.Fk_IdLocalidad == inenc.Fk_IdLocalidad, "-Localidad no coincide-" + reporte.Fk_IdLocalidad.ToString() + "-" + inenc.Fk_IdLocalidad.ToString() + "-");
                    //  5
                    RegistrosIguales &= Result(line, out line, reporte.Colonia == inenc.OtraColonia, "-Colonia no coincide-" + reporte.Colonia.ToString() + "-" + inenc.OtraColonia.ToString() + "-");
                    RegistrosIguales &= Result(line, out line, U.EDS(reporte.Calle).Equals(U.EDS(inenc.NombreVialidad)), "-Calle no coincide-" + reporte.Calle.ToString() + "-" + inenc.NombreVialidad.ToString() + "-");
                    RegistrosIguales &= Result(line, out line, U.EDS(reporte.NumExterior).Equals(U.EDS(inenc.NumExterior)), "-NumExterior no coincide-" + reporte.NumExterior + "-" + inenc.NumExterior + "-");
                    RegistrosIguales &= Result(line, out line, U.EDS(reporte.NumInterior).Equals(U.EDS(inenc.NumInterior)), "-NumInterior no coincide-" + reporte.NumInterior + "-" + inenc.NumInterior + "-");
                    RegistrosIguales &= Result(line, out line, U.EDS(reporte.CodigoPostal).Equals(U.EDS(inenc.CodigoPostal)), "-Codigo Postal no coincide-" + reporte.CodigoPostal + "-" + inenc.CodigoPostal + "-");

                    if (!RegistrosIguales)
                    {
                        LOGFile.WriteLine((registrosErroneos++).ToString() + line);
                    }
                }
            }

            LOGFile.WriteLine("Registros erroneos " + (registrosErroneos - 1).ToString());
            Console.WriteLine("Registros Erroneo " + (registrosErroneos - 1).ToString());
            Console.WriteLine("Registros " + (registros).ToString());
            SqlFile.Close();
            LOGFile.Close();
        }
        public Boolean Inserta(SolicitudAvaluosExt avaluo)
        {
            bool bandera = true;

            using (ArrendamientoInmuebleEntities db = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    var item = db.JustipreciacionExt.FirstOrDefault(x => x.Secuencial.Equals(avaluo.NoSecuencial));

                    if (item == null)
                    {
                        //RCA 22/08/2017
                        db.JustipreciacionExt.Add(new JustipreciacionExt
                        {
                            Secuencial                      = avaluo.NoSecuencial,
                            NoGenerico                      = avaluo.NoGenerico,
                            FechaDictamen                   = avaluo.FechaDictamen,// los dos son tipo date time
                            UnidadResponsable               = avaluo.UnidadResponsable,
                            TerrenoDictaminado              = avaluo.SuperficieTerrenoDictaminado,
                            Fk_IdUnidadMedidaTerrenoDict    = short.Parse(avaluo.UnidadMedidaTerrenoDictaminado),
                            RentableDictamindo              = avaluo.SuperficieRentableDictaminado,
                            Fk_IdUnidadMedidaRentableDict   = short.Parse(avaluo.UnidadMedidaRentableDictaminado),
                            ConstruidaDictaminado           = avaluo.SuperficieConstruidaDictaminado,
                            Fk_IdUnidadMedidaConstruidaDict = short.Parse(avaluo.UnidadMedidaConstruidaDictaminado),
                            MontoDictaminado                = avaluo.MontoDictaminado,
                            Fk_IdSector                     = (short)avaluo.SectorId,
                            Fk_IdInstitucion                = (short)avaluo.InstitucionId,
                            Calle                = avaluo.Calle,
                            NumExterior          = avaluo.NoExterior,
                            NumInterior          = avaluo.NoInterior,//puede ser nulo
                            Colonia              = avaluo.ColoniaInmueble,
                            CodigoPostal         = avaluo.CP,
                            Fk_IdEstado          = (short)avaluo.EstadoId,
                            Fk_IdMunicipio       = (short)avaluo.MunicipioId,
                            RutaDocumento        = avaluo.RutaDocumento,     //debe de guardar la ruta del documento
                            EstatusRegistro      = true,                     //modificar despues cuando se borre o actualize el dato
                            Fk_IdUsuarioRegistro = avaluo.IdUsuarioRegistro, //poder el usuario de lupita
                            FechaRegistro        = System.DateTime.Now,      //la fecha del servidor
                        });

                        try
                        {
                            db.SaveChanges();
                            //bandera = true;
                        }
                        catch (Exception ex)
                        {
                            throw new Exception(string.Format("Inserta: {0}", ex.Message));
                            //bandera = false;
                        }
                    }
                    else
                    {
                        bandera = false;
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("Inserta metodo: ", ex.Message));
                }
            }//using
            return(bandera);
        }
Beispiel #9
0
        static void BusquedaVigentes()
        {
            int NoUtiliRegsModified  = 0;
            int ContratosSinInmueble = 0;
            //int registrosIrreparables = 0;
            ArrendamientoInmuebleEntities ctx = new ArrendamientoInmuebleEntities();
            var    Contratos  = ctx.ContratoArrto;
            var    Vigentes   = ctx.ContratosVigentes;
            var    NoUtili    = ctx.NoUtiliAuditoria2019T;
            var    inmuebles  = ctx.InmuebleArrendamiento;
            string SQLqqsaved = @"D:\temp\SQLQQSAVED.txt";
            string LOGqqsaved = @"D:\temp\LOGqqsaved.txt";

            if (File.Exists(SQLqqsaved))
            {
                File.Delete(SQLqqsaved);
            }
            StreamWriter SqlFile = new StreamWriter(SQLqqsaved);

            if (File.Exists(LOGqqsaved))
            {
                File.Delete(LOGqqsaved);
            }
            StreamWriter LOGFile = new StreamWriter(LOGqqsaved);

            // DbContextTransaction trans = ctx.Database.BeginTransaction();

            // ctx.Database.Log = LOGFile.Write; // produce demasiado texto

            //ctx.NoUtiliAuditoria2019P();
            LOGFile.WriteLine("Regeneramos la tabla NoUtili");

            LOGFile.WriteLine("\nCS " + ConfigurationManager.ConnectionStrings["ArrendamientoInmuebleEntities"]);

            try
            {
                foreach (var vigente in Vigentes)
                {
                    // localizamos el inmueble del contrato vigente via la relacion inversa y la condición es:
                    // que el IDInmueble de contrao sea igual al de la relación inversa y que
                    // el folio del contrato vigente sea igual al folio del contrato (de la tabla de contratos)
                    // de esta forma estamos probando la relación inversa
                    // result contiene los contratos vigentes que estan en la base cuyo inmueble lo podemos encontrar
                    // aun es necesaro verificar que los datos del inmueble sean corretos
                    var result = (from contrato in Contratos
                                  join relacionInv in NoUtili
                                  on contrato.Fk_IdInmuebleArrendamiento equals relacionInv.IdInmuebleArrendamiento
                                  where vigente.FolioContrato == contrato.FolioContratoArrto
                                  select new
                    {
                        FolioContrato = contrato.FolioContratoArrto,
                        IdContrato = contrato.IdContratoArrto,
                        IdInmueble = contrato.Fk_IdInmuebleArrendamiento,
                        Inst = contrato.Fk_IdInstitucion,
                        FechaFin = contrato.FechaFinOcupacion,
                        FechaFinVigente = vigente.FechaContratoHasta,
                        IdNoUtili = relacionInv.Identificador
                    });
                    switch ((int)vigente.FolioContrato)
                    {
                    case 44360:
                    case 42058:
                    case 44421:
                    case 40014:
                    case 40015:
                        LOGFile.WriteLine("Contrato Vigente Corregido " + vigente.FolioContrato);
                        break;

                    default:
                        break;
                    }
                    int numeroRegistros = result.Count();
                    if (numeroRegistros > 0)
                    {
#if MOSTRARBUENOS
                        LOGFile.WriteLine("C /" + vigente.FolioContrato + "/ " + numeroRegistros);
                        foreach (var r in result)
                        {
                            DateTime fecha = r.FechaFin != null ? (DateTime)r.FechaFin :
                                             new DateTime(1990, 1, 1);
                            DateTime fechaVigente = r.FechaFinVigente != null ? (DateTime)r.FechaFinVigente :
                                                    new DateTime(1990, 1, 1);
                            LOGFile.WriteLine("-" + r.FolioContrato + "-" + r.IdContrato + "-" +
                                              r.IdInmueble + "-" +
                                              r.Inst + "-" +
                                              fecha + "-" + fechaVigente);
                        }
#endif
                    }
                    else
                    {
                        // Aqui tenemos un contrato vigente que no está relacionado con un contrato en la relación inversa
                        // porque el folio del vigente no esta en la tabla NOUTILI, se verifico que los contratos vigentes todos tienen folio Contrato
                        // y que la tabla de inmuebles todos tiene IdInmuebleArrendamiento
                        // Vamos a identificar porque la tabla NOUTILI esta incompleta, primero vamos a corregir NOUTILI.
                        // Es necesario identificar el numero minimo de condiciones para corregir el problema.
                        // Lo que debe de ocurrir es que este programa deje de encontrar registros que caigan en esta parte.
                        // vamos a tratar de reconstruir la relación via los datos del inmueble
                        // incompleto contiene los contratos vigentes que estan en la base y no tienen un inmueble localizable
                        var incompleto = (from contrato in Contratos
                                          where vigente.FolioContrato == contrato.FolioContratoArrto
                                          select new
                        {
                            FolioContrato = contrato.FolioContratoArrto,
                            IdContrato = contrato.IdContratoArrto,
                            Inst = contrato.Fk_IdInstitucion,
                            FechaFin = contrato.FechaFinOcupacion,
                            FechaFinVigente = vigente.FechaContratoHasta
                        });
                        LOGFile.WriteLine("\nI /" + vigente.FolioContrato + "/ " + numeroRegistros + "-" + vigente.Calle + "-" + vigente.NumExterior + " " +
                                          vigente.CodigoPostal);
                        // Para estos contratos vigentes hemos encontrado un cntrato que satisface
                        // que los folios de contrato son iguales
                        foreach (var r in incompleto)
                        {
                            DateTime fecha = r.FechaFin != null ? (DateTime)r.FechaFin :
                                             new DateTime(1990, 1, 1);
                            DateTime fechaVigente = r.FechaFinVigente != null ? (DateTime)r.FechaFinVigente :
                                                    new DateTime(1990, 1, 1);
                            LOGFile.WriteLine("-" + r.FolioContrato + "-" + r.IdContrato + "-" +
                                              r.Inst + "-" +
                                              fecha + "-" + fechaVigente);

                            //
                            // Vamos a buscar el inmueble por calle y numero exterior usando el idinmueble del contrato y comparando la
                            // direccion del inmueble y del contrato vigente
                            // si funciona con el IdInmueble buscaremos el contrato para tratar de cuadrar información
                            // Puede ocurrir que haya correcciones manuales en los nombres de las calles
                            var busqInm = (from inmueble in inmuebles
                                           where vigente.Calle.Replace("á", "a")
                                           .Replace("é", "e")
                                           .Replace("í", "i")
                                           .Replace("ó", "o")
                                           .Replace("ú", "u")
                                           .Replace("Á", "A")
                                           .Replace("É", "E")
                                           .Replace("Í", "I")
                                           .Replace("Ó", "O")
                                           .Replace("Ú", "U") ==
                                           inmueble.NombreVialidad.Replace("á", "a")
                                           .Replace("é", "e")
                                           .Replace("í", "i")
                                           .Replace("ó", "o")
                                           .Replace("ú", "u")
                                           .Replace("Á", "A")
                                           .Replace("É", "E")
                                           .Replace("Í", "I")
                                           .Replace("Ó", "O")
                                           .Replace("Ú", "U") &
                                           vigente.NumExterior == inmueble.NumExterior &
                                           vigente.CodigoPostal == inmueble.CodigoPostal
                                           select inmueble);
                            switch (busqInm.Count())
                            {
                            case 0:
                                LOGFile.WriteLine("No se encontró in inmueble para el contrato vigente " + vigente.ID);
                                break;

                            case 1:
                                LOGFile.WriteLine("Candidato");
                                foreach (var inmueb in busqInm)
                                {
                                    var regNoUtil = (from relinv in NoUtili
                                                     where vigente.Calle == relinv.NombreVialidad &
                                                     vigente.NumExterior == relinv.NumExterior &
                                                     vigente.CodigoPostal == relinv.CodigoPostal.ToString()
                                                     select new
                                    {
                                        FolioContrato = vigente.FolioContrato,
                                        IDNoUtili = relinv.Identificador
                                    });
                                    LOGFile.WriteLine("-Inmueble " + inmueb.IdInmuebleArrendamiento + "-" +
                                                      inmueb.NombreVialidad + "-" +
                                                      inmueb.NumExterior + "-" +
                                                      inmueb.CodigoPostal + "- regs " + regNoUtil.Count());
                                    switch (regNoUtil.Count())
                                    {
                                    case 0:
                                        LOGFile.WriteLine("No se encontro un registro NoUtili para este contrato");
                                        break;

                                    case 1:
                                        foreach (var rn in regNoUtil)
                                        {
                                            LOGFile.WriteLine(" NoUtli record " + rn.IDNoUtili);
                                            SqlFile.WriteLine("Update NoUtiliAuditoria2019T set FolioContratoArrto = " + r.FolioContrato +
                                                              ", IdInmuebleArrendamiento = " + inmueb.IdInmuebleArrendamiento +
                                                              " where Identificador = " + rn.IDNoUtili);
                                        }
                                        break;

                                    default:
                                        LOGFile.WriteLine("Encontramos mas de un registro el NoUtili **** O J O");
                                        foreach (var rn in regNoUtil)
                                        {
                                            LOGFile.WriteLine(" NoUtli record " + rn.IDNoUtili);
                                        }
                                        break;
                                    }
                                }
                                break;

                            default:
                                LOGFile.WriteLine("Encontramos mas de un candidato");
                                foreach (var inmueb in busqInm)
                                {
                                    LOGFile.WriteLine("-Inmueble " + inmueb.IdInmuebleArrendamiento + "-" + inmueb.NombreVialidad + "-" +
                                                      inmueb.NumExterior + "-" + inmueb.CodigoPostal);
                                }
                                break;
                            }
                        }
                    }
                }

                //trans.Commit();
            }
            catch (Exception ex)
            {
                //trans.Rollback();
                LOGFile.WriteLine("Error al actualizar NoUtili " + ex.ToString());
            }
            LOGFile.WriteLine("Registros NoUtili modificados " + NoUtiliRegsModified);
            LOGFile.WriteLine("Contratos sin Inmueble " + ContratosSinInmueble);
            SqlFile.Close();
            LOGFile.Close();
        }
Beispiel #10
0
        /*
         * Todos los registros vigentes que proporcionó el usuario están en el Reporte Total
         */

        static void BusquedaVigentesEnReporteTotal()
        {
            ArrendamientoInmuebleEntities ctx = new ArrendamientoInmuebleEntities();
            var    Contratos    = ctx.ContratoArrto;
            var    Vigentes     = ctx.ContratosVigentes;
            var    Inmuebles    = ctx.InmuebleArrendamiento;
            var    ReporteTotal = ctx.ReporteTotal;
            string SQLqqsaved   = @"D:\temp\SQLQQSAVED.txt";
            string LOGqqsaved   = @"D:\temp\LOGqqsaved.txt";
            string line;
            int    registrosErroneos = 1;
            int    registros         = 0;

            if (File.Exists(SQLqqsaved))
            {
                File.Delete(SQLqqsaved);
            }
            StreamWriter SqlFile = new StreamWriter(SQLqqsaved);

            if (File.Exists(LOGqqsaved))
            {
                File.Delete(LOGqqsaved);
            }
            StreamWriter LOGFile = new StreamWriter(LOGqqsaved);

            LOGFile.WriteLine("\nCS " + ConfigurationManager.ConnectionStrings["ArrendamientoInmuebleEntities"]);

            bool RegistrosIguales = true;

            foreach (var vigente in Vigentes)
            {
                registros++;
                line = ">" + vigente.ID.ToString() + "/" + vigente.FolioContrato.ToString() + "<";
                var totalEncontrados = (from total in ReporteTotal
                                        where total.FolioContrato == vigente.FolioContrato
                                        select total);
                foreach (var total in totalEncontrados)
                {
                    RegistrosIguales = true;
                    //  1
                    RegistrosIguales &= Result(line, out line, vigente.FolioContrato == total.FolioContrato, "");
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.Propietario).Equals(U.EDS(total.Propietario)), "");
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.Responsable).Equals(U.EDS(total.Responsable)), "");
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.Promovente).Equals(U.EDS(total.Promovente)), "");
                    string pais = GetPais(total.FkIdPais).ToUpper();
                    //  5
                    RegistrosIguales &= Result(line, out line, vigente.Pais.Equals(pais), ""); // no letra y numero
                    //if (vigente.Estado + "-" + total.Estado); // total vacio
                    string estado = GetEstado((int)total.Fk_IdEstado).ToUpper();
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.Estado).Equals(U.EDS(estado)) || U.IsExcelNull(estado), "-Edo no vacio-");
                    //if (vigente.Municipio + "-" + total.Municipio); // total vacio
                    string municipio = GetMunicipio((int)total.Fk_IdMunicipio).ToUpper();
                    if (!(U.EDS(vigente.Municipio).Equals(U.EDS(municipio)) || U.IsExcelNull(municipio)))
                    {
                        SqlFile.WriteLine("{0}-{1}/{2}-{3}-{4}", total.FolioContrato, vigente.ID, total.Fk_IdMunicipio, municipio, vigente.Municipio);
                    }
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.Municipio).Equals(U.EDS(municipio)) || U.IsExcelNull(municipio), "-Municipio no vacio-");
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.Colonia).Equals(U.EDS(total.Colonia)) || U.IsExcelNull(total.Colonia), "");
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.Calle).Equals(U.EDS(total.Calle)), "");
                    //  10
                    RegistrosIguales &= Result(line, out line, vigente.CodigoPostal.Equals(total.CodigoPostal), "");
                    if (!U.EDS(vigente.NumInterior).Equals(U.EDS(total.NumInterior)))
                    {
                        SqlFile.WriteLine("{0}-{1}/{2}-{3}-{4}", total.FolioContrato, vigente.ID, total.Fk_IdMunicipio, municipio, vigente.Municipio);
                    }
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.NumInterior).Equals(U.EDS(total.NumInterior)), ""); // sin info los dos

                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.NumExterior).Equals(U.EDS(total.NumExterior)), "Numero ext dif");
                    RegistrosIguales &= Result(line, out line, (U.IsExcelNull(vigente.Ciudad) && U.IsExcelNull(total.Ciudad)) || vigente.Ciudad.Equals(total.Ciudad), ""); // nulo blanco
                    // O J  O
                    // Otro uso inmueble: preguntar si es importante o quen gana o como se define
                    RegistrosIguales &= Result(line, out line, vigente.OtroUsoInmueble.Equals(total.OtroUsoInmueble) || true, "");

                    //  15
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.TipoContrato).Equals(U.EDS(total.TipoContrato)), "");
                    RegistrosIguales &= Result(line, out line, (U.IsExcelNull(vigente.TipoOcupacion) && U.IsExcelNull(total.TipoOcupacion)) || vigente.TipoOcupacion.Equals(total.TipoOcupacion), ""); // vacio NULL
                    RegistrosIguales &= Result(line, out line, vigente.DescripcionTipoArrendamiento.Equals(total.DescripcionTipoArrendamiento), "");
                    //if (vigente.TipoInmueble + "-" + total.TipoInmueble); // total sin info
                    string tipoInmueble = GetTipoInmueble((int)total.Fk_IdTipoInmueble).ToString();
                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.TipoInmueble).Equals(U.EDS(tipoInmueble)), "-TipoInmueble no vacio-");
                    //if (vigente.TipoUsoInmueble + "-" + total.TipoUsoInmueble); // total sin info
                    string tipoUsoInmueble = GetTipoUsoInmueble((int)total.Fk_IdTipoUsoInmueble).ToString();

                    RegistrosIguales &= Result(line, out line, U.EDS(vigente.TipoUsoInmueble).Equals(U.EDS(tipoUsoInmueble)) || U.IsExcelNull(tipoUsoInmueble), "-TipoUsoInmueble no vacio-");
                    //  20
                    RegistrosIguales &= Result(line, out line, vigente.AreaOcupadaM2 == total.AreaOcupadaM2, "");
                    RegistrosIguales &= Result(line, out line, (decimal)vigente.MontoPagoMensual == total.MontoPagoMensual, "");
                    RegistrosIguales &= Result(line, out line, (decimal)vigente.CuotaMantenimiento == total.CuotaMantenimiento, "");
                    RegistrosIguales &= Result(line, out line, (decimal)vigente.MontoPagoPorCajonesEstacionamiento == total.MontoPagoPorCajonesEstacionamiento, "");
                    RegistrosIguales &= Result(line, out line, (decimal)vigente.MontoDictaminado == total.MontoDictaminado, "");
                    //  25
                    RegistrosIguales &= Result(line, out line, (decimal)vigente.RentaUnitariaMensual == total.RentaUnitariaMensual, "");
                    RegistrosIguales &= Result(line, out line, (decimal)vigente.MontoAnterior == total.MontoAnterior, "");
                    RegistrosIguales &= Result(line, out line, vigente.SMOI == total.SMOI, "");
                    RegistrosIguales &= Result(line, out line, vigente.TablaSmoi.Equals(total.TablaSMOI), "");
                    RegistrosIguales &= Result(line, out line, (DateTime)vigente.Fecha == Convert.ToDateTime(total.Fecha), "");
                    //  30
                    RegistrosIguales &= Result(line, out line, (DateTime)vigente.FechaContratoDesde == Convert.ToDateTime(total.FechaContratoDesde), "");
                    RegistrosIguales &= Result(line, out line, (DateTime)vigente.FechaContratoHasta == Convert.ToDateTime(total.FechaCntratoHasta), "");
                    RegistrosIguales &= Result(line, out line, (DateTime)vigente.FechaDictamen == Convert.ToDateTime(total.FechaDictamen), "");
                    RegistrosIguales &= Result(line, out line, (U.IsExcelNull(vigente.DescripcionTipoContratacion) && U.IsExcelNull(total.DescripcionTipoContratacion)) || U.EDS(vigente.DescripcionTipoContratacion).Equals(U.EDS(total.DescripcionTipoContratacion)), "");
                    RegistrosIguales &= Result(line, out line, vigente.ResultadoOpinion.Equals(total.ResultadosOpinion), "");
                    //  35
                    RegistrosIguales &= Result(line, out line, vigente.RIUF.Equals(total.RIUF), "");
                    if (!RegistrosIguales)
                    {
                        LOGFile.WriteLine((registrosErroneos++).ToString() + line);
                    }
                }
            }

            LOGFile.WriteLine("Registros erroneos " + (registrosErroneos - 1).ToString());
            Console.WriteLine("Registros Erroneo " + (registrosErroneos - 1).ToString());
            Console.WriteLine("Registros " + (registros).ToString());
            SqlFile.Close();
            LOGFile.Close();
        }
        //Insert de un Contrato Arrto.
        //Devuelve el Folio de contrato
        public int InsertContratoArrto(ModeloNegocios.ContratoArrto objContratoArrto)
        {
            int FolioContrato = 0;

            System.Data.Entity.Core.Objects.ObjectParameter parametroFolioContrato = new System.Data.Entity.Core.Objects.ObjectParameter("FolioContrato", FolioContrato);

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    Conn.spuInsertContratoArrto(
                        objContratoArrto.Fk_IdTipoContrato,      //1=Nac, 2=Ext u 3=OtrasFig
                        objContratoArrto.Fk_IdTipoArrendamiento, //Nuevo, Sust o Cont
                        objContratoArrto.Fk_IdTipoContratacion,  //Automatico, Dictamiando
                        objContratoArrto.Fk_IdInmuebleArrendamiento,
                        objContratoArrto.Fk_NumContratoHistorico,
                        objContratoArrto.Fk_IdContratoArrtoPadre,
                        objContratoArrto.Fk_IdTipoUsoInm,    //del BUS
                        objContratoArrto.OtroUsoInmueble,
                        objContratoArrto.Fk_IdTipoOcupacion, //Comodato, Prestamo, Conscesión (aplicable solo a Arrendamiento de Otras Fig.)
                        objContratoArrto.OtroTipoOcupacion,
                        objContratoArrto.Fk_IdTipoMoneda,
                        objContratoArrto.Fk_IdInstitucion,
                        objContratoArrto.NombreInstitucion,
                        objContratoArrto.FechaInicioOcupacion,
                        objContratoArrto.FechaFinOcupacion,
                        objContratoArrto.AreaOcupadaM2,
                        objContratoArrto.MontoPagoMensual,
                        objContratoArrto.MontoPagoPorCajonesEstacionamiento,
                        objContratoArrto.CuotaMantenimiento,
                        objContratoArrto.PtjeImpuesto,
                        objContratoArrto.FolioEmisionOpinion, //se define como atributo y no como objeto, porque solo se 1 dato: el Id
                        objContratoArrto.NumeroDictamenExcepcionFolioSMOI,
                        objContratoArrto.RIUF,
                        objContratoArrto.Observaciones,
                        objContratoArrto.PropietarioInmueble,
                        objContratoArrto.FuncionarioResponsable,
                        objContratoArrto.Fk_IdUsuarioRegistro,
                        objContratoArrto.CargoUsuarioRegistro,
                        //objetos de Persona Referencia
                        //titular del OIC
                        objContratoArrto.PersonaReferenciaTitularOIC.NombreCargo,
                        objContratoArrto.PersonaReferenciaTitularOIC.Nombre,
                        objContratoArrto.PersonaReferenciaTitularOIC.ApellidoPaterno,
                        objContratoArrto.PersonaReferenciaTitularOIC.ApellidoMaterno,
                        objContratoArrto.PersonaReferenciaTitularOIC.Email,
                        //Capturista
                        objContratoArrto.PersonaReferenciaCapturista.NombreCargo,
                        objContratoArrto.PersonaReferenciaCapturista.Nombre,
                        objContratoArrto.PersonaReferenciaCapturista.ApellidoPaterno,
                        objContratoArrto.PersonaReferenciaCapturista.ApellidoMaterno,
                        objContratoArrto.PersonaReferenciaCapturista.Email,
                        //Objeto de Justipreciacion
                        objContratoArrto.JustripreciacionContrato.Secuencial,
                        objContratoArrto.JustripreciacionContrato.SuperficieDictaminada,
                        objContratoArrto.JustripreciacionContrato.FechaDictamen,
                        objContratoArrto.JustripreciacionContrato.MontoDictaminado,
                        objContratoArrto.JustripreciacionContrato.EstatusAtencion,
                        objContratoArrto.JustripreciacionContrato.NoGenerico,
                        objContratoArrto.JustripreciacionContrato.UnidadMedidaSupRentableDictaminada,
                        // apartado de seguridad
                        objContratoArrto.CuentaConDictamen,
                        objContratoArrto.FechaDictamen,
                        //
                        objContratoArrto.CadenaOriginal,
                        objContratoArrto.SelloDigital,
                        objContratoArrto.QR,
                        parametroFolioContrato //parametro ouput
                        );

                    Conn.SaveChanges();

                    if (parametroFolioContrato == null)
                    {
                        throw new InvalidOperationException("No se pudo registrar el Contrato de Arrendamiento, vuelva a intentar o reporte a Sistemas");
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("InsertContratoArrto: {0}", ex.Message));
                }
            }//using

            if (parametroFolioContrato.Value != null)
            {
                FolioContrato = Convert.ToInt32(parametroFolioContrato.Value);
            }

            //parametro de retorno, regresa 0 si no hay insert, o el folio > 0 si se realizo el insert
            return(FolioContrato);
        }
        public bool GenerarConvenioModificatorio(Convenio Convenio, int IdUsuario, JustripreciacionContrato JustripreciacionContrato, ref string msjError, ref string fechaRegistro)
        {
            bool respuesta  = false;
            int  IdConvenio = 0;

            try
            {
                using (ArrendamientoInmuebleEntities aInmuebles = new ArrendamientoInmuebleEntities())
                {
                    Datos.ContratoArrto Contrato = aInmuebles.ContratoArrto.Where(x => x.FolioContratoArrto == Convenio.FolioContrato && x.EstatusRegistro == true).FirstOrDefault();

                    if (Contrato == null)
                    {
                        msjError = "No se encuentra el registro del contrato. Favor de contactar a tu administrador";
                        return(false);
                    }

                    if (Convenio.TieneNvoMonto == 1 && Convenio.ImporteRenta > Constantes.MONTO_MINIMO_SECUENCIAL)
                    {
                        JustipreciacionArrto justipreciacion = aInmuebles.JustipreciacionArrto.Where(x => x.Fk_IdContratoArrto == Contrato.IdContratoArrto && x.EstatusRegistro == true).FirstOrDefault();

                        if (justipreciacion != null)
                        {
                            if (Convenio.Secuencial == justipreciacion.Secuencial)
                            {
                                msjError = "El secuencial no puede ser igual al secuencial del contrato. Favor de validar tus datos";
                                return(false);
                            }

                            List <Convenio_Modificatorio> Lconvenio = aInmuebles.Convenio_Modificatorio.Where(x => x.Fk_IdJustipreciacion == Convenio.Secuencial).ToList();

                            if (Lconvenio != null)
                            {
                                if (Lconvenio.Count > 0)
                                {
                                    msjError = "El secuencial ingresado se encuentra relacionado a otro convenio modificatorio. Favor de validar tus datos";
                                    return(false);
                                }
                            }
                        }
                    }

                    IdConvenio = aInmuebles.Convenio_Modificatorio.Where(x => x.Fk_IdContratoArrto == Contrato.IdContratoArrto).Count();
                    IdConvenio = IdConvenio + 1;

                    using (TransactionScope transaccion = new TransactionScope())
                    {
                        Convenio_Modificatorio convenio = new Convenio_Modificatorio();
                        convenio.Fk_IdContratoArrto = Contrato.IdContratoArrto;
                        convenio.IdConvenio         = (short)IdConvenio;
                        convenio.FechaConvenio      = Convert.ToDateTime(Convenio.descFechaConvenio);
                        convenio.Nombre             = Convenio.NombreOIC;
                        convenio.Primer_Apellido    = Convenio.PApellidoOIC;
                        convenio.Segundo_Apellido   = Convenio.SApellidoOIC;
                        convenio.Nombre_Cargo       = Convenio.CargoOIC;
                        convenio.Email             = Convenio.CorreoOIC;
                        convenio.FechaEfecConvenio = Convert.ToDateTime(Convenio.DescFechaEfectoConvenio);

                        if (Convenio.TieneProrroga == 1)
                        {
                            convenio.FechaTerminacion = Convert.ToDateTime(Convenio.descFechaTermino);
                        }

                        if (Convenio.TieneNvaSuperfice == 1)
                        {
                            convenio.Nueva_Superficie = Convenio.SupM2;
                        }

                        if (Convenio.TieneNvoMonto == 1)
                        {
                            convenio.Importe_Renta = Convenio.ImporteRenta;
                        }



                        if (Convenio.TieneNvoMonto == 1 && Convenio.ImporteRenta > Constantes.MONTO_MINIMO_SECUENCIAL)
                        {
                            convenio.Fk_IdJustipreciacion = Convenio.Secuencial;
                        }

                        convenio.FechaRegistro = DateTime.Now;
                        convenio.Institución_justipreciacion = 1;

                        aInmuebles.Convenio_Modificatorio.Add(convenio);
                        aInmuebles.SaveChanges();
                        fechaRegistro          = convenio.FechaRegistro.ToString("d");
                        Convenio.FechaRegistro = convenio.FechaRegistro;

                        Convenio.IdConvenio          = convenio.IdConvenioModif;
                        Convenio.ConsecutivoConvenio = convenio.IdConvenio;

                        if (Convenio.TieneNvoMonto == 1 && Convenio.ImporteRenta > Constantes.MONTO_MINIMO_SECUENCIAL)
                        {
                            convenio.Fk_IdJustipreciacion = Convenio.Secuencial;
                        }

                        aInmuebles.SaveChanges();

                        transaccion.Complete();
                        respuesta = true;
                    }

                    Convenio.ConsecutivoConvenio = IdConvenio;
                    Convenio.FolioConvenio       = Convenio.FolioContrato + "-" + IdConvenio.ToString().PadLeft(2, '0');
                }
            }

            catch (Exception ex)
            {
                throw new Exception(string.Format("GenerarConvenioModificatorio:{0}", ex.Message));
            }

            return(respuesta);
        }
        //Obtener ContratoArrto. registrados
        public List <ModeloNegocios.ContratoArrto> ObtenerContratosArrtoRegistrados(int?IdInstitucion, int?FolioContratoArrto, byte?TipoContato)
        {
            List <ModeloNegocios.ContratoArrto> ListContratosArrtoRegistrados;

            ListContratosArrtoRegistrados = null;
            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    var oList = Conn.spuSelectContratoArrto(IdInstitucion, FolioContratoArrto, TipoContato).ToList();

                    if (oList != null)
                    {
                        //ListContratosArrtoRegistrados = Conn.spuSelectContratoArrto(IdInstitucion, FolioContratoArrto, TipoContato)
                        ListContratosArrtoRegistrados = oList
                                                        .Where(RegistroBD => RegistroBD.EstatusRegistroContratoArrto != false)
                                                        .Select(RegistroBD => new ModeloNegocios.ContratoArrto
                        {
                            //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                            FolioContratoArrto           = RegistroBD.FolioContratoArrto,
                            strFechaRegistro             = RegistroBD.FechaRegistro,
                            DescripcionTipoContrato      = RegistroBD.DescripcionTipoContrato,
                            DescripcionTipoArrendamiento = RegistroBD.DescripcionTipoArrendamiento,
                            DescripcionTipoOcupacion     = RegistroBD.DescripcionTipoOcupacion,
                            DescripcionTipoContratacion  = RegistroBD.DescripcionTipoContratacion,
                            PeriodoOcupacion             = RegistroBD.PeriodoContratacion,
                            strFechaInicioOcupacion      = RegistroBD.FechaInicioOcupacion,
                            strFechaFinOcupacion         = RegistroBD.FechaFinOcupacion,
                            PropietarioInmueble          = RegistroBD.PropietarioInmueble,
                            FuncionarioResponsable       = RegistroBD.FuncionarioResponsable,
                            RIUF                  = RegistroBD.RIUF,
                            Fk_IdTipoUsoInm       = RegistroBD.Fk_IdTipoUsoInm.Value,
                            Fk_IdTipoMoneda       = RegistroBD.Fk_IdTipoMoneda,
                            Fk_IdTipoContratacion = RegistroBD.Fk_IdTipoContratacion,
                            Observaciones         = RegistroBD.Observaciones,
                            AreaOcupadaM2         = RegistroBD.AreaOcupadaM2,
                            MontoPagoMensual      = RegistroBD.MontoPagoMensual,
                            MontoPagoPorCajonesEstacionamiento = RegistroBD.MontoPagoPorCajonesEstacionamiento,
                            CuotaMantenimiento  = RegistroBD.CuotaMantenimiento,
                            PagoTotalCptosRenta = RegistroBD.PagoTotalCptosRenta.Value,
                            PtjeImpuesto        = RegistroBD.PtjeImpuesto,

                            InmuebleArrto = new ModeloNegocios.InmuebleArrto
                            {
                                RIUFInmueble       = RegistroBD.RIUF,
                                IdInstitucion      = RegistroBD.Fk_IdInstitucion,
                                NombreInmueble     = RegistroBD.NombreInmueble,
                                IdPais             = RegistroBD.Fk_IdPais,
                                IdEstado           = RegistroBD.Fk_IdEstado,    //posible: null
                                IdMunicipio        = RegistroBD.Fk_IdMunicipio, //posible: null
                                IdLocalidadColonia = RegistroBD.Fk_IdLocalidad, //posible: null
                                OtraColonia        = RegistroBD.OtraColonia,
                                IdTipoVialidad     = RegistroBD.Fk_IdTipoVialidad,
                                CodigoPostal       = RegistroBD.CodigoPostal,
                                //propiedades comunnes de cualquier inmueble
                                NombreVialidad = RegistroBD.NombreVialidad,
                                NumExterior    = RegistroBD.NumExterior,
                                NumInterior    = RegistroBD.NumInterior,
                                //propiedades de inmueble extranjero
                                CodigoPostalExtranjero = RegistroBD.CodigoPostalExtranjero,
                                EstadoExtranjero       = RegistroBD.EstadoExtranjero,
                                CiudadExtranjero       = RegistroBD.CiudadExtranjero,
                                MunicipioExtranjero    = RegistroBD.MunicipioExtranjero
                            },

                            JustripreciacionContrato = new ModeloNegocios.JustripreciacionContrato
                            {
                                strFechaDictamen      = RegistroBD.FechaDictamen,
                                IdJustipreciacion     = RegistroBD.IdJustipreciacion,
                                MontoDictaminado      = RegistroBD.MontoDictaminado,
                                NoGenerico            = RegistroBD.NoGenerico,
                                Secuencial            = RegistroBD.Secuencial,
                                SuperficieDictaminada = RegistroBD.SuperficieDictaminada,
                                EstatusAtencion       = RegistroBD.EstatusAtencion
                            },

                            PersonaReferenciaResponsableOcupacion = new ModeloNegocios.PersonaReferencia
                            {
                                NombreCargo     = RegistroBD.OFONombreCargo,
                                Nombre          = RegistroBD.OFONombre,
                                ApellidoPaterno = RegistroBD.OFOApellidoPaterno,
                                ApellidoMaterno = RegistroBD.OFOApellidoMaterno,
                                Email           = RegistroBD.OFOEmail
                            },

                            PersonaReferenciaTitularOIC = new ModeloNegocios.PersonaReferencia
                            {
                                NombreCargo     = RegistroBD.OICNombreCargo,
                                Nombre          = RegistroBD.OICNombre,
                                ApellidoPaterno = RegistroBD.OICApellidoPaterno,
                                ApellidoMaterno = RegistroBD.OICApellidoMaterno,
                                Email           = RegistroBD.OICEmail
                            },
                        }).ToList();
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerContratosArrtoRegistrados DAL:{0}", ex.Message));
                }
            }//using
            return(ListContratosArrtoRegistrados);
        }
        //Acuse de Registro de Contrato: Nacional, Extranjero ó OtrasFigOcupacion
        public AcuseContrato ObtenerAcuseContrato(int IdFolioContrato)
        {
            AcuseContrato objAcuseContrato;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    objAcuseContrato = Conn.spuSelectAcuseContrato(IdFolioContrato)
                                       .Select(RegistroBD => new ModeloNegocios.AcuseContrato
                    {
                        //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                        Folio                  = RegistroBD.FolioContratoArrto,
                        FechaRegistro          = RegistroBD.FechaRegistro,
                        HoraRegistro           = RegistroBD.HoraRegistro,
                        IdUsuarioRegistro      = RegistroBD.Fk_IdUsuarioRegistro,
                        InstitucionSolicitante = RegistroBD.NombreInstitucion,
                        FolioSAEF              = RegistroBD.FolioSAEF,

                        //objeto de negocio embedido, crear para poblar propiedades
                        ContratoArrto = new ModeloNegocios.ContratoArrto
                        {
                            NombreInstitucion                  = RegistroBD.NombreInstitucion,
                            Fk_NumContratoHistorico            = RegistroBD.Fk_NumContratoHistorico,
                            Fk_IdContratoArrtoPadre            = RegistroBD.Fk_IdContratoArrtoPadre,
                            DescripcionTipoOcupacion           = RegistroBD.DescripcionTipoOcupacion,
                            OtroTipoOcupacion                  = RegistroBD.OtroTipoOcupacion,
                            Fk_IdTipoMoneda                    = RegistroBD.Fk_IdTipoMoneda,
                            FechaInicioOcupacion               = RegistroBD.FechaInicioOcupacion,
                            FechaFinOcupacion                  = RegistroBD.FechaFinOcupacion,
                            AreaOcupadaM2                      = RegistroBD.AreaOcupadaM2,
                            MontoPagoMensual                   = RegistroBD.MontoPagoMensual,
                            MontoPagoPorCajonesEstacionamiento = RegistroBD.MontoPagoPorCajonesEstacionamiento,
                            CuotaMantenimiento                 = RegistroBD.CuotaMantenimiento,
                            PtjeImpuesto = RegistroBD.PtjeImpuesto,
                            NumeroDictamenExcepcionFolioSMOI = RegistroBD.NumeroDictamenExcepcionFolioSMOI,
                            RIUF = RegistroBD.RIUF,
                            PropietarioInmueble          = RegistroBD.PropietarioInmueble,
                            FuncionarioResponsable       = RegistroBD.FuncionarioResponsable,
                            DescripcionTipoContrato      = RegistroBD.DescripcionTipoContrato,
                            DescripcionTipoArrendamiento = RegistroBD.DescripcionTipoArrendamiento,
                            DescripcionTipoContratacion  = RegistroBD.DescripcionTipoContratacion,
                            FolioEmisionOpinion          = RegistroBD.FolioOpinion,


                            InmuebleArrto = new InmuebleArrto
                            {
                                //IdInmueble = RegistroBD.fk_i IdInmueble, //PK
                                IdPais = RegistroBD.Fk_IdPais,
                                //IdTipoInmueble = RegistroBD.Fk_IdTipoInmueble,
                                IdEstado           = RegistroBD.Fk_IdEstado,
                                IdMunicipio        = RegistroBD.Fk_IdMunicipio,
                                IdLocalidadColonia = RegistroBD.Fk_IdLocalidad,
                                OtraColonia        = RegistroBD.OtraColonia,
                                IdTipoVialidad     = RegistroBD.Fk_IdTipoVialidad,
                                NombreVialidad     = RegistroBD.NombreVialidad,
                                NumExterior        = RegistroBD.NumExterior,
                                NumInterior        = RegistroBD.NumInterior,
                                CodigoPostal       = RegistroBD.CodigoPostal,
                                //GeoRefLatitud = RegistroBD.GeoRefLatitud,
                                //GeoRefLongitud = RegistroBD.GeoRefLongitud,
                                NombreInmueble         = RegistroBD.NombreInmueble,
                                CodigoPostalExtranjero = RegistroBD.CPExtranjero,
                                EstadoExtranjero       = RegistroBD.EstadoExtranjero,
                                CiudadExtranjero       = RegistroBD.CiudadExtranjero,
                                MunicipioExtranjero    = RegistroBD.MpoExtranjero,
                                RIUFInmueble           = RegistroBD.RIUF
                            }
                        },

                        //objeto de negocio embedido, crear para poblar propiedades
                        JustripreciacionContrato = new JustripreciacionContrato
                        {
                            Secuencial            = RegistroBD.Secuencial,
                            SuperficieDictaminada = RegistroBD.SuperficieDictaminada,
                            FechaDictamen         = RegistroBD.FechaDictamen,
                            MontoDictaminado      = RegistroBD.MontoDictaminado
                        },

                        CadenaOriginal    = RegistroBD.CadenaOriginal,
                        SelloDigital      = RegistroBD.SelloDigital,
                        LeyendaAnio       = RegistroBD.LeyendaAnio,
                        QR                = RegistroBD.QR,
                        Leyenda           = RegistroBD.leyenda,
                        FechaAutorizacion = RegistroBD.fechautorizacion
                    }).FirstOrDefault();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerAcuseContrato: {0}", ex.Message));
                }
            }//using
            return(objAcuseContrato);
        }
        //Insert de un Contrato Arrto de Otras Fig. Ocuapacion
        //Devuelve el Folio de contrato
        public int InsertContratoArrtoOtrasFigOcupacion(ModeloNegocios.ContratoArrto objContratoArrto)
        {
            int FolioContrato = 0;

            System.Data.Entity.Core.Objects.ObjectParameter parametroFolioContrato = new System.Data.Entity.Core.Objects.ObjectParameter("FolioContrato", FolioContrato);

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    Conn.spuInsertContratoOtrasFigurasOcupacion(

                        objContratoArrto.Fk_IdTipoOcupacion,//Comodato, Prestamo, Conscesión (aplicable solo a Arrendamiento de Otras Fig.)
                        objContratoArrto.OtroTipoOcupacion,
                        objContratoArrto.Fk_IdInmuebleArrendamiento,
                        objContratoArrto.Fk_IdTipoUsoInm, //del BUS
                        objContratoArrto.OtroUsoInmueble,
                        objContratoArrto.Fk_IdTipoMoneda,
                        objContratoArrto.Fk_IdInstitucion,
                        objContratoArrto.NombreInstitucion,
                        objContratoArrto.FechaInicioOcupacion,
                        objContratoArrto.FechaFinOcupacion,
                        objContratoArrto.AreaOcupadaM2,
                        objContratoArrto.MontoPagoMensual,
                        objContratoArrto.MontoPagoPorCajonesEstacionamiento,
                        objContratoArrto.CuotaMantenimiento,
                        objContratoArrto.PtjeImpuesto,
                        objContratoArrto.RIUF,
                        objContratoArrto.Observaciones,
                        objContratoArrto.PropietarioInmueble,
                        objContratoArrto.FuncionarioResponsable,
                        objContratoArrto.Fk_IdUsuarioRegistro,
                        objContratoArrto.CargoUsuarioRegistro,
                        //objetos de Persona Referencia (3):
                        //Responsable de la Ocupacion
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.NombreCargo,
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.Nombre,
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.ApellidoPaterno,
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.ApellidoMaterno,
                        objContratoArrto.PersonaReferenciaResponsableOcupacion.Email,
                        //titular del OIC
                        objContratoArrto.PersonaReferenciaTitularOIC.NombreCargo,
                        objContratoArrto.PersonaReferenciaTitularOIC.Nombre,
                        objContratoArrto.PersonaReferenciaTitularOIC.ApellidoPaterno,
                        objContratoArrto.PersonaReferenciaTitularOIC.ApellidoMaterno,
                        objContratoArrto.PersonaReferenciaTitularOIC.Email,
                        //Capturista
                        objContratoArrto.PersonaReferenciaCapturista.NombreCargo,
                        objContratoArrto.PersonaReferenciaCapturista.Nombre,
                        objContratoArrto.PersonaReferenciaCapturista.ApellidoPaterno,
                        objContratoArrto.PersonaReferenciaCapturista.ApellidoMaterno,
                        objContratoArrto.PersonaReferenciaCapturista.Email,
                        // apartado de seguridad
                        objContratoArrto.CuentaConDictamen,
                        objContratoArrto.FechaDictamen,

                        //
                        objContratoArrto.CadenaOriginal,
                        objContratoArrto.SelloDigital,
                        objContratoArrto.QR,
                        parametroFolioContrato //parametro ouput
                        );

                    Conn.SaveChanges();

                    if (parametroFolioContrato == null)
                    {
                        throw new InvalidOperationException("No se pudo registrar el Contrato de Arrendamiento, vuelva a intentar o reporte a Sistemas");
                    }
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("InsertContratoArrtoOtrasFigOcupacion: {0}", ex.Message));
                }
            }//using

            if (parametroFolioContrato.Value != null)
            {
                FolioContrato = Convert.ToInt32(parametroFolioContrato.Value);
            }

            //parametro de retorno, regresa 0 si no hay insert, o el folio > 0 si se realizo el insert
            return(FolioContrato);
        }
Beispiel #16
0
        /// <summary>
        /// Obtener las solicitudes de emisión de opinión emitidas
        /// pasar a los parametros cuando se deseen ignorar
        /// </summary>
        /// <param name="IdFolioAplicacionCpto"></param>
        /// <returns></returns>
        public List <ModeloNegocios.AplicacionConcepto> ObtenerSolicitudesEmisionOpinionEmitidas(int?IdInstitucion, int FolioAplicacionConcepto, byte?IdTema, int?FolioSAEF)
        {
            List <ModeloNegocios.AplicacionConcepto> ListAplicacionConcepto;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    //spuSelectSolicitudesEmisionOpinionEmitidas_Result x = Conn.spuSelectSolicitudesEmisionOpinionEmitidas(IdInstitucion, FolioAplicacionConcepto);

                    ListAplicacionConcepto = Conn.spuSelectSolicitudesEmisionOpinionEmitidas(IdInstitucion, FolioAplicacionConcepto, IdTema, FolioSAEF)
                                             .Select(RegistroBD => new ModeloNegocios.AplicacionConcepto
                    {
                        //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                        IdAplicacionConcepto    = RegistroBD.IdAplicacionConcepto,
                        FolioAplicacionConcepto = RegistroBD.FolioAplicacionConcepto,
                        TemaAplicacionConcepto  = RegistroBD.TemaAplicacionConcepto,
                        ResultadoEmisionOpinion = RegistroBD.ResultadoOpinion,
                        IdInstitucion           = RegistroBD.Fk_IdInstitucion,
                        NombreCargo             = RegistroBD.CargoUsuarioRegistro,
                        IdUsuarioRegistro       = RegistroBD.Fk_IdUsuarioRegistro,
                        FechaRegistro           = RegistroBD.FechaRegistro,
                        Observaciones           = RegistroBD.Observaciones,
                        TipoArrendamiento       = RegistroBD.DescripcionTipoArrendamiento,

                        //RCA 08/08/2018
                        FolioSAEF = RegistroBD.FolioSAEF,

                        //objeto de negocio embedido
                        InmuebleArrto = new ModeloNegocios.InmuebleArrto
                        {
                            NombreInmueble = RegistroBD.NombreInmueble,
                            IdPais         = RegistroBD.Fk_IdPais,
                            //propiedades de inmueble nacional
                            IdEstado           = RegistroBD.Fk_IdEstado,
                            IdMunicipio        = RegistroBD.Fk_IdMunicipio,
                            IdLocalidadColonia = RegistroBD.Fk_IdLocalidad,
                            OtraColonia        = RegistroBD.OtraColonia,

                            //propiedades comunnes de cualquier inmueble
                            IdTipoVialidad = RegistroBD.Fk_IdTipoVialidad,
                            NombreVialidad = RegistroBD.NombreVialidad,
                            NumExterior    = RegistroBD.NumExterior,
                            NumInterior    = RegistroBD.NumInterior,
                            CodigoPostal   = RegistroBD.CodigoPostal,

                            //propiedades de inmueble extranjero
                            CodigoPostalExtranjero = RegistroBD.CodigoPostalExtranjero,
                            EstadoExtranjero       = RegistroBD.EstadoExtranjero,
                            CiudadExtranjero       = RegistroBD.CiudadExtranjero,
                            MunicipioExtranjero    = RegistroBD.MunicipioExtranjero,
                            //datos del contratoArrto con el que se asocia un inmueble arrendado, por lo que pueden ser nulos


                            FolioContratoArrtoVsInmuebleArrendado = RegistroBD.FolioContratoAlQueAlplicaOpinion    //puede ser nulo, porque quizas el inmueble no se asocia a un ContratoArrto.
                        },

                        FolioContratoArrto_FK     = RegistroBD.FolioContratoAlQueAlplicaOpinion, //puede venir nulo,se cambio por cero
                        FolioSMOI_AplicadoOpinion = RegistroBD.FolioSMOI
                    }).ToList();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerSolicitudesEmisionOpinionEmitidas: {0}", ex.Message));
                }
            }//using

            return(ListAplicacionConcepto);
        }
Beispiel #17
0
        /*
         * No Encontré la forma de hacer jalar esta forma de hacer las cosas
         *
         * // https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/ef/language-reference/how-to-call-custom-database-functions
         *
         * [EdmFunction("ArrendemientoInmuebleModel.Store", "EDS")]
         * public static decimal AvgStudentGrade(int stid)
         * {
         *  throw new NotSupportedException("Direct calls to EDS are not supported.");
         * }
         */

        static void ReporteTotalEnInmuebles()
        {
            ArrendamientoInmuebleEntities ctx = new ArrendamientoInmuebleEntities();
            var    Contratos    = ctx.ContratoArrto;
            var    Vigentes     = ctx.ContratosVigentes;
            var    Inmuebles    = ctx.InmuebleArrendamiento;
            var    ReporteTotal = ctx.ReporteTotal;
            string SQLqqsaved   = @"D:\temp\SQLQQSAVED.txt";
            string LOGqqsaved   = @"D:\temp\LOGqqsaved.txt";
            string line;
            int    registrosErroneos = 1;
            int    registros         = 0;

            if (File.Exists(SQLqqsaved))
            {
                File.Delete(SQLqqsaved);
            }
            StreamWriter SqlFile = new StreamWriter(SQLqqsaved);

            if (File.Exists(LOGqqsaved))
            {
                File.Delete(LOGqqsaved);
            }
            StreamWriter LOGFile = new StreamWriter(LOGqqsaved);

            LOGFile.WriteLine("\nCS " + ConfigurationManager.ConnectionStrings["ArrendamientoInmuebleEntities"]);

            bool RegistrosIguales;

            foreach (var reporte in ReporteTotal)
            {
                registros++;

                line = ">" + reporte.NumeroSecuencial.ToString() + "/" + reporte.FolioContrato.ToString() + "<";

                // No podemos usar LINQ para llamar funciones creadas en c#
                // manejemos la memoria de la computadora local

                /*
                 * var inmueblesEncontrados = (from inmueble in Inmuebles
                 *                          where EDS(reporte.Calle).Equals(EDS(inmueble.NombreVialidad))
                 *                          select new { AvgStudentGrade("hola") });
                 */
                foreach (var inmueble in Inmuebles)
                {
                    if (U.EDS(reporte.Calle).Equals(U.EDS(inmueble.NombreVialidad)))   // esto es casi equivalente a la expr LINQ
                    {
                        RegistrosIguales = true;
                        line            += ">" + inmueble.IdInmuebleArrendamiento.ToString() + "<";
                        //  1
                        RegistrosIguales &= Result(line, out line, reporte.FkIdPais == inmueble.Fk_IdPais, "-pais no coincide-" + reporte.FkIdPais.ToString() + "-" + inmueble.Fk_IdPais.ToString() + "-");
                        //RegistrosIguales &= Result(line, out line, GetInstitucion((int)reporte.Fk_IdInstitucion).Equals(GetInstitucion((int)inenc.Fk_IdInstitucion)), "-institucion no coincide-");
                        RegistrosIguales &= Result(line, out line, reporte.Fk_IdTipoInmueble == inmueble.Fk_IdTipoInmueble, "-institucion no coincide-" + reporte.Fk_IdTipoInmueble.ToString() + "-" + inmueble.Fk_IdTipoInmueble.ToString() + "-");
                        RegistrosIguales &= Result(line, out line, reporte.Fk_IdEstado == inmueble.Fk_IdEstado, "-Estado no coincide-" + reporte.Fk_IdEstado.ToString() + "-" + inmueble.Fk_IdEstado.ToString() + "-");
                        RegistrosIguales &= Result(line, out line, reporte.Fk_IdMunicipio == inmueble.Fk_IdMunicipio, "-Municipio no coincide-" + reporte.Fk_IdMunicipio.ToString() + "-" + inmueble.Fk_IdMunicipio.ToString() + "-");
                        RegistrosIguales &= Result(line, out line, reporte.Fk_IdLocalidad == inmueble.Fk_IdLocalidad, "-Localidad no coincide-" + reporte.Fk_IdLocalidad.ToString() + "-" + inmueble.Fk_IdLocalidad.ToString() + "-");
                        //  5
                        RegistrosIguales &= Result(line, out line, U.EDS(reporte.Colonia).Equals(U.EDS(inmueble.OtraColonia)), "-Colonia no coincide-" + U.IsNull(reporte.Colonia).ToString() + "-" + U.IsNull(inmueble.OtraColonia).ToString() + "-");
                        RegistrosIguales &= Result(line, out line, U.EDS(reporte.Calle).Equals(U.EDS(inmueble.NombreVialidad)), "-Calle no coincide-" + U.IsNull(reporte.Calle).ToString() + "-" + U.IsNull(inmueble.NombreVialidad).ToString() + "-");
                        RegistrosIguales &= Result(line, out line, U.EDS(reporte.NumExterior).Equals(U.EDS(inmueble.NumExterior)), "-NumExterior no coincide-" + U.IsNull(reporte.NumExterior) + "-" + U.IsNull(inmueble.NumExterior) + "-");
                        RegistrosIguales &= Result(line, out line, U.EDS(reporte.NumInterior).Equals(U.EDS(inmueble.NumInterior)), "-NumInterior no coincide-" + U.IsNull(reporte.NumInterior) + "-" + U.IsNull(inmueble.NumInterior) + "-");
                        RegistrosIguales &= Result(line, out line, U.EDS(reporte.CodigoPostal).Equals(U.EDS(inmueble.CodigoPostal)), "-Codigo Postal no coincide-" + U.IsNull(reporte.CodigoPostal) + "-" + U.IsNull(inmueble.CodigoPostal) + "-");

                        if (!RegistrosIguales)
                        {
                            LOGFile.WriteLine((registrosErroneos++).ToString() + line);
                        }
                    }
                }
            }

            LOGFile.WriteLine("Registros erroneos " + (registrosErroneos - 1).ToString());
            Console.WriteLine("Registros Erroneo " + (registrosErroneos - 1).ToString());
            Console.WriteLine("Registros " + (registros).ToString());
            SqlFile.Close();
            LOGFile.Close();
        }
        //Obtener la lista ContratoArrto. registrados
        public List <ModeloNegocios.InmuebleArrto> ObtenerMvtosContratosInmueblesRegistrados(int?OtrasFiguras, int?IdInstitucion, int FolioContratoArrto, int IdPais, int IdEstado, int IdMpo, string RIUF)
        {
            List <ModeloNegocios.InmuebleArrto> ListInmuebleArrtoConAsociacionesCptos;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    ListInmuebleArrtoConAsociacionesCptos = Conn.spuSelectMvtosContratosParaInmueblesArrto(OtrasFiguras, IdInstitucion, FolioContratoArrto, IdPais, IdEstado, IdMpo, RIUF)
                                                            .Where(RegistroBD => RegistroBD.EstatusRegistroContrato != false)
                                                            .Select(RegistroBD => new ModeloNegocios.InmuebleArrto
                    {
                        //Re- mapear propiedades del objeto del entity framework al objeto de negocio
                        IdInmuebleArrendamiento = RegistroBD.IdInmuebleArrendamiento, //PK
                        IdInstitucion           = RegistroBD.Fk_IdInstitucion,

                        //RCA 02/01/2017
                        //se comento ya que el cargo lo obtenemos del stored
                        //IdCargo = RegistroBD.Fk_IdCargo,

                        NombreCargo            = RegistroBD.CargoUsuarioRegistro,
                        IdUsuarioRegistro      = RegistroBD.Fk_IdUsuarioRegistro,
                        FechaAltaMvtoAInmueble = RegistroBD.FechaRegistro,

                        NombreInmueble = RegistroBD.NombreInmueble,
                        IdPais         = RegistroBD.Fk_IdPais,
                        //propiedades de inmueble nacional
                        IdEstado           = RegistroBD.Fk_IdEstado,    //posible: null
                        IdMunicipio        = RegistroBD.Fk_IdMunicipio, //posible: null
                        IdLocalidadColonia = RegistroBD.Fk_IdLocalidad, //posible: null
                        IdTipoVialidad     = RegistroBD.Fk_IdTipoVialidad,
                        CodigoPostal       = RegistroBD.CodigoPostal,
                        //propiedades comunnes de cualquier inmueble
                        NombreVialidad = RegistroBD.NombreVialidad,
                        NumExterior    = RegistroBD.NumExterior,
                        NumInterior    = RegistroBD.NumInterior,
                        //propiedades de inmueble extranjero
                        CodigoPostalExtranjero = RegistroBD.CodigoPostalExtranjero,
                        EstadoExtranjero       = RegistroBD.EstadoExtranjero,
                        CiudadExtranjero       = RegistroBD.CiudadExtranjero,
                        MunicipioExtranjero    = RegistroBD.MunicipioExtranjero,
                        //RCA 15/08/2017
                        FechaFinOcupacion = Convert.ToDateTime(RegistroBD.FechaFinOcupacion),
                        //RCA 17/08/2017
                        Bandera = RegistroBD.EsPadre,

                        //objeto de negocio embedido: opcional
                        EmisionOpinion = new ModeloNegocios.AplicacionConcepto
                        {
                            FolioAplicacionConcepto = RegistroBD.FolioAplicacionConcepto,
                            //TemaAplicacionConcepto = RegistroBD.TemaAplicacionConcepto,
                        },

                        //propiedad que es un objeto de negocio embedido: opcional
                        ContratoArrtoInmueble = new ModeloNegocios.ContratoArrto
                        {
                            FolioContratoArrto           = RegistroBD.FolioContratoConInmuebleArrendado,
                            DescripcionTipoContrato      = RegistroBD.DescripcionTipoContrato,      //Nac, Extj o OtrasFigOcup
                            DescripcionTipoArrendamiento = RegistroBD.DescripcionTipoArrendamiento, //Nuevo, Continuacion, Sust
                            RIUF = RegistroBD.RIUF,
                            ObservacionesContratosReferencia = RegistroBD.Observaciones,
                            IsNotReusable = RegistroBD.IsNotReusable
                        },

                        //FolioContratoArrtoVsInmuebleArrendado = RegistroBD.FolioContratoConInmuebleArrendado,//puede ser nulo, porque quizas el inmueble no se asocia a un ContratoArrto.
                        OtraColonia = RegistroBD.OtraColonia

                                      // FolioContratoArrto_FK = RegistroBD.FolioContratoAlQueAlplicaOpinion, //puede venir nulo,se cambio por cero
                    }).OrderByDescending(o => o.ContratoArrtoInmueble.FolioContratoArrto).ThenByDescending(o => o.EmisionOpinion.FolioAplicacionConcepto).ToList();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerMvtosContratosInmueblesRegistrados: ", ex.Message));
                }
            }//using

            //regresa un count con la lista de parametros
            return(ListInmuebleArrtoConAsociacionesCptos);
        }
        public static List <ModeloNegocios.SolicitudAvaluosExt> ObtenerJustipreciacionesRegistrados(Filtro filtro)
        {
            List <ModeloNegocios.SolicitudAvaluosExt> ListJustipreciacionesRegistrados = null;

            ListJustipreciacionesRegistrados = null;
            using (ArrendamientoInmuebleEntities db = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    var result = db.JustipreciacionExt
                                 .Select(x => new SolicitudAvaluosExt
                    {
                        Calle            = x.Calle,
                        CP               = x.CodigoPostal,
                        EstadoId         = x.Fk_IdEstado,
                        FechaDictamen    = x.FechaDictamen,
                        InstitucionId    = x.Fk_IdInstitucion,
                        MontoDictaminado = x.MontoDictaminado,
                        MunicipioId      = x.Fk_IdMunicipio,
                        NoExterior       = x.NumExterior,
                        NoGenerico       = x.NoGenerico,
                        NoInterior       = x.NumInterior,
                        NoSecuencial     = x.Secuencial,
                        SectorId         = x.Fk_IdSector,
                        SuperficieConstruidaDictaminado = x.ConstruidaDictaminado,
                        SuperficieRentable              = x.RentableDictamindo, //se quito de la base de datos
                        SuperficieRentableDictaminado   = x.RentableDictamindo,
                        SuperficieTerrenoDictaminado    = x.TerrenoDictaminado,
                        UnidadMedidaRentable            = x.Fk_IdUnidadMedidaRentableDict.ToString(),
                        UnidadMedidaRentableDictaminado = x.Fk_IdUnidadMedidaRentableDict.ToString(),
                    });

                    if (!string.IsNullOrEmpty(filtro.NoSecuencial))
                    {
                        ListJustipreciacionesRegistrados = result.Where(x => x.NoSecuencial.Equals(filtro.NoSecuencial, StringComparison.InvariantCultureIgnoreCase))
                                                           .ToList();
                    }
                    else if (!string.IsNullOrEmpty(filtro.NoGenerico))
                    {
                        ListJustipreciacionesRegistrados = result.Where(x => x.NoGenerico.Equals(filtro.NoGenerico, StringComparison.InvariantCultureIgnoreCase))
                                                           .ToList();
                    }
                    else if (filtro.FechaRegistro != null)
                    {
                        ListJustipreciacionesRegistrados = result.Where(x => x.FechaRegistro.ToString("d") == filtro.FechaRegistro.Value.ToString("d"))
                                                           .ToList();
                    }
                    else if (filtro.FechaDictamen != null)
                    {
                        ListJustipreciacionesRegistrados = result.Where(x => x.FechaDictamen.ToString("d") == filtro.FechaDictamen.Value.ToString("d"))
                                                           .ToList();
                    }
                    else
                    {
                        ListJustipreciacionesRegistrados = result.ToList();
                    }
                    // mas lo que le quieras agregar al filtro
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("Consulta: {0}", ex.Message));
                }
            }
            return(ListJustipreciacionesRegistrados);
        }
        //Obtener la lista Contrato. registrados
        public List <ModeloNegocios.Inmueble> ObtenerInmuebles(int?IdPais, int?IdEstado, int?IdMunicipio, string RIUF)
        {
            List <ModeloNegocios.Inmueble> ListInmuebles;

            using (ArrendamientoInmuebleEntities Conn = new ArrendamientoInmuebleEntities())
            {
                try
                {
                    ListInmuebles = Conn.spuSelectInmuebles().Select(RegistroBD => new ModeloNegocios.Inmueble
                    {
                        IdInmueble             = RegistroBD.IdInmueble, //PK
                        IdPais                 = RegistroBD.Fk_IdPais,
                        IdTipoInmueble         = RegistroBD.Fk_IdTipoInmueble,
                        IdEstado               = RegistroBD.Fk_IdEstado,
                        IdMunicipio            = RegistroBD.Fk_IdMunicipio,
                        IdLocalidad            = RegistroBD.Fk_IdLocalidad,
                        OtraColonia            = RegistroBD.OtraColonia,
                        IdTipoVialidad         = RegistroBD.Fk_IdTipoVialidad,
                        NombreVialidad         = RegistroBD.NombreVialidad,
                        NumExterior            = RegistroBD.NumExterior,
                        NumInterior            = RegistroBD.NumInterior,
                        CodigoPostal           = RegistroBD.CodigoPostal,
                        GeoRefLatitud          = RegistroBD.GeoRefLatitud,
                        GeoRefLongitud         = RegistroBD.GeoRefLongitud,
                        NombreInmueble         = RegistroBD.NombreInmueble,
                        CodigoPostalExtranjero = RegistroBD.CodigoPostalExtranjero,
                        EstadoExtranjero       = RegistroBD.EstadoExtranjero,
                        CiudadExtranjero       = RegistroBD.CiudadExtranjero,
                        MunicipioExtranjero    = RegistroBD.MunicipioExtranjero,
                        IdRIUF                 = RegistroBD.Fk_IdRIUF,
                        EstatusRegistro        = RegistroBD.EstatusRegistro,
                        RIUF = new ModeloNegocios.RIUF
                        {
                            IdRIUF            = (RegistroBD.IdRIUF) == null ? 0 : RegistroBD.IdRIUF,
                            IdEstadoRIUF      = (RegistroBD.Fk_IdEstadoRIUF) == null ? 0 : RegistroBD.Fk_IdEstadoRIUF,
                            RIUF1             = (RegistroBD.RIUF1) == null ? "" : RegistroBD.RIUF1,
                            Digitoverificador = (RegistroBD.DigitoVerificador) == null ? 0 : RegistroBD.DigitoVerificador,
                            Consecutivo       = (RegistroBD.Consecutivo) == null ? 0 : RegistroBD.Consecutivo
                        }
                    }).ToList();
                }
                catch (Exception ex)
                {
                    throw new Exception(string.Format("ObtenerInmuebles: ", ex.Message));
                }
            }//using

            List <ModeloNegocios.Inmueble> oLista;

            //if (RIUF != "")
            //{
            //    oLista = ListInmuebles.Where(
            //        tc => tc.EstatusRegistro == true
            //    && tc.RIUF.RIUF1.ToString() == RIUF.ToString()).ToList();
            //}
            //else
            //{
            if (IdPais != 165)
            {
                oLista = ListInmuebles.Where(
                    tc => tc.EstatusRegistro == true &&
                    tc.IdPais == IdPais).ToList();
            }
            else
            {
                if (IdMunicipio != 0)
                {
                    oLista = ListInmuebles.Where(
                        tc => tc.EstatusRegistro == true &&
                        tc.IdEstado == IdEstado &&
                        tc.IdMunicipio == IdMunicipio).ToList();
                }
                else
                {
                    if (IdEstado != 0)
                    {
                        oLista = ListInmuebles.Where(
                            tc => tc.EstatusRegistro == true &&
                            tc.IdEstado == IdEstado).ToList();
                    }
                    else
                    {
                        oLista = ListInmuebles.Where(
                            tc => tc.EstatusRegistro == true &&
                            tc.IdPais == IdPais).ToList();
                    }
                }
            }
            // }
            return(oLista);
        }