Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Comissão de Agente
Data/Hora da Publicação: 07/12/2005 00:00:00
Data/Hora Última Alteração: 21/02/2011 15:02:27
Descrição da Nota: RATEIO INCORRETO EM COMISSÃO DE AGENTE AR E AT
Sintoma
Os valores de diferenças e e rateio de comissão de agente quando há mais de um Centro de Lucro está
sendo efetuado incorretamente.
Solução
Efetuar o rateio corretamente.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 00409 Data: 07/12/2005 Hora: 09:36:18
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 00409
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00022
Agrupamento : 00093
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00380 - 00001 - 6.0 - 00022 - VALORES ERRADOS NO RATEIO DA COMISSÃO DE AGENTE
----------------------------------------------------------------------------------------------------
RATEIO INCORRETO EM COMISSÃO DE AGENTE AR E AT
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXPORTAÇÃO COMISSÃO DE AGENTE RATEIO DIFERENÇA AT AR
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCE017F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE017F01
...
PERFORM trata_ordem.
ENDIF.
LOOP AT itab_zycet010.
LOOP AT itab_saida.
READ TABLE itab_zycet020 WITH KEY auart = itab_saida-auart.
* >> Início da exclusão: FORM RATEIO_AT_AR
IF itab_saida-shkzg = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM RATEIO_AT_AR
READ TABLE itab_zycet002
WITH KEY vbeln_vf = itab_saida-vbeln_vf
posnr = itab_saida-posnr.
CHECK sy-subrc EQ 0.
itab_saida-vlme = abs( itab_zycet002-vlfob ).
IF itab_saida-shkzg EQ 'X'.
* << Fim da inclusão
itab_saida-vlme = itab_saida-vlme * ( -1 ).
itab_saida-vlcomis = itab_saida-vlcomis * ( -1 ).
ENDIF.
* >> Início da exclusão: FORM RATEIO_AT_AR
READ TABLE itab_zycet002 WITH KEY vbeln_vf = itab_saida-vbeln_vf
posnr = itab_saida-posnr.
IF sy-subrc = 0.
* << Fim da exclusão
MOVE: itab_zycet002-nrseq TO itab_zycet013-nrseq,
itab_zycet002-gsber TO itab_zycet013-gsber,
itab_zycet002-prctr TO itab_zycet013-prctr,
itab_zycet002-waers TO itab_zycet013-waers.
* >> Início da exclusão: FORM RATEIO_AT_AR
ENDIF.
move: itab_zycet002-VLFOB to itab_zycet013-vlme,
itab_zycet010-lifnr TO itab_zycet013-lifnr,
itab_saida-vlcomis TO itab_zycet013-vlagente.
* << Fim da exclusão
* >> Início da inclusão: FORM RATEIO_AT_AR
MOVE: itab_saida-vlme TO itab_zycet013-vlme,
itab_zycet010-lifnr TO itab_zycet013-lifnr,
itab_saida-vlcomis TO itab_zycet013-vlagente.
* << Fim da inclusão
COLLECT itab_zycet013.
ENDLOOP.
DELETE itab_zycet013 WHERE vlme IS initial.
ENDLOOP.
clear /pws/zycee313-vlme_fob.
* >> Início da exclusão: FORM RATEIO_AT_AR
loop at itab_zycet002 where vlme_r gt 0.
add itab_zycet002-vlme_r to /pws/zycee313-vlme_fob.
* << Fim da exclusão
* >> Início da inclusão: FORM RATEIO_AT_AR
LOOP AT itab_zycet002.
ADD itab_zycet002-vlfob TO /pws/zycee313-vlme_fob.
* << Fim da inclusão
endloop.
CLEAR: v_comicalc.
LOOP AT itab_zycet010.
v_comicalc = v_comicalc + itab_zycet010-vlcomicalc.
ENDLOOP.
...
...
v_vlcomis_aux = v_vlcomis.
v_vlcomis = v_comicalc.
ENDIF.
IF v_vlcomis NE v_vlcomis_p AND
( NOT v_vlcomis_p IS INITIAL ).
* >> Início da exclusão: FORM RATEIO_AT_AR
itab_zycet013-vlme_dif = abs( itab_zycet013-vlme -
( ( itab_zycet013-vlagente / v_vlcomis )
* itab_zycet010-vlcomis ) ).
* << Fim da exclusão
* >> Início da inclusão: FORM RATEIO_AT_AR
itab_zycet013-vlme_dif = abs( itab_zycet010-vlcomis -
v_vlcomis_p ) *
itab_zycet013-vlme /
itab_zycet010-vlcomis.
* << Fim da inclusão
IF NOT itab_zycet010-vlcomicalc IS INITIAL.
itab_zycet013-vlme_dif =
abs( itab_zycet013-vlme -
( ( itab_zycet013-vlagente / v_comicalc )
* itab_zycet010-vlcomicalc ) ).
...