CE PLUS - Nota 009956

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DSI

Data/Hora da Publicação: 15/03/2010 00:00:00

Data/Hora Última Alteração: 20/06/2011 12:09:44

Descrição da Nota: (DSI)CASAS DECIMAIS DA MOEDA NO DRAFT E VALOR DO SEGURO PARA CIF

Sintoma

Valor FOB no draft da DSI não está respeitando as casas decimais da moeda.

O valor do seguro da DSI está errado para processo CIF.

 

 

Solução

Ajustado o draft para utilizar a moeda na exibição do valor FOB.

Ajustado calculo do seguro para utilizar o total CIF como base de calculo do seguro.

 

Versões Tratadas

8.0


Pré-Requisitos

Produto:

Nota

Descrição

MULTIPLAS MOEDAS, RATEIO DE DESPESAS, REGIME TRIBUTÁRIO NA DSI

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 09956 Data: 15/03/2010 Hora: 11:13:04

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 09956

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 8.0

Pacote                   : 00002

Agrupamento              : 00012

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

04713  - 00001 - 7.0    - 00002  - MULTIPLAS MOEDAS, RATEIO DE DESPESAS, REGIME TRIBUTÁRIO NA DSI

----------------------------------------------------------------------------------------------------

(DSI)CASAS DECIMAIS DA MOEDA NO DRAFT E VALOR DO SEGURO PARA CIF

----------------------------------------------------------------------------------------------------

Palavras Chave:

DSI - VALOR - SEGURO - CIF - MERCADORIA - CASAS - DECIMAIS - MOEDA

/PWS/SAPMZYCI058 - /PWS/ZYCRSTIDS - DRAFT

----------------------------------------------------------------------------------------------------

Objetos da nota:

REPS /PWS/MZYCI058F01

REPS /PWS/MZYCI058F02

REPS /PWS/MZYCI058F03

REPS /PWS/MZYCI058X01

REPS /PWS/ZYCRSTIDS

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI058F01

 

...

         s_stvr_aux, s_stvr_aux1,

         v_tntgew, v_tval, v_tvaln, v_tval2, v_tval3,

         v_tmle, v_tdif, v_tdif_aux,

         v_tsegfat, v_tfrefat, v_rsegfat, v_rfrefat,

         s_wiicalc,  s_wiiredu,  s_wiidevi,  s_wiireco,

         s_wipicalc, s_wipiredu, s_wipidevi, s_wipireco,

         s_wicdevi,  s_wicreco,  s_waddevi,  s_wadreco, v_aux_rateio,

         v_tot_plan, t_vlii, t_vlipi, t_tot,  s_wpisreco, s_wcofreco,

         t_vlpis, t_vlcofins, v_tmle_d2,  a_iidevi, a_ipidevi.

  perform calc_init using 'I'.

* >> Início da inclusão: FORM CALC_ITAB

  perform load_sevl.

* << Fim da inclusão

  v_bltofat = /pws/zycie093-prepaid +

  /pws/zycie093-collect.

  v_sgtofat = /pws/zycie085-vlseg.

  if /pws/zycie085-mdadicao = 'S'.

    case s_inco1_ci.

      when 'C&F'.

        if not /pws/zycie085-dttax is initial.

          perform calc_conv_frete changing v_bltofat.

          v_tdif = v_tfrefat - v_bltofat.

          v_bltofat = /pws/zycie093-prepaid +

...

 

...

        v_tval2 = v_tval2 + itab_zycit049-vldp.

      else.

        v_tval2 = v_tval2 + itab_zycit049-vldp.

      endif.

      v_desp_acr = v_desp_acr + itab_zycit049-vldp.

      s_fbvr = v_tval2 * /pws/zycie085-ukursfob.

      if itab_zycit049-waers eq 'USD'.

      endif.

    endif.

  endloop.

* >> Início da exclusão: FORM CALC_ITAB

  perform load_sevl.

