Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 08/12/2006 00:00:00
Data/Hora Última Alteração: 22/02/2011 13:39:09
Descrição da Nota: DI
Sintoma
O rateio do frete rodoviário está sendo feito pelo valor da fatura e não pelo peso líquido.
Na modificação, a taxa do siscomex não atualiza, conforme as adições.
Solução
Programa alterado para atualizar a tabela /PWS/ZYCIT049.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02658 Data: 08/12/2006 Hora: 17:24:16
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02658
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00142
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01949 - 00001 - 6.0 - 00024 - VALOR DO RATEIO DO SEGURO CIF POR ITEM DI IGUAL AO SISCOMEX
02472 - 00002 - 6.0 - 00025 - PROGRAMA NÃO ACEITA ALTERAR REGIME TRIBUTÁRIO DOS IMPOSTOS NA DI.
02503 - 00003 - 6.0 - 00025 - O VALOR DO SEGURO ESTÁ ENTRANDO DUAS VEZES NO VALOR ADUANEIRO DA
----------------------------------------------------------------------------------------------------
DI
----------------------------------------------------------------------------------------------------
Palavras Chave:
RATEIO FRETE RODOVIÁRIO; TAXA DO SISCOMEX
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI023F03
REPS /PWS/MZYCI023F01
REPS /PWS/MZYCI023F02
REPS /PWS/MZYCI023I01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F01
...
ENDIF.
ELSE.
IF NOT v_dif_frn IS INITIAL.
t_vmle = t_vmle + ( /pws/zycie003-ntgew / v_ntgew ) * v_dif_frn.
ENDIF.
t_ivmle2 = t_vmle2 * /pws/zycie100a-dttaxbem.
ENDIF.
IF s_inco1_ci NE 'FOB'.
IF NOT /pws/zycie093-ternacion IS INITIAL.
v_ternacion = /pws/zycie093-ternacion.
* >> Início da inclusão: FORM LOAD_IFRE
PERFORM trata_decimais USING /pws/zycie085-waersfre
v_ternacion .
* << Fim da inclusão
IF /pws/zycie085-waersfob NE /pws/zycie093-waersfre .
PERFORM: calc_conv_moeda:
USING /pws/zycie093-waersfre
/pws/zycie085-waersfob
CHANGING v_ternacion.
t_vmle = t_vmle - ( ( /pws/zycie003-ntgew / v_tntgew )
* v_ternacion ).
ELSE.
t_vmle = t_vmle - ( ( /pws/zycie003-ntgew / v_tntgew )
* v_ternacion ).
...
...
v_cfr = t_ivmle.
ENDCASE.
ELSE.
IF s_inco1_ci EQ 'CIF'.
ELSE.
v_cfr = t_ivmle.
ENDIF.
ENDIF.
IF s_inco1_ci EQ 'CIF'.
v_cif_fat = ( itab_it-vlreal * itab_it-qtd_iten ) +
* >> Início da exclusão: FORM LOAD_ITAX
itab_it-vlfre_fat .
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
itab_it-vlfre_fat + itab_it-vlseg_fat .
* << Fim da inclusão
IF NOT v_tcif_fat IS INITIAL.
t_ivseg = itab_it-vlseg = ( v_cif_fat / v_tcif_fat ) *
s_stvr.
v_tot_seg = ( v_cif_fat / v_tcif_fat ) * v_sgtofat.
ENDIF.
ELSE.
IF NOT v_tcfr IS INITIAL.
t_ivseg = itab_it-vlseg = ( v_cfr / ( v_tcfr ) ) * s_stvr.
v_tot_seg = ( v_cfr / ( v_tcfr ) ) * v_sgtofat.
ENDIF.
...
...
itab_zycit049c-vlreal = itab_zycit049c-vlreal + t_ivdes2.
itab_zycit049c-vldp = itab_zycit049c-vldp + t_ivdes3.
MODIFY itab_zycit049c INDEX sy-tabix TRANSPORTING
vldp vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
CASE s_inco1_ci.
WHEN 'CIF'.
* >> Início da exclusão: FORM LOAD_ITAX
t_dif_seg = v_tsegfat - v_sgtofat.
t_dif_seg = ( v_cfr / ( v_tcfr ) ) * t_dif_seg.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
t_dif_seg = /pws/zycie003-vlseg_fat - v_tot_seg .
* << Fim da inclusão
ENDCASE.
IF v_dit EQ 'N'.
CASE s_inco1_ci.
WHEN 'FOB'.
t_ivadu = t_ivmle + t_ivseg + t_ivdesp + t_ivfre.
WHEN 'C&F'.
t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + v_desp_fren.
IF NOT v_desp_fren IS INITIAL.
IF NOT /pws/zycie085-ukursfob IS INITIAL.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre +
...
...
IF NOT itab_it-qtd_itend IS INITIAL.
t_vmle_d2 = t_vmle2 = t_vmle2 + v_tot_fre.
ELSE.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre.
t_vmle2 = t_vmle.
ENDIF.
ENDIF.
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivseg + t_ivdesp.
WHEN 'CIF'.
* >> Início da exclusão: FORM LOAD_ITAX
t_ivmle_d2 = t_ivmle = t_ivmle + t_ivfre + v_desp_fren +
( t_dif_seg * /pws/zycie085-ukursseg ).
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
t_ivmle_d2 = t_ivmle = t_ivmle + v_desp_fren +
t_ivfre + t_ivseg +
( t_dif_seg * /pws/zycie085-ukursfob ).
* << Fim da inclusão
IF NOT v_desp_fren IS INITIAL.
IF NOT /pws/zycie085-ukursfob IS INITIAL.
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + v_tot_seg +
( v_desp_fren / /pws/zycie085-ukursfob ) + t_dif_seg.
ELSE.
MESSAGE i015 WITH text-221.
ENDIF.
ELSE.
* >> Início da exclusão: FORM LOAD_ITAX
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre + t_dif_seg.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_ITAX
t_vmle_d2 = t_vmle = t_vmle + v_tot_fre +
v_tot_seg + t_dif_seg.
* << Fim da inclusão
ENDIF.
t_vmle2 = t_vmle.
t_ivmle2 = t_vmle2 * itab_it-dttaxbem.
t_ivadu = t_ivmle2 + t_ivdesp - v_desp_fren.
ENDCASE.
ELSE.
CASE s_inco1_ci.
WHEN 'FOB'.
t_ivadu = t_ivmle + t_ivseg + t_ivfre + t_ivdesp.
WHEN 'C&F'.
...
...
FORM adic_list.
CLEAR: it_adi[], /pws/zycie100a, itab_itb.
REFRESH: it_adi[].
CLEAR: itab_it_aux[].
REFRESH: itab_it_aux[].
MOVE itab_it[] TO itab_it_aux[].
* >> Início da inclusão: FORM ADIC_LIST
PERFORM data_sort.
* << Fim da inclusão
IF itab_zycit001-flag_adicao EQ 'X'.
v_adic = 0.
ELSE.
v_adic = 1.
ENDIF.
CLEAR: v_tabix, v_cont.
LOOP AT itab_it_aux.
IF sy-tabix = 1.
MOVE-CORRESPONDING itab_it_aux TO itab_itb.
ENDIF.
...
...
/pws/zycie085-dttax
CHANGING /pws/zycie085-ukursseg,
load_sevl.
ENDIF.
DESCRIBE TABLE itab_zycit116 LINES v_ipa.
PERFORM fill_taxasiscomex USING v_ipa.
SORT itab_it BY nrseq ebeln ebelp.
PERFORM calc_itab.
IF NOT itab_it[] IS INITIAL.
PERFORM adic_list.
* >> Início da exclusão: FORM REFRESH_ALL
PERFORM data_sort.
* << Fim da exclusão
CLEAR v_pos.
LOOP AT it_alist.
v_pos = v_pos + 1.
PERFORM: adic_change,
adic_load,
calc_itab_adic,
save_adic.
ENDLOOP.
ENDIF.
ELSE.
...
...
/pws/zycie085-dttax
CHANGING /pws/zycie085-ukursseg,
load_sgvl.
ENDIF.
LOOP AT itab_it WHERE NOT waersbem IS initial AND
waersbem NE wa_zycbt007-waersb.
PERFORM: taxa_converte USING itab_it-waersbem /pws/zycie085-dttax
CHANGING itab_it-dttaxbem.
MODIFY itab_it INDEX sy-tabix TRANSPORTING dttaxbem.
ENDLOOP.
* >> Início da exclusão: FORM REFRESH_ALL
SORT itab_it BY nrseq ebeln ebelp.
* << Fim da exclusão
PERFORM calc_itab.
* >> Início da inclusão: FORM REFRESH_ALL
SORT itab_it BY nrseq ebeln ebelp.
* << Fim da inclusão
ENDIF.
PERFORM propoe_banco.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F02
...
load_sewa,
load_sgvl,
load_blag,
load_blitens,
load_reg,
calc_itab.
PERFORM concatena_empresa.
PERFORM atualiza_peso_desemb.
PERFORM: adic_list,
adic_li_data.
* >> Início da exclusão: FORM LOAD_BL
PERFORM data_sort.
* << Fim da exclusão
ELSE.
MESSAGE i015 WITH text-017 text-018.
ENDIF.
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023F03
FORM calc_init USING p_tipo.
CLEAR v_tcif_fat.
DATA: v_qtd_iten LIKE /pws/zycie003-qtd_iten.
IF itab_zycit049[] IS INITIAL.
SELECT * FROM /pws/zycit049 INTO TABLE itab_zycit049
WHERE nrseq = /pws/zycie085-nrseqdi.
ENDIF.
IF p_tipo = 'I'.
LOOP AT itab_zycit049.
* >> Início da inclusão: FORM CALC_INIT
v_tabix = sy-tabix.
IF NOT itab_zycit049-vldp IS INITIAL.
IF itab_zycit049-waers NE wa_zycbt007-waersb.
PERFORM taxa_converte USING itab_zycit049-waers
/pws/zycie085-dttax
CHANGING s_tax.
itab_zycit049-vlreal = itab_zycit049-vldp * s_tax.
PERFORM trata_decimais USING itab_zycit049-waers
itab_zycit049-vlreal.
ENDIF.
ENDIF.
* << Fim da inclusão
CLEAR itab_zycit049-vldp_aux.
* >> Início da exclusão: FORM CALC_INIT
MODIFY itab_zycit049 INDEX sy-tabix TRANSPORTING vldp_aux.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
MODIFY itab_zycit049 INDEX v_tabix TRANSPORTING vlreal vldp_aux.
* << Fim da inclusão
ENDLOOP.
ENDIF.
DESCRIBE TABLE itab_it LINES v_ipt.
...
...
ENDIF.
ELSE.
IF NOT itab_it-vlreald IS INITIAL.
v_tval = v_tval + ( itab_it-qtd_itend * itab_it-vlreal ).
ELSE.
v_tval = v_tval + ( itab_it-qtd_iten * itab_it-vlreal ).
ENDIF.
ENDIF.
IF s_inco1_ci EQ 'CIF'.
v_tcif_fat = v_tcif_fat + ( ( itab_it-vlreal * itab_it-qtd_iten )
* >> Início da exclusão: FORM CALC_INIT
+ itab_it-vlfre_fat ).
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_INIT
+ itab_it-vlfre_fat + itab_it-vlseg_fat ).
* << Fim da inclusão
ENDIF.
ENDLOOP.
CASE s_inco1_ci.
WHEN 'CIF'.
v_tdif = v_tfrefat - v_bltofat +
v_tsegfat - v_sgtofat.
ENDCASE.
IF p_tipo NE 'A'.
READ TABLE itab_zycit003 INDEX 1.
v_totcif = v_tval.
...
...
FORM data_sort.
* >> Início da inclusão: FORM DATA_SORT
SORT itab_it_aux BY
* << Fim da inclusão
* >> Início da exclusão: FORM DATA_SORT
SORT itab_it BY
* << Fim da exclusão
j_1bnbm fabric lifnrfabr lifnr advalii
advalipi naladi naladincca codregtri codregtriipi
zterm meinsest pproc nrseqli aplicacao
condmerc inco1 codmat cacl codfunleg
acordo acordorate reduzida percreduz notatipi
reduzidaipi unit_valor unit_meins unit_reccapac unit_rectipo
waersbem dttaxbem antidrate extarif_al tipo_al
orgemiss_al numero_al anoemiss_al ii_extarif ii_tipo
ii_orgemiss ii_numero ii_anoemiss ipi_extarif ipi_tipo
ipi_orgemiss ipi_numero ipi_anoemiss ad_extarif ad_tipo
...
...
FORM comm_adic.
IF NOT itab_it[] IS INITIAL.
PERFORM adic_list.
* >> Início da exclusão: FORM COMM_ADIC
PERFORM data_sort.
* << Fim da exclusão
DO.
CALL SCREEN '0170' STARTING AT 5 2.
IF sy-ucomm = 'ENTE'.
PERFORM adic_load.
ELSE.
EXIT.
ENDIF.
ENDDO.
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI023I01
...
ENDIF.
itab_zycit049-tpdesp = /pws/zycie049-tpdesp.
itab_zycit049-descr = /pws/zycie049-descr.
itab_zycit049-vldp = /pws/zycie049-vldp.
itab_zycit049-waers = /pws/zycie049-waers.
IF NOT itab_zycit049-vldp IS INITIAL.
IF itab_zycit049-waers NE wa_zycbt007-waersb.
PERFORM taxa_converte USING /pws/zycie049-waers
/pws/zycie085-dttax
CHANGING s_tax.
* >> Início da exclusão: MODULE MODI_DATA049
IF itab_zycit049-vlreal IS INITIAL.
* << Fim da exclusão
itab_zycit049-vlreal = itab_zycit049-vldp * s_tax.
* >> Início da inclusão: MODULE MODI_DATA049
IF /pws/zycie049-waers NE wa_zycbt007-waersb.
PERFORM trata_decimais USING /pws/zycie049-waers
itab_zycit049-vlreal.
* << Fim da inclusão
ENDIF.
ELSE.
itab_zycit049-vlreal = itab_zycit049-vldp.
ENDIF.
...