public List <ContasAPagar> BuscarPeloFiltro(GeracaoCNABContaPagarViewModel filtro) { Expression <Func <ContasAPagar, bool> > predicate = x => x.ContaFinanceira.Id == filtro.ContaFinanceira.Id; var somenteGerados = filtro.TipoFiltro == TipoFiltroGeracaoCNAB.Gerados; if (filtro.FormaPagamento > 0) { predicate = predicate.And(x => x.FormaPagamento == filtro.FormaPagamento); } else { predicate = predicate.And(x => x.FormaPagamento == FormaPagamento.Boleto || x.FormaPagamento == FormaPagamento.Doc || x.FormaPagamento == FormaPagamento.Ted || x.FormaPagamento == FormaPagamento.DDA || x.FormaPagamento == FormaPagamento.ImpostoComCodigo || x.FormaPagamento == FormaPagamento.BoletoConcessionaria); } if (filtro.Unidade != null && filtro.Unidade.Id > 0) { predicate = predicate.And(x => x.Unidade.Id == filtro.Unidade.Id); } if (filtro.ContaContabil != null && filtro.ContaContabil.Id > 0) { predicate = predicate.And(x => x.ContaContabil.Id == filtro.ContaContabil.Id); } if (filtro.Fornecedor != null && filtro.Fornecedor.Id > 0) { predicate = predicate.And(x => x.Fornecedor.Id == filtro.Fornecedor.Id); } if (filtro.DataVencimento.HasValue) { predicate = predicate.And(x => x.DataVencimento.Date == filtro.DataVencimento.Value.Date); } if (somenteGerados) { predicate = predicate.And(x => x.PossueCnab == true); } else { predicate = predicate.And(x => x.PossueCnab == false); } return(_contaPagarServico.BuscarPor(predicate).ToList()); }
public GeracaoCNABContaPagarViewModel GerarBoletosBancariosHtml(List <ContasAPagar> listaContaPagar, int usuarioId, GeracaoCNABContaPagarViewModel filtro) { var listaBoletoBancario = new List <BoletoBancario>(); var listaBoletos = new Boletos(); var contaFinanceira = _contaFinanceiraServico.BuscarPorId(filtro.ContaFinanceira.Id); foreach (var item in listaContaPagar) { if ((item.FormaPagamento == FormaPagamento.Boleto || item.FormaPagamento == FormaPagamento.BoletoConcessionaria) && string.IsNullOrEmpty(item.CodigoDeBarras)) { throw new BusinessRuleException($"O Boleto de Id [" + item.Id + "], não possuí código de barras!"); } var boleto = ImprimirBoletoBancario(item, contaFinanceira); var boletoBancario = new BoletoBancario() { CodigoBanco = Convert.ToInt16(contaFinanceira.Banco.CodigoBanco), Boleto = boleto, MostrarCodigoCarteira = true }; boletoBancario.MostrarComprovanteEntrega = false; boletoBancario.FormatoCarne = true; boletoBancario.GeraImagemCodigoBarras(boleto); listaBoletos.Add(boleto); listaBoletoBancario.Add(boletoBancario); item.PossueCnab = true; _contaPagarServico.Workflow(item, new Usuario { Id = usuarioId }); } var objCedente = new Cedente( contaFinanceira.Cnpj, contaFinanceira.Descricao, contaFinanceira.Agencia, contaFinanceira.Conta, contaFinanceira.DigitoConta ) { CodigoTransmissao = $"{contaFinanceira.Agencia}0{contaFinanceira.ConvenioPagamento.Truncate(7).PadLeft(7, '0')}0{contaFinanceira.Conta.Truncate(7).PadLeft(7, '0')}", Convenio = Convert.ToInt64(contaFinanceira.ConvenioPagamento), ContaBancaria = new ContaBancaria(contaFinanceira.Agencia, contaFinanceira.DigitoAgencia ?? string.Empty, contaFinanceira.Conta, contaFinanceira.DigitoConta), Nome = contaFinanceira.Empresa?.RazaoSocial }; var aqvRemessa = new ArquivoRemessa(PagamentoNet.TipoArquivo.CNAB240); var banco = new PagamentoNet.Banco(Convert.ToInt32(contaFinanceira.Banco.CodigoBanco)); using (var mem = new MemoryStream()) { if (listaBoletos.Any()) { aqvRemessa.GerarArquivoRemessa(contaFinanceira.ConvenioPagamento, banco, objCedente, listaBoletos, mem, Convert.ToInt32(contaFinanceira.CodigoTransmissao)); } return(new GeracaoCNABContaPagarViewModel { BoletosHtml = new List <string>(), ArquivoRemessaMemoryStream = mem }); } }