cancel
Showing results for 
Search instead for 
Did you mean: 

Nota Fiscal avulsa x chave de acesso

Former Member
0 Kudos

Boa tarde,

Nos deparamos com a seguinte situação: determinado Fornecedor emitiu uma NF Avulsa via site da SEFAZ. O CNPJ da chave de acesso é o CNPJ da SEFAZ. Ao dar entrada da NF no SAP, o sistema utiliza o CNPJ do Fornecedor e recalcula o dígito verificador, não permitindo o processamento da MIRO.

Alguém sabe como resolver isso?

Desde já, agradeço.

Suyan

Accepted Solutions (0)

Answers (5)

Answers (5)

pedro_candiago
Explorer
0 Kudos

Sei que o post é antigo mas acho que vale mais uma sugestão de desenvolvimento.

Tivemos o mesmo problema aqui e consegui resolver utilizando enhancements.

Segue abaixo os passos:

1-Criar um enhancement no final do include LJ_1B_NFETOP. Declarar uma variável para fazer o backup do parceiro.
DATA: gc_parid TYPE j_1bnfdoc-parid

2-Criar um enhancement no início da função J_1B_NFE_FILL_MONITOR_TABLE.

Neste enhancement deve-se realizar o backup do parceiro na variável GC_PARID.

Após atualizar com o código do parceiro da SEFAZ (aqui foi criado um fornecedor que contém o CNPJ da SEFAZ).

Segue o código:

*-- Cenário de nota avulsa de fornecedor optante pelo simples

   FIELD-SYMBOLS: <fs_bnfdoc> TYPE any,

                               <fs_field> TYPE any.

   CLEAR gc_parid.

   IF ( i_doc-series = '890' OR i_doc-series = '891') AND ( i_doc-nftype = 'E1' OR i_doc-nftype = 'EA' ) .

     gc_parid = i_doc-parid.

*-- Este função é executada durante o preenchimento da nota e depois no momento de salvar

*-- Se não for no momento de salvar, acessa uma estrutura, caso contrário acessa outra

     IF sy-ucomm <> 'SAVE'.

       ASSIGN ('(SAPLJ1BB2)WK_DOC') TO <fs_bnfdoc>.

     ELSE.

       ASSIGN ('(SAPLJ1BB)WK_HEADER') TO <fs_bnfdoc>.

     ENDIF.

     IF sy-subrc IS INITIAL.

*-- Modifica o código de situação

       ASSIGN COMPONENT 'COD_SIT' OF STRUCTURE <fs_bnfdoc> TO <fs_field>.

       IF sy-subrc IS INITIAL.

         <fs_field> = '08'.

       ENDIF.

*-- Busca o código de fornecedor da SEFAZ

*-- Este código será inserido no campo I_DOC-PARID para que quando executar a função J_1B_NF_PARTNER_READ (linha 325),

*-- busque os dados da SEFAZ para gerar a chave de acesso da NF corretamente para o cenário.

*-- No final desta função (J_1B_NFE_FILL_MONITOR_TABLE) o código do parceiro retornará ao original, salvo na variável GC_PARID.

       SELECT SINGLE parid FROM ztbmm_ch_ac

         INTO @DATA(lc_parid)

         WHERE regio = @i_doc-regio.

       IF lc_parid IS NOT INITIAL.

         ASSIGN COMPONENT 'PARID' OF STRUCTURE <fs_bnfdoc> TO <fs_field>.

         IF sy-subrc IS INITIAL.

           <fs_field> = lc_parid.

         ENDIF.

       ENDIF.

     ENDIF.

   ENDIF.

Com isso, o standard executará a função J_1B_NF_PARTNER_READ utilizando o código de parceiro da SEFAZ, retornando o CNPJ correto.

3-Criar um enhancement no final da função J_1B_NFE_FILL_MONITOR_TABLE para retornar o parceiro original da NF.

*-- Retorna o código de parceiro original da NF

   IF ( i_doc-series = '890' OR i_doc-series = '891') AND ( i_doc-nftype = 'E1' OR i_doc-nftype = 'EA' ) .

     IF <fs_bnfdoc> IS ASSIGNED.

       ASSIGN COMPONENT 'PARID' OF STRUCTURE <fs_bnfdoc> TO <fs_field>.

       IF sy-subrc IS INITIAL.

         <fs_field> = gc_parid.

       ENDIF.

     ENDIF.

   ENDIF.

Desta forma o código fica todo em enhancements, sem ter problemas com a SAP.

SilvioMiranda
Participant
0 Kudos

