CE PLUS - Nota 000328

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Embarque

Data/Hora da Publicação: 23/11/2005 00:00:00

Data/Hora Última Alteração: 21/02/2011 14:12:13

Descrição da Nota: ERRO DE ARREDONDAMENTO DE FRETE NO ENVIO PARA CÂMBIO

Sintoma

O programa leva 0,01 a mais no valor do frete no preenchimento da tabela /PWS/ZYCBT017.

 

 

 

Solução

Ajuste para correção de erros de arredondamento.

 

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

VALORES INCORRETOS NO ENVIO PARA O CÂMBIO DE EMBARQUES MARÍTIMOS

Informações Complementares

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

Nota Número 00328 Data: 23/11/2005 Hora: 10:32:34

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

 

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

Nota Número              : 00328

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 6.0

Pacote                   : 00021

Agrupamento              : 00089

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

Referência às notas relacionadas:

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

 

00279  - 00001 - 6.0    - 00021  - VALORES INCORRETOS NO ENVIO PARA O CÂMBIO DE EMBARQUES MARÍTIMOS

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

ERRO DE ARREDONDAMENTO DE FRETE NO ENVIO PARA CÂMBIO

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

Palavras Chave:

EXPORTAÇÃO - EMBARQUE - ENVIO PARA CÃMBIO - VALOR FRETE

 

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

Objetos da nota:

REPS /PWS/MZYCE003F01

 

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

Modificações efetuadas em REPS /PWS/MZYCE003F01

 

...

FORM gera_tabela_zycbt017 USING value(p_centros).

  DATA: itab_002          LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE,

        wa_zycee313       LIKE /pws/zycee313,

        v_kunrg           LIKE /pws/zycet002-kunrg,

        v_vlmetotal       LIKE /pws/zycet008-vlme,

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

        v_vlfobtotal      LIKE /pws/zycet002-vlfob,

* << Fim da inclusão

        v_percent         TYPE f,

        v_gsber           LIKE /pws/zycet002-gsber,

        wa_zycbt017       LIKE /pws/zycbt017,

        wa_zycbt017_vl    LIKE /pws/zycbt017,

        itab_zycbt017_aux LIKE itab_zycbt017 OCCURS 0 WITH HEADER LINE.

...

 

...

      IF sy-subrc               EQ 0     AND

         itab_zycet156-proccond EQ 'FOB'.

        v_vlmetotal = v_vlmetotal + itab_zycet008-vlme.

      ENDIF.

    ENDLOOP.

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

    CLEAR v_vlfobtotal.

* << Fim da inclusão

    LOOP AT itab_002.

      v_percent = itab_002-vlfob / v_vlmetotal.

      IF itab_002-gsber NE v_gsber OR

         sy-tabix       EQ 1.

        PERFORM cabecalho_zycbt017 TABLES itab_zycbt017_aux

...

 

...

        wa_zycbt017-vlslfc  = wa_zycbt017-vlavinc.

        wa_zycbt017-vldesp  = wa_zycbt017-vldesp +

                              ( v_percent * wa_zycbt017_vl-vldesp ).

      ENDIF.

    ENDLOOP.

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

    v_vlfobtotal = v_vlfobtotal + wa_zycbt017_vl-vlfob.

* << Fim da inclusão

    PERFORM cabecalho_zycbt017 TABLES itab_zycbt017_aux

                               USING  v_kunrg

                                      itab_002-vkgrp

                             CHANGING wa_zycbt017.

  ENDIF.

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

  PERFORM correcao_itens_cambio using wa_zycee313.

* << Fim da inclusão

  CHECK itab_zycet037-alt_cond EQ '0'.

  PERFORM gera_parcelas_zycbt017.

ENDFORM.

FORM gera_parcelas_zycbt017.

  DATA: itab_017 LIKE itab_zycbt017 OCCURS 0 WITH HEADER LINE,

...

 

...

    wa_valores-nrseq_consig = itab_zycet002-nrseq_consig.

    MOVE-CORRESPONDING itab_emb_cons TO /pws/zycee001.

    EXIT.

  ENDLOOP.

ENDFORM.

* >> Início da inclusão:

FORM correcao_itens_cambio using wa_zycee313 type /pws/zycee313.

  DATA: v_vlfrete LIKE /pws/zycbt017-vlfrete,

        v_vlseg   LIKE /pws/zycbt017-vlseg,

        v_vlcomis LIKE /pws/zycbt017-vlcomis,

        v_vldesp  LIKE /pws/zycbt017-vldesp,

        v_lines   TYPE n.

  CHECK NOT itab_zycbt017[] IS INITIAL.

  CHECK NOT wa_zycee313 IS INITIAL.

  CLEAR: v_vlfrete,

         v_vlseg,

         v_vlcomis,

         v_vldesp,

         v_lines.

  LOOP AT itab_zycbt017.

    v_vlfrete = v_vlfrete + itab_zycbt017-vlfrete.

    v_vlseg   = v_vlseg   + itab_zycbt017-vlseg.

    v_vlcomis = v_vlcomis + itab_zycbt017-vlcomis.

    v_vldesp  = v_vldesp  + itab_zycbt017-vldesp.

  ENDLOOP.

  DESCRIBE TABLE itab_zycbt017 LINES v_lines.

  READ TABLE itab_zycbt017 INDEX v_lines.

  IF v_vlfrete NE wa_zycee313-vlme_frt.

    itab_zycbt017-vlfrete = itab_zycbt017-vlfrete -

                             ( v_vlfrete - wa_zycee313-vlme_frt ).

  ENDIF.

  IF v_vlseg NE wa_zycee313-vlme_seg.

    itab_zycbt017-vlseg = itab_zycbt017-vlseg -

                             ( v_vlseg - wa_zycee313-vlme_seg ).

  ENDIF.

  IF v_vlcomis NE wa_zycee313-vlme_com.

    itab_zycbt017-vlcomis = itab_zycbt017-vlcomis -

                             ( v_vlcomis - wa_zycee313-vlme_com ).

  ENDIF.

  IF v_vldesp NE wa_zycee313-vlme_out.

    itab_zycbt017-vldesp = itab_zycbt017-vldesp -

                             ( v_vldesp - wa_zycee313-vlme_out ).

  ENDIF.

  MODIFY itab_zycbt017 INDEX v_lines.

ENDFORM.

* << Fim da inclusão