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