CE PLUS - Nota 003952

Módulo: DOC. EXPORTAÇÃO

Funcionalidade: Adiantamento

Data/Hora da Publicação: 18/06/2007 00:00:00

Data/Hora Última Alteração: 21/02/2011 17:16:50

Descrição da Nota: ERRO NO VALOR DO ADIANTAMENTO NA /PWS/ZYCET017 QUANDO HÁ DEVOLUÇÃO.

Sintoma

Ao executar a liberação do Adiantamento, o valor do Adiantamento está sendo gravado incorretamente

na tabela /pws/zycet017 (campo VLMI) quando há devoluções no processo do embarque. A somatória dos

valores salvos na tabela /pws/zycet017 (rateados por divisão) não corresponde ao total do

adiantamento.

 

 

Solução

Ajuste na rotina de cálculo de percentual do Adiantamento por divisão.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

PRESTAÇÃO DE CONTAS NÃO ENCONTRA O ADIANTAMENTO APROVADO

Informações Complementares

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

Nota Número 03952 Data: 18/06/2007 Hora: 11:51:51

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

 

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

Nota Número              : 03952

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00170

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

Referência às notas relacionadas:

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

 

02218  - 00001 - 6.0    - 00025  - PRESTAÇÃO DE CONTAS NÃO ENCONTRA O ADIANTAMENTO APROVADO

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

ERRO NO VALOR DO ADIANTAMENTO NA /PWS/ZYCET017 QUANDO HÁ DEVOLUÇÃO.

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

Palavras Chave:

ADIANTAMENTO, /PWS/ZYCET017, VALOR, ERRO, LIBERAÇÃO, RATEIO,

CÁLCULO, VLMI, DEVOLUÇÃO, DIVISÃO

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

Objetos da nota:

REPS /PWS/MZYCE006F01

REPS /PWS/MZYCE006TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCE006F01

 

...

 

  MODIFY r_codigos_fob

      TRANSPORTING sign option

      WHERE NOT low IS initial.

 

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

  IF it_tab-codmod = 'X' AND NOT r_codigos_fob[] IS INITIAL.

    SELECT * FROM /pws/zycet008

        INTO TABLE it_zycet008

        FOR ALL ENTRIES IN it_zycet002

        WHERE  nrseq  = it_zycet002-nrseq

        AND  codigo IN r_codigos_fob[].

  ENDIF.

* << Fim da exclusão

 

  PERFORM soma_embarque.

...

 

...

      MOVE v_totadto TO it_export_aux-totadto.

      MODIFY it_export_aux TRANSPORTING totadto.

      CLEAR v_totadto.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM soma_embarque.

  IF it_tab-codmod EQ 'X'.

    PERFORM select_tpdoc.

    LOOP AT it_zycet002.

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

      CLEAR: it_zycet020.

* << Fim da inclusão

      READ TABLE it_zycet020 WITH KEY auart = it_zycet002-auart.

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

      READ TABLE it_vbrp WITH KEY vbeln = it_zycet002-vbeln_vf

                                  posnr = it_zycet002-posnr

                                  shkzg = it_zycet002-shkzg.

      IF it_zycet020-tipodoc = 'OC' AND

           it_zycet020-auart = it_zycet002-auart  AND

           it_vbrp-shkzg     = 'X'.

        READ TABLE it_export_aux WITH KEY nrseq = it_tab-nrseq

                                          gsber = it_zycet002-gsber.

        CLEAR it_export-vlitem.

        it_export-vlitem = it_export_aux-vlitem - ( it_zycet002-vlme ).

        MOVE: it_export-vlitem  TO it_export_aux-vlitem.

        MODIFY it_export_aux TRANSPORTING vlitem

                                       WHERE nrseq = it_tab-nrseq

                                         AND gsber = it_zycet002-gsber.

        CLEAR: it_export_aux, it_zycet020.

* << Fim da exclusão

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

      IF ( it_zycet020-tipodoc NE 'OV' AND

           it_zycet020-tipodoc NE 'CO' AND

           it_zycet020-tipodoc NE 'VC' AND

           it_zycet020-tipodoc NE 'OS' ).

        CONTINUE.

