Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Despesas
Data/Hora da Publicação: 11/10/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:49:06
Descrição da Nota: DESENVOLVIMENTO DE CONTABILIZAÇÃO DE IMPOSTOS ATRAVÉS DA MIRO
Sintoma
Desenvolvimento da contabilização de impostos pela miro.
Solução
Desenvolvimento da contabilização de impostos pela miro.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04978 Data: 11/10/2007 Hora: 15:34:07
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04978
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00016
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
03893 - 00001 - 7.0 - 00001 - AJUSTE DE PERFORMANCE NA CRIAÇÃO DA FATURA
04809 - 00002 - 7.0 - 00003 - CÁLCULO DOS IMPOSTOS NA FATURA DE DESPESAS - AMÉRICA LA
----------------------------------------------------------------------------------------------------
DESENVOLVIMENTO DE CONTABILIZAÇÃO DE IMPOSTOS ATRAVÉS DA MIRO
----------------------------------------------------------------------------------------------------
Palavras Chave:
FATURA - MERCADORIA - IMPOSTOS - MIRO - CONTABILIZAÇÃO
/PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI003 0100
DYNP /PWS/SAPMZYCI003 0101
DYNP /PWS/SAPMZYCI003 0113
FUGR /PWS/ZYCIGF1
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003I01
REPS /PWS/MZYCI003O01
REPS /PWS/MZYCI003TOP
REPS /PWS/MZYCI003X01
REPS /PWS/SAPMZYCI003
REPT /PWS/SAPMZYCI003
SHI3 /PWS/ZYCIAL
SHI6 /PWS/ZYCIAL
TABD /PWS/ZYCIE006
TABD /PWS/ZYCIT006
TABL /PWS/ZYCIE483
TABL /PWS/ZYCIT483
TABL /PWS/ZYCIT484
TOBJ /PWS/ZYCIT484S
TRAN /PWS/ZYCIT484
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI003 0100
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
* >> Início da inclusão:
- TAB_IMP
Push 1 10 8 8 1 CHAR
TAB FC_IMP P
Elem.em TabStripControl
- SS_IMP
Subte 8 3 107 107 1
* >> Início da inclusão:
----------------------------------------------------------------------------------------------------
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
* >> Início da inclusão:
/PWS/ZYCIE006-IMPOSTO
Check 11 1 1 1 1 CHAR X Ent Off
IMPOSTO
Botão EntrsPoss.stand.
/PWS/ZYCIE006-IMPOSTO
Check 11 3 16 16 1 CHAR X F
* >> Início da inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI003 0113
*Criar subtela 0113.
*Layout:
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
BTN3
Push 1 2 6 2 1 CHAR
MALL_IMP
Ícn.=ICON_SELECT_ALL
BTN4
Push 1 5 6 2 1 CHAR
DALL_IMP
Ícn.=ICON_DESELECT_ALL
BTN2
Push 1 8 4 2 1 CHAR
DELE_IMP
Ícn.=ICON_DELETE
BTN1
Push 1 11 4 2 1 CHAR
REFRESH_IMP
Ícn.=ICON_REFRESH
+ TC_IMP
Tabel 2 2 84 84 20
Seleção linha=Simples, Seleção coluna=Simples
TabEntr., Com título, Configurável, Coluna marc., RedimVertic., RedimHoriz., LSep.horiz.,
LnhSep.vert.
- /PWS/ZYCIE483-TPDESP
Texto 1 1 18 11 1 CHAR X F
Título de coluna TC
- /PWS/ZYCIE483-DESCR
Texto 1 2 25 30 1 CHAR X F
Título de coluna TC
- /PWS/ZYCIE483-VLDP
Texto 1 3 23 16 1 CHAR X F
Título de coluna TC
- /PWS/ZYCIE483-IVA
Texto 1 4 22 11 1 CHAR X F
Chave externa, Título de coluna TC
- V_MARK
Check 1 0 1 1 1 CHAR Ent Off
Coluna marc.TC
- /PWS/ZYCIE483-TPDESP
I/O 1 1 6 11 1 CHAR X Ent Off
Entr.obrig., Chave externa, Botão EntrsPoss.stand., Elem.TC
- /PWS/ZYCIE483-DESCR
I/O 1 2 35 30 1 CHAR X Off
OUT
PossRol, Elem.TC
- /PWS/ZYCIE483-VLDP
I/O 1 3 16 16 1 CURR X Ent Off
Elem.TC
Código da moeda=/PWS/ZYCIE483-WAERS
- /PWS/ZYCIE483-IVA
I/O 1 4 2 11 1 CHAR X Ent Off
Chave externa, Botão EntrsPoss.stand., Elem.TC
*Código fonte:
PROCESS BEFORE OUTPUT.
MODULE: status_0113,
set_screen.
LOOP AT itab_zycit483
CURSOR tc_imp-current_line.
MODULE exibe_impostos.
ENDLOOP.
PROCESS AFTER INPUT.
LOOP AT itab_zycit483.
MODULE modifica_imp.
ENDLOOP.
MODULE USER_COMMAND_0113.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
FORM salvar_dados.
DATA :v_tot_fat2 LIKE /pws/zycie006-vltotal,
v_salva_desp.
* >> Início da inclusão: FORM SALVAR_DADOS
data: itab_zycit483s type /pws/zycit483 occurs 0.
* << Fim da inclusão
CLEAR v_stop.
IF /pws/zycie006-tpfatura NE '11' AND
( /pws/zycie006-tpfatura NE '04' AND /pws/zycie006-vinserv EQ 'X' ).
IF /pws/zycie006-nrseqce IS INITIAL.
MESSAGE i015 WITH text-075.
v_stop = 'X'.
ENDIF.
ENDIF.
MOVE /pws/zycie006-vltotal TO v_tot_fat2.
PERFORM retorna_decimais USING /pws/zycie006-waers
...
...
ENDIF.
PERFORM consiste_sequencial.
PERFORM rotina_de_contabilizacao.
PERFORM salvar_bco.
IF sy-binpt EQ 'X'.
EXPORT /pws/zycie006 TO MEMORY ID 'BPFATIMP_01'.
ENDIF.
IF /pws/zycie006-tpfatura EQ '04' AND v_salva_desp EQ 'X'.
PERFORM salva_zycit047.
ENDIF.
* >> Início da inclusão: FORM SALVAR_DADOS
IF /pws/zycie006-tpfatura EQ '04' AND v_resp EQ 'S'.
itab_zycit483-nrseqfat = /pws/zycie006-nrseq.
MODIFY itab_zycit483 TRANSPORTING nrseqfat
WHERE nrseq EQ /pws/zycit001-nrseq.
DELETE FROM /pws/zycit483 WHERE nrseqfat = /pws/zycie006-nrseq.
itab_zycit483s[] = itab_zycit483[].
INSERT /pws/zycit483 FROM TABLE itab_zycit483s.
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit126.
itab_zycit126-nrseq = /pws/zycie006-nrseq.
MOVE itab_zycit126 TO /pws/zycit126.
MODIFY /pws/zycit126.
ENDLOOP.
LOOP AT itab_zycit126_ini.
READ TABLE itab_zycit126 WITH KEY nrseq = itab_zycit126_ini-nrseq
agente = itab_zycit126_ini-agente.
IF sy-subrc NE 0.
DELETE FROM /pws/zycit126
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
ENDIF.
ENDIF.
MOVE /pws/zycbt007 TO wa_zycbt007.
ENDFORM.
FORM trata_save.
SELECT SINGLE *
FROM /pws/zycit085
WHERE nrbl EQ /pws/zycie006-nrseqce
AND nrdi NE ''
AND dtreg NE ''.
* >> Início da inclusão: FORM TRATA_SAVE
IF /pws/zycie006-imposto EQ 'X'
AND /pws/zycie006-tpfatura EQ '04'.
DELETE itab_zycit483 WHERE vldp EQ 0
OR iva EQ space
OR tpdesp EQ space.
IF itab_zycit483[] IS INITIAL.
MESSAGE i015 WITH text-184 text-185.
EXIT.
ENDIF.
ENDIF.
* << Fim da inclusão
IF v_refer NE 'X' AND sy-subrc NE 0.
PERFORM consiste_campos_obrigatorios.
ELSEIF ( /pws/zycie006-tpfatura EQ '01' AND
/pws/zycie006-frpagto EQ 'P' ) OR
/pws/zycie006-tpfatura NE '01'.
IF v_refer NE 'X'.
PERFORM consiste_campos_obrigatorios.
ENDIF.
ELSE.
MESSAGE e039 WITH text-041.
...
...
DATA: ebeln TYPE ekpo-ebeln,
ebelp TYPE ekpo-ebelp,
mwskz TYPE ekpo-mwskz,
txjcd TYPE ekpo-txjcd.
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.
DATA: itab_zycit399 TYPE /pws/zycit399 OCCURS 0 WITH HEADER LINE,
itab_zycit403 TYPE /pws/zycit403 OCCURS 0 WITH HEADER LINE,
itab_zycit403a TYPE /pws/zycit403 OCCURS 0 WITH HEADER LINE.
* >> Início da inclusão: FORM MIRO_AM_LA
DATA: BEGIN OF itab_iva OCCURS 0.
DATA: mwskz TYPE /pws/zycie033-mwskz.
DATA: END OF itab_iva.
DATA: BEGIN OF itab_483_contas OCCURS 0.
DATA: codaux1 TYPE /pws/zyglt316-codaux1.
DATA: END OF itab_483_contas.
DATA: itab_ftaxp TYPE ftaxp OCCURS 0 WITH HEADER LINE,
itab_zyglt316 TYPE /pws/zyglt316 OCCURS 0 WITH HEADER LINE.
DATA: itab_glaccount TYPE bapi_incinv_create_gl_account OCCURS 0
WITH HEADER LINE.
* << Fim da inclusão
v_vltotal = /pws/zycie006-vltotal.
PERFORM retorna_decimais USING /pws/zycie006-waers
CHANGING v_vltotal.
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[].
...
...
t_bset = itab_retorno
EXCEPTIONS
user_exit = 1
OTHERS = 2
.
IF sy-subrc <> 0.
ENDIF.
CLEAR: itab_retorno-hwste.
LOOP AT itab_itens_iva.
ADD itab_itens_iva-fwste TO itab_retorno-hwste.
* >> Início da inclusão: FORM MIRO_AM_LA
ENDLOOP.
REFRESH: itab_glaccount, itab_iva.
IF /pws/zycie006-imposto EQ 'X'
AND /pws/zycie006-tpfatura EQ '04'.
DELETE itab_zycit483 WHERE vldp EQ 0
OR iva EQ space
OR tpdesp EQ space.
LOOP AT itab_zycit483.
itab_483_contas-codaux1 = itab_zycit483-tpdesp.
COLLECT itab_483_contas.
ENDLOOP.
READ TABLE itab_ivaped INDEX 1.
IF NOT itab_483_contas[] IS INITIAL.
SELECT * FROM /pws/zyglt316 INTO TABLE itab_zyglt316
FOR ALL ENTRIES IN itab_483_contas
WHERE codaux1 EQ itab_483_contas-codaux1
AND ktosl EQ 'TRI'
AND bukrs EQ /pws/zycie006-bukrs.
ENDIF.
LOOP AT itab_zycit483.
CLEAR: itab_account, itab_zyglt316.
READ TABLE itab_zyglt316
WITH KEY codaux1 = itab_zycit483-tpdesp.
itab_glaccount-item_amount = itab_zycit483-vldp.
itab_glaccount-db_cr_ind = 'S'.
itab_glaccount-comp_code = /pws/zycie006-bukrs .
itab_glaccount-tax_code = itab_zycit483-iva .
itab_glaccount-gl_account = itab_zyglt316-konts.
COLLECT itab_glaccount.
itab_iva-mwskz = itab_glaccount-tax_code.
COLLECT itab_iva.
itab_glaccount-tax_code = /pws/zycie006-iva .
itab_glaccount-db_cr_ind = 'H'.
COLLECT itab_glaccount.
itab_iva-mwskz = itab_glaccount-tax_code.
COLLECT itab_iva.
ENDLOOP.
CLEAR: itab_account.
ADD 1 TO itab_glaccount-invoice_doc_item.
MODIFY itab_glaccount TRANSPORTING invoice_doc_item
WHERE invoice_doc_item NE itab_glaccount-invoice_doc_item.
LOOP AT itab_iva.
REFRESH itab_ftaxp.
CALL FUNCTION 'GET_TAX_PERCENTAGE'
EXPORTING
aland = t001-land1
datab = /pws/zycie006-dtincl
mwskz = itab_iva-mwskz
txjcd = itab_ivaped-txjcd
TABLES
t_ftaxp = itab_ftaxp.
LOOP AT itab_ftaxp.
LOOP AT itab_glaccount WHERE tax_code EQ itab_iva-mwskz.
IF itab_glaccount-db_cr_ind = 'S'.
wa_headerdata-gross_amount = wa_headerdata-gross_amount +
( itab_glaccount-item_amount *
( itab_ftaxp-kbetr / 1000 ) ).
ELSE.
wa_headerdata-gross_amount = wa_headerdata-gross_amount -
( itab_glaccount-item_amount *
( itab_ftaxp-kbetr / 1000 ) ).
ENDIF.
ENDLOOP.
ENDLOOP.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM MIRO_AM_LA
ENDIF.
* << Fim da inclusão
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
* >> Início da inclusão: FORM MIRO_AM_LA
glaccountdata = itab_glaccount
* << Fim da inclusão
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'
...
...
itab_zycit003-paisfab = /pws/zycie003-paisfab.
IF /pws/zycie006-fabricante EQ '3' .
/pws/zycie003-porigem = itab_zycit003-porigem =
/pws/zycie003-paisfab.
ENDIF.
ENDIF.
PERFORM carrega_descr.
CLEAR v_paisfab.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM trata_impostos.
DATA: v_taxaf TYPE /pws/zycit174-txconver,
v_taxau TYPE /pws/zycit174-txconver.
IF /pws/zycie006-imposto IS INITIAL.
REFRESH itab_zycit483.
ELSE.
IF /pws/zycit085 IS INITIAL.
MESSAGE i015 WITH text-176.
EXIT.
ENDIF.
REFRESH itab_zycit483.
READ TABLE itab_zycit399 WITH KEY pais = t001-land1.
IF sy-subrc NE 0.
REFRESH itab_zycit399.
SELECT * FROM /pws/zycit399 INTO TABLE itab_zycit399
WHERE pais EQ t001-land1
AND credita EQ 'X'
AND codmod EQ 'D'.
ENDIF.
READ TABLE itab_zycit029 WITH KEY land1 = t001-land1.
IF sy-subrc NE 0.
REFRESH itab_zycit029.
SELECT * FROM /pws/zycit029 INTO TABLE itab_zycit029
WHERE land1 EQ t001-land1.
ENDIF.
READ TABLE itab_zycit484 WITH KEY land1 = t001-land1
bukrs = /pws/zycie006-bukrs.
IF sy-subrc NE 0.
REFRESH itab_zycit484.
SELECT * FROM /pws/zycit484 INTO TABLE itab_zycit484
WHERE land1 EQ t001-land1
AND bukrs EQ /pws/zycie006-bukrs.
ENDIF.
READ TABLE itab_zycit403
WITH KEY nrseqdi = /pws/zycit085-nrseqdi.
IF sy-subrc NE 0.
CLEAR: v_taxaf, v_taxau.
PERFORM taxa_converte USING /pws/zycbt007-waersa
/pws/zycie006-dtincl
CHANGING v_taxau.
PERFORM taxa_converte USING /pws/zycie006-waers
/pws/zycie006-dtincl
CHANGING v_taxaf.
IF v_taxaf IS INITIAL OR v_taxau IS INITIAL.
EXIT.
ENDIF.
REFRESH: itab_zycit403, itab_zycit403t, itab_zycit483.
SELECT * FROM /pws/zycit403 INTO TABLE itab_zycit403
WHERE nrseqdi EQ /pws/zycit085-nrseqdi.
DELETE itab_zycit403 WHERE percentual EQ 0.
LOOP AT itab_zycit403.
itab_zycit403t = itab_zycit403.
CLEAR: itab_zycit403t-ebeln, itab_zycit403t-ebelp.
itab_zycit403t-base =
( itab_zycit403-base * v_taxau ) / v_taxaf.
COLLECT itab_zycit403t.
ENDLOOP.
ENDIF.
LOOP AT itab_zycit403t.
CLEAR: itab_zycit029, itab_zycit399.
READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit403t-codigo.
READ TABLE itab_zycit029 WITH KEY codigo = itab_zycit403t-codigo.
LOOP AT itab_zycit047 WHERE vldp > 0.
READ TABLE itab_zycit484
WITH KEY imposto = itab_zycit403t-codigo
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0 .
itab_zycit483-nrseqfat = /pws/zycie006-nrseq.
itab_zycit483-nrseq = /pws/zycit001-nrseq.
itab_zycit483-tpdesp = itab_zycit403t-codigo.
itab_zycit483-descr = itab_zycit029-descricao.
itab_zycit483-waers = /pws/zycie006-waers.
itab_zycit483-vldp = itab_zycit403t-base.
itab_zycit483-iva = itab_zycit484-mwskz.
APPEND itab_zycit483.
EXIT.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDFORM.
FORM taxa_converte USING p_waers
p_data
CHANGING p_taxa.
CLEAR: p_taxa.
DATA: v_moeda LIKE tcurc-/pws/codmo,
v_msgd(10),
v_linhas TYPE i.
DATA: itab_zycit174 TYPE /pws/zycit174 OCCURS 0 WITH HEADER LINE.
IF p_waers EQ wa_zycbt007-waersb.
p_taxa = 1.
EXIT.
ENDIF.
SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE
waers = p_waers.
IF sy-subrc EQ 0.
REFRESH itab_zycit174.
SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174 WHERE
codconver = v_moeda AND
vigen_inicio <= p_data AND
vigen_fim >= p_data AND
land1 = t001-land1.
DESCRIBE TABLE itab_zycit174 LINES v_linhas.
IF v_linhas EQ 1.
READ TABLE itab_zycit174 INDEX 1.
p_taxa = itab_zycit174-txconver.
ELSEIF v_linhas EQ 0.
IF NOT p_data IS INITIAL.
MESSAGE i015 WITH text-179 text-180.
ENDIF.
ELSEIF v_linhas > 1.
IF NOT p_data IS INITIAL.
MESSAGE i015 WITH text-181.
ENDIF.
ENDIF.
ELSE.
MESSAGE i015 WITH text-181.
ENDIF.
ENDFORM.
FORM refresh_impostos.
DATA: v_taxaf TYPE /pws/zycit174-txconver,
v_taxau TYPE /pws/zycit174-txconver.
REFRESH: itab_zycit403t, itab_zycit483.
CLEAR: v_taxaf, v_taxau.
PERFORM taxa_converte USING /pws/zycbt007-waersa
/pws/zycie006-dtincl
CHANGING v_taxau.
PERFORM taxa_converte USING /pws/zycie006-waers
/pws/zycie006-dtincl
CHANGING v_taxaf.
IF v_taxa IS INITIAL OR v_taxau IS INITIAL.
EXIT.
ENDIF.
LOOP AT itab_zycit403.
itab_zycit403t = itab_zycit403.
CLEAR: itab_zycit403t-ebeln, itab_zycit403t-ebelp.
itab_zycit403t-base =
( itab_zycit403-base * v_taxau ) / v_taxaf.
COLLECT itab_zycit403t.
ENDLOOP.
LOOP AT itab_zycit403t.
CLEAR: itab_zycit029, itab_zycit399.
READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit403t-codigo.
READ TABLE itab_zycit029 WITH KEY codigo = itab_zycit403t-codigo.
LOOP AT itab_zycit047 WHERE vldp > 0.
READ TABLE itab_zycit484
WITH KEY imposto = itab_zycit403t-codigo
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0 .
itab_zycit483-nrseqfat = /pws/zycie006-nrseq.
itab_zycit483-nrseq = /pws/zycit001-nrseq.
itab_zycit483-tpdesp = itab_zycit403t-codigo.
itab_zycit483-descr = itab_zycit029-descricao.
itab_zycit483-waers = /pws/zycie006-waers.
itab_zycit483-vldp = itab_zycit403t-base.
itab_zycit483-iva = itab_zycit484-mwskz.
APPEND itab_zycit483.
EXIT.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDFORM.
FORM carrega_impostos.
REFRESH itab_zycit483.
SELECT * FROM /pws/zycit483 INTO TABLE itab_zycit483
WHERE nrseqfat EQ /pws/zycie006-nrseq.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003I01
...
IF sy-subrc EQ 0.
CALL TRANSACTION 'MIR4' AND SKIP FIRST SCREEN.
ELSE.
MESSAGE e261(sf) WITH 'MIR4'.
ENDIF.
ENDIF.
WHEN 'DATE'.
PERFORM alt_dt_venc_fat.
WHEN 'FRETECLP'.
v_freteclp = 'S'.
* >> Início da inclusão: MODULE USER_COMMAND_0101
WHEN 'IMPOSTO'.
PERFORM trata_impostos.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
MODULE consiste_dtd_conta INPUT.
IF /pws/zycie006-dtd_conta IS INITIAL AND
/pws/zycie006-frpagto EQ 'D'.
MESSAGE e015 WITH text-017.
ENDIF.
IF /pws/zycie006-frpagto = 'D' AND /pws/zycie006-dtd_conta <
/pws/zycie006-dtincl.
MESSAGE s022.
...
...
SELECT SINGLE *
FROM lfa1
WHERE lifnr = /pws/zycie006-lifnr.
LOOP AT itab_zycit003.
MOVE lfa1-land1 TO itab_zycit003-porigem.
SELECT SINGLE land1
FROM lfa1 INTO itab_zycit003-paquis
WHERE lifnr = itab_zycit003-lifnrfabr.
MODIFY itab_zycit003.
ENDLOOP.
* >> Início da inclusão: MODULE ATUALIZA_DADOS
ENDMODULE.
MODULE modifica_imp INPUT.
READ TABLE itab_zycit483 INDEX tc_imp-current_line.
IF sy-subrc EQ 0.
IF itab_zycit483-tpdesp NE /pws/zycie483-tpdesp.
READ TABLE itab_zycit483
WITH KEY tpdesp = /pws/zycie483-tpdesp.
IF sy-subrc EQ 0.
MESSAGE i015 WITH text-182.
EXIT.
ENDIF.
READ TABLE itab_zycit403 WITH KEY codigo = /pws/zycie483-tpdesp.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-183.
EXIT.
ENDIF.
itab_zycit483-tpdesp = /pws/zycie483-tpdesp.
CLEAR: itab_zycit029.
READ TABLE itab_zycit029 WITH KEY codigo = itab_zycit483-tpdesp.
itab_zycit483-descr = itab_zycit029-descricao.
ENDIF.
itab_zycit483-mark = v_mark.
itab_zycit483-vldp = /pws/zycie483-vldp.
itab_zycit483-iva = /pws/zycie483-iva.
CLEAR: itab_zycit029.
MODIFY itab_zycit483 INDEX tc_imp-current_line.
ELSE.
READ TABLE itab_zycit483
WITH KEY tpdesp = /pws/zycie483-tpdesp.
IF sy-subrc EQ 0.
MESSAGE i015 WITH text-182.
EXIT.
ENDIF.
READ TABLE itab_zycit403 WITH KEY codigo = /pws/zycie483-tpdesp.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-183.
EXIT.
ENDIF.
itab_zycit483-mark = v_mark.
itab_zycit483-tpdesp = /pws/zycie483-tpdesp.
itab_zycit483-vldp = /pws/zycie483-vldp.
itab_zycit483-iva = /pws/zycie483-iva.
CLEAR: itab_zycit029.
READ TABLE itab_zycit029 WITH KEY codigo = itab_zycit483-tpdesp.
itab_zycit483-descr = itab_zycit029-descricao.
itab_zycit483-nrseqfat = /pws/zycie006-nrseq.
itab_zycit483-nrseq = /pws/zycit001-nrseq.
itab_zycit483-waers = /pws/zycie006-waers.
APPEND itab_zycit483.
ENDIF.
ENDMODULE.
MODULE user_command_0113 INPUT.
CASE okcode.
WHEN 'REFRESH_IMP'.
CHECK /pws/zycie006-belnr_mr1m IS INITIAL.
PERFORM refresh_impostos.
WHEN 'DALL_IMP'.
CLEAR: itab_zycit483.
MODIFY itab_zycit483 TRANSPORTING mark
WHERE mark EQ 'X'.
WHEN 'MALL_IMP'.
itab_zycit483-mark = 'X'.
MODIFY itab_zycit483 TRANSPORTING mark
WHERE mark EQ space.
WHEN 'DELE_IMP'.
CHECK /pws/zycie006-belnr_mr1m IS INITIAL.
DELETE itab_zycit483 WHERE mark EQ 'X'.
ENDCASE.
ENDMODULE.
* << Fim da inclusão
* >> Início da exclusão: MODULE ATUALIZA_DADOS
ENDMODULE.
* << Fim da exclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
ENDIF.
ELSEIF /pws/zycie006-tpfatura = '02'.
LOOP AT itab_zycit003 WHERE servico EQ 'X'.
ENDLOOP.
IF sy-subrc EQ 0.
MESSAGE i013 WITH text-132.
ENDIF.
ENDIF.
IF /pws/zycie006-tpfatura EQ '04' AND v_okcode <> 1.
PERFORM carregando_dados_019.
* >> Início da inclusão: MODULE LOAD_DATA
IF /pws/zycie006-imposto EQ 'X'.
READ TABLE itab_zycit483
WITH KEY nrseqfat = /pws/zycie006-nrseq.
IF sy-subrc NE 0.
PERFORM carrega_impostos.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDIF.
IF /pws/zycie006-nrfat IS INITIAL AND
/pws/zycie006-zterm IS INITIAL AND
/pws/zycie006-frpagto IS INITIAL AND
/pws/zycie006-waers IS INITIAL.
IMPORT /pws/zycie006-nrfat
/pws/zycie006-tpfatura
/pws/zycie006-zterm
/pws/zycie006-frpagto
/pws/zycie006-waers
...
...
ELSE.
screen-invisible = '1'.
ENDIF.
ENDIF.
IF /pws/zycie006-tpfatura NE '04'
AND screen-name = 'TAB_DESP'.
IF screen-group1 <> 'TAB' OR ( screen-name = 'TAB_DESP' AND
screen-group1 = 'TAB' ).
screen-input = '0'.
MODIFY SCREEN.
* >> Início da inclusão: MODULE SET_SCREEN
screen-invisible = '1'.
ELSE.
screen-invisible = '0'.
ENDIF.
ENDIF.
IF screen-name = 'TAB_IMP'.
IF /pws/zycie006-tpfatura NE '04' OR
/pws/zycie006-imposto IS INITIAL .
* << Fim da inclusão
screen-invisible = '1'.
ELSE.
screen-invisible = '0'.
ENDIF.
ENDIF.
IF screen-name = 'TAB_BANCO'.
IF /pws/zycie006-frpagto = 'A'.
screen-invisible = '1'.
ELSE.
screen-invisible = '0'.
...
...
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 ).
* >> Início da inclusão: MODULE SET_SCREEN
screen-active = 0 .
screen-invisible = 1 .
MODIFY SCREEN.
ENDIF.
IF screen-name EQ '/PWS/ZYCIE006-IMPOSTO'.
IF /pws/zycit477 IS INITIAL OR
/pws/zycie006-tpfatura NE '04' .
* << Fim da inclusão
screen-active = 0 .
screen-invisible = 1 .
* >> Início da inclusão: MODULE SET_SCREEN
MODIFY SCREEN.
ELSE.
IF /pws/zycie006-belnr_mr1m IS INITIAL.
screen-input = v_status_s.
* << Fim da inclusão
MODIFY SCREEN.
* >> Início da inclusão: MODULE SET_SCREEN
ELSE.
screen-input = v_status_s.
MODIFY SCREEN.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE SET_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.
...
...
wa_cols-screen-input = '0'.
ELSE.
wa_cols-screen-input = '1'.
ENDIF.
ENDIF.
IF v_existe_bol = 'X' AND wa_cols-screen-group3 = 'BOL'.
wa_cols-screen-input = 0.
ENDIF.
MODIFY tc_cambio-cols FROM wa_cols.
ENDLOOP.
* >> Início da inclusão: MODULE SET_SCREEN
ENDIF.
WHEN '0113'.
LOOP AT tc_imp-cols INTO wa_cols.
CHECK wa_cols-screen-group1 NE 'OUT'.
wa_cols-screen-input = v_status_s.
IF NOT /pws/zycie006-belnr_mr1m IS INITIAL.
wa_cols-screen-input = 0.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE SET_SCREEN
MODIFY tc_imp-cols FROM wa_cols.
ENDLOOP.
* << Fim da inclusão
ENDCASE.
LOOP AT SCREEN.
IF /pws/zycie006-tpfatura EQ '02' OR
/pws/zycie006-tpfatura EQ '03' OR
/pws/zycie006-tpfatura EQ '04'.
...
...
ENDMODULE.
MODULE verifica_boleto OUTPUT.
CLEAR v_existe_bol.
SELECT SINGLE * FROM /pws/zycbt031
WHERE nrcorresp = /pws/zycie006-nrseq_pgfat
AND belnr_p NE space.
IF sy-subrc = 0.
v_existe_bol = 'X'.
ENDIF.
ENDMODULE.
* >> Início da inclusão:
MODULE exibe_impostos OUTPUT.
/pws/zycie483 = itab_zycit483.
v_mark = itab_zycit483-mark.
ENDMODULE.
MODULE status_0113 OUTPUT.
DATA: v_taxaf TYPE /pws/zycit174-txconver,
v_taxau TYPE /pws/zycit174-txconver.
IF /pws/zycit477 IS INITIAL
OR /pws/zycie006-tpfatura NE '04'.
EXIT.
ENDIF.
IF NOT /pws/zycie006-imposto IS INITIAL.
IF /pws/zycit085 IS INITIAL.
MESSAGE i015 WITH text-176.
EXIT.
ENDIF.
READ TABLE itab_zycit399 WITH KEY pais = t001-land1.
IF sy-subrc NE 0.
REFRESH itab_zycit399.
SELECT * FROM /pws/zycit399 INTO TABLE itab_zycit399
WHERE pais EQ t001-land1
AND credita EQ 'X'
AND codmod EQ 'D'.
ENDIF.
READ TABLE itab_zycit029 WITH KEY land1 = t001-land1.
IF sy-subrc NE 0.
REFRESH itab_zycit029.
SELECT * FROM /pws/zycit029 INTO TABLE itab_zycit029
WHERE land1 EQ t001-land1.
ENDIF.
READ TABLE itab_zycit484 WITH KEY land1 = t001-land1
bukrs = /pws/zycie006-bukrs.
IF sy-subrc NE 0.
REFRESH itab_zycit484.
SELECT * FROM /pws/zycit484 INTO TABLE itab_zycit484
WHERE land1 EQ t001-land1
AND bukrs EQ /pws/zycie006-bukrs.
ENDIF.
READ TABLE itab_zycit403
WITH KEY nrseqdi = /pws/zycit085-nrseqdi.
IF sy-subrc NE 0.
CLEAR: v_taxaf, v_taxau.
PERFORM taxa_converte USING /pws/zycbt007-waersa
/pws/zycie006-dtincl
CHANGING v_taxau.
PERFORM taxa_converte USING /pws/zycie006-waers
/pws/zycie006-dtincl
CHANGING v_taxaf.
IF v_taxa IS INITIAL OR v_taxau IS INITIAL.
EXIT.
ENDIF.
REFRESH: itab_zycit403, itab_zycit403t.
SELECT * FROM /pws/zycit403 INTO TABLE itab_zycit403
WHERE nrseqdi EQ /pws/zycit085-nrseqdi.
DELETE itab_zycit403 WHERE percentual EQ 0.
LOOP AT itab_zycit403.
itab_zycit403t = itab_zycit403.
CLEAR: itab_zycit403t-ebeln, itab_zycit403t-ebelp.
itab_zycit403t-base =
( itab_zycit403-base * v_taxau ) / v_taxaf.
COLLECT itab_zycit403t.
ENDLOOP.
ENDIF.
ENDIF.
DESCRIBE TABLE itab_zycit483 LINES tc_imp-lines.
ADD 10 TO tc_imp-lines.
ENDMODULE.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003TOP
...
ts_fa TYPE TABSTRIP,
ts_faturas TYPE TABSTRIP,
tc_faturas TYPE TABLEVIEW USING SCREEN '0001',
tc_ccambio TYPE TABLEVIEW USING SCREEN '0103',
tc_rof TYPE TABLEVIEW USING SCREEN '0104',
tc_itens TYPE TABLEVIEW USING SCREEN '0106',
tc_desp TYPE TABLEVIEW USING SCREEN '0107',
tc_banco TYPE TABLEVIEW USING SCREEN '0108',
tc_ded TYPE TABLEVIEW USING SCREEN '0109',
tc_fat_parc TYPE TABLEVIEW USING SCREEN '0111',
* >> Início da inclusão:
tc_imp TYPE TABLEVIEW USING SCREEN '0113',
* << Fim da inclusão
tc_cambio TYPE TABLEVIEW USING SCREEN '0350',
tc_pg_ant TYPE TABLEVIEW USING SCREEN '0500'.
DATA:
wa_cols TYPE cxtab_column.
DATA: gv_subscreen_0050 TYPE sy-dynnr VALUE '0051',
gv_subscreen_0100_1 TYPE sy-dynnr,
gv_subscreen_0300_2 TYPE sy-dynnr.
CONSTANTS: BEGIN OF gc_subscreen,
prog TYPE sy-dynnr VALUE '0100',
help TYPE sy-dynnr VALUE '0053',
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003X01
...
/pws/zycbt115,
/pws/zycit006,
/pws/zycie006,
/pws/zyglt334,
/pws/zycie006a,
/pws/zycbe108,
/pws/zycbe115,
/pws/zycie001,
/pws/zycie003,
/pws/zycit003,
* >> Início da inclusão:
/pws/zycie483,
* << Fim da inclusão
/pws/zycbt119,
/pws/zycbe119,
lfa1,
tcurt,
t052u,
mbew,
/pws/zycit009,
/pws/zycit017,
/pws/zycit004,
/pws/zycit093,
...
...
DATA BEGIN OF itab_zycit006_atual OCCURS 0.
INCLUDE STRUCTURE /pws/zycit006.
DATA END OF itab_zycit006_atual.
DATA: BEGIN OF itab_zycbt035_aux2 OCCURS 0.
INCLUDE STRUCTURE /pws/zycbe035.
DATA knttp LIKE ekpo-knttp.
DATA: END OF itab_zycbt035_aux2.
DATA: BEGIN OF itab_contas OCCURS 0.
INCLUDE STRUCTURE /pws/zycbe035.
DATA: END OF itab_contas.
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit483 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit483.
DATA: mark.
DATA: END OF itab_zycit483.
DATA: itab_zycit403 TYPE /pws/zycit403 OCCURS 0 WITH HEADER LINE,
itab_zycit403t TYPE /pws/zycit403 OCCURS 0 WITH HEADER LINE,
itab_zycit484 TYPE /pws/zycit484 OCCURS 0 WITH HEADER LINE,
itab_zycit029 TYPE /pws/zycit029 OCCURS 0 WITH HEADER LINE,
itab_zycit399 TYPE /pws/zycit399 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA: BEGIN OF itab_fat_temp OCCURS 0.
DATA: nrseq_pgfat TYPE /pws/zycit263-nrseq_pgfat.
DATA: END OF itab_fat_temp.
DATA: itab_tcurx TYPE tcurx OCCURS 0 WITH HEADER LINE .
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI003
------------------------------------------------------------------------
Modificado símbolo de texto:
Idioma: ES
Símbolo: 170
Texto: (52 caracteres)
"Factura de Servicio no puede tener pago con tipo 'P'"
Comprimento máximo: 61
------------------------------------------------------------------------
Modificado símbolo de texto:
Idioma: PT
Símbolo: 178
Texto: (48 caracteres)
"Embarque de Serviço não pode ter fatura de frete"
Comprimento máximo: 52
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 178
Texto: (52 caracteres)
"Embarque de Servicio no puode tener factura de flete"
Comprimento máximo: 52
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 179
Texto: (43 caracteres)
"Taxa de Conversão para a data da fatura não"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 179
Texto: (40 caracteres)
"Tasa cambial para fecha de la factura no"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 180
Texto: (34 caracteres)
"cadastrada na tabela /PWS/ZYCIT174"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 180
Texto: (34 caracteres)
"llenada em la tabla /PWS/ZYCIT174."
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 181
Texto: (45 caracteres)
"Dados de tabela de parâmetros inconsistentes."
Comprimento máximo: 53
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 181
Texto: (44 caracteres)
"Datos de tabla de parámetros inconsistentes."
Comprimento máximo: 53
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 182
Texto: (27 caracteres)
"Imposto já existe na fatura"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 182
Texto: (32 caracteres)
"Impuesto ya existe en la factura"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 183
Texto: (29 caracteres)
"Imposto não existente na ANA!"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 183
Texto: (32 caracteres)
"Impuesto no existente em la ANA!"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 184
Texto: (41 caracteres)
"Despesa não gera recolhimento de imposto."
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 184
Texto: (32 caracteres)
"Gasto no genera pago de impuesto"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 185
Texto: (40 caracteres)
" Favor desmarcar campo Pago para Aduana."
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 185
Texto: (40 caracteres)
"Favor desmarcar campo Pagada para Aduana"
Comprimento máximo: 50
----------------------------------------------------------------------------------------------------
Modificações efetuadas em SHI3 /PWS/ZYCIAL
Adicionar transação /PWS/ZYCIT484 nos parametros da ANA
----------------------------------------------------------------------------------------------------
Modificações efetuadas em SHI6 /PWS/ZYCIAL
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE006
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
WAERS_CLP WAERS CUKY 5
IVA /PWS/ZYCIL500 T007A CHAR 2
* >> Início da inclusão:
IMPOSTO XFLAG CHAR 1
* << 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
IVA /PWS/ZYCIL500 CHAR 2
* >> Início da inclusão:
IMPOSTO XFLAG CHAR 1
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIE483
Criar tabela:
Nome da tabela /PWS/ZYCIT483
Descrição breve CI - IMPOSTOS NA FATURA
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.
MANDT X MANDT X CLNT 3
NRSEQFAT X /PWS/ZYCIL001 X CHAR 10
NRSEQ X /PWS/ZYCIL001 X CHAR 10
TPDESP X /PWS/ZYCIL089 /PWS/ZYCIT029 X CHAR 6
DESCR /PWS/ZYCIL037 CHAR 35
WAERS WAERS CUKY 5
VLDP WRBTR CURR 13
IVA /PWS/ZYCIL500 T007A CHAR 2
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT483
Criar tabela:
Nome da tabela /PWS/ZYCIE483
Descrição breve CI - IMPOSTOS NA FATURA
Ctg.tabela Estrutura
Campos
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
.INCLUDE /PWS/ZYCIT483
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT484
Criar tabela:
Nome da tabela /PWS/ZYCIT484
Descrição breve CI - CODIGO PARA CONTABILIZAÇÃO DE IMPOSTOS NA MIRO
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 MANDT CLNT 3
LAND1 LAND T005 CHAR 3
BUKRS BUKRS T001 CHAR 4
CODMOD /PWS/ZYCIL090 CHAR 1
TPDESP /PWS/ZYCIL036 /PWS/ZYCIT019 CHAR 3
IMPOSTO /PWS/ZYCIL089 /PWS/ZYCIT029 CHAR 6
MWSKZ MWSKZ T007A CHAR 2
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TOBJ /PWS/ZYCIT484S
Criar tela de atualização para a tabela /PWS/ZYCIT484
Tela: 0484
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TRAN /PWS/ZYCIT484
Criar transação: /PWS/ZYCIT484
tipo de transação: Transação c/parâmetros (transação_de_parâmetro)
Parametros:
Transação: SM30 Omitir 1ªtela: X
*Campo de Tela Valor
VIEWNAME /PWS/ZYCIT484
UPDATE_LTD X