Ir para conteúdo
  • Cadastre-se

Emerson Teixeira

Membros
  • Total de ítens

    234
  • Registro em

  • Última visita

Posts postados por Emerson Teixeira

  1. 2 minutos atrás, Lowry David da Silva Pereira Reis disse:

    verifique que na verdade não existe digito da agencia e ele utiliza apenas os 4 primeiros dígitos para escrever a linha digitável, ou seja, se é 05200 ele vai escrever apenas 0520...

    não foi a melhor forma de alterar, mas a linha digitável ficou exatamente igual ao que eles estão pedindo, agora estou esperando a resposta do banco, caso ela seja de homologado, vou fazer uma alteração "decente".

    mas nesse caso recomendo passar 0 como digito da agencia, pois pode quebrar a compatibilidade com quem esta usando esta unit.

    • Curtir 1
  2. 1 hora atrás, Lowry David da Silva Pereira Reis disse:

    Muito obrigado pela atenção :)

    testei novamente com a sua Unit e agora ela escreve corretamente a agencia na impressão e na remessa.

    só precisei alterar a function abaixo para poder gerar a linha digitável corretamente.

    function TACBrBancoSafra.MontarCodigoBarras(const ACBrTitulo: TACBrTitulo): string;
    var
      CodigoBarras, FatorVencimento, DigitoCodBarras ,
      valorDocumento, agencia, agenciaDigito, conta,
      ContaDigito, NossoNumero: string;
    begin
      with ACBrTitulo.ACBrBoleto do
      begin
        FatorVencimento  := CalcularFatorVencimento(ACBrTitulo.Vencimento);
        valorDocumento   := IntToStrZero(Round(ACBrTitulo.ValorDocumento * 100), 10);
        agencia          := PadRight(RightStr(Cedente.Agencia, 5), 5, '0'); //***ALTERADO DE 4 PARA 5****// aqui 4 posicoes da agencia + 1 posicao do digito pagina 23
        agenciaDigito    := PadLeft(Cedente.AgenciaDigito, 1, '0');
        conta            := PadLeft(Cedente.Conta, TamanhoConta, '0');
        ContaDigito      := PadLeft(Cedente.ContaDigito, 1, '0');
        NossoNumero      := PadLeft(RightStr(ACBrTitulo.NossoNumero,TamanhoMaximoNossoNum),TamanhoMaximoNossoNum,'0')  + CalcularDigitoVerificador(ACBrTitulo);

        CodigoBarras := IntToStr(Banco.Numero) + '9' + FatorVencimento +   valorDocumento +
                        '7' + agencia + trim(agenciaDigito) + trim(conta) + ContaDigito + NossoNumero + '2';

        DigitoCodBarras := CalcularDigitoCodigoBarras(CodigoBarras);
      end;

      Result := IntToStr(Numero) + '9' + DigitoCodBarras + Copy(CodigoBarras, 5, 39);

    end;

    olha o que diz o manual sobre o tamanho da agencia... 

    Sao 5 digitos = 4 da agencia + 1 do digito,  no seu codigo ficaria 6 digitos.

    confirma se sua conta esta sendo informada com o tamanho correto 8 posicoes da conta + 1 posicao do digito da conta = 9 posicoes com digito  = pagina 4 manual.

    att

    image.png.0492d9d862b1e7f3645b2284f147ba79.png

    image.thumb.png.0d235fe02376a6c89d1bad8c4914d937.png

  3. 1 hora atrás, Murilo Neves disse:

    Lowry, também presenciei um problema semelhante com a agência. Realizei algumas modificações na unit do Emerson e logo foram homologadas pelo banco.

    ACBrBancoSafra.pas 71 kB · 3 downloads

    bom dia @Murilo Neves.

    quais foram as alterações que você fez?

    Pelo que vi aqui, vc mudou a ordem o campo SeuNumero/NumeroDocumento, apagou os comentários que fiz, aparentemente não vai resolver o problema do @Lowry David da Silva Pereira Reis

    o que pude observar é que o no caso da agencia 05200 e a função de montar o codigo de barras esta removendo este zero a esquerda, no meu caso a agencia nao tinha esse zero a esquerda.

    Ajustei a unit novamente, favor passar a agencia = 052

    se funcionar, me avise...

    att

     

    ACBrBancoSafra.pas

    • Obrigado 1
  4. 1 hora atrás, Tercio Lins disse:

    Alterações feitas:

    constructor TACBrBancoSafra.Create(AOwner: TACBrBanco);
    begin
      inherited Create(AOwner);
      fpDigito                := 7;
      fpNome                  := 'Banco Safra';
      fpNumero                := 422;
      fpTamanhoAgencia        := 5;
      fpTamanhoConta          := 9;
      fpTamanhoCarteira       := 1;
      fpTamanhoMaximoNossoNum := 9;
    end;
     

    procedure TACBrBancoSafra.GerarRegistroTransacao400(ACBrTitulo: TACBrTitulo;
      aRemessa: TStringList);
     

        aAgencia := PadLeft(RightStr( ACBrBoleto.Cedente.Agencia, 5), 5, '0');

        aConta := PadLeft(ACBrBoleto.Cedente.Conta, 9, '0');

        Sem adicionar os DV;

     

    Uma observação:

     

    Na procedure:

    procedure TACBrBancoSafra.GerarRegistroHeader400(NumeroRemessa: integer;
      ARemessa: TStringList);

     

      with ACBrBanco.ACBrBoleto.Cedente do
      begin
        wLinha := '0'                             + // ID do Registro Header
                  '1'                             + // ID do Arquivo de Remessa
                  'REMESSA'                       + // Literal de Remessa
                  '01'                            + // Código do Tipo de Serviço
                  PadRight('COBRANCA', 15)        + // Descrição do tipo de serviço + "brancos"
                  PadLeft(CodigoCedente, 14, '0') + // Codigo da Empresa no Banco
                  Space(6)                        + // "brancos"
                  PadRight(Nome, 30)              + // Nome da Empresa
                  IntToStr(Numero)                + // Código do Banco - 237
                  PadRight('BANCO SAFRA', 15)     + // Nome do Banco - BANCO SAFRA + "brancos"
                  FormatDateTime('ddmmyy', Now)   + // Data de geração do arquivo
                  Space(291)                      + // "brancos"
                  IntToStrZero(NumeroRemessa, 3)  + // Nr. Sequencial de Geração do Arquivo
                  IntToStrZero(1, 6);               // Nr. Sequencial do Registro no Arquivo

        ARemessa.Text := ARemessa.Text + UpperCase(wLinha);
      end;
     

    CodigoCedente  é colocado sem a concatenação dos dois códigos, ou seja, ele terá que ser alimentado antes nos dados do cedente.

    Poderia-se colocar também, o CodigoCedente direto na procedure GerarRegistroTransacao400.

     

     
     

     

    Boa tarde Tercio. 

    Usa a unit que postei acima, nela consta todos estes ajustes de tamanho de conta, nosso número, código do cedente entre outras coisas

    Tenho vários clientes usando o banco safra 

    Att

  5. 21 minutos atrás, ssouzaacbr disse:

    Bom dia amigos, podem me dizer se existe uma propriedade para mostrar a quantidade de parcelas na  impressão do tipo carnê? no meu caso, quando defino que é do tipo carnê ele só mostra duas parcelas em cada página.

    Obrigado...

    bom dia

    @ssouzaacbr a unit que esta no repositório está errada, pois após atualizar o acbr tive problemas com vários clientes que usavam o boleto banco safra a tempos, por isso tive que ajusta-la novamente.

    se quiser comparar as units, as alterações que fiz estão documentadas, está bem fácil de entender.

    att. 

     

  6. 13 horas atrás, Lowry David da Silva Pereira Reis disse:

    eu só tenho o retorno do e-mail com todos os dizeres, alguns eu ja resolvi, ficaram apenas esses dois citados.

    NO BOLETO: 

    • alterar campos marcados em vermelho no boleto modelo abaixo:
    • o campo nosso número informado no boleto está divergente do informado na remessa, o mesmo deve ser idêntico contendo 9 números sem cálculo do dígito final;
    • ag e conta deve seguir o formato 05200 / 005834915;
    • o nome do banco não deve conter logo, somente BANCO SAFRA S/A.;
    • alterar mensagem de local de pagamentos;
    • recalcular linha digitável e código de barras conforme orientação abaixo:

    1B592555.gif

    bom dia.

    esta usando a unit que passei?

    14 horas atrás, Juliana Tamizou disse:

    Boa tarde.

    Você tem um manual fornecido do banco com estas exigências documentadas? Vale lembrar que temos outros membros da comunidade emitindo para este banco.

    At.

    Bom dia Juliana.

    para fazer as alterações que estão na unit do outro post, segui o manual que esta no repositório do acbr, estas alterações estão comentadas na unit, informei a pagina em cada mudança.

    att.

     

    • Obrigado 1
  7. 6 horas atrás, Lowry David da Silva Pereira Reis disse:

    Bom dia, iniciei um processo de homologação do banco safra (cobBancoSafra) e me deparei com dois problemas que não estou conseguindo resolver...

    1º  o nosso numero gerado no arquivo de remessa esta divergente do impresso pois ele esta adicionando um digito verificador na 9ª posição do NN.

                  IfThen(NossoNumero = '000000000', '000000000',
                                     PadLeft(RightStr(NossoNumero,8),8,'0') +
                                     CalcularDigitoVerificador(ACBrTitulo)) + 

    não consegui realizar a impressão utilizando esse digito verificador.

    2º o banco esta obrigando que não tenha uma logo e esteja escrito 'BANCO SAFRA S/A' em seu lugar, esse eu posso simplesmente alterar para que escreva o texto, mas na próxima vez que o ACBR for atualizado eu teria que alterar novamente.

    Screenshot_1.png

    boa tarde.

    fiz alguns ajustes nessa unit, tente usar a que está neste post: 

    tenho varios clientes emitindo, inclusive fiz a homologação de mais 1 esta semana.

     

    att

  8. 17 horas atrás, pauloclv disse:

    Boa tarde Emerson.
    Olhando o manual entendo seu argumento.

    O problema acaba sendo como cada manual identifica a informação SeuNumero.
    Criei um novo tópico para que isso possa ser avaliado.

    Obrigado.

    bom dia Paulo.

    sobre a posição do campo, não vejo problema em estarem em lugares diferente desde que no retorno este campo tenha a mesma informação que foi passada na remessa.

    tipo:

    remessa 

        SeuNumero: 123456789

        NumeroDocumento: 152345-1/6

     

    e no retorno

       SeuNumero: 123456789

       NumeroDocumento: 152345-1/6

     

    imagino que nesse caso a posição que o banco define o campo não faz diferença.

    att.

    abraço

     

  9. 1 hora atrás, pauloclv disse:

    Bom dia.

    Por exemplo na geração do registro 400 dos bancos Bradesco, Banco do Brasil, Caixa e Santander o campo SeuNumero é gerado na posição 38 a 62 e o campo NumeroDocumento na posição 111 a 120.

    Então seguindo este padrão, o que estaria invertido é na geração do registro 400 e consequentemente no retorno do banco Safra deste arquivo enviado pelo Emerson.

    Obrigado.

    boa tarde paulo.

    fiz de acordo com o manual na remessa o campo seu numero aparece na posicao 111 a 120 conforme imagem

    image.png.6928d8146c5d10541c1d973829d84ff1.png

    e o no retorno existe esta campo em duas posições 117 a 126 e 377 a 391 (achei estranho), porem mantive na posição 117 a 126 como estava antes da revisao 16972.

    image.png.2667b742719470729532e02a7e73ad6f.png

    att

     

  10. fiz alguns ajustes e comentários na unit.

    o cliente não estava conseguindo pagar o boleto, mensagem de código verificador inválido.

     

    O código de barras e a linha digitável estão corretos, comparei com um boleto emitido pelo banco.

    O arquivo de remessa ainda estou testando, como vi que estão alterando a unit, estou enviando a minha.

    alterei isso tbm

    Em 12/09/2019 at 08:52, pauloclv disse:

    Bom dia.

    Na procedure GerarRegistroTransacao400

    Foi feita alteração de
                  PadRight(SeuNumero, 25, ' ')                                                   + //  38 a  62 - Uso exclusivo da Empresa
    para
                  Space(25)                                                                      + // Uso exclusivo da Empresa

    Isto faz uma diferença muito grande para nosso projeto porque usamos preferencialmente essa informação no retorno para fazer a baixa dos recebimentos.

    Por isso peço que essa linha fique como estava antes da atualização.

    Obrigado.

     

    Em 13/09/2019 at 12:50, marcosfbm disse:

    Boa tarde, um problema que identifiquei na Remessa400 do Safra foi com relação ao Nosso Numero.

    Apos atualizar os fontes e fazer os testes, precebi que esta sendo gerado o Nosso numero de formas distintas. Segue exemplo:

    No metodo MontarCampoNossoNumero a seguir esta tudo OK;

    function TACBrBancoSafra.MontarCampoNossoNumero(const ACBrTitulo: TACBrTitulo): string;
    begin
      with ACBrTitulo do
      begin
        Result := PadLeft(RightStr(NossoNumero,9),9,'0');
      end;
    end; 

    Porem ao gerar a remessa ele gera da seguinte forma:

    IfThen(NossoNumero = '000000000', '000000000',
                                     PadLeft(RightStr(NossoNumero,8),8,'0') +
                                     CalcularDigitoVerificador(ACBrTitulo))

    Ou seja...

    Quando mando para a homologação vem uma rejeição, informando que o nossoNumero do boleto difere do NossoNumero da Remessa.

    Atenciosamente...

     

    obrigado

    ACBrBancoSafra.pas

  11. Em 01/08/2019 at 16:04, Italo Jurisato Junior disse:

    Boa tarde a todos,

    Encontra-se disponível os novos schemas que não tem mais a palavra "Eletrônico" na descrição do serviço bem como a inversão dos campos nDoc e dhEntrega.

    Favor atualizar tudo, pois foi necessário alterar os fontes também.

    boa tarde Italo.

    estou transmitindo o evento usando o webservice de SP.

    o erro que acontece é justamente na inversão dos campos.

    (revision acbr 17448, instalado novamente)

     

    1-eve.xml 1-ped-eve.xml

  12. 13 horas atrás, Leandro Vignoto disse:

    Boa tarde..

    As empresas que atendo tem 100% dos documentos com base no NSU.

    Se ocorrer algum erro de "salto de nsu" o sistema apresenta as lacunas e faz as baixas.

    Sim, ocorrem erros de comunicação com a sefaz (temporários), atrasos (sincronização sefaz estadual com ambiente nacional), certificados digitais, etc... tudo conforme previstos nas notas técnicas.

     

    Att.

     

    Leandro

    Bom dia...

    Aqui também funciona muito bem, com as mesmas ressalvas feitas pelo Leandro

    att.

    • Curtir 1
  13. bom dia a todos

    ajustei a unit do banco safra para ficar de acordo com o manual.

    a alteração no campo Nome Avalista Nome do Sacador Avalista X(30) posição 352 a 381 Vide Nota 6.1.9 

    Nota 6.1.9 - MENSAGENS Mensagem por título: Para utilização de mensagens no campo "INSTRUÇÔES" no corpo do boleto, será possível a utilização do campo "Nome do Sacador Avalista", sendo necessário a formalização junto ao Banco. Permite o envio de uma mensagem especifica, título a título, sendo impressa no campo instruções do boleto com o conteúdo de somente 28 primeiras posições.

    obrigado

    cobranca2017.pdf

    ACBrBancoSafra.pas

  14. 16 horas atrás, billbarsch disse:

    olá pessoal,

    emito NFSE (serviços) e mesmo que eu envie uma Razão social tipo: "TESTE" 

    a prefeitura retorna o nome da empresa que está lá na base deles ou seja retorna:

    Empresa D &amp D Clinica de vacinas... (no xml)

    Empresa D &amp D Clinica de vacinas (no PDF também)

    O que devo fazer pra corrigir isso? 

    Como o xml é assinado eu nao devo alterar o xml manualmente ne, iria corromper o xml autorizado.

    nfsePortoAlegre_teste.pdf

    298.xml

    Tbm estou com este problema, para o provedor Ginfes (Votuporanga), o meu cliente está cadastrado na prefeitura com & e ao imprimir no Danfse apare amp;

     

    att

     

    • Confuso 1
  15. 41 minutos atrás, mbarsil disse:

    Bom dia, tive um problema parecido e usei a função "ConverteXMLtoNativeString" da AcbrUtil.

     

    bom dia ..

    tentei usar função ConverteXMLtoNativeString, mas ainda não funcionou.

    o estranho é que se eu abrir o xml pelo stringlist do delphi, funciona.

    Ex: 

    xml :TStringlist;

    xml := TStringlist.create;

    xml.LoadFromFile('Arquivo.xml', TEnconding.UTF8);

     

    Se abrir o xml no i.e. mostra tudo certo, com acentos, mas ao abrir este mesmo arquivo pelo ACBrNFe1.NotasFiscais.LoadFromFile('Arquivo.xml'), fica com caracteres estranhos ex: APÓS SERVIÇO DE CALIBRAÇÃO  (APÓS SERVIÇO DE CALIBRAÇÃO)

     

    att.

  16. 5 minutos atrás, Denis Queiroz disse:

    Opa Emerson bom dia, deixa eu ver se entendi, a praça que você acertou é referente ao Bradesco certo?

    Bom então beleza, vamos aguardar o pessoal nos responder, a praça que acertei foi a do próprio Safra, 

    então temos dois "Bancos-Praça de cobrança" a acertar.

    Obrigado, só nos resta aguardar.

    Bom dia Denis

    o ajuste que fiz foi para o banco SAFRA com correspondente BRADESCO

    att

  17. Bom dia. 

    aqui acontece o seguinte.

    tenho um arquivo xml de nf-e que pelo browser abre normal com acentos.

    ao usar o ACBrNFe1.NotasFiscais.LoadFromFile();

    na propriedate ACBrNFe1.NotasFiscais.Items[N].xml aparecem caracteres estranhos, exemplo no xml esta Acessórios,apos abrir pelo acbr fica Acessórios.

    xml foi baixaido pelo site oficial da receita: http://www.nfe.fazenda.gov.br/portal/consultaRecaptcha.aspx?tipoConsulta=completa&tipoConteudo=XbSeqxE8pl8=

    Estou usando delphi Tokyo 10.2.2

     

     

     

×
×
  • 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.