Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Liquidação de Fatura
Data/Hora da Publicação: 25/04/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 11:57:25
Descrição da Nota: VINCULAÇÃO - LIQUIDAÇÃO CAMBIO PRONTO
Sintoma
O sistema nao estorna a liquidação de cambio pronto corretamente e não faz a liquidação automatica
de cambio pronto.
Solução
Foi adicionado o tratamento ao programa de vinculação/liquidação.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03538 Data: 25/04/2007 Hora: 10:45:30
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03538
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00163
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03478 - 00001 - 7.0 - 00001 - VINCULAÇÃO LIQ. AUT. / LIQUIDAÇÃO - CÂMBIO PRONTO - ARBITRAGEM
----------------------------------------------------------------------------------------------------
VINCULAÇÃO - LIQUIDAÇÃO CAMBIO PRONTO
----------------------------------------------------------------------------------------------------
Palavras Chave:
VINCULAÇÃO - LIQUIDAÇÃO CAMBIO PRONTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB004F02
REPS /PWS/MZYCB009F07
REPS /PWS/MZYCB009F09
REPS /PWS/MZYCB009TOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB004F02
...
itab_partidas-dtdocto = itab_zycbt226i-dtlancto2.
CONCATENATE 'Des. OP' itab_zycbt226i-nrseq
INTO itab_partidas-d_zuonr
SEPARATED BY space.
itab_partidas-v_sinal = '-'.
APPEND itab_partidas.
ENDLOOP.
IF sy-subrc = 0.
CLEAR itab_zycbe033-d_zuonr.
ENDIF.
* >> Início da inclusão: FORM BAIXA_CLIENTE_ACE
IF NOT itab_zycbt006-belnr_d IS INITIAL AND
itab_zycbt001-TPCONTR EQ 'C'.
CLEAR itab_zycbe033-d_zuonr.
ENDIF.
* << Fim da inclusão
SELECT * FROM /pws/zycbt084 INTO TABLE itab_zycbt084
WHERE nrseqc = itab_zycbt006-nrseqc.
LOOP AT itab_zycbt084 WHERE nrseqc = itab_zycbt006-nrseqc
AND nrinvoic = itab_zycbt006-nrinvoic
AND gsberf = itab_zycbt006-gsberf
AND nrparcf = itab_zycbt006-nrparcf
AND tdesmemb = 'O'.
READ TABLE itab_zycbt226i WITH KEY
nrseq = itab_zycbt084-nrseq_ordem.
IF sy-subrc = 0 AND itab_zycbt226i-belnr_op2 = itab_zycbt084-belnr.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F07
...
MOVE itab_zycbt005 TO wa_zycbt005.
LOOP AT itab_zycbt030 WHERE nrinvoic = wa_zycbt005-nrinvoic AND
nrparcf = wa_zycbt005-nrparcf AND
gsberf = wa_zycbt005-gsberf.
itab_zycbt030-v_kwert = ( itab_zycbt030-kwert /
itab_zycbt030-s_kwert ) *
wa_zycbt005-vlme_p.
MODIFY itab_zycbt030.
PERFORM lanca_cp.
ENDLOOP.
* >> Início da exclusão: FORM FILL_DATE1_F30_CP
PERFORM clearing_030.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATE1_F30_CP
PERFORM desmembra_ace_cp.
perform clearing_030_cp.
* << Fim da inclusão
MODIFY /pws/zycbt030 FROM TABLE itab_zycbt030.
COMMIT WORK.
MOVE wa_zycbt005 TO itab_zycbt005.
MODIFY itab_zycbt005.
ELSE.
PERFORM contabiliza_cp_arbitr.
ENDIF.
ENDLOOP.
/pws/zycbe001-slpagar = /pws/zycbe001-slvinc.
PERFORM clear_date_batch.
...
...
ENDLOOP.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.
FORM lanca_cp.
* >> Início da inclusão: FORM LANCA_CP
DATA: v_vinc_tot(1) TYPE c,
v_subrc LIKE sy-subrc,
v_wrbtr LIKE bsid-wrbtr,
v_kunnr TYPE kunnr,
v_dtliquid LIKE /pws/zycbt006-dtpagto,
v_dtemb LIKE /pws/zycet001-dtemb.
DATA: BEGIN OF itab_bsid OCCURS 0.
INCLUDE STRUCTURE bsid.
DATA: END OF itab_bsid.
check itab_zycbt034[] is initial.
* << Fim da inclusão
READ TABLE itab_zycbt017 WITH KEY nrinvoic = wa_zycbt005-nrinvoic
nrparcf = wa_zycbt005-nrparcf
gsberf = wa_zycbt005-gsberf.
PERFORM encontra_documento.
PERFORM clear_date_batch.
CONCATENATE wa_zycbt005-nrseqc wa_zycbt005-tpdesp
wa_zycbt005-nrparc wa_zycbt005-dtincl
wa_zycbt005-nrinvoic wa_zycbt005-gsberf
wa_zycbt005-dtvincul wa_zycbt005-dtvencto
wa_zycbt005-nrparcf
...
...
text-003.
itab_zycbe033-budat = wa_zycbt005-dtvincul.
IF /pws/zycbe001-tpcontr EQ 'C ' AND
wa_zycbt007-liq_cp EQ 'X'.
MOVE /pws/zycbe006-dtpagto TO itab_zycbe033-budat.
ENDIF.
IF wa_zycbt007-fdtdoc = 'D'.
itab_zycbe033-bldat = sy-datum.
ELSE.
itab_zycbe033-bldat = itab_zycbe033-budat.
* >> Início da inclusão: FORM LANCA_CP
ENDIF.
IF NOT wa_zycbt011-agums IS INITIAL.
itab_zycbe033-agums = wa_zycbt011-agums.
ENDIF.
IF itab_zycbt006-ftxt IS INITIAL.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
ELSE.
itab_zycbe033-augtx = itab_zycbt005-txtinf.
itab_zycbe033-d_sgtxt = itab_zycbt005-txtinf.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM LANCA_CP
itab_zycbe033-c_sgtxt = itab_zycbt006-nrinvoic.
itab_zycbe033-c_zuonr = itab_zycbt030-vbeln.
* << Fim da inclusão
REFRESH itab_zyglt321.
SELECT * FROM /pws/zyglt321
INTO TABLE itab_zyglt321
WHERE ktosl = 'CPT'
AND codeven = v_codeven.
...
...
ENDLOOP.
itab_zycbe033-bktxt = wa_zycbt007-bktxt.
PERFORM verify_null_field USING wa_zycbt005-bukrs
'BUKRS'
text-004.
itab_zycbe033-bukrs = wa_zycbt005-bukrs.
PERFORM verify_null_field USING wa_zycbt005-waers_c
'WAERS'
text-005.
itab_zycbe033-waers = wa_zycbt005-waers_c.
* >> Início da inclusão: FORM LANCA_CP
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt005-bukrs
v_date = itab_zycbt030-budat
IMPORTING
v_year = v_year
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
v_gjahr = v_year.
v_data = itab_zycbt030-budat_t.
CLEAR: itab_bsid,
v_wrbtr.
REFRESH itab_bsid.
SELECT SUM( wrbtr ) FROM bsid INTO v_wrbtr
WHERE belnr = itab_zycbt030-belnr
AND gjahr = v_year
AND kunnr = itab_zycbt005-kunnr
AND bukrs = itab_zycbt005-bukrs.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt005-bukrs
v_date = v_data
IMPORTING
v_year = v_year
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
SELECT SINGLE budat
FROM bkpf
INTO itab_zycbe033-dtdocto
WHERE bukrs = itab_zycbt005-bukrs
AND belnr = itab_zycbt030-belnr
AND gjahr = v_year.
* << Fim da inclusão
PERFORM verify_null_field USING wa_zycbt011-blart
'BLART'
text-006.
itab_zycbe033-blart = wa_zycbt011-blart.
* >> Início da exclusão: FORM LANCA_CP
IF wa_zycbt007-liq_trans IS INITIAL.
itab_zycbe033-agkon = itab_zycbt017-kunag.
ELSE.
CLEAR itab_zycbt012_trans.
READ TABLE itab_zycbt012_trans WITH KEY codeven = '023'
codmod = 'E'
chlanc = 'D'
tpcodaux = 'G'.
IF sy-subrc EQ 0.
itab_zycbe033-agkon = itab_zycbt012_trans-codaux.
ENDIF.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM LANCA_CP
itab_zycbe033-d_newko = itab_zycbt005-kunnr.
* << Fim da inclusão
* >> Início da exclusão: FORM LANCA_CP
CLEAR itab_zycbt012.
READ TABLE itab_zycbt012 WITH KEY codeven = v_codeven
codmod = 'E'
chlanc = 'D'
tpcodaux = 'G'
codaux = ''
codaux2 = 'C'.
itab_zycbe033-d_newko = itab_zycbt012-saknr1.
* << Fim da exclusão
IF wa_zycbt007-dtliqcp NE 'DTCONTR' AND
wa_zycbt007-dtliqcp NE 'TXCONTR'.
itab_zycbe033-kursf = wa_zycbt005-txcamb.
ELSE.
itab_zycbe033-kursf = /pws/zycbe001-txcneg.
ENDIF.
PERFORM verify_null_field USING itab_zycbe033-kursf
'TXCAMB'
text-080.
itab_zycbe033-wrbtr = itab_zycbt030-v_kwert.
itab_zycbe033-c_gsber = wa_zycbt005-gsberf.
itab_zycbe033-d_gsber = wa_zycbt005-gsberf.
itab_zycbe033-agkoa = 'D'.
IF itab_zycbt030-flag <> 'X'.
* >> Início da exclusão: FORM LANCA_CP
itab_zycbe033-newbs = '40'.
* << Fim da exclusão
* >> Início da inclusão: FORM LANCA_CP
itab_zycbe033-newbs = '01'.
* << Fim da inclusão
ELSE.
* >> Início da exclusão: FORM LANCA_CP
itab_zycbe033-newbs = '50'.
* << Fim da exclusão
* >> Início da inclusão: FORM LANCA_CP
itab_zycbe033-newbs = '12'.
ENDIF.
itab_zycbt036-tcode = itab_zycbe033-tcode.
itab_zycbt036-tabela = itab_zycbe033-tabela.
itab_zycbt036-cpochv = itab_zycbe033-cpochv.
itab_zycbt036-residuo = itab_zycbe033-wrbtr.
CONCATENATE 'Des.' itab_zycbt005-nrinvoic itab_zycbt005-nrparcf
INTO itab_zycbt036-zuonr
SEPARATED BY space.
APPEND itab_zycbt036.
itab_doctos-tcode = itab_zycbe033-tcode.
itab_doctos-tabela = itab_zycbe033-tabela.
itab_doctos-cpochv = itab_zycbe033-cpochv.
itab_doctos-belnr = itab_zycbe033-belnr.
itab_doctos-dtdocto = itab_zycbe033-dtdocto.
APPEND itab_doctos.
IF v_wrbtr = itab_zycbe033-wrbtr OR
itab_zycbt030-vlsltrans = itab_zycbe033-wrbtr.
v_vinc_tot = 'X'.
* << Fim da inclusão
ENDIF.
itab_zycbe033-belnr = itab_zycbt030-v_belnr.
IF NOT /pws/zycbe005-j_1bbranch IS INITIAL.
PERFORM verifica_pais_filial USING /pws/zycbe005-bukrs
/pws/zycbe005-j_1bbranch.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
ELSE.
PERFORM local_negocio.
PERFORM verifica_pais_filial USING /pws/zycbe005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
ENDIF.
APPEND itab_zycbe033.
IF itab_zycbt034 IS INITIAL.
* >> Início da exclusão: FORM LANCA_CP
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_A'
* << Fim da exclusão
* >> Início da inclusão: FORM LANCA_CP
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_P'
* << Fim da inclusão
EXPORTING
v_modo = v_modo_bi
* >> Início da inclusão: FORM LANCA_CP
v_vinc_tot = v_vinc_tot
* << Fim da inclusão
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
* >> Início da inclusão: FORM LANCA_CP
t_doctos = itab_doctos
* << Fim da inclusão
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
READ TABLE itab_zycbt032 WITH KEY tcode = 'F-30'
tabela = '/PWS/ZYCBT006'
cpochv = v_cpochv
tpmsg = 'S'.
IF sy-subrc = 0.
itab_belnr-nrinvoic = wa_zycbt005-nrinvoic.
...
...
itab_zycbt030-budat_t = wa_zycbt005-dtvincul.
itab_zycbt030-vlslliq = itab_zycbt030-vlslliq -
itab_zycbt030-v_kwert.
ENDIF.
MODIFY itab_zycbt030 TRANSPORTING belnr6 budat belnr_t
budat_t vlslliq
WHERE nrinvoic = itab_zycbt030-nrinvoic
AND nrparcf = itab_zycbt030-nrparcf
AND gsberf = itab_zycbt030-gsberf
AND vbeln = itab_zycbt030-vbeln.
* >> Início da inclusão: FORM LANCA_CP
itab_zycbt030-belnr_d = itab_zycbt032-belnr.
* << Fim da inclusão
itab_contabil-nrinvoic = itab_zycbt030-nrinvoic.
itab_contabil-nrparcf = itab_zycbt030-nrparcf.
itab_contabil-vbeln = itab_zycbt030-vbeln.
itab_contabil-gsberf = itab_zycbt030-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-dtdocto = wa_zycbt005-dtvincul.
itab_contabil-bukrs = wa_zycbt005-bukrs.
itab_contabil-msg = text-237.
APPEND itab_contabil.
ELSE.
...
...
itab_zycbe033-c_prctr = itab_zycbt005-prctr.
itab_zycbe033-c_fipos = itab_zycbt005-fipos.
PERFORM verifica_pais_filial USING itab_zycbt006-bukrs
itab_zycbt005-j_1bbranch.
itab_zycbe033-brnch = itab_zycbt005-j_1bbranch.
IF itab_selreg-codp <> 'G'.
itab_zycbe033-d_kostl = itab_zycbt005-kostl.
itab_zycbe033-c_kostl = itab_zycbt005-kostl.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM desmembra_ace_cp.
TABLES: /pws/zycbt074.
DATA: v_subrc LIKE sy-subrc.
DATA: v_nrdias TYPE i,
v_prazo,
v_banco_d LIKE /pws/zycbt001-bconegoc,
v_wrbtr TYPE wrbtr,
v_wrbtr1 TYPE wrbtr,
v_shkzg TYPE shkzg,
v_data TYPE datum,
v_dtliquid LIKE /pws/zycbt006-dtpagto,
v_dtcontr LIKE /pws/zycbt001-dtcontr,
v_codaux LIKE /pws/zyglt316-codaux1,
v_dp TYPE c VALUE IS INITIAL,
v_tpcontr LIKE /pws/zycbt016-txtdesc.
CLEAR itab_doctos.
REFRESH itab_doctos.
check itab_zycbt034[] is initial.
PERFORM clear_date_batch.
CLEAR: v_data.
Select single * From /pws/zycbt001
into /pws/zycbt001
where bukrs = itab_zycbt005-bukrs
and nrseqc = itab_zycbt005-NRSEQC.
CONCATENATE '003' itab_zycbt005-tpcontr INTO v_codeven.
CLEAR itab_zyglt321.
REFRESH itab_zyglt321.
SELECT * FROM /pws/zyglt321
INTO TABLE itab_zyglt321
WHERE ktosl = 'CPT'
AND codeven = v_codeven.
itab_zycbe033-tcode = 'F-30'.
itab_zycbe033-tabela = 'ZYCBT006'.
CONCATENATE itab_zycbt005-nrseqc
/pws/zycbe006-dtpagto
itab_zycbt005-nrinvoic
itab_zycbt005-dtvincul
itab_zycbt005-nrparcf
INTO v_cpochv.
itab_zycbe033-cpochv = v_cpochv.
PERFORM verify_null_field USING /pws/zycbe006-dtpagto
'DTPAGTO'
text-003.
itab_zycbe033-budat = /pws/zycbe006-dtpagto.
itab_zycbe033-bldat = /pws/zycbe006-dtpagto.
itab_zycbe033-d_valut = itab_zycbe033-budat.
READ TABLE itab_zycbt030 WITH KEY nrinvoic = itab_zycbt005-nrinvoic
nrparcf = itab_zycbt005-nrparcf.
itab_zycbe033-c_zuonr = itab_zycbt030-vbeln.
READ TABLE itab_zycbt017 WITH KEY nrinvoic = itab_zycbt005-nrinvoic
gsberf = itab_zycbt005-gsberf.
LOOP AT itab_zyglt321.
CASE itab_zyglt321-cpor3.
WHEN 'SGTXT'.
IF itab_zyglt321-cpocb = 'V_TXTINF'.
itab_zycbe033-d_sgtxt = v_txtinf.
itab_zycbe033-c_sgtxt = v_txtinf.
itab_zycbe033-augtx = v_txtinf.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
itab_zycbt006-ftxt IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-d_sgtxt = itab_zyglt321-descr.
itab_zycbe033-c_sgtxt = itab_zyglt321-descr.
itab_zycbe033-augtx = itab_zyglt321-descr.
ENDIF.
WHEN 'XBLNR'.
IF itab_zyglt321-cpocb = 'NRSEQ' OR
itab_zyglt321-cpocb = 'NRSEQC'.
itab_zycbe033-xblnr = /pws/zycbe001-nrseqc.
ELSEIF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-xblnr = /pws/zycbe001-nrcontr.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-xblnr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZFBDT'.
IF itab_zyglt321-cpocb = 'DTBL'.
itab_zycbe033-zfbdt = itab_zycbt017-dtbl.
ELSEIF itab_zyglt321-cpocb = 'DTINCL'.
SELECT SINGLE dtincl FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt005-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTEMB'.
SELECT SINGLE dtemb FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt005-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
SELECT SINGLE dtvencto FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVINCUL'.
itab_zycbe033-zfbdt = /pws/zycbe005-dtvincul.
ENDIF.
WHEN 'VALUT'.
IF itab_zyglt321-cpocb = 'DTVENCTO'.
itab_zycbe033-d_valut = itab_zycbt017-dtvencto.
ENDIF.
WHEN 'ZUONR'.
IF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.
ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.
itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-d_zuonr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZTERM'.
IF itab_zyglt321-cpocb = 'ZTERM'.
itab_zycbe033-zterm = itab_zycbt017-zterm.
ENDIF.
ENDCASE.
ENDLOOP.
itab_zycbe033-bktxt = wa_zycbt007-bktxt.
PERFORM verify_null_field
USING itab_zycbt005-bukrs 'BUKRS' text-004.
itab_zycbe033-bukrs = itab_zycbt005-bukrs.
PERFORM verify_null_field USING itab_zycbt005-waers
'WAERS'
text-005.
itab_zycbe033-waers = itab_zycbt005-waers.
itab_zycbe033-d_gsber = itab_zycbt005-gsber.
itab_zycbe033-c_gsber = itab_zycbe033-d_gsber.
CLEAR itab_zycbt012.
CONCATENATE '003' itab_zycbt005-tpcontr INTO v_codeven.
CASE itab_zycbt005-tpcontr+0(1).
WHEN 'A' OR 'E' OR 'C'.
PERFORM verify_null_field USING itab_zycbt005-bconegoc
'BCONEGOC'
text-001.
v_banco_d = itab_zycbt005-bconegoc.
WHEN 'P' OR 'S'.
PERFORM verify_null_field USING itab_zycbt005-bcofinan
'BCOFINAN'
text-002.
v_banco_d = itab_zycbt005-bcofinan.
ENDCASE.
itab_zycbe033-blart = wa_zycbt011-blart.
IF NOT /pws/zycbt017-dtbl IS INITIAL.
PERFORM define_cambio USING /pws/zycbt017-dtbl
itab_zycbt005-waers
wa_zycbt007-waersb
itab_zycbe033-kursf.
ENDIF.
v_nrdias = /pws/zycbe006-dtpagto - itab_zycbt005-dtvincul.
IF v_nrdias > 360.
v_prazo = 'L'.
ELSE.
v_prazo = 'S'.
ENDIF.
IF /pws/zycbe001-desc_receb IS INITIAL.
CONCATENATE itab_zycbt005-tpcontr v_prazo
INTO v_codaux SEPARATED BY space.
CLEAR v_tpcontr.
ELSE.
v_codaux = 'DR'.
CLEAR v_tpcontr.
ENDIF.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
bukrs = itab_zycbt005-bukrs
ktosl = 'CPT'
codaux1 = v_codaux
codaux2 = ' '
TABLES
account = itab_zyglt316
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_zyglt316 INDEX 1.
IF /pws/zycbe001-desc_receb IS INITIAL.
itab_zycbe033-d_newko = itab_zyglt316-konth.
ELSE.
itab_zycbe033-d_newko = itab_zyglt316-konts.
ENDIF.
PERFORM verify_null_field USING itab_zycbe033-d_newko
'SAKNR'
text-010.
ENDIF.
itab_zycbe033-newbs = '50'.
CLEAR v_wrbtr.
IF /pws/zycbe001-belnr2 IS INITIAL.
CASE /pws/zycbe001-fdtlanc.
WHEN 'O'.
v_data = /pws/zycbe001-dtcontr.
WHEN 'D'.
v_data = /pws/zycbe001-dtdesem.
WHEN OTHERS.
v_data = /pws/zycbe001-dtcred.
ENDCASE.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = /pws/zycbt001-bukrs
v_date = v_data
IMPORTING
v_year = v_year
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
SELECT wrbtr shkzg
FROM bseg
INTO (v_wrbtr1, v_shkzg)
WHERE belnr = /pws/zycbe001-belnr AND
bukrs = /pws/zycbt001-bukrs AND
gjahr = v_year AND
hkont = itab_zycbe033-d_newko AND
augbl = ' '.
IF v_shkzg EQ 'H'.
v_wrbtr = v_wrbtr + v_wrbtr1.
ELSE.
v_wrbtr = v_wrbtr - v_wrbtr1.
ENDIF.
ENDSELECT.
ENDIF.
IF itab_zycbe033-d_sgtxt IS INITIAL.
IF itab_zycbt006-ftxt IS INITIAL.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.
ELSE.
itab_zycbe033-augtx = itab_zycbt005-txtinf.
itab_zycbe033-d_sgtxt = itab_zycbt005-txtinf.
itab_zycbe033-c_sgtxt = itab_zycbt005-txtinf.
ENDIF.
ENDIF.
IF itab_zycbt005-tpcontr(1) CA 'CE' AND
/pws/zycbe001-desc_receb IS INITIAL.
IF /pws/zycbe001-belnr2 IS INITIAL.
CASE /pws/zycbe001-fdtlanc.
WHEN 'O'.
v_data = /pws/zycbe001-dtcontr.
WHEN 'D'.
v_data = /pws/zycbe001-dtdesem.
WHEN OTHERS.
v_data = /pws/zycbe001-dtcred.
ENDCASE.
itab_zycbe033-belnr = /pws/zycbe001-belnr.
itab_zycbe033-dtdocto = v_data.
ELSE.
itab_zycbe033-belnr = /pws/zycbe001-belnr2.
SELECT SINGLE * FROM /pws/zycbt074
WHERE nrseqc = /pws/zycbe001-nrseqc.
IF NOT /pws/zycbt074-dtcont IS INITIAL.
itab_zycbe033-dtdocto = /pws/zycbt074-dtcont.
ELSE.
itab_zycbe033-dtdocto = itab_zycbt005-dtvincul.
ENDIF.
ENDIF.
ELSE.
itab_zycbe033-belnr = itab_zycbt005-belnr.
itab_zycbe033-dtdocto = itab_zycbt005-dtbelnr.
ENDIF.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = 'ZYCBT006'.
itab_zycbt036-cpochv = itab_zycbe033-cpochv.
itab_zycbt036-residuo = itab_zycbt005-vlme_p.
CONCATENATE 'Des.' itab_zycbt005-nrinvoic itab_zycbt005-nrparcf
INTO itab_zycbt036-zuonr
SEPARATED BY space.
IF /pws/zycbe001-desc_receb IS INITIAL.
itab_zycbt036-belnr = itab_zycbe033-belnr.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = /pws/zycbe001-bukrs
v_date = itab_zycbe033-dtdocto
IMPORTING
v_year = v_year
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
SELECT SINGLE * FROM bkpf
WHERE bukrs = /pws/zycbt001-bukrs
AND belnr = itab_zycbt036-belnr
AND gjahr = v_year.
itab_zycbt036-dtdocto = bkpf-budat.
ELSE.
itab_zycbt036-belnr = /pws/zycbe001-belnr2.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = /pws/zycbt001-bukrs
v_date = itab_zycbt005-dtbelnr
IMPORTING
v_year = v_year
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
SELECT SINGLE * FROM bkpf
WHERE bukrs = /pws/zycbt001-bukrs
AND belnr = itab_zycbt036-belnr
AND gjahr = v_year.
itab_zycbt036-dtdocto = bkpf-budat.
ENDIF.
APPEND itab_zycbt036.
LOOP AT itab_zycbt069 WHERE nrseqc = itab_zycbt006-nrseqc
AND nrinvoic = itab_zycbt006-nrinvoic
AND dtvincul = itab_zycbt006-dtvincul
AND gsberf = itab_zycbt006-gsberf
AND nrparcf = itab_zycbt006-nrparcf.
itab_doctos-tcode = 'F-30'.
itab_doctos-tabela = 'ZYCBT006'.
itab_doctos-cpochv = itab_zycbe033-cpochv.
IF itab_zycbt069-belnr IS INITIAL.
itab_doctos-belnr = itab_zycbt069-belnr_vinc.
ELSE.
itab_doctos-belnr = itab_zycbt069-belnr.
ENDIF.
itab_doctos-dtdocto = itab_zycbt005-dtbelnr.
CHECK NOT itab_doctos-belnr IS INITIAL.
COLLECT itab_doctos.
ENDLOOP.
IF itab_zycbt005-tpcontr(1) CA 'CE' AND
itab_zycbt005-vlme_p EQ v_wrbtr AND
itab_zycbt005-slpagar IS INITIAL AND
/pws/zycbe001-desc_receb IS INITIAL.
itab_zycbe033-flag_nc = 'X'.
ENDIF.
IF NOT /pws/zycbe005-j_1bbranch IS INITIAL.
PERFORM verifica_pais_filial USING wa_zycbt005-bukrs
/pws/zycbe005-j_1bbranch.
itab_zycbe033-brnch = /pws/zycbe005-j_1bbranch.
ELSE.
PERFORM local_negocio.
PERFORM verifica_pais_filial USING wa_zycbt005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
ENDIF.
itab_zycbe033-werks = /pws/zycbe005-werks.
itab_zycbe033-d_fipos = /pws/zycbe005-fipos.
itab_zycbe033-c_fipos = /pws/zycbe005-fipos.
APPEND itab_zycbe033.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
IF itab_zycbt034 IS INITIAL.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_P'
EXPORTING
v_modo = v_modo_bi
v_dp = v_dp
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
t_doctos = itab_doctos
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE itab_zycbt032 WITH KEY tcode = 'F-30'
tabela = 'ZYCBT006'
cpochv = itab_zycbe033-cpochv
tpmsg = 'S'.
IF sy-subrc EQ 0.
wa_zycbt005-belnr = itab_zycbt032-belnr.
LOOP AT itab_zycbt069 WHERE nrseqc = wa_zycbt005-nrseqc
AND nrinvoic = wa_zycbt005-nrinvoic
AND dtvincul = wa_zycbt005-dtvincul
AND gsberf = wa_zycbt005-gsberf
AND nrparcf = wa_zycbt005-nrparcf.
itab_zycbt069-belnr = itab_zycbt032-belnr.
MODIFY itab_zycbt069.
ENDLOOP.
IF wa_zycbt005-tpcontr(1) CA 'CE'.
/pws/zycbe001-belnr2 = wa_zycbt005-belnr.
/pws/zycbe001-dtvincul = wa_zycbt005-dtvincul.
ENDIF.
itab_contabil-nrinvoic = wa_zycbt005-nrinvoic.
CLEAR itab_contabil-vbeln.
itab_contabil-nrparcf = wa_zycbt005-nrparcf.
itab_contabil-gsberf = itab_zycbe033-c_gsber.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-msg = text-325.
itab_contabil-dtdocto = /pws/zycbe006-dtpagto.
itab_contabil-bukrs = itab_zycbe033-bukrs.
APPEND itab_contabil.
v_subrc = 0.
CLEAR /pws/zycbt084.
/pws/zycbt084-nrseqc = wa_zycbt005-nrseqc.
/pws/zycbt084-tpdesp = wa_zycbt005-tpdesp.
/pws/zycbt084-nrparc = wa_zycbt005-nrparc.
/pws/zycbt084-dtincl = wa_zycbt005-dtincl.
/pws/zycbt084-nrinvoic = wa_zycbt005-nrinvoic.
/pws/zycbt084-nrparcf = wa_zycbt005-nrparcf.
/pws/zycbt084-gsberf = wa_zycbt005-gsberf.
/pws/zycbt084-dtvincul = wa_zycbt005-dtvincul.
/pws/zycbt084-dtvencto = wa_zycbt005-dtvencto.
/pws/zycbt084-dtpagto = /pws/zycbe006-dtpagto.
/pws/zycbt084-vbeln = itab_zycbt030-vbeln.
/pws/zycbt084-belnr = itab_zycbt032-belnr.
/pws/zycbt084-liq_and = space.
/pws/zycbt084-tdesmemb = 'E'.
MODIFY /pws/zycbt084 FROM /pws/zycbt084.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = 'ZYCBT006'
AND cpochv = itab_zycbe033-cpochv.
itab_erro-vbeln = wa_zycbt005-belnr.
itab_erro-msg = itab_zycbt032-msg.
APPEND itab_erro.
ENDLOOP.
v_subrc = 4.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
v_subrc = 4.
ENDIF.
ELSE.
v_subrc = 4.
ENDIF.
sy-subrc = v_subrc.
ENDFORM.
form clearing_030_cp.
DATA: v_nrdias TYPE i,
v_prazo,
v_banco_d LIKE /pws/zycbt001-bconegoc,
v_belnr_cap LIKE /pws/zycbt006-belnr,
v_codaux LIKE /pws/zyglt316-codaux1,
v_tpcontr LIKE /pws/zycbt001-tpcontr,
v_contas_iguais(1) TYPE c,
v_contador TYPE n.
DATA: begin of itab_zycbt074 occurs 0.
include structure /pws/zycbt074.
DATA: end of itab_zycbt074.
DATA: begin of itab_zycbt084 occurs 0.
include structure /pws/zycbt084.
DATA: end of itab_zycbt084.
check itab_zycbt034[] is initial.
PERFORM clear_date_batch.
SELECT SINGLE * FROM /pws/zycbt001
where bukrs = wa_zycbt005-bukrs
and nrseqc = wa_zycbt005-nrseqc.
CONCATENATE '003' wa_zycbt005-tpcontr INTO v_codeven.
CLEAR: v_data,
v_codeven.
CONCATENATE '003' wa_zycbt005-tpcontr INTO v_codeven.
CLEAR itab_zyglt321.
REFRESH itab_zyglt321.
SELECT * FROM /pws/zyglt321
INTO TABLE itab_zyglt321
WHERE ktosl = 'CPT'
AND codeven = v_codeven.
itab_zycbe033-tcode = 'F-30'.
itab_zycbe033-tabela = 'ZYCBT006'.
CONCATENATE itab_zycbt005-nrseqc itab_zycbt005-tpdesp
itab_zycbt005-nrparc itab_zycbt005-dtincl
itab_zycbt005-nrinvoic itab_zycbt005-gsberf
itab_zycbt005-dtvincul itab_zycbt005-dtvencto
/pws/zycbe006-dtpagto itab_zycbt005-nrparcf
INTO v_cpochv.
itab_zycbe033-cpochv = v_cpochv.
PERFORM verify_null_field USING /pws/zycbe006-dtpagto
'DTPAGTO'
text-003.
itab_zycbe033-budat = /pws/zycbe006-dtpagto.
itab_zycbe033-bldat = /pws/zycbe006-dtpagext.
itab_zycbe033-d_zuonr = wa_zycbt011-txtdesc.
READ TABLE itab_zycbt017 WITH KEY nrinvoic = wa_zycbt005-nrinvoic
nrparcf = wa_zycbt005-nrparcf
gsberf = wa_zycbt005-gsberf.
LOOP AT itab_zyglt321.
CASE itab_zyglt321-cpor3.
WHEN 'SGTXT'.
IF itab_zyglt321-cpocb = 'V_TXTINF'.
itab_zycbe033-d_sgtxt = v_txtinf.
itab_zycbe033-augtx = v_txtinf.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
itab_zycbt006-ftxt IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-d_sgtxt = itab_zyglt321-descr.
itab_zycbe033-augtx = itab_zyglt321-descr.
ENDIF.
WHEN 'XBLNR'.
IF itab_zyglt321-cpocb = 'NRSEQ' OR
itab_zyglt321-cpocb = 'NRSEQC'.
itab_zycbe033-xblnr = /pws/zycbe001-nrseqc.
ELSEIF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-xblnr = /pws/zycbe001-nrcontr.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-xblnr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZFBDT'.
IF itab_zyglt321-cpocb = 'DTBL'.
itab_zycbe033-zfbdt = itab_zycbt017-dtbl.
ELSEIF itab_zyglt321-cpocb = 'DTINCL'.
SELECT SINGLE dtincl FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt005-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTEMB'.
SELECT SINGLE dtemb FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt005-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVENCTO'.
SELECT SINGLE dtvencto FROM /pws/zycet001
INTO itab_zycbe033-zfbdt
WHERE nrseq = itab_zycbt030-nrinvoic.
ELSEIF itab_zyglt321-cpocb = 'DTVINCUL'.
itab_zycbe033-zfbdt = wa_zycbt005-dtvincul.
ENDIF.
WHEN 'VALUT'.
IF itab_zyglt321-cpocb = 'DTVENCTO'.
itab_zycbe033-d_valut = itab_zycbt017-dtvencto.
ENDIF.
WHEN 'ZUONR'.
IF itab_zyglt321-cpocb = 'NRCONTR'.
itab_zycbe033-d_zuonr = /pws/zycbe001-nrcontr.
ELSEIF itab_zyglt321-cpocb = 'NRSEQ'.
itab_zycbe033-d_zuonr = /pws/zycbe001-nrseqc.
ELSEIF itab_zyglt321-cpocb IS INITIAL AND
NOT itab_zyglt321-descr IS INITIAL.
itab_zycbe033-d_zuonr = itab_zyglt321-descr.
ENDIF.
WHEN 'ZTERM'.
IF itab_zyglt321-cpocb = 'ZTERM'.
itab_zycbe033-zterm = itab_zycbt017-zterm.
ENDIF.
ENDCASE.
ENDLOOP.
PERFORM get_parameters_003.
itab_zycbe033-d_gsber = wa_zycbt005-gsberf.
SELECT SINGLE dtemb kurrf_bl viatrans dtaverb dtcruze nrseq
FROM /pws/zycet001
INTO (v_dtemb, v_kurrf_bl, v_viatrans, v_dtaverb2, v_dtcruze,
v_nrseq)
WHERE nrseq EQ wa_zycbt005-nrinvoic.
IF wa_zycbt007-dtliqcp EQ 'DTCONTR' AND
/pws/zycbe001-tpcontr(1) EQ 'C'.
itab_zycbe033-kursf = /pws/zycbe001-txcneg.
ELSEIF wa_zycbt007-dtliqcp EQ 'TXCONTR' AND
/pws/zycbe001-tpcontr(1) EQ 'C'.
itab_zycbe033-kursf = /pws/zycbe001-txcneg.
ELSE.
IF NOT itab_zycbt017-dtbl IS INITIAL.
PERFORM define_cambio USING itab_zycbt017-dtbl
wa_zycbt005-waers
wa_zycbt007-waersb
itab_zycbe033-kursf.
ENDIF.
ENDIF.
IF wa_zycbt007-dtliquid EQ 'VIATRANS' AND
itab_zycbe033-kursf IS INITIAL.
MESSAGE i061 WITH text-215 wa_zycbt005-nrinvoic text-216 text-217.
PERFORM verify_null_field USING itab_zycbe033-kursf
'KURSF'
text-051.
ENDIF.
itab_zycbe033-agkoa = 'D'.
itab_zycbe033-agkon = wa_zycbt005-kunnr.
IF itab_zycbe033-d_sgtxt IS INITIAL.
IF wa_zycbt005-ftxt IS INITIAL.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
ELSE.
itab_zycbe033-augtx = wa_zycbt005-txtinf.
itab_zycbe033-d_sgtxt = wa_zycbt005-txtinf.
ENDIF.
ENDIF.
CLEAR itab_zycbt012.
CASE wa_zycbt005-tpcontr+0(1).
WHEN 'A' OR 'E' OR 'C'.
PERFORM verify_null_field USING wa_zycbt005-bconegoc
'BCONEGOC'
text-001.
v_banco_d = wa_zycbt005-bconegoc.
WHEN 'P' OR 'S'.
PERFORM verify_null_field USING wa_zycbt005-bcofinan
'BCOFINAN'
text-002.
v_banco_d = wa_zycbt005-bcofinan.
ENDCASE.
v_nrdias = /pws/zycbe006-dtpagto - wa_zycbt005-dtvincul.
IF v_nrdias > 360.
v_prazo = 'L'.
ELSE.
v_prazo = 'S'.
ENDIF.
IF /pws/zycbe001-desc_receb IS INITIAL.
IF /pws/zycbt001-tpcontr(01) NE 'E'.
CONCATENATE 'E' v_prazo
INTO v_codaux SEPARATED BY space .
v_tpcontr = /pws/zycbt001-tpcontr.
ELSE.
CONCATENATE /pws/zycbt001-tpcontr v_prazo
INTO v_codaux SEPARATED BY space .
CLEAR v_tpcontr.
ENDIF.
ELSE.
v_codaux = 'DR'.
CLEAR v_tpcontr.
ENDIF.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
bukrs = /pws/zycbt001-bukrs
ktosl = 'CPT'
codaux1 = v_codaux
codaux2 = v_tpcontr
TABLES
account = itab_zyglt316
EXCEPTIONS
key_not_found = 1
rules_not_found = 2
OTHERS = 3.
IF sy-subrc EQ 0.
READ TABLE itab_zyglt316 INDEX 1.
IF /pws/zycbe001-desc_receb IS INITIAL.
itab_zycbe033-d_newko = itab_zyglt316-konth.
ELSE.
itab_zycbe033-d_newko = itab_zyglt316-konts.
ENDIF.
PERFORM verify_null_field USING itab_zycbe033-d_newko
'SAKNR'
text-010.
ENDIF.
itab_zycbe033-koart = 'S'.
if /pws/zycbe001-belnr2 is initial.
itab_zycbe033-belnr = wa_zycbt005-belnr.
else.
itab_zycbe033-belnr = /pws/zycbe001-belnr2.
endif.
IF NOT wa_zycbt005-tpcontr(1) CA 'CEPS' AND
wa_zycbt005-slpagar IS INITIAL.
itab_zycbe033-dtdocto = wa_zycbt005-dtbelnr.
ELSE.
itab_zycbe033-dtdocto = /pws/zycbe006-dtpagto.
ENDIF.
IF wa_zycbt005-slpagar IS INITIAL.
itab_zycbe033-flag_nc = 'X'.
ENDIF.
IF wa_zycbt005-tpcontr(1) CA 'PS'.
READ TABLE itab_zycbt069 WITH KEY nrseqc = itab_zycbt006-nrseqc
nrinvoic = itab_zycbt006-nrinvoic
dtvincul = itab_zycbt006-dtvincul
gsberf = itab_zycbt006-gsberf
nrparcf = itab_zycbt006-nrparcf.
IF sy-subrc EQ 0.
v_belnr_cap = itab_zycbt069-belnr.
ENDIF.
ELSE.
IF wa_zycbt005-tpcontr(1) CA 'CE'.
IF /pws/zycbe001-belnr2 IS INITIAL.
CASE /pws/zycbe001-fdtlanc.
WHEN 'O'.
v_data = /pws/zycbe001-dtcontr.
WHEN 'D'.
v_data = /pws/zycbe001-dtdesem.
WHEN OTHERS.
v_data = /pws/zycbe001-dtcred.
ENDCASE.
v_belnr_cap = /pws/zycbe001-belnr.
ELSE.
v_belnr_cap = /pws/zycbe001-belnr2.
IF NOT /pws/zycbt074-dtcont IS INITIAL.
itab_zycbe033-dtdocto = /pws/zycbt074-dtcont.
ENDIF.
ENDIF.
ELSE.
v_belnr_cap = wa_zycbt005-belnr.
ENDIF.
ENDIF.
LOOP AT itab_zycbt030 WHERE nrinvoic = wa_zycbt005-nrinvoic AND
gsberf = wa_zycbt005-gsberf AND
nrparcf = wa_zycbt005-nrparcf.
CHECK NOT itab_zycbt030-belnr6 IS INITIAL.
itab_partidas-tcode = 'F-30'.
itab_partidas-tabela = 'ZYCBT006'.
itab_partidas-cpochv = itab_zycbe033-cpochv.
itab_partidas-belnr = itab_zycbt030-belnr6.
itab_partidas-agkon = itab_zycbe033-agkon.
itab_partidas-agkoa = itab_zycbe033-agkoa.
itab_partidas-agums = space.
itab_partidas-bukrs = wa_zycbt005-bukrs.
itab_partidas-shkzg = 'H'.
itab_partidas-v_sinal = '+'.
IF NOT /pws/zycbt074-dtcont IS INITIAL.
itab_partidas-dtdocto = /pws/zycbt074-dtcont.
ELSE.
itab_partidas-dtdocto = /pws/zycbe006-dtpagto.
ENDIF.
CONCATENATE 'Des.'
wa_zycbt005-nrinvoic
wa_zycbt005-nrparcf
INTO itab_partidas-d_zuonr
SEPARATED BY space.
itab_partidas-v_sinal = '-'.
APPEND itab_partidas.
ENDLOOP.
LOOP AT itab_zycbt209 WHERE nrinvoic = wa_zycbt005-nrinvoic AND
gsberf = wa_zycbt005-gsberf AND
nrparcf = wa_zycbt005-nrparcf AND
baixa = 'X'.
itab_partidas-tcode = 'F-30'.
itab_partidas-tabela = 'ZYCBT006'.
itab_partidas-cpochv = itab_zycbe033-cpochv.
itab_partidas-belnr = itab_zycbt209-belnr_d.
itab_partidas-dtdocto = itab_zycbt209-budat_d.
itab_partidas-agkon = itab_zycbt209-hkont.
itab_partidas-agkoa = itab_zycbt209-koart.
itab_partidas-agums = itab_zycbt209-umskz.
itab_partidas-bukrs = itab_zycbt209-bukrs.
itab_partidas-shkzg = 'H'.
v_contador = v_contador + 1.
IF itab_zycbt209-vlbaixa EQ itab_zycbt209-saldo.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt209-bukrs
v_date = itab_zycbt209-budat_d
IMPORTING
v_year = v_year
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
SELECT SINGLE zuonr
FROM bseg
INTO itab_partidas-d_zuonr
WHERE bukrs = itab_zycbt209-bukrs AND
belnr = itab_zycbt209-belnr_d AND
gjahr = v_year AND
augbl = space AND
koart = itab_zycbt209-koart AND
buzei <= 2.
itab_partidas-v_sinal = '+'.
ELSE.
CONCATENATE 'Des.'
wa_zycbt005-nrinvoic
wa_zycbt005-nrparcf
INTO itab_partidas-d_zuonr
SEPARATED BY space.
itab_partidas-v_sinal = '-'.
ENDIF.
APPEND itab_partidas.
ENDLOOP.
LOOP AT itab_zycbt219 WHERE nrinvoic = wa_zycbt005-nrinvoic AND
gsberf = wa_zycbt005-gsberf AND
nrparcf = wa_zycbt005-nrparcf AND
baixa = 'X'.
itab_partidas-tcode = 'F-30'.
itab_partidas-tabela = 'ZYCBT006'.
itab_partidas-cpochv = itab_zycbe033-cpochv.
itab_partidas-belnr = itab_zycbt219-belnr_d.
itab_partidas-dtdocto = itab_zycbt219-budat_d.
itab_partidas-agkon = itab_zycbt219-kunnr.
itab_partidas-agkoa = itab_zycbt219-koart.
itab_partidas-agums = itab_zycbt219-umskz.
itab_partidas-bukrs = itab_zycbt219-bukrs.
itab_partidas-shkzg = 'H'.
IF itab_zycbt219-vlbaixa EQ itab_zycbt219-saldo.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt219-bukrs
v_date = itab_zycbt219-budat_d
IMPORTING
v_year = v_year
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
SELECT SINGLE zuonr
FROM bseg
INTO itab_partidas-d_zuonr
WHERE bukrs = itab_zycbt219-bukrs AND
belnr = itab_zycbt219-belnr_d AND
gjahr = v_year AND
augbl = space AND
koart = itab_zycbt219-koart AND
buzei <= 2.
itab_partidas-v_sinal = '+'.
ELSE.
CONCATENATE 'Des.'
wa_zycbt005-nrinvoic
wa_zycbt005-nrparcf
INTO itab_partidas-d_zuonr
SEPARATED BY space.
itab_partidas-v_sinal = '-'.
ENDIF.
APPEND itab_partidas.
ENDLOOP.
IF /pws/zycbe001-desc_receb IS INITIAL.
itab_partidas-tcode = 'F-30'.
itab_partidas-tabela = 'ZYCBT006'.
itab_partidas-cpochv = itab_zycbe033-cpochv.
itab_partidas-belnr = wa_zycbt005-belnr.
itab_partidas-agkon = itab_zycbe033-d_newko.
itab_partidas-agkoa = itab_zycbe033-koart.
itab_partidas-agums = space.
itab_partidas-bukrs = itab_zycbe033-bukrs.
itab_partidas-shkzg = 'S'.
v_gjahr = itab_zycbe033-dtdocto(4).
LOOP AT itab_zycbt209 WHERE nrinvoic = wa_zycbt005-nrinvoic
AND gsberf = wa_zycbt005-gsberf
AND nrparcf = wa_zycbt005-nrparcf
AND baixa = 'X'.
IF itab_zycbt209-hkont EQ itab_zycbe033-d_newko.
v_contas_iguais = 'X'.
EXIT.
ELSE.
CLEAR v_contas_iguais.
EXIT.
ENDIF.
ENDLOOP.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = wa_zycbt005-bukrs
v_date = itab_zycbe033-dtdocto
IMPORTING
v_year = v_year
EXCEPTIONS
variante_de_exercicio = 1
data_nao_encontrada = 2
empresa_nao_encontrada = 3
period_in_not_valid = 4
period_not_assigned = 5
version_undefined = 6
OTHERS = 7.
SELECT SINGLE budat FROM bkpf
INTO itab_partidas-dtdocto
WHERE bukrs = wa_zycbt005-bukrs
AND belnr = wa_zycbt005-belnr
AND gjahr = v_year.
CONCATENATE 'Des.'
wa_zycbt005-nrinvoic
wa_zycbt005-nrparcf
INTO itab_partidas-d_zuonr
SEPARATED BY space.
itab_partidas-v_sinal = '-'.
APPEND itab_partidas.
ENDIF.
CONCATENATE 'Des.' wa_zycbt005-nrinvoic wa_zycbt005-nrparcf
INTO itab_zycbe033-c_zuonr
SEPARATED BY space.
IF NOT wa_zycbt005-j_1bbranch IS INITIAL.
PERFORM verifica_pais_filial USING wa_zycbt005-bukrs
wa_zycbt005-j_1bbranch.
itab_zycbe033-brnch = wa_zycbt005-j_1bbranch.
ELSE.
PERFORM local_negocio.
PERFORM verifica_pais_filial USING wa_zycbt005-bukrs
wa_t001w-j_1bbranch.
itab_zycbe033-brnch = wa_t001w-j_1bbranch.
ENDIF.
CLEAR itab_zycbe033-d_zuonr.
SELECT * FROM /pws/zycbt084 INTO TABLE itab_zycbt084
WHERE nrseqc = wa_zycbt005-nrseqc.
LOOP AT itab_zycbt084 WHERE nrseqc = wa_zycbt005-nrseqc
AND nrinvoic = wa_zycbt005-nrinvoic
AND gsberf = wa_zycbt005-gsberf
AND nrparcf = wa_zycbt005-nrparcf
AND tdesmemb = 'O'.
itab_partidas-tcode = 'F-30'.
itab_partidas-tabela = 'ZYCBT006'.
itab_partidas-cpochv = itab_zycbe033-cpochv.
itab_partidas-belnr = itab_zycbt084-belnr.
itab_partidas-agkon = itab_zycbe033-d_newko.
itab_partidas-agkoa = itab_zycbe033-koart.
itab_partidas-agums = space.
itab_partidas-bukrs = itab_zycbe033-bukrs.
itab_partidas-shkzg = 'S'.
itab_partidas-dtdocto = itab_zycbt084-dtincl.
CONCATENATE 'Des. OP' wa_zycbt005-nrseqc
INTO itab_partidas-d_zuonr
SEPARATED BY space.
itab_partidas-v_sinal = '-'.
APPEND itab_partidas.
ENDLOOP.
itab_zycbe033-werks = wa_zycbt005-werks.
APPEND itab_zycbe033.
IF sy-subrc EQ 0.
SORT itab_partidas BY agkoa agkon agums belnr.
ENDIF.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
IF itab_zycbt034 IS INITIAL.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_W'
EXPORTING
v_modo = v_modo_bi
v_vinc_tot = 'X'
v_desc_rec = /pws/zycbe001-desc_receb
v_contasi = v_contas_iguais
v_liqop = 'X'
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_partidas = itab_partidas
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE itab_zycbt032 WITH KEY tcode = 'F-30'
tabela = 'ZYCBT006'
cpochv = itab_zycbe033-cpochv
tpmsg = 'S'.
IF sy-subrc EQ 0.
v_cp_ok = 'X'.
wa_zycbt005-status = 'C'.
wa_zycbt005-dtbelnr = itab_zycbe033-budat.
wa_zycbt005-belnr = itab_zycbt032-belnr.
wa_zycbt005-slpagar = 0.
itab_contabil-nrinvoic = wa_zycbt005-nrinvoic.
itab_contabil-nrparcf = wa_zycbt005-nrparcf.
CLEAR itab_contabil-vbeln.
itab_contabil-gsberf = wa_zycbt005-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-msg = text-295.
CLEAR /pws/zycbt084.
READ TABLE itab_zycbt074 WITH KEY nrseqc = wa_zycbt005-nrseqc.
IF sy-subrc EQ 0.
IF itab_zycbt074-dtcont IS INITIAL OR
itab_zycbt074-dtcont EQ '00000000'.
itab_contabil-dtdocto = /pws/zycbe006-dtpagto.
ELSE.
itab_contabil-dtdocto = itab_zycbt074-dtcont.
ENDIF.
ENDIF.
itab_contabil-bukrs = wa_zycbt005-bukrs.
APPEND itab_contabil.
v_subrc = 0.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = 'ZYCBT006'
AND cpochv = v_cpochv.
CLEAR itab_erro-vbeln.
itab_erro-msg = itab_zycbt032-msg.
APPEND itab_erro.
ENDLOOP.
v_subrc = 4.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
v_subrc = 4.
ENDIF.
ELSE.
v_subrc = 4.
ENDIF.
sy-subrc = v_subrc.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F09
...
IF /pws/zycbe001-tpcontr+0(1) EQ 'C' AND
wa_zycbt007-liq_cp IS INITIAL.
EXIT.
ENDIF.
DESCRIBE TABLE itab_zycbt005 LINES v_line.
IF ( v_doc_f30 EQ 'X' AND
v_f30_vinc GE v_line ) OR
( NOT v_ind_delecao IS INITIAL AND
v_doc_f30 EQ 'X' ) OR
( v_doc_f30 EQ 'E' AND
* >> Início da exclusão: FORM SAVE_CHANGES
/pws/zycbe001-tpcontr(01) = 'P' ).
* << Fim da exclusão
* >> Início da inclusão: FORM SAVE_CHANGES
/pws/zycbe001-tpcontr(01) = 'P' )
OR ( v_cp_ok EQ 'X'
AND /pws/zycbe001-tpcontr+0(1) EQ 'C' )
.
* << Fim da inclusão
/pws/zycbe001-slvinc = /pws/zycbe001-slvinc.
/pws/zycbe001-belnr2 = v_belnr_001.
/pws/zycbe001-dtvincul = v_dtdocto.
IF v_doc_f30 NE 'E' .
MODIFY /pws/zycbt001 FROM /pws/zycbe001.
ENDIF.
DELETE itab_zycbt005 WHERE nrinvoic EQ ' '.
DELETE itab_zycbt006 WHERE status EQ 'E'.
DELETE itab_zycbt005 WHERE vlvinc EQ ' '.
LOOP AT itab_zycbt005.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009TOP
...
v_sldesc LIKE /pws/zycbt005-vlme_p,
v_repid LIKE sy-repid VALUE '/PWS/SAPMZYCB009',
v_codmod TYPE c VALUE 'E',
v_exit321 LIKE /pws/zyglt100-zexit VALUE 'VIN001'.
DATA: v_dtpagext TYPE c,
v_dtpagtoc TYPE c.
DATA v_vinculacao(1) TYPE c.
DATA: v_excep TYPE c,
v_belnr6 LIKE /pws/zycbt030-belnr,
v_kursf6 LIKE bkpf-kursf,
* >> Início da exclusão:
v_erro_estorno TYPE c.
* << Fim da exclusão
* >> Início da inclusão:
v_erro_estorno TYPE c,
v_cp_ok TYPE c.
* << Fim da inclusão
DATA: wa_cols TYPE cxtab_column.
DATA:
wa_zycbe050 LIKE /pws/zycbe050,
wa_zycbe050_classifcont LIKE /pws/zycbe050,
wa_zycbe050_objres LIKE /pws/zycbe050,
wa_zycbt051_sbu LIKE /pws/zycbt051,
wa_zycbe051_aux LIKE /pws/zycbe051,
wa_zycbe005_aux LIKE /pws/zycbe005,
wa_log TYPE char4000,
wa_zycbt005_log LIKE /pws/zycbt005,
...