Пример #1
0
        public void Fill(CargarDatosContext datacontext, Int32 EdificioId)
        {
            var          lstunidadtiempo = datacontext.context.Gasto.Where(x => x.EdificioId == EdificioId && x.Estado == ConstantHelpers.EstadoActivo).OrderByDescending(x => x.UnidadTiempo.Orden).ToList();
            List <Int32> valAnio         = new List <int>();
            List <Int32> valMes          = new List <int>();

            //var mesActivo = lstunidadtiempo.FirstOrDefault(x => x.EsActivo).Mes;
            foreach (var item in lstunidadtiempo)
            {
                if (item.UnidadTiempo.EsActivo)
                {
                    continue;
                }
                var mes = item.UnidadTiempo.Descripcion.Substring(0, item.UnidadTiempo.Descripcion.Length - 4);

                if (!valAnio.Contains(item.UnidadTiempo.Anio))
                {
                    LstAnio.Add(new SelectListItem {
                        Value = item.UnidadTiempo.Anio.ToString(), Text = item.UnidadTiempo.Anio.ToString()
                    });
                    valAnio.Add(item.UnidadTiempo.Anio);
                }
                if (!valMes.Contains(item.UnidadTiempo.Mes))
                {
                    LstMeses.Add(new SelectListItem {
                        Value = item.UnidadTiempo.Mes.ToString(), Text = mes
                    });
                    valMes.Add(item.UnidadTiempo.Mes);
                }
            }

            baseFill(datacontext);
            LstGasto = new List <SelectListItem>();
            var gastos = datacontext.context.Gasto.Where(x => x.EdificioId == EdificioId && x.Estado == ConstantHelpers.EstadoActivo);

            if (gastos != null && gastos.Count() > 0)
            {
                foreach (var item in gastos)
                {
                    LstGasto.Add(new SelectListItem {
                        Value = item.GastoId.ToString(), Text = item.UnidadTiempo.Descripcion.ToUpper()
                    });
                }
            }
            this.EdificioId = EdificioId;
        }
