Você está na página 1de 15

Especificação Funcional

Identificação do Desenvolvimento

Frente / Módulo MM Fiscal


Processo de Negócio Compras
Nome da Configuração Pricing Reversa
Consultor Funcional Jeanderson Oliveira
Desenvolvedor ABAP Jeanderson Oliveira
Tipo de Desenvolvimento Report Exit/BADI Dicionário Alv Standard
Carga FormuláriO Função Interface
Online / Module Pool Workflow Enhancement
Outros (especificar) _____________________________
Complexidade Baixa Média Alta

Implementação/Revisão Data Descrição resumida


Implementação 05/05/2022 Implementação da automatização da pricing de
compras com os impostos calculados pela TAXBRA

1
Definição do Desenvolvimento do ABAP
Serão desenvolvidas funções, fórmulas, tabelas, visões e transações para efetuar o cálculo
dos impostos inclusos no preço bruto (ICMS, PIS e COFINS) com base nas configurações
efetuadas na J1BTAX. Após inserir o preço bruto unitário e o IVA, o preço líquido será calculado
automaticamente pela Pricing ZBRUTO a partir da retirada dos impostos inclusos no preço bruto
do material ou serviço (ou seja, do ICMS, PIS e COFINS). Estão previstos:

 Criação e adaptação da fórmula de valor de condição 959, disponibilizada pela Nota SAP
1551566. Nesta fórmula os impostos serão exportados para uma tabela interna
compartilhada dentro do grupo de função J_1B_PO_TAX_MAP e a partir da chamada do
módulo de função J_1B_WRITE_TAX_TO_MEMORY.
 Criação da função ZJ_1B_READ_FROM_MEMORY_TO_PO com base na standard
J_1B_READ_FROM_MEMORY_TO_PO.
 Criação e adaptação da fórmula de valor de condição 960, disponibilizada pela Nota SAP
1551566. Nesta fórmula os impostos serão importados para uma tabela interna
compartilhada dentro do grupo de função J_1B_PO_TAX_MAP e a partir da chamada do
módulo de função ZJ_1B_READ_FROM_MEMORY_TO_PO.
 Criação da fórmula de requisito de determinação de preço 904 para eliminar valores
duplicados na pricing de compras quando criado um pedido com referência a uma
solicitação de cotação ou contrato.
 Configuração da atribuição da fórmula 959 às condições de percentuais de impostos
(ICMS, IPI, SUBTRIB, PIS e COFINS) na pricing de impostos TAXBRA.
 Configuração de uma nova pricing de compras ZBRUTO com condições Z de impostos
vinculadas à formula de valor de condição 960.
 Criação de transação Z para chamada da visão J_1B_PO_TAX_MAPV pela SM30.
 Preenchimento da visão J_1B_PO_TAX_MAPV através da transação SM30. Deve ser
informada a relação DE PARA entre as condições Z da pricing de compras ZBRUTO e as
condições standard da pricing de impostos TAXBRA que representam os parâmetros
percentuais de impostos (2º grupo). Isso servirá para buscar as configurações de impostos
feitas na J1BTAX aproveitando a lógica da própria TAXBRA.
 Criação da tabela ZJ_1B_PO_TAX_MAP e consequente visão ZJ_1B_PO_TAX_MAP para
atualização na transação SM30. Devem ser informadas as condições da pricing de
compras ZBRUTO em relação às condições standard da pricing de impostos TAXBRA que
representam os impostos na nota fiscal (4º grupo). Isso servirá para considerar apenas as
condições ativadas pelo IVA de MM.
 Implementação da classe ZCL_IM_ME_DEFINE_CALCTYPE da BADI DEFINE_CALCTYPE para
determinação automática da atualização da pricing se algum campo relevante sofrer modificação.
 Implementação de enhancement na fórmula 320 da TAXBRA para ajuste do valor de PIS e COFINS
nas compras de material para revenda com cálculo de IPI.

