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;
            }
示例#2
0
            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;
            }