Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Despesas
Data/Hora da Publicação: 27/07/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:48:14
Descrição da Nota: DESENVOLVIMENTO PARA GERAR A MIRO NA FATURA(AMERICA LATINA)
Sintoma
Desenvolvimento para gerar a Miro na Fatura(America Latina)
Solução
Desenvolvimento para gerar a Miro na Fatura(America Latina).
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04286 Data: 27/07/2007 Hora: 09:11:02
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04286
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00002
Agrupamento : 00005
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02200 - 00001 - 6.0 - 00025 - TRATAMENTO PARA MOTIVO DE ESTORNO DA FB08 NA FATURA
02376 - 00002 - 6.0 - 00025 - SISTEMA ESTÁ PERMITINDO ALTERAÇÃO DE FATURA, DEPOIS DA EMISSÃO DA
----------------------------------------------------------------------------------------------------
DESENVOLVIMENTO PARA GERAR A MIRO NA FATURA(AMERICA LATINA)
----------------------------------------------------------------------------------------------------
Palavras Chave:
MIRO - FATURA - AMERICA - LATINA
/PWS/SAPMZYCI003 - /PWS/ZYCIT477
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI003 0101
DYNP /PWS/SAPMZYCI003 0111
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003I01
REPS /PWS/MZYCI003O01
REPS /PWS/MZYCI003TOP
REPS /PWS/MZYCI003X01
TABD /PWS/ZYCIE006
TABD /PWS/ZYCIE132
TABD /PWS/ZYCIT006
TABD /PWS/ZYCIT132
TABL /PWS/ZYCIT477
TOBJ /PWS/ZYCIT477S
TRAN /PWS/ZYCIT477
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI003 0101
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
*Campos adicionados Inicio:
TEXT_MR1M
Texto 13 83 9 9 1 CHAR
/PWS/ZYCIE006-BELNR_MR1M
I/O 13 93 10 10 1 CHAR X Off
OUT RBN
Dest
Saída de conversão=ALPHA
/PWS/ZYCIE006-IVA
Texto 20 1 7 7 1 CHAR X F
Chave externa
/PWS/ZYCIE006-IVA
I/O 20 20 2 2 1 CHAR X Ent Off
BOL
Entr.obrig., Chave externa, Botão EntrsPoss.stand.
*Campos adicionados Fim:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI003 0111
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
+ TC_FAT_PARC
Tabel 2 2 105 105 8
Seleção linha=Simples, Seleção coluna=Simples
TabEntr., Com título, Configurável, Coluna marc., LSep.horiz., LnhSep.vert.
*Campos adicionados Inicio:
- /PWS/ZYCIE132-BELNR_MR1M
Texto 1 13 9 10 1 CHAR X F
RBN
Título de coluna TC
- /PWS/ZYCIE132-BELNR_MR1M
I/O 1 13 10 10 1 CHAR X Off
OUT RBN
Dest, Elem.TC
Saída de conversão=ALPHA
*Campos adicionados Fim:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
ENDIF.
IF e_subrc = '8'.
EXIT.
ELSE.
APPEND itab_zycbe033.
FREE itab_contas.
LOOP AT itab_zycbt035.
MOVE-CORRESPONDING itab_zycbt035 TO itab_contas.
APPEND itab_contas.
ENDLOOP.
* >> Início da inclusão: FORM FILL_DATE_F-43_F-02
IF NOT /pws/zycit477 IS INITIAL.
IF NOT /pws/zycie006-belnr_mr1m IS INITIAL.
EXIT.
ENDIF.
PERFORM miro_am_la.
EXIT.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
IF itab_zycbt034[] IS INITIAL.
IF /pws/zycie006-frpagto = 'D' AND e_subrc = '0'.
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_F_02C'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
...
...
FORM reverse_document_fb08.
DATA:
v_monat LIKE bsis-monat.
CLEAR v_erro.
IF v_parcela = 'X'.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
IF itab_zycit132-miro EQ 'X'.
PERFORM estorn_miro_la.
EXIT.
ENDIF.
* << Fim da inclusão
...
...
IF v_subrc = 0.
itab_zycbe033-budat = /pws/zycie006-dtlanc.
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
ELSE.
itab_zycbe033-budat = sy-datum.
itab_zycbe033-stgrd = /pws/zycbt007-perencer .
ENDIF.
ENDIF.
v_belnr_ant = itab_zycit132-belnr_p.
ELSE.
* >> Início da inclusão: FORM REVERSE_DOCUMENT_FB08
IF /pws/zycie006-statusp_mr1m EQ 'X'.
PERFORM estorn_miro_la.
EXIT.
ENDIF.
* << Fim da inclusão
itab_zycbe033-tabela = '/PWS/ZYCIT006'.
itab_zycbe033-cpochv = /pws/zycie006-nrseq.
itab_zycbe033-belnr = /pws/zycie006-belnr_p.
...
...
FORM atualiza_total_parcelas.
* >> Início da inclusão: FORM ATUALIZA_TOTAL_PARCELAS
data v_perc_t TYPE p DECIMALS 2.
* << Fim da inclusão
...
* >> Início da inclusão: FORM ATUALIZA_TOTAL_PARCELAS
REFRESH: itab_rateio_parc.
* << Fim da inclusão
LOOP AT itab_zycit132.
v_total_parc = v_total_parc + itab_zycit132-vlparc.
IF v_waers_par IS INITIAL.
v_waers_par = itab_zycit132-waers.
* >> Início da inclusão: FORM ATUALIZA_TOTAL_PARCELAS
ENDIF.
IF itab_zycit132-status NE 'X'
and not /pws/zycie006-vltotal is initial.
itab_rateio_parc-nrparc = itab_zycit132-nrparc.
itab_rateio_parc-perc =
( itab_zycit132-vlparc / /pws/zycie006-vltotal ) * 100.
v_perc_t = v_perc_t + itab_rateio_parc-perc.
append itab_rateio_parc.
* << Fim da inclusão
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM ATUALIZA_TOTAL_PARCELAS
itab_rateio_parc-perc = itab_rateio_parc-perc + ( 100 - v_perc_t ).
MODIFY itab_rateio_parc TRANSPORTING perc
WHERE nrparc EQ itab_rateio_parc-nrparc.
* << Fim da inclusão
LOOP AT itab_zycit132 WHERE mark = 'X' OR status EQ 'X'.
v_total_parc = v_total_parc - itab_zycit132-vlparc.
ENDLOOP.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
ELSE.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,
space TO itab_zycbt035_aux-bklas .
ENDIF.
ELSE.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,
itab_matuse-knttp TO itab_zycbt035_aux-knttp ,
space TO itab_zycbt035_aux-bklas .
ENDIF.
itab_zycbt035_aux-d_valut = /pws/zycie006-dtd_conta.
* >> Início da exclusão: FORM MULTIPLOS_LANCAMENTOS
IF v_parcela = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
IF v_parcela = 'X' AND /pws/zycit477 IS INITIAL.
* << Fim da inclusão
IF v_line = v_index.
itab_zycbt035_aux-wrbtr = itab_zycit132-vlparc - v_tot_parc.
ELSE.
itab_zycbt035_aux-wrbtr = itab_zycit132-vlparc *
( itab_zycit003-total / /pws/zycie006-vltotal ).
SELECT SINGLE * FROM tcurx WHERE currkey = /pws/zycie006-waers.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
itab_zycbt035_aux-wrbtr =
itab_zycbt035_aux-wrbtr * ( 10 ** ( tcurx-currdec - 2 ) ).
v_tot_parc = v_tot_parc + itab_zycbt035_aux-wrbtr.
ENDIF.
ELSE.
itab_zycbt035_aux-wrbtr = itab_zycit003-total.
ENDIF.
* >> Início da exclusão: FORM MULTIPLOS_LANCAMENTOS
IF NOT v_parcela = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
IF NOT v_parcela = 'X' OR /pws/zycit477 IS INITIAL.
* << Fim da inclusão
SELECT SINGLE * FROM tcurx WHERE currkey = /pws/zycie006-waers.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
itab_zycbt035_aux-wrbtr =
itab_zycbt035_aux-wrbtr * ( 10 ** ( tcurx-currdec - 2 ) ).
ENDIF.
itab_zycbt035_aux-werks = itab_zycit003-werks.
IF /pws/zycit000-clucro_ia = 'X'.
PERFORM verifica_centro_l.
ENDIF.
itab_zycbt035_aux-d_gsber = itab_zycit003-gsber.
v_tot_wrbtr = v_tot_wrbtr + itab_zycbt035_aux-wrbtr.
IF v_index EQ v_line.
* >> Início da exclusão: FORM MULTIPLOS_LANCAMENTOS
IF v_parcela = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
IF v_parcela = 'X' AND /pws/zycit477 IS INITIAL.
* << Fim da inclusão
v_dif_wrbtr = v_tot_wrbtr - itab_zycit132-vlparc.
ELSE.
v_dif_wrbtr = v_tot_wrbtr - /pws/zycie006-vltotal.
ENDIF.
IF v_dif_wrbtr NE 0.
itab_zycbt035_aux-wrbtr = itab_zycbt035_aux-wrbtr -
v_dif_wrbtr.
ENDIF.
ENDIF.
IF /pws/zycie006-tpfatura EQ '11'.
...
...
IF NOT /pws/zycie006-frpagto EQ 'D'.
READ TABLE itab_zycmt019 WITH KEY
codmod = 'PD'
tpmatnr = itab_matuse-j_1bmatuse.
IF sy-subrc EQ 0 AND itab_zycmt019-contabiliza EQ 'X'.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
ELSE.
CLEAR: itab_zycbt035_aux-ebeln, itab_zycbt035_aux-ebelp.
ENDIF.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ENDIF.
IF NOT /pws/zycit477 IS INITIAL.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
* << Fim da inclusão
ENDIF.
APPEND itab_zycbt035_aux.
ENDLOOP.
CLEAR: itab_zycbt035 ,
itab_zycbt035_aux2.
FREE: itab_zycbt035 ,
itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY matuse bklas d_gsber d_prctr c_prctr.
LOOP AT itab_zycbt035_aux.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse .
...
...
itab_zycbt035_aux-werks = itab_zycit003-werks.
IF NOT /pws/zycie006-frpagto EQ 'D'.
READ TABLE itab_zycmt019 WITH KEY
codmod = 'PD'
tpmatnr = itab_matuse-j_1bmatuse.
IF sy-subrc EQ 0 AND itab_zycmt019-contabiliza EQ 'X'.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
ELSE.
CLEAR: itab_zycbt035_aux-ebeln, itab_zycbt035_aux-ebelp.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
IF NOT /pws/zycit477 IS INITIAL.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
* << Fim da inclusão
ENDIF.
APPEND itab_zycbt035_aux.
ENDLOOP.
CLEAR: itab_zycbt035 ,
...
...
ENDIF.
IF NOT /pws/zycie006-frpagto EQ 'D'.
READ TABLE itab_zycmt019 WITH KEY
codmod = 'PD'
tpmatnr = itab_matuse-j_1bmatuse.
IF sy-subrc EQ 0 AND itab_zycmt019-contabiliza EQ 'X'.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
ELSE.
CLEAR: itab_zycbt035_aux-ebeln, itab_zycbt035_aux-ebelp.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
IF NOT /pws/zycit477 IS INITIAL.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
* << Fim da inclusão
ENDIF.
APPEND itab_zycbt035_aux.
ENDLOOP.
CLEAR: itab_zycbt035 ,
...
...
space TO itab_zycbt035_aux-bklas .
ENDIF.
IF /pws/zycit000-clucro_ia = 'X'.
PERFORM verifica_centro_l.
ENDIF.
itab_zycbt035_aux-d_valut = /pws/zycie006-dtd_conta.
IF v_index = v_line.
itab_zycbt035_aux-wrbtr = /pws/zycie006-vltotal - v_valor_desp.
ELSE.
itab_zycbt035_aux-wrbtr = /pws/zycie006-vltotal *
* >> Início da exclusão: FORM MULTIPLOS_LANCAMENTOS
( itab_zycit003-netpr / v_tot_valor ).
* << Fim da exclusão
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
( ( itab_zycit003-qtd_iten * itab_zycit003-netpr )
/ v_tot_valor ).
* << Fim da inclusão
v_valor_desp = v_valor_desp + itab_zycbt035_aux-wrbtr.
ENDIF.
itab_zycbt035_aux-d_gsber = itab_zycit003-gsber.
itab_zycbt035_aux-werks = itab_zycit003-werks.
IF NOT /pws/zycie006-frpagto EQ 'D'.
READ TABLE itab_zycmt019 WITH KEY
codmod = 'PD'
tpmatnr = itab_matuse-j_1bmatuse.
IF sy-subrc EQ 0 AND itab_zycmt019-contabiliza EQ 'X'.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
ELSE.
CLEAR: itab_zycbt035_aux-ebeln, itab_zycbt035_aux-ebelp.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
IF NOT /pws/zycit477 IS INITIAL.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
ENDIF.
* << Fim da inclusão
APPEND itab_zycbt035_aux.
ENDLOOP.
CLEAR: itab_zycbt035 ,
itab_zycbt035_aux2.
FREE : itab_zycbt035 ,
itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY matuse bklas d_gsber d_prctr c_prctr.
LOOP AT itab_zycbt035_aux.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse .
itab_zycbt035_aux2-bklas = itab_zycbt035_aux-bklas .
...
...
itab_zycbt035_aux-d_gsber = itab_zycit003-gsber.
IF NOT /pws/zycie006-frpagto EQ 'D'.
READ TABLE itab_zycmt019 WITH KEY
codmod = 'PD'
tpmatnr = itab_matuse-j_1bmatuse.
IF sy-subrc EQ 0 AND itab_zycmt019-contabiliza EQ 'X'.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
ELSE.
CLEAR: itab_zycbt035_aux-ebeln, itab_zycbt035_aux-ebelp.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
IF NOT /pws/zycit477 IS INITIAL.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
* << Fim da inclusão
ENDIF.
APPEND itab_zycbt035_aux.
ENDLOOP.
CLEAR: itab_zycbt035 ,
...
...
ENDIF.
IF NOT /pws/zycie006-frpagto EQ 'D'.
READ TABLE itab_zycmt019 WITH KEY
codmod = 'PD'
tpmatnr = itab_matuse-j_1bmatuse.
IF sy-subrc EQ 0 AND itab_zycmt019-contabiliza EQ 'X'.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
ELSE.
CLEAR: itab_zycbt035_aux-ebeln, itab_zycbt035_aux-ebelp.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
IF NOT /pws/zycit477 IS INITIAL.
itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .
itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .
* << Fim da inclusão
ENDIF.
APPEND itab_zycbt035_aux.
ENDLOOP.
ENDLOOP.
...
...
FORM load_parametros.
SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie006-bukrs.
* >> Início da inclusão: FORM LOAD_PARAMETROS
SELECT SINGLE * FROM /pws/zycit477
WHERE land EQ t001-land1.
* << Fim da inclusão
...
...
* >> Início da inclusão:
FORM miro_am_la.
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,
charact TYPE rbcharact_instance OCCURS 3,
uebgmat TYPE matnr,
uebrblgp TYPE rblgp,
selkz_db TYPE selkz,
rblgp_old TYPE rblgp,
END OF mmcr_drseg.
DATA: v_chave(10),
v_indice TYPE i,
v_iva(2),
v_cont2 TYPE sy-tabix,
v_cont TYPE sy-tabix,
v_awkey TYPE bkpf-awkey,
v_doc_miro TYPE bkpf-belnr.
DATA: wa_headerdata TYPE bapi_incinv_create_header,
v_belnr_mr1m TYPE /pws/zycie006-belnr_mr1m,
v_invoice TYPE rbkp-xrech,
v_gjahr TYPE rbkp-gjahr,
v_creditmemo TYPE rbkp-xrech.
DATA: itab_itemdata TYPE bapi_incinv_create_item
OCCURS 0 WITH HEADER LINE,
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,
v_ebelp(6) TYPE c,
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,
itab_komv_a LIKE itab_komv OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_komk_aux OCCURS 0.
INCLUDE STRUCTURE komk.
DATA: ebeln LIKE ekko-ebeln.
DATA: END OF itab_komk_aux.
DATA: BEGIN OF itab_fat OCCURS 0.
DATA: nrseq TYPE /pws/zycie006-nrseq.
DATA: END OF itab_fat.
DATA: itab_zycit047a TYPE /pws/zycit047 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_ivaped OCCURS 0.
DATA: ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
mwskz TYPE ekpo-mwskz.
DATA: END OF itab_ivaped.
DATA: itab_itens_iva TYPE mmcr_drseg OCCURS 0 WITH HEADER LINE,
itab_retorno TYPE bset OCCURS 0 WITH HEADER LINE.
IF v_parcela = 'X' AND
NOT itab_zycit132-belnr_mr1m IS INITIAL.
EXIT.
ENDIF.
FREE: itab_contas_aux.
itab_contas_aux[] = itab_contas[].
itab_zycbe033_aux[] = itab_zycbe033[].
PERFORM get_parameters_mrm1_receb.
CASE /pws/zycie006-tpfatura.
WHEN '01'.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '001N'
AND codmod EQ 'D'
AND bukrs EQ /pws/zycit006-bukrs.
IF sy-subrc NE 0.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '001N'
AND codmod EQ 'D'.
ENDIF.
WHEN '02'.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '001NF'
AND codmod EQ 'D'
AND bukrs EQ /pws/zycit006-bukrs.
IF sy-subrc NE 0.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '001NF'
AND codmod EQ 'D'.
ENDIF.
WHEN '03'.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '001NS'
AND codmod EQ 'D'
AND bukrs EQ /pws/zycit006-bukrs.
IF sy-subrc NE 0.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '001NS'
AND codmod EQ 'D'.
ENDIF.
WHEN '04'.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '001NO'
AND codmod EQ 'D'
AND bukrs EQ /pws/zycit006-bukrs.
IF sy-subrc NE 0.
SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011
WHERE codeven = '001NO'
AND codmod EQ 'D'.
ENDIF.
ENDCASE.
SELECT * FROM /pws/zycit030
INTO TABLE itab_zycit030
WHERE bukrs = /pws/zycie006-bukrs.
IF /pws/zycie006-tpfatura NE '01'.
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.
ENDIF.
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.
ENDIF.
READ TABLE itab_zycit003 INDEX 1.
READ TABLE itab_zycbe033_aux INDEX 1.
IF /pws/zycie006-tpfatura EQ '02' AND
/pws/zycie006-tpfatura EQ '03'.
REFRESH itab_zycit263.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
WHERE nrseq EQ itab_zycit003-nrseq
AND eliminado NE 'X'.
ENDIF.
itab_zycie033-mandt = sy-mandt.
itab_zycie033-tcode = 'MIRO'.
itab_zycie033-tabela = '/PWS/ZYCIT006'.
itab_zycie033-cpochv = /pws/zycie006-nrseq.
itab_zycie033-bldat = itab_zycbe033_aux-bldat.
itab_zycie033-budat = sy-datlo.
itab_zycie033-bukrs = /pws/zycie006-bukrs.
itab_zycie033-zterm = /pws/zycie006-zterm.
itab_zycie033-zfbdt = itab_zycbe033_aux-zfbdt.
IF NOT /pws/zycit048-lifnr IS INITIAL.
itab_zycie033-lifnr = /pws/zycit048-lifnr.
ELSE.
itab_zycie033-lifnr = /pws/zycie006-lifnr.
ENDIF.
itab_zycie033-bktxt = /pws/zycie006-nrfat.
itab_zycie033-xblnr = /pws/zycie006-lfsnr.
itab_zycie033-mwskz = /pws/zycie006-iva.
CLEAR v_cont.
FREE: itab_zycit031,
itab_itemdata.
CLEAR: itab_itemdata,
itab_zycit031, itab_zycie033-rmwwr, itab_zycie033-waers.
IF /pws/zycie006-tpfatura EQ '04'.
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.
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 .
itab_zycit031-menge = itab_zycit003-qtd_iten.
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.
APPEND itab_zycit031.
ENDLOOP.
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.
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.
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 .
itab_zycit031-menge = itab_zycit003-qtd_iten.
itab_zycit031-meins = itab_zycit003-meins .
itab_zycit031-mwskz = itab_zycie033-mwskz .
itab_zycit031-wrbtr = itab_contas_aux-wrbtr .
READ TABLE itab_zycit030 WITH KEY
codigo = 'FRETEI'.
itab_zycit031-lgort = itab_zycit030-kschl.
IF NOT itab_fat[] IS INITIAL.
itab_zycit031-sernp = 'X'.
ELSE.
LOOP AT itab_zycit263 WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND vlfre_fat > 0.
itab_zycit031-sernp = 'X'.
EXIT.
ENDLOOP.
ENDIF.
APPEND itab_zycit031.
itab_zycie033-waers = /pws/zycie006-waers.
itab_zycie033-rmwwr = itab_zycit031-wrbtr + itab_zycie033-rmwwr.
ENDLOOP.
ELSEIF /pws/zycie006-tpfatura EQ '03'.
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.
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 .
itab_zycit031-menge = itab_zycit003-qtd_iten.
itab_zycit031-meins = itab_zycit003-meins .
itab_zycit031-mwskz = itab_zycie033-mwskz .
itab_zycit031-wrbtr = itab_contas_aux-wrbtr .
READ TABLE itab_zycit030 WITH KEY
codigo = 'SEGURO'.
itab_zycit031-lgort = itab_zycit030-kschl.
IF NOT itab_fat[] IS INITIAL.
itab_zycit031-sernp = 'X'.
ELSE.
LOOP AT itab_zycit263 WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND vlseg_fat > 0.
itab_zycit031-sernp = 'X'.
EXIT.
ENDLOOP.
ENDIF.
APPEND itab_zycit031.
itab_zycie033-waers = /pws/zycie006-waers.
itab_zycie033-rmwwr = itab_zycit031-wrbtr + itab_zycie033-rmwwr.
ENDLOOP.
ELSEIF /pws/zycie006-tpfatura EQ '01'.
DESCRIBE TABLE itab_rateio_parc LINES v_line.
LOOP AT itab_zycit003.
READ TABLE itab_contas_aux WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
READ TABLE itab_ivaped 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 .
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.
itab_zycit031-menge = itab_zycit003-qtd_iten.
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.
IF NOT v_vlsg IS INITIAL AND /pws/zycit031-inco1_ci EQ 'CIF'.
READ TABLE itab_zycit030 WITH KEY codigo = 'SEGURO'.
itab_zycit031-wrbtr = v_vlsg.
itab_zycit031-lgort = itab_zycit030-kschl.
APPEND itab_zycit031.
ENDIF.
ENDLOOP.
ENDIF.
APPEND itab_zycie033.
IF NOT itab_zycit031[] IS INITIAL.
SELECT ebeln ebelp bprme twrkz FROM ekpo INTO TABLE itab_ekpo
FOR ALL ENTRIES IN itab_zycit031
WHERE ebeln = itab_zycit031-ebeln
AND ebelp = itab_zycit031-ebelp.
ENDIF.
LOOP AT itab_zycit031.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit031-ebeln
ebelp = itab_zycit031-ebelp.
IF sy-subrc EQ 0.
v_cont = v_cont + 1.
itab_itemdata-invoice_doc_item = v_cont .
itab_itemdata-po_number = itab_zycit031-ebeln.
itab_itemdata-cond_type = itab_zycit031-lgort.
itab_itemdata-po_item = itab_zycit031-ebelp.
itab_itemdata-tax_code = itab_zycie033-mwskz.
itab_itemdata-item_amount = itab_zycit031-wrbtr.
itab_itemdata-quantity = itab_zycit031-menge.
itab_itemdata-de_cre_ind = itab_zycit031-sernp.
itab_itemdata-po_unit = itab_zycit031-meins.
itab_itemdata-po_unit_iso = itab_zycit031-meins.
itab_itemdata-po_pr_uom = itab_ekpo-bprme .
itab_itemdata-po_pr_uom_iso = itab_ekpo-bprme .
APPEND itab_itemdata.
ENDIF.
ENDLOOP.
LOOP AT itab_ekpo WHERE NOT twrkz IS initial.
ENDLOOP.
IF sy-subrc = 0.
IF NOT itab_ekpo[] IS INITIAL.
SELECT * FROM ekkn INTO TABLE itab_ekkn_mult
FOR ALL ENTRIES IN itab_ekpo
WHERE ebeln = itab_ekpo-ebeln AND
ebelp = itab_ekpo-ebelp.
ENDIF.
LOOP AT itab_zycit031.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit031-ebeln
ebelp = itab_zycit031-ebelp
twrkz = 'X'.
LOOP AT itab_ekpo WHERE ebeln = itab_zycit031-ebeln AND
ebelp = itab_zycit031-ebelp AND
NOT twrkz IS initial.
ENDLOOP.
IF sy-subrc EQ 0.
CLEAR v_indice.
LOOP AT itab_ekkn_mult WHERE ebeln = itab_zycit031-ebeln AND
ebelp = itab_zycit031-ebelp.
v_indice = v_indice + 1.
ENDLOOP.
CLEAR: v_cont2, v_quantity, v_amount.
LOOP AT itab_ekkn_mult WHERE ebeln = itab_zycit031-ebeln AND
ebelp = itab_zycit031-ebelp.
v_cont2 = v_cont2 + 1.
READ TABLE itab_itemdata
WITH KEY po_number = itab_zycit031-ebeln
po_item = itab_zycit031-ebelp.
IF v_cont2 = v_indice.
v_item_amount = itab_zycit031-wrbtr - v_amount.
itab_account-quantity = itab_zycit031-menge -
v_quantity.
itab_account-item_amount = v_item_amount.
ELSE.
v_item_amount2 = itab_zycit031-wrbtr
/ 100 * itab_ekkn_mult-vproz .
itab_account-quantity = itab_zycit031-menge
/ 100 * itab_ekkn_mult-vproz .
v_quantity = v_quantity + itab_account-quantity.
itab_account-item_amount = v_item_amount2.
v_amount = v_amount + itab_account-item_amount .
ENDIF.
itab_account-invoice_doc_item = itab_itemdata-invoice_doc_item.
itab_account-serial_no = itab_ekkn_mult-zekkn.
IF itab_zycie033-mwskz IS INITIAL.
SELECT SINGLE mwskz FROM ekpo
INTO itab_zycie033-mwskz
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
ENDIF.
itab_account-tax_code = itab_zycie033-mwskz .
itab_account-po_unit = itab_zycit031-meins .
itab_account-gl_account = itab_ekkn_mult-sakto.
itab_account-costcenter = itab_ekkn_mult-kostl.
itab_account-asset_no = itab_ekkn_mult-anln1.
itab_account-sub_number = itab_ekkn_mult-anln2.
itab_account-orderid = itab_ekkn_mult-aufnr.
itab_account-bus_area = itab_ekkn_mult-gsber.
itab_account-profit_ctr = itab_ekkn_mult-prctr.
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.
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'.
wa_headerdata-calc_tax_ind = 'X'.
v_invoice = 'X'.
v_creditmemo = 'X'.
LOOP AT itab_itemdata.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_itemdata-po_number
ebelp = itab_itemdata-po_item.
itab_itens_iva-bedat = itab_zycie033-bldat.
itab_itens_iva-bewae = /pws/zycie006-waers.
itab_itens_iva-bpumn = '1'.
itab_itens_iva-bpumz = '1'.
itab_itens_iva-bsmng = itab_itemdata-quantity.
itab_itens_iva-budat = itab_zycie033-budat.
itab_itens_iva-bukrs = /pws/zycie006-bukrs.
itab_itens_iva-ebeln = itab_itemdata-po_number.
itab_itens_iva-ebelp = itab_itemdata-po_item.
itab_itens_iva-matnr = itab_zycit003-matnr.
itab_itens_iva-meins = itab_itemdata-po_unit.
itab_itens_iva-umren = '1'.
itab_itens_iva-umrez = '1'.
itab_itens_iva-waers = /pws/zycie006-waers.
itab_itens_iva-wepos = 'X'.
itab_itens_iva-werks = itab_zycit003-werks.
itab_itens_iva-eindt = itab_zycie033-bldat.
itab_itens_iva-mwskz = itab_zycie033-mwskz.
itab_itens_iva-gjahr = itab_zycie033-bldat(4).
itab_itens_iva-kokrs = /pws/zycie006-bukrs.
itab_itens_iva-menge = itab_itemdata-quantity.
itab_itens_iva-mlmaa = 'X'.
itab_itens_iva-selkz = 'X'.
itab_itens_iva-wrbtr = itab_itemdata-item_amount.
itab_itens_iva-hswae = /pws/zycie006-waers.
itab_itens_iva-shkzg = 'S'.
IF NOT itab_itemdata-cond_type IS INITIAL.
itab_itens_iva-kschl = itab_itemdata-cond_type.
itab_itens_iva-lifnr = /pws/zycie006-lifnr.
ELSE.
itab_itens_iva-inco1 = /pws/zycit031-inco1_ci.
ENDIF.
APPEND itab_itens_iva.
ENDLOOP.
CLEAR: v_vlsg.
v_kursf = 1.
CALL FUNCTION 'MR_CALCULATE_TAX_DOCUMENT'
EXPORTING
i_bukrs = /pws/zycie006-bukrs
i_hswae = /pws/zycbt007-waersb
i_waers = /pws/zycie006-waers
i_xmwst = 'X'
i_glvor = 'RMRP'
i_budat = itab_zycie033-bldat
i_kursf = v_kursf
i_bldat = itab_zycie033-bldat
i_zbd1p = v_zbd1p
i_wskto = v_vlsg
i_rmwwr = v_vlsg
i_xrech = 'X'
i_lifnr = /pws/zycie006-lifnr
i_wwert = itab_zycie033-bldat
TABLES
t_drseg = itab_itens_iva
t_bset = itab_retorno
EXCEPTIONS
user_exit = 1
OTHERS = 2
.
IF sy-subrc <> 0.
ENDIF.
wa_headerdata-gross_amount = wa_headerdata-gross_amount +
itab_retorno-hwste.
CALL FUNCTION 'BAPI_INCOMINGINVOICE_CREATE'
EXPORTING
headerdata = wa_headerdata
IMPORTING
invoicedocnumber = v_belnr_mr1m
fiscalyear = v_gjahr
TABLES
itemdata = itab_itemdata
accountingdata = itab_account
return = itab_return.
IF NOT v_belnr_mr1m IS INITIAL.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = 'X'.
MESSAGE i010 WITH v_belnr_mr1m.
CLEAR: v_awkey.
CONCATENATE v_belnr_mr1m v_gjahr INTO v_awkey.
SELECT SINGLE belnr FROM bkpf INTO v_doc_miro
WHERE awtyp EQ 'RMRP'
AND awkey EQ v_awkey.
IF v_parcela = 'X'.
/pws/zycie006-statusp = 'C'.
itab_zycit132-miro = 'X'.
itab_zycit132-status = 'C'.
itab_zycit132-belnr_mr1m = v_belnr_mr1m.
itab_zycit132-belnr_p = v_doc_miro.
itab_zycit132-dt_belnrp = sy-datum.
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.
/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)
v_mensagem+50(50)
v_mensagem+100(50)
v_mensagem+150(50).
ENDLOOP.
ENDIF.
ENDFORM.
FORM estorn_miro_la.
DATA: v_belnr_ant LIKE /pws/zycie006-belnr_p.
PERFORM get_parameters_mrm1_receb.
itab_zycie033-tcode = 'MR8M'.
itab_zycie033-cpochv = /pws/zycie006-nrseq.
itab_zycie033-bukrs = /pws/zycie006-bukrs.
IF v_parcela = 'X'.
itab_zycie033-tabela = '/PWS/ZYCIT132'.
/pws/zycie006-belnr_mr1m =
itab_zycie033-belnr = itab_zycit132-belnr_mr1m.
/pws/zycie006-dt_mr1m =
itab_zycie033-budat = itab_zycit132-dt_belnrp.
itab_zycie033-gjahr = itab_zycit132-dt_belnrp(4).
ELSE.
itab_zycie033-tabela = '/PWS/ZYCIT006'.
/pws/zycie006-belnr_mr1m =
itab_zycie033-belnr = /pws/zycie006-belnr_mr1m.
/pws/zycie006-dt_mr1m =
itab_zycie033-budat = /pws/zycie006-dt_belnrp.
itab_zycie033-gjahr = /pws/zycie006-dt_belnrp(4).
ENDIF.
v_belnr_ant = itab_zycie033-belnr.
itab_zycie033-stgrd = /pws/zycbt007-percorr.
IF /pws/zycbt007 IS INITIAL.
SELECT SINGLE *
FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie006-bukrs.
ENDIF.
SELECT SINGLE *
FROM marv
WHERE bukrs EQ /pws/zycie006-bukrs.
IF ( marv-vmmon EQ /pws/zycie006-dt_mr1m+04(02) AND
marv-vmgja EQ /pws/zycie006-dt_mr1m+0(4) ) OR
( marv-lfmon EQ /pws/zycie006-dt_mr1m+04(02) AND
marv-lfgja EQ /pws/zycie006-dt_mr1m+0(4) ).
itab_zycie033-budat = /pws/zycie006-dt_mr1m.
itab_zycie033-stgrd = /pws/zycbt007-percorr.
ELSE.
itab_zycie033-budat = /pws/zycie006-dt_mr1m.
itab_zycie033-stgrd = /pws/zycbt007-perencer .
ENDIF.
APPEND itab_zycie033.
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MR8M'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycie033
t_campo = itab_zycit034
t_zycit032 = itab_zycit032
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
IF v_parcela = 'X'.
READ TABLE itab_zycit032 WITH KEY tcode = 'MR8M'
tabela = '/PWS/ZYCIT132'
cpochv = /pws/zycie006-nrseq
tpmsg = 'S'.
ELSE.
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.
MODIFY itab_zycit132 TRANSPORTING belnr_mr1m belnr_p
dt_belnrp hr_belnrp
miro status
WHERE belnr_mr1m EQ /pws/zycie006-belnr_mr1m.
ENDIF.
CLEAR: /pws/zycie006-statusp_mr1m, /pws/zycie006-belnr_mr1m,
/pws/zycie006-dt_mr1m,
/pws/zycie006-belnr_p, itab_zycit132-status.
PERFORM clear_date_batch.
CLEAR v_mr1m_ok.
ELSE.
v_erro = 'X'.
ENDIF.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003I01
...
WHERE nrseq = /pws/zycie006-nrseqre.
SET PARAMETER ID '/PWS/ZYCBP374'
FIELD /pws/zycie006-nrseqre.
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD '/PWS/ZYCB109_E'.
IF sy-subrc EQ 0.
CALL TRANSACTION '/PWS/ZYCB109_E' AND SKIP FIRST SCREEN
.
ELSE.
MESSAGE e015 WITH text-105 text-153.
* >> Início da inclusão: MODULE USER_COMMAND_0101
ENDIF.
ELSEIF v_campo EQ '/PWS/ZYCIE006-BELNR_MR1M' AND
NOT v_valor IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt108
WHERE bukrs = /pws/zycie006-bukrs
AND belnr = /pws/zycie006-nrseq.
i_belnr = v_valor.
i_bukrs = /pws/zycie006-bukrs.
IF NOT /pws/zycie006-dtlanc IS INITIAL.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = i_bukrs
v_date = /pws/zycie006-dtlanc
IMPORTING
v_year = i_gjahr
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.
IF sy-subrc <> 0.
i_gjahr = /pws/zycie006-dtlanc+0(4).
SET PARAMETER ID 'GJR' FIELD i_gjahr.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE USER_COMMAND_0101
SET PARAMETER ID 'RBN' FIELD i_belnr.
SET PARAMETER ID 'GJR' FIELD i_gjahr.
AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD 'MIR4'.
IF sy-subrc EQ 0.
CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE e261(sf) WITH 'MIR4'.
ENDIF.
* << Fim da inclusão
ENDIF.
WHEN 'DATE'.
PERFORM alt_dt_venc_fat.
WHEN 'FRETECLP'.
v_freteclp = 'S'.
ENDCASE.
ENDMODULE.
...
...
/pws/zycie132-nrfat = /pws/zycie006-nrfat.
/pws/zycie132-dt_belnrp = itab_zycit132-dt_belnrp.
/pws/zycie132-hr_belnrp = itab_zycit132-hr_belnrp.
ENDIF.
READ TABLE itab_zycit132 INDEX tc_fat_parc-current_line.
IF sy-subrc = 0.
/pws/zycie132-dtvencto = itab_zycit132-dtvencto.
ENDIF.
/pws/zycie132-dt_belnrp = itab_zycit132-dt_belnrp.
/pws/zycie132-hr_belnrp = itab_zycit132-hr_belnrp.
* >> Início da inclusão: MODULE ALTERA_ZYCIT132
/pws/zycie132-miro = itab_zycit132-miro.
/pws/zycie132-belnr_mr1m = itab_zycit132-belnr_mr1m.
* << Fim da inclusão
MOVE-CORRESPONDING /pws/zycie132 TO itab_zycit132.
itab_zycit132-mark = v_mark.
MODIFY itab_zycit132 INDEX tc_fat_parc-current_line.
IF sy-subrc NE 0.
APPEND itab_zycit132.
ENDIF.
v_nrparc_ant = /pws/zycie132-nrparc.
ENDIF.
ENDMODULE.
...
...
IF sy-subrc EQ 0.
SET PARAMETER ID '/PWS/ZYCBP374'
FIELD /pws/zycie132-nrseqre.
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD' FIELD '/PWS/ZYCB109_E'.
IF sy-subrc EQ 0.
CALL TRANSACTION '/PWS/ZYCB109_E' AND SKIP FIRST SCREEN
.
ELSE.
MESSAGE e015 WITH text-105 text-153.
* >> Início da inclusão: MODULE USER_COMMAND_0111
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE USER_COMMAND_0111
ELSEIF v_campo EQ '/PWS/ZYCIE132-BELNR_MR1M' AND
NOT v_valor IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt108
WHERE bukrs = /pws/zycie006-bukrs
AND belnr = /pws/zycie006-nrseq.
i_belnr = v_valor.
i_bukrs = /pws/zycie006-bukrs.
i_gjahr = /pws/zycbt108-bldat+0(4).
IF NOT /pws/zycie006-dtlanc IS INITIAL.
i_gjahr = /pws/zycie006-dtlanc+0(4).
ENDIF.
IF NOT /pws/zycie006-dtlanc IS INITIAL.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = i_bukrs
v_date = /pws/zycie006-dtlanc
IMPORTING
v_year = i_gjahr
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.
IF sy-subrc <> 0.
i_gjahr = /pws/zycie006-dtlanc+0(4).
SET PARAMETER ID 'GJR' FIELD i_gjahr.
ENDIF.
ENDIF.
SET PARAMETER ID 'RBN' FIELD i_belnr.
SET PARAMETER ID 'GJR' FIELD i_gjahr.
AUTHORITY-CHECK OBJECT 'S_TCODE' ID 'TCD' FIELD 'MIR4'.
IF sy-subrc EQ 0.
CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE e261(sf) WITH 'MIR4'.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDCASE.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
screen-input = 0.
ENDIF.
MODIFY SCREEN.
ENDIF.
IF NOT itab_zycit132[] IS INITIAL AND
( screen-name EQ '/PWS/ZYCIE006-DTVENCTO' OR
screen-name EQ '/PWS/ZYCIE006-DTBASE' OR
screen-name EQ '/PWS/ZYCIE006-NRSEQ_PGFAT' OR
screen-name EQ '/PWS/ZYCIE006-NRSEQRE' OR
screen-name EQ '/PWS/ZYCIE006-BELNR_P' OR
* >> Início da inclusão: MODULE SET_SCREEN
screen-name EQ '/PWS/ZYCIE006-BELNR_MR1M' OR
screen-name EQ 'TEXT_MR1M' OR
* << Fim da inclusão
screen-name EQ '/PWS/ZYCIE006-NRSEQ_PGFATX' OR
screen-name EQ 'V_TEXTO' ).
screen-invisible = 1.
screen-input = 0.
ELSEIF ( screen-name EQ '/PWS/ZYCIE006-DTVENCTO' OR
screen-name EQ '/PWS/ZYCIE006-DTBASE' OR
screen-name EQ '/PWS/ZYCIE006-NRSEQ_PGFAT' OR
screen-name EQ '/PWS/ZYCIE006-BELNR_P' OR
* >> Início da inclusão: MODULE SET_SCREEN
screen-name EQ '/PWS/ZYCIE006-BELNR_MR1M' OR
screen-name EQ 'TEXT_MR1M' OR
* << Fim da inclusão
screen-name EQ '/PWS/ZYCIE006-NRSEQ_PGFATX' OR
screen-name EQ 'V_TEXTO' ).
screen-invisible = 0.
ENDIF.
IF NOT /pws/zycie006-belnr_p IS INITIAL.
IF screen-name = '/PWS/ZYCIE006-ZTERM'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
...
...
READ TABLE itab_zycit003 INTO /pws/zycit003 INDEX 1.
SELECT SINGLE *
FROM /pws/zycit042
WHERE nrseq EQ /pws/zycit003-nrseq
AND docnum NE ''.
IF sy-subrc EQ 0.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
* >> Início da inclusão: MODULE SET_SCREEN
IF ( screen-name EQ '/PWS/ZYCIE006-BELNR_MR1M' OR
screen-name EQ 'TEXT_MR1M' ) AND
/pws/zycit477 IS INITIAL.
screen-active = 0 .
screen-invisible = 1 .
MODIFY SCREEN.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE006-IVA' AND
( /pws/zycit477 IS INITIAL OR
/pws/zycie006-tpfatura EQ '01' OR
/pws/zycie006-tpfatura IS INITIAL ).
screen-active = 0 .
screen-invisible = 1 .
MODIFY SCREEN.
ENDIF.
* << Fim da inclusão
ENDLOOP.
IF /pws/zycie006-vlmerc IS INITIAL AND
/pws/zycie006-vlfre IS INITIAL AND
/pws/zycie006-vlseg IS INITIAL.
CLEAR /pws/zycie006-vltotal.
ENDIF.
...
...
IF /pws/zycie001-modalidade EQ '02' AND
/pws/zycie006-tpfatura EQ '04' .
MOVE 'X' TO /pws/zycie006-vinserv.
* >> Início da inclusão: MODULE LOAD_PARAM
ENDIF.
IF ( /pws/zycie006-tpfatura EQ '02' OR
/pws/zycie006-tpfatura EQ '03' ) AND
/pws/zycie006-iva IS INITIAL.
/pws/zycie006-iva = /pws/zycit000-iva.
* << Fim da inclusão
ENDIF.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003X01
...
* >> Início da inclusão:
tables /pws/zycit477.
* << Fim da inclusão
data: begin of common part a.
* >> Início da inclusão:
DATA: BEGIN OF itab_rateio_parc OCCURS 0.
DATA: nrparc TYPE /pws/zycit132-nrparc,
perc TYPE p DECIMALS 2.
DATA: END OF itab_rateio_parc.
DATA: BEGIN OF itab_komk OCCURS 0.
INCLUDE STRUCTURE komk.
DATA: END OF itab_komk.
DATA: BEGIN OF itab_komv OCCURS 0.
INCLUDE STRUCTURE komv.
DATA: ebeln LIKE ekko-ebeln.
DATA: END OF itab_komv.
* << Fim da inclusão
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE006
Nome campo Elem.dados Tab.verif. N CtDt Comp.
VLFRE_CLP WRBTR CURR 13
WAERS_CLP WAERS CUKY 5
*Inicio da Inclusão:
IVA /PWS/ZYCIL500 T007A CHAR 2
*Fim da Inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE132
Nome campo Elem.dados Tab.verif. N CtDt Comp.
...
ZTERM DZTERM T052 CHAR 4
NRSEQRE /PWS/ZYCBL222 CHAR 10
*Inicio da Inclusão:
MIRO CHAR01 CHAR 1
BELNR_MR1M RE_BELNR CHAR 10
*Fim da Inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT006
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
...
VLFRE_CLP WRBTR CURR 13
WAERS_CLP WAERS CUKY 5
*Inicio da Inclusão:
IVA /PWS/ZYCIL500 CHAR 2
*Fim da Inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT132
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp.
...
ZTERM DZTERM CHAR 4
NRSEQRE /PWS/ZYCBL222 CHAR 10
*Inicio da Inclusão:
MIRO CHAR01 CHAR 1
BELNR_MR1M RE_BELNR CHAR 10
*Fim da Inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT477
*Criar tabela:
Características gerais:
Nome da tabela /PWS/ZYCIT477
Descrição breve CI - CONTABILIZAÇÃO MIRO AMERICA LATINA
Ctg.tabela Tabela transparente
Arm.bff.permitido
AtualTab.permitida X
Classe de entrega A
Campos:
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
MANDT X MANDT X CLNT 3
LAND X LAND1 X CHAR 3
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TOBJ /PWS/ZYCIT477S
Gerar tela de atualização para a tabela /pws/zycit0477
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TRAN /PWS/ZYCIT477
Criar Transação:
Tipo de transação: Transação com parâmetro(Transação de parâmetro)
Código de transação: /PWS/ZYCIT477
Cl.desenvolvimento: /PWS/ZYCI
Texto da transação: Países que utilizam fatura por MIRO
Transação: SM30
Omitir: X
Valores propostos:
Nome do campo da tela Valor
VIEWNAME /PWS/ZYCIT477
UPDATE_LTD X