Open vitorsavi opened 6 years ago
Tem uma implementação, vi que estão enviando por e-mail.
A implementação correta baseia-se, basicamente, em chamar a função GerarArquivoRemessapresente
na classe BoletoNet.ArquivoRemessaCNAB240
, ao invés da função GerarDetalheRemessaCNAB240
na classe BoletoNet.Banco_Sicoob
O desenvolvimento do arquivo de remessa do Sicoob esta incorreto. Falta arquivo de remessa do segmento S, só tem do P,Q, R.
Que for pegar tem que ajustar.
@noiatec Conseguiu fazer a remessa do sicoob?
@vitorsavi estou como mesmo problema, conseguiu resolver?
Implementando o segmento que falta!
@vitorsavi @noiatec @FabioDlink O segmento S é opcional é usado para casos de impressão. Pode ser gerado a remessa normalmente sem a implementação do mesmo. Assim como os demais bancos
Boa noite alguém teria algum exemplo funcional do arquivo de remessa pela dll do boletonet.
Obrigado.
Sim. posto amanhã
Bom dia Ivan! Assim que puder me envie por favor para poder dar continuidade na implementação.
Obrigado.
Segue:
var c = new Cedente("00.000.000/0000-00", "RAZAO SOCIAL", "AGENCIA", "", "CONTA", "DIGITO")
{
NumeroSequencial = 1,
Codigo = "CODIGO FORNECIDO PELO BANCO",
DigitoCedente = 0,
Carteira = "1",
MostrarCNPJnoBoleto = true,
Endereco = new Endereco
{
End = "",
CEP = "",
Bairro = "",
UF = "",
Cidade = "",
Numero = ""
}
};
int id = "100";
string idM = "";
if (id > 7)
{
throw new Exception("Impossível gerar o boleto");
}
var falta = 7 - id.Length;
for (int j = 0; j < falta; j++)
{
idM += "0";
}
var b = new Boleto(i.vencimento, i.receber, "1", idM, c)
{
ModalidadeCobranca = 1,
TipoModalidade = "01",
NumeroParcela = 1,
Remessa = new Remessa(TipoOcorrenciaRemessa.EntradaDeTitulos),
DataDocumento = i.data,
Banco = new Banco(756),
NumeroDocumento = idM,
EspecieDocumento = new EspecieDocumento_Sicoob("1"),
Aceite = "A",
Sacado = new Sacado(i.cpf, i.nome)
{
Endereco =
{
End = i.endResidencial,
Bairro = i.cidResidencial,
Cidade = i.cidResidencial,
CEP = i.cep,
UF = i.estResidencial
}
},
DataProcessamento = i.data,
DataMulta = i.vencimento.AddDays(1),
DataJurosMora = i.vencimento.AddDays(1),
DataDesconto = i.vencimento,
JurosMora = Math.Round(Convert.ToDecimal(i.receber * ((i.juros / 30m) / 100m)), 2),
ValorDesconto = Math.Round(Convert.ToDecimal(i.receber * (i.desconto / 100m)), 2),
ValorMulta = Math.Round(Convert.ToDecimal(i.receber * (i.multa / 100m)), 2),
};
boletos.Add(b);
var boletos = new Boletos() {Banco = new Banco(756), Cedente = c};
Stream stream = new FileStream("d:\RMESSA.TXT", FileMode.Create);
remessa.GerarArquivoRemessa(c.Codigo, new Banco(756), c, boletos, stream, 1);
Muito obrigado pela atenção vou dar uma estudado no código. Qualquer coisa volto a postar aqui.
Será que fica muito difícil você colocar as informações dos parâmetros. Exemplo: var b = new Boleto("30/08/2018", 10, "1", "9000002", c)
Porque no meu caso dá "Erro ao gerar arquivo remessa." Estou achando que pode ser o nosso número ou alguma informação que estou passando errado.
Obrigado.
Ele chega nessa linha "objRemessa.GerarArquivoRemessa(numConvenio, New Banco(CodBanco), c, boletos, arq, numArqRemessa)"
e não passa
lembrando que tenho funcionando já Banco do Brasil, Caixa, Sicredi, Bradesco.
Não passa por que? da que erro? pois pra mim ta perfeito!
É alguma coisa que estou passando errado, e não sie o que é será que se eu postar o meu código aqui ajuda?
Segue o meu código:
Dim b As Boleto
Dim boletoBancario As BoletoBancario = New BoletoBancario()
boletoBancario.CodigoBanco = CodBanco
Dim codigo As String = Cedente_Codigo.Replace("-", "").Replace(" ", "")
c = New Cedente("00.000.000/0000-00", "RAZAO SOCIAL", Cedente_Agencia, "", Cedente_Conta)
c.Codigo = codigo
c.DigitoCedente = 0
c.Carteira = num_carteira
c.NumeroSequencial = 1
c.MostrarCNPJnoBoleto = True
c.Endereco = New Endereco()
c.Endereco.End = ""
c.Endereco.CEP = ""
c.Endereco.Bairro = ""
c.Endereco.UF = ""
c.Endereco.Cidade = ""
c.Endereco.Numero = ""
b = New Boleto(vencimento, 10, "1", "90000002", c)
b.ModalidadeCobranca = 1
b.TipoModalidade = "01"
b.NumeroParcela = 1
b.Remessa = New Remessa(TipoOcorrenciaRemessa.EntradaDeTitulos)
b.DataDocumento = DataDocumento
b.Banco = New Banco(756)
b.NumeroDocumento = "900000002"
b.EspecieDocumento = New EspecieDocumento_Sicoob("1")
b.Aceite = "A"
b.Sacado = New Sacado(Sacado_CNPJ_CPF, Sacado_Nome)
b.Sacado.Endereco.End = Sacado_Endereco
b.Sacado.Endereco.Bairro = Sacado_Bairro
b.Sacado.Endereco.Cidade = Sacado_Cidade
b.Sacado.Endereco.CEP = Sacado_CEP
b.Sacado.Endereco.UF = Sacado_UF
b.DataProcessamento = Date.Now
b.DataMulta = vencimento.AddDays(1)
b.DataJurosMora = vencimento.AddDays(1)
b.DataDesconto = vencimento
b.JurosMora = 1
b.ValorDesconto = 1
b.ValorMulta = 1
boletoBancario.AjustaTamanhoFonte(10, 10, 10, 10)
boletoBancario.FormatoCarne = carne
boletoBancario.GerarArquivoRemessa = True
boletoBancario.RemoveSimboloMoedaValorDocumento = True
b.Remessa = New Remessa()
b.Remessa.TipoDocumento = "1"
boletoBancario.Boleto = b
boletoBancario.Boleto.Valida()
Dim objRemessa As New ArquivoRemessa(TipoArquivo.CNAB240)
Dim arq As System.IO.FileStream = New System.IO.FileStream(nome_arq_remessa, System.IO.FileMode.Append)
Dim boletos As Boletos = New Boletos()
Dim strMensagem As String = ""
boletos.Add(b)
numArqRemessa = Convert.ToInt32(contRem)
objRemessa.GerarArquivoRemessa(numConvenio, New Banco(CodBanco), c, boletos, arq, numArqRemessa)
Bom aqui -> 90000002 deve ser somente 7 está com 8 num_carteira ta igual a "1"?
Bom vou fazer o seguinte vou colocar o código com o valores! Só um momento.
### Dim c As Cedente = New Cedente()
Dim b As Boleto
Dim boletoBancario As BoletoBancario = New BoletoBancario()
boletoBancario.CodigoBanco = 756
c = New Cedente("00337989000191", "NORTE NOVO COMERCIO DE FUMOS LTDA", "4355", "", "18434")
c.Codigo = 346098
c.DigitoCedente = 0
c.Carteira = "1"
c.NumeroSequencial = 1
c.MostrarCNPJnoBoleto = True
c.Endereco = New Endereco()
c.Endereco.End = ""
c.Endereco.CEP = ""
c.Endereco.Bairro = ""
c.Endereco.UF = ""
c.Endereco.Cidade = ""
c.Endereco.Numero = ""
b = New Boleto("30/08/2018", 20.0 , "1", "9000686", c)
b.ModalidadeCobranca = 1
b.TipoModalidade = "01"
b.NumeroParcela = 1
b.Remessa = New Remessa(TipoOcorrenciaRemessa.EntradaDeTitulos)
b.DataDocumento = "31/07/2018"
b.Banco = New Banco(756)
b.NumeroDocumento = "000686"
b.EspecieDocumento = New EspecieDocumento_Sicoob("1")
b.Aceite = "A"
b.Sacado = New Sacado("09548304000132", "A. JOAO DE OLIVEIRA - MINIMERCADO - ME")
b.Sacado.Endereco.End = "SILVEIRA DOS SANTOS"
b.Sacado.Endereco.Bairro = "CENTRO"
b.Sacado.Endereco.Cidade = "RIBEIRAO DO PINHAL"
b.Sacado.Endereco.CEP = "86490-000"
b.Sacado.Endereco.UF = "PR"
b.DataProcessamento = "31/07/2018"
b.DataMulta = "01/08/2018"
b.DataJurosMora = "01/08/2018"
b.DataDesconto = vencimento
b.JurosMora = 1
b.ValorDesconto = 1
b.ValorMulta = 1
boletoBancario.AjustaTamanhoFonte(10, 10, 10, 10)
boletoBancario.FormatoCarne = False
boletoBancario.GerarArquivoRemessa = True
boletoBancario.RemoveSimboloMoedaValorDocumento = True
b.Remessa = New Remessa()
b.Remessa.TipoDocumento = "1"
boletoBancario.Boleto = b
boletoBancario.Boleto.Valida()
Dim objRemessa As New ArquivoRemessa(TipoArquivo.CNAB240)
Dim arq As System.IO.FileStream = New System.IO.FileStream("X:\Sistema\prj\temp\ 34609-8731.crm", System.IO.FileMode.Append)
Dim boletos As Boletos = New Boletos()
Dim strMensagem As String = ""
boletos.Add(b)
objRemessa.GerarArquivoRemessa("09", New Banco(756), c, boletos, arq, 2)###
Veja se consegue ver onde estou errando no valores!!
Falta o digito da conta aqui var c = New Cedente("00337989000191", "NORTE NOVO COMERCIO DE FUMOS LTDA", "4355", "", "18434") var c = new Cedente("00.000.000/0000-00", "RAZAO SOCIAL", "AGENCIA", "", "CONTA", "DIGITO")
Aqui -> b.NumeroDocumento = "000686" não deveria ser o mesmo que b.NumeroDocumento = "9000686"
aqui -> objRemessa.GerarArquivoRemessa("09", New Banco(756), c, boletos, arq, 2)
ao inves de 09 deve passar o código fornecido pelo banco (código do convênio) no seu caso acho que 346098
Ivan muito obrigado pela ajuda o seu código conseguiu clarear bem as coisas e consegui gerar o arquivo. Sucesso.
@vitorsavi tudo bem? Pelo que verifiquei, parece que a thread foi concluída. Teria como fechá-la?
Boa tarde, eu fiz algumas alteração no código do arquivo "Boleto.Net\Banco\Banco_Sicoob.cs" e aqui esta validando. Tem este validador da sicoob que pode ajuda bastante. http://www.sicoob.com.br/validador-cnab240-cobranca Esta semana vou fazer a homologação.
como vi o pessoal falando que o 400 o Sicoob vai tirar fora, iremos fazer o cnab 240, porem vimos que falta essa parte
public string GerarDetalheRemessaCNAB240(Boleto boleto, int numeroRegistro, TipoArquivo tipoArquivo) { throw new NotImplementedException("Função não implementada."); }
alguém ja usa o cnab 240 do sicoob com esta parte implementada?
Obrigado!