Como trocar a Variação da Carteira do arquivo EDI do BB?
Opened this issue · 1 comments
bom dia.... estou gerando boletos e arquivos de remessa do EDI para o BB.
porêm estou com uma msg de convenio errado e variação da carteira errado no EDI. porrem no boleto aparentemente esta tudo ok.
o problema é q eu troco a variação da carteira para "027", mas no arquivo do EDI sempre coloca "019".
mesmo forçando via hard code para "027" no edi aparece "019";
alguem poderia me ajudar com isso? como posso resolver isso?
vou por o codigo q utilizo.
var boleto = new BoletoNet.Boleto(DateTime.Now.AddDays(10), 0.01m, "17", "1", "4340", "13321");
var boletoBancario = new BoletoBancario();
boletoBancario.Boleto = boleto;
boletoBancario.Boleto.NumeroDocumento = numeroDocumento.Trim();
// FORÇO A TROCA DA VARIACAO;
// FORÇO A TROCA DA VARIACAO;
var variacaoCarteira = "027";
boletoBancario.Boleto.VariacaoCarteira = variacaoCarteira;
// FORÇO A TROCA DA VARIACAO;
// FORÇO A TROCA DA VARIACAO;
boletoBancario.Boleto.LocalPagamento = "";
boletoBancario.Boleto.Avalista = null;
boletoBancario.Boleto.Cedente.Codigo = codigoNoBanco;
boletoBancario.Boleto.Cedente.Carteira = carteira.Trim();
boletoBancario.Boleto.Cedente.CPFCNPJ = _empresa.Cnpj.ToString();
boletoBancario.Boleto.Cedente.Convenio = long.Parse(convenio);
boletoBancario.Boleto.Cedente.Endereco = new BoletoNet.Endereco();
boletoBancario.Boleto.Cedente.Endereco.Bairro = _empresa.Bairro.Trim();
boletoBancario.Boleto.Cedente.Endereco.CEP = _empresa.CEP.ExtrairNumero().Trim();
boletoBancario.Boleto.Cedente.Endereco.Cidade = _empresa.DsMunicipio?.Trim() ?? string.Empty;
boletoBancario.Boleto.Cedente.Endereco.Complemento = "";
boletoBancario.Boleto.Cedente.Endereco.Email = _empresa.Email.Trim();
boletoBancario.Boleto.Cedente.Endereco.Numero = _empresa.Numero.Trim();
boletoBancario.Boleto.Cedente.Endereco.UF = _empresa.SiglaUF?.Trim() ?? "BA";
boletoBancario.Boleto.Cedente.Endereco.End = _empresa.Logradouro.Trim();
boletoBancario.Boleto.Cedente.Nome = _empresa.Nome;
boletoBancario.Boleto.Sacado.CPFCNPJ = Parcela.Titulo.Pagador.vl_cnpj_cpf.Trim();
boletoBancario.Boleto.Sacado.Nome = Parcela.Titulo.Pagador.ds_nomereduzido.Trim();
boletoBancario.Boleto.Sacado.Endereco.Bairro = Parcela.Titulo.Pagador.ds_bairro.Trim();
boletoBancario.Boleto.Sacado.Endereco.CEP = Parcela.Titulo.Pagador.vl_cep.ExtrairNumero().Trim();
boletoBancario.Boleto.Sacado.Endereco.Numero = Parcela.Titulo.Pagador.ds_logradouro.Trim();
boletoBancario.Boleto.Sacado.Endereco.Cidade = Parcela.Titulo.Pagador.ds_municipio.Trim();
boletoBancario.Boleto.Sacado.Endereco.Email = Parcela.Titulo.Pagador.ds_e_mail.Trim();
boletoBancario.Boleto.Sacado.Endereco.End = Parcela.Titulo.Pagador.ds_endereco.Trim();
boletoBancario.Boleto.Sacado.Endereco.Complemento = "";
boletoBancario.Boleto.Sacado.Endereco.UF = Parcela.Titulo.Pagador.id_uf.SiglaEstado();
boletoBancario.Boleto.DataVencimento = Parcela.DtVencimento;
boletoBancario.Boleto.DataDocumento = Parcela.DtEmissaoDocumento;
boletoBancario.Boleto.DataProcessamento = DateTime.Now;
boletoBancario.Boleto.ValorBoleto = Parcela.ValorDevido;
boletoBancario.Boleto.ValorDescontoAntecipacao = Parcela.VlDesconto;
boletoBancario.Boleto.ValorDesconto = 0;
boletoBancario.Boleto.Abatimento = 0;
boletoBancario.Boleto.NumeroParcela = Parcela.IdParcela;
boletoBancario.Boleto.TotalParcela = Parcela.Titulo?.QtdParcelas ?? 0;
boletoBancario.Boleto.QuantidadeMoeda = 0;
boletoBancario.Boleto.TipoDeCobranca = "1";
boletoBancario.Boleto.EspecieDocumento = new EspecieDocumento(idBanco);
boletoBancario.Boleto.EspecieDocumento.Codigo = "01";
boletoBancario.Boleto.Remessa = new Remessa();
boletoBancario.Boleto.Remessa.TipoDocumento = "1";
boletoBancario.Boleto.Remessa.CodigoOcorrencia = "01";
MensagemValidacao = string.Empty;
try
{
boletoBancario.Boleto.Valida();
}
catch (Exception ex)
{
MensagemValidacao = ex.Message;
}
boletoBancario.GerarArquivoRemessa = true;
boletoBancario.Boleto.Remessa = new Remessa {TipoDocumento = "1", CodigoOcorrencia = "01"};
var memoryStr = new MemoryStream();
var edi = new ArquivoRemessa(cnab);
edi.NumeroConvenio = "3030720";
var retorno = string.Empty;
if (edi.ValidarArquivoRemessa("3030720", "1", boletoBancario.Boleto.Cedente, boletosEdi, 123, out retorno))
{
var boletosEdi = new Boletos();
boletosEdi.Add(boletoBancario.Boleto);
edi.GerarArquivoRemessa("3030720", "1", boletoBancario.Boleto.Cedente, boletosEdi, memoryStr, 123);
BytesEdis = memoryStr.GetBuffer();
}
segue imagem de como edi foi gerado, com a variação 019 e não 027 q eu queria
@MarceloNeoTecnologia tenta jogar a carteira e a variação juntas, tive um problema parecido e pra mim deu certo dessa forma.
Seu código poderia ficar assim:
var boleto = new BoletoNet.Boleto(DateTime.Now.AddDays(10), 0.01m, "17", "1", "4340", "13321");
var boletoBancario = new BoletoBancario();
boletoBancario.Boleto = boleto;
boletoBancario.Boleto.NumeroDocumento = numeroDocumento.Trim();
// FORÇO A TROCA DA VARIACAO;
// FORÇO A TROCA DA VARIACAO;
var variacaoCarteira = "027";
var carteiraComVariacao = $"{carteira.Trim()}-{variacaoCarteira}" //variável recebendo a carteira e a variação
boletoBancario.Boleto.VariacaoCarteira = variacaoCarteira;
// FORÇO A TROCA DA VARIACAO;
// FORÇO A TROCA DA VARIACAO;
boletoBancario.Boleto.LocalPagamento = "";
boletoBancario.Boleto.Avalista = null;
boletoBancario.Boleto.Cedente.Codigo = codigoNoBanco;
boletoBancario.Boleto.Cedente.Carteira = carteiraComVariacao; //atribuindo a variável no objeto
no caso eu criei a variável carteiraComVariacao
recebendo a carteira concatenando com a variação dela, então o valor dela é "17-019". Depois eu atribuí essa variável no boletoBancario.Boleto.Cedente.Carteira
.
Para o Banco do Brasil isso deve funcionar.