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.
7.0
Produto:
Nota
Descrição
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,
...