Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 01/07/2013 00:00:00
Data/Hora Última Alteração: 19/08/2013 13:54:58
Descrição da Nota: ERRO NA CONTABILIZAÇÃO DOS IMPOSTOS NA NOTA FISCAL GLOBAL
Sintoma
Erro na contabilização dos impostos na Nota Fiscal Global quando temos quebra por item e impostos
com regime tributário suspenso.
Solução
Ajustar o programa quanto na tabela /PWS/ZYCIT048-QTD_ITEM estiver igual a 1, e tiver impostos
suspensos de tributação.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 13091 Data: 01/07/2013 Hora: 16:35:08
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 13091
Categoria : Erro de Programa
Prioridade : Baixa
Versão PW.CE : 9.0
Pacote : 00005
Agrupamento : 00158
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12841 - 00001 - 9.0 - 00003 - DESENVOLVIMENTO ADICIONAL - CONTABILIZAR IMPOSTOS NA NOTA FISCAL
----------------------------------------------------------------------------------------------------
ERRO NA CONTABILIZAÇÃO DOS IMPOSTOS NA NOTA FISCAL GLOBAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
CONTABILIZAR OS IMPOSTOS NA NFG - /PWS/SAPMZYCI016 - CONT_IMP_NF
/PWS/ZYCIT062-CONT_IMP_NF
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F02
REPS /PWS/MZYCI016X01
REPS /PWS/MZYCI016F01
REPT /PWS/SAPMZYCI016
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F02
...
* >> Início da inclusão:
FORM contabiliza_impostos_nf.
PERFORM lancamento_impostos_nf.
PERFORM get_parameters_f-02.
itab_zycbe033-mandt = sy-mandt.
itab_zycbe033-tcode = v_trans.
itab_zycbe033-tabela = v_ntabela.
itab_zycbe033-cpochv = /pws/zycie041-nrseq.
itab_zycbe033-bldat = sy-datlo.
itab_zycbe033-d_valut = sy-datlo.
itab_zycbe033-budat = sy-datlo.
v_nrseq = /pws/zycie041-nrseq.
SHIFT v_nrseq LEFT DELETING LEADING '0'.
CONCATENATE /pws/zycie041-embarca '-' v_nrseq
INTO v_bktxt.
itab_zycbe033-bktxt = v_bktxt.
itab_zycbe033-brnch = /pws/zycie041-j_1bbranch.
itab_zycbe033-d_zuonr = itab_zycbe033-c_zuonr = v_zuonr.
itab_zycbe033-d_sgtxt = itab_zycbe033-c_sgtxt = v_sgtxt.
v_nfnum = /pws/zycie041-nfnum.
itab_zycbe033-xblnr = v_nfnum.
v_forn = /pws/zycie041-lfsnr.
v_nrseq = /pws/zycie041-nrseq.
SHIFT v_nrseq LEFT DELETING LEADING '0'.
SHIFT v_forn LEFT DELETING LEADING ' '.
READ TABLE itab_zycbt013 WITH KEY cpor3 = 'SGTXT'.
IF sy-subrc = 0.
CONCATENATE itab_zycbt013-descr /pws/zycie041-embarca v_nrseq
INTO v_sgtxt SEPARATED BY space.
ELSE.
CONCATENATE text-070 /pws/zycie041-embarca '-' v_nrseq ' - '
text-071 v_nfnum ' - ' text-072 v_forn INTO v_sgtxt.
ENDIF.
itab_zycbe033-d_sgtxt = v_sgtxt.
itab_zycbe033-c_sgtxt = v_sgtxt.
PERFORM verify_null_field USING /pws/zycie041-bukrs
'BUKRS'
text-073.
itab_zycbe033-bukrs = /pws/zycie041-bukrs.
PERFORM verify_null_field USING wa_zycbt007-waersb
'WAERS'
text-074.
itab_zycbe033-waers = wa_zycbt007-waersb.
PERFORM verify_null_field USING wa_zycbt011-blart
'BLART'
text-075.
itab_zycbe033-blart = wa_zycbt011-blart.
LOOP AT itab_zycit003 WHERE NOT gsber IS initial.
itab_zycbe033-d_gsber = itab_zycit003-gsber.
itab_zycbe033-c_gsber = itab_zycit003-gsber.
ENDLOOP.
READ TABLE itab_ekkn INDEX 1.
IF sy-subrc EQ 0.
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_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.
itab_zycbe033-ps_psp_pnr = itab_ekkn-ps_psp_pnr.
ENDIF.
itab_zycbe033-brnch = /pws/zycie041-j_1bbranch.
v_codeven = '006IC'.
CLEAR: v_xblnr, v_zuonr, v_sgtxt, v_bktxt.
CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'
EXPORTING
v_nrseq = /pws/zycie001-nrseq
v_codeven = v_codeven
v_nfnum = /pws/zycie041-nfnum
IMPORTING
v_xblnr = v_xblnr
v_zuonr = v_zuonr
v_sgtxt = v_sgtxt
v_bktxt = v_bktxt.
itab_zycbe033-d_sgtxt = itab_zycbe033-c_sgtxt = v_sgtxt.
itab_zycbe033-xblnr = v_xblnr.
APPEND itab_zycbe033.
FREE itab_contas.
LOOP AT itab_zycbt035 WHERE wrbtr > 0.
CASE itab_zycbt035-imposto.
WHEN 'PIS' OR 'BPIS'.
v_codeven = '006PI'.
WHEN 'COFI' OR 'BCOF'.
v_codeven = '006CO'.
WHEN OTHERS.
IF itab_zycbt035-ktosl+0(2) = 'IC'.
v_codeven = '006IC'.
ELSE.
v_codeven = '006IP'.
ENDIF.
ENDCASE.
CLEAR: v_xblnr, v_zuonr, v_sgtxt, v_bktxt.
CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'
EXPORTING
v_nrseq = /pws/zycie001-nrseq
v_codeven = v_codeven
v_nfnum = /pws/zycie041-nfnum
v_ktosl = itab_zycbt035-ktosl
IMPORTING
v_xblnr = v_xblnr
v_zuonr = v_zuonr
v_sgtxt = v_sgtxt
v_bktxt = v_bktxt.
itab_zycbe033-xblnr = v_xblnr.
itab_zycbt035-d_xblnr = itab_zycbt035-c_xblnr = v_xblnr.
itab_zycbt035-d_zuonr = itab_zycbt035-c_zuonr = v_zuonr.
itab_zycbt035-d_sgtxt = itab_zycbt035-c_sgtxt = v_sgtxt.
MODIFY itab_zycbt035.
MOVE-CORRESPONDING itab_zycbt035 TO itab_contas.
APPEND itab_contas.
ENDLOOP.
IF itab_contas[] IS INITIAL.
MESSAGE i015 WITH text-133 text-134 itab_doc-docnum.
ENDIF.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
IF itab_zycbt034[] IS INITIAL AND
NOT itab_contas[] IS INITIAL.
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_F_02C'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = itab_zycbe033
t_campo = itab_zycbt034
t_zycbt032 = itab_zycbt032
t_contas = itab_contas
EXCEPTIONS
campo_em_branco = 1
periodo_fechado = 2
OTHERS = 3.
IF sy-subrc = 0.
READ TABLE itab_zycbt032 WITH KEY tcode = v_trans
tabela = v_ntabela
cpochv = /pws/zycie041-nrseq
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i057 WITH itab_zycbt032-belnr.
/pws/zycie041-statusp_f_02 = 'C'.
/pws/zycie041-belnr_f_02 = itab_zycbt032-belnr.
/pws/zycie041-dt_f_02 = sy-datlo.
/pws/zycie041-docnum = itab_doc-docnum.
MODIFY /pws/zycit041 FROM /pws/zycie041.
MOVE-CORRESPONDING /pws/zycie041 TO /pws/zycit041.
PERFORM carrega_log USING '/PWS/ZYCIT041' 'U'
' ' '/PWS/SAPMZYCI016' /pws/zycit041-nrseq.
COMMIT WORK.
ELSE.
LOOP AT itab_zycbt032.
MESSAGE i015 WITH itab_zycbt032-msg+0(50)
itab_zycbt032-msg+50(50).
ENDLOOP.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
ENDIF.
ELSE.
LOOP AT itab_zycbt034.
MESSAGE i016 WITH itab_zycbt034-descricao.
ENDLOOP.
ENDIF.
ENDFORM.
FORM lancamento_impostos_nf.
DATA: v_montante LIKE /pws/zycbe035-wrbtr ,
v_j_1bbranch LIKE /pws/zycit042-j_1bbranch.
FREE itab_zycit033.
SELECT * FROM /pws/zycit033 INTO TABLE itab_zycit033
WHERE clnf = 'G'. "#EC CI_NOFIRST
FREE itab_global.
LOOP AT itab_zycit042 WHERE docnum = itab_doc-docnum.
MOVE itab_zycit042 TO itab_global.
APPEND itab_global.
ENDLOOP.
SELECT * FROM j_1baj INTO TABLE itab_j_1baj
WHERE ( taxgrp = 'ICMS' OR taxgrp = 'IPI' ).
FREE itab_j1bnfstx.
IF NOT itab_global[] IS INITIAL.
SELECT * FROM j_1bnfstx INTO TABLE itab_j1bnfstx
FOR ALL ENTRIES IN itab_global
WHERE docnum = itab_global-docnum
AND itmnum = itab_global-itmnum.
ENDIF.
IF sy-subrc NE 0.
MESSAGE w015 WITH text-076.
EXIT.
ENDIF.
FREE itab_ekkn.
IF NOT itab_global[] IS INITIAL.
SELECT ebeln ebelp prctr kostl fistl fipos ps_psp_pnr kokrs aufnr
FROM ekkn
INTO TABLE itab_ekkn
FOR ALL ENTRIES IN itab_global
WHERE ebeln = itab_global-ebeln
AND ebelp = itab_global-ebelp.
ENDIF.
FREE itab_matuse.
IF NOT itab_global[] IS INITIAL.
SELECT ebeln ebelp matnr bwtar j_1bmatuse knttp werks
FROM ekpo INTO TABLE itab_matuse
FOR ALL ENTRIES IN itab_global
WHERE ebeln = itab_global-ebeln
AND ebelp = itab_global-ebelp.
ENDIF.
IF NOT itab_global[] IS INITIAL.
FREE itab_zycit003.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_global
WHERE nrseq = itab_global-nrseq
AND ebeln = itab_global-ebeln
AND ebelp = itab_global-ebelp.
ENDIF.
CLEAR: itab_classe_aval ,
itab_param_classe.
REFRESH: itab_classe_aval ,
itab_param_classe.
IF NOT itab_matuse[] IS INITIAL.
SELECT werks bwkey FROM t001w INTO TABLE itab_t001w
FOR ALL ENTRIES IN itab_matuse WHERE
werks = itab_matuse-werks.
LOOP AT itab_matuse.
READ TABLE itab_t001w WITH KEY werks = itab_matuse-werks.
IF sy-subrc EQ 0.
itab_matuse-bwkey = itab_t001w-bwkey.
MODIFY itab_matuse.
ENDIF.
ENDLOOP.
SELECT matnr bwkey bwtar bklas
FROM mbew
INTO TABLE itab_classe_aval
FOR ALL ENTRIES IN itab_matuse
WHERE matnr EQ itab_matuse-matnr
AND bwkey EQ itab_matuse-bwkey
AND bwtar EQ itab_matuse-bwtar.
ENDIF.
IF NOT itab_classe_aval[] IS INITIAL.
SELECT * FROM /pws/zycit135 INTO TABLE itab_param_classe
FOR ALL ENTRIES IN itab_classe_aval
WHERE bklas EQ itab_classe_aval-bklas.
ENDIF.
CLEAR itab_zycbt035_aux.
FREE itab_zycbt035_aux.
LOOP AT itab_global.
CLEAR itab_zycit003.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
CLEAR itab_ekkn.
READ TABLE itab_ekkn WITH KEY ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
CLEAR itab_matuse.
READ TABLE itab_matuse WITH KEY ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
IF itab_matuse-knttp IS INITIAL.
CLEAR: itab_classe_aval.
READ TABLE itab_classe_aval WITH KEY
matnr = itab_matuse-matnr
bwkey = itab_zycit003-werks
bwtar = itab_matuse-bwtar.
IF sy-subrc EQ 0.
CLEAR: itab_param_classe.
READ TABLE itab_param_classe WITH KEY
bklas = itab_classe_aval-bklas.
IF sy-subrc EQ 0.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,
itab_classe_aval-bklas TO itab_zycbt035_aux-bklas .
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,
space TO itab_zycbt035_aux-bklas .
ENDIF.
ELSE.
MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,
space TO itab_zycbt035_aux-bklas .
ENDIF.
CLEAR itab_zycit033.
READ TABLE itab_zycit033 WITH KEY regio = t001w-regio
tpnf = itab_global-tpnf.
IF sy-subrc NE 0.
READ TABLE itab_zycit033 WITH KEY tpnf = itab_global-tpnf
regio = space.
ENDIF.
itab_zycbt035_aux-d_gsber = itab_zycit003-gsber.
itab_zycbt035_aux-tribicms = itab_zycit033-tribicms.
itab_zycbt035_aux-tribipi = itab_zycit033-tribipi.
itab_zycbt035_aux-lei102 = itab_zycit033-lei102.
LOOP AT itab_j1bnfstx.
IF itab_j1bnfstx-itmnum EQ itab_global-itmnum AND
itab_j1bnfstx-taxval GT 0.
LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'
OR taxgrp = 'IPI'.
IF itab_j1bnfstx-taxtyp EQ itab_j_1baj-taxtyp.
itab_zycbt035_aux-imposto = itab_j1bnfstx-taxtyp.
itab_zycbt035_aux-wrbtr = itab_j1bnfstx-taxval.
APPEND itab_zycbt035_aux.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
ENDLOOP.
CLEAR itab_zycbt035. FREE itab_zycbt035.
CLEAR v_j_1bbranch.
READ TABLE itab_global INDEX 1.
v_j_1bbranch = itab_global-j_1bbranch.
FREE itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY imposto tribicms matuse bklas d_gsber.
LOOP AT itab_zycbt035_aux.
IF itab_zycbt035_aux-tribicms EQ '3' AND
( itab_zycbt035_aux-lei102 NE 'X' OR
itab_zycbt035_aux-lei102 NE 'Y' ) .
LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'.
IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.
IF itab_zycbt035_aux-bklas IS INITIAL.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
ELSE.
itab_zycbt035_aux2-bklas = itab_zycbt035_aux-bklas.
ENDIF.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
COLLECT itab_zycbt035_aux2.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux2.
CLEAR v_montante.
v_montante = itab_zycbt035_aux2-wrbtr.
IF itab_zycbt035_aux2-bklas IS INITIAL.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
tribicms = itab_zycbt035_aux2-tribicms
matuse = itab_zycbt035_aux2-matuse
d_gsber = itab_zycbt035_aux2-d_gsber.
ELSE.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
tribicms = itab_zycbt035_aux2-tribicms
bklas = itab_zycbt035_aux2-bklas
d_gsber = itab_zycbt035_aux2-d_gsber.
ENDIF.
MOVE itab_zycbt035_aux TO itab_zycbt035.
itab_zycbt035-wrbtr = v_montante.
itab_zycbt035-bschl = '40'.
APPEND itab_zycbt035.
ENDLOOP.
FREE itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY imposto tribicms matuse d_gsber.
LOOP AT itab_zycbt035_aux.
IF itab_zycbt035_aux-tribicms EQ '3' AND
( itab_zycbt035_aux-lei102 NE 'X' OR
itab_zycbt035_aux-lei102 NE 'Y' ).
LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'.
IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
COLLECT itab_zycbt035_aux2.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux2.
CLEAR v_montante.
v_montante = itab_zycbt035_aux2-wrbtr.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
tribicms = itab_zycbt035_aux2-tribicms
matuse = itab_zycbt035_aux2-matuse
d_gsber = itab_zycbt035_aux2-d_gsber.
MOVE itab_zycbt035_aux TO itab_zycbt035.
itab_zycbt035-wrbtr = v_montante.
itab_zycbt035-bschl = '50'.
APPEND itab_zycbt035.
ENDLOOP.
FREE itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY imposto tribicms matuse d_gsber.
LOOP AT itab_zycbt035_aux.
IF itab_zycbt035_aux-tribicms EQ '3' AND
( itab_zycbt035_aux-lei102 EQ 'X' OR
itab_zycbt035_aux-lei102 EQ 'Y' ).
LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'.
IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
COLLECT itab_zycbt035_aux2.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux2.
CLEAR v_montante.
v_montante = itab_zycbt035_aux2-wrbtr.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
tribicms = itab_zycbt035_aux2-tribicms
matuse = itab_zycbt035_aux2-matuse
d_gsber = itab_zycbt035_aux2-d_gsber.
MOVE itab_zycbt035_aux TO itab_zycbt035.
itab_zycbt035-wrbtr = v_montante.
itab_zycbt035-bschl = '40'.
APPEND itab_zycbt035.
itab_zycbt035-bschl = '50'.
APPEND itab_zycbt035.
ENDLOOP.
FREE itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY imposto tribicms matuse d_gsber.
LOOP AT itab_zycbt035_aux.
IF itab_zycbt035_aux-tribicms EQ '1'.
LOOP AT itab_j_1baj WHERE taxgrp = 'ICMS'.
IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-tribicms = itab_zycbt035_aux-tribicms.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
COLLECT itab_zycbt035_aux2.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux2.
CLEAR v_montante.
v_montante = itab_zycbt035_aux2-wrbtr.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
tribicms = itab_zycbt035_aux2-tribicms
matuse = itab_zycbt035_aux2-matuse
d_gsber = itab_zycbt035_aux2-d_gsber.
MOVE itab_zycbt035_aux TO itab_zycbt035.
itab_zycbt035-wrbtr = v_montante.
itab_zycbt035-bschl = '40'.
APPEND itab_zycbt035.
itab_zycbt035-bschl = '50'.
APPEND itab_zycbt035.
ENDLOOP.
FREE itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY imposto matuse d_gsber.
LOOP AT itab_zycbt035_aux.
IF itab_zycbt035_aux-tribipi EQ '1'.
LOOP AT itab_j_1baj WHERE taxgrp = 'IPI'.
IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
COLLECT itab_zycbt035_aux2.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux2.
CLEAR v_montante.
v_montante = itab_zycbt035_aux2-wrbtr.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
matuse = itab_zycbt035_aux2-matuse
d_gsber = itab_zycbt035_aux2-d_gsber.
MOVE itab_zycbt035_aux TO itab_zycbt035.
itab_zycbt035-wrbtr = v_montante.
itab_zycbt035-bschl = '40'.
APPEND itab_zycbt035.
itab_zycbt035-bschl = '50'.
APPEND itab_zycbt035.
ENDLOOP.
FREE itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY imposto matuse bklas d_gsber.
LOOP AT itab_zycbt035_aux.
IF itab_zycbt035_aux-tribipi EQ '3'.
LOOP AT itab_j_1baj WHERE taxgrp = 'IPI'.
IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
IF itab_zycbt035_aux-bklas IS INITIAL.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
ELSE.
itab_zycbt035_aux2-bklas = itab_zycbt035_aux-bklas.
ENDIF.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
COLLECT itab_zycbt035_aux2.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux2.
CLEAR v_montante.
v_montante = itab_zycbt035_aux2-wrbtr.
IF itab_zycbt035_aux2-bklas IS INITIAL.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
matuse = itab_zycbt035_aux2-matuse
d_gsber = itab_zycbt035_aux2-d_gsber.
ELSE.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
bklas = itab_zycbt035_aux2-bklas
d_gsber = itab_zycbt035_aux2-d_gsber.
ENDIF.
MOVE itab_zycbt035_aux TO itab_zycbt035.
itab_zycbt035-wrbtr = v_montante.
itab_zycbt035-bschl = '40'.
APPEND itab_zycbt035.
ENDLOOP.
FREE itab_zycbt035_aux2.
SORT itab_zycbt035_aux BY imposto matuse d_gsber.
LOOP AT itab_zycbt035_aux.
IF itab_zycbt035_aux-tribipi EQ '3'.
LOOP AT itab_j_1baj WHERE taxgrp = 'IPI'.
IF itab_zycbt035_aux-imposto EQ itab_j_1baj-taxtyp.
itab_zycbt035_aux2-imposto = itab_zycbt035_aux-imposto.
itab_zycbt035_aux2-matuse = itab_zycbt035_aux-matuse.
itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.
itab_zycbt035_aux2-wrbtr = itab_zycbt035_aux-wrbtr.
COLLECT itab_zycbt035_aux2.
ENDIF.
ENDLOOP.
ENDIF.
ENDLOOP.
LOOP AT itab_zycbt035_aux2.
CLEAR v_montante.
v_montante = itab_zycbt035_aux2-wrbtr.
READ TABLE itab_zycbt035_aux WITH KEY
imposto = itab_zycbt035_aux2-imposto
matuse = itab_zycbt035_aux2-matuse
d_gsber = itab_zycbt035_aux2-d_gsber.
MOVE itab_zycbt035_aux TO itab_zycbt035.
itab_zycbt035-wrbtr = v_montante.
itab_zycbt035-bschl = '50'.
APPEND itab_zycbt035.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016X01
...
* >> Início da inclusão:
DATA: BEGIN OF itab_doc OCCURS 0,
docnum TYPE j_1bnfdoc-docnum,
END OF itab_doc.
* << Fim da inclusão
DATA: END OF COMMON PART a.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
COMMIT WORK.
IF v_modalidade = '99' OR ( t001-land1 EQ 'AR' OR t001-land1 EQ 'CL' ).
LOOP AT itab_zycit042 WHERE docnum IS initial OR
docnum = '9999999999' OR
docnum = '8888888888'.
ENDLOOP.
IF sy-subrc NE 0.
PERFORM contabiliza_impostos.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM FILL_DATA_J1B1
CLEAR: itab_doc, itab_doc[].
LOOP AT itab_zycit042 WHERE processado = 'X'.
IF NOT itab_zycit042-docnum IS INITIAL.
itab_doc-docnum = itab_zycit042-docnum.
APPEND itab_doc.
ENDIF.
ENDLOOP.
SORT itab_doc.
DELETE ADJACENT DUPLICATES FROM itab_doc.
* << Fim da inclusão
CLEAR: v_cont_imp_nfg.
IF /pws/zycit062-cont_imp_nf EQ 'X' AND v_modalidade NE '99'
AND /pws/zycie041-belnr_f_02 IS INITIAL.
v_cont_imp_nfg = 'X'.
* >> Início da exclusão: FORM FILL_DATA_J1B1
PERFORM contabiliza_impostos.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B1
LOOP AT itab_doc.
CLEAR: /pws/zycie041-statusp_f_02,
/pws/zycie041-belnr_f_02,
/pws/zycie041-dt_f_02.
PERFORM contabiliza_impostos_nf.
ENDLOOP.
* << Fim da inclusão
ENDIF.
CLEAR v_modo_bi.
v_tiponf = 'NF'.
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'DNF009' BINARY SEARCH.
IF sy-subrc EQ 0.
...
...
FORM cabecalho_nf.
FIELD-SYMBOLS: <nfe> TYPE ANY.
DATA t_field(20) TYPE c VALUE 'J_1BNFDOC-NFE'.
* >> Início da inclusão: FORM CABECALHO_NF
CLEAR: itab_zycit100, itab_zycit100[].
* << Fim da inclusão
CLEAR v_graneis.
SELECT SINGLE * FROM j_1bbranch
WHERE bukrs = /pws/zycie041-bukrs
AND branch = /pws/zycit085-j_1bbranch.
SELECT SINGLE * FROM adrc
WHERE addrnumber = j_1bbranch-adrnr.
it_zycee005-tcode = text-065.
it_zycee005-tabela = text-014.
it_zycee005-nrseq = /pws/zycie041-nfglobal.
PERFORM verifica_filial.
...
...
DATA: vl_pis_5 TYPE /pws/zycit100-vlpis ,
vl_cofins_5 TYPE /pws/zycit100-vlcofins,
vl_pis_2 TYPE /pws/zycit100-vlpis ,
vl_cofins_2 TYPE /pws/zycit100-vlcofins ,
v_cont LIKE sy-tabix.
CLEAR v_cont.
DESCRIBE TABLE itab_global LINES v_cont.
CLEAR v_tabix.
* >> Início da exclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1
LOOP AT itab_zycit042 WHERE processado = 'X'.
CLEAR: itab_global.
READ TABLE itab_global WITH KEY nrseqnf = itab_zycit042-nrseqnf
nrseq = itab_zycit042-nrseq
embarca = itab_zycit042-embarca
nfglobal = itab_zycit042-nfglobal
ebeln = itab_zycit042-ebeln
ebelp = itab_zycit042-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM ADICIONA_OUTROS_IMPOSTOS_1
LOOP AT itab_global.
* << Fim da inclusão
v_tabix = v_tabix + 1.
CLEAR itab_zycbt035_aux.
CLEAR itab_zycit100.
READ TABLE itab_zycit100 WITH KEY nrseq = itab_global-nrseq
ebeln = itab_global-ebeln
ebelp = itab_global-ebelp.
IF itab_zycit100-vlpis IS INITIAL AND
itab_zycit100-vlcofins IS INITIAL
OR ( itab_zycit100-codregtripiscofi EQ '5'
OR itab_zycit100-codregtripiscofi EQ '3' ).
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI016
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 133
Texto: (38 caracteres)
"There are no itens of taxes accounting"
Comprimento máximo: 43
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 133
Texto: (43 caracteres)
"Não existe itens de contabilização impostos"
Comprimento máximo: 43
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 133
Texto: (43 caracteres)
"No existe items de contabilización impostos"
Comprimento máximo: 43
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 134
Texto: (6 caracteres)
"to NF:"
Comprimento máximo: 14
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 134
Texto: (12 caracteres)
"para a nota:"
Comprimento máximo: 14
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 134
Texto: (10 caracteres)
"para a NF:"
Comprimento máximo: 14
Comprimento máximo: 14