Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Rotina de Pagamento
Data/Hora da Publicação: 28/08/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 13:51:47
Descrição da Nota: PROCESSAR BOLETO - COMISSÃO DE AGENTE LIQUIDADA FORA DO PW.CE
Sintoma
Ao processar o boleto de uma comissão de agente, o campo Fatura Liquidada não esta flegado, mas a
fatura esta liquidada, só que fora do pw.CE, pois é um cenário de comissão de agente em que não
existe registro na tabela do câmbio /pws/zycbt030.
Solução
Voltar o tratamento de verificar se a fatura esta liquidada fora do pw.CE, ou seja, se não houver
registro na tabela /pws/zycbt030, seguir o caminho do código que analisa as tabelas /pws/zycet002,
bkpf e bsid.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08907 Data: 28/08/2009 Hora: 14:57:20
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08907
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00111
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03571 - 00001 - 7.0 - 00001 - ROTINA DE PAGAMENTO(EXPORTAÇÃO) - SELEÇÃO EMPRESA
04598 - 00002 - 7.0 - 00003 - PROCESSAR BOLETO
06404 - 00003 - 7.0 - 00005 - PROCESSAR BOLETO - STATUS DA COMISSÃO
----------------------------------------------------------------------------------------------------
PROCESSAR BOLETO - COMISSÃO DE AGENTE LIQUIDADA FORA DO PW.CE
----------------------------------------------------------------------------------------------------
Palavras Chave:
PROCESSAR BOLETO COMISSÃO DE AGENTE LIQUIDADA FORA DO PW.CE
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYGLR002
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYGLR002
...
DELETE itab_zycet010.
CONTINUE.
ENDIF.
CONCATENATE text-031 itab_zycet010-nrseq INTO v_tipo.
CLEAR: v_me, v_usd.
v_me = itab_zycet010-vlcomis.
READ TABLE itab_zycbt030
WITH KEY nrinvoic = itab_zycbt017-nrinvoic
nrparcf = itab_zycbt017-nrparcf
gsberf = itab_zycbt017-gsberf.
* >> Início da inclusão: FORM SELECIONA_COMISSAO
if sy-subrc = 0.
* << Fim da inclusão
IF itab_zycbt017-parvw EQ 'AR' OR
itab_zycbt017-parvw EQ 'AT'.
IF itab_zycbt089-liq_com_ar EQ 'L'.
IF itab_zycbt030-kwert = itab_zycbt030-vlsltrans.
CONTINUE.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycbt030-kwert = itab_zycbt030-vlsltrans.
MOVE 'Não Liquidada'(052) TO itab_selreg-statusf.
ENDIF.
IF itab_zycbt030-vlsltrans > 0 AND
itab_zycbt030-vlsltrans < itab_zycbt030-kwert.
MOVE 'Parc. Liquidada'(053) TO itab_selreg-statusf.
ENDIF.
IF itab_zycbt030-vlsltrans = 0.
* >> Início da inclusão: FORM SELECIONA_COMISSAO
move 'Total Liquidada'(054) to itab_selreg-statusf.
move 'X' to itab_selreg-fat_liq.
endif.
if not itab_zycbt089-liq_com_ar eq ' '.
move 'X' to itab_selreg-controle.
endif.
else.
perform verifica_fatura.
if not itab_selreg-fat_liq is initial.
* << Fim da inclusão
MOVE 'Total Liquidada'(054) TO itab_selreg-statusf.
* >> Início da inclusão: FORM SELECIONA_COMISSAO
else.
move 'Não Liquidada'(052) to itab_selreg-statusf.
endif.
* << Fim da inclusão
ENDIF.
IF itab_zycbt089-ver_averb = 'X'.
PERFORM verifica_averbacao.
IF v_averb = 'X'.
...
...
ENDIF.
ENDIF.
SORT itab_zycet013 BY nrseq lifnr gsber belnr.
REFRESH itab_nrinvoic.
LOOP AT itab_zycet013.
itab_nrinvoic-nrinvoic = itab_zycet013-nrseq.
APPEND itab_nrinvoic.
ENDLOOP.
DELETE ADJACENT DUPLICATES FROM itab_nrinvoic.
IF NOT itab_nrinvoic[] IS INITIAL.
* >> Início da inclusão: FORM SELECIONA_COMISSAO
select nrseq bukrs vbeln_vf from /pws/zycet002
appending table itab_zycet002
for all entries in itab_zycet013
where nrseq eq itab_zycet013-nrseq
and bukrs in empresa.
* << Fim da inclusão
SELECT * FROM /pws/zycbt017 INTO TABLE itab_zycbt017
FOR ALL ENTRIES IN itab_nrinvoic
WHERE nrinvoic EQ itab_nrinvoic-nrinvoic
AND bukrs IN empresa.
SELECT * FROM /pws/zycbt006 APPENDING TABLE itab_zycbt006
FOR ALL ENTRIES IN itab_nrinvoic
WHERE nrinvoic EQ itab_nrinvoic-nrinvoic
AND bukrs IN empresa. "#EC CI_NOFIRST
ENDIF.
IF NOT itab_zycbt017[] IS INITIAL.
...
...
DELETE itab_zycet013.
CONTINUE.
ENDIF.
CONCATENATE text-031 itab_zycet013-nrseq INTO v_tipo.
CLEAR: v_me, v_usd.
v_me = itab_zycet013-vlme.
READ TABLE itab_zycbt030
WITH KEY nrinvoic = itab_zycbt017-nrinvoic
nrparcf = itab_zycbt017-nrparcf
gsberf = itab_zycbt017-gsberf.
* >> Início da inclusão: FORM SELECIONA_COMISSAO
if sy-subrc = 0.
* << Fim da inclusão
IF itab_zycbt017-parvw EQ 'AR' OR
itab_zycbt017-parvw EQ 'AT'.
IF itab_zycbt089-liq_com_ar EQ 'L'.
IF itab_zycbt030-kwert = itab_zycbt030-vlsltrans.
CONTINUE.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycbt030-kwert = itab_zycbt030-vlsltrans.
MOVE text-052 TO itab_selreg-statusf.
ENDIF.
IF itab_zycbt030-vlsltrans NE 0 AND
itab_zycbt030-vlsltrans < itab_zycbt030-kwert.
MOVE text-053 TO itab_selreg-statusf.
ENDIF.
IF itab_zycbt030-vlsltrans = 0.
MOVE text-054 TO itab_selreg-statusf.
* >> Início da inclusão: FORM SELECIONA_COMISSAO
move 'X' to itab_selreg-fat_liq.
endif.
if not itab_zycbt089-liq_com_ar eq ' '.
move 'X' to itab_selreg-controle.
endif.
else.
perform verifica_fatura.
if not itab_selreg-fat_liq is initial.
move 'Total Liquidada'(054) to itab_selreg-statusf.
else.
move 'Não Liquidada'(052) to itab_selreg-statusf.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SELECIONA_COMISSAO
endif.
* << Fim da inclusão
IF itab_zycbt089-ver_averb = 'X'.
PERFORM verifica_averbacao.
IF v_averb = 'X'.
CONTINUE.
ENDIF.
ENDIF.
...
...
itab_zycbt086-nrfat TO itab_selreg-nrfat,
itab_zycbt086-txtinf TO itab_selreg-txtinf,
'EJ' TO itab_selreg-fmd.
APPEND itab_selreg.
ENDLOOP.
CLEAR: v_tipo, v_taxa_dia, itab_zycbt086, itab_selreg.
ENDIF.
ENDFORM.
FORM verifica_fatura.
DATA: v_vlliq LIKE /pws/zycbt006-vlme.
* >> Início da inclusão: FORM VERIFICA_FATURA
data: v_num10(10) type n.
* << Fim da inclusão
CLEAR: itab_selreg-fat_liq, itab_selreg-controle.
READ TABLE itab_t001 WITH KEY bukrs = itab_zycbt017-bukrs.
IF itab_t001-land1 NE 'BR'.
* >> Início da exclusão: FORM VERIFICA_FATURA
IF NOT itab_zycbt089-liq_com_ar EQ 'N'.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_FATURA
if not itab_zycbt089-liq_com_ar eq ' '.
* << Fim da inclusão
MOVE 'X' TO itab_selreg-controle.
ENDIF.
READ TABLE itab_zycet002 WITH KEY nrseq = itab_zycet010-nrseq.
IF sy-subrc NE 0.
READ TABLE itab_zycet002 WITH KEY nrseq = itab_zycet013-nrseq.
ENDIF.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM VERIFICA_FATURA
read table itab_bkpf with key bukrs = itab_zycet002-bukrs
awkey = itab_zycet002-vbeln_vf
awtyp = 'VBRK'
awsys = ' '.
if sy-subrc ne 0.
v_num10 = itab_zycet002-vbeln_vf.
itab_zycet002-vbeln_vf = v_num10.
* << Fim da inclusão
READ TABLE itab_bkpf WITH KEY bukrs = itab_zycet002-bukrs
awkey = itab_zycet002-vbeln_vf
awtyp = 'VBRK'
awsys = ' '.
* >> Início da inclusão: FORM VERIFICA_FATURA
endif.
* << Fim da inclusão
IF sy-subrc EQ 0.
READ TABLE itab_bsid WITH KEY bukrs = itab_bkpf-bukrs
gjahr = itab_bkpf-gjahr
belnr = itab_bkpf-belnr.
IF sy-subrc NE 0.
MOVE 'X' TO itab_selreg-fat_liq.
ENDIF.
ENDIF.
ENDIF.
ELSEIF itab_t001-land1 EQ 'BR'.
* >> Início da exclusão: FORM VERIFICA_FATURA
IF NOT itab_zycbt089-liq_com_ar EQ 'N'.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_FATURA
if not itab_zycbt089-liq_com_ar eq ' '.
* << Fim da inclusão
MOVE 'X' TO itab_selreg-controle.
ENDIF.
LOOP AT itab_zycbt006 WHERE nrinvoic = itab_zycbt017-nrinvoic
AND nrparcf = itab_zycbt017-nrparcf
AND gsberf = itab_zycbt017-gsberf.
v_vlliq = itab_zycbt006-vlme + v_vlliq.
ENDLOOP.
IF itab_zycbt017-vlavinc = v_vlliq.
MOVE 'X' TO itab_selreg-fat_liq.
ENDIF.
...