public CobroAlquilerModel()
        {
            this.Contrato = new Contratos();
            this.Pago     = new PagoAlquiler();
            this.Contrato.ListaImpuestos = new List <TipoImpuestosServicios>();
            this.OtrosPagos = new List <OtroPago>();
            List <TipoImpuestosServicios> Impu = new ImpuestosBLL().GetAllByEsPago(true);

            Impu.ForEach(x => OtrosPagos.Add(new OtroPago()
            {
                Codigo = x.Codigo, Detalle = x.Descripcion, Monto = ""
            }));
        }
        public JsonResult GetPropiedadSinAlquiler(string prop)
        {
            var PropiedadName = new object();

            try
            {
                var ImpuesService = new ImpuestosBLL().GetAllByEsPago(false);
                var propiedades   = ListaPropiedades(prop);
                propiedades = propiedades.Where(x => x.Estado == false).ToList();
                //var bContra = new ContratosBLL();
                //var contratos = bContra.GetAll();
                //contratos = contratos.Where(xx => xx.IdEstate.Value == 0).ToList();
                //foreach (var item in contratos)
                //{
                //    propiedades.RemoveAll(xx => xx.PropiedadId == item.PropiedadesId || xx.Tipo == "2");
                //}
                PropiedadName = (from propi in propiedades
                                 select new
                {
                    Calle = propi.Calle,
                    Numero = propi.Numero,
                    PropiedadId = propi.PropiedadId,
                    Barrio = propi.Barrio,
                    Piso = propi.Piso,
                    Dto = propi.Dto,
                    CP = propi.CP,
                    Ciudad = propi.Ciudad,
                    NroContratoEpec = propi.NroContratoEpec,
                    ClienteEpecNro = propi.ClienteEpecNro,
                    NroMedidorGas = propi.NroMedidorGas,
                    NumeroFacturaAgua = propi.NumeroFacturaAgua,
                    NomCatrastal = propi.NomCatrastal,
                    NumeroCtaRenta = propi.NumeroCtaRenta,
                    UnidadFacturacion = propi.UnidadFacturacion,
                    IdPropiedad = propi.DomicilioId,
                    IdPropietario = propi.IdPropietario,
                    Apellido = propi.Apellido,
                    Nombre = propi.Nombre,
                    Du = propi.Du,
                    TelLabo = propi.TelLabo,
                    Impuesto = ImpuesService
                }).ToList();
                return(Json(PropiedadName, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult GetPropiedad(string prop)
        {
            var PropiedadName = new object();

            try
            {
                var propiedades   = ListaPropiedades(prop);
                var ImpuesService = new ImpuestosBLL().GetAllByEsPago(false);
                var bContra       = new ContratosBLL();
                var contratos     = bContra.GetAll();
                contratos = contratos.Where(xx => xx.IdEstate.Value == 0).ToList();

                contratos = contratos.Where(b => propiedades.Any(a => a.PropiedadId == b.PropiedadesId)).ToList();

                PropiedadName = (from contra in contratos
                                 select new
                {
                    Calle = contra.Propiedades.Domicilio.Calle,
                    Numero = contra.Propiedades.Domicilio.Numero,
                    PropiedadId = contra.PropiedadesId,
                    Barrio = contra.Propiedades.Domicilio.Barrio,
                    Piso = contra.Propiedades.Domicilio.Piso,
                    Dto = contra.Propiedades.Domicilio.Dto,
                    CP = contra.Propiedades.Domicilio.CP,
                    Ciudad = contra.Propiedades.Domicilio.Ciudad,
                    NroContratoEpec = contra.Propiedades.NroContratoEpec,
                    NomCatrastal = contra.Propiedades.NomenclaturaCatastral,
                    NumeroCtaRenta = contra.Propiedades.NumeroCtaRenta,
                    UnidadFacturacion = contra.Propiedades.UnidadFacturacion,
                    IdPropiedad = contra.Propiedades.DomiciliosId,
                    IdPropietario = contra.PropietarioId,
                    Apellido = contra.Inquilino.Apellido,
                    Nombre = contra.Inquilino.Nombre,
                    Du = contra.Inquilino.DU,
                    TelLabo = contra.Inquilino.TelefonoLaboral,
                    Impuesto = ImpuesService,
                    PeriodosAdeudados = contra.PeriodosAdeudados,
                    PeriodosPagados = contra.PeriodosPagados,
                    ContratoId = contra.ContratosId.ToString(),
                    Observaciones = contra.Observaciones,
                }).ToList();

                return(Json(PropiedadName, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }
        public JsonResult GetInquilino(string nombre)
        {
            var contratoList  = new ContratosBLL();
            var listContrato  = contratoList.GetAll();
            var otrosPagos    = new ImpuestosBLL().GetAllByEsPago(true);
            var inquilinoName = (from contrato in listContrato
                                 where (contrato.Inquilino.Nombre.ToLower().Contains(nombre.ToLower()) || contrato.Inquilino.Apellido.ToLower().Contains(nombre.ToLower()) || contrato.Inquilino.DU.Contains(nombre))
                                 select new
            {
                ContratoId = contrato.ContratosId,
                InquilinoId = contrato.InquilinoId,
                Nombre = contrato.Inquilino.Nombre,
                Apellido = contrato.Inquilino.Apellido,
                DU = contrato.Inquilino.DU,
                TelefonoLaboral = contrato.Inquilino.TelefonoLaboral,
                PropiedadId = contrato.sPropiedadId,
                Calle = contrato.Propiedades.Domicilio.Calle,
                Numero = contrato.Propiedades.Domicilio.Numero,
                Piso = contrato.Propiedades.Domicilio.Piso,
                Departamento = contrato.Propiedades.Domicilio.Dto,
                Barrio = contrato.Propiedades.Domicilio.Barrio,
                CP = contrato.Propiedades.Domicilio.CP,
                PeriodosAdeudados = contrato.PeriodosAdeudados,
                PeriodosPagados = contrato.PeriodosPagados,
                ListaImpuestos = contrato.ListaImpuestos,
                OtrosPagos = otrosPagos,
                Observaciones = contrato.Observaciones,
                Propietario = contrato.Propietario,
                Garante1 = contrato.GaranteLaboral1,
                Garante2 = contrato.GaranteLaboral2,
                Garante3 = contrato.GaranteLaboral3,
                GarantePropie = contrato.GarantePropietario,
                NroContrato = contrato.NroContrato,
                FechaInicio = contrato.FechaContrato.Value.ToShortDateString(),
                Duracion = contrato.PeriodoMeses,
                CantidadIncrementos = contrato.Incrementos,
                PorcentajeIncremento = contrato.PorcentajeIncremento,
                MontoIncial = contrato.MontoInicialAlquiler,
                PorcentajeInmo = contrato.PorcentajeInmobiliaria
            }).ToList();

            return(Json(inquilinoName, JsonRequestBehavior.AllowGet));
        }
        public JsonResult GetPropietarios(string nombre, Nullable <bool> sinAlquilar = null)
        {
            try
            {
                var Propietarios  = new object();
                var propiedades   = ListaPropiedades("");
                var ImpuesService = new ImpuestosBLL().GetAllByEsPago(false);
                if (sinAlquilar != null)
                {
                    var bContra   = new ContratosBLL();
                    var contratos = bContra.GetAll();
                    if (sinAlquilar.Value)
                    {
                        propiedades = propiedades.Where(x => x.Estado == false).ToList();

                        //contratos = contratos.Where(xx => xx.IdEstate.Value == 0).ToList();
                        //foreach (var item in contratos)
                        //{
                        //    propiedades.RemoveAll(xx => xx.PropiedadId == item.PropiedadesId || xx.Tipo == "2");
                        //}
                        Propietarios = (from propi in propiedades
                                        where propi.Apellido.ToUpper().Contains(nombre.ToUpper()) || propi.Nombre.ToUpper().Contains(nombre.ToUpper()) || propi.Du.ToUpper().Contains(nombre.ToUpper())
                                        select new
                        {
                            Calle = propi.Calle,
                            Numero = propi.Numero,
                            PropiedadId = propi.PropiedadId,
                            Barrio = propi.Barrio,
                            Piso = propi.Piso == null ? "" : propi.Piso.Value.ToString(),
                            Dto = string.IsNullOrEmpty(propi.Dto) ? "" : propi.Dto,
                            CP = propi.CP,
                            Ciudad = propi.Ciudad,
                            NroContratoEpec = propi.NroContratoEpec,
                            NomCatrastal = propi.NomCatrastal,
                            NumeroCtaRenta = propi.NumeroCtaRenta,
                            UnidadFacturacion = propi.UnidadFacturacion,
                            IdPropiedad = propi.DomicilioId,
                            IdPropietario = propi.IdPropietario,
                            Apellido = propi.Apellido,
                            Nombre = propi.Nombre,
                            Du = propi.Du,
                            TelLabo = propi.TelLabo,
                            Impuesto = ImpuesService
                        }).ToList();
                    }
                    else
                    {
                        contratos    = contratos.Where(xx => xx.IdEstate.Value == 0).ToList();
                        contratos    = contratos.Where(b => propiedades.Any(a => a.PropiedadId == b.PropiedadesId)).ToList();
                        Propietarios = (from contra in contratos
                                        where contra.Propietario.Apellido.ToUpper().Contains(nombre.ToUpper()) || contra.Propietario.Nombre.ToUpper().Contains(nombre.ToUpper()) || contra.Propietario.DU.ToUpper().Contains(nombre.ToUpper())
                                        select new
                        {
                            Calle = contra.Propiedades.Domicilio.Calle,
                            Numero = contra.Propiedades.Domicilio.Numero,
                            PropiedadId = contra.PropiedadesId,
                            Barrio = contra.Propiedades.Domicilio.Barrio,
                            Piso = contra.Propiedades.Domicilio.Piso == null ? "" : contra.Propiedades.Domicilio.Piso.Value.ToString(),
                            Dto = string.IsNullOrEmpty(contra.Propiedades.Domicilio.Dto) ? "" : contra.Propiedades.Domicilio.Dto,
                            CP = contra.Propiedades.Domicilio.CP,
                            Ciudad = contra.Propiedades.Domicilio.Ciudad,
                            NroContratoEpec = contra.Propiedades.NroContratoEpec,
                            NomCatrastal = contra.Propiedades.NomenclaturaCatastral,
                            NumeroCtaRenta = contra.Propiedades.NumeroCtaRenta,
                            UnidadFacturacion = contra.Propiedades.UnidadFacturacion,
                            IdPropiedad = contra.Propiedades.DomiciliosId,
                            IdPropietario = contra.PropietarioId,
                            Apellido = contra.Propietario.Apellido,
                            Nombre = contra.Propietario.Nombre,
                            Du = contra.Propietario.DU,
                            TelLabo = contra.Propietario.TelefonoLaboral,
                            Impuesto = ImpuesService,
                            PeriodosAdeudados = contra.PeriodosAdeudados,
                            PeriodosPagados = contra.PeriodosPagados,
                            ContratoId = contra.ContratosId.ToString(),
                            Observaciones = contra.Observaciones,
                        }).ToList();
                    }
                }
                else
                {
                    Propietarios = (from propi in propiedades
                                    where propi.Apellido.ToUpper().Contains(nombre.ToUpper()) || propi.Nombre.ToUpper().Contains(nombre.ToUpper()) || propi.Du.ToUpper().Contains(nombre.ToUpper())
                                    select new
                    {
                        Calle = propi.Calle,
                        Numero = propi.Numero,
                        PropiedadId = propi.PropiedadId,
                        Barrio = propi.Barrio,
                        Piso = propi.Piso == null ? "" : propi.Piso.Value.ToString(),
                        Dto = string.IsNullOrEmpty(propi.Dto) ? "" : propi.Dto,
                        CP = propi.CP,
                        Ciudad = propi.Ciudad,
                        NroContratoEpec = propi.NroContratoEpec,
                        NomCatrastal = propi.NomCatrastal,
                        NumeroCtaRenta = propi.NumeroCtaRenta,
                        UnidadFacturacion = propi.UnidadFacturacion,
                        IdPropiedad = propi.DomicilioId,
                        IdPropietario = propi.IdPropietario,
                        Apellido = propi.Apellido,
                        Nombre = propi.Nombre,
                        Du = propi.Du,
                        TelLabo = propi.TelLabo,
                        Impuesto = ImpuesService
                    }).ToList();
                }


                return(Json(Propietarios, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json(ex.Message, JsonRequestBehavior.AllowGet));
            }
        }