Пример #2
0
        public void Fill(CargarDatosContext datacontext, Int32 EdificioId)
        {
            try
            {
                baseFill(datacontext);
                NombreEdificio = datacontext.context.Edificio.FirstOrDefault(x => x.EdificioId == EdificioId).Nombre;
                TipoEdificio   = datacontext.context.Edificio.FirstOrDefault(x => x.EdificioId == EdificioId).TipoInmueble.Nombre;
                Id             = EdificioId;
                var unidadTiempoActivo = datacontext.context.UnidadTiempo.FirstOrDefault(X => X.EsActivo);
                var LstCuotasT         = datacontext.context.Cuota.Include(x => x.Departamento)
                                         .Include(x => x.UnidadTiempo)
                                         .Include(x => x.Departamento.Propietario)
                                         .Where(x => x.Departamento.EdificioId == EdificioId && x.Pagado == false &&
                                                x.UnidadTiempoId < unidadTiempoActivo.UnidadTiempoId &&
                                                x.UnidadTiempo.Estado == ConstantHelpers.EstadoActivo &&
                                                (x.NoEsVisibleMorosidad == null || x.NoEsVisibleMorosidad == false)).OrderBy(x => x.UnidadTiempo.Orden).ThenBy(x => x.CuotaId).ToList();

                List <Cuota> LstCuotas = new List <Cuota>();

                foreach (var cuota in LstCuotasT)
                {
                    if (cuota.EsExtraordinaria.HasValue && cuota.EsExtraordinaria.Value)
                    {
                        var validacionExtra = LstCuotas.FirstOrDefault(x => x.DepartamentoId == cuota.DepartamentoId);
                        if (validacionExtra != null)
                        {
                            if (cuota.UnidadTiempo.Mes == validacionExtra.UnidadTiempo.Mes)
                            {
                                LstCuotas.Remove(validacionExtra);
                                validacionExtra.CuotaExtraordinaria += cuota.CuotaExtraordinaria;
                                validacionExtra.Total += cuota.CuotaExtraordinaria ?? 0;
                                LstCuotas.Add(validacionExtra);
                            }
                            else if (cuota.UnidadTiempo.Mes != validacionExtra.UnidadTiempo.Mes)
                            {
                                //validacionExtra.Total += cuota.CuotaExtraordinaria ?? 0;
                                LstCuotas.Add(cuota);
                            }
                            else if (cuota.FechaEmision.Value.Month == validacionExtra.FechaEmision.Value.Month)
                            {
                                LstCuotas.Remove(validacionExtra);
                                validacionExtra.CuotaExtraordinaria += cuota.CuotaExtraordinaria;
                                validacionExtra.Total += validacionExtra.CuotaExtraordinaria ?? 0;
                                LstCuotas.Add(validacionExtra);
                            }
                        }
                        else
                        {
                            LstCuotas.Add(cuota);
                        }
                    }
                    else
                    {
                        LstCuotas.Add(cuota);
                    }
                }



                foreach (var item in LstCuotas)
                {
                    if (!LstMeses.ContainsKey(item.UnidadTiempo.Orden.Value) && item.UnidadTiempo.Estado == ConstantHelpers.EstadoActivo)
                    {
                        LstMeses.Add(item.UnidadTiempo.Orden.Value, item.UnidadTiempo.Descripcion);
                        LstTotalCuadro.Add(item.UnidadTiempo.Orden.Value, 0);
                    }
                }

                LstTotalCuadro.Add(-1, 0);

                //LstCuotas = LstCuotas.OrderBy(x => x.DepartamentoId).ToList();
                List <Int32> LstDepartamentoId = new List <Int32>();
                LstCuotas = LstCuotas.OrderBy(x => x.DepartamentoId).ToList();
                Decimal TotalGeneral    = 0;
                var     NombreInquilino = String.Empty;
                ContNombreInquilino = 0;
                String  Registro;
                Decimal Total = 0;

                foreach (var item in LstCuotas)
                {
                    Registro = String.Empty;

                    if (LstDepartamentoId.Contains(item.DepartamentoId) == false)
                    {
                        var objTitular = item.Departamento.Propietario.FirstOrDefault(x => x.ParentescoTitular.Contains("Titular") && x.Estado == ConstantHelpers.EstadoActivo);


                        if (objTitular == null)
                        {
                            objTitular = item.Departamento.Propietario.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo);
                        }

                        Registro  = item.Departamento.Numero;
                        Registro += "#" + (objTitular != null ? objTitular.Nombres : String.Empty);


                        if (objTitular != null)
                        {
                            NombreInquilino = objTitular.Inquilino.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo) == null ? String.Empty : objTitular.Inquilino.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo).Nombres;
                        }
                        else
                        {
                            continue;
                        }
                        if (!String.IsNullOrEmpty(NombreInquilino))
                        {
                            ContNombreInquilino++;
                        }

                        Registro += "#" + NombreInquilino;

                        foreach (var mes in LstMeses)
                        {
                            Total = 0;

                            var cuota = LstCuotas.FirstOrDefault(x => x.Departamento.Numero == item.Departamento.Numero && x.UnidadTiempo.Orden == mes.Key);
                            //Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.Total - cuota.CuotaExtraordinaria) : "0");

                            if (cuota != null)
                            {
                                if (objTitular.FechaCreacion.HasValue)
                                {
                                    var fechaComparar = new DateTime();

                                    if (cuota.FechaVencimiento.HasValue)
                                    {
                                        try
                                        {
                                            fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day);
                                        }
                                        catch (Exception ex)
                                        {
                                            try
                                            {
                                                fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day - 1);
                                            }
                                            catch (Exception ex2)
                                            {
                                                fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day - 3);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (cuota.UnidadTiempo.Mes + 1 >= 13)
                                        {
                                            fechaComparar = new DateTime(cuota.UnidadTiempo.Anio + 1, 1, cuota.Departamento.Edificio.DiaMora ?? 30);
                                        }
                                        else
                                        {
                                            fechaComparar = new DateTime(cuota.UnidadTiempo.Anio, cuota.UnidadTiempo.Mes + 1, cuota.Departamento.Edificio.DiaMora ?? 30);
                                        }
                                    }


                                    if (fechaComparar >= objTitular.FechaCreacion.Value.Date)
                                    //if (cuota.FechaEmision.HasValue && cuota.FechaEmision.Value.Month == objTitular.FechaCreacion.Value.Month)
                                    {
                                        if (cuota.Total != cuota.CuotaExtraordinaria)
                                        {
                                            Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.Total - cuota.CuotaExtraordinaria) : "0");
                                        }
                                        else
                                        {
                                            Registro += "#" + String.Empty;
                                        }

                                        Total += cuota != null ? ((cuota.Total - cuota.CuotaExtraordinaria).Value) : 0;
                                    }
                                    else
                                    {
                                        Registro += "#0";
                                    }
                                }
                                else
                                {
                                    if (cuota.Total != cuota.CuotaExtraordinaria)
                                    {
                                        Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.Total - cuota.CuotaExtraordinaria) : "0");
                                    }
                                    else
                                    {
                                        Registro += "#" + String.Empty;
                                    }
                                    Total += cuota != null ? ((cuota.Total - cuota.CuotaExtraordinaria).Value) : 0;
                                }
                            }
                            else
                            {
                                if (cuota == null || cuota.Total != cuota.CuotaExtraordinaria)
                                {
                                    Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.Total - cuota.CuotaExtraordinaria) : "0");
                                }
                                else
                                {
                                    Registro += "#" + String.Empty;
                                }

                                Total += cuota != null ? ((cuota.Total - cuota.CuotaExtraordinaria).Value) : 0;
                            }

                            if (LstTotalCuadro.ContainsKey(mes.Key))
                            {
                                LstTotalCuadro[mes.Key] += Total;
                            }
                            TotalGeneral += Total;
                        }

                        Registro           += "#" + String.Format("{0:#,##0.00}", TotalGeneral);
                        LstTotalCuadro[-1] += TotalGeneral;

                        if (TotalGeneral > 0)
                        {
                            LstCuadro.Add(Registro);
                        }

                        TotalGeneral = 0;

                        LstDepartamentoId.Add(item.DepartamentoId);


                        //var lstHistoria = datacontext.context.DepartamentoHistorico.Where(x => x.DepartamentoId == item.DepartamentoId && x.Fecha < objTitular.FechaCreacion).ToList();
                        var lstHistoria = datacontext.context.DepartamentoHistorico.Where(x => x.DepartamentoId == item.DepartamentoId && x.Propietario.FechaCreacion < objTitular.FechaCreacion).ToList();
                        if (lstHistoria.Count > 0)
                        {
                            var objTitular2 = item.Departamento.Propietario.FirstOrDefault(x => x.ParentescoTitular.Contains("Titular") && x.Estado == ConstantHelpers.EstadoActivo);

                            if (objTitular2 == null)
                            {
                                objTitular2 = item.Departamento.Propietario.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo);
                            }

                            foreach (var historia in lstHistoria)
                            {
                                objTitular = historia.Propietario;


                                Registro  = item.Departamento.Numero;
                                Registro += "#" + (objTitular != null ? objTitular.Nombres : String.Empty);


                                if (objTitular != null)
                                {
                                    NombreInquilino = objTitular.Inquilino.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo) == null ? String.Empty : objTitular.Inquilino.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo).Nombres;
                                }
                                else
                                {
                                    NombreInquilino = String.Empty;
                                }
                                if (!String.IsNullOrEmpty(NombreInquilino))
                                {
                                    ContNombreInquilino++;
                                }

                                Registro += "#" + NombreInquilino;

                                foreach (var mes in LstMeses)
                                {
                                    Total = 0;

                                    var cuota = LstCuotas.FirstOrDefault(x => x.Departamento.Numero == item.Departamento.Numero &&
                                                                         x.UnidadTiempo.Orden == mes.Key);

                                    if (cuota != null)
                                    {
                                        var fechaComparar = new DateTime();

                                        if (cuota.FechaVencimiento.HasValue)
                                        {
                                            try
                                            {
                                                fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day);
                                            }
                                            catch (Exception ex)
                                            {
                                                try
                                                {
                                                    fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day - 1);
                                                }
                                                catch (Exception ex2)
                                                {
                                                    fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day - 3);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            if (cuota.UnidadTiempo.Mes + 1 >= 13)
                                            {
                                                fechaComparar = new DateTime(cuota.UnidadTiempo.Anio + 1, 1, cuota.Departamento.Edificio.DiaMora ?? 30);
                                            }
                                            else
                                            {
                                                fechaComparar = new DateTime(cuota.UnidadTiempo.Anio, cuota.UnidadTiempo.Mes + 1, cuota.Departamento.Edificio.DiaMora ?? 30);
                                            }
                                        }


                                        //if (objTitular2 != null && fechaComparar >= historia.Propietario.FechaCreacion.Value.Date &&
                                        //    (fechaComparar < objTitular2.FechaCreacion.Value.Date
                                        //    || (fechaComparar.Month == objTitular2.FechaCreacion.Value.Month
                                        //    && fechaComparar.Year == objTitular2.FechaCreacion.Value.Year)
                                        //    ))
                                        if (historia.Propietario != null && fechaComparar >= historia.Propietario.FechaCreacion.Value.Date &&
                                            (fechaComparar < objTitular2.FechaCreacion.Value.Date ||
                                             (fechaComparar.Month == historia.Propietario.FechaCreacion.Value.Month &&
                                              fechaComparar.Year == historia.Propietario.FechaCreacion.Value.Year)
                                            ))
                                        //if (cuota.FechaEmision <= historia.Fecha
                                        //    && cuota.FechaEmision.Value.Month == historia.Propietario.FechaCreacion.Value.Month)
                                        {
                                            Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.Total - cuota.CuotaExtraordinaria) : "0");
                                            Total    += cuota != null ? ((cuota.Total - cuota.CuotaExtraordinaria).Value) : 0;
                                        }
                                        else
                                        {
                                            Registro += "#0";
                                        }
                                    }
                                    else
                                    {
                                        Registro += "#0";
                                    }

                                    if (LstTotalCuadro.ContainsKey(mes.Key))
                                    {
                                        LstTotalCuadro[mes.Key] += Total;
                                    }
                                    TotalGeneral += Total;
                                }

                                Registro           += "#" + String.Format("{0:#,##0.00}", TotalGeneral);
                                LstTotalCuadro[-1] += TotalGeneral;
                                TotalGeneral        = 0;

                                LstCuadro.Add(Registro);
                            }
                        }
                    }
                }

                LstCuotas = LstCuotas.Where(x => x.CuotaExtraordinaria > 0).OrderBy(x => x.UnidadTiempoId).ToList();

                foreach (var item in LstCuotas)
                {
                    if (!LstMesesExtraordinaria.ContainsKey(item.UnidadTiempo.Orden.Value))
                    {
                        LstMesesExtraordinaria.Add(item.UnidadTiempo.Orden.Value, item.UnidadTiempo.Descripcion);
                        LstTotalCuadroExtraordinario.Add(item.UnidadTiempo.Orden.Value, 0);
                    }
                }

                LstTotalCuadroExtraordinario.Add(-1, 0);

                LstDepartamentoId = new List <Int32>();
                LstCuotas         = LstCuotas.OrderBy(x => x.DepartamentoId).ToList();
                TotalGeneral      = 0;
                foreach (var item in LstCuotas)
                {
                    Registro = String.Empty;
                    if (LstDepartamentoId.Contains(item.DepartamentoId) == false)
                    {
                        var objTitular = item.Departamento.Propietario.FirstOrDefault(x => x.ParentescoTitular.Contains("Titular") && x.Estado == ConstantHelpers.EstadoActivo);

                        if (objTitular == null)
                        {
                            objTitular = item.Departamento.Propietario.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo);
                        }

                        Registro  = item.Departamento.Numero;
                        Registro += "#" + (objTitular != null ? objTitular.Nombres : String.Empty);


                        if (objTitular != null)
                        {
                            NombreInquilino = String.Empty; //objTitular.Inquilino.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo) == null ? String.Empty : objTitular.Inquilino.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo).Nombres;
                        }
                        else
                        {
                            NombreInquilino = String.Empty;
                        }
                        if (!String.IsNullOrEmpty(NombreInquilino))
                        {
                            ContNombreInquilino++;
                        }

                        //Registro += "#" + NombreInquilino;

                        foreach (var mes in LstMesesExtraordinaria)
                        {
                            Total = 0;

                            var cuota = LstCuotas.FirstOrDefault(x => x.Departamento.Numero == item.Departamento.Numero && x.UnidadTiempo.Orden == mes.Key);
                            //Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.CuotaExtraordinaria) : "0");

                            if (cuota != null)
                            {
                                if (objTitular.FechaCreacion.HasValue)
                                {
                                    var fechaComparar = new DateTime();
                                    if (cuota.FechaVencimiento.HasValue)
                                    {
                                        try
                                        {
                                            fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day);
                                        }
                                        catch (Exception ex)
                                        {
                                            try
                                            {
                                                fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day - 1);
                                            }
                                            catch (Exception ex2)
                                            {
                                                fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day - 3);
                                            }
                                        }
                                    }
                                    else
                                    {
                                        if (cuota.UnidadTiempo.Mes + 1 >= 13)
                                        {
                                            fechaComparar = new DateTime(cuota.UnidadTiempo.Anio + 1, 1, cuota.Departamento.Edificio.DiaMora ?? 30);
                                        }
                                        else
                                        {
                                            fechaComparar = new DateTime(cuota.UnidadTiempo.Anio, cuota.UnidadTiempo.Mes + 1, cuota.Departamento.Edificio.DiaMora ?? 30);
                                        }
                                    }


                                    if (fechaComparar >= objTitular.FechaCreacion.Value.Date)
                                    {
                                        Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.CuotaExtraordinaria) : "0");
                                        Total    += cuota != null ? ((cuota.CuotaExtraordinaria).Value) : 0;
                                    }
                                    else
                                    {
                                        Registro += "#0";
                                    }
                                }
                                else
                                {
                                    Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.CuotaExtraordinaria) : "0");
                                    Total    += cuota != null ? ((cuota.CuotaExtraordinaria).Value) : 0;
                                }
                            }
                            else
                            {
                                Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.CuotaExtraordinaria) : "0");
                                Total    += cuota != null ? ((cuota.CuotaExtraordinaria).Value) : 0;
                            }


                            //                        Total += cuota != null ? (cuota.CuotaExtraordinaria.Value) : 0;

                            if (LstTotalCuadroExtraordinario.ContainsKey(mes.Key))
                            {
                                LstTotalCuadroExtraordinario[mes.Key] += Total;
                            }
                            TotalGeneral += Total;
                        }

                        if (TotalGeneral > 0)
                        {
                            Registro += "#" + String.Format("{0:#,##0.00}", TotalGeneral);
                            LstTotalCuadroExtraordinario[-1] += TotalGeneral;
                            LstCuadroExtraordinaria.Add(Registro);
                        }

                        TotalGeneral = 0;

                        LstDepartamentoId.Add(item.DepartamentoId);

                        //var lstHistoria = datacontext.context.DepartamentoHistorico.Where(x => x.DepartamentoId == item.DepartamentoId && x.Fecha < objTitular.FechaCreacion).ToList();
                        var lstHistoria = datacontext.context.DepartamentoHistorico.Where(x => x.DepartamentoId == item.DepartamentoId && x.Propietario.FechaCreacion < objTitular.FechaCreacion).ToList();
                        if (lstHistoria.Count > 0)
                        {
                            var objTitular2 = item.Departamento.Propietario.FirstOrDefault(x => x.ParentescoTitular.Contains("Titular") && x.Estado == ConstantHelpers.EstadoActivo);

                            if (objTitular2 == null)
                            {
                                objTitular2 = item.Departamento.Propietario.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo);
                            }

                            foreach (var historia in lstHistoria)
                            {
                                objTitular = historia.Propietario;

                                Registro  = item.Departamento.Numero;
                                Registro += "#" + (objTitular != null ? objTitular.Nombres : String.Empty);


                                if (objTitular != null)
                                {
                                    NombreInquilino = objTitular.Inquilino.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo) == null ? String.Empty : objTitular.Inquilino.FirstOrDefault(x => x.Estado == ConstantHelpers.EstadoActivo).Nombres;
                                }
                                else
                                {
                                    NombreInquilino = String.Empty;
                                }
                                if (!String.IsNullOrEmpty(NombreInquilino))
                                {
                                    ContNombreInquilino++;
                                }

                                //Registro += "#" + NombreInquilino;

                                foreach (var mes in LstMesesExtraordinaria)
                                {
                                    Total = 0;

                                    var cuota = LstCuotas.FirstOrDefault(x => x.Departamento.Numero == item.Departamento.Numero && x.UnidadTiempo.Orden == mes.Key);

                                    if (cuota != null)
                                    {
                                        var fechaComparar = new DateTime();
                                        if (cuota.FechaVencimiento.HasValue)
                                        {
                                            try
                                            {
                                                fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day);
                                            }
                                            catch (Exception ex)
                                            {
                                                try
                                                {
                                                    fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day - 1);
                                                }
                                                catch (Exception ex2)
                                                {
                                                    fechaComparar = new DateTime(cuota.FechaVencimiento.Value.Year, cuota.UnidadTiempo.Mes, cuota.FechaVencimiento.Value.Day - 3);
                                                }
                                            }
                                        }
                                        else
                                        {
                                            if (cuota.UnidadTiempo.Mes + 1 >= 13)
                                            {
                                                fechaComparar = new DateTime(cuota.UnidadTiempo.Anio + 1, 1, cuota.Departamento.Edificio.DiaMora ?? 30);
                                            }
                                            else
                                            {
                                                fechaComparar = new DateTime(cuota.UnidadTiempo.Anio, cuota.UnidadTiempo.Mes + 1, cuota.Departamento.Edificio.DiaMora ?? 30);
                                            }
                                        }


                                        //if (objTitular2 != null && fechaComparar >= historia.Propietario.FechaCreacion.Value.Date &&
                                        //    (fechaComparar < objTitular2.FechaCreacion.Value.Date
                                        //    || (fechaComparar.Month == objTitular2.FechaCreacion.Value.Month
                                        //    && fechaComparar.Year == objTitular2.FechaCreacion.Value.Year)
                                        //    ))
                                        if (historia.Propietario != null && fechaComparar >= historia.Propietario.FechaCreacion.Value.Date &&
                                            (fechaComparar < objTitular2.FechaCreacion.Value.Date ||
                                             (fechaComparar.Month == historia.Propietario.FechaCreacion.Value.Month &&
                                              fechaComparar.Year == historia.Propietario.FechaCreacion.Value.Year)
                                            ))
                                        //if (cuota.FechaEmision >= historia.Propietario.FechaCreacion.Value.Date
                                        //    && cuota.FechaEmision.Value.Month == historia.Fecha.Month)
                                        {
                                            Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.CuotaExtraordinaria) : "0");
                                            Total    += cuota != null ? (cuota.CuotaExtraordinaria.Value) : 0;
                                        }
                                        else
                                        {
                                            Registro += "#0";
                                        }
                                    }
                                    else
                                    {
                                        Registro += "#0";
                                    }
                                    if (LstTotalCuadroExtraordinario.ContainsKey(mes.Key))
                                    {
                                        LstTotalCuadroExtraordinario[mes.Key] += Total;
                                    }
                                    TotalGeneral += Total;
                                }
                                if (TotalGeneral > 0)
                                {
                                    Registro += "#" + String.Format("{0:#,##0.00}", TotalGeneral);
                                    LstTotalCuadroExtraordinario[-1] += TotalGeneral;
                                    LstCuadroExtraordinaria.Add(Registro);
                                }
                                TotalGeneral = 0;
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                //throw ex;
            }
        }
        public void Fill(CargarDatosContext datacontext, Int32?_np, Controller c)
        {
            baseFill(datacontext);
            np           = _np ?? 1;
            Edificio     = datacontext.context.Edificio.FirstOrDefault(x => x.EdificioId == EdificioId);
            Departamento = datacontext.context.Departamento.FirstOrDefault(x => x.DepartamentoId == DepartamentoId);

            var lstCuotas = datacontext.context.Cuota.OrderByDescending(x => x.UnidadTiempo.Anio).OrderByDescending(x => x.UnidadTiempo.Mes).
                            Include(x => x.Departamento).
                            Include(x => x.UnidadTiempo).
                            Where(x => x.DepartamentoId == DepartamentoId).
                            AsQueryable();

            var          lstunidadtiempo = datacontext.context.UnidadTiempo.OrderByDescending(X => X.Orden).Where(x => x.Estado == ConstantHelpers.EstadoActivo);
            List <Int32> valAnio         = new List <int>();
            List <Int32> valMes          = new List <int>();
            var          mesActivo       = lstunidadtiempo.FirstOrDefault(x => x.EsActivo).Mes;

            foreach (var item in lstunidadtiempo)
            {
                var mes = item.Descripcion.Substring(0, item.Descripcion.Length - 4);

                if (!valAnio.Contains(item.Anio))
                {
                    LstAnio.Add(new SelectListItem {
                        Value = item.Anio.ToString(), Text = item.Anio.ToString()
                    });
                    valAnio.Add(item.Anio);
                }
                if (!valMes.Contains(item.Mes) && item.Mes <= mesActivo)
                {
                    LstMeses.Add(new SelectListItem {
                        Value = item.Mes.ToString(), Text = mes
                    });
                    valMes.Add(item.Mes);
                }
            }
            if (Anio.HasValue && Mes.HasValue == false)
            {
                lstCuotas = lstCuotas.Where(x => x.UnidadTiempo.Anio == Anio.Value && x.DepartamentoId == DepartamentoId);

                var unidadTiempo = datacontext.context.UnidadTiempo.FirstOrDefault(X => X.Anio == Anio);
                if (unidadTiempo != null)
                {
                    var correcion = datacontext.context.ArchivoCorrecionEdificio.FirstOrDefault(X => X.Tipo.Contains(ConstantHelpers.TipoArchivo.ReporteGeneral) && X.EdificioId == EdificioId && X.UnidadTiempo.Anio == Anio);
                    if (correcion != null)
                    {
                        //var ruta = "/intranet/Resources/Files/Corregidos/"+ correcion.RutaArchivo;
                        var ruta = "~/Resources/Files/Corregidos/" + correcion.RutaArchivo;

                        string fileName = "Reporte general - " + datacontext.context.Edificio.FirstOrDefault(X => X.EdificioId == EdificioId).Nombre + " - " + unidadTiempo.Descripcion + ".pdf";
                        reporte        = new ReporteEdificioUnidadTiempo();
                        reporte.Ruta   = ruta;
                        reporte.Nombre = fileName;
                    }
                    else
                    {
                        reporte = datacontext.context.ReporteEdificioUnidadTiempo.FirstOrDefault(X => X.UnidadTiempo.Anio == Anio.Value && X.EdificioId == EdificioId);
                    }
                }
            }
            else if (Mes.HasValue && Anio.HasValue == false)
            {
                lstCuotas = lstCuotas.Where(x => x.UnidadTiempo.Mes == Mes.Value && x.DepartamentoId == DepartamentoId);

                var unidadTiempo = datacontext.context.UnidadTiempo.FirstOrDefault(X => X.Mes == Mes);
                if (unidadTiempo != null)
                {
                    var correcion = datacontext.context.ArchivoCorrecionEdificio.FirstOrDefault(X => X.Tipo.Contains(ConstantHelpers.TipoArchivo.ReporteGeneral) && X.EdificioId == EdificioId && X.UnidadTiempo.Mes == Mes);
                    if (correcion != null)
                    {
                        //var ruta = "/intranet/Resources/Files/Corregidos/"+ correcion.RutaArchivo;
                        var ruta = "~/Resources/Files/Corregidos/" + correcion.RutaArchivo;

                        string fileName = "Reporte general - " + datacontext.context.Edificio.FirstOrDefault(X => X.EdificioId == EdificioId).Nombre + " - " + unidadTiempo.Descripcion + ".pdf";
                        reporte        = new ReporteEdificioUnidadTiempo();
                        reporte.Ruta   = ruta;
                        reporte.Nombre = fileName;
                    }
                    else
                    {
                        reporte = datacontext.context.ReporteEdificioUnidadTiempo.FirstOrDefault(X => X.UnidadTiempo.Mes == Mes.Value && X.EdificioId == EdificioId);
                    }
                }
            }
            else if (Mes.HasValue && Anio.HasValue)
            {
                lstCuotas = lstCuotas.Where(x => x.UnidadTiempo.Mes == Mes.Value && x.DepartamentoId == DepartamentoId && x.UnidadTiempo.Anio == Anio);

                var unidadTiempo = datacontext.context.UnidadTiempo.FirstOrDefault(X => X.Mes == Mes && X.Anio == Anio);



                if (unidadTiempo != null)
                {
                    UnidadTiempoId = unidadTiempo.UnidadTiempoId;
                    var correcion = datacontext.context.ArchivoCorrecionEdificio.FirstOrDefault(X => X.Tipo.Contains(ConstantHelpers.TipoArchivo.ReporteGeneral) && X.EdificioId == EdificioId && X.UnidadTiempo.Mes == Mes && X.UnidadTiempo.Anio == Anio);
                    if (correcion != null)
                    {
                        //var ruta = "/intranet/Resources/Files/Corregidos/"+ correcion.RutaArchivo;
                        var ruta = "~/Resources/Files/Corregidos/" + correcion.RutaArchivo;

                        string fileName = "Reporte general - " + datacontext.context.Edificio.FirstOrDefault(X => X.EdificioId == EdificioId).Nombre + " - " + unidadTiempo.Descripcion + ".pdf";
                        reporte        = new ReporteEdificioUnidadTiempo();
                        reporte.Ruta   = ruta;
                        reporte.Nombre = fileName;
                    }
                    else
                    {
                        reporte = datacontext.context.ReporteEdificioUnidadTiempo.FirstOrDefault(X => X.UnidadTiempo.Mes == Mes.Value && X.EdificioId == EdificioId && X.UnidadTiempo.Anio == Anio);
                    }
                }
            }
            else
            {
                Int32 unidadtiempoid = lstunidadtiempo.First().UnidadTiempoId;
                lstCuotas = lstCuotas.Where(x => x.DepartamentoId == DepartamentoId && x.UnidadTiempoId == unidadtiempoid);
            }
            var b = datacontext.context.Cuota.Where(X => X.DepartamentoId == DepartamentoId && X.Pagado).OrderByDescending(X => X.UnidadTiempo.Orden).ToList();
            var ultimaTiempoPagada = b.FirstOrDefault();

            if (ultimaTiempoPagada != null)
            {
                UltimaPagada = ultimaTiempoPagada.UnidadTiempo.Descripcion;
            }
            else
            {
                UltimaPagada = "Nunca pago cuota";
            }

            LstEstadoCuenta = lstCuotas.ToPagedList(np.Value, ConstantHelpers.DEFAULT_PAGE_SIZE);
        }