2
Criação e adaptação da fórmula de valor de condição 959
Transação VOFM

Lógica de Processamento
FORM FRM_KONDI_WERT_959.

*ADAPTAÇÃO DAS FÓRMULAS 342 E 343
  CONSTANTS:
    lc_bco1 TYPE komv-kschl VALUE 'BCO1', "Condição BCO1 – Valor da COFINS
    lc_bco3 TYPE komv-kschl VALUE 'BCO3', "Condição BCO3 – Base de cálculo da COFINS revenda
    lc_bcop TYPE komv-kschl VALUE 'BCOP', "Condição BCOP – Base de cálculo da COFINS pauta
    lc_bco4 TYPE komv-kschl VALUE 'BCO4', "Condição BCO4 – Base de cálculo da COFINS pauta revenda
    lc_bpi1 TYPE komv-kschl VALUE 'BPI1', "Condição BPI1 – Valor do PIS
    lc_bpi3 TYPE komv-kschl VALUE 'BPI3', "Condição BPI3 – Base de cálculo do PIS revenda
    lc_bpip TYPE komv-kschl VALUE 'BPIP', "Condição BPIP – Base de cálculo do PIS pauta
    lc_bpi4 TYPE komv-kschl VALUE 'BPI4'. "Condição BPI4 – Base de cálculo do PIS pauta revenda

  DATA: lx_minimum TYPE xfeld.

  IF xkomv-kschl = lc_bco1.
*del[...]: Coding revomed by SAP Note 1792089                   "1792089
*    INCLUDE j_1b_kondi_wert_342.                               "1792089

    CALL FUNCTION 'J_1B_SET_CHECK_MIN_STEP_NUMBER'
      EXPORTING
        iv_mode        = 'SET'
        iv_xkomv_kolnr = xkomv-kolnr.

  ELSEIF xkomv-kschl = lc_bco3 OR xkomv-kschl = lc_bcop OR xkomv-kschl = lc_bco4.
*del[...]: Coding moved by SAP Note 1792089                     "1792089
*    INCLUDE j_1b_kondi_wert_343.                               "1792089

    CALL FUNCTION 'J_1B_SET_CHECK_MIN_STEP_NUMBER'
      EXPORTING
        iv_mode        = 'CHECK'
        iv_xkomv_kolnr = xkomv-kolnr
      IMPORTING
        cx_minimum     = lx_minimum.

    IF lx_minimum IS INITIAL.
      CLEAR: xkwert,

3
             xkomv-kwert, xkomv-kmein, xkomv-kpein.
*   Condition will be removed from table xkomv:
      xkomv-kinak = 'Z'.
    ENDIF.

  ELSEIF xkomv-kschl = lc_bpi1.
*del[...]: Coding revomed by SAP Note 1792089                   "1792089
*    INCLUDE j_1b_kondi_wert_342.                               "1792089

    CALL FUNCTION 'J_1B_SET_CHECK_MIN_STEP_NUMBER'
      EXPORTING
        iv_mode        = 'SET'
        iv_xkomv_kolnr = xkomv-kolnr.

  ELSEIF xkomv-kschl = lc_bpi3 OR xkomv-kschl = lc_bpip OR xkomv-kschl = lc_bpi4.
*del[...]: Coding moved by SAP Note 1792089                     "1792089
*    INCLUDE j_1b_kondi_wert_343.                               "1792089

    CALL FUNCTION 'J_1B_SET_CHECK_MIN_STEP_NUMBER'
      EXPORTING
        iv_mode        = 'CHECK'
        iv_xkomv_kolnr = xkomv-kolnr
      IMPORTING
        cx_minimum     = lx_minimum.

    IF lx_minimum IS INITIAL.
      CLEAR: xkwert,
             xkomv-kwert, xkomv-kmein, xkomv-kpein.
