Módulo: DRAWBACK
Funcionalidade: Composição
Data/Hora da Publicação: 11/03/2008 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:18:50
Descrição da Nota: ATUALIZAÇÃO DO PESO LIQUIDO, QUANTIDADE NCM
Sintoma
- Os valores e quantidades estão incorretos na pasta resumo (Quando a unidade de medida UMB é
difierente da NCM);
- Quando o programa não encontra nenhuma importação, ele seleciona todos os itens da tabela
/PWS/ZYCIT003;
- A barra de rolagem da pasta DI está com problemas.
Solução
Atualização da exibição dos dados na composição de isenção.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06143 Data: 11/03/2008 Hora: 14:26:36
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06143
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00004
Agrupamento : 00037
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05439 - 00001 - 7.0 - 00004 - PERFORMANCE
05540 - 00002 - 7.0 - 00004 - AJUSTES NO CALCULO DO PESO LIQUIDO
----------------------------------------------------------------------------------------------------
ATUALIZAÇÃO DO PESO LIQUIDO, QUANTIDADE NCM
----------------------------------------------------------------------------------------------------
Palavras Chave:
DRAWBACK COMPOSIÇÃO DE ISENÇÃO PESO LIQUIDO, QUANTIDADE NCM DETALHES
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI064F03
REPS /PWS/MZYCI064I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064F03
...
ENDIF.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
APPEND itab_det_imp.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_TAB_DETALHE_IMP3
tc_det_imp3-top_line = 1.
* << Fim da inclusão
pressed_tab_3c_3 = ok_code3.
dynpronr3c_3 = '0308'.
ENDFORM.
FORM trata_tab_vdi3.
DATA: v_marcados5 TYPE i VALUE 0.
LOOP AT itab_comp_vinc WHERE marc_cp = 'X'.
v_marcados5 = v_marcados5 + 1.
ENDLOOP.
IF v_marcados5 > 1.
MESSAGE s015 WITH text-016.
...
...
CHECK itab_di_final-grupo EQ itab_comp_vinc-grupo.
ELSE.
CHECK itab_di_final-codcomp EQ itab_comp_vinc-codcomp.
ENDIF.
IF itab_di_final-sdo_qtd > 0
OR itab_di_final-qtd_vinc > 0 .
MOVE-CORRESPONDING itab_di_final TO itab_di.
APPEND itab_di.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_TAB_VDI3
tc_di3-top_line = 1.
tc_nf3-top_line = 1.
* << Fim da inclusão
IF /pws/zycie258-tipo EQ 'C'.
SORT itab_di BY dtdi nrdi ebeln ebelp ASCENDING.
pressed_tab_3c_4 = ok_code3.
dynpronr3c_4 = '0310'.
ELSE.
pressed_tab_3c_4 = ok_code3.
dynpronr3c_4 = '0316'.
SORT itab_di BY dtnf docnum itmnum ebeln ebelp ASCENDING.
ENDIF.
ENDFORM.
...
...
AND a~ebeln EQ b~ebeln
AND a~ebelp EQ b~ebelp )
INNER JOIN /pws/zycit085 AS c
ON b~nrseqdi EQ c~nrseqdi )
INTO TABLE itab_sel_di
FOR ALL ENTRIES IN itab_insumo_di
WHERE a~matnr EQ itab_insumo_di-matnr
AND c~dtreg >= itab_det_exp-dtre
AND c~nrdi NE space.
ENDIF.
* >> Início da exclusão: FORM SELECIONA_DI3
IF NOT itab_insumo_di[] IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3
IF NOT itab_sel_di[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_sel_di
WHERE nrseq EQ itab_sel_di-nrseq
AND ebeln EQ itab_sel_di-ebeln
AND ebelp EQ itab_sel_di-ebelp.
ENDIF.
IF NOT itab_zycit003[] IS INITIAL.
itab_zycit003_t2[] = itab_zycit003[].
DELETE itab_zycit003_t2 WHERE nrseqd EQ space.
SORT itab_zycit003_t2 BY nrseqd.
...
...
ENDIF.
ENDFORM.
FORM trata_button_first_0306.
MOVE: 1 TO v_indicatu7.
LOOP AT itab_res_imp WHERE marc_l = 'X'.
itab_res_imp-marc_l = ' '.
MODIFY itab_res_imp.
ENDLOOP.
READ TABLE itab_res_imp INDEX v_indicatu7.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST_0306
tc_det_imp3-top_line = 1.
* << Fim da inclusão
itab_res_imp-marc_l = 'X'.
MODIFY itab_res_imp INDEX v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-grupo TO /pws/zycie260-grupo ,
itab_res_imp-desc_g TO /pws/zycie260-desc_g ,
itab_res_imp-waers TO /pws/zycie260-waers ,
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST_0306
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
* << Fim da inclusão
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST_0306
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
* << Fim da inclusão
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
...
...
FORM trata_button_prior_0306.
IF v_indicatu7 > 1.
v_indicatu7 = v_indicatu7 - 1.
ENDIF.
LOOP AT itab_res_imp WHERE marc_l = 'X'.
itab_res_imp-marc_l = ' '.
MODIFY itab_res_imp.
ENDLOOP.
READ TABLE itab_res_imp INDEX v_indicatu7.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR_0306
tc_det_imp3-top_line = 1.
* << Fim da inclusão
itab_res_imp-marc_l = 'X'.
MODIFY itab_res_imp INDEX v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-grupo TO /pws/zycie260-grupo ,
itab_res_imp-desc_g TO /pws/zycie260-desc_g ,
itab_res_imp-waers TO /pws/zycie260-waers ,
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR_0306
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
* << Fim da inclusão
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR_0306
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
* << Fim da inclusão
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
...
...
DESCRIBE TABLE itab_res_imp LINES v_ilinhas2.
IF v_indicatu7 < v_ilinhas2.
v_indicatu7 = v_indicatu7 + 1.
ENDIF.
LOOP AT itab_res_imp WHERE marc_l = 'X'.
itab_res_imp-marc_l = ' '.
MODIFY itab_res_imp.
ENDLOOP.
READ TABLE itab_res_imp INDEX v_indicatu7.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT_0306
tc_det_imp3-top_line = 1.
* << Fim da inclusão
itab_res_imp-marc_l = 'X'.
MODIFY itab_res_imp INDEX v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
itab_res_imp-grupo TO /pws/zycie260-grupo ,
itab_res_imp-desc_g TO /pws/zycie260-desc_g ,
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-waers TO /pws/zycie260-waers ,
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT_0306
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
* << Fim da inclusão
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT_0306
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
* << Fim da inclusão
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
...
...
ENDFORM.
FORM trata_button_last_0306.
DESCRIBE TABLE itab_res_imp LINES v_ilinhas2.
v_indicatu7 = v_ilinhas2.
LOOP AT itab_res_imp WHERE marc_l = 'X'.
itab_res_imp-marc_l = ' '.
MODIFY itab_res_imp.
ENDLOOP.
READ TABLE itab_res_imp INDEX v_indicatu7.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM TRATA_BUTTON_LAST_0306
tc_det_imp3-top_line = 1.
* << Fim da inclusão
itab_res_imp-marc_l = 'X'.
MODIFY itab_res_imp INDEX v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
itab_res_imp-grupo TO /pws/zycie260-grupo ,
itab_res_imp-desc_g TO /pws/zycie260-desc_g ,
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-waers TO /pws/zycie260-waers ,
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_LAST_0306
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
* << Fim da inclusão
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_LAST_0306
itab_det_imp-um_ncm = itab_det_imp-meins.
itab_det_imp-qtd_ncm = itab_det_imp-qtd_di.
PERFORM converte_um_ncm USING itab_det_imp-codcomp
CHANGING itab_det_imp-um_ncm
/pws/zycie258-werks
itab_det_imp-qtd_ncm.
* << Fim da inclusão
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
...
...
ENDIF.
MOVE: itab_zycit003-meins TO itab_dis-meins ,
itab_zycit003-qtd_iten TO itab_dis-qtd_di .
PERFORM converte_um_ncm USING itab_zycit003-matnr
CHANGING itab_dis-meins
itab_zycit003-werks
itab_dis-qtd_di.
IF itab_dis-qtd_di IS INITIAL.
EXIT.
ENDIF.
* >> Início da exclusão: FORM MONTA_DIS3
itab_zycit003-qtd_iten = itab_dis-qtd_di.
* << Fim da exclusão
v_fator_conv = v_vlreali / itab_zycit003-qtd_iten.
CLEAR: v_advii, v_advicms, v_advipi, v_advpis, v_advcof, v_xa, v_xb,
v_fatx, v_faty.
v_advii = ( itab_zycit003-advalii / 100 ).
v_advipi = ( itab_zycit003-advalipi / 100 ).
IF NOT itab_zycit003-basred IS INITIAL.
v_advicms = ( ( itab_zycit003-advalicms / 100 ) *
( itab_zycit003-basred / 100 ) ) .
ELSE.
v_advicms = ( itab_zycit003-advalicms / 100 ).
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064I01
...
itab_di_final-t_benef = itab_di-t_benef.
MODIFY itab_di_final.
ENDLOOP.
ENDIF.
ENDIF.
LOOP AT itab_di_final.
v_tabix = sy-tabix.
CLEAR mara.
SELECT SINGLE ntgew brgew
FROM mara INTO (mara-ntgew,mara-brgew)
* >> Início da exclusão: MODULE TRATA_SELECAO
WHERE matnr = itab_di_final-codmat.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
WHERE matnr = itab_di_final-codcomp.
* << Fim da inclusão
itab_di_final-ntgew =
( mara-ntgew * itab_di_final-qtd_vinc ).
itab_di_final-brgew =
( mara-brgew * itab_di_final-qtd_vinc ).
MODIFY itab_di_final INDEX v_tabix.
ENDLOOP.
LOOP AT itab_di.
v_tabix = sy-tabix.
CLEAR mara.
SELECT SINGLE ntgew brgew
...