cancel
Showing results for 
Search instead for 
Did you mean: 

NFe de entrada tendo o tipo de emissão TPEMIS modificado quando o SVC esta ativo

Former Member
0 Kudos

Olá,

fiz uma busca nas notas sap ( 1746671 1965381 2000511 2026066 ) e em tópicos pela internet/scn mas não encontrei solução para o meu problema.

Trata-se de um cenário de recebimento Nfe que não precisa ser validada pela SEFAZ:

Registra-se no SAP uma NFe emitida por um fornecedor pelo tipo de emissão 1, ou seja quando a NFe foi emitida a SEFAZ não se encontrava em regime SVC ou contingência, a NFe foi emitido como TPEMIS = 1. A chave da nfe esta autorizada na SEFAZ como 1.

O problema ocorre quando a minha empresa ao receber a NFe se encontra no momento do registro (J1B1N, MIGO, MB0A) em regime de SVC ativo, mas prestem atenção, SVC ativo para EMITIR NFe com característica de "saída".

Acontece que a NFe é registrada mas o TPEMIS é alterado automaticamente para 6, porque o SVC naquele momento esta ativo. Digo 6 porque estou em MG, mas na unidade do PR o erro é o mesmo, pois lá o TPEMIS muda para 7 na gravação da NFe.

Quando não estou no regime SVC ativo a NFe de entrada não apresenta erros obviamente.

Procurei via spro algum parâmetro (categoria de nota principalmente ) e via código alguma condição que avaliasse o DIRECT da NFe antes de entrar na lógica abap abaixo, já que entendo que só devo checar a condição da SEFAZ em notas de saida ou notas de entrada QUE tenham a obrigatoriedade  de serem enviadas a SEFAZ, como por exemplo um registro de devolução sobre a minha nfe de saida que o cliente rejeitou antes de receber.

Vamos então ao debug...

Dentro da função J_1B_NFE_GET_ACTIVE_SERVER

*begin changes for note 2000511 - SVC
  IF NOT ls_active_server-svc_active IS INITIAL OR
      NOT ls_active_server-svc_rs_active IS INITIAL OR
      NOT ls_active_server-svc_sp_active IS INITIAL.


a primeira condição é atendida como 'X' e o SAP chama então a função J_1B_NFE_PREPARE_SVC.


aqui tenho o efeito cascata que vai gerar o problema do registro. O serviço ativo é identificado como 05


CASE 'X'.
    WHEN ls_active_server-svc_sp_active.
      cs_acttab-active_service = '03'.
    WHEN ls_active_server-svc_rs_active.
      cs_acttab-active_service = '04'.
    WHEN ls_active_server-svc_active.
      cs_acttab-active_service = '05'.
    WHEN OTHERS.
      RAISE no_numbering.
  ENDCASE.


chama-se então a função J_1B_NFE_GET_TPEMIS que com a condição acima recupera o LV_TPEMIS = 6 e depois temos mais uma função que muda na estrutura o valor.

* Set TPEMIS and realculate check digit
  CALL FUNCTION 'J_1BDFE_SET_TPEMIS


A lógica acima esta corretíssima, mas não sei como evita-la para o meu caso.

Como estou apenas realizando a escrituração de uma NFe de entrada e independente de estarmos ou não em regime SVC o que deve prevalecer é o tipo de emissão que se encontra na NFe que estou registrando.


Já conferi os passos manuais das notas SAP e não consegui encontrar nenhuma outra que me ajude.


Em anexo exemplo das duas categorias de nota de entrada que tenho aqui. A primeira que não precisa homologar na SEFAZ e a segunda que precisa.

Accepted Solutions (1)

Accepted Solutions (1)

Eduardo_Rubia
Product and Topic Expert
Product and Topic Expert
0 Kudos

Prezado(a),

O TPEMIS somente deveria ser manipulado para NF-es com categoria de nota que tenha um FORM atribuído. Todas as outras terão esta informação preenchida manualmente (via MIGO, MB*, MIRO ou J1B*n) ou automaticamente quando recebida via automação.

Qualquer comportamento diferente deste ou é desenvolvimento (como parece ser o caso) ou erro do software.

Abs,

Eduardo

former_member924895
Discoverer
0 Kudos

Rubia,

Era exatamente o que estava acontecendo, a categoria de nota não tem nenhum FORM atribuído, consequentemente não deveria ter tido qualquer tipo de intervenção por parte do desenvolvimento criado para o cliente.

Os usuários fizeram os testes, e o ajuste efetuado atende as necessidades do cliente.

Agradeço pela atenção

Abs

Alvaro Duarte

Answers (1)

Answers (1)

former_member924895
Discoverer
0 Kudos

Olá, bom dia

Caro cliente, analisando o seu ambiente pude perceber que alguns enhancementes foram criados na transação J1b1N e transações subsquentes para atender a sua necessidades, o campo TPMIS está sendo alterado por causa de um enhancement (ZEH_NFE_NEW) que foi criado dentro do módulo de função J_!B_BFE_FILL_MONITOR_TABLE que é chamado no momento da gravação.

O enhancemente criado no final da função chama outro módulo de função 'J_1BDFE_SERVER_DETERMINATION' que alterava o código do tipo de emissão para o cadastrado no SVC.

Como solução do seu problema usamos um field-symbol verificando se o flag de entrada de nf (ou seja, se a NF e emitida ou não por sua empresa) não estiver marcado,  o enhancement que existia não chamará mais a função para modificar o dado, respeitando a regra utillizada pelo usuário para o campo TPEMIS.

A solução está pronta para testes do usuário e uso de vossa empresa.

Em caso de dúvidas favor me procurar no projeto de vossa empresa

att,