Aqui na empresa, esse fato ocorre muito com o Produtor Rural (pessoa física) que emite Nota Fiscal Avulsa pela SEFAZ. Para contornar o problema adotamos como padrão a colocação do CGC da SEFAZ no cadastro do fornecedor (no campo LFA1-NAME4) e alteramos a função STANDARD J_1B_NFE_FILL_MONITOR_TABLE para executar uma função e retornar o CGC, quando houver um cadastrado.

.. Código da função J_1B_NFE_FILL_MONITOR_TABLE

* incoming beats vendor master data                          1502482

   import stcd1_xml to lv_stcd1_xml                          "1502482

     from memory id 'STCD1XML'.                              "1502482

   if sy-subrc = 0.                                                    "1502482

      e_active-stcd1 = lv_stcd1_xml.                          "1502482

   endif.                                                                  "1502482

CALL FUNCTION 'Z_NFE_SETA_CGC_NF_AVULSA'

  EXPORTING

    i_nftype          = i_doc-nftype

    i_j_1binnad       = ls_innad

  IMPORTING

    E_STCD1           = e_active-stcd1.

...

FUNCTION z_nfe_seta_cgc_nf_avulsa.

*"----------------------------------------------------------------------

*"*"Interface local:

*"  IMPORTING

*"     REFERENCE(I_NFTYPE) TYPE  J_1BNFTYPE

*"     REFERENCE(I_J_1BINNAD) TYPE  J_1BINNAD

*"  EXPORTING

*"     REFERENCE(E_STCD1) TYPE  J_1BSTCD1

*"----------------------------------------------------------------------

  DATA: lc_name4 LIKE lfa1-name4.

* nota fiscal de entrada AVULSA

  CHECK i_nftype = 'EA'.

* Ler o CGC da SEFAZ do campo NAME4 no fornecedor para o tipo de NF

* retornará o CGC que será substituído na chave da NFe

* durante a criação da NF no include LJ_1B_NFEU02 dentro da função

* J_1B_NFE_FILL_MONITOR_TABLE

  e_stcd1 = I_J_1BINNAD-name4(14).

ENDFUNCTION.

former_member260831
Participant
0 Kudos

Oi Pessoal!

Achei mais um jeito como facer, sempre alterando o estandar, mas sem precisar de uma tabela Z.

No screen 2800 do programa SAPLJ1BB2 abri o campo do CNPJ no MODULE define_screen_control_nfe OUTPUT.

  DATA: lv_attr TYPE char1.

*---> Start REV01
  IF NOT wk_header-nfe IS INITIAL AND
       ( modef         EQ 'CHA' OR
         modef         EQ 'CRE' ).
    LOOP AT SCREEN.
      CASE screen-name.
        WHEN 'J_1BNFE_ACTIVE-STCD1'.
          screen-input    = 1.
      ENDCASE.
      MODIFY SCREEN.
    ENDLOOP.
  ENDIF.
*<--- End REV01
  LOOP AT SCREEN.

Logo no mesmo screen fiz um novo module:

PROCESS AFTER INPUT.

  MODULE exit_command AT EXIT-COMMAND.
*{   INSERT         D01K983498                                        1

  CHAIN.
    FIELD: J_1BNFE_ACTIVE-STCD1.
    MODULE move_cnpj_avulsa ON CHAIN-REQUEST.
  ENDCHAIN.
*
*}   INSERT

* subscreen for tpemis / docnum9                            "1454408

Nesse module:

MODULE move_cnpj_avulsa INPUT.

  MOVE j_1bnfe_active-stcd1 TO wk_active-stcd1.

ENDMODULE.                 " MOVE_CNPJ_AVULSA  INPUT

Que acontece na J1B2N: depois de alterar o CNPJ e os dados da chave de acceso, voce tem que gravar sem dar "enter" antes. Porque se voce dar enter, o sistema passa novamente o CNPJ do parceiro. Se voce depois de gravar a nota volta a entrar com a J1B2N o sistema altera outra vez o CNPJ e voce tem que ficar de olho.

Se que nao é o jeito mas limpo, mas o departamento financeiro acho bem e assim nao precisa de actualizar um cadastro Z.

Abraço

Nino

Former Member
0 Kudos

Boa noite,

Alguem sabe de alguma nota da SAP para tratar do assunto?

Former Member
0 Kudos

Ei,

Você encontrou alguma nota SAP para o lançamento da NF avulsa com o CNPJ da SEFAZ?

Former Member
0 Kudos

Oi Silene,

Não tem nota SAP para tratar este cenario.

Att.