* << Fim da inclusão

      ELSE.

        MOVE: it_zycet002-nrseq   TO  it_export-nrseq,

              it_zycet002-gsber   TO  it_export-gsber,

              it_zycet002-vlme    TO  it_export-vlitem.

        COLLECT it_export INTO it_export_aux.

      ENDIF.

    ENDLOOP.

    CLEAR it_export.

  ENDIF.

  PERFORM calcula_porcentagem.

ENDFORM.

FORM calcula_porcentagem.

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

 DATA: v_total  TYPE /pws/zycet008-vlme.

 CLEAR v_total.

  LOOP AT it_export_aux.

    v_total = v_total + it_export_aux-vlitem.

  ENDLOOP.

* << Fim da inclusão

  IF it_tab-codmod EQ 'X'.

    LOOP AT it_export_aux WHERE nrseq = it_tab-nrseq.

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

      READ TABLE it_zycet008 WITH KEY nrseq = it_tab-nrseq.

      IF NOT it_zycet008-vlme IS INITIAL.

        v_porcent = it_export_aux-vlitem / it_zycet008-vlme.

* << Fim da exclusão

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

        v_porcent = it_export_aux-vlitem / v_total.

* << Fim da inclusão

        MOVE v_porcent TO it_export_aux-porcent.

        MODIFY it_export_aux TRANSPORTING porcent.

        CLEAR v_porcent.

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

      ENDIF.

* << Fim da exclusão

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM armazena_dados.

...

 

...

  it_zycbe033-tcode   = text-007.

  it_zycbe033-tabela  = text-008.

  APPEND it_zycbe033.

ENDFORM.

FORM select_tpdoc.

  SELECT * FROM /pws/zycet020

         INTO TABLE it_zycet020

         FOR ALL ENTRIES IN it_zycet002

         WHERE auart   = it_zycet002-auart

           AND bukrs   = it_zycet002-bukrs.

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

  SELECT * FROM vbrp

           INTO TABLE it_vbrp

           FOR ALL ENTRIES IN it_zycet002

           WHERE vbeln  =  it_zycet002-vbeln_vf

             AND posnr  =  it_zycet002-posnr.

* << Fim da exclusão

ENDFORM.

FORM gera_relatorio.

  IF NOT it_total[] IS INITIAL.

    CLEAR it_total.

    PERFORM deleta_itab.

    REFRESH it_total.

  ENDIF.

ENDFORM.

FORM deleta_itab.

  LOOP AT it_total.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCE006TOP

 

...

        INCLUDE STRUCTURE /pws/zyglt100.

DATA: END OF itab_zyglt100.

DATA: BEGIN OF it_zycet045 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycet045.

DATA: END OF it_zycet045.

DATA: BEGIN OF it_zycet095 OCCURS 10.

        INCLUDE STRUCTURE /pws/zycet095.

DATA: END OF it_zycet095.

DATA: it_zycet020  LIKE /pws/zycet020 OCCURS 10 WITH HEADER LINE,

 

* >> Início da exclusão:

      it_zycet002  LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE,

      it_zycet008  LIKE /pws/zycet008 OCCURS 10 WITH HEADER LINE,

      it_vbrp      LIKE vbrp     OCCURS 10 WITH HEADER LINE.

* << Fim da exclusão

* >> Início da inclusão:

      it_zycet002  LIKE /pws/zycet002 OCCURS 10 WITH HEADER LINE.

* << Fim da inclusão

DATA: BEGIN OF it_export OCCURS 0,

        nrseq    LIKE  /pws/zycet002-nrseq,

        gsber    LIKE  /pws/zycet002-gsber,

        vlitem   LIKE  /pws/zycet002-vlme,

        porcent  TYPE p DECIMALS 8,

        totadto  LIKE  /pws/zycet002-vlme,

        belnr    LIKE  /pws/zycet002-belnr5,

      END OF it_export.

DATA: BEGIN OF it_export_aux OCCURS 0,

        nrseq   LIKE  /pws/zycet002-nrseq,

...