*   Condition will be removed from table xkomv:
      xkomv-kinak = 'Z'.
    ENDIF.

  ENDIF.

*ADAPTAÇÃO DA FÓRMULA 959
*INCLUDE J_1B_FORM_WRITE_TO_MEMORY.
* transfer actual condition value from rettxkomv to memory
  CALL FUNCTION 'J_1B_WRITE_TAX_TO_MEMORY'
    EXPORTING
      is_komv = rettxkomv.
ENDFORM.

4
Criação da função ZJ_1B_READ_FROM_MEMORY_TO_PO e atribuição no grupo
de função J_1B_PO_TAX_MAP
Lógica de Processamento
FUNCTION ZJ_1B_READ_FROM_MEMORY_TO_PO.
*"--------------------------------------------------------------------
*"*"Interface local:
*"  IMPORTING
*"     REFERENCE(IV_KAPPL) TYPE  KAPPL
*"     REFERENCE(IV_KSCHL) TYPE  KSCHL
*"     REFERENCE(IV_KPOSN) TYPE  KPOSN
*"     REFERENCE(IV_MWSKZ) TYPE  MWSKZ
*"  EXPORTING
*"     REFERENCE(ES_KOMV) TYPE  KOMV
*"  EXCEPTIONS
*"      NO_DATA_FOUND
*"--------------------------------------------------------------------

  CONSTANTS:                                                "1892623
    lc_koaid_tax TYPE koaid VALUE 'D'. "Condition ID Taxes  "1892623

  DATA: ls_price_tax_item TYPE j_1b_po_tax_map.

* check if mapping from tax condition to pricing condition exists
  SELECT SINGLE * FROM j_1b_po_tax_map
    INTO ls_price_tax_item
    WHERE kappl_po = iv_kappl
    AND kschl_po = iv_kschl.

  IF sy-subrc IS INITIAL.
* return corresponding tax condition value from memory
* 1. read with MWSKZ                                       "1892623
*    if found: condition is tax value                      "1892623
* 2. read w/o MWSKZ                                        "1892623
*    condition is tax rate or not relevant for tax code    "1892623
    READ TABLE gt_komv_exchange INTO es_komv
      WITH KEY kappl = ls_price_tax_item-kappl_tax
               kschl = ls_price_tax_item-kschl_tax
               mwsk1 = iv_mwskz                             "1596085
               kposn = iv_kposn.
    IF sy-subrc <> 0.                                       "1724550
      READ TABLE gt_komv_exchange INTO es_komv              "1724550
        WITH KEY kappl = ls_price_tax_item-kappl_tax        "1724550
                 kschl = ls_price_tax_item-kschl_tax        "1724550
                 kposn = iv_kposn.                          "1724550
      IF es_komv-koaid = lc_koaid_tax.                      "1892623
        "     tax not relevant for tax code -> set value to 0      "1892623
        CLEAR es_komv-kwert.                                "1892623
      ENDIF.                                                "1892623
    ENDIF.                                                  "1724550
  ENDIF.
  IF es_komv IS INITIAL.                                    "1855267
    RAISE no_data_found.                                    "1855267
  ENDIF.                                                    "1855267

ENDFUNCTION.

5
Criação da tabela ZJ_1B_PO_TAX_MAP e consequente visão ZJ_1B_PO_TAX_MAP
para atualização na transação SM30

6
Criação e adaptação da fórmula de valor de condição 960
Transação VOFM

Lógica de Processamento
FORM FRM_KONDI_WERT_960.

  CONSTANTS:
    lc_icm0   TYPE j_1baj-taxtyp VALUE 'ICM0', "Condição ICM0 – Sem cálculo do ICMS
    lc_ipi0   TYPE j_1baj-taxtyp VALUE 'IPI0', "Condição IPI0 – Sem cálculo do IPI
    lc_zbii   TYPE j_1baj-taxtyp VALUE 'ZBII', "Condição ZBII – Base ICMS Industr./Revenda
    lc_zbic   TYPE j_1baj-taxtyp VALUE 'ZBIC', "Condição ZBIC – Base ICMS Consumo/Ativo
    lc_zbpi   TYPE j_1baj-taxtyp VALUE 'ZBPI', "Condição ZBPI – Base PIS/COFINS Industr./Revenda
    lc_zbpc   TYPE j_1baj-taxtyp VALUE 'ZBPC'. "Condição ZBPC – Base PIS/COFINS Consumo/Ativo

