Módulo: DRAWBACK
Funcionalidade: Composição
Data/Hora da Publicação: 28/12/2007 00:00:00
Data/Hora Última Alteração: 17/02/2011 15:18:33
Descrição da Nota: AJUSTES NO CALCULO DO PESO LIQUIDO
Sintoma
O programa não está preenchendo o peso liquido.
Solução
O programa foi atualizado para considerar o peso liquido informado no processo de importação.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 05540 Data: 28/12/2007 Hora: 13:44:08
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 05540
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00004
Agrupamento : 00027
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05439 - 00001 - 7.0 - 00004 - PERFORMANCE
----------------------------------------------------------------------------------------------------
AJUSTES NO CALCULO DO PESO LIQUIDO
----------------------------------------------------------------------------------------------------
Palavras Chave:
COMPOSIÇÃO ISENÇÃO PESO LIQUIDO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI064F03
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064F03
...
MOVE: itab_det_imp_final-codcomp TO itab_res_imp-codcomp ,
itab_det_imp_final-waers TO itab_res_imp-waers ,
itab_det_imp_final-qtd_vinc TO itab_res_imp-qtd_vinc.
IF /pws/zycit321-it_ge EQ 'X'.
CLEAR: itab_res_imp-codcomp .
itab_res_imp-grupo = itab_det_imp_final-grupo.
itab_res_imp-desc_g = itab_det_imp_final-desc_g.
ENDIF.
IF wa_moeda-moeda EQ 'X'.
itab_res_imp-vlfob = itab_res_imp-qtd_vinc *
* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_det_imp_final-valor_u.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_det_imp_final-netpr.
* << Fim da inclusão
itab_res_imp-waers = 'USD'.
itab_res_imp-meins = itab_det_imp_final-meins.
ELSE.
itab_res_imp-vlfob = itab_res_imp-qtd_vinc *
* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_det_imp_final-netpr.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_det_imp_final-valor_u.
* << Fim da inclusão
itab_res_imp-waers = itab_det_imp_final-waers.
itab_res_imp-meins = itab_det_imp_final-meins.
ENDIF.
COLLECT itab_res_imp.
ENDLOOP.
SORT itab_det_imp_final BY dtdi ASCENDING.
SORT itab_res_imp BY codcomp.
CLEAR: v_dtini, v_dtfim, v_idxtmp.
LOOP AT itab_res_imp.
v_idxtmp = sy-tabix.
...
...
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 inclusão: FORM MONTA_DIS3
itab_zycit003-qtd_iten = itab_dis-qtd_di.
* << Fim da inclusã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 ).
...
...
READ TABLE itab_mara INTO mara
WITH KEY matnr = itab_dis-codcomp.
IF sy-subrc NE 0.
SELECT SINGLE *
FROM mara INTO itab_mara
WHERE matnr = itab_dis-codcomp.
mara = itab_mara.
APPEND itab_mara.
ENDIF.
itab_dis-gewei = mara-gewei.
* >> Início da exclusão: FORM MONTA_DIS3
itab_dis-ntgew = itab_dis-ntgew * v_fator_conv.
itab_dis-brgew = itab_dis-brgew * v_fator_conv.
* << Fim da exclusão
itab_dis-valor_u = itab_zycit100-vlfob /
itab_zycit003-qtd_iten.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_dis-vlfrete.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_dis-vlseg.
...
...
itab_zycee085,
it_log_erro3,
itab_nota_c,
itab_sel_vbfa,
itab_vbfa,
itab_vbfa_1.
ENDFORM.
FORM vincula_di .
DATA: v_pct TYPE p.
DATA: v_saida.
* >> Início da inclusão: FORM VINCULA_DI
DATA: itab_disp LIKE itab_di_final OCCURS 0 WITH HEADER LINE.
itab_disp[] = itab_di_final[].
DELETE ADJACENT DUPLICATES FROM itab_disp
COMPARING nrseqre nrseq nrseqc vbeln_va vbeln_vf posnr.
* << Fim da inclusão
DESCRIBE TABLE itab_det_exp LINES v_lines.
CLEAR: v_count .
LOOP AT itab_det_exp.
CLEAR: v_saida.
* >> Início da exclusão: FORM VINCULA_DI
LOOP AT itab_di_final WHERE nrseqre EQ itab_det_exp-nrseqre
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULA_DI
LOOP AT itab_disp WHERE nrseqre EQ itab_det_exp-nrseqre
* << Fim da inclusão
AND nrseq EQ itab_det_exp-nrseq
AND nrseqc EQ itab_det_exp-nrseqc
AND vbeln_va EQ itab_det_exp-vbeln_va
AND vbeln_vf EQ itab_det_exp-vbeln_vf
AND posnr EQ itab_det_exp-posnr.
v_saida = 'X'.
EXIT.
ENDLOOP.
IF v_saida EQ 'X'.
CONTINUE.
...
...
IF itab_di_final-sdo_qtd <= itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-sdo_qtd.
ELSE.
itab_di_final-qtd_vinc = itab_comp_vinc_final-qtd_stotal.
ENDIF.
itab_dis-sdo_qtd =
itab_dis-sdo_qtd - itab_di_final-qtd_vinc.
IF itab_di_final-sdo_qtd < 0.
itab_dis-sdo_qtd = 0.
ENDIF.
* >> Início da exclusão: FORM MONTA_VINC
READ TABLE itab_mara INTO mara WITH KEY matnr =
itab_dis-codcomp.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = mara-ntgew * itab_di_final-qtd_vinc
.
itab_di_final-brgew = mara-brgew * itab_di_final-qtd_vinc
.
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_VINC
itab_di_final-ntgew = ( itab_di_final-ntgew / itab_di_final-qtd_di )
* itab_di_final-qtd_vinc.
* << Fim da inclusão
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM trata_decimais USING itab_di_final-waers
CHANGING itab_di_final-vlfob.
READ TABLE itab_zycit100
...
...
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
ELSE.
READ TABLE itab_zycit279 WITH KEY
ebeln = itab_di_final-ebeln
ebelp = itab_di_final-ebelp
docnum = itab_di_final-docnum.
* >> Início da exclusão: FORM MONTA_VINC
PERFORM trata_decimais USING itab_di_final-waers
CHANGING itab_di_final-vlfob.
* << Fim da exclusão
PERFORM valor_converte_imp USING itab_di_final-waers
'USD'
itab_di_final-dtdi
CHANGING itab_di_final-vlfob.
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
...