Ir para conteúdo
  • Cadastre-se

Fabiano Sehn

Membros
  • Total de ítens

    12
  • Registro em

  • Última visita

Posts postados por Fabiano Sehn

  1. Bom dia.

    Estava verificando isso agora. Também estou com a mesma situação.

    O problema é que no Cnab 240 usa para o campo do número da conta 12 posições e no Cnab 400 são 8 posições.

    E no SET do campo da conta, replica para 12 posições, já que foi definido como padrão para esse campo o tamanho 12 , e ai que esta o problema.

     

  2. Bom dia.

    Segue anexo, AcbrBoletosCaixa.pas, com dois ajustes solicitados em homologações.

    1º Remessa Cnab240, Segmento "P", posição 63 - 73, estava com alinhamento a direita e deve ser esquerda

    2º Remessa Cnab240, Segmento "P", posição 196 - 220, estava com alinhamento a direita e deve ser esquerda

    Att

    Fabiano Sehn

    ACBrBancoCaixa.pas

  3. Boa tarde pessoal.

    Então, Tive que fazer uma ajuste na unit pnfsLerListaNFSe.pas, para adicionar os erros quando fazia a consulta do Lote (ConsultarLoteRps). Não estava populando  a classe dos erros.

    Feito ajustes e segue em anexo, ajuste feito na linha 704.

    Att

    Fabiano Sehn

     

     

    pnfsLerListaNFSe.pas

  4. Boa tarde pessoal.

    Então, tive que implementar a Emissão da NFSe de São Luis (Maranhão). Para isso eu precisei fazer alguns ajustes no ACBr. 

    Eu vi em outros Tópicos que já estaria funcionado isso.

    Meu questionamento é se alguém esta usando o ACBr para emissão da NFSe em São Luis, pois eu não consegui sem fazer esse ajustes?

    Lembro que meu ACBr estão atualizado.

    Att

    Fabiano

     

     

     

  5. Bom dia Pessoal.

    Com relação ao ISSDsf de São Luis, testei aqui e não esta funcionando. "Esta retornando esse erro Cannot find dispatch method for {http://dsfnet.com.br}enviar".

    Se ainda não estiver Ok, posso ajudar. 

    Fico no aguardo.

    Att Fabiano

  6. Boa tarde.

    Precisei fazer dois ajustes no Arquivo ACBrBoletoFCFR.pas.

    Ajuste 1: Conforme manual da Quality Systems do banco Unicred denominado "Manual de validação de boletos para as singulares" sendo do Cnab 400 posições de junho / 2014 (v5), o mesmo cita na página 6 literalmente o texto: "Sacador / Avalista: Preencher o campo com as informações: Nome + Inscrição + Endereço
    completo (endereço, bairro, cidade, UF e CEP) do cooperado (Registro detalhe – Pos. 335 a 394)". Esta é uma exigência que caso não seja impressa também no bloqueto, impede a homologação dos boletos da Unicred. Vale ressaltar que a Unicredi usa a estrutura do Bradesco.

    Sendo assim, consultei o Fórum e percebi que já teve outros membros que relataram a falta do preenchimento dos dados do Avalista e inclusive já fizeram esses ajuste mas não foi atualizado no acbr quando usa o FastReport, assim, copiei o código dos mesmos e postei novamente, pois estava precisando disto.

    Ajuste  2: Conforme manual do Bradesco utilizado pela Unicred denominado: "Manual Técnico Bloqueto de cobrança Codigo de Barras" na pagina 10 cita literalmente: "11. USO DO BANCO: Poderá ser impresso o código que identifica se a impressão é efetuada pelo Banco ou pela Empresa, sendo que no caso de impressão pela empresa utilizar "8650".". Cita que quando a impressão é feita pela empresa, deve-se preencher esse campo. Este número não é fixo, dependendo do banco onde esta sendo feita a homologação passar o código para o cliente. O campo refere-se  a identificação interna do próprio banco para uso da compensação.

    Sendo assim adicionei o Field UsoBanco no ACBrBoletoFCFR.pas. 

    Segue em anexo o arquivo para apreciação do membros desse fórum.

    Att

    Fabiano

     

    ACBrBoletoFCFR.pas

  7. Boa tarde pessoal.

    Então, estava olhando o arquivo ACBrBancoCaixaSICOB.pas, e para ser exato na função LerRetorno240. Penso que tem um problema ao ler o nosso número do arquivo. 

    O problema esta no código abaixo:

          with Titulo do
          begin
             if Copy(Linha,14,1)= 'T' then //segmento T
              begin
                wCarteira := Copy(Linha, 58, 1);

                ACBrBanco.TamanhoMaximoNossoNum :=
                 CalcularTamMaximoNossoNumero(Carteira, '', ACBrBanco.ACBrBoleto.Cedente.Convenio);

                SeuNumero        := copy(Linha,59,11);
                NumeroDocumento  := copy(Linha,106,25);

                NossoNumero := Copy(Copy(Linha,47,10), // sem o DV
                                    Length(Copy(Linha,47,10))-TamanhoMaximoNossoNum ,
                                    TamanhoMaximoNossoNum);
                OcorrenciaOriginal.Tipo := CodOcorrenciaToTipo(StrToIntDef(copy(Linha,16,2),0));

    Foi adicionado o CalcularTamMaximoNossoNumero e essa função vai retornar nesse caso sempre ZERO, poque tanto a Carteira quanto nosso número esta indo em branco. Sendo assim numca vai pegar o Nosso Numero do Arquivo.

    Comei a linha que calcula CalcularTamMaximoNossoNumero e deixei o tamanho 10. E assim leu certinho o Nosso Número.

    A questão é saber qual foi a intenção desse ajuste? Alguém poderia esclarecer por favor.?

    Att

    Fabiano

  8. Bom dia Senhores e Senhoritas.

    Então, fiz um ajuste na unit ACBrBancoCaixaSICOB, a mesma tinha uma divergência com relação ao manual nas posições:

    224 - Código para baixa/devolução: Não baixar/não devolver: Esta fixo "2" fiz ajuste conforme a unit ACBrBancoCaixa;

    225 a 227 - Prazo para baixa/devolução (em dias corridos) fiz ajuste conforme a unit ACBrBancoCaixa;

    Fiz esse ajuste baseado nos manuais e os dois tanto o SIGCB e o SICOOB tratam esses dois campos da mesma forma.

    Segue em anexo o arquivo.

    Muito Obrigado

    Fabiano Sehn

    ACBrBancoCaixaSICOB.pas

    • Curtir 1
  9. Boa tarde senhores e senhoritas...

    Na função CalcularDigitoVerificador temos o código abaixo,

      Modulo.Documento := ACBrTitulo.ACBrBoleto.Cedente.Agencia +
                           PadLeft(ACBrTitulo.ACBrBoleto.Cedente.AgenciaDigito,2,'0')+
                           PadLeft(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente,5,'0')+
                           FormatDateTime('yy',ACBrTitulo.DataDocumento) +
                           '2' +
                           ACBrTitulo.CodigoGeracao + RightStr(ACBrTitulo.NossoNumero,5);

    O Byte de geração "2" esta fixo, sendo que o mesmo pode ir de 2 a 9, de acordo com a sequencia de boletos que foi gerada, ou seja, a cada 99.999 boletos emitidos pelo cliente acrescenta um nesse Byte de geração.

    No meu caso tenho um cliente que já usa com Byte de geração "3", e vou ter q adaptar isso no componente Acbr. E para não comprometer aqueles que estão funcionando dessa forma, penso em criar uma propriedade para esse campo e com default "2". Que vocês Pensam disso?

    Att

    Fabiano Sehn

  10. Boa tarde senhores e senhoritas...

    Na função CalcularDigitoVerificador temos o código abaixo,

      Modulo.Documento := ACBrTitulo.ACBrBoleto.Cedente.Agencia +
                           PadLeft(ACBrTitulo.ACBrBoleto.Cedente.AgenciaDigito,2,'0')+
                           PadLeft(ACBrTitulo.ACBrBoleto.Cedente.CodigoCedente,5,'0')+
                           FormatDateTime('yy',ACBrTitulo.DataDocumento) +
                           '2' +
                           ACBrTitulo.CodigoGeracao + RightStr(ACBrTitulo.NossoNumero,5);

    O Byte de geração "2" esta fixo, sendo que o mesmo pode ir de 2 a 9, de acordo com a sequencia de boletos que foi gerada, ou seja, a cada 99.999 boletos emitidos pelo cliente acrescenta um nesse Byte de geração.

    No meu caso tenho um cliente que já usa com Byte de geração "3", e vou ter q adaptar isso no componente Acbr. E para não comprometer aqueles que estão funcionando dessa forma, penso em criar uma propriedade para esse campo e com default "2". Que vocês Pensam disso?

    Att

    Fabiano Sehn

     

  11. Bom dia Senhores.

    Estou migrando para Trunck2 o AcbrNFse da minha aplicação. Estou com uma dúvida no Envio do RPS.

    Após enviar o RPS e Ler o XML na Função TratarRetorno, no finally  ele esta dando um Free no objeto RetEnvioLote. 

    Dessa forma se der algum erro no Envio ele limpa esse objeto e não consigo pegar os código de erros retornados pelo provedor.

    Tenho duas possíveis soluções. 

    1 - Não limpar mais esse objeto na função TNFSeEnviarLoteRPS.TratarResposta, ai é feito o ajuste no próprio ACbr

    2 - Na minha aplicação chamar o método EnviarLoteRPS.RetEnvLote.LerXml para gerar novamente o retorno.

    O que vocês me dizem a respeito.

    Muito Obrigado

    Fabiano Sehn.

     

×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.