*ADAPTAÇÃO DA FÓRMULA 960
*INCLUDE J_1B_FORM_READ_FROM_MEMORY.
  DATA: ti_j_1baj          TYPE STANDARD TABLE OF j_1baj WITH HEADER LINE,
        ti_a003            TYPE STANDARD TABLE OF a003 WITH HEADER LINE,
        ti_zj1b_po_tax_map TYPE TABLE OF zj1b_po_tax_map WITH HEADER LINE,
        xkomv_aux          TYPE STANDARD TABLE OF komv_index WITH HEADER LINE INITIAL SIZE 50,
        xkomv_aux2         TYPE STANDARD TABLE OF komv_index WITH HEADER LINE INITIAL SIZE 50,
        lv_calc1           TYPE p DECIMALS 2,
        lv_calc2           TYPE p DECIMALS 2,
        lv_calc3           TYPE p DECIMALS 2,
        ls_komv            TYPE komv.

  SELECT * FROM j_1baj
    INTO TABLE ti_j_1baj.

  SORT ti_j_1baj BY taxtyp.
  DELETE ti_j_1baj WHERE taxtyp = lc_icm0 OR taxtyp = lc_ipi0.
  SORT ti_j_1baj.

  CHECK NOT ti_j_1baj[] IS INITIAL.

  SELECT * FROM a003
    INTO TABLE ti_a003
    FOR ALL ENTRIES IN ti_j_1baj
    WHERE kappl = 'TX'
      AND kschl = ti_j_1baj-taxtyp
      AND aland = 'BR'

7
      AND mwskz = komp-mwskz.

  SELECT * FROM zj1b_po_tax_map
    INTO TABLE ti_zj1b_po_tax_map
    WHERE kschl_po = xkomv-kschl.

  SORT ti_zj1b_po_tax_map BY kschl_tax.

  LOOP AT ti_a003.
    READ TABLE ti_zj1b_po_tax_map WITH KEY kschl_tax = ti_a003-kschl.
    IF NOT sy-subrc IS INITIAL.
      DELETE ti_a003.
    ENDIF.
  ENDLOOP.

  IF ti_a003[] IS INITIAL.
    xkomv-kbetr = 0.
    xkomv-kwert = 0.
    xkwert = 0.
    MODIFY xkomv.
  ELSE.

    CALL FUNCTION 'ZJ_1B_READ_FROM_MEMORY_TO_PO'
      EXPORTING
        iv_kappl = rettxkomv-kappl
        iv_kschl = rettxkomv-kschl
        iv_kposn = rettxkomv-kposn
        iv_mwskz = komp-mwskz         "1596085
      IMPORTING
        es_komv  = ls_komv
      EXCEPTIONS                      "1855267
        OTHERS   = 4.                 "1855267

    CHECK sy-subrc = 0.                                     "1855267

* depending on from where formula is called,
* either rettxkomv or xkomv has to be overwritten
    rettxkomv-kbetr = ls_komv-kbetr.
    rettxkomv-kawrt = ls_komv-kawrt.
    rettxkomv-kwert = ls_komv-kwert.
    rettxkomv-kpein = ls_komv-kpein.

