CE PLUS - Nota 004523

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 27/08/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 13:47:48

Descrição da Nota: AJUSTE PARA PERMITIR A ALTERAÇÃO DA TAXA DE CONVERSÃO DAS MOEDAS

Sintoma

A ANA não mantem alterações realizadas na taxa de conversão de moedas.

 

 

Solução

Buscar a taxa da moeda apenas quando a data da taxa é alterada.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

CORREÇÃO DO CALCULO DOS VALORES DE FRETE E MERCADORIA NA ANA

Informações Complementares

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

Nota Número 04523 Data: 27/08/2007 Hora: 08:47:53

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

 

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

Nota Número              : 04523

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00010

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

Referência às notas relacionadas:

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

 

04324  - 00001 - 7.0    - 00002  - CORREÇÃO DO CALCULO DOS VALORES DE FRETE E MERCADORIA NA ANA

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

AJUSTE PARA PERMITIR A ALTERAÇÃO DA TAXA DE CONVERSÃO DAS MOEDAS

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

Palavras Chave:

ANA - TAXAO - MOEDA - ALTERAÇÃO

/PWS/SAPMZYCI059

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

Objetos da nota:

REPS /PWS/MZYCI059F01

REPS /PWS/MZYCI059F03

REPS /PWS/MZYCI059TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F01

 

...

         /pws/zycie085-vlipi, /pws/zycie085-vlicms.

  CLEAR: /pws/zycie085-vlfob, s_fbvr, s_frvr_aux, s_frvr_aux1,

         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.

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

  CLEAR: v_alter  .

  IF v_mudou NE 'X'.

    v_alter = 'X'.

  ENDIF.

  v_mudou = 'X'.

* << Fim da exclusão

  PERFORM calc_init USING 'I'.

  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.

...

 

...

    IF v_tval2 LT '0'.

      IF v_msgfre NE 'N'.

        MESSAGE i015 WITH text-119 text-125.

        LEAVE  PROGRAM.

      ELSE.

        MESSAGE i015 WITH text-021 s_msg1 text-119 text-125.

        LEAVE  PROGRAM.

      ENDIF.

    ENDIF.

  ELSE.

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

    v_rateio_t  = v_tval.

* << Fim da inclusão

    /pws/zycie085-vlfobr = s_fbvr = v_tmle.

    CLEAR: v_tval2.

  ENDIF.

  CLEAR: v_desp_acr, v_desp_brl.

  LOOP AT itab_zycit049 WHERE tipo = 'A' AND

          vldp > 0.

    IF itab_zycit049-waers = /pws/zycbt007-waersb.

      s_fbvr = s_fbvr + itab_zycit049-vldp.

      v_desp_brl = v_desp_brl + itab_zycit049-vldp.

    ELSE.

...

 

...

    itab_it-vlfre_me = v_tot_fre.

    itab_it-vlseg_me = v_tot_seg.

    itab_it-vlfre    = t_ivfre.

    itab_it-vlseg    = t_ivseg.

    itab_it-vldiffob = t_vldif.

    itab_it-frn      =  ( /pws/zycie003-ntgew / v_tntgew ) * v_dif_frn.

    MODIFY itab_it INDEX v_idx TRANSPORTING

           vlseg vlfre vlfob baseii vlii baseipi vlipi baseicms vlicms

           vlfre_me vlseg_me vldiffob frn vlmerc_ad.

  ENDLOOP.

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

  IF v_alter = 'X'.

* << Fim da exclusão

    CLEAR v_mudou.

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

  ENDIF.

* << Fim da exclusão

  /pws/zycie085-vlfob  = v_tval2.

  /pws/zycie085-vlfobr = s_fbvr.

  IF s_inco1_ci EQ 'FOB'.

    /pws/zycie085-vlfre = v_bltofat.

  ENDIF.

  /pws/zycie085-waersfre = /pws/zycie093-waersfre.

...

 

...

      ENDIF.

    ELSE.

      CONCATENATE p_data+6(2) '/' p_data+4(2) '/' p_data+0(4)

      INTO v_msgd.

     CONCATENATE p_waers text-022 p_data INTO s_msg1 SEPARATED BY space.

      MESSAGE s015 WITH text-021 s_msg1.

    ENDIF.

  ENDIF.

