Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação em Andamento
Data/Hora da Publicação: 04/04/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 15:00:17
Descrição da Nota: DESENVOLVIMENTO ADICIONAL CONTABILIZAÇÕES DA LIQUIDAÇÃO EM ANDAMENTO
Sintoma
Na liquidação em andamento quando a fatura é prorrogada o programa não está calculando a nova data
de vencimento, ou seja, considera a data que o documento foi criado quando o correto é calcular a
"data de vencto + nr. dias". A conta que está sendo utilizada para este evento é a Transitória do
Razão.
Solução
Verificar se existe data de prorrogação na tabela /PWS/ZYCBT045, quando estiver parametrizado para
enviar ao Batch-input a data de vencimento no campo ZFBDT. Se existir, enviar a mesma, caso
contrário, enviar a data de vencimeno original(/PWS/ZYCBT017-DTVENCTO).
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01145 Data: 04/04/2006 Hora: 14:40:08
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01145
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00108
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
DESENVOLVIMENTO ADICIONAL CONTABILIZAÇÕES DA LIQUIDAÇÃO EM ANDAMENTO
----------------------------------------------------------------------------------------------------
Palavras Chave:
DESENVOLVIMENTO ADICIONAL CONTABILIZAÇÕES DA LIQUIDAÇÃO EM ANDAMENTO
ZFBDT E ZTERM
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB031F01
FUNC /PWS/ZYCB_TRANSACAO_F_30_V
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB031F01
...
v_desmemb = space.
v_erro = space.
LOOP AT itab_zycbt030 WHERE nrinvoic = itab_zycbt209-nrinvoic AND
nrparcf = itab_zycbt209-nrparcf AND
gsberf = itab_zycbt209-gsberf.
* >> Início da inclusão: FORM PROC_INCLUSAO
READ TABLE itab_zycbt017
WITH KEY
nrinvoic = itab_zycbt030-nrinvoic
nrparcf = itab_zycbt030-nrparcf
gsberf = itab_zycbt030-gsberf.
* << Fim da inclusão
itab_zycbt030-v_kwert =
( itab_zycbt030-kwert / itab_zycbt030-s_kwert )
* itab_zycbt209-vlme.
CLEAR v_wrbtr.
SELECT SINGLE wrbtr
...
...
itab_zycbt209-gsberf
itab_zycbt209-nrparcf
itab_zycbt209-dtincl
INTO v_cpochv.
itab_zycbe033-cpochv = v_cpochv.
* >> Início da exclusão: FORM PROC_INCLUSAO
IF itab_zyglt321[] IS INITIAL.
SELECT * FROM /pws/zyglt321
* << Fim da exclusão
* >> Início da inclusão: FORM PROC_INCLUSAO
SELECT *
FROM /pws/zyglt321
* << Fim da inclusão
INTO TABLE itab_zyglt321
* >> Início da exclusão: FORM PROC_INCLUSAO
WHERE ktosl = 'FTE'
AND codeven = '023'.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM PROC_INCLUSAO
WHERE
ktosl EQ 'TRE' AND
codeven EQ '023'.
* << Fim da inclusão
LOOP AT itab_zyglt321.
CASE itab_zyglt321-cpor3.
WHEN 'SGTXT'.
IF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
...
...
ELSEIF itab_zyglt321-cpocb = 'DTEMB'.
SELECT SINGLE dtemb FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
* >> Início da exclusão: FORM PROC_INCLUSAO
SELECT SINGLE dtvencto FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
* << Fim da exclusão
* >> Início da inclusão: FORM PROC_INCLUSAO
itab_zycbe033-zfbdt = itab_zycbt017-dtvencto.
* << Fim da inclusão
ENDIF.
WHEN 'VALUT'.
* >> Início da exclusão: FORM PROC_INCLUSAO
IF itab_zyglt321-cpocb = 'DTVENCTO'.
* << Fim da exclusão
* >> Início da inclusão: FORM PROC_INCLUSAO
CASE itab_zyglt321-cpocb.
WHEN 'DTBL'.
itab_zycbe033-d_valut = itab_zycbt017-dtbl.
WHEN 'DTVENCTO'.
* << Fim da inclusão
itab_zycbe033-d_valut = itab_zycbt017-dtvencto.
* >> Início da exclusão: FORM PROC_INCLUSAO
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM PROC_INCLUSAO
ENDCASE.
* << Fim da inclusão
WHEN 'ZUONR'.
IF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-d_zuonr = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
...
...
PERFORM verify_null_field USING itab_zycbt209-dtcredext
'BUDAT'
text-039.
itab_zycbe033-budat = itab_zycbt209-dtcredext.
itab_zycbe033-bldat = itab_zycbt209-dtcredext.
* >> Início da exclusão: FORM PROC_INCLUSAO
itab_zycbe033-d_valut = itab_zycbe033-budat.
* << Fim da exclusão
itab_zycbe033-bktxt = /pws/zycbt007-bktxt.
itab_zycbe033-bukrs = itab_zycbt209-bukrs.
itab_zycbe033-waers = itab_zycbt209-waers.
PERFORM verify_null_field USING /pws/zycbt011-blart
'BLART'
...
...
ELSEIF itab_zyglt321-cpocb = 'DTEMB'.
SELECT SINGLE dtemb FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
* >> Início da exclusão: FORM DESMEMBRA_CLIENTE
SELECT SINGLE dtvencto FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
* << Fim da exclusão
* >> Início da inclusão: FORM DESMEMBRA_CLIENTE
itab_zycbe033-zfbdt = itab_zycbt017-dtvencto.
* << Fim da inclusão
ENDIF.
WHEN 'VALUT'.
* >> Início da exclusão: FORM DESMEMBRA_CLIENTE
IF itab_zyglt321-cpocb = 'DTVENCTO'.
* << Fim da exclusão
* >> Início da inclusão: FORM DESMEMBRA_CLIENTE
CASE itab_zyglt321-cpocb.
WHEN 'DTBL'.
itab_zycbe033-d_valut = itab_zycbt017-dtbl.
WHEN 'DTVENCTO'.
* << Fim da inclusão
itab_zycbe033-d_valut = itab_zycbt017-dtvencto.
* >> Início da exclusão: FORM DESMEMBRA_CLIENTE
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM DESMEMBRA_CLIENTE
ENDCASE.
* << Fim da inclusão
WHEN 'ZUONR'.
IF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-d_zuonr = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
...
...
PERFORM verify_null_field USING itab_zycbt209-dtcredext
'BUDAT'
text-039.
itab_zycbe033-budat = itab_zycbt209-dtcredext.
itab_zycbe033-bldat = itab_zycbt209-dtcredext.
* >> Início da exclusão: FORM DESMEMBRA_CLIENTE
itab_zycbe033-d_valut = itab_zycbe033-budat.
* << Fim da exclusão
itab_zycbe033-bktxt = /pws/zycbt007-bktxt.
PERFORM verify_null_field USING itab_zycbt209-bukrs
'BUKRS'
text-043.
itab_zycbe033-bukrs = itab_zycbt209-bukrs.
...
...
INTO TABLE itab_zyglt321
WHERE ktosl = 'FTE'
AND codeven = '023'.
PERFORM clear_dados_batch.
READ TABLE itab_zycbt030 INDEX 1.
* >> Início da inclusão: FORM ESTORNA_AGRUPAMENTO
READ TABLE itab_zycbt017
WITH KEY
nrinvoic = itab_zycbt030-nrinvoic
nrparcf = itab_zycbt030-nrparcf
gsberf = itab_zycbt030-gsberf.
* << Fim da inclusão
itab_zycbe033-tcode = 'F-30'.
itab_zycbe033-tabela = '/PWS/ZYCBT209'.
CONCATENATE itab_zycbt030-nrinvoic itab_zycbt030-vbeln
itab_zycbt030-gsberf itab_zycbt030-nrparcf
INTO v_cpochv.
...
...
itab_zycbe033-bldat = itab_zycbt209-dtcredext.
ELSE.
itab_zycbe033-budat = sy-datum.
itab_zycbe033-bldat = sy-datum.
ENDIF.
* >> Início da exclusão: FORM ESTORNA_AGRUPAMENTO
itab_zycbe033-d_valut = itab_zycbe033-budat.
itab_zycbe033-zfbdt = itab_zycbe033-budat.
* << Fim da exclusão
LOOP AT itab_zyglt321.
CASE itab_zyglt321-cpor3.
WHEN 'SGTXT'.
IF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
...
...
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-xblnr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZFBDT'.
IF itab_zyglt321-cpocb = 'DTBL'.
* >> Início da inclusão: FORM ESTORNA_AGRUPAMENTO
itab_zycbe033-zfbdt = itab_zycbt017-dtbl.
* << Fim da inclusão
ELSEIF itab_zyglt321-cpocb = 'DTINCL'.
SELECT SINGLE dtincl FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTEMB'.
SELECT SINGLE dtemb FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
* >> Início da exclusão: FORM ESTORNA_AGRUPAMENTO
SELECT SINGLE dtvencto FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_AGRUPAMENTO
itab_zycbe033-zfbdt = itab_zycbt017-dtvencto.
* << Fim da inclusão
ENDIF.
WHEN 'VALUT'.
* >> Início da exclusão: FORM ESTORNA_AGRUPAMENTO
IF itab_zyglt321-cpocb = 'DTVENCTO'.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_AGRUPAMENTO
CASE itab_zyglt321-cpocb.
WHEN 'DTBL'.
itab_zycbe033-d_valut = itab_zycbt017-dtbl.
WHEN 'DTVENCTO'.
* << Fim da inclusão
itab_zycbe033-d_valut = itab_zycbt017-dtvencto.
* >> Início da exclusão: FORM ESTORNA_AGRUPAMENTO
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_AGRUPAMENTO
ENDCASE.
* << Fim da inclusão
WHEN 'ZUONR'.
IF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-d_zuonr = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
...
...
INTO TABLE itab_zyglt321
WHERE ktosl = 'FTE'
AND codeven = '023'.
PERFORM clear_dados_batch.
READ TABLE itab_zycbt030 INDEX 1.
* >> Início da inclusão: FORM ESTORNA_SEM_AGRUPAMENTO
READ TABLE itab_zycbt017
WITH KEY
nrinvoic = itab_zycbt030-nrinvoic
nrparcf = itab_zycbt030-nrparcf
gsberf = itab_zycbt030-gsberf.
* << Fim da inclusão
SELECT SINGLE wrbtr
FROM bsid
INTO v_wrbtr
WHERE belnr = itab_zycbt030-belnr6 AND
gjahr = itab_zycbt030-budat(4) AND
...
...
itab_zycbe033-bldat = itab_zycbt209-dtcredext.
ELSE.
itab_zycbe033-budat = sy-datum.
itab_zycbe033-bldat = sy-datum.
ENDIF.
* >> Início da exclusão: FORM ESTORNA_SEM_AGRUPAMENTO
itab_zycbe033-d_valut = itab_zycbe033-budat.
itab_zycbe033-zfbdt = itab_zycbe033-budat.
* << Fim da exclusão
LOOP AT itab_zyglt321.
CASE itab_zyglt321-cpor3.
WHEN 'SGTXT'.
IF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
...
...
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-xblnr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZFBDT'.
IF itab_zyglt321-cpocb = 'DTBL'.
* >> Início da inclusão: FORM ESTORNA_SEM_AGRUPAMENTO
itab_zycbe033-zfbdt = itab_zycbt017-dtbl.
* << Fim da inclusão
ELSEIF itab_zyglt321-cpocb = 'DTINCL'.
SELECT SINGLE dtincl FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTEMB'.
SELECT SINGLE dtemb FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
* >> Início da exclusão: FORM ESTORNA_SEM_AGRUPAMENTO
SELECT SINGLE dtvencto FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_SEM_AGRUPAMENTO
itab_zycbe033-zfbdt = itab_zycbt017-dtvencto.
* << Fim da inclusão
ENDIF.
WHEN 'VALUT'.
* >> Início da exclusão: FORM ESTORNA_SEM_AGRUPAMENTO
IF itab_zyglt321-cpocb = 'DTVENCTO'.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_SEM_AGRUPAMENTO
CASE itab_zyglt321-cpocb.
WHEN 'DTBL'.
itab_zycbe033-d_valut = itab_zycbt017-dtbl.
WHEN 'DTVENCTO'.
* << Fim da inclusão
itab_zycbe033-d_valut = itab_zycbt017-dtvencto.
* >> Início da exclusão: FORM ESTORNA_SEM_AGRUPAMENTO
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORNA_SEM_AGRUPAMENTO
ENDCASE.
* << Fim da inclusão
WHEN 'ZUONR'.
IF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-d_zuonr = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
...
...
CLEAR v_subrc.
LOOP AT itab_zycbt030
WHERE nrinvoic = itab_zycbt209-nrinvoic AND
gsberf = itab_zycbt209-gsberf AND
nrparcf = itab_zycbt209-nrparcf.
* >> Início da inclusão: FORM ESTORNA_SEM_AGRUPAMENTO
READ TABLE itab_zycbt017
WITH KEY
nrinvoic = itab_zycbt030-nrinvoic
nrparcf = itab_zycbt030-nrparcf
gsberf = itab_zycbt030-gsberf.
* << Fim da inclusão
PERFORM clear_dados_batch.
PERFORM clearing USING v_belnr
v_dtbelnr
'X'
v_total.
...
...
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-xblnr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZFBDT'.
IF itab_zyglt321-cpocb = 'DTBL'.
* >> Início da inclusão: FORM CLEARING
itab_zycbe033-zfbdt = itab_zycbt017-dtbl.
* << Fim da inclusão
ELSEIF itab_zyglt321-cpocb = 'DTINCL'.
SELECT SINGLE dtincl FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTEMB'.
SELECT SINGLE dtemb FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
* >> Início da exclusão: FORM CLEARING
SELECT SINGLE dtvencto FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING
itab_zycbe033-zfbdt = itab_zycbt017-dtvencto.
* << Fim da inclusão
ENDIF.
WHEN 'VALUT'.
* >> Início da exclusão: FORM CLEARING
IF itab_zyglt321-cpocb = 'DTVENCTO'.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING
CASE itab_zyglt321-cpocb.
WHEN 'DTBL'.
itab_zycbe033-d_valut = itab_zycbt017-dtbl.
WHEN 'DTVENCTO'.
* << Fim da inclusão
itab_zycbe033-d_valut = itab_zycbt017-dtvencto.
* >> Início da exclusão: FORM CLEARING
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM CLEARING
ENDCASE.
* << Fim da inclusão
WHEN 'ZUONR'.
IF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-d_zuonr = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
...
...
SELECT SINGLE buzei zterm zbd1t
FROM bsid
INTO (v_buzei, v_zterm, v_zbd1t)
WHERE belnr = itab_zycbt030-v_belnr
AND gjahr = itab_zycbt030-budat(4)
AND kunnr = itab_zycbt030-kunag
AND bukrs = itab_zycbt209-bukrs
AND shkzg = 'H'.
* << Início da inclusão: VERIFICA_PRORROGACAO_EST
IF sy-subrc NE 0.
SELECT SINGLE buzei zterm zbd1t
FROM bsad
INTO (v_buzei, v_zterm, v_zbd1t)
WHERE belnr = itab_zycbt030-v_belnr
AND gjahr = itab_zycbt030-budat(4)
AND kunnr = itab_zycbt030-kunag
AND bukrs = itab_zycbt209-bukrs
AND shkzg = 'H'. "Ch. 303207 Adhmann
ENDIF.
* >> Fim da inclusão
SELECT SINGLE ztag1 FROM t052
INTO v_ztag1
WHERE zterm = v_zterm.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_30_V
...
WRITE p_zterm TO v_zterm.
READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZTERM'
chave = 'D'.
IF sy-subrc <> 0. "Não está oculto
PERFORM bdc_field USING 'BSEG-ZTERM' v_zterm.
ENDIF.
ENDIF.
* Chamado 198391 - Renato Mendes - 18.11.2004 - Fim
* Cham 236558 - Início - Fábio Kazuo Hatanaka - 08.06.2005
IF p_umskz IS INITIAL
* >> Início da inclusão: FORM PREENCHE_TELA_D
and p_zbd1t > 0.
* >> Fim da inclusão
PERFORM bdc_field USING 'BSEG-ZBD1T' p_zbd1t.
ENDIF.
* Cham 236558 - Início - Fábio Kazuo Hatanaka - 08.06.2005
ENDFORM. " preenche_tela_d