* write tax values back to xkomv;
* overwriting xkwert instead of xkomv-kwert since
* xkomv-kwert is overwritten with xkwert after call of formula
    xkomv-kbetr = ls_komv-kbetr.
    xkomv-kawrt = ls_komv-kawrt.
    xkwert = ls_komv-kwert.
    xkomv-kpein = ls_komv-kpein.
    xkomv_aux[] = xkomv[].

    CLEAR: lv_calc1, lv_calc2, lv_calc3.

    LOOP AT xkomv_aux WHERE kposn = xkomv-kposn.
      IF xkomv-krech = 'A'.
        IF xkomv-stun2 IS INITIAL.
          IF ( xkomv_aux-stunr = xkomv-stunb ).
            lv_calc1 = lv_calc1 + xkomv_aux-kwert.
          ENDIF.
        ELSE.
          IF ( xkomv_aux-stunr => xkomv-stunb ) AND
             ( xkomv_aux-stunr =< xkomv-stun2 ).
            lv_calc1 = lv_calc1 + xkomv_aux-kwert.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDLOOP.

8
    IF xkomv-krech = 'A'.
      lv_calc2 = xkomv-kbetr * 100.
      lv_calc3 = lv_calc1 * ( lv_calc2 / 100 ).
      xkomv-kwert = lv_calc3 / 100000.

    ELSEIF xkomv-krech = 'C'.
      lv_calc1 = xkomv-kawrt * 10.
      lv_calc2 = lv_calc1 * xkomv-kbetr.
      xkomv-kwert = lv_calc2 / ( xkomv-kpein * 10000 ).
    ENDIF.

    IF xkomv-kofra = '164'.
      xkomv-kwert = xkomv-kwert * ( -1 ).
    ENDIF.

    IF xkomv-kschl = lc_zbii.
      IF komp-mtuse NE '0' AND komp-mtuse NE '1'.
        xkomv-kbetr = 0.
        xkomv-kwert = 0.
      ENDIF.

    ELSEIF xkomv-kschl = lc_zbic.
      IF komp-mtuse NE '2' AND komp-mtuse NE '3'.
        xkomv-kbetr = 0.
        xkomv-kwert = 0.
      ENDIF.

    ELSEIF xkomv-kschl = lc_zbpi.
      IF komp-mtuse NE '1'.
        xkomv-kbetr = 0.
        xkomv-kwert = 0.
      ENDIF.

    ELSEIF xkomv-kschl = lc_zbpc.
      IF komp-mtuse NE '0' AND komp-mtuse NE '2' AND komp-mtuse NE '3'.
        xkomv-kbetr = 0.
        xkomv-kwert = 0.
      ENDIF.
    ENDIF.

    xkwert = xkomv-kwert.
    MODIFY xkomv.
  ENDIF.

ENDFORM.

9
Criação da fórmula de requisito 904
Transação VOFM

Lógica de Processamento
FORM KOBED_904.

  CONSTANTS:                                                
    lc_navm TYPE j_1baj-taxtyp VALUE 'NAVM', "Condição NAVM – Impostos não recuperáveis
    lc_skto TYPE j_1baj-taxtyp VALUE 'SKTO', "Condição ZKTO – Desconto financeiro
    lc_pb00 TYPE j_1baj-taxtyp VALUE 'PB00', "Condição PB00 – Preço bruto pedido com referência
    lc_pbxx TYPE j_1baj-taxtyp VALUE 'PBXX'. "Condição PBXX – Preço bruto pedido sem referência

  DATA: lv_tot_cond_enc TYPE i, "Total de condições encontradas
        lv_tot_cond_pre TYPE i, "Total de condições preenchidas
        st_tkomv       LIKE tkomv OCCURS 0 WITH HEADER LINE,
        st_tkomv_aux   LIKE tkomv OCCURS 0 WITH HEADER LINE.

  sy-subrc = 0.

  IF komt1-kschl = lc_navm.
    sy-subrc = 4.
    IF komp-kposn NE 0.
      CHECK komp-kznep NE 'N'.
    ENDIF.
    sy-subrc = 0.

  ELSEIF komt1-kschl = lc_skto.
    sy-subrc = 4.
    IF komp-kposn NE 0.
      CHECK komp-sktof = ' '.
    ENDIF.

