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 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); } } } /*****************************************************************************/ }