Escolar Documentos
Profissional Documentos
Cultura Documentos
BONIFICAÇÃO
MERCADORIA AGREGANDO VALOR AO ESTOQUE
Resumo
Este cenário é utilizado quando o fornecedor envia uma nota fiscal separada com a bonificação
(CFOPs 5910 e 6910). Este caso configura uma receita para a empresa, logo o valor das
mercadorias deve ser lançado no estoque e os impostos creditados normalmente (com a exceção
de PIS e COFINS)
1. Criar tipos de movimento (OMJJ)
Copiar a linha do ICM1 para uma linha abaixo dela. No nível, inserir o nível da ICM1. A chave de contas pode ser
mantida a mesma da ICM1 caso não haja a necessidade de se contabilizar o ICMS em conta diferente.
d. Configurar derivação de nota fiscal
Nota fiscal Administração de estoques Derivação de categoria NF
a. Função J_1B_IM_TX_CALCULATE_TAX_NEW
Criar 3 enhancements na função J_1B_IM_TX_CALCULATE_TAX_NEW.
O primeiro deve ser criado no início da função para exportar o tipo de movimento.
O segundo deverá estar dentro do loop na XKOMV:
O terceiro deve ser inserido no outro loop da xkomv que existe.
Obs: A classe singleton é utilizada apenas para substituir a utilização de EXPORT e IMPORT. Com ela é possível
evitar erros que podem ocorrer por seções paralelas.
b. Include LJ1BNF05
ATENÇÃO: A CODIFICAÇÃO ABAIXO FOI FEITA PARA O TIPO DE MOVIMENTO Y14 E A CONDIÇÃO BON1. CASO
UTILIZE TIPO DE MOVIMENTO (ESTORNO – CÓPIA DO 502) DIFERENTE OU CONDITION (PASSO 2.b) DIFERENTE O
CÓDIGO DEVERÁ SER MODIFICADO TAMBÉM PARA ATENDER AOS NOVOS VALORES.
cl_singleton = zcl_singleton_extension=>read_instance( ).
CALL METHOD cl_singleton->read_value
EXPORTING
i_name = 'BWART'
CHANGING
c_value = lv_bwart.
CALL METHOD cl_singleton->read_value
EXPORTING
i_name = 'KSCHL'
CHANGING
c_value = lv_kschl.
IF lv_bwart EQ 'Y14' AND
lv_kschl EQ 'BON1'.
IF ( p_vprsv = 'S' ) AND "1553273 "955843
( ( p_xstor = '2' OR "812974 "967965
p_action = 'A02' OR "1087065
p_action = 'A03' ) AND "967965 "1087065
p_shkzg = 'H' ). "and "812974 "1087065
ELSE.
IF p_xstor = '2' OR "916275
p_action = 'A02' OR "967965 "1021036
p_action = 'A03'. "1021036
CASE p_invoice. "1021036
WHEN space. "1021036
IF p_action = 'A03' "cancel "1021036
OR p_action = 'A02'. "1174517
IF ( ( p_bustw = 'WE01' OR "1977720
p_bustw = 'WA01' ) AND p_buzid = 'T' ). "1977720
* p_bestd = p_bestd - p_amount. "916275
EXIT.
ENDIF. "916275
ENDIF. "1021036
WHEN 'P'. "1021036
IF ( p_bustw = 'WE01' "916275
AND p_buzid = 'T' ). "916275
p_bestd = p_bestd - p_amount. "916275
ENDIF. "916275
WHEN 'F' OR 'N'. "1021036
IF p_buzid = 'M'. "1021036
* Handle PIS/COFINS posting at MIGO "1697517
IF p_pis_cofins_included = true AND "1697517
( p_condition_type = lc_pis OR "1697517
p_condition_type = lc_cofins ) AND "1697517
p_amount < 0. "1697517
p_prdif = p_prdif + p_amount. "1697517
ELSE. "1697517
* Normal Posting "1697517
p_bestd = p_bestd + p_amount. "1697517
ENDIF. "1697517
ENDIF. "1021036
ENDCASE. "1021036
*-> do nothing "916275
ELSE. "916275
* add to inventory "916275
* Handle PIS/COFINS posting at MIGO "1697517
IF p_pis_cofins_included = true AND "1697517
( p_condition_type = lc_pis OR "1697517
p_condition_type = lc_cofins ) AND "1697517
p_amount < 0. "1697517
p_prdif = p_prdif + p_amount. "1697517
ELSE. "1697517
* Normal Posting "1697517
p_bestd = p_bestd + p_amount. "1697517
ENDIF. "1697517
ENDIF.
ENDIF.
ENDIF.