Beispiel #1
0
        private DataSet GetDataSet(Model.Context db, List<int?> list, DateTime? dtInicio, DateTime? dtFim, int _idUsuario, string tipo)
        {
            var bll = new ContaPagarBLL(db, _idUsuario);

            var query = bll.Find(u => u.situacao == "Aguardando pagamento");

            if (dtInicio != null)
            {
                query = query.Where(u => u.vencimento >= dtInicio);
            }

            if (dtFim != null)
            {
                dtFim = dtFim.Value.AddDays(1);
                query = query.Where(u => u.vencimento < dtFim);
            }
            query = query.Where(u => list.Any(k => k == u.idFornecedor));
              var itens = query.Select(u => new Relatorio
                {
                    idcontapagar = u.idContaPagar,
                    parcela = u.parcela,
                    descricao = u.descricao,
                    vencimento = u.vencimento,
                    pagamento = u.pagamento,
                    valorconta = u.valorConta,
                    valorpago = u.valorPago,
                    situacao = u.situacao,
                    flformapagamento = u.flFormaPagamento,
                    nome = u.Fornecedor.nome,
                    tipo = u.Fornecedor.tipo
                }).ToList();
            var dataTable = Relatorio.GetDataTable(itens, tipo);

            var dataset = new DataSet();
            dataset.Tables.Add(dataTable);

            return dataset;
        }
            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;
            }
Beispiel #3
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;
            }
        public ActionResult Vulso(CompraVM model)
        {
            if (string.IsNullOrEmpty(model.Fornecedor.nome))
            {
                ModelState.AddModelError("Fornecedor.nome", "Informe o fornecedor");
            }
            if (model.total <= 0)
            {
                ModelState.AddModelError("total", "Informe o total");
            }
            if (ModelState.IsValid)
            {
                try
                {
                    LogBLL.Insert(new LogDado("Vulso", "Compra", _idUsuario));
                    using (var db = new Context())
                    {
                        using (var trans = new RP.DataAccess.RPTransactionScope(db))
                        {
                            var _compra = model.GetCompra();

                            var _bll = new BLL.CompraBLL(db, _idUsuario);

                            _bll.Insert(_compra);
                            var _contaBLL = new ContaPagarBLL(db, _idUsuario);
                            var _caixaBLL = new CaixaBLL(db, _idUsuario);
                            if (model.Parcelas != null && model.Parcelas.Any())
                            {
                                int nrParcelas = model.Parcelas.Count;
                                foreach (var item in model.Parcelas)
                                {
                                    string situacao = ContaPagar.SITUACAO_AGUARDANDO_PAGAMENTO;
                                    decimal? vlPago = null;
                                    DateTime? dtPagamento = null;
                                    if (item.dtVencimento <= DateTime.Now.Date)
                                    {
                                        vlPago = item.vlParcela;
                                        situacao = ContaPagar.SITUACAO_PAGO;
                                        dtPagamento = item.dtVencimento;
                                    }

                                    // Lança conta a pagar referente a parcela
                                    var _conta = new ContaPagar
                                    {
                                        idFornecedor = _compra.idFornecedor,
                                        parcela = item.nrParcela,
                                        descricao = "Conta a pagar referente a " + item.nrParcela + "º parcela.  " + item.dsObservacao,
                                        vencimento = item.dtVencimento,
                                        pagamento = dtPagamento,
                                        valorConta = item.vlParcela,
                                        valorPago = vlPago,
                                        situacao = situacao,
                                        flFormaPagamento = item.flFormaPagamento,
                                        Compra = _compra
                                    };
                                    _contaBLL.Insert(_conta);

                                    //se a data de vencimento for a atual lança a entrada no caixa
                                    if (item.dtVencimento <= DateTime.Now.Date)
                                    {
                                        _caixaBLL.Insert(new Caixa
                                        {
                                            ContaPagar = _conta,
                                            situacao = Caixa.CORENTE,
                                            valor = (item.vlParcela * -1),
                                            descricao = _compra.descricao + " [" + model.Fornecedor.nome + "] " + item.dsObservacao,
                                            dtLancamento = item.dtVencimento
                                        });
                                    }
                                }
                            }
                            else
                            {
                                var _conta = new ContaPagar
                                {
                                    idFornecedor = _compra.idFornecedor,
                                    parcela = 1,
                                    descricao = "Conta a pagar referente a " + model.descricao + " [Fornecedor:" + model.Fornecedor.nome + "] ",
                                    vencimento = DateTime.Now,
                                    pagamento = DateTime.Now,
                                    valorConta = model.total,
                                    valorPago = model.total,
                                    situacao = ContaPagar.SITUACAO_PAGO,
                                    flFormaPagamento = string.Empty,
                                    Compra = _compra
                                };
                                _contaBLL.Insert(_conta);
                                _caixaBLL.Insert(new Caixa
                                {
                                    ContaPagar = _conta,
                                    situacao = Caixa.CORENTE,
                                    valor = (model.total * -1),
                                    descricao = model.descricao + " [" + model.Fornecedor.nome + "] " + model.descricao,
                                    dtLancamento = DateTime.Now
                                });
                            }
                            _bll.SaveChanges();

                            trans.Complete();

                            this.AddFlashMessage("Compra realizada com sucesso!", FlashMessage.SUCCESS);
                            return RedirectToAction("Index", "Compra");
                        }
                    }
                }
                catch (Exception ex)
                {
                    RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario);
                    return RedirectToAction("Index", "Erro", new { area = string.Empty });
                }
            }
            return View(model);
        }