quinta-feira, 6 de março de 2014

Estrutura de PRICING do pedido na criação de NF ( MIRO)

 Tive que fazer uma alteração na NF durante a criação da MIRO e precisava pegar alguns valores da pricing do pedido que geralmente só é calculado e não é gravado em nenhum tabela. debugando achei uma estrutura na criação da NF que já tem a pricing do pedido carregado. Como o cálculo é um pouco pesado em termos de processamento o mais interessante foi pegar esses valores já carregados.

Esses dados foram pegos no include LJ1BIF01. A tabela GT_TKOMV_SAVE. 

  TYPESBEGIN OF ltp_tkomv_save,
         itmnum TYPE j_1bitmnum,
         komk   TYPE komk,
         komp   TYPE komp,
         tkomv  TYPE komv_tab,
       END OF ltp_tkomv_save.

DATAlt_tkomv_save TYPE TABLE OF ltp_tkomv_save.
DATAlw_tkomv_save TYPE ltp_tkomv_save,
      lw_komv       TYPE komv,
      lw_nfstx      TYPE j_1bnfstx,
      lw_param      TYPE zmme114.

FIELD-SYMBOLS<lfsw_condtax> TYPE ANY TABLE.

ASSIGN ('(SAPLJ1BCONDTAX)GT_TKOMV_SAVE[]'TO  <lfsw_condtax>.


  F sy-subrc 0.

  CLEARlw_param.
  lw_param-caller 'MM'.
  lw_param-country 'BR'.
  lw_param-icms 'X'.

  lt_tkomv_save[] <lfsw_condtax>[].

  LOOP AT lineitem.

    ADD TO l_itmnum.

    CLEARl_kbetr.

    LOOP AT lt_tkomv_save INTO lw_tkomv_save
                         WHERE itmnum EQ l_itmnum.

      READ TABLE lw_tkomv_save-tkomv INTO lw_komv
                                     WITH KEY kschl 'ICMV'.

      IF sy-subrc AND lw_komv-kwert <> 0.
        l_kbetr =
lw_komv-kwert.
        EXIT.

      ENDIF.

    ENDLOOP.

    IF l_kbetr <> 0.

      READ TABLE litax INTO lw_nfstx
                       WITH KEY itmnum lineitem-itmnum
                                taxtyp(2'IC'.
      IF lw_nfstx-othbas > 0.

        lw_nfstx-taxtyp 'ICOP'.
        lw_nfstx-rate   = '12'.
        lw_nfstx-taxval =
l_kbetr.
        APPEND lw_nfstx TO litax.

      ENDIF.

    ENDIF.

  ENDLOOP.

Nenhum comentário:

Postar um comentário