Ir para conteúdo
  • Cadastre-se

rubenstz

Membros
  • Total de ítens

    53
  • Registro em

  • Última visita

Posts postados por rubenstz

  1. Em 22/03/2019 at 09:18, rubenstz disse:

    Bom dia,

    Houveram mudanças para geração do arquivo de remessa do banco do brasil em relação ao arquivo de remessa, é exigido que quando for o DV = 0 deve informar a letra "X" em maiúsculo.

    Fiz alterações nas linhas:

    332 e 335
    372 e 375
    622 e 625

    Do anexo ACBrBancoBrasil.pas

    Também inseri o manual do BB de 2019 que tomei por base para a alteração.

    Att,

     

    ACBrBancoBrasil.pas 98 kB · 0 downloads LayoutCNAB_240.pdf 1 MB · 0 downloads

    Juliana,

    Não é necessária esta alteração, houve uma confusão na interpretação, a unit deve ser mantida como já estava, o banco informa que aceita alfanuméricos no campo DV ou seja: pode usar '0' ou 'X' de acordo com a própria configuração do cliente.

    Unit original esta inserida.

    ACBrBancoBrasil.pas

    • Curtir 1
  2. Bom dia,

    Houveram mudanças para geração do arquivo de remessa do banco do brasil em relação ao arquivo de remessa, é exigido que quando for o DV = 0 deve informar a letra "X" em maiúsculo.

    Fiz alterações nas linhas:

    332 e 335
    372 e 375
    622 e 625

    Do anexo ACBrBancoBrasil.pas

    Também inseri o manual do BB de 2019 que tomei por base para a alteração.

    Att,

     

    ACBrBancoBrasil.pas LayoutCNAB_240.pdf

    • Curtir 1
  3. 14 minutos atrás, Italo Jurisato Junior disse:

    Boa tarde Rubens,

    Pelo que notei a assinatura feita pelo componente ACBrNFSe possui o grupo <Transforms> e neste contem duas transformações.

    Já o outro não possui o grupo mencionando.

    Então isso significa que para o provedor de Salvador não se deve aplicar o algoritmo de transformação ao realizar a assinatura?

    Boa tarde, também achei que poderia ser isto, mas não fez diferença quando mandamos com a assinatura feita no C#, tanto que os dois lotes que estão no anexo acima são validos para a prefeitura.

    O problema esta na assinatura do bloco <rps> dentro de cada arquivo XML de RPS, como tem que assinar cada RPS e depois o LOTE com estes RPSs isto gera diferença e o erro de HASH INVÁLIDO.

    Se eu fizer a assinatura de um arquivo xml de RPS apenas, ele será validado, porém ao gerar o lote com todos estes arquivos RPSs assinados e ao assinar o lote ficará inválido.

    Se somente o lote for assinado sem os RPSs ele também ficará válido. 

    Em outro post, vou tentar ser mais claro e explicar o que fizemos para assinar corretamente com a validação por outro programa.

     

     

     

     

     

     

     

     

    • Curtir 1
  4. Olá a todos,

    Vou colocar abaixo a solução (passo a passo) utilizando um programa em C# (anexo AssinaPIL.sln) que fizemos (em parceria com o colega de trabalho Sandecki) para fazer o envio para o Município de Salvador. 

    A princípio geramos um .EXE que faz a assinatura, mas uma DLL para este fim é mais interessante, se alguém se habilitar por favor compartilhe no grupo.

    O IDEAL é que um dia funcione apenas com o ACBr e seus próprios métodos de assinatura.

    1. A versão do .NET deve ser a .NETFramework,Version=v4.6.2 ou superior;

    2. Foram utilizados os mesmos SCHEMAS do ACBr para montagem dos arquivos XML de RPS e LOTE de envio;

    3. Arquivo salvador.ini deve estar da seguinte maneira:

    [Assinar]
    RPS=1
    Lote=1
    URI=1

    4. DELPHI - no seu componente visual ACBrNFSe é necessário atribuir o evento OnAntesDeAssinar ou se utiliza em runtime faça a atribuição do método:

    ACBrNFSe.OnAntesDeAssinar := ACBrNFSeAntesDeAssinar;

    5. DELPHI - Cole o seguinte código e adapte para seu uso o método OnAntesDeAssinar:

    // Método para assinar pelo executável externo  
    procedure TFormNFS.ACBrNFSeAntesDeAssinar(
      var ConteudoXML: String; const docElement, infElement, SignatureNode,
      SelectionNamespaces, IdSignature: String);
    var
      xml: TStringList;
      pathNFSe,
      pathRPS,
      pathGeral,
      assinaPIL,
      xmlFileName,
      cmdLine: String;
    begin
      // Somente para o provedor de SALVADOR
      if ACBrNFSe.Configuracoes.Geral.Provedor = proSalvador then
      begin
        try
          xml := TStringList.Create;
    	  
    	  // caminho e nome do executável
          assinaPIL := ExtractFilePath(ParamStr(0))+'assinaPIL.exe';
    
          // Verifica se o assinador existe
          if not FileExists(assinaPIL) then
            raise Exception.Create('O arquivo para assinatura digital não foi encontrado!'+#13+assinaPIL);
    
          // Caminho onde salva o XML
          pathGeral := ACBrNFSe.Configuracoes.Arquivos.GetPathGer(Date, ACBrNFSe.Configuracoes.Geral.Emitente.CNPJ);
    
          // Descobre se é RPS ou LOTE, pois esta rotina sempre é executada antes de assinar
          if AnsiLowerCase(docElement) = 'rps' then
          begin
            xmlFileName := pathGeral + '\assinar.xml';
            xml.Add(ConteudoXML);
            xml.SaveToFile(xmlFileName);
            cmdLine := xmlFileName+' InfRps';
          end
          else if AnsiLowerCase(docElement) = 'enviarloterpsenvio' then
          begin
            xmlFileName := pathGeral + '\assinar.xml';
            xml.Add(ConteudoXML);
            xml.SaveToFile(xmlFileName);
            cmdLine := xmlFileName+' LoteRps';
          end;
    
          // Cria o comando de assinatura
          cmdLine := assinaPIL+' '+cmdLine;
    
          if (not ExecAndWait(PChar(cmdLine)) > 0) then
            raise Exception.Create('Não foi possível assinar o arquivo:'+#13+xmlFileName)
          else
          begin
            xml.LoadFromFile(xmlFileName);
            conteudoXML := xml.GetText;
            // Apaga o arquivo temporario de assinatura
            if FileExists(xmlFileName) then
              DeleteFile(xmlFileName);
          end;
          // Continua o envio pelo ACBr
        finally
          xml.Free;
        end;
      end;
    end;

    6. DELPHI - crie a função para executar o aplicativo externo de assinatura que é chamado no método acima:

    function ExecAndWait(ExecFile:PChar): Integer;
    var
      STARTUPINFO: TStartupInfo;
      PROCESSINFO : TProcessInformation;
      Status      : Cardinal;
    begin
      with STARTUPINFO do
      begin
        cb          := SizeOf(STARTUPINFO);
        lpReserved  := nil;
        lpDesktop   := nil;
        lpTitle     := nil;
        dwFlags     := STARTF_USESHOWWINDOW;  // não motra o cursor de load
        lpReserved  := nil;
        cbReserved2 := 0;
        lpReserved2 := nil;
        //wShowWindow := SW_HIDE;  // HIDE não funciona em WINDOWS 8, W10 não houve problema
        wShowWindow := SW_SHOW;
      end;
      Result:=0;
    
      if CreateProcess(nil,ExecFile,nil,nil,False,NORMAL_PRIORITY_CLASS,nil,nil, STARTUPINFO,PROCESSINFO) then
      begin
        try
          Status:=WaitForSingleObject(PROCESSINFO.hProcess,1000 * 5 * 60);
          if Status=WAIT_TIMEOUT then
          begin
            TerminateProcess(PROCESSINFO.hProcess,0);
          end
          else
          if Status=WAIT_FAILED then
            Result:=GetLastError
          else
          begin
            GetExitCodeProcess(PROCESSINFO.hProcess,Status);
            Result := Status * -1;
          end;
        finally
          CloseHandle(PROCESSINFO.hProcess);
          CloseHandle(PROCESSINFO.hThread);
        end;
      end
      else
       Result:=GetLastError;
    end;

     

    A maneira de envio é a de sempre  ACBrNFSe.Enviar(numero_lote);

    Quem utilizar por favor manda um feedback do resultado, hoje utilizamos desta maneira para alguns clientes.

    Abs,

     

     

    AssinaPIL.zip

    • Curtir 1
  5. Em 27/11/2018 at 09:11, Italo Jurisato Junior disse:

    Bom dia Rubens,

    Você poderia anexar o XML assinado pelo seu EXE que foi aceito pelo provedor para que possamos comparar com o que é gerado e assinado pelo ACBr?

    Boa tarde,

    Anexo lote de envio assinado que a prefeitura de Salvador aceita (1-env-lot.xml) o outro foi assinado com componente de terceiros. Pode usar este site para validar o lote de NFSe produzido: http://validator.doctrails.net/default.aspx (na prefeitura de Salvador me indicaram este para validar nossas requisições).

     

    1-env-lot.xml

    lote_assinado_outro_componente.xml

    • Curtir 1
  6. Boa tarde Hugo,

    Onde trabalho fizemos um .exe (solução paleativa) em C# e conseguimos fazer a transmissão, estamos providenciando uma DLL para isto agora, mas o ideal seria que o ACBr conseguisse fazer isto independente de qqer outra app externa.

    Você, através das informações que postou, já conseguiu transmitir totalmente com o ACBr?

  7. Também passei por algo parecido.

    Não sei se é a mesma situação, eu hoje não uso openSSL e deixei ativa e NÃO comentada a diretiva {$DEFINE DFE_SEM_OPENSSL} no arquivo ACBR.inc.

    Esta opção comentada faz com o que o seu executável carregue de maneira implícita as dlls da OPENSSL e se não estiverem no diretório do Windows (SYSWOW64 ou SYSTEM32) ou no próprio diretório do executável causa erro. Faço isto devido a algumas regras de negócio e de atualização do diretório da APP e como é software legado em D7 a diretiva {$DEFINE USE_DELAYED} não funciona.

     

  8. Boa tarde,

    Este problema esta acontecendo com a cidade de PORTO ALEGRE que também utiliza o BHISS.

    Resolvi colocando uma versão antiga do arquivo BHISS.INI da versão de produção de um de nossos clientes.

    Criei um tópico com este título mas existe um outro muito parecido mas aconteceu na hora de CANCELAR (esta fechado), este que estou tendo é no momento de enviar

    A versão atual do ACBr que não esta funcionando esta anexo o arquivo de inicialização e sua revisão (BHISS_v15404.INI - não assina corretamenete) e juntamente a versão antiga que tive de usar para que funcionasse (BHISS.INI).

    Se alguém passar por este problema seria bom relatar pois não sei se isto afeta BELO HORIZONTE e PORTO ALEGRE da mesma maneira.

    Att, 

     

     

    BHISS_v15404.ini

    BHISS.ini

  9. Italo,

    Esta inválido a ultima assinatura no arquivo de envio do LOTE.

    Estou usando LIBWINCRYPT, tentei assinar com libCapicom mas recebo a mensagem: "Erro durante a transmissão! Erro não especificado" e não assina, até achei que fosse problema de configuração com as dlls CAPICOM mas não é pois ela funciona bem para CURITIBA e PORTO ALEGRE no mesmo ambiente de teste ou produção.

    Vlw

     

  10. Bom dia Italo,

    Removi comentando na unit:

    // ACBrDFeUtil.pas
    // function SignatureElement(
    ...
    
          '<Reference URI="' + IfThen(URI = '', '', '#' + URI) + '">' +
    //        '<Transforms>' +
    //          '<Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature" />' +
    //          '<Transform Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315" />' +
    //        '</Transforms>' +
            '<DigestMethod Algorithm="'+DigestAlgorithm+'" />' +
            '<DigestValue></DigestValue>' +
          '</Reference>' +
    
    ...

    Mas fiz isto apenas para tentar deixar igual ao componente pago, pois vi que ele não utiliza, mas acredito que isto não vá fazer diferença pois o arquivo somente do RPS assinado fica VALIDO com ou sem esta TAG, o problema mesmo esta na assinatura do lote todo com os RPS. Achei até que poderia estar assinando o lote antes de montar todos os RPS dentro dele, mas não parece ser o caso.

    Estou trabalhando para que funcione com esta prefeitura pois é uma das poucas grandes que não temos o ACBr funcionando nela. Aos amigos que puderem ajudar vamos trocar mensagens.

    Abs,

     

     

  11. Bom dia Italo,

    Demorei um pouco pois estava simulando alguns testes também com um trial de um outro componente de envio (pago).

    Em anexo estão dois arquivos gerados ACBR, RPS e lote de envio.

    acbr_1-env-lot.xml
    acbr_1NF-rps.xml

    E também junto o arquivo de lote gerado com o outro componente assinado também, tentei deixar os dois arquivos iguais para bater a assinatura do certificado mas tem algum caracter ou texto do arquivo gerado pelo outro componente que não identifiquei, como não tenho fonte dele não mexi muito. Arquivo:

    lote_assinado_outro_componente.xml

    O principal problema, de conhecimento de vários aqui, para SALVADOR é o que mostra "ASSINATURA DO HASH NÃO CONFERE", conversando com o suporte da prefeitura me disseram que eu poderia testar os xmls assinados a partir do seguinte link: http://validator.doctrails.net/default.aspx .

    Verificando com este site o arquivo de RPS somente gerado pelo ACBr, me retorna como VÁLIDO.

    Verificando o arquivo de lote assinado pelo outro componente também me retorna também como VÁLIDO.

    Verificando o arquivo com o lote do ACBr com o RPS assinado dentro dele, me retorna INVÁLIDO.

    É este hash inválido que o sistema da prefeitura de Salvador acusa no momento do envio.

    OBS.: durante os testes para gerar o arquivo igual ao componente de terceiros (vejam que ele não usa) comentei nos meus fontes do ACBr para gerar a assinautra sem a tag <TRANSFORMS> na unit ACBrDFeUtil.pas na função SignatureElement, mas com ela ou sem ela o RPS continua válido e o LOTE inválido da mesma maneira. 

    Vlw

     

     

     

    acbr_1NF-rps.xml

    lote_assinado_outro_componente.xml

    acbr_1-env-lot.xml

  12. Boa tarde,

    Mesmo problema a selecionar CERTIFICADO no windows com a mensagem:

    Citar

    Project C:\...exe  faulted with message: 'aplication-defined exception (code 0xc000041d) at 0x68932554'.  Process Stopped.

    Também fecha o sistema abruptamente.

    Atualizei o ACBr recentemente e esta apresentando este problema em versão beta.

    Na versão anterior do ACBr com o sistema compilado e atualmente em produção este problema não ocorre e seleciona normalmente a lista de certificados mesmo estando nas máquinas com o último update do windows.

    Att,

     

  13. Bom dia a todos,

    Existe algum desenvolvedor que conseguiu gerar a NFSe para SALVADOR? Também tenho acompanhado e cheguei há algum tempo na mesma situação do rogerioxsandro mostrando que a assinatura do HASH não funciona.

    Me responderam a respeito da assinatura com o "id" em minúsculo:

    "Conforme uma atualização do FrameWork.NET que realiza a validação do XML, a tag “id” passou a ser minúscula, depois de nova atualização o resultado passou a ser obrigatório ser alfanumérico (letra e número), estas atualizações não modelo ABRASF, e sim de forma mundial feitas pela Microsoft, com o intuito de aumentar a segurança do arquivo XML. Com o aumento de ataques virtuais, os servidores da SEFAZ são atualizados constantemente, tendo assim estas atualização do FrameWork.NET causado um impacto na montagem do arquivo. Assim, a assinatura do arquivo deve ser com letras minúsculas e com resultado alfanumérica como arquivo exemplo anexo."

    Se alguém já estiver assinando pelo ACBr por gentileza ajude postando no forum.

     

  14. Boa tarde Ítalo,

    É preciso corrigir a função LerNFSe_ISSDSF pois esta trazendo valor liquido da nota errado. Código correto:

      NFSe.Servico.Valores.ValorLiquidoNfse := NFSe.Servico.Valores.ValorServicos -
                                                (NFSe.Servico.Valores.ValorPis +
                                                 NFSe.Servico.Valores.ValorCofins +
                                                 NFSe.Servico.Valores.ValorInss +
                                                 NFSe.Servico.Valores.ValorIr +
                                                 NFSe.Servico.Valores.ValorCsll +
                                                 FNfse.Servico.Valores.ValorDeducoes +
                                                 FNfse.Servico.Valores.DescontoCondicionado+
                                                 FNfse.Servico.Valores.DescontoIncondicionado+
                                                 FNFSe.Servico.Valores.ValorIssRetido);

    Segue unit em anexo, esta correção também deverá ser feita para a função LerNFSe_SP que estão faltando os valores de:                                                FNfse.Servico.Valores.ValorDeducoes + FNfse.Servico.Valores.DescontoCondicionado + FNfse.Servico.Valores.DescontoIncondicionado

    Segue unit corrigida em anexo. Fica no seguinte caminho ..\acbr\Fontes\ACBrDFe\ACBrNFSe\PCNNFSe

     

    pnfsNFSeR.pas

  15. Em 23/01/2018 at 18:47, Cassiano Rovida disse:

    Olá, 

    Estou iniciando a implementação da NFS-e para Sorocaba - SP.

    Estou configurando o ambiente como HOMOLOGACAO mas estou em dúvida se existe esse ambiente.

    Ao executar o método ACBrNFSe1.Enviar tenho como retorno a mensagem abaixo:

    Project SGComercio.exe raised exception class EACBrNFSeException with message 'Falha na validação dos dados do lote: 11

    '1' violates enumeration constraint of 'NF'.
    The element 'SerieRPS' with value '1' failed to parse.
    '.

    - Como sei se o ambiente de homologação existe?

    - Qual seria a série aceita por Sorocaba?

    - Já tentei outros números para a série (99, 10002, etc)  e apresenta o mesmo erro. Alguém já passou por isso?

    Segue o arquivo xml em anexo.

    3518012516765200014656000000000000001-rps.xmlgrato,

     

    3518010966464700019256000000000000001-rps.xml

    Boa tarde Cassiano, sinto pela demora para responder, segue:

    - Como sei se o ambiente de homologação existe?

    NÃO Existe, tem que ser em produção mesmo, cancele em seguida as notas enviadas.

    - Qual seria a série aceita por Sorocaba?

    A série que tenho feito o envio é NF.

    - Já tentei outros números para a série (99, 10002, etc)  e apresenta o mesmo erro. Alguém já passou por isso?

    Sempre mandei como NF ele faz uma conversão e transforma em 99.

    Não da para consultar logo após o envio desmarque a opção no componente: ACBrNFSe.Configuracoes.Geral.ConsultarLoteAposEnvio e faça algum tempo depois ou por clique manual. No manual deles esta que eles tem até 24h para processar o envio (tem que ter paciência,rs).

    Quando você enviar com o sistema retorna um xml com o numero do lote enviado que é também o número de protocolo.

     

     

  16. Bom dia,

    A nota fiscal de Curitiba esta gerando errado o link de acesso a consulta para a NOTA FISCAL e precisa ser corrigido no arquivo de inicialização isscuritiba.ini.

    Trocar

    
    [LinkNFSe]
    Producao=https://isscuritiba.curitiba.pr.gov.br/portalnfse/Default.aspx?doc=%InscMunic%&num=%NumeroNFSe%&cod=%CodVerif%
    Homologacao=https://isscuritiba.curitiba.pr.gov.br/portalnfse/Default.aspx?doc=%InscMunic%&num=%NumeroNFSe%&cod=%CodVerif%

    Por:

    
    [LinkNFSe]
    Producao=https://isscuritiba.curitiba.pr.gov.br/portalnfse/Default.aspx?doc=%Cnpj%&num=%NumeroNFSe%&cod=%CodVerif%
    Homologacao=https://isscuritiba.curitiba.pr.gov.br/portalnfse/Default.aspx?doc=%Cnpj%&num=%NumeroNFSe%&cod=%CodVerif%

    Segue anexo corrigido

    ISSCuritiba.ini

  17. 40 minutos atrás, rubenstz disse:

    Ainda estou tentando com este provedor de Salvador, acredito que ninguém ainda tenha conseguido pelo ACBr. Se sim por favor compartilhe a solução que teve para que possamos seguir o mesmo caminho.

    Alguns fatos ou descobertas que compartilho com os colegas:

    - Aconteceu e continua o erro “E1 – Assinatura do Hash não confere”;

    - A tag “id” para assinatura tem que ser com "i" minúsculo e não como em tantos outros WEBSERVICES, mas desta maneira a assinatura do não fica correta e não passa para a prefeitura;

    - Se alterar no arquivo SALVADOR.INI o parâmetro em [Geral][Identificador] e deixar para fazer o Id com ‘’I” em maiúsculo o arquivo é assinado corretamente porém não passa pelo WS de Salvador, pode usar o seguinte site para testes do XML produzido com “id” e “Id” no link: http://validator.doctrails.net/default.aspx , este foi o mesmo que um suporte da prefeitura de lá me passou e disse que meu XML produzido era inválido;

    - É dito que é padrão ABRASF mas na verdade tem modificações, exemplo: BHISS que serve para BELO HORIZONTE, PORTO ALEGRE também é ABRASF e testei pelo mesmo link ali de cima e lote e rps estão assinados corretamente com seus respectivos schemas com “Id” com I maiúsculo;

    - Tentei colocar tags extras ou identificador na tag ID como sugerido no fórum (http://javahome.com.br/jc/posts/list/45/1287.page#top) para tentar assinar mas continua com problema de assinatura;

    - Fiz uma assinatura com a DLL (nfseutil.dll) disponibilizada pela prefeitura de Salvador com um certificado do tipo A1 e funcionou, porém com um certificado A3 isto não é possível, pelo menos com Win10, devido ao certificado ficar no repositório Pessoal (PERSONAL) e não no Computador Local (MY) que é onde a DLL faz requisição, não posso limitar o cliente a usar somente certificados A1 e também pela própria informação da prefeitura de que a biblioteca foi descontinuada em nov/2013, aliás o único retorno que tenho de lá é que devo baixar os SCHEMAS, EXEMPLOS e MANUAIS (abrasf) e me basear por estes, mas não funcionam;

    - Não achei ninguém de DELPHI ainda em pesquisas ou até mesmo outras linguagens e comunidades que estejam produzindo e funcionando com este provedor.

    Na verdade o repositório que me refiro PESSOAL e MY, quis dizer: CERTIFICADOS do USUÁRIO ATUAL e CERTIFICADOS (computador local) que é onde o certificado A1 funciona para assinatura com a dll da prefeitura de Salvador.

  18. Ainda estou tentando com este provedor de Salvador, acredito que ninguém ainda tenha conseguido pelo ACBr. Se sim por favor compartilhe a solução que teve para que possamos seguir o mesmo caminho.

    Alguns fatos ou descobertas que compartilho com os colegas:

    - Aconteceu e continua o erro “E1 – Assinatura do Hash não confere”;

    - A tag “id” para assinatura tem que ser com "i" minúsculo e não como em tantos outros WEBSERVICES, mas desta maneira a assinatura do não fica correta e não passa para a prefeitura;

    - Se alterar no arquivo SALVADOR.INI o parâmetro em [Geral][Identificador] e deixar para fazer o Id com ‘’I” em maiúsculo o arquivo é assinado corretamente porém não passa pelo WS de Salvador, pode usar o seguinte site para testes do XML produzido com “id” e “Id” no link: http://validator.doctrails.net/default.aspx , este foi o mesmo que um suporte da prefeitura de lá me passou e disse que meu XML produzido era inválido;

    - É dito que é padrão ABRASF mas na verdade tem modificações, exemplo: BHISS que serve para BELO HORIZONTE, PORTO ALEGRE também é ABRASF e testei pelo mesmo link ali de cima e lote e rps estão assinados corretamente com seus respectivos schemas com “Id” com I maiúsculo;

    - Tentei colocar tags extras ou identificador na tag ID como sugerido no fórum (http://javahome.com.br/jc/posts/list/45/1287.page#top) para tentar assinar mas continua com problema de assinatura;

    - Fiz uma assinatura com a DLL (nfseutil.dll) disponibilizada pela prefeitura de Salvador com um certificado do tipo A1 e funcionou, porém com um certificado A3 isto não é possível, pelo menos com Win10, devido ao certificado ficar no repositório Pessoal (PERSONAL) e não no Computador Local (MY) que é onde a DLL faz requisição, não posso limitar o cliente a usar somente certificados A1 e também pela própria informação da prefeitura de que a biblioteca foi descontinuada em nov/2013, aliás o único retorno que tenho de lá é que devo baixar os SCHEMAS, EXEMPLOS e MANUAIS (abrasf) e me basear por estes, mas não funcionam;

    - Não achei ninguém de DELPHI ainda em pesquisas ou até mesmo outras linguagens e comunidades que estejam produzindo e funcionando com este provedor.

  19. Boa tarde, 

    Esta vindo do repositório a unit sem a alteração citada acima, deve ter sido sobreposta pois sempre que atualizo tenho que substituir nos fontes. O problema é com a impressão de DANFSE que estava saindo sem valores de tributos o que afeta o valor liquido da NFSe.

    Mandando anexo de volta para atualização e verificação dos moderadores.

     

    pnfsNFSeR.pas

  20. Bom dia Italo, 

    Não estavam aparecendo os tributos federais para a DANFSE de SP, esta enviando corretamente para a prefeitura os impostos (PIS, COFINS, CSLL, INSS e IR) porém para impressão não carrega. Fiz a alteração para a função LerNFSe_SP da unit pnfsNFSeR.pas que esta no caminho: ..\acbr\Fontes\ACBrDFe\ACBrNFSe\PCNNFSe\

    Ficou assim:

    function TNFSeR.LerNFSe_SP: Boolean;
    
    ...
    
        // Tributos Federais - PIS, COFINS, INSS, IR e CSLL
        NFSe.Servico.Valores.ValorPis         := Leitor.rCampo(tcDe2, 'ValorPis');
        NFSe.Servico.Valores.ValorCofins      := Leitor.rCampo(tcDe2, 'ValorCofins');
        NFSe.Servico.Valores.ValorInss        := Leitor.rCampo(tcDe2, 'ValorInss');
        NFSe.Servico.Valores.ValorIr          := Leitor.rCampo(tcDe2, 'ValorIr');
        NFSe.Servico.Valores.ValorCsll        := Leitor.rCampo(tcDe2, 'ValorCsll');
    
    ...
    
    end;

    Anexo a unit com a correção feita.

    pnfsNFSeR.pas

  21. Em 04/10/2017 at 14:53, dougue disse:

    na minha unit ficou assim:

    
    if UpperCase(NFSeACBR.Configuracoes.Geral.xProvedor) = 'SALVADOR' then
    begin
      //A assinatura do XML de salvador é feita por uma DLL da própria prefeitura, pois não segue o padrão.
      NFSeACBR.SSL.AntesDeAssinar := AssinaXMLSalvador;
    end;
    
    procedure TNFSe.AssinaXMLSalvador(var ConteudoXML: String; const docElement,
      infElement, SignatureNode, SelectionNamespaces, IdSignature: String);
      var
      Temp_XML: IXml;
      XMLAssinar: String;
    begin
      Temp_XML     := CoXML.Create;
    
      XMLAssinar := ConteudoXML;
      XMLAssinar   := Temp_XML.AssinarXmlString(XMLAssinar,'Rps'               ,'My',Configuracao.NOMECERTIFICADO);
      XMLAssinar   := Temp_XML.AssinarXmlString(XMLAssinar,'EnviarLoteRpsEnvio','My',Configuracao.NOMECERTIFICADO);
    
      ConteudoXML := XMLAssinar;
    
    end;

    O Tipo IXml pode ser encontrado na unit NfseUtil_TLB, quem vem no exemplo da prefeitura. 

    Lembrando que o certificado tem que estar obrigatoriamente instalado no repositório My do computador e não do usuário como é feito automaticamente.

    Também se atentar ao fato que devemos passar o nome do certificado e não o número de série para o componente que faz a assinatura.

    Olá Dougue, obrigado pela ajuda em primeiro lugar, consegui fazer alguns testes com certificados do tipo A1 ou certificados com extensão .pfx que levam a chave privada para o repositório 'MY' exigido pela DLL assinou o retorno normalmente. Porém com um certificado do tipo A3 instalado eu não consegui porque sempre instala no repositório 'PERSONAL', você ou alguém esta conseguindo fazer o envio com este tipo de certificado?

  22. Em 12/04/2017 at 10:00, dougue disse:

    Resolvi o problema passando a rotina de assinatura pela DLL para o evento AntesDeAssinar do ACBrDFeSSL.

     

    Dougue, vc tem o fonte desta unit alterada? Tbm precisarei fazer isto para Salvador pois direto pelo ACBr não esta funcionando.

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