/// <summary> /// Filtras as parcelas por status /// </summary> /// <param name="parcelas"></param>Lista de parcelas /// <param name="status"></param>Status das parcelas /// <returns></returns> public List <LancamentoFinanceiro> FindParcelasBy(TypeStatusLancamentoFinanceiro status) { var ctx = new BalcaoContext(); //filtrando as parcelas IEnumerable <LancamentoFinanceiro> parcelasFilter = filtrarParcelas(ctx.LancamentosFinanceiros, status); //recebeu o filtro return(parcelasFilter != null?parcelasFilter.ToList() : null); }
public ReportParameter(DateTime dtInicio, DateTime dtFim, CliFor cliente, TypeStatusLancamentoFinanceiro status, TypeLancamentoFinanceiro tipo, int idCentroCusto, string codigoMatriz) { this.IdCliente = cliente != null ? cliente.IdCliFor : 0; this.DataInicio = dtInicio; this.DataFim = dtFim; this.Status = (Int16)status; this.Tipo = (Int16)tipo; this.CodigoMatriz = codigoMatriz; this.IdCentroCusto = idCentroCusto; }
/// <summary> /// Filtras as parcelas pelo cliente e status /// </summary> public List <LancamentoFinanceiro> FindParcelasBy(CliFor cliFor, TypeStatusLancamentoFinanceiro status) { var ctx = new BalcaoContext(); //filtrando parcelas por cliente var parcelas = ctx.LancamentosFinanceiros.Where(p => p.IdCliFor == cliFor.IdCliFor); //filtrando as parcelas IEnumerable <LancamentoFinanceiro> parcelasFilter = filtrarParcelas(parcelas, status); //recebeu o filtro return(parcelasFilter != null?parcelasFilter.ToList() : null); }
//parcela criada quando existir saldo restante public LancamentoFinanceiro(Nullable <int> idVenda, Decimal valorParcela, DateTime dtVencimento, int seqParcela, TypeStatusLancamentoFinanceiro status, String historico, Int32 idCliFor) { this.IdVenda = idVenda; this.ValorLancamento = valorParcela; this.ValorJuros = 0; this.DataVencimento = dtVencimento; this.DiasPrazo = DataUtil.CalcularDias(dtVencimento, dtVencimento); this.SequencialParcela = seqParcela; this.StatusLancamento = status; this.Observacao = historico; this.IdCliFor = idCliFor; }
//parcela criada na venda public LancamentoFinanceiro(Venda venda, Decimal valorParcela, DateTime dtParcela, DateTime dtVencimento, int seqParcela, TypeStatusLancamentoFinanceiro status) : this() { this.IdCliFor = venda.IdCliForVenda; this.IdFilial = venda.IdFilial; this.IdCentroCusto = venda.IdCentroCusto; this.ValorLancamento = valorParcela; this.ValorJuros = 0; this.DataLancamento = venda.DataVenda; this.DataVencimento = dtVencimento; this.DiasPrazo = DataUtil.CalcularDias(dtParcela, dtVencimento); this.SequencialParcela = seqParcela; this.StatusLancamento = status; if (this.DiasPrazo < 0) { this.DiasPrazo = 0; } this.TipoLancamento = TypeLancamentoFinanceiro.Receber; }
public async Task <List <LancamentoFinanceiro> > FindLancamentosLikeCliente(string search, TypeLancamentoFinanceiro tipo, TypeStatusLancamentoFinanceiro status) { using (var ctx = new BalcaoContext()) { ctx.LazyLoading(false); //Observação: enum todos eh somente uma referencia para montar o select //todos os tipos e todos os status if (tipo == TypeLancamentoFinanceiro.Todos && status == TypeStatusLancamentoFinanceiro.Todos) { return(await ctx.LancamentosFinanceiros .Include(l => l.CliFor) .Include(l => l.Venda) .Include(l => l.FormaPagamento) .Include(l => l.Venda.FormaPagamentoVenda) .Include(l => l.CentroCusto) .Include(l => l.Filial) .Where(l => l.CliFor.RazaoSocial.Contains(search)) .ToListAsync()); } //NOVO else if (tipo != TypeLancamentoFinanceiro.Todos && status == TypeStatusLancamentoFinanceiro.Pendente) { var lancamentos = await ctx.LancamentosFinanceiros .Include(l => l.CliFor) .Include(l => l.Venda) .Include(l => l.FormaPagamento) .Include(l => l.Venda.FormaPagamentoVenda) .Include(l => l.CentroCusto) .Include(l => l.Filial) .Where(l => l.CliFor.RazaoSocial.Contains(search) && l.DataPagamento == null && l.StatusLancamento != TypeStatusLancamentoFinanceiro.Cancelado && l.TipoLancamento == tipo) .ToListAsync(); return(lancamentos); } //NOVO else if (tipo == TypeLancamentoFinanceiro.Todos && status == TypeStatusLancamentoFinanceiro.Pendente) { var lancamentos = await ctx.LancamentosFinanceiros .Include(l => l.CliFor) .Include(l => l.Venda) .Include(l => l.FormaPagamento) .Include(l => l.Venda.FormaPagamentoVenda) .Include(l => l.CentroCusto) .Include(l => l.Filial) .Where(l => l.CliFor.RazaoSocial.Contains(search) && l.DataPagamento == null && l.StatusLancamento != TypeStatusLancamentoFinanceiro.Cancelado) .ToListAsync(); return(lancamentos); } //filtrando pelo tipo e status else if (tipo != TypeLancamentoFinanceiro.Todos && status != TypeStatusLancamentoFinanceiro.Todos) { var lancamentos = await ctx.LancamentosFinanceiros .Include(l => l.CliFor) .Include(l => l.Venda) .Include(l => l.FormaPagamento) .Include(l => l.Venda.FormaPagamentoVenda) .Include(l => l.CentroCusto) .Include(l => l.Filial) .Where(l => l.StatusLancamento == status && l.TipoLancamento == tipo && l.CliFor.RazaoSocial.Contains(search)) .ToListAsync(); return(lancamentos); } //filtrando pelo tipo e status else if (tipo != TypeLancamentoFinanceiro.Todos && status != TypeStatusLancamentoFinanceiro.Todos) { var lancamentos = await ctx.LancamentosFinanceiros .Include(l => l.CliFor) .Include(l => l.Venda) .Include(l => l.FormaPagamento) .Include(l => l.Venda.FormaPagamentoVenda) .Include(l => l.CentroCusto) .Include(l => l.Filial) .Where(l => l.StatusLancamento == status && l.TipoLancamento == tipo && l.CliFor.RazaoSocial.Contains(search)) .ToListAsync(); return(lancamentos); } //todos lançamentos filtrado pelo status else if (tipo == TypeLancamentoFinanceiro.Todos && status != TypeStatusLancamentoFinanceiro.Todos) { var lancamentos = await ctx.LancamentosFinanceiros .Include(l => l.CliFor) .Include(l => l.Venda) .Include(l => l.FormaPagamento) .Include(l => l.Venda.FormaPagamentoVenda) .Include(l => l.CentroCusto) .Include(l => l.Filial) .Where(l => l.StatusLancamento == status && l.CliFor.RazaoSocial.Contains(search)) .ToListAsync(); return(lancamentos); } //todos lançamentos filtrado do tipo else { var lancamentos = await ctx.LancamentosFinanceiros .Include(l => l.CliFor) .Include(l => l.Venda) .Include(l => l.FormaPagamento) .Include(l => l.Venda.FormaPagamentoVenda) .Include(l => l.CentroCusto) .Include(l => l.Filial) .Where(l => l.TipoLancamento == tipo && l.CliFor.RazaoSocial.Contains(search)) .ToListAsync(); return(lancamentos); } } }
//chamado internamente private IEnumerable <LancamentoFinanceiro> filtrarParcelas(IEnumerable <LancamentoFinanceiro> parcelas, TypeStatusLancamentoFinanceiro status) { //em aberto //quitadas if (status == TypeStatusLancamentoFinanceiro.Aberto || status == TypeStatusLancamentoFinanceiro.Pago) { return(parcelas.Where(p => p.StatusLancamento == status)); } //vencidas else if (status == TypeStatusLancamentoFinanceiro.Vencido) { return(parcelas.Where(p => p.DataVencimento <= DateTime.Now || p.StatusLancamento == TypeStatusLancamentoFinanceiro.Vencido)); } //todos os status else { return(parcelas); } }