Karen Rodrigues

Former Member
0 Kudos

Hola Mestres !!!

Estou com o mesmo problema de Suyan:

Nos deparamos com a seguinte situação: determinado Fornecedor emitiu uma NF Avulsa via site da SEFAZ. O CNPJ da chave de acesso é o CNPJ da SEFAZ. Ao dar entrada da NF no SAP, o sistema utiliza o CNPJ do Fornecedor e recalcula o dígito verificador, não permitindo o processamento da MIRO.

Algum de vocês encontrou solução standard ?

Se não, como fizeram ?

Agradeço a atenção.

Former Member
0 Kudos

Prezado,

Esta thread é antiga, poderia abrir uma nova?

Att.

Karen Rodrigues

Former Member
0 Kudos

Agradeço as respostas...

Pergunto: não existe nenhuma Nota da SAP corrigindo este problema?

Abraços

Former Member
0 Kudos

Oi

Desconheço que haja alguma solução standard tratando disso. Talvez seja o caso de abrir um chamado já que a SEFAZ de SP também possui este processo.

Abraço

Eduardo Chagas

Former Member
0 Kudos

OK, obrigada pela atenção.

Abraços, Suyan

Former Member
0 Kudos

Oi Suyan

Como comentei... fiz um teste aqui usando uma copia da função J_1B_NF_VENDOR_READ e modifiquei o cnpj em tempo de execução. Veja abaixo que a chave possui outro cnpj.

Essa seria uma solução até que se tenha uma solução standard.

Former Member
0 Kudos

OK, muito obrigada pela dica.

Abraços

Former Member
0 Kudos

Olá Eduardo!

Eu fiz o teste que você citou acima, sendo que na função Z que criei eu modifiquei o campo "parnad-cgc" para receber o valor do CNPJ da tabela que criei.

O problema é que na tela da J1B1N ele alterou todos os campos do CNPJ para o novo. Não ficou como você citou na imagem. Tenho que fazer outra alteração?

Former Member
0 Kudos

Olá!! Eu estava com o mesmo problema, sendo que depurando o sistema eu vi que ele passava duas vezes no mesmo ponto da função Z sugerida pelo Eduardo. Isso fazia que o CNPJ que coloquei alterasse todos os CNPJ da nota.

Eu resolvi da seguinte forma:

A primeira vez ele passa é para preencher os dados da j_1bnfdoc e a segunda vez é para popular os dados da j_1bnfe_active. No meu caso só preciso que ele altere os dados da active.

Então na função Z eu utilizei o comando assing (SAPLJ1BB2)WK_PARNAD e verifico se essa estrutura não está vazia, se não estiver vazia eu coloco o CNPJ para o campo sugerido pelo Eduardo.

Dessa forma o sistema aqui ficou igual a imagem citada acima.

former_member182114
Active Contributor
0 Kudos

Bom dia Suyan,

A nota emitida que está errada. A chave de acesso deve ter o CNPJ do emissor da nota, e mesmo tendo usado o software da Sefaz o emissor é o contribuinte e não a Sefaz.

Confirma que o CNPJ está na chave de acesso é o mesmo CNPJ do emissor?

Atenciosamente, Fernando Da Ros

Former Member
0 Kudos

Oi Fernando.

Por incrível que pareça existe esse cenário e o cnpj no XML é da SEFAZ!!! 😛

, eu aconselho você entrar em contato com a SEFAZ para ver como essa nota deve ser escriturada.

Uma alternativa seria você cadastrar a SEFAZ como um fornecedor; outra talvez seja criar uma função copia da função J_1B_NF_VENDOR_READ e tratar para atribuir o CNPJ da sefaz. Neste caso terá que atribuir a função Z na tabela J_1BACV.

Abraço

Eduardo Chagas

Message was edited by: Eduardo Chagas

Former Member
0 Kudos

Agradeço as respostas...

Pergunto: não existe nenhuma Nota da SAP corrigindo este problema?

Abraços

former_member182114
Active Contributor
0 Kudos

Bom dia Eduardo,

Obrigado, realmente desconheço este processo.

Dei uma googlada e não achei detalhes, vocês tem dicas de como pode ocorrer?

Pode ser uma situação para solicitar tratamento do standard.

Atenciosamente, Fernando Da Ros

Former Member
0 Kudos

Fernando,

Tem um tópico no fórum sobre o assunto.

http://www.localizationforum.com/forum/index.php?topic=3352.msg9440#msg9440 

O problema é que temos prazo para lançamento desta Nota e já tem outro caso semelhante.

Abraços, Suyan