Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Despesas
Data/Hora da Publicação: 07/08/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:48:31
Descrição da Nota: AJUSTES NO LANÇAMENTO DAS DESPESAS NA MIRO
Sintoma
Ajuste no lançamento das despesas na miro e no preenchimento dos textos da miro.
Solução
Ajuste no lançamento das despesas na miro e no preenchimento dos textos da miro.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04362 Data: 07/08/2007 Hora: 16:38:07
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04362
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00008
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04286 - 00001 - 7.0 - 00002 - DESENVOLVIMENTO PARA GERAR A MIRO NA FATURA(AMERICA LATINA)
----------------------------------------------------------------------------------------------------
AJUSTES NO LANÇAMENTO DAS DESPESAS NA MIRO
----------------------------------------------------------------------------------------------------
Palavras Chave:
FATURA - DESPESAS - MIRO - LANÇAMENTO - TEXTOS
/PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI003 0100
FUNC /PWS/ZYCI_TRANSACAO_F_51C
REPS /PWS/LZYCIGF2F01
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_TRANSACAO_F_51C
...
USING v_string_credito.
ENDIF.
IF t_dados-d_valut EQ '00000000'.
WRITE: t_contas-d_valut TO v_data_val_char.
ELSE.
WRITE: t_dados-d_valut TO v_data_val_char.
ENDIF.
PERFORM bdc_screen USING 'SAPMF05A' '0300'.
READ TABLE itab_oculto WITH KEY campo = 'BSEG-BUPLA'
chave = v_chave.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_TRANSACAO_F_51C
IF sy-subrc <> 0.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_TRANSACAO_F_51C
IF sy-subrc <> 0 and not t_dados-brnch is initial.
* << Fim da inclusão
PERFORM bdc_field USING: 'BSEG-BUPLA' t_dados-brnch.
ENDIF.
WRITE: t_contas-wrbtr TO v_wrbtr CURRENCY t_dados-waers.
PERFORM bdc_field USING 'BSEG-WRBTR' v_wrbtr.
READ TABLE itab_oculto WITH KEY campo = 'BSEG-VALUT'
chave = v_chave.
IF sy-subrc <> 0.
PERFORM bdc_field USING 'BSEG-VALUT' v_data_val_char.
ENDIF.
READ TABLE itab_oculto WITH KEY campo = 'BSEG-ZUONR'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCIGF2F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
itab_zycbe033-d_gsber = itab_zycit003-gsber.
itab_zycbe033-d_kostl = itab_ekkn-kostl.
itab_zycbe033-d_prctr = itab_ekkn-prctr.
itab_zycbe033-d_fipos = itab_ekkn-fipos.
itab_zycbe033-d_fictr = itab_ekkn-fictr.
itab_zycbe033-c_gsber = itab_zycit003-gsber.
itab_zycbe033-c_kostl = itab_ekkn-kostl.
itab_zycbe033-c_prctr = itab_ekkn-prctr.
itab_zycbe033-c_fipos = itab_ekkn-fipos.
itab_zycbe033-c_fictr = itab_ekkn-fictr.
* >> Início da inclusão: FORM FILL_DATE_F_51
IF /pws/zycit477 IS INITIAL.
* << Fim da inclusão
itab_zycbe033-brnch = /pws/zycie006-j_1bbranch.
* >> Início da inclusão: FORM FILL_DATE_F_51
ENDIF.
* << Fim da inclusão
APPEND itab_zycbe033.
FREE itab_contas.
v_totline = 1.
LOOP AT itab_zycbt035.
IF /pws/zycit000-clucro_ia = ' '.
CLEAR itab_zycbt035-werks.
...
...
PERFORM preenche_t_doc.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
IF itab_zycbt034[] IS INITIAL.
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_F_51C'
EXPORTING
v_modo = v_modo_bi
v_belnr = v_belnr
v_totline = v_totline
* >> Início da inclusão: FORM FILL_DATE_F_51
v_rec = 'X'
* << Fim da inclusão
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_contas = itab_contas
t_doc = itab_zycbt036
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
...
...
ENDIF.
ENDIF.
APPEND itab_zycbt035.
ENDLOOP.
ENDFORM.
FORM get_parameters_f-51.
DATA: v_index TYPE i.
PERFORM clear_date_batch.
v_trans = 'F-51'.
v_codeven = '001FS'.
* >> Início da inclusão: FORM GET_PARAMETERS_F-51
CASE /pws/zycie006-tpfatura.
WHEN '01'.
v_codeven = '001N'.
WHEN '02'.
v_codeven = '001NF'.
WHEN '03'.
v_codeven = '001NS'.
WHEN '04'.
v_codeven = '001NO'.
ENDCASE.
* << Fim da inclusão
PERFORM documento_contabil_mr1m.
CLEAR t001w.
REFRESH itab_zycbt013.
SELECT * FROM /pws/zycbt013
INTO TABLE itab_zycbt013
WHERE tabela = '/PWS/ZYCIT006'.
REFRESH: itab_zycbt012.
SELECT * FROM /pws/zycbt012
INTO TABLE itab_zycbt012
WHERE codeven = v_codeven
...
...
ENDCASE.
WHEN 'SGTXT'.
CASE itab_zycbt013-cpocb.
WHEN 'EMBARCA'.
WHEN 'NRSEQ'.
ENDCASE.
ENDCASE.
ENDLOOP.
itab_zycbe033-bukrs = /pws/zycie006-bukrs.
itab_zycbe033-waers = /pws/zycie006-waers.
* >> Início da inclusão: FORM FILL_DATE_F_51_DOCS_MIRO
IF /pws/zycit477 IS INITIAL.
* << Fim da inclusão
itab_zycbe033-brnch = /pws/zycie006-j_1bbranch.
* >> Início da inclusão: FORM FILL_DATE_F_51_DOCS_MIRO
ENDIF.
* << Fim da inclusão
APPEND itab_zycbe033.
CONCATENATE /pws/zycie006-belnr_mr1m rbkp-budat(4) INTO v_awkey.
SELECT SINGLE * FROM bkpf
WHERE awtyp EQ 'RMRP'
AND awkey EQ v_awkey.
itab_zycbt036-mandt = sy-mandt.
...
...
ELSEIF sy-subrc NE 0.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
EXIT.
PERFORM clear_date_batch.
ENDIF.
ENDFORM.
FORM miro_am_la.
* >> Início da inclusão: FORM MIRO_AM_LA
DATA: itab_zycit003a TYPE /pws/zycit003 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_ekko_a OCCURS 0.
DATA: ebeln TYPE ekko-ebeln,
knumv TYPE ekko-knumv.
DATA: END OF itab_ekko_a.
* << Fim da inclusão
TYPES: BEGIN OF mmcr_drseg_co.
INCLUDE STRUCTURE cobl_mrm_d.
TYPES: cr LIKE drseg_cr OCCURS 0,
unpl_refwr TYPE refwr,
END OF mmcr_drseg_co.
TYPES: BEGIN OF mmcr_drseg.
INCLUDE STRUCTURE drseg.
TYPES: cr LIKE drseg_cr OCCURS 0,
co TYPE mmcr_drseg_co OCCURS 0,
sm LIKE drseg_sm OCCURS 0,
...
...
itab_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE,
itab_account TYPE bapi_incinv_create_account
OCCURS 0 WITH HEADER LINE,
v_quantity LIKE itab_itemdata-quantity,
v_amount TYPE /pws/zycit003-netpr,
v_vlfr TYPE /pws/zycie031-wrbtr,
v_vlsg TYPE /pws/zycie031-wrbtr,
v_vlaux TYPE /pws/zycie031-wrbtr,
v_kursf TYPE rbkp-kursf,
v_zbd1p TYPE rbkp-zbd1p,
* >> Início da exclusão: FORM MIRO_AM_LA
v_ebelp(6) TYPE c,
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
v_ebelp(6) TYPE c VALUE '000000',
* << Fim da inclusão
v_item_amount TYPE /pws/zycit003-netpr,
v_item_amount2 TYPE /pws/zycit036-netpr.
DATA: itab_konv TYPE konv OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_ped OCCURS 0.
DATA: ebeln TYPE ekko-ebeln,
knumv TYPE ekko-knumv.
DATA: END OF itab_ped.
DATA: itab_contas_aux LIKE itab_contas OCCURS 0 WITH HEADER LINE,
itab_zycbe033_aux LIKE itab_zycbe033 OCCURS 0 WITH HEADER LINE,
itab_zycit030 LIKE /pws/zycit030 OCCURS 0 WITH HEADER LINE,
...
...
SELECT nrseq FROM /pws/zycit006
INTO TABLE itab_fat
WHERE nrseqce EQ /pws/zycie006-nrseqce
AND eliminado EQ space
AND tpfatura EQ /pws/zycie006-tpfatura
AND nrseq NE /pws/zycie006-nrseq.
IF /pws/zycie006-tpfatura EQ '04' AND sy-subrc EQ 0.
SELECT * FROM /pws/zycit047 INTO TABLE itab_zycit047a
FOR ALL ENTRIES IN itab_fat
WHERE nrseq EQ itab_fat-nrseq.
* >> Início da inclusão: FORM MIRO_AM_LA
ENDIF.
IF /pws/zycie006-tpfatura EQ '04'.
REFRESH itab_zycit003a.
itab_zycit003a[] = itab_zycit003[].
SORT itab_zycit003a BY ebeln.
DELETE ADJACENT DUPLICATES FROM itab_zycit003a COMPARING ebeln.
IF NOT itab_zycit003a[] IS INITIAL.
SELECT ebeln knumv FROM ekko INTO TABLE itab_ekko_a
FOR ALL ENTRIES IN itab_zycit003a
WHERE ebeln EQ itab_zycit003a-ebeln.
IF sy-subrc EQ 0.
SELECT * FROM konv INTO TABLE itab_konv
FOR ALL ENTRIES IN itab_ekko_a
WHERE knumv EQ itab_ekko_a-knumv.
DELETE itab_konv WHERE kntyp NE 'B'
OR kbetr EQ space.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM MIRO_AM_LA
ENDIF.
* << Fim da inclusão
ELSE.
SELECT ebeln ebelp mwskz FROM ekpo
INTO TABLE itab_ivaped
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
...
...
READ TABLE itab_contas_aux WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING itab_contas_aux-wrbtr.
CLEAR: itab_zycit031.
itab_zycit031-tcode = itab_zycie033-tcode .
itab_zycit031-tabela = itab_zycie033-tabela .
itab_zycit031-cpochv = itab_zycie033-cpochv .
itab_zycit031-ebeln = itab_zycit003-ebeln .
itab_zycit031-ebelp = itab_zycit003-ebelp .
* >> Início da exclusão: FORM MIRO_AM_LA
itab_zycit031-menge = itab_zycit003-qtd_iten.
* << Fim da exclusão
itab_zycit031-meins = itab_zycit003-meins .
itab_zycit031-mwskz = itab_zycie033-mwskz .
CLEAR: v_vlaux.
LOOP AT itab_zycit047 WHERE vldp > 0.
CLEAR: itab_zycit019, itab_zycit030.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit047-tpdesp.
READ TABLE itab_zycit030 WITH KEY
codigo = itab_zycit019-codigo.
itab_zycit031-lgort = itab_zycit030-kschl.
itab_zycit031-wrbtr = itab_contas_aux-wrbtr *
( itab_zycit047-vldp / /pws/zycie006-vltotal ).
v_vlaux = v_vlaux + itab_zycit031-wrbtr.
CLEAR: itab_zycit031-sernp.
READ TABLE itab_zycit047a WITH KEY
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0.
itab_zycit031-sernp = 'X'.
ENDIF.
* >> Início da exclusão: FORM MIRO_AM_LA
APPEND itab_zycit031.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
CLEAR: itab_ekko_a.
READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.
v_ebelp+1(5) = itab_zycit003-ebelp.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
kposn = v_ebelp
kschl = itab_zycit031-lgort.
IF sy-subrc NE 0.
CLEAR: itab_zycit031-lgort.
itab_zycit031-sernp = 'X'.
LOOP AT itab_zycit030 WHERE codigo = itab_zycit019-codigo.
READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv
kposn = v_ebelp
kschl = itab_zycit030-kschl.
IF sy-subrc EQ 0.
itab_zycit031-lgort = itab_zycit030-kschl.
CLEAR: itab_zycit031-sernp.
ENDIF.
ENDLOOP.
ENDIF.
COLLECT itab_zycit031.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM MIRO_AM_LA
READ TABLE itab_zycit031 WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
* << Fim da inclusão
v_vlaux = itab_contas_aux-wrbtr - v_vlaux.
itab_zycit031-wrbtr = itab_zycit031-wrbtr + v_vlaux.
MODIFY itab_zycit031 TRANSPORTING wrbtr
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND lgort EQ itab_zycit031-lgort.
* >> Início da inclusão: FORM MIRO_AM_LA
itab_zycit031-menge = itab_zycit003-qtd_iten.
MODIFY itab_zycit031 TRANSPORTING menge
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* << Fim da inclusão
itab_zycie033-waers = /pws/zycie006-waers.
itab_zycie033-rmwwr = itab_contas_aux-wrbtr + itab_zycie033-rmwwr.
ENDLOOP.
ELSEIF /pws/zycie006-tpfatura EQ '02'.
READ TABLE itab_zycit030 WITH KEY codigo = 'FRETEI'.
LOOP AT itab_zycit003.
READ TABLE itab_contas_aux WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING itab_contas_aux-wrbtr.
...
...
itab_zycit031-ebeln = itab_zycit003-ebeln .
itab_zycit031-ebelp = itab_zycit003-ebelp .
itab_zycit031-wrbtr = itab_contas_aux-wrbtr.
v_vlfr = itab_zycit003-vlfre_aux .
v_vlsg = itab_zycit003-vlseg_aux.
itab_zycie033-rmwwr = itab_zycit031-wrbtr + itab_zycie033-rmwwr.
itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlfr.
IF /pws/zycit031-inco1_ci EQ 'CIF'.
itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlsg.
ENDIF.
* >> Início da exclusão: FORM MIRO_AM_LA
itab_zycit031-menge = itab_zycit003-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM MIRO_AM_LA
itab_zycit031-menge = itab_zycit003-toinv.
* << Fim da inclusão
itab_zycit031-meins = itab_zycit003-meins.
itab_zycit031-mwskz = itab_ivaped-mwskz.
APPEND itab_zycit031.
itab_zycie033-waers = /pws/zycie006-waers.
IF NOT v_vlfr IS INITIAL.
READ TABLE itab_zycit030 WITH KEY codigo = 'FRETEI'.
itab_zycit031-wrbtr = v_vlfr.
itab_zycit031-lgort = itab_zycit030-kschl.
APPEND itab_zycit031.
ENDIF.
...
...
itab_account-wbs_elem = itab_ekkn_mult-ps_psp_pnr.
APPEND itab_account.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDIF.
READ TABLE itab_zycie033 INDEX 1.
wa_headerdata-invoice_ind = 'X'.
wa_headerdata-pmnttrms = itab_zycie033-zterm.
wa_headerdata-bline_date = itab_zycie033-zfbdt.
* >> Início da inclusão: FORM MIRO_AM_LA
CASE /pws/zycie006-tpfatura.
WHEN '01'.
v_codeven = '001N'.
WHEN '02'.
v_codeven = '001NF'.
WHEN '03'.
v_codeven = '001NS'.
WHEN '04'.
v_codeven = '001NO'.
ENDCASE.
CLEAR: v_zuonr, v_sgtxt, v_bktxt, v_zuonr.
CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'
EXPORTING
v_nrseq = /pws/zycie001-nrseq
v_codeven = v_codeven
IMPORTING
v_xblnr = v_xblnr
v_zuonr = v_zuonr
v_sgtxt = v_sgtxt
v_bktxt = v_bktxt.
itab_itemdata-item_text =
wa_headerdata-item_text = v_sgtxt.
wa_headerdata-alloc_nmbr = v_zuonr.
MODIFY itab_itemdata TRANSPORTING item_text
WHERE item_text EQ space.
wa_headerdata-pmnt_block = /pws/zycie006-zlspr.
wa_headerdata-pymt_meth = /pws/zycie006-zlsch.
* << Fim da inclusão
wa_headerdata-doc_date = itab_zycie033-bldat.
wa_headerdata-pstng_date = itab_zycie033-budat.
wa_headerdata-ref_doc_no = itab_zycie033-bktxt.
wa_headerdata-comp_code = itab_zycie033-bukrs.
wa_headerdata-currency = itab_zycie033-waers.
wa_headerdata-gross_amount = itab_zycie033-rmwwr.
wa_headerdata-header_txt = wa_zycbt007-bktxt.
wa_headerdata-diff_inv = itab_zycie033-lifnr.
wa_headerdata-doc_type = wa_zycbt011-blart.
wa_headerdata-pmnt_block = 'A'.
...
...
itab_zycit132-hr_belnrp = sy-uzeit.
MODIFY itab_zycit132 TRANSPORTING belnr_mr1m belnr_p
dt_belnrp hr_belnrp
miro status
WHERE belnr_p EQ space.
ELSE.
/pws/zycie006-statusp_mr1m = 'X'.
/pws/zycie006-statusp = 'C'.
/pws/zycie006-belnr_mr1m = v_belnr_mr1m.
/pws/zycie006-belnr_p = v_doc_miro.
* >> Início da inclusão: FORM MIRO_AM_LA
/pws/zycie006-dt_mr1m = sy-datum.
* << Fim da inclusão
/pws/zycie006-dt_belnrp = sy-datum.
/pws/zycie006-hr_belnrp = sy-uzeit.
ENDIF.
MODIFY /pws/zycit006 FROM /pws/zycie006.
ELSE.
LOOP AT itab_return.
CONCATENATE itab_return-id itab_return-number
itab_return-message INTO v_mensagem
SEPARATED BY space.
MESSAGE i061 WITH v_mensagem+0(50)
...
...
READ TABLE itab_zycit032 WITH KEY tcode = 'MR8M'
tabela = '/PWS/ZYCIT006'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
ENDIF.
IF sy-subrc EQ 0.
PERFORM fill_date_f_51_docs_miro.
MESSAGE i030 WITH v_belnr_ant.
IF v_parcela = 'X'.
CLEAR: itab_zycit132.
* >> Início da exclusão: FORM ESTORN_MIRO_LA
MODIFY itab_zycit132 TRANSPORTING belnr_mr1m belnr_p
dt_belnrp hr_belnrp
miro status
* << Fim da exclusão
* >> Início da inclusão: FORM ESTORN_MIRO_LA
MODIFY itab_zycit132 TRANSPORTING miro status
* << Fim da inclusão
WHERE belnr_mr1m EQ /pws/zycie006-belnr_mr1m.
ENDIF.
* >> Início da exclusão: FORM ESTORN_MIRO_LA
CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,
/pws/zycie006-dt_mr1m,
/pws/zycie006-belnr_p, itab_zycit132-status.
* << Fim da exclusão
PERFORM clear_date_batch.
CLEAR v_mr1m_ok.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
screen-input = '0'.
ENDIF.
IF screen-name = '/PWS/ZYCIE006-NRFAT' AND
NOT /pws/zycie006-nrfat IS INITIAL.
screen-input = '0'.
ENDIF.
IF screen-name = '/PWS/ZYCIE006-BUKRS' AND
NOT /pws/zycie006-bukrs IS INITIAL.
screen-input = 0.
ENDIF.
* >> Início da exclusão: MODULE SET_SCREEN
IF screen-name = '/PWS/ZYCIE006-J_1BBRANCH'.
screen-input = 1.
ENDIF.
* << Fim da exclusão
MODIFY SCREEN.
ENDIF.
IF ( /pws/zycie006-tpfatura NE '01'
AND /pws/zycie006-tpfatura NE '11' )
AND screen-name = 'TAB_ITENS'.
screen-input = '0'.
MODIFY SCREEN.
screen-invisible = '1'.
ELSE.
screen-invisible = '0'.
...