ENDFORM.

FORM refresh_all.

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

  v_mudou = 'X'.

* << Fim da exclusão

  PERFORM conversao_taxas.

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

  IF /pws/zycie085-ukursfob IS INITIAL OR

     /pws/zycie085-ukursfre IS INITIAL OR

     /pws/zycie085-ukursseg IS INITIAL.

    MESSAGE i015 WITH text-220.

    exit.

  ENDIF.

* << Fim da inclusão

  PERFORM calc_itab.

  PERFORM carrega_tributos.

  PERFORM propoe_banco.

  PERFORM recarrega_alv.

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

  CLEAR: v_mudou.

* << Fim da exclusão

ENDFORM.

FORM update_item.

  CLEAR:   itab_zycit003.

  REFRESH: itab_zycit003.

  IF NOT itab_it[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

             FOR ALL ENTRIES IN itab_it

             WHERE nrseq = itab_it-nrseq AND

                   ebeln = itab_it-ebeln AND

                   ebelp = itab_it-ebelp.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F03

 

...

  IF encont = 0.

    MESSAGE w061 WITH text-111.

  ENDIF.

ENDFORM.

FORM calc_conv_frete CHANGING p_val.

  p_val = /pws/zycie093-prepaid + /pws/zycie093-collect -

 /pws/zycie093-ternacion.

  PERFORM trata_decimais USING    /pws/zycie093-waersfre

                         CHANGING p_val.

  IF /pws/zycie093-waersfre NE /pws/zycie085-waersfob.

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

    IF v_mudou NE 'X'.

      IF NOT /pws/zycie085-ukursfob IS INITIAL.

        p_val = ( p_val * /pws/zycie085-ukursfre ) /

                          /pws/zycie085-ukursfob.

      ELSE.

        CLEAR: p_val.

      ENDIF.

    ELSE.

* << Fim da inclusão

    PERFORM: calc_conv_moeda: USING    /pws/zycie093-waersfre

    /pws/zycie085-waersfob

                                                         CHANGING p_val.

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

    ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

FORM calc_conv_moeda USING    p_waersfrom

                              p_waersto

...

 

...

    ENDIF.

    IF NOT v_taxa IS INITIAL AND NOT p_value IS INITIAL.

      p_value = p_value / v_taxa.

    ENDIF.

  ENDIF.

ENDFORM.

FORM calc_conv_seg CHANGING p_val.

  PERFORM trata_decimais USING    /pws/zycie085-waersseg

                         CHANGING p_val.

  IF /pws/zycie085-waersseg NE /pws/zycie085-waersfob.

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

    IF v_mudou NE 'X'.

      IF NOT /pws/zycie085-ukursfob IS INITIAL.

        p_val = ( p_val * /pws/zycie085-ukursseg ) /

                          /pws/zycie085-ukursfob.

      ELSE.

        CLEAR: p_val.

      ENDIF.

    ELSE.

* << Fim da inclusão

    PERFORM: calc_conv_moeda: USING    /pws/zycie085-waersseg

    /pws/zycie085-waersfob

                                                         CHANGING p_val.

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM lock_record.

  CHECK sy-tcode = '/PWS/ZYCI059_A' AND

...

 

...

  s_frvr_d2 = s_frvr.

ENDFORM.

FORM load_sevl2.

  IF NOT v_usd IS INITIAL.

    s_stvr = s_stvr / v_usd.

  ENDIF.

  s_stvr_d2 = s_stvr.

ENDFORM.

FORM conversao_taxas.

  DATA: v_altera TYPE c.

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

  IF /pws/zycie085-ukursfob IS INITIAL AND

     v_mudou IS INITIAL.

    v_mudou = v_altera = 'X'.

  ENDIF.

* << Fim da inclusão

  PERFORM: taxa_converte USING /pws/zycie085-waersfob

                               /pws/zycie085-dttax

                         CHANGING /pws/zycie085-ukursfob,

                              load_fbvl.

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

  IF v_altera EQ 'X'.

    CLEAR: v_mudou, v_altera.

  ENDIF.

* << Fim da inclusão

  PERFORM: taxa_converte USING /pws/zycbt007-waersa

...

 

...

                          load_fbvl2.

  LOOP AT itab_it WHERE NOT waersbem IS initial AND

                            waersbem NE /pws/zycbt007-waersb.

    v_idx = sy-tabix.

    PERFORM: taxa_converte USING itab_it-waersbem

                                 /pws/zycie085-dttax

                           CHANGING itab_it-dttaxbem.

    MODIFY itab_it INDEX v_idx TRANSPORTING dttaxbem.

  ENDLOOP.

  IF NOT /pws/zycie093-waersfre IS INITIAL.

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

    IF /pws/zycie085-ukursfre IS INITIAL AND

       v_mudou IS INITIAL.

      v_mudou = v_altera = 'X'.

    ENDIF.

* << Fim da inclusão

    PERFORM: taxa_converte USING    /pws/zycie093-waersfre

                                    /pws/zycie085-dttax

                           CHANGING /pws/zycie085-ukursfre,

             load_coll.

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

    IF v_altera EQ 'X'.

      CLEAR: v_mudou, v_altera.

    ENDIF.

* << Fim da inclusão

  ENDIF.

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

  CLEAR: v_altera.

  IF v_mudou NE 'X'.

    v_altera = 'X'.

* << Fim da exclusão

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

  IF NOT /pws/zycie085-waersseg IS INITIAL.

    IF /pws/zycie085-ukursseg IS INITIAL AND

       v_mudou IS INITIAL.

      v_mudou = v_altera = 'X'.

* << Fim da inclusão

  ENDIF.

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

  v_mudou = 'X'.

  IF NOT /pws/zycie085-waersseg IS INITIAL.

* << Fim da exclusão

    PERFORM: taxa_converte USING    /pws/zycie085-waersseg

                                    /pws/zycie085-dttax

                           CHANGING /pws/zycie085-ukursseg,

    load_sevl.

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

    IF v_altera EQ 'X'.

      CLEAR: v_mudou, v_altera.

    ENDIF.

* << Fim da inclusão

  ENDIF.

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

  IF v_altera = 'X'.

* << Fim da exclusão

    CLEAR v_mudou.

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

  ENDIF.

* << Fim da exclusão

ENDFORM.

FORM atualiza_zycit403.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI059TOP

 

...

  v_txini          TYPE c,

  v_msgfre         TYPE c,

  v_region LIKE adrc-region,

  v_canal LIKE /pws/zycit397-canal,

  v_totalusdp       TYPE p DECIMALS 2,

  v_totalusdg       TYPE p DECIMALS 2,

  v_totalusda       TYPE p DECIMALS 2,

  v_totalusdtp      TYPE p DECIMALS 2,

  v_totalusdtg      TYPE p DECIMALS 2,

  v_totalusdta      TYPE p DECIMALS 2,

* >> Início da exclusão:

  v_mudou VALUE 'X',

* << Fim da exclusão

* >> Início da inclusão:

  v_mudou ,

* << Fim da inclusão

  v_valtot LIKE /pws/zycie085-vlfob,

  v_ate TYPE i  ,

  v_usd    LIKE /pws/zycie085-ukursfob.

DATA wa_zycit403 LIKE /pws/zycit403.

DATA v_index LIKE sy-tabix.

DATA: s_frvr_d2   LIKE /pws/zycie006-vlmerc,

      s_stvr_d2   LIKE /pws/zycie006-vlmerc,

      v_tmle_d2   LIKE /pws/zycie006-vlmerc,

      t_vmle_d2   LIKE /pws/zycie006-vlmerc,

      v_tot_fre   LIKE t_icms,

...

 

...

        v_xblnr    LIKE bkpf-xblnr,

        v_bktxt    LIKE bkpf-bktxt,

        v_f05_ok,

        v_blart    LIKE /pws/zycbt011-blart,

        v_belnrf05 LIKE itab_zycbt032-belnr,

        v_desp_acr LIKE /pws/zycit049-vldp,

        v_desp_brl LIKE /pws/zycit049-vldp,

        v_evento   LIKE /pws/zyglt321-codeven,

        v_matuse   LIKE /pws/zycbe035-matuse,

        v_salvou  TYPE c.

* >> Início da inclusão:

Data: v_tax_temp type /pws/zycit085-ukursfob.

* << Fim da inclusão