private async Task Calcular(bool valor) { Cuentas.Clear(); if (CuentaCorrientes != null) { if (Operaciones != null) { var bancos = Operaciones.Where(x => x.FechaVencimiento <= DateTime.Now && x.CuentaCorrienteId != 3).Sum(x => x.Debe) - Operaciones.Where(x => x.FechaVencimiento <= DateTime.Now && x.CuentaCorrienteId != 3).Sum(x => x.Haber); Cuentas.Add(new CuentaDto { Id = 1, DescripcionCuenta = $"Bancos", SaldoCuenta = bancos }); } foreach (var i in CuentaCorrientes) { if (valor) { Operaciones = new ObservableCollection <OperacionDto>(await ApiProcessor.GetApi <OperacionDto[]>($"Operacion/GetByFecha/{FechaDesde.ToString("MM-dd-yyyy")}/{FechaHasta.ToString("MM-dd-yyyy")}/{i.Id}")); } else { Operaciones = new ObservableCollection <OperacionDto>(await ApiProcessor.GetApi <OperacionDto[]>($"Operacion/GetByBanco/{i.BancoId}")); } var total = 0m; foreach (var item in Operaciones.Where(x => x.FechaEmision.Value.Year == DateTime.Now.Year && x.CuentaCorrienteId != 3).OrderBy(x => x.FechaEmision)) { if (item.Haber != 0) { total -= (decimal)item.Haber; } else { total += (decimal)item.Debe; } } if (i.BancoId != 3) { Cuentas.Add(new CuentaDto { Id = 1, DescripcionSubRubro = $"Banco {i.Banco.RazonSocial}", SaldoSubRubro = total }); } } foreach (var i in CuentaCorrientes.Where(x => x.BancoId == 3)) { var valoresDep = 0m; foreach (var item in Operaciones.Where(x => x.FechaEmision.Value.Year == DateTime.Now.Year).OrderBy(x => x.FechaEmision)) { if (item.Haber != 0) { valoresDep -= (decimal)item.Haber; } else { valoresDep += (decimal)item.Debe; } } Cuentas.Add(new CuentaDto { Id = 1, DescripcionCuenta = $"{i.Banco.RazonSocial}", SaldoCuenta = valoresDep }); } } if (DetalleCaja != null) { var caja = DetalleCaja.Where(x => x.Caja.FechaApertura == DetalleCaja.Max(y => y.Caja.FechaApertura)); var total = caja.Where(x => x.TipoMovimiento == Constantes.TipoMovimiento.Ingreso).Sum(x => x.Monto) - caja.Where(x => x.TipoMovimiento == Constantes.TipoMovimiento.Egreso).Sum(x => x.Monto); Cuentas.Add(new CuentaDto { Id = 1, DescripcionCuenta = $"Caja", SaldoCuenta = total }); } if (ComprobantesSalidas != null) { var lista = ComprobantesSalidas.Where(x => x.SubRubroId != null).GroupBy(x => x.SubRubro.Rubro.Descripcion).ToList(); foreach (var item in lista) { Cuentas.Add(new CuentaDto { DescripcionCuenta = item.Key, SaldoCuenta = item.Sum(x => x.Total) }); var sub = item.GroupBy(x => x.SubRubro.Descripcion).ToList(); foreach (var i in sub) { Cuentas.Add(new CuentaDto { DescripcionSubRubro = i.Key, SaldoSubRubro = i.Sum(x => x.Total) }); } } } if (ComprobanteEntrada != null) { var lista = ComprobanteEntrada.Where(x => x.SubRubroId != null).GroupBy(x => x.SubRubro.Rubro.Descripcion).ToList(); foreach (var item in lista) { Cuentas.Add(new CuentaDto { DescripcionCuenta = item.Key, SaldoCuenta = item.Sum(x => x.Total) }); var sub = item.GroupBy(x => x.SubRubro.Descripcion).ToList(); foreach (var i in sub) { Cuentas.Add(new CuentaDto { DescripcionSubRubro = i.Key, SaldoSubRubro = i.Sum(x => x.Total) }); } } } }