10
    sy-subrc = 0.
  ENDIF.

  CHECK tkomv IS REQUESTED.

  CLEAR: lv_tot_cond_enc, lv_tot_cond_pre.

  LOOP AT tkomv INTO st_tkomv
    WHERE kschl = komt1-kschl
      AND kposn = komp-kposn.

    IF NOT st_tkomv-kbetr IS INITIAL.
      ADD 1 TO lv_tot_cond_pre.
    ENDIF.
    ADD 1 TO lv_tot_cond_enc.
  ENDLOOP.

  IF lv_tot_cond_enc > 1.
    IF lv_tot_cond_pre = lv_tot_cond_enc.
      DELETE tkomv WHERE kschl = komt1-kschl AND
                         kposn = komp-kposn  AND
                         kherk <> 'F'.
    ELSE.
      DELETE tkomv WHERE kschl = komt1-kschl AND
                         kposn = komp-kposn  AND
                         kbetr IS INITIAL.
    ENDIF.
  ENDIF.

  CLEAR: lv_tot_cond_enc, lv_tot_cond_pre.

  IF komt1-kschl = lc_pb00 OR komt1-kschl = lc_pbxx.
    LOOP AT tkomv INTO st_tkomv_aux
      WHERE kposn = komp-kposn AND
          ( kschl = lc_pb00 OR
            kschl = lc_pbxx ).
      APPEND st_tkomv_aux.
      IF NOT st_tkomv_aux-kbetr IS INITIAL.
        ADD 1 TO lv_tot_cond_pre.
      ENDIF.
      ADD 1 TO lv_tot_cond_enc.
    ENDLOOP.
    IF lv_tot_cond_enc = 2.
      IF lv_tot_cond_pre = 1.
        DELETE tkomv WHERE ( kschl = lc_pb00 OR
                             kschl = lc_pbxx ) AND
                             kposn = komp-kposn AND
                             kbetr IS INITIAL.
      ELSEIF lv_tot_cond_pre = 2.
        DELETE tkomv WHERE kschl = lc_pbxx AND
                           kposn = komp-kposn.
      ELSEIF lv_tot_cond_pre = 0.
        DELETE tkomv WHERE kschl = lc_pb00 AND
                           kposn = komp-kposn.
      ENDIF.
    ENDIF.
  ENDIF.

  sy-subrc = 0.

ENDFORM.

11
FORM KOBEV_904.
  CONSTANTS:                                                
    lc_navm TYPE j_1baj-taxtyp VALUE 'NAVM', "Condição NAVM – Impostos não recuperáveis
    lc_skto TYPE j_1baj-taxtyp VALUE 'SKTO', "Condição ZKTO – Desconto financeiro

  IF ( komt1-kschl = lc_navm OR komt1-kschl = lc_skto ).
    sy-subrc = 0.
  ENDIF.

ENDFORM.

Implementação da classe ZCL_IM_CL_IM_ME_DEFINE_CAL da BADI


ME_DEFINE_CALCTYPE para determinação automática da atualização da pricing
se algum campo relevante sofrer modificação

Lógica de Processamento
  method IF_EX_ME_DEFINE_CALCTYPE~DEFINE_CALCTYPE.

* Declarações
  CONSTANTS:                                                
    lc_pb00 TYPE j_1baj-taxtyp VALUE 'PB00', "Condição PB00 – Preço bruto pedido com referência
    lc_pbxx TYPE j_1baj-taxtyp VALUE 'PBXX'. "Condição PBXX – Preço bruto pedido sem referência

  DATA: lv_brtwr1     TYPE komv-kbetr,
        lv_brtwr2     TYPE komv-kbetr,
        lv_pbruto(1)  TYPE c.
  FIELD-SYMBOLS: <tkomv> TYPE tax_xkomv_tab.
  FIELD-SYMBOLS: <komv> TYPE komv_index.

