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