Пример #4
0
        public void CargarDatos(CargarDatosContext dataContext)
        {
            baseFill(dataContext);
            UnidadTiempo _UnidadTiempo = dataContext.context.UnidadTiempo.FirstOrDefault(x => x.EsActivo);

            DesUnidadTiempo = _UnidadTiempo == null ? String.Empty : _UnidadTiempo.Descripcion;

            Int32    EdificioId = dataContext.session.GetEdificioId();
            Edificio _Edificio  = dataContext.context.Edificio.FirstOrDefault(x => x.EdificioId == EdificioId);

            DesEdificio = _Edificio == null ? String.Empty : _Edificio.Nombre;

            Int32        DepartamentoId = dataContext.session.GetDepartamentoId();
            Departamento _Departamento  = dataContext.context.Departamento.FirstOrDefault(x => x.DepartamentoId == DepartamentoId);

            this.AlertaMora = _Departamento.AlertaMora;
            DesDepartamento = _Departamento == null ? String.Empty : _Departamento.Numero;

            if (_UnidadTiempo == null)
            {
                MontoCuota = 0;
            }
            else
            {
                Cuota _Cuota = dataContext.context.Cuota.FirstOrDefault(x => x.UnidadTiempoId == _UnidadTiempo.UnidadTiempoId && x.DepartamentoId == DepartamentoId);
                MontoCuota     = _Cuota == null ? Decimal.Zero : _Cuota.Total;
                DesEstadoCuota = _Cuota == null ? String.Empty : _Cuota.Estado;
            }

            /*************************************************************************/
            if (AlertaMora)
            {
                var fechaActual        = DateTime.Now;
                var unidadTiempoActivo = dataContext.context.UnidadTiempo.FirstOrDefault(X => X.EsActivo);
                var LstCuotas          = dataContext.context.Cuota.Include(x => x.Departamento)
                                         .Include(x => x.UnidadTiempo)
                                         .Include(x => x.Departamento.Propietario)
                                         .Where(x => x.Departamento.EdificioId == EdificioId && x.Pagado == false &&
                                                x.UnidadTiempoId < unidadTiempoActivo.UnidadTiempoId && x.UnidadTiempo.Estado == ConstantHelpers.EstadoActivo &&
                                                x.DepartamentoId == DepartamentoId &&
                                                (x.UnidadTiempo.Mes - fechaActual.Month != 0 || x.UnidadTiempo.Anio - fechaActual.Year != 0)).OrderBy(x => x.UnidadTiempo.Orden).ToList();


                foreach (var item in LstCuotas)
                {
                    if (!LstMeses.ContainsKey(item.UnidadTiempo.Orden.Value))
                    {
                        LstMeses.Add(item.UnidadTiempo.Orden.Value, item.UnidadTiempo.Descripcion);
                        LstTotalCuadro.Add(item.UnidadTiempo.Orden.Value, 0);
                    }
                }

                LstTotalCuadro.Add(-1, 0);

                LstCuotas = LstCuotas.OrderBy(x => x.DepartamentoId).ToList();
                List <Int32> LstDepartamentoId = new List <Int32>();
                LstCuotas = LstCuotas.OrderBy(x => x.DepartamentoId).ToList();
                Decimal TotalGeneral    = 0;
                var     NombreInquilino = String.Empty;
                ContNombreInquilino = 0;
                String  Registro;
                Decimal Total = 0;
                foreach (var item in LstCuotas)
                {
                    Registro = String.Empty;

                    if (LstDepartamentoId.Contains(item.DepartamentoId) == false)
                    {
                        var objTitular = item.Departamento.Propietario.FirstOrDefault(x => x.ParentescoTitular.Contains("Titular"));

                        if (objTitular == null)
                        {
                            objTitular = item.Departamento.Propietario.FirstOrDefault();
                        }

                        Registro  = item.Departamento.Numero;
                        Registro += "#" + (objTitular != null ? objTitular.Nombres : String.Empty);


                        if (objTitular != null)
                        {
                            NombreInquilino = objTitular.Inquilino.FirstOrDefault() == null ? String.Empty : objTitular.Inquilino.FirstOrDefault().Nombres;
                        }
                        else
                        {
                            NombreInquilino = String.Empty;
                        }
                        if (!String.IsNullOrEmpty(NombreInquilino))
                        {
                            ContNombreInquilino++;
                        }

                        Registro += "#" + NombreInquilino;

                        foreach (var mes in LstMeses)
                        {
                            Total = 0;

                            var cuota = LstCuotas.FirstOrDefault(x => x.Departamento.Numero == item.Departamento.Numero && x.UnidadTiempo.Orden == mes.Key);
                            Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.Total - cuota.CuotaExtraordinaria) : "0");

                            Total += cuota != null ? ((cuota.Total - cuota.CuotaExtraordinaria).Value) : 0;

                            if (LstTotalCuadro.ContainsKey(mes.Key))
                            {
                                LstTotalCuadro[mes.Key] += Total;
                            }
                            TotalGeneral += Total;
                        }

                        Registro           += "#" + String.Format("{0:#,##0.00}", TotalGeneral);
                        LstTotalCuadro[-1] += TotalGeneral;
                        TotalGeneral        = 0;

                        LstDepartamentoId.Add(item.DepartamentoId);
                        LstCuadro.Add(Registro);
                    }
                }
                LstCuotas = LstCuotas.Where(x => x.CuotaExtraordinaria > 0).ToList();

                foreach (var item in LstCuotas)
                {
                    if (!LstMesesExtraordinaria.ContainsKey(item.UnidadTiempo.Orden.Value))
                    {
                        LstMesesExtraordinaria.Add(item.UnidadTiempo.Orden.Value, item.UnidadTiempo.Descripcion);
                        LstTotalCuadroExtraordinario.Add(item.UnidadTiempo.Orden.Value, 0);
                    }
                }

                LstTotalCuadroExtraordinario.Add(-1, 0);

                LstDepartamentoId = new List <Int32>();
                LstCuotas         = LstCuotas.OrderBy(x => x.DepartamentoId).ToList();
                TotalGeneral      = 0;
                foreach (var item in LstCuotas)
                {
                    Registro = String.Empty;
                    if (LstDepartamentoId.Contains(item.DepartamentoId) == false)
                    {
                        var objTitular = item.Departamento.Propietario.FirstOrDefault(x => x.ParentescoTitular.Contains("Titular"));

                        if (objTitular == null)
                        {
                            objTitular = item.Departamento.Propietario.FirstOrDefault();
                        }

                        Registro  = item.Departamento.Numero;
                        Registro += "#" + (objTitular != null ? objTitular.Nombres : String.Empty);


                        if (objTitular != null)
                        {
                            NombreInquilino = objTitular.Inquilino.FirstOrDefault() == null ? String.Empty : objTitular.Inquilino.FirstOrDefault().Nombres;
                        }
                        else
                        {
                            NombreInquilino = String.Empty;
                        }
                        if (!String.IsNullOrEmpty(NombreInquilino))
                        {
                            ContNombreInquilino++;
                        }

                        Registro += "#" + NombreInquilino;

                        foreach (var mes in LstMeses)
                        {
                            Total = 0;

                            var cuota = LstCuotas.FirstOrDefault(x => x.Departamento.Numero == item.Departamento.Numero && x.UnidadTiempo.Orden == mes.Key);
                            Registro += "#" + (cuota != null ? String.Format("{0:#,##0.00}", cuota.CuotaExtraordinaria) : "0");

                            Total += cuota != null ? (cuota.CuotaExtraordinaria.Value) : 0;

                            if (LstTotalCuadroExtraordinario.ContainsKey(mes.Key))
                            {
                                LstTotalCuadroExtraordinario[mes.Key] += Total;
                            }
                            TotalGeneral += Total;
                        }
                        Registro += "#" + String.Format("{0:#,##0.00}", Total);
                        LstTotalCuadroExtraordinario[-1] += TotalGeneral;
                        TotalGeneral = 0;

                        LstDepartamentoId.Add(item.DepartamentoId);
                        LstCuadroExtraordinaria.Add(Registro);
                    }
                }
            }
            /*****************************************************************************/
        }