* Leitura do preço bruto informado na tela do pedido
  CLEAR: lv_pbruto, lv_brtwr1, lv_brtwr2.

* Verificar se atualização de preço é diferente de B (Redetermina preço)
  CHECK ch_x_lf_calctype NE 'B'.

  ASSIGN ('(SAPLV61A)XKOMV[]') TO <tkomv>.
  IF sy-subrc IS INITIAL.
    LOOP AT <tkomv> ASSIGNING <komv> WHERE kschl = lc_pb00 OR kschl = lc_pbxx.
      lv_pbruto = 'X'.
      lv_brtwr1 = <komv>-kbetr.
      IF im_x_nbekpo-menge = 0.
        lv_brtwr2 = 0.
      ELSE.
        lv_brtwr2 = im_x_obekpo-brtwr / im_x_nbekpo-menge.
      ENDIF.
      EXIT.
    ENDLOOP.
  ENDIF.

12
13
* Reprecificar quando os parâmetros abaixo forem alterados
  IF ( im_x_obekpo-mwskz NE im_x_nbekpo-mwskz ) OR             "IVA
     ( im_x_obekpo-menge NE im_x_nbekpo-menge ) OR             "Quantidade
     ( im_x_obekpo-j_1bnbm NE im_x_nbekpo-j_1bnbm ) OR         "NCM
     ( im_x_obekpo-peinh NE im_x_nbekpo-peinh ) OR             "Dividido por
     ( im_x_obekpo-j_1bmatorg NE im_x_nbekpo-j_1bmatorg ) OR   "Origem
     ( lv_pbruto = 'X' AND ( lv_brtwr1 NE lv_brtwr2 ) )."Preço bruto total
    ch_x_lf_calctype = 'C'.
  ELSEIF sy-ucomm = 'MESAVE' OR
         sy-ucomm = 'MECHECKDOC'.
    ch_x_lf_calctype = 'C'.
  ENDIF.

  endmethod.

Implementação de enhancement na fórmula 320 da TAXBRA para ajuste do valor


de PIS e COFINS nas compras de material para revenda com cálculo de IPI

Lógica de Processamento
Classe CL_TAX_CALC_BR – Início do método CALC_ICMS_INDUS.
  IF ms_komk-kappl = 'TX'. "Válido somente para MM

* Cálculo do PIS e COFINS de Revenda com IPI Alíquota
    IF check_ipi_active( ) = 'X' AND
       ms_komp-mtuse_marc = '0'.
       mv_additional_rate = mv_additional_rate +
     ( mv_additional_rate *
     ( ms_tax_data-ipirate * ms_tax_data-ipibase ) ).
    ENDIF.

* Cálculo do PIS e COFINS de Revenda com IPI Pauta
    IF NOT ms_tax_data-ipipauta-kwert IS INITIAL AND
       ms_komp-mtuse_marc = '0'.
       ms_tax_data-net_amount = ms_tax_data-net_amount +
     ( ms_tax_data-ipipauta-kwert * mv_additional_rate ).
    ENDIF.

  ENDIF.

14
Plano de Teste Específico
Ambiente/Mandante:
SBX

TESTE 1
Parâmetros de Seleção:
Criação de pedidos de compras de material de revenda, industrialização, consumo e ativo fixo,
informando o preço bruto unitário e IVA de MM.

Resultado esperado:
Condições de impostos e preço líquido de compras atualizados automaticamente na aba
condições do pedido de compras.

TESTE 2
Parâmetros de Seleção:
Modificação do preço bruto unitário, quantidade, IVA, origem e NCM do material no item do
pedido de compras já criado.

Resultado esperado:
Condições de impostos e preço líquido de compras atualizados automaticamente na aba
condições do pedido de compras.

15

Você também pode gostar