* << Fim da exclusão

  loop at itab_it.

    v_idx = sy-tabix.

    if v_idx eq v_ipt and v_ipt ne 1.

      itab_it-vlfob = v_tval - v_aux_rateio.

    else.

      if s_inco1_ci ne 'FOB' and itab_it-vlfre_fat is initial.

        if not /pws/zycie085-ukursfre is initial.

          if s_inco1_ci = 'C&F'.

            if not v_tval3 is initial.

              itab_it-vlfob = ( ( itab_it-qtd_iten * itab_it-vlreal )

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI058F02

 

...

FORM load_sevl.

  DATA: v_fretebl LIKE /pws/zycie093-prepaid.

* >> Início da exclusão: FORM LOAD_SEVL

  IF NOT s_fbvr IS INITIAL AND

* << Fim da exclusão

* >> Início da inclusão: FORM LOAD_SEVL

  IF s_inco1_ci = 'CIF'.

    IF NOT v_tcif_fat IS INITIAL AND

       NOT /pws/zycie085-per_seg IS INITIAL.

      /pws/zycie085-vlseg  =   v_tcif_fat *

      ( /pws/zycie085-per_seg / 100 ).

      PERFORM retorna_decimais USING /pws/zycie085-waersseg

                                     /pws/zycie085-vlseg.

    ENDIF.

  ELSEIF NOT s_fbvr IS INITIAL AND

* << Fim da inclusão

     NOT s_frvr IS INITIAL AND

     NOT /pws/zycie085-ukursseg IS INITIAL AND

     NOT /pws/zycie085-per_seg IS INITIAL.

    IF s_inco1_ci = 'FOB'.

      /pws/zycie085-vlseg  =  ( ( ( s_fbvr + s_frvr - v_desp_brl ) /

      /pws/zycie085-ukursseg ) *  /pws/zycie085-per_seg  )  / 100.

    ELSE.

      v_fretebl = /pws/zycie093-prepaid + /pws/zycie093-collect .

* >> Início da inclusão: FORM LOAD_SEVL

      PERFORM trata_decimais USING /pws/zycie093-waersfre

                                   v_fretebl  .

* << Fim da inclusão

      PERFORM: calc_conv_moeda:

               USING /pws/zycie093-waersfre  /pws/zycbt007-waersb

               CHANGING v_fretebl.

* >> Início da exclusão: FORM LOAD_SEVL

      PERFORM trata_decimais USING /pws/zycie085-waersseg

                                   v_fretebl  .

* << Fim da exclusão

      /pws/zycie085-vlseg  =  ( ( ( s_fbvr + v_fretebl - v_desp_brl ) /

      /pws/zycie085-ukursseg ) *  /pws/zycie085-per_seg  )  / 100.

    ENDIF.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI058F03

 

...

      ENDIF.

      v_tdif = v_tfrefat - v_bltofat .

      v_bltofat = /pws/zycie093-prepaid +

      /pws/zycie093-collect - /pws/zycie093-ternacion.

      PERFORM calc_conv_frete CHANGING v_bltofat.

  ENDCASE.

  CLEAR v_ntgew.

  LOOP AT itab_zycit003.

    v_ntgew = v_ntgew + itab_zycit003-ntgew.

  ENDLOOP.

* >> Início da inclusão: FORM CALC_INIT

  CLEAR v_tcif_fat.

* << Fim da inclusão

  LOOP AT itab_it.

    READ TABLE itab_zycit003 WITH KEY

                              nrseq = itab_it-nrseq

                              ebeln = itab_it-ebeln

                              ebelp = itab_it-ebelp.

    IF itab_it-qtd_itend NE '' AND v_dit = 'N'

       AND itab_it-vlreald IS INITIAL.

      itab_it-vlreald = itab_it-vlreal + ( ( v_tdif *

       itab_zycit003-ntgew / v_ntgew ) / itab_zycit003-qtd_iten ).

      MODIFY itab_it.

...

 

...

                                 /pws/zycie085-waersfob

                               CHANGING  itab_zycit003-vlreal.

      PERFORM: calc_conv_moeda USING    itab_zycit003-waers

                                 /pws/zycie085-waersfob

                               CHANGING  itab_zycit003-netpr.

    ENDIF.

    v_tot_real = v_tot_real +

   ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).

    v_tot_plan = v_tot_plan +

      (   itab_zycit003-qtd_iten * itab_zycit003-netpr ).

* >> Início da inclusão: FORM CALC_INIT

    IF s_inco1_ci EQ 'CIF'.

      IF NOT itab_zycit003-qtd_itend IS INITIAL.

        v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *

                                                 itab_it-qtd_itend )

               + itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ).

      ELSE.

        v_tcif_fat = v_tcif_fat + ( ( itab_zycit003-vlreal *

                itab_it-qtd_iten )

               + itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ).

      ENDIF.

    ENDIF.

* << Fim da inclusão

  ENDLOOP.

  LOOP AT itab_it.

    IF NOT itab_it-vlreald IS INITIAL.

      itab_it-vlreal = itab_it-vlreald.

    ENDIF.

    CLEAR: v_tvaln, v_qtd_iten.

    v_qtd_iten = itab_it-qtd_iten.

    v_tntgew = v_tntgew + itab_it-ntgew.

    IF itab_it-waersbem EQ  /pws/zycie085-waersfob.

      v_tmle   = v_tmle   + ( ( v_qtd_iten * itab_it-vlreal ) *

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/MZYCI058X01

 

...

* >> Início da inclusão:

DATA: v_tcif_fat TYPE /pws/zycie085-vlfob.

* << Fim da inclusão

DATA: END OF COMMON PART.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCRSTIDS

 

...

    WRITE:  011 '|', 012 itab_imp-qtd_iten UNIT itab_imp-meins.

    PERFORM move_itab_relatorio USING 'I' 2 v_sub

                                     itab_imp-qtd_iten

                                     itab_imp-meins ' '.

    WRITE:  038 '|', 039 itab_imp-meins.

    PERFORM move_itab_relatorio USING 'I' 3 v_sub

                                        itab_imp-meins ' ' ' '.

    WRITE:  045 '|', 046 itab_imp-descr.

    PERFORM move_itab_relatorio USING 'I' 4 v_sub

                                          itab_imp-descr ' ' ' '.

* >> Início da inclusão: FORM CABEC_ITS

    PERFORM retorna_decimais USING itab_imp-waers

                          CHANGING itab_imp-vlfobdi.

* << Fim da inclusão

    v_vlmerc = itab_imp-vlfobdi.

    DATA v_temp(30) TYPE c.

    v_temp = v_vlmerc.

* >> Início da exclusão: FORM CABEC_ITS

    WRITE:  115 '|', 116 v_vlmerc CURRENCY 'BRL'.

    WRITE v_vlmerc TO v_temp CURRENCY /pws/zycit100-waersbem.

* << Fim da exclusão

* >> Início da inclusão: FORM CABEC_ITS

    WRITE:  115 '|', 116 v_vlmerc CURRENCY itab_imp-waers.

    WRITE v_vlmerc TO v_temp CURRENCY itab_imp-waers.

* << Fim da inclusão

    PERFORM move_itab_relatorio USING 'I' 5 v_sub

                                          v_temp ' ' ' '.

    WRITE:  148 '|'.

    v_totcol = v_totcol + itab_imp-vlfob.

    IF v_iten = 5.

      EXIT.

    ENDIF.

  ENDLOOP.

  ULINE.

ENDFORM.

...