Ir para conteúdo
  • Cadastre-se

Messias Antonio Natal

Membros
  • Total de ítens

    19
  • Registro em

  • Última visita

Posts postados por Messias Antonio Natal

  1. Observei que o nome da tag evtTotal esta diferente quando é o evento R2099, ela esta como evtTotalContrib 

    então realizei a seguinte alteração criei um variável 

    Tag_evtTotal: string;

    e na leitura do campo 

    if leitor.rExtrai(4, 'evtTotal') <> '' then

    Realizei a seguinte verificação:

    Tag_evtTotal:='evtTotal';
    if leitor.rExtrai(4, Tag_evtTotal) = '' then
      Tag_evtTotal:='evtTotalContrib';
    
    if leitor.rExtrai(4, Tag_evtTotal) <> '' then

    Desta forma consegui obter os dados.

    Em anexo a unit pcnReinfRetEventos com a modificação para analise. 

    pcnReinfRetEventos.pas

  2. Estou realizando a homologação do Reinf 2.1.2 e no evento R2099 consulta de protocolo parece estar retornando a estrutura do XML diferente dos demais eventos com isso não esta carregando as informações do

    evtTotal onde contem um dos dados mais importantes que é o Recibo (nrRecArqBase)

    no trecho a seguir da função LerRetornoEventos

    if leitor.rExtrai(4, 'evtTotal') <> '' then

    ele não encontra o evtTotal no XML, eu tentei mudar o nível e o nome conforme olhei no XML pra ver se conseguia retornar o dado correto mas sem sucesso.

    Segue um exemplo da consulta de protocolo do evento R1000 onde funciona corretamente na 1ª imagem:

    image.thumb.png.4f87f04d98a60ee75d800a63ad328432.png

    e segue outro exemplo da consulta de protocolo do evento R2099 onde não retorna na 2º imagem:

    image.thumb.png.17f392350540ba13f529d4b127eda851.png

    os fonte estão atualizados na data de hoje 30/09/2023 e o teste foi feito na minha aplicação e no ACBrReinf_Exemplo ambos ocorre o mesmo problema.

    alguém já passou por isso ?

  3. Foi criado no dia 16/08/2022 tópico para correção do erro MS1010 ID inválido: ACBrReinf Evento R-1000 - Erro MS1010 ID inválido

    Conforme conversado com os consultores a correção estava certa e foi para o SVN: revision 27675 dia 06/12/2022 

    porem foi revertida no dia 26/12/2022 esse caso foi o mesmo do tópico: Reinf - MS1528 - O Grupo infoEFR não pode ser informado para natureza jurídica do contribuinte declarante

    Onde a correção aprovada subiu para o SVN dia 06/12/2022 e revertida 26/12/2022 

    Realizei as correções novamente, só que desta vez de uma forma diferente, ao invés de verificar se o Contribuinte é órgão publico foi verificado o tipo de documento CPF ou CNPJ, para ficar mais claro a condição.

    Na função que gera a chave foi adicionado o tipo de inscrição TpInsc 

    function  GerarChaveReinf(const emissao: TDateTime;
                              const CNPJF: string;
                              sequencial: Integer;
    -------->                 TpInsc: TtpInsc): String;

    desta forma em todas as units de cada evento (pcnReinfR1000.pas, pcnReinfR1050.pas, pcnReinfR1070.pas, pcnReinfR2010.pas, pcnReinfR2020.pas, pcnReinfR2030.pas, pcnReinfR2040.pas, pcnReinfR2050.pas, pcnReinfR2055.pas, pcnReinfR2060.pas, pcnReinfR2070.pas, pcnReinfR2098.pas, pcnReinfR2099.pas, pcnReinfR3010.pas, pcnReinfR4010.pas, pcnReinfR4020.pas, pcnReinfR4040.pas, pcnReinfR4080.pas, pcnReinfR4099.pas, pcnReinfR9000.pas)

    que usa a função foi alterada para passar o novo parâmetro 

    GerarChaveReinf(now, self.ideContri.NrInsc, self.Sequencial, self.ideContri.TpInsc);

    e na função verificando esse tipo para definição de 1 ou 2 (Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF))

      if TpInsc = tiCNPJ then
        Result := Result + IntToStr(1)
      else
        Result := Result + IntToStr(2);

    Verificar viabilidade da correção.

    Obrigado.

    reinf.rar

  4. Em 27/02/2023 at 21:37, Renato Rubinho disse:

    Boa noite @MessiasNatal13

    Pode fazer um teste com essa unit mesclada com sua implementação?

    Atualize os fontes, substitua a unit atual por esta, reinstale os componentes e faça novos testes.

    Por favor, confirme se ficou ok para que os consultores enviem o novo fonte para o SVN.

    pcnReinfR1000.pas 21.22 kB · 1 download

    Boa tarde !

    Deu certo sim.

    • Curtir 1
  5. Em 06/12/2022 at 10:45, EMBarbosa disse:

    Muito obrigado pela contribuição.
    Fiz a implementação baseada nela.
    As alterações já foram para o SVN.
    Pelo que vi está tudo certo.
    Queira por favor atualizar, testar e reportar qualquer problema.

    Mais uma vez obrigado.

    Boa tarde!

    Durante a atualização do componente, a alteração que havia sido feita foi desfeita. Após verificar no SVN, constatou-se que a alteração foi removida em 26/12/2022 às 10:55:18, com a seguinte mensagem de commit: "[+] Implementação do novo layout "2.1.x" por Renato Rubinho". Infelizmente, a remoção da variável "PossuiNaturezaJuridicaNaRegra" afetou significativamente o sistema, uma vez que essa variável era fundamental para informar se determinado órgão público tinha ou não a natureza jurídica na regra. Gostaria de saber o motivo da remoção dessa variável?

  6. Realizei a seguinte alteração pra poder conseguir gerar o arquivo 

    na classe TInfoEFR criei um atributo chamado PossuiNatirezaJuridicaNaRegra

      TInfoEFR = class(TObject)
      private
         FideEFR: TtpSimNao;
         FcnpjEFR: String;
         FPossuiNaturezaJuridicaNaRegra: Boolean;
      public
        property ideEFR: TtpSimNao read FideEFR write FideEFR;
        property cnpjEFR: String read FcnpjEFR write FcnpjEFR;
        property PossuiNaturezaJuridicaNaRegra: Boolean read FPossuiNaturezaJuridicaNaRegra write FPossuiNaturezaJuridicaNaRegra;
      end;

    com este campo consigo ter o controle pelo sistema analisando o CÓDIGO E DESCRIÇÃO DA NATUREZA JURÍDICA se determinado órgão vai gerar a tag sim ou não 

    procedure TevtInfoContri.GerarInfoEFR;
    begin
      if (TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte in [tcOrgaoPublico]) and (infoContribuinte.infoCadastro.infoEFR.PossuiNaturezaJuridicaNaRegra) then
      begin
        Gerador.wGrupo('infoEFR');
    
        Gerador.wCampo(tcStr, '', 'ideEFR',   1,  1, 1, SimNaoToStr(infoContribuinte.infoCadastro.infoEFR.ideEFR));
        Gerador.wCampo(tcStr, '', 'cnpjEFR', 14, 14, 0, infoContribuinte.infoCadastro.infoEFR.cnpjEFR);
    
        Gerador.wGrupo('/infoEFR')
      end;
    end;

     

    pcnReinfR1000.pas

    • Curtir 1
  7. Ao definir na propriedade TipoContribuinte o enum tcOrgaoPublico do evento R-1000 é gerado a tag infoEFR conforme código abaixo:

    procedure TevtInfoContri.GerarInfoEFR;
    begin
      if TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte in [tcOrgaoPublico] then
      begin
        Gerador.wGrupo('infoEFR');
    
        Gerador.wCampo(tcStr, '', 'ideEFR',   1,  1, 1, SimNaoToStr(infoContribuinte.infoCadastro.infoEFR.ideEFR));
        Gerador.wCampo(tcStr, '', 'cnpjEFR', 14, 14, 0, infoContribuinte.infoCadastro.infoEFR.cnpjEFR);
    
        Gerador.wGrupo('/infoEFR')
      end;
    end;

    porem na regra esta faltando outra verificação de acordo com o manual de resposta do webservice:

     

    MS1184 - O CNPJ do Ente Federativo Responsável é obrigatório se o Órgão Público {ideContri} não é o Ente Federativo Responsável e não pode ser informado caso contrário. O CNPJ informado deverá ser validado com a informação referente ao Ente Federativo Responsável (EFR) existente no cadastro do CNPJ da RFB.

    MS1185 - O grupo infoEFR é Obrigatório se a Natureza Jurídica = [102-3, 103-1, 105-8, 106-6, 108-2, 117-1, 118-0, 123-6, 124-4]. Não deverá ser informado nos demais casos.

    e conforme a mensagem adicionada no titulo:

    MS1528 - O Grupo infoEFR não pode ser informado para natureza jurídica do contribuinte declarante

     

    a tag não deveria ser informada por conta da validação da Natureza Jurídica.

    quem puder ajudar com alguma solução.

    Obrigado 

  8. Em 18/08/2022 at 22:04, Renato Rubinho disse:

    Boa noite,

    Em tese são suportados 100 eventos por lote.

    http://svn.code.sf.net/p/acbr/code/tools/DFe/Reinf/ManDesenvolvedor/ManualOrientacaoDesenvolvedor-REINF v1.05.01.pdf 

    Screenshot_20220818-215245_Google PDF Viewer.jpg

    Pela mensagem parece ter ultrapassado algum limite.

    Está utilizando a produção restrita?

    Se estiver, ela possui algumas restrições documentadas, pode ser também o caso do 2055.

    Screenshot_20220818-220028_Google PDF Viewer.jpg

    Estou usando Produção restrita, o erro acontece quando passo de 10 realmente, pode ser validação do ambiente, irei analisar mais o documento.

  9. 13 minutos atrás, MessiasNatal13 disse:

    Ao carregar os documentos de produtor rural, por exemplo dando 50 registros, realizo o loop e adiciono pelo New "FACBr.Eventos.ReinfEventos.R2055.New"

    porem ao passar de 10 registro é retornado o erro : WebService: http://sped.fazenda.gov.br/RecepcaoLoteReinf/ReceberLoteEventos - - Inativo ou Inoperante tente novamente. - Erro Interno: 0 - Erro HTTP: 413 - URL: https://preprodefdreinf.receita.fazenda.gov.br/WsREINF/RecepcaoLoteReinf.svc -  - The page was not displayed because the request entity is too large.

    Acabei apertando o botão e gravou o tópico segue continuação da duvida:

    A Dúvida é se o envio deve ser feito um a um como nota fiscal eletrônica, vc pode selecionar 50 notas e mandar o envio será uma de cada vez, o Reinf seria o mesmo tbm ?

     

  10. Ao carregar os documentos de produtor rural, por exemplo dando 50 registros, realizo o loop e adiciono pelo New "FACBr.Eventos.ReinfEventos.R2055.New"

    porem ao passar de 10 registro é retornado o erro : WebService: http://sped.fazenda.gov.br/RecepcaoLoteReinf/ReceberLoteEventos - - Inativo ou Inoperante tente novamente. - Erro Interno: 0 - Erro HTTP: 413 - URL: https://preprodefdreinf.receita.fazenda.gov.br/WsREINF/RecepcaoLoteReinf.svc -  - The page was not displayed because the request entity is too large.

  11. Estou realizando uma integração com ACBrReinf versão 1.5.1 para Órgão Público e me deparei com o erro MS1010 - ID inválido

    o motivo do erro tem a ver com a validação da receita que esta no documento "Anexo II dos leiautes da EFD-Reinf - Regras de validação Versão 1.5.1" REGRA_VALIDA_ID_EVENTO

    "A identificação única do evento (Id) é composta por 36 caracteres, conforme disposto a seguir: IDTNNNNNNNNNNNNNNAAAAMMDDHHMMSSQQQQQ

    ID - Texto Fixo "ID";

    T - Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF);

    NNNNNNNNNNNNNN - Número do CNPJ ou CPF do contribuinte - Completar com zeros à direita. No caso de pessoas jurídicas, o CNPJ informado deve conter 8 ou 14 posições de acordo com o enquadramento do contribuinte para preenchimento do campo {ideContri/nrInsc} do evento R-1000, completando-se com zeros à direita, se necessário.

    AAAAMMDD - Ano, mês e dia da geração do evento;

    HHMMSS - Hora, minuto e segundo da geração do evento;

    QQQQQ - Número sequencial da chave. Incrementar somente quando ocorrer geração de eventos na mesma data/hora, completando com zeros à esquerda. OBS.: No caso de pessoas jurídicas, o CNPJ informado deverá conter 8 ou 14 posições de acordo com o enquadramento do contribuinte para preenchimento do campo {ideContri/nrInsc} do evento S-1000, completando-se com zeros à direita, se necessário "

     

    O ID gerado esta com a informação incorreta da opção T - Tipo de Inscrição do Contribuinte (1 - CNPJ; 2 - CPF); esta saindo como 2 sendo que o correto é 1 o motivo disso é o seguinte:

    no arquivo pcnGeradorReinf.pas linha 321 valida o tamanho da variável CNPJF:

      if (Length(CNPJF) = 14) then 
        Result := Result + IntToStr(1)
      else
        Result := Result + IntToStr(2);

    Porem existe um regra para órgão público no campo nrInsc da tag ideContri "Informar o número de inscrição do contribuinte de acordo com o tipo de inscrição indicado no campo {tpInsc}. Se for um CNPJ deve ser informada a raiz/base de oito posições, exceto se a natureza jurídica do contribuinte declarante for de administração pública direta federal ([101-5], [104-0], [107- 4], [116-3], situação em que o campo deve ser informado com o CNPJ completo (14 posições). Validação: Se {tpInsc} for igual a [1], deve ser um número de CNPJ válido"

    no caso órgão público se enquadra na definição de informar apenas a raiz/base de oito posições do CNPJ assim a verificação acima é definida como 2 pois a variável CNPJF não é igual a 14 assim gerando o ID incorreto.

    A solução foi acrescentar nessa verificação um or com o TipoContribuinte = tcOrgaoPublico:

      if (Length(CNPJF) = 14) or (TACBrReinf(FACBrReinf).Configuracoes.Geral.TipoContribuinte = tcOrgaoPublico) then
        Result := Result + IntToStr(1)
      else
        Result := Result + IntToStr(2);

    desta forma o ID é gerado corretamente, anexei o arquivo pcnGeradorReinf.pas com a correção e um comentário a respeito sobre as 8 posições 

    caso a correção seja a correta para atualizarem no repositório oficial.

    se tiver alguma outra sugestão podem sugerir 

    Obrigado 

     

    pcnGeradorReinf.pas

    • Obrigado 1
  12. Nos tópicos referente ao erro de inicialização da biblioteca LibXML2 pedem para que as dlls da pasta LibXml2 sejam distribuídos junto com o executável, no projeto que trabalho existe uma configuração de pasta para 

    dlls onde existe a pasta de x86 e x64.

    A dúvida é existe uma forma de configurar o Acbr o caminho de leitura dessas dll assim não precisaria deixar as dll no caminho do executável ?

    Obs:  Seria possível estar distribuindo essas dlls nas pastas do windows "System32" e "SysWOW64" porem eu não queria fazer desta forma 

     

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