on 05-22-2012 5:41 PM
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
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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.
Agradeço as respostas...
Pergunto: não existe nenhuma Nota da SAP corrigindo este problema?
Abraços
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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?
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.
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
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
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
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
User | Count |
---|---|
15 | |
3 | |
2 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 | |
1 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.