Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Vinculação
Data/Hora da Publicação: 26/12/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 15:43:56
Descrição da Nota: VINCULAÇÃO - CONTABILIZAÇÃO DA COMISSÃO DE AGENTE CONTA GRÁFICA
Sintoma
Ao gerar a vinculação/liquidação automática de contratos de câmbio pronto, não está sendo realizada
a contabilização da comissão de agente - conta gráfica.
Solução
O programa passou a contabilizar de forma correta a comissão de agente - conta gráfica ao efetuar a
liquidação automática de contratos de câmbio pronto.
6.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02754 Data: 26/12/2006 Hora: 10:58:59
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02754
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00026
Agrupamento : 00145
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
VINCULAÇÃO - CONTABILIZAÇÃO DA COMISSÃO DE AGENTE CONTA GRÁFICA
----------------------------------------------------------------------------------------------------
Palavras Chave:
VINCULAÇÃO CONTABILIZAÇÃO COMISSÃO AGENTE CONTA GRÁFICA
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCB009F07
REPS /PWS/MZYCB009TOP
REPT /PWS/SAPMZYCB009
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009F07
...
ENDIF.
IF wa_zycbt089-est_variacao IS INITIAL.
PERFORM seleciona_zycbt030_b.
PERFORM seleciona_zycbt045.
PERFORM fill_date1_f30_cp.
ELSE.
MOVE text-038 TO v_flag_mod.
PERFORM seleciona_paga_documento USING v_flag_mod.
PERFORM grava_liquidacao.
PERFORM save_changes.
* >> Início da inclusão: FORM CONTABILIZA_CP
IF WA_ZYCBT007-LIQ_COM_CG NE 'RP'.
PERFORM LIQUIDA_COMISSAO_DE_AGENTE.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CONTABILIZA_CP
ENDIF.
* << Fim da inclusão
PERFORM grava_contabilizacao.
IF NOT itab_erro[] IS INITIAL.
EXPORT itab_erro TO MEMORY ID '001'.
SUBMIT /pws/zycbr128 AND RETURN.
REFRESH itab_erro.
ENDIF.
...
...
APPEND itab_erro.
ENDLOOP.
ENDIF.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM liquida_comissao_de_agente .
LOOP AT itab_zycbt006.
CLEAR: itab_contabil,
itab_zycet010,
itab_zycet013.
REFRESH: itab_zycet010,
itab_zycet013.
SELECT SINGLE *
FROM /pws/zycbt017
WHERE nrinvoic EQ itab_zycbt006-nrinvoic
AND nrparcf EQ itab_zycbt006-nrparcf.
IF /pws/zycet037-bukrs IS INITIAL.
SELECT SINGLE *
FROM /pws/zycet037
WHERE bukrs EQ /pws/zycbe001-bukrs.
ENDIF.
SELECT SINGLE * FROM /pws/zycbt037
WHERE parvw EQ /pws/zycbt017-parvw.
IF sy-subrc NE 0.
IF /pws/zycbt017-parvw EQ 'AD' OR
/pws/zycbt017-parvw EQ 'DA'.
SELECT SINGLE * FROM /pws/zycbt037
WHERE parvw EQ 'AD' OR
parvw EQ 'DA'.
ENDIF.
ENDIF.
CHECK /pws/zycbt037-codpad EQ 'G' OR /pws/zycbt037-codpad EQ 'D'.
IF /pws/zycet037-comis_provisao IS INITIAL OR
/pws/zycet037-comis_provisao EQ 0.
SELECT *
INTO TABLE itab_zycet010
FROM /pws/zycet010
WHERE nrseq EQ itab_zycbt006-nrinvoic
AND ( dtpagto IS NULL
OR dtpagto EQ ' '
OR dtpagto EQ '00000000' ).
LOOP AT itab_zycet010.
IF NOT itab_zycet010-belnr IS INITIAL.
MOVE: itab_zycet010-nrseq TO itab_selreg-nrchave,
itab_zycbt006-nrseqc TO itab_selreg-docto,
itab_zycet010-dtvencto TO itab_selreg-dtvencto,
itab_zycet010-vlcomis TO itab_selreg-vlme,
itab_zycet010-lifnr TO itab_selreg-lifnr,
/pws/zycbt037-codpad TO itab_selreg-codp.
APPEND itab_selreg.
IF wa_zycbt007-liq_trans EQ 'R'.
PERFORM liquida_comis_trans.
ELSE.
PERFORM fill_date_f30_comissao.
ENDIF.
ELSE.
MOVE: itab_zycet010-nrseq TO itab_erro-vbeln,
text-389 TO itab_erro-msg.
APPEND itab_erro.
ENDIF.
ENDLOOP.
ELSE.
SELECT *
INTO TABLE itab_zycet013
FROM /pws/zycet013
WHERE nrseq EQ itab_zycbt006-nrinvoic
AND gsber EQ itab_zycbt006-gsberf
AND ( dtpagto IS NULL
OR dtpagto EQ ' '
OR dtpagto EQ '00000000' ).
LOOP AT itab_zycet013.
IF NOT itab_zycet013-belnr IS INITIAL.
MOVE: itab_zycet013-nrseq TO itab_selreg-nrchave,
itab_zycbt006-nrseqc TO itab_selreg-docto,
itab_zycet013-vlme TO itab_selreg-vlme,
itab_zycet013-lifnr TO itab_selreg-lifnr,
/pws/zycbt037-codpad TO itab_selreg-codp.
APPEND itab_selreg.
IF wa_zycbt007-liq_trans EQ 'R'.
PERFORM liquida_comis_trans.
ELSE.
PERFORM fill_date_f30_comissao.
ENDIF.
ELSE.
MOVE: itab_zycet013-nrseq TO itab_erro-vbeln,
text-389 TO itab_erro-msg.
APPEND itab_erro.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
IF NOT itab_contabil[] IS INITIAL.
EXPORT itab_contabil TO MEMORY ID '040'.
EXPORT text-394 TO MEMORY ID '050'.
SUBMIT /pws/zycbr040 AND RETURN.
REFRESH itab_contabil.
ENDIF.
IF NOT itab_erro[] IS INITIAL.
EXPORT itab_erro TO MEMORY ID '001'.
SUBMIT /pws/zycbr126 AND RETURN.
REFRESH itab_erro.
ENDIF.
ENDFORM.
FORM liquida_comis_trans .
DATA:
v_chave(50) TYPE C,
v_erro_f28(1) TYPE C,
v_aux TYPE C,
v_status_f30(1) TYPE C VALUE 'E'.
PERFORM clear_date_batch.
CLEAR: itab_zycbt032a, itab_zycbt036.
REFRESH: itab_zycbt032a, itab_zycbt036.
PERFORM get_parameters_comissao.
IF wa_zycbt007-comis = 'C'.
READ TABLE itab_zycbt012a WITH KEY chlanc = 'C'.
ENDIF.
PERFORM verifica_rateio1.
LOOP AT itab_aux.
CLEAR v_chave.
IF itab_aux-flag NE 'X'.
itab_zycbe033-newbs = '40'.
ELSE.
itab_zycbe033-newbs = '50'.
ENDIF.
IF wa_zycbt007-comis = 'C'.
itab_zycbe033-d_newko = itab_zycbt012a-saknr1.
ELSE.
itab_zycbe033-d_newko = itab_zycbt012-saknr2.
ENDIF.
PERFORM verify_null_field USING itab_zycbe033-d_newko
'KONTO'
text-011.
itab_zycbe033-agkoa = 'D'.
itab_zycbe033-agkon = /pws/zycbt017-kunag.
PERFORM verify_null_field USING itab_zycbe033-agkon
'AGKON'
text-014.
PERFORM dados_batch_comis.
CONCATENATE itab_aux-nrinvoic itab_aux-vbeln itab_aux-gsberf
INTO v_chave.
itab_zycbe033-cpochv = v_chave.
PERFORM valor_baixar_comissao.
v_valorc = itab_zycbe033-wrbtr.
PERFORM verify_null_field USING itab_aux-belnr6
'BELNR'
text-044.
itab_zycbe033-belnr = itab_aux-belnr6.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt006-bukrs
v_date = itab_zycet010-dtlanc
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 = itab_zycbt006-bukrs
AND belnr = itab_aux-belnr6
AND gjahr = v_year.
itab_zycbe033-dtdocto = bkpf-budat.
IF itab_zycbe033-wrbtr GT 0.
APPEND itab_zycbe033.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
erro_bi = 'X'.
ENDLOOP.
CLEAR sy-subrc.
IF itab_zycbt034 IS INITIAL.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_A'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
CLEAR v_erro_f28.
IF sy-subrc = 0.
CLEAR v_aux.
LOOP AT itab_aux.
CONCATENATE itab_aux-nrinvoic
itab_aux-nrparcf
itab_aux-vbeln itab_aux-gsberf
INTO v_chave.
READ TABLE itab_zycbt032 WITH KEY tcode = 'F-30'
tabela = '/PWS/ZYCET010'
cpochv = v_chave
tpmsg = 'S'.
IF sy-subrc = 0.
itab_zycbt030-belnr6 = itab_zycbt032-belnr.
READ TABLE itab_zycbe033 WITH KEY cpochv = v_chave.
itab_zycbt030-budat = itab_zycbe033-budat.
MODIFY itab_zycbt030 TRANSPORTING belnr6 budat
WHERE nrinvoic = itab_aux-nrinvoic
AND nrparcf = itab_aux-nrparcf
AND vbeln = itab_aux-vbeln
AND gsberf = itab_aux-gsberf.
UPDATE /pws/zycbt030 SET: belnr6 = itab_zycbt032-belnr
budat = itab_zycbe033-budat
WHERE nrinvoic = itab_aux-nrinvoic
AND nrparcf = itab_aux-nrparcf
AND vbeln = itab_aux-vbeln
AND gsberf = itab_aux-gsberf.
IF /pws/zycet037-comis_provisao IS INITIAL OR
/pws/zycet037-comis_provisao EQ 0.
IF v_subrc EQ 0.
itab_zycet010-status = 'C'.
itab_zycet010-belnr_p = itab_zycbt032-belnr.
itab_zycet010-dtpagto = itab_zycbt006-dtpagto.
MODIFY itab_zycet010 TRANSPORTING status belnr_p dtpagto
WHERE nrseq = itab_zycet010-nrseq
AND lifnr = itab_zycet010-lifnr
AND dtvencto = itab_zycet010-dtvencto.
ELSE.
itab_zycet010-belnr = itab_zycbt032-belnr.
itab_zycet010-status = space.
itab_zycet010-dtpagto = '00000000'.
MODIFY itab_zycet010 TRANSPORTING belnr status dtpagto
WHERE nrseq = itab_zycet010-nrseq
AND lifnr = itab_zycet010-lifnr
AND dtvencto = itab_zycet010-dtvencto.
ENDIF.
MODIFY /pws/zycet010 FROM itab_zycet010.
ELSE.
IF v_subrc EQ 0.
itab_zycet013-status = 'C'.
itab_zycet013-belnr_c = itab_zycbt032-belnr.
itab_zycet013-dtpagto = itab_zycbt006-dtpagto.
MODIFY itab_zycet013 TRANSPORTING status
belnr_c
dtpagto
WHERE nrseq = itab_zycet013-nrseq
AND lifnr = itab_zycet013-lifnr
AND gsber = itab_zycet013-gsber
AND prctr = itab_zycet013-prctr.
ELSE.
itab_zycet013-belnr = itab_zycbt032-belnr.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
MODIFY itab_zycet013 TRANSPORTING status
belnr
dtpagto
WHERE nrseq = itab_zycet013-nrseq
AND lifnr = itab_zycet013-lifnr
AND gsber = itab_zycet013-gsber
AND prctr = itab_zycet013-prctr.
ENDIF.
MODIFY /pws/zycet013 FROM itab_zycet013.
ENDIF.
MOVE itab_zycbt032 TO itab_zycbt032a.
MOVE itab_zycbe033-budat TO itab_zycbt032a-budat.
APPEND itab_zycbt032a.
CLEAR itab_doc_f02.
MOVE itab_zycbt032-belnr TO itab_doc_f02-docto.
APPEND itab_doc_f02.
v_status_f30 = 'S'.
COMMIT WORK.
itab_contabil-nrinvoic = itab_aux-nrinvoic.
itab_contabil-nrparcf = itab_aux-nrparcf.
itab_contabil-vbeln = itab_aux-vbeln.
itab_contabil-gsberf = itab_aux-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-dtdocto = itab_zycbt006-dtpagto.
itab_contabil-bukrs = itab_zycbt006-bukrs.
itab_contabil-msg = text-390.
APPEND itab_contabil.
v_aux = '1'.
READ TABLE itab_zycbe033 WITH KEY cpochv = v_chave.
itab_zycbt077-belnr = itab_zycbt032-belnr.
itab_zycbt077-bukrs = itab_zycbe033-bukrs.
itab_zycbt077-gjahr = itab_zycbe033-budat(4).
itab_zycbt077-status = 'C'.
itab_zycbt077-tcode = itab_zycbt032-tcode.
CONCATENATE '004' itab_selreg-codp INTO
itab_zycbt077-codeven.
itab_zycbt077-codmod = 'E'.
itab_zycbt077-nrseqc = /pws/zycbe005-nrseqc.
itab_zycbt077-gsberf = itab_aux-gsberf.
itab_zycbt077-dtvincul = /pws/zycbe005-dtvincul.
itab_zycbt077-nrinvoic = itab_aux-nrinvoic.
itab_zycbt077-nrparcf = itab_aux-nrparcf.
itab_zycbt077-dtpagto = itab_zycbt006-dtpagto.
itab_zycbt077-vbeln = itab_aux-vbeln.
ELSE.
v_erro_f28 = 'X'.
itab_contabil-nrinvoic = itab_aux-nrinvoic.
itab_contabil-nrparcf = itab_aux-nrparcf.
itab_contabil-vbeln = itab_aux-vbeln.
itab_contabil-gsberf = itab_aux-gsberf.
itab_contabil-msg = text-391.
APPEND itab_contabil.
ENDIF.
ENDLOOP.
IF v_aux EQ '1'.
CLEAR v_aux.
ELSE.
CLEAR v_erro_f28.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
ENDIF.
IF v_status_f30 EQ 'S'.
PERFORM executa_clearing_agente.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
erro_bi = 'X'.
ENDIF.
ENDIF.
ENDFORM.
FORM executa_clearing_agente .
PERFORM clear_date_batch.
CLEAR itab_zycbt036.
REFRESH itab_zycbt036.
CONCATENATE itab_selreg-nrchave
itab_selreg-lifnr
INTO v_cpochv.
itab_zycbe033-tcode = 'F-30'.
itab_zycbe033-tabela = '/PWS/ZYCBT006'.
itab_zycbe033-cpochv = v_cpochv.
PERFORM verify_null_field USING itab_zycbt006-dtpagto
'DTPAGTO'
text-003.
itab_zycbe033-budat = itab_zycbt006-dtpagto.
PERFORM verify_null_field USING wa_zycbt011-blart
'BLART'
text-050.
itab_zycbe033-blart = wa_zycbt011-blart.
itab_zycbe033-bktxt = wa_zycbt007-bktxt.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.
PERFORM verifica_data_taxa.
PERFORM define_cambio USING v_databl
itab_zycbt006-waers
wa_zycbt007-waersb
itab_zycbe033-kursf.
PERFORM verify_null_field USING itab_zycbe033-kursf
'TXCAMB'
text-051.
IF wa_zycbt007-fdtdoc = 'D'.
itab_zycbe033-bldat = sy-datum.
itab_zycbe033-d_valut = sy-datum.
ELSE.
itab_zycbe033-bldat = itab_zycbe033-budat.
itab_zycbe033-d_valut = itab_zycbe033-budat.
ENDIF.
LOOP AT itab_zycbt013.
CASE itab_zycbt013-cpor3.
WHEN 'XBLNR'.
CASE itab_zycbt013-cpocb.
WHEN 'NRCONTR'.
itab_zycbe033-xblnr = itab_zycbt006-nrcontr.
WHEN 'NRSEQC'.
itab_zycbe033-xblnr = itab_zycbt006-nrseqc.
WHEN 'NRINVOIC'.
itab_zycbe033-xblnr = itab_zycbt006-nrinvoic.
ENDCASE.
WHEN 'ZUONR'.
CASE itab_zycbt013-cpocb.
WHEN 'NRCONTR'.
itab_zycbe033-d_zuonr = itab_zycbt006-nrcontr.
itab_zycbe033-c_zuonr = itab_zycbt005-nrinvoic.
WHEN 'NRSEQC'.
itab_zycbe033-d_zuonr = itab_zycbt006-nrseqc.
itab_zycbe033-c_zuonr = itab_zycbt006-nrseqc.
WHEN 'NRINVOIC'.
itab_zycbe033-d_zuonr = itab_zycbt006-nrinvoic.
itab_zycbe033-c_zuonr = itab_zycbt006-nrinvoic.
ENDCASE.
ENDCASE.
ENDLOOP.
PERFORM verify_null_field USING itab_zycbt006-bukrs
'BUKRS'
text-004.
itab_zycbe033-bukrs = itab_zycbt006-bukrs.
PERFORM verify_null_field USING /pws/zycbt017-waers
'WAERS'
text-049.
itab_zycbe033-waers = /pws/zycbt017-waers.
IF itab_zycbt006-ftxt IS INITIAL.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
ELSE.
itab_zycbe033-augtx = itab_zycbt006-txtinf.
ENDIF.
itab_zycbe033-c_gsber = itab_zycbt006-gsberf.
itab_zycbe033-d_gsber = itab_zycbt006-gsberf.
IF wa_zycbt007-comis = 'A' OR wa_zycbt007-comis = ' '.
itab_zycbe033-agkon = itab_selreg-lifnr.
itab_zycbe033-agkoa = 'K'.
ELSE.
itab_zycbe033-agkoa = 'S'.
itab_zycbe033-agkon = itab_zycbt012a-saknr1.
ENDIF.
IF wa_zycbt007-liq_trans EQ 'R'.
itab_zycbe033-d_newko = itab_zycbt012-saknr2.
itab_zycbe033-newbs = '50'.
itab_zycbe033-agkon = itab_selreg-lifnr.
itab_zycbe033-agkoa = 'K'.
itab_zycbe033-wrbtr = v_valorc.
itab_zycbe033-belnr = itab_zycet010-belnr.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt006-bukrs
v_date = itab_zycet010-dtlanc
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 = itab_zycbt006-bukrs
AND belnr = itab_zycet010-belnr
AND gjahr = v_year.
ENDIF.
APPEND itab_zycbe033.
IF v_subrc EQ 0.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT006'.
itab_zycbt036-cpochv = v_cpochv.
IF /pws/zycet037-comis_provisao IS INITIAL OR
/pws/zycet037-comis_provisao EQ 0.
itab_zycbt036-belnr = itab_zycet010-belnr.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt006-bukrs
v_date = itab_zycet010-dtlanc
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 = itab_zycbt006-bukrs
AND belnr = itab_zycet010-belnr
AND gjahr = v_year.
ELSE.
itab_zycbt036-belnr = itab_zycet013-belnr.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt006-bukrs
v_date = itab_zycet013-dtlanc
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 = itab_zycbt006-bukrs
AND belnr = itab_zycet013-belnr
AND gjahr = v_year.
ENDIF.
itab_zycbt036-dtdocto = bkpf-budat.
APPEND itab_zycbt036.
ENDIF.
IF wa_zycbt007-liq_trans NE 'R'.
LOOP AT itab_zycbt032a WHERE tpmsg = 'S'.
itab_zycbt036-tcode = 'F-30'.
itab_zycbt036-tabela = '/PWS/ZYCBT006'.
itab_zycbt036-cpochv = v_cpochv.
itab_zycbt036-belnr = itab_zycbt032a-belnr.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt006-bukrs
v_date = itab_zycbt032a-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.
SELECT SINGLE * FROM bkpf
WHERE bukrs = itab_zycbt006-bukrs
AND belnr = itab_zycbt032a-belnr
AND gjahr = v_year.
itab_zycbt036-dtdocto = bkpf-budat.
APPEND itab_zycbt036.
ENDLOOP.
ENDIF.
IF itab_zycbt034 IS INITIAL.
IF wa_zycbt007-liq_trans EQ 'R'.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_A'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
ELSE.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_zycbt036 = itab_zycbt036
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
ENDIF.
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.
IF /pws/zycet037-comis_provisao IS INITIAL OR
/pws/zycet037-comis_provisao EQ 0.
IF v_subrc EQ 0.
itab_zycet010-belnr51 = itab_zycbt032-belnr.
MODIFY itab_zycet010 TRANSPORTING belnr51
WHERE nrseq = itab_zycet010-nrseq
AND lifnr = itab_zycet010-lifnr
AND dtvencto = itab_zycet010-dtvencto.
ELSE.
itab_zycet010-belnr = itab_zycbt032-belnr.
itab_zycet010-dtlanc = itab_zycbe033-budat.
itab_zycet010-status = space.
itab_zycet010-dtpagto = '00000000'.
itab_zycet010-belnr51 = space.
itab_zycet010-belnr_p = space.
MODIFY itab_zycet010 TRANSPORTING belnr
dtlanc
status
dtpagto
belnr51
belnr_p
WHERE nrseq = itab_zycet010-nrseq AND
lifnr = itab_zycet010-lifnr AND
dtvencto = itab_zycet010-dtvencto.
ENDIF.
MODIFY /pws/zycet010 FROM itab_zycet010.
ELSE.
IF v_subrc EQ 0.
itab_zycet013-belnr_cl = itab_zycbt032-belnr.
MODIFY itab_zycet013 TRANSPORTING belnr_cl
WHERE nrseq = itab_zycet013-nrseq
AND gsber = itab_zycet013-gsber
AND lifnr = itab_zycet013-lifnr
AND prctr = itab_zycet013-prctr.
ELSE.
itab_zycet013-belnr = itab_zycbt032-belnr.
itab_zycet013-dtlanc = itab_zycbe033-budat.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
itab_zycet013-belnr_cl = space.
itab_zycet013-belnr_c = space.
MODIFY itab_zycet013 TRANSPORTING belnr
dtlanc
status
dtpagto
belnr_cl
belnr_c
WHERE nrseq = itab_zycet013-nrseq
AND gsber = itab_zycet013-gsber
AND lifnr = itab_zycet013-lifnr
AND prctr = itab_zycet013-prctr.
ENDIF.
MODIFY /pws/zycet013 FROM itab_zycet013.
ENDIF.
IF v_subrc EQ 0.
itab_zycbt006-vlcomis = /pws/zycbt017-vlcomis.
ELSE.
itab_zycbt006-vlcomis = space.
ENDIF.
UPDATE /pws/zycbt006 SET vlcomis = itab_zycbt006-vlcomis
WHERE nrseqc = itab_zycbt006-nrseqc
AND nrinvoic = itab_zycbt006-nrinvoic
AND nrparcf = itab_zycbt006-nrparcf
AND gsberf = itab_zycbt006-gsberf
AND dtvincul = itab_zycbt006-dtvincul
AND dtpagto = itab_zycbt006-dtpagto.
COMMIT WORK.
itab_contabil-vbeln = itab_zycbt006-nrinvoic.
itab_contabil-nrparcf = itab_zycbt006-nrparcf.
itab_contabil-gsberf = itab_zycbt006-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-dtdocto = itab_zycbe033-budat.
itab_contabil-bukrs = itab_zycbt006-bukrs.
itab_contabil-msg = text-114.
APPEND itab_contabil.
itab_zycbt077-belnr = itab_zycbt032-belnr.
itab_zycbt077-bukrs = itab_zycbe033-bukrs.
itab_zycbt077-gjahr = itab_zycbe033-budat(4).
IF v_subrc EQ 0.
itab_zycbt077-status = 'C'.
ELSE.
itab_zycbt077-status = 'E'.
ENDIF.
itab_zycbt077-tcode = itab_zycbt032-tcode.
CONCATENATE '004' itab_selreg-codp INTO
itab_zycbt077-codeven.
itab_zycbt077-codmod = 'C'.
itab_zycbt077-nrseqc = /pws/zycbe005-nrseqc.
itab_zycbt077-gsberf = itab_zycbt006-gsberf.
itab_zycbt077-dtvincul = /pws/zycbe005-dtvincul.
itab_zycbt077-nrinvoic = itab_zycbt006-nrinvoic.
itab_zycbt077-nrparcf = itab_zycbt006-nrparcf.
itab_zycbt077-dtpagto = itab_zycbt006-dtpagto.
CLEAR itab_doc_f02.
MOVE itab_zycbt032-belnr TO itab_doc_f02-docto.
APPEND itab_doc_f02.
ELSE.
LOOP AT itab_zycbt032 WHERE tcode = 'F-30'
AND tabela = '/PWS/ZYCBT006'
AND cpochv = v_cpochv.
itab_erro-vbeln = itab_zycbt030-vbeln.
itab_erro-msg = itab_zycbt032-msg.
APPEND itab_erro.
ENDLOOP.
IF sy-subrc EQ 0.
itab_contabil-vbeln = itab_zycbt006-nrinvoic.
itab_contabil-nrparcf = itab_zycbt006-nrparcf.
itab_contabil-gsberf = itab_zycbt006-gsberf.
itab_contabil-msg = text-395.
APPEND itab_contabil.
ENDIF.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.
FORM verifica_data_taxa .
DATA v_belnr TYPE /pws/zycbt030-belnr.
IF /pws/zycbe001-tpcontr(1) EQ 'C'.
IF wa_zycbt007-dtliqcp EQ 'DTEMB'.
SELECT SINGLE * FROM /pws/zycbt017
WHERE nrinvoic EQ itab_zycbt006-nrinvoic
AND nrparcf EQ itab_zycbt006-nrparcf
AND gsberf EQ itab_zycbt006-gsberf.
v_databl = /pws/zycbt017-dtbl.
ELSE.
v_databl = itab_zycbt006-dtpagto.
ENDIF.
ELSE.
IF wa_zycbt007-dtliquid = 'DTEMB'.
SELECT SINGLE * FROM /pws/zycbt017
WHERE nrinvoic EQ itab_zycbt006-nrinvoic
AND nrparcf EQ itab_zycbt006-nrparcf
AND gsberf EQ itab_zycbt006-gsberf.
v_databl = /pws/zycbt017-dtbl.
ELSEIF wa_zycbt007-dtliquid EQ 'TXFAT'.
SELECT SINGLE dtemb
FROM /pws/zycet001
INTO v_dtemb
WHERE nrseq EQ itab_zycbt006-nrinvoic.
SELECT SINGLE belnr
FROM /pws/zycbt030
INTO v_belnr
WHERE nrinvoic EQ itab_zycbt006-nrinvoic AND
gsberf EQ itab_zycbt006-gsberf AND
nrparcf EQ itab_zycbt006-nrparcf.
IF NOT v_belnr IS INITIAL AND
NOT v_dtemb IS INITIAL.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt006-bukrs
v_date = v_dtemb
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 kursf FROM bkpf INTO itab_zycbe033-kursf
WHERE bukrs = itab_zycbt006-bukrs AND
belnr = v_belnr AND
gjahr = v_year.
ENDIF.
CLEAR v_databl.
ELSE.
v_databl = itab_zycbt006-dtpagto.
ENDIF.
ENDIF.
ENDFORM.
FORM fill_date_f30_comissao .
DATA: v_chave(50) TYPE C,
v_erro_f28(1) TYPE C,
v_aux(1) TYPE C,
v_status_f30(1) TYPE C VALUE 'E'.
PERFORM clear_date_batch.
CLEAR: itab_zycbt032a, itab_zycbt036.
REFRESH: itab_zycbt032a, itab_zycbt036.
PERFORM get_parameters_comissao.
IF wa_zycbt007-comis = 'C'.
READ TABLE itab_zycbt012a WITH KEY chlanc = 'C'.
ENDIF.
PERFORM verifica_rateio1.
LOOP AT itab_aux.
CLEAR v_chave.
IF itab_aux-flag NE 'X'.
IF wa_zycbt007-comis = 'C'.
itab_zycbe033-newbs = '40'.
ELSE.
itab_zycbe033-newbs = '21'.
ENDIF.
ELSE.
IF wa_zycbt007-comis = 'C'.
itab_zycbe033-newbs = '50'.
ELSE.
itab_zycbe033-newbs = '31'.
ENDIF.
ENDIF.
IF wa_zycbt007-comis = 'C'.
itab_zycbe033-d_newko = itab_zycbt012a-saknr1.
ELSE.
itab_zycbe033-d_newko = itab_selreg-lifnr.
ENDIF.
PERFORM verify_null_field USING itab_zycbe033-d_newko
'KONTO'
text-011.
itab_zycbe033-agkoa = 'D'.
itab_zycbe033-agkon = /pws/zycbt017-kunag.
PERFORM verify_null_field USING itab_zycbe033-agkon
'AGKON'
text-014.
PERFORM dados_batch_comis.
CONCATENATE itab_aux-nrinvoic
itab_aux-nrparcf
itab_aux-vbeln itab_aux-gsberf INTO v_chave.
itab_zycbe033-cpochv = v_chave.
PERFORM valor_baixar_comissao.
PERFORM verify_null_field USING itab_aux-belnr6
'BELNR'
text-044.
itab_zycbe033-belnr = itab_aux-belnr6.
CLEAR v_year.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycbt006-bukrs
v_date = itab_aux-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.
SELECT SINGLE * FROM bkpf
WHERE bukrs = itab_zycbt006-bukrs
AND belnr = itab_aux-belnr6
AND gjahr = v_year.
itab_zycbe033-dtdocto = bkpf-budat.
IF itab_zycbe033-wrbtr GT 0.
APPEND itab_zycbe033.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
erro_bi = 'X'.
ENDLOOP.
CLEAR sy-subrc.
IF itab_zycbt034 IS INITIAL.
CALL FUNCTION '/PWS/ZYCB_TRANSACAO_F_30_A'
EXPORTING
v_modo = v_modo_bi
v_vlt = 'X'
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
CLEAR v_erro_f28.
IF sy-subrc = 0.
CLEAR v_aux.
LOOP AT itab_aux.
CONCATENATE itab_aux-nrinvoic
itab_aux-nrparcf
itab_aux-vbeln itab_aux-gsberf
INTO v_chave.
READ TABLE itab_zycbt032 WITH KEY tcode = 'F-30'
tabela = '/PWS/ZYCET010'
cpochv = v_chave
tpmsg = 'S'.
IF sy-subrc = 0.
itab_zycbt030-belnr6 = itab_zycbt032-belnr.
READ TABLE itab_zycbe033 WITH KEY cpochv = v_chave.
itab_zycbt030-budat = itab_zycbe033-budat.
MODIFY itab_zycbt030 TRANSPORTING belnr6 budat
WHERE nrinvoic = itab_aux-nrinvoic
AND nrparcf = itab_aux-nrparcf
AND vbeln = itab_aux-vbeln
AND gsberf = itab_aux-gsberf.
UPDATE /pws/zycbt030 SET: belnr6 = itab_zycbt032-belnr
budat = itab_zycbe033-budat
WHERE nrinvoic = itab_aux-nrinvoic
AND nrparcf = itab_aux-nrparcf
AND vbeln = itab_aux-vbeln
AND gsberf = itab_aux-gsberf.
IF /pws/zycet037-comis_provisao IS INITIAL OR
/pws/zycet037-comis_provisao EQ 0.
IF v_subrc EQ 0.
itab_zycet010-status = 'C'.
itab_zycet010-belnr_p = itab_zycbt032-belnr.
itab_zycet010-dtpagto = itab_zycbt006-dtpagto.
MODIFY itab_zycet010 TRANSPORTING status belnr_p dtpagto
WHERE nrseq = itab_zycet010-nrseq
AND lifnr = itab_zycet010-lifnr
AND dtvencto = itab_zycet010-dtvencto.
ELSE.
itab_zycet010-belnr = itab_zycbt032-belnr.
itab_zycet010-status = space.
itab_zycet010-dtpagto = '00000000'.
MODIFY itab_zycet010 TRANSPORTING belnr status dtpagto
WHERE nrseq = itab_zycet010-nrseq
AND lifnr = itab_zycet010-lifnr
AND dtvencto = itab_zycet010-dtvencto.
ENDIF.
MODIFY /pws/zycet010 FROM itab_zycet010.
ELSE.
IF v_subrc EQ 0.
itab_zycet013-status = 'C'.
itab_zycet013-belnr_c = itab_zycbt032-belnr.
itab_zycet013-dtpagto = itab_zycbt006-dtpagto.
MODIFY itab_zycet013 TRANSPORTING status
belnr_c
dtpagto
WHERE nrseq = itab_zycet013-nrseq
AND lifnr = itab_zycet013-lifnr
AND gsber = itab_zycet013-gsber
AND prctr = itab_zycet013-prctr.
ELSE.
itab_zycet013-belnr = itab_zycbt032-belnr.
itab_zycet013-status = space.
itab_zycet013-dtpagto = '00000000'.
MODIFY itab_zycet013 TRANSPORTING status
belnr
dtpagto
WHERE nrseq = itab_zycet013-nrseq
AND lifnr = itab_zycet013-lifnr
AND gsber = itab_zycet013-gsber
AND prctr = itab_zycet013-prctr.
ENDIF.
MODIFY /pws/zycet013 FROM itab_zycet013.
ENDIF.
MOVE itab_zycbt032 TO itab_zycbt032a.
MOVE itab_zycbe033-budat TO itab_zycbt032a-budat.
APPEND itab_zycbt032a.
v_status_f30 = 'S'.
COMMIT WORK.
itab_contabil-nrinvoic = itab_aux-nrinvoic.
itab_contabil-nrparcf = itab_aux-nrparcf.
itab_contabil-vbeln = itab_aux-vbeln.
itab_contabil-gsberf = itab_aux-gsberf.
itab_contabil-docto = itab_zycbt032-belnr.
itab_contabil-dtdocto = itab_zycbt006-dtpagto.
itab_contabil-bukrs = itab_zycbt006-bukrs.
itab_contabil-msg = text-388.
APPEND itab_contabil.
v_aux = '1'.
READ TABLE itab_zycbe033 WITH KEY cpochv = v_chave.
itab_zycbt077-belnr = itab_zycbt032-belnr.
itab_zycbt077-bukrs = itab_zycbe033-bukrs.
itab_zycbt077-gjahr = itab_zycbe033-budat(4).
itab_zycbt077-status = 'C'.
itab_zycbt077-tcode = itab_zycbt032-tcode.
CONCATENATE '004' itab_selreg-codp INTO
itab_zycbt077-codeven.
itab_zycbt077-codmod = 'E'.
itab_zycbt077-nrseqc = /pws/zycbe005-nrseqc.
itab_zycbt077-gsberf = itab_aux-gsberf.
itab_zycbt077-dtvincul = /pws/zycbe005-dtvincul.
itab_zycbt077-nrinvoic = itab_aux-nrinvoic.
itab_zycbt077-nrparcf = itab_aux-nrparcf.
itab_zycbt077-dtpagto = itab_zycbt006-dtpagto.
itab_zycbt077-vbeln = itab_aux-vbeln.
ELSE.
v_erro_f28 = 'X'.
itab_contabil-nrinvoic = itab_aux-nrinvoic.
itab_contabil-nrparcf = itab_aux-nrparcf.
itab_contabil-vbeln = itab_aux-vbeln.
itab_contabil-gsberf = itab_aux-gsberf.
itab_contabil-msg = text-391.
APPEND itab_contabil.
ENDIF.
ENDLOOP.
IF v_aux EQ '1'.
CLEAR v_aux.
ELSE.
CLEAR v_erro_f28.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
ENDIF.
IF v_status_f30 EQ 'S'.
PERFORM executa_clearing_agente.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
erro_bi = 'X'.
ENDIF.
ENDIF.
ENDFORM.
FORM get_parameters_comissao .
DATA: v_codeven TYPE /pws/zycbt011-codeven,
v_codaux TYPE /pws/zycbt012-codaux,
v_nrseq TYPE /pws/zycet010-nrseq.
PERFORM clear_date_batch.
v_nrseq = itab_zycbt006-nrinvoic+0(10).
REFRESH itab_zycbt013.
SELECT * FROM /pws/zycbt013
INTO TABLE itab_zycbt013
WHERE tabela = '/PWS/ZYCET010'.
IF wa_zycbt007-liq_trans EQ 'R'.
CONCATENATE '003' /pws/zycbe005-tpcontr INTO v_codeven.
ELSE.
CONCATENATE '004' itab_selreg-codp INTO v_codeven.
ENDIF.
v_codaux = itab_selreg-lifnr.
CLEAR wa_zycbt011.
SELECT SINGLE * FROM /pws/zycbt011
INTO wa_zycbt011
WHERE codeven = v_codeven
AND codmod = 'E'.
IF wa_zycbt007-comis = 'C'.
SELECT * FROM /pws/zycbt012
INTO TABLE itab_zycbt012a
WHERE codeven = v_codeven AND
codmod = 'E' AND
tpcodaux = 'C' AND
codaux = v_codaux.
IF sy-subrc NE 0.
SELECT * FROM /pws/zycbt012
INTO TABLE itab_zycbt012a
WHERE codeven = v_codeven AND
codmod = 'E' AND
tpcodaux = 'C' AND
codaux = ' '.
ENDIF.
ENDIF.
ENDFORM.
FORM valor_baixar_comissao .
CLEAR: v_vlcomis, v_saliq, v_some.
IF NOT itab_zycbt006[] IS INITIAL
AND itab_zycbt006[] IS INITIAL.
SELECT * FROM /pws/zycbt006
INTO TABLE itab_zycbt006_pagos
FOR ALL ENTRIES IN itab_zycbt006
WHERE nrinvoic = itab_zycbt006-nrinvoic AND
nrparcf = itab_zycbt006-nrparcf AND
gsberf = itab_zycbt006-gsberf.
ENDIF.
READ TABLE itab_zycbt030 WITH KEY
nrinvoic = itab_aux-nrinvoic
nrparcf = itab_aux-nrparcf
vbeln = itab_aux-vbeln
gsberf = itab_aux-gsberf.
READ TABLE itab_zycbt017 WITH KEY nrinvoic = itab_zycbt006-nrinvoic
nrparcf = itab_zycbt006-nrparcf
gsberf = itab_zycbt006-gsberf.
LOOP AT itab_zycbt006_pagos WHERE nrinvoic = itab_zycbt006-nrinvoic
AND nrparcf = itab_zycbt006-nrparcf
AND gsberf = itab_zycbt006-gsberf.
v_some = v_some + itab_zycbt006_pagos-vlme.
ENDLOOP.
v_saliq = itab_zycbt017-vlavinc - v_some.
IF v_saliq = 0.
IF itab_aux-valor = 0.
v_gjahr = itab_zycbt030-budat(4).
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.
SELECT SINGLE wrbtr FROM bsid INTO bsid-wrbtr
WHERE belnr = itab_aux-belnr6
AND gjahr = v_year
AND kunnr = itab_zycbt005-kunnr
AND bukrs = itab_zycbt005-bukrs.
IF sy-subrc = 0.
itab_zycbe033-wrbtr = bsid-wrbtr.
ELSE.
itab_zycbe033-wrbtr = itab_aux-valor.
ENDIF.
ELSE.
itab_zycbe033-wrbtr = itab_aux-valor.
ENDIF.
ELSE.
itab_zycbe033-wrbtr = itab_aux-valor.
ENDIF.
ENDFORM.
FORM verifica_rateio1 .
CLEAR: itab_aux.
REFRESH: itab_aux.
LOOP AT itab_zycbt030
WHERE nrinvoic = itab_zycbt006-nrinvoic
AND nrparcf = itab_zycbt006-nrparcf
AND gsberf = itab_zycbt006-gsberf.
itab_aux-valor =
( itab_zycbt030-kwert / itab_zycbt030-s_kwert )
* itab_selreg-vlme.
MOVE:
itab_zycbt030-nrinvoic TO itab_aux-nrinvoic,
itab_zycbt030-nrparcf TO itab_aux-nrparcf,
itab_zycbt030-vbeln TO itab_aux-vbeln,
itab_zycbt030-gsberf TO itab_aux-gsberf,
itab_zycbt030-flag TO itab_aux-flag,
itab_zycbt030-budat TO itab_aux-budat.
IF itab_zycbt030-belnr6 IS INITIAL.
MOVE itab_zycbt030-belnr TO itab_aux-belnr6.
ELSE.
MOVE itab_zycbt030-belnr6 TO itab_aux-belnr6.
ENDIF.
APPEND itab_aux.
ENDLOOP.
ENDFORM.
FORM dados_batch_comis .
itab_zycbe033-zterm = space.
itab_zycbe033-tcode = 'F-30'.
itab_zycbe033-tabela = '/PWS/ZYCET010'.
itab_zycbe033-cpochv = itab_selreg-nrchave.
itab_zycbe033-budat = itab_zycbt006-dtpagto.
IF /pws/zycbt007-fdtdoc = 'D'.
itab_zycbe033-bldat = sy-datum.
itab_zycbe033-d_valut = sy-datum.
ELSE.
itab_zycbe033-bldat = itab_zycbe033-budat.
itab_zycbe033-d_valut = itab_zycbe033-budat.
ENDIF.
LOOP AT itab_zycbt013.
CASE itab_zycbt013-cpor3.
WHEN 'XBLNR'.
CASE itab_zycbt013-cpocb.
WHEN 'NRSEQC'.
itab_zycbe033-xblnr = itab_selreg-nrchave.
WHEN 'NRINVOIC'.
itab_zycbe033-xblnr = itab_selreg-nrchave.
WHEN 'NRCONTR'.
itab_zycbe033-xblnr = itab_zycbt006-nrcontr.
ENDCASE.
WHEN 'ZUONR'.
CASE itab_zycbt013-cpocb.
WHEN 'NRSEQC'.
itab_zycbe033-d_zuonr = itab_selreg-nrchave.
itab_zycbe033-c_zuonr = itab_selreg-nrchave.
WHEN 'NRINVOIC'.
itab_zycbe033-d_zuonr = itab_selreg-nrchave.
itab_zycbe033-c_zuonr = itab_selreg-nrchave.
WHEN 'NRCONTR'.
itab_zycbe033-d_zuonr = itab_zycbt006-nrcontr.
itab_zycbe033-c_zuonr = itab_zycbt006-nrcontr.
ENDCASE.
ENDCASE.
ENDLOOP.
itab_zycbe033-bktxt = wa_zycbt007-bktxt.
itab_zycbe033-d_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-c_sgtxt = wa_zycbt011-txtdesc.
itab_zycbe033-augtx = wa_zycbt011-txtdesc.
PERFORM verify_null_field USING itab_zycbt006-bukrs
'BUKRS'
text-004.
itab_zycbe033-bukrs = itab_zycbt006-bukrs.
PERFORM verify_null_field USING /pws/zycbt017-waers
'WAERS'
text-005.
itab_zycbe033-waers = /pws/zycbt017-waers.
PERFORM verifica_data_taxa.
PERFORM define_cambio USING v_databl
itab_zycbt006-waers
wa_zycbt007-waersb
itab_zycbe033-kursf.
PERFORM verify_null_field USING itab_zycbe033-kursf
'TXCAMB'
text-006.
PERFORM verify_null_field USING wa_zycbt011-blart
'BLART'
text-080.
itab_zycbe033-blart = wa_zycbt011-blart.
itab_zycbe033-zfbdt = itab_zycbt006-dtpagto.
itab_zycbe033-d_gsber = /pws/zycbt017-gsberf.
READ TABLE itab_zycbt005 WITH KEY
nrinvoic = itab_zycbt006-nrinvoic
nrparcf = itab_zycbt006-nrparcf
gsberf = itab_zycbt006-gsberf.
itab_zycbe033-d_prctr = itab_zycbt005-prctr.
itab_zycbe033-d_fipos = itab_zycbt005-fipos.
itab_zycbe033-c_gsber = itab_zycbt005-gsberf.
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.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB009TOP
...
nrinvoic TYPE /pws/zycbe005-nrinvoic,
nrparcf TYPE /pws/zycbe005-nrparcf ,
gsberf TYPE /pws/zycbe005-gsberf ,
vldesvin TYPE /pws/zycbe005-vlvinc ,
END OF t_desvincula .
DATA: itab_desvincula
TYPE STANDARD TABLE OF t_desvincula
WITH HEADER LINE ,
wa_desvincula TYPE t_desvincula ,
v_flag_estorno TYPE c .
* >> Início da inclusão:
TYPES:
BEGIN OF t_s_aux,
nrinvoic TYPE /pws/zycbt030-nrinvoic,
nrparcf TYPE /pws/zycbt030-nrparcf,
vbeln TYPE /pws/zycbt030-vbeln,
gsberf TYPE /pws/zycbt030-gsberf,
valor TYPE /pws/zycbt030-kwert,
belnr6 TYPE /pws/zycbt030-belnr,
budat TYPE /pws/zycbt030-budat,
flag(1) TYPE c,
END OF t_s_aux,
BEGIN OF t_s_selreg,
nrchave(10) TYPE c,
docto(10) TYPE c,
dtvencto TYPE d,
vlme TYPE /pws/zycbt004-vlme,
dtinicio TYPE d,
lifnr TYPE lfa1-lifnr,
codp TYPE /pws/zycbt037-codpad,
END OF t_s_selreg,
BEGIN OF t_s_doc_f02,
docto TYPE /pws/zycbt005-belnr,
f02(1) TYPE c,
END OF t_s_doc_f02,
t_t_aux TYPE STANDARD TABLE OF t_s_aux WITH DEFAULT KEY,
t_t_selreg TYPE STANDARD TABLE OF t_s_selreg WITH DEFAULT KEY,
t_t_doc_f02 TYPE STANDARD TABLE OF t_s_doc_f02 WITH DEFAULT KEY.
* << Fim da inclusão
DATA: BEGIN OF itab_zycbt030_aux2 OCCURS 0,
nrinvoic LIKE /pws/zycbt030-nrinvoic,
nrparcf LIKE /pws/zycbt030-nrparcf,
vbeln LIKE /pws/zycbt030-vbeln,
gsberf LIKE /pws/zycbt030-gsberf,
belnr LIKE /pws/zycbt030-belnr,
budat LIKE /pws/zycbt030-budat,
campo(6),
lugar,
tpdev(2),
bukrs LIKE /pws/zycbt001-bukrs.
DATA: END OF itab_zycbt030_aux2.
DATA: BEGIN OF itab_modo OCCURS 0.
INCLUDE STRUCTURE spopli.
DATA: END OF itab_modo.
* >> Início da inclusão:
DATA:
itab_zycbt006_pagos TYPE STANDARD TABLE OF /pws/zycbt006
WITH HEADER LINE,
itab_zycbt012a TYPE STANDARD TABLE OF /pws/zycbt012
WITH HEADER LINE,
itab_doc_f02 TYPE t_t_doc_f02 WITH HEADER LINE,
itab_aux TYPE t_t_aux WITH HEADER LINE,
itab_selreg TYPE t_t_selreg WITH HEADER LINE.
* << Fim da inclusão
DATA: BEGIN OF itab_zycbt017_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycbt017.
DATA: v_fsaldo TYPE c,
END OF itab_zycbt017_aux.
DATA: BEGIN OF itab_zycbt051_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycbt051.
DATA: mark(1),
END OF itab_zycbt051_aux.
DATA: BEGIN OF itab_zycbt051_aux2 OCCURS 0.
INCLUDE STRUCTURE /pws/zycbt051.
...
...
v_index TYPE i,
v_index_parid TYPE i,
v_dtcalcjur LIKE sy-datum,
v_campo(25),
v_valor(20),
v_gjahr(4),
i_belnr LIKE bkpf-belnr,
i_bukrs LIKE bkpf-bukrs,
i_gjahr LIKE bkpf-gjahr,
v_slvinc LIKE /pws/zycbt001-slvinc,
* >> Início da inclusão:
v_valorc TYPE /pws/zycbt017-vlcomis,
erro_bi(1) TYPE c VALUE space,
* << Fim da inclusão
v_tcode,
v_slvinc_ant LIKE /pws/zycbt001-slvinc,
v_codeven_dev LIKE /pws/zycbt011-codeven,
v_ctgmedia LIKE /pws/zycbt009-kurst,
v_vldev LIKE /pws/zycbt050-vldev,
v_existe TYPE c,
v_nrseqcimp LIKE /pws/zycbt053-nrseqc ,
rimcm1 LIKE indx-srtfd VALUE 'NRSEQC001',
rimcm2 LIKE indx-srtfd VALUE 'ITABTRANS',
rimcm3 LIKE indx-srtfd VALUE 'ITABVINCU',
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB009
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 044
Texto: (19 caracteres)
"Número do Documento"
Comprimento máximo: 19
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 048
Texto: (7 caracteres)
"Empresa"
Comprimento máximo: 7
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 114
Texto: (30 caracteres)
"Clearing na Comissão de Agente"
Comprimento máximo: 30
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 388
Texto: (15 caracteres)
"Comissão Agente"
Comprimento máximo: 15
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 389
Texto: (51 caracteres)
"Comissão não Liquidada (Provisão não Contabilizada)"
Comprimento máximo: 51
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 390
Texto: (18 caracteres)
"Comissão de Agente"
Comprimento máximo: 18
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 391
Texto: (22 caracteres)
"Comissão não Liquidada"
Comprimento máximo: 22
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 392
Texto: (17 caracteres)
"Data de Pagamento"
Comprimento máximo: 17
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 393
Texto: (18 caracteres)
"Valor do Pagamento"
Comprimento máximo: 18
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 394
Texto: (39 caracteres)
"Data de captação não pode ser maior que"
Comprimento máximo: 39
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 395
Texto: (39 caracteres)
"Clearing Comissão Agente não executado."
Comprimento máximo: 39