internal static DataTable GetDataTable(Model.Context db, int _idUsuario) { var _result = new DataTable("table"); _result.Columns.Add("idcaixa", Type.GetType("System.Int32")); _result.Columns.Add("situacao", Type.GetType("System.String")); _result.Columns.Add("saldoatual", Type.GetType("System.Decimal")); _result.Columns.Add("saldoanterior", Type.GetType("System.Decimal")); _result.Columns.Add("valor", Type.GetType("System.Decimal")); _result.Columns.Add("dtlancamento", Type.GetType("System.DateTime")); _result.Columns.Add("nmusuario", Type.GetType("System.String")); _result.Columns.Add("descricao", Type.GetType("System.String")); var contaPagarBLL = new ContaPagarBLL(db, _idUsuario); var contasPagar = contaPagarBLL.Find(u => u.situacao != "Cancelado") .Select(u => new { u.situacao, u.valorConta, u.valorPago, u.vencimento, }).ToList(); var contaReceberBLL = new ContaReceberBLL(db, _idUsuario); var contasReceber = contaReceberBLL.Find(u => u.situacao != "Cancelado") .Select(u => new { u.situacao, u.valorConta, u.valorPago, u.vencimento, }).ToList(); var inicio = new DateTime((DateTime.Now.Year-1), 1, 1); var fim = inicio.AddMonths(1); CultureInfo culture = new CultureInfo("pt-BR"); DateTimeFormatInfo dtfi = culture.DateTimeFormat; for (int i = 1; i <= 48; i++) { var pagamento = contasPagar.Any(u => u.situacao == "Aguardando pagamento" && u.vencimento >= inicio && u.vencimento < fim); var recebimento = contasReceber.Any(u => u.situacao == "Aguardando pagamento" && u.vencimento >= inicio && u.vencimento < fim); if (pagamento || recebimento) { var valorPagar = contasPagar.Where(u => u.situacao == "Aguardando pagamento" && u.vencimento >= inicio && u.vencimento < fim).Sum(u => u.valorConta); var valorReceber= contasReceber.Where(u => u.situacao == "Aguardando pagamento" && u.vencimento >= inicio && u.vencimento < fim).Sum(u => u.valorConta); var row = _result.NewRow(); row["idcaixa"] = i; row["dtlancamento"] = inicio; row["situacao"] = culture.TextInfo.ToTitleCase(dtfi.GetMonthName(inicio.Month)); row["descricao"] = "CONTA A PAGAR"; row["valor"] = valorPagar; _result.Rows.Add(row); row = _result.NewRow(); row["dtlancamento"] = inicio; row["situacao"] = culture.TextInfo.ToTitleCase(dtfi.GetMonthName(inicio.Month)); row["descricao"] = "CONTA A RECEBER"; row["valor"] = valorReceber; _result.Rows.Add(row); row = _result.NewRow(); row["dtlancamento"] = inicio; row["situacao"] = culture.TextInfo.ToTitleCase(dtfi.GetMonthName(inicio.Month)); row["descricao"] = "PREVISÃO"; row["valor"] = valorReceber - valorPagar; _result.Rows.Add(row); } fim = fim.AddMonths(1); inicio = inicio.AddMonths(1); } return _result; }
internal static DataTable GetDataTable(Model.Context db, int _idUsuario) { var hoje = DateTime.Now.Date; var _result = new DataTable("table"); _result.Columns.Add("idcaixa", Type.GetType("System.Int32")); _result.Columns.Add("situacao", Type.GetType("System.String")); _result.Columns.Add("saldoatual", Type.GetType("System.Decimal")); _result.Columns.Add("saldoanterior", Type.GetType("System.Decimal")); _result.Columns.Add("valor", Type.GetType("System.Decimal")); _result.Columns.Add("dtlancamento", Type.GetType("System.DateTime")); _result.Columns.Add("nmusuario", Type.GetType("System.String")); _result.Columns.Add("descricao", Type.GetType("System.String")); var contaPagarBLL = new ContaPagarBLL(db, _idUsuario); var contasPagar = contaPagarBLL.Find(u => u.situacao != "Cancelado") .Select(u => new { u.situacao, u.valorConta, u.valorPago, u.vencimento, }).ToList(); var contaReceberBLL = new ContaReceberBLL(db, _idUsuario); var contasReceber= contaReceberBLL.Find(u => u.situacao != "Cancelado") .Select(u => new { u.situacao, u.valorConta, u.valorPago, u.vencimento, }).ToList(); var row = _result.NewRow(); row["valor"] = contasPagar.Where(u => u.situacao == "Aguardando pagamento" && u.vencimento < hoje).Sum(u => u.valorConta); row["descricao"] = "Contas a pagar [VENCIDA]"; _result.Rows.Add(row); row = _result.NewRow(); row["valor"] = contasPagar.Where(u => u.situacao == "Aguardando pagamento" && u.vencimento >= hoje).Sum(u => u.valorConta); row["descricao"] = "Contas a pagar [A VENCER]"; _result.Rows.Add(row); row = _result.NewRow(); row["valor"] = contasReceber.Where(u => u.situacao == "Aguardando pagamento" && u.vencimento < hoje).Sum(u => u.valorConta); row["descricao"] = "Contas a receber [VENCIDA]"; _result.Rows.Add(row); row = _result.NewRow(); row["valor"] = contasReceber.Where(u => u.situacao == "Aguardando pagamento" && u.vencimento >= hoje).Sum(u => u.valorConta); row["descricao"] = "Contas a receber [A VENCER]"; _result.Rows.Add(row); //foreach (var item in items) //{ // var row = _result.NewRow(); // row["idcaixa"] = item.idcaixa; // row["situacao"] = item.situacao; // row["saldoatual"] = item.saldoatual; // row["saldoanterior"] = item.saldoanterior; // row["valor"] = item.valor; // row["dtlancamento"] = item.dtlancamento; // row["nmusuario"] = item.nmusuario; // row["descricao"] = item.descricao; // _result.Rows.Add(row); //} return _result; }