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. 

  TYPES: BEGIN OF ltp_tkomv_save,
         itmnum TYPE j_1bitmnum,
         komk   TYPE komk,
         komp   TYPE komp,
         tkomv  TYPE komv_tab,
       END OF ltp_tkomv_save.

DATA: lt_tkomv_save TYPE TABLE OF ltp_tkomv_save.
DATA: lw_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.

  CLEAR: lw_param.
  lw_param-caller = 'MM'.
  lw_param-country = 'BR'.
  lw_param-icms = 'X'.

  lt_tkomv_save[] = <lfsw_condtax>[].

  LOOP AT lineitem.

    ADD 1 TO l_itmnum.

    CLEAR: l_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 = 0 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