Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Nota Fiscal
Data/Hora da Publicação: 03/07/2008 00:00:00
Data/Hora Última Alteração: 09/03/2010 14:04:34
Descrição da Nota: CRIAR EXIT PARA CÁLCULOS DE VALORES FUNDAP
Sintoma
necessária exit para cálculos de valores fundap.
Solução
Abertura de exit no programa de nota fiscal para cálculo do Desconto FUNDAP.
7.0
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06912 Data: 03/07/2008 Hora: 15:51:07
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06912
Categoria : Erro de Programa
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00054
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Descrição Breve
----------------------------------------------------------------------------------------------------
CRIAR EXIT PARA CÁLCULOS DE VALORES FUNDAP
----------------------------------------------------------------------------------------------------
Palavras Chave:
FUNDAP - CÁLCULO - NOTA FISCAL
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie085-bukrs.
ENDIF.
ENDIF.
LOOP AT itab_zycit049_fndp
WHERE tpdesp NE /pws/zycit000-cod_sisc.
IF itab_zycit049_fndp-waers EQ /pws/zycie085-waersfob .
v_vlreal = v_vlreal + itab_zycit049_fndp-vldp .
ELSE.
PERFORM trata_decimais USING itab_zycit049_fndp-waers
* >> Início da exclusão: FORM SELECIONA_ITENS_NFG
itab_zycit049_fndp-vldp.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
changing itab_zycit049_fndp-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_fndp-waers
/pws/zycie085-dttax
CHANGING v_taxa_desp.
v_vlreal = v_vlreal + ( itab_zycit049_fndp-vldp *
v_taxa_desp ) .
ENDIF.
ENDLOOP.
LOOP AT itab_zycit003.
CLEAR : itab_zycit480,
v_vlii, v_vlipi,
...
...
v_vlipi = itab_zycit100-vlipi.
ENDIF.
IF NOT '356' CA itab_zycit100-codregtripiscofi.
v_vlpis = itab_zycit100-vlpis.
v_vlcofins = itab_zycit100-vlcofins.
ENDIF.
itab_zycit480-vl_aliqicms = itab_zycit003-advalicms .
itab_zycit480-vl_basred = itab_zycit003-basred .
IF itab_zycit100-waersbem NE /pws/zycie085-waersfob.
PERFORM trata_decimais USING itab_zycit100-waersbem
* >> Início da exclusão: FORM SELECIONA_ITENS_NFG
itab_zycit100-vlfob.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
changing itab_zycit100-vlfob.
* << Fim da inclusão
PERFORM taxa_converte USING /pws/zycie085-waersfob
/pws/zycie085-dttax
CHANGING v_taxa_desp.
itab_zycit100-vlfob = itab_zycit100-vlfob * v_taxa_desp .
IF NOT /pws/zycie085-vlfob IS INITIAL.
v_vldp = ( v_vlreal * itab_zycit100-vlfob ) /
/pws/zycie085-vlfob.
ENDIF.
ELSE.
IF NOT /pws/zycie085-vlfob IS INITIAL.
...
...
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit480
INTO TABLE itab_zycit480
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_ITENS_NFG
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF018'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF018' BINARY SEARCH.
IF sy-subrc EQ 0 AND
NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND .
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM find_nrseqc.
DATA:
v_nfglobal LIKE /pws/zycit041-nfglobal,
v_count(6) TYPE n.
SELECT MAX( nfglobal ) INTO (v_nfglobal)
FROM /pws/zycit041. "#EC CI_NOWHERE
v_count = v_nfglobal+0(6) + 1.
MOVE v_count TO /pws/zycie041-nfglobal.
ENDFORM.
...
...
v_qtditem = wa_zycit048-qtd_item.
IF v_counter >= v_qtditem.
CLEAR: v_counter, v_tpnf, v_j_1bbranch, v_lifnr .
EXIT.
ENDIF.
ENDLOOP.
IF sy-subrc NE 0.
EXIT.
ENDIF.
it_zycee005-transpnac = /pws/zycie041-transpnac.
* >> Início da exclusão: FORM FILL_DATA_J1B1
IF it_zycee005-ntgew LT '0.001'.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B1
IF it_zycee005-ntgew LT '0.001'. "#EC PORTABLE
* << Fim da inclusão
it_zycee005-ntgew = '0.001'.
ENDIF.
APPEND it_zycee005.
PERFORM mensagens_nf.
LOOP AT it_zycet004.
MESSAGE i019 WITH it_zycet004-descricao.
ENDLOOP.
IF it_zycet004 IS INITIAL.
CLEAR: sy-subrc.
IF v_modalidade NE '99' AND ( t001-land1 NE 'AR' AND
...
...
CLEAR itab_zycit033.
PERFORM peso_global_sep.
v_counter = v_counter + 1.
v_qtditem = wa_zycit048-qtd_item.
IF v_counter >= v_qtditem.
CLEAR: v_counter, v_j_1bbranch, v_lifnr .
EXIT.
ENDIF.
ENDLOOP.
it_zycee005-transpnac = /pws/zycie041-transpnac.
* >> Início da exclusão: FORM FILL_DATA_J1B1
IF it_zycee005-ntgew LT '0.001'.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B1
IF it_zycee005-ntgew LT '0.001'. "#EC PORTABLE
* << Fim da inclusão
it_zycee005-ntgew = '0.001'.
ENDIF.
APPEND it_zycee005.
PERFORM mensagens_nf.
LOOP AT it_zycet004.
MESSAGE i019 WITH it_zycet004-descricao.
ENDLOOP.
IF it_zycet004 IS INITIAL.
IF ( v_modalidade NE '99' AND t001-land1 NE 'AR'
AND t001-land1 NE 'CL' ) OR
...
...
READ TABLE itab_zycit033 WITH KEY tpnf = itab_zycit044-tpnf
regio = itab_t001w-regio.
IF sy-subrc NE 0.
READ TABLE itab_zycit033 WITH KEY tpnf = itab_zycit044-tpnf
regio = space.
ENDIF.
PERFORM itens_nf_r.
CLEAR itab_zycit033.
ENDLOOP.
it_zycee005-transpnac = /pws/zycie043-transpnac.
* >> Início da exclusão: FORM FILL_DATA_J1B1_R
IF it_zycee005-ntgew LT '0.001'.
* << Fim da exclusão
* >> Início da inclusão: FORM FILL_DATA_J1B1_R
IF it_zycee005-ntgew LT '0.001'. "#EC PORTABLE
* << Fim da inclusão
it_zycee005-ntgew = '0.001'.
ENDIF.
APPEND it_zycee005.
PERFORM mensagens_nf_r.
LOOP AT it_zycet004.
MESSAGE i019 WITH it_zycet004-descricao.
ENDLOOP.
IF it_zycet004 IS INITIAL.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
...
...
ELSE.
v_brgew = v_brgew +
( ( itab_zycit003_aux-ntgew / local_tntgew ) *
/pws/zycit093-brgew ).
ENDIF.
ENDLOOP.
it_zycee005-ntgew = it_zycee005-ntgew + v_ntgew.
it_zycee005-brgew = it_zycee005-brgew + v_brgew.
it_zycee005-gewei = text-038.
ENDFORM.
* >> Início da exclusão: FORM PESO_GLOBAL_N
FORM peso_global_n.
DATA: local_tntgew LIKE itab_zycit003_aux-ntgew.
LOOP AT itab_zycit003_aux.
local_tntgew = local_tntgew + itab_zycit003_aux-ntgew.
ENDLOOP.
CLEAR: v_ntgew, v_brgew.
IF v_graneis EQ 'S'.
IF NOT /pws/zycit093-brgewd IS INITIAL.
/pws/zycit093-brgew = /pws/zycit093-brgewd.
ENDIF.
ENDIF.
LOOP AT itab_zycit003_aux
WHERE nrseq = itab_zycit042-nrseq
AND ebeln = itab_zycit042-ebeln
AND ebelp = itab_zycit042-ebelp.
v_ntgew = v_ntgew + itab_zycit003_aux-ntgew.
v_brgew = v_brgew + ( ( itab_zycit003_aux-ntgew / local_tntgew ) *
/pws/zycit093-brgew ).
ENDLOOP.
it_zycee005-ntgew = it_zycee005-ntgew + v_ntgew.
it_zycee005-brgew = it_zycee005-brgew + v_brgew.
it_zycee005-gewei = text-038.
ENDFORM.
FORM peso_remessa_sep.
CLEAR: v_ntgew, v_brgew.
LOOP AT itab_zycit003_aux
WHERE ebeln = itab_zycit044_aux-ebeln
AND ebelp = itab_zycit044_aux-ebelp.
SELECT SINGLE * FROM /pws/zycit004
WHERE nrseq EQ /pws/zycie043-nrseq.
v_ntgew = v_ntgew + itab_zycit003_aux-ntgew.
v_brgew = v_brgew + ( /pws/zycit004-brgew / /pws/zycit004-ntgew ) *
itab_zycit003_aux-ntgew.
ENDLOOP.
it_zycee005-ntgew = v_ntgew.
it_zycee005-brgew = v_brgew.
it_zycee005-gewei = text-038.
ENDFORM.
* << Fim da exclusão
FORM peso_remessa_n.
DATA: local_tntgew LIKE itab_zycit003_aux-ntgew.
LOOP AT itab_zycit003_aux.
local_tntgew = local_tntgew + itab_zycit003_aux-ntgew.
ENDLOOP.
READ TABLE itab_zycit044 INDEX 1.
SELECT SINGLE * FROM /pws/zycit085
WHERE nrseqdi = itab_zycit044-nrseqnf.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit085-nrbl.
...
...
ENDIF.
v_basred = ( v_advicms * 10000 / itab_zycit003-advalicms ).
ELSE.
v_basred = itab_zycit003-basred.
ENDIF.
IF v_basred IS INITIAL.
v_basred = 100.
ENDIF.
ENDIF.
ENDFORM.
* >> Início da exclusão: FORM TRANSFERE_PEDIDOS
FORM transfere_pedidos.
LOOP AT itab_zycit042.
itab_ebeln-sign = 'I'.
itab_ebeln-option = 'EQ'.
itab_ebeln-low = itab_zycit042-ebeln.
APPEND itab_ebeln.
itab_ebelp-sign = 'I'.
itab_ebelp-option = 'EQ'.
itab_ebelp-low = itab_zycit042-ebelp.
APPEND itab_ebelp.
ENDLOOP.
ENDFORM.
* << Fim da exclusão
FORM cabecalho_nf.
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.
...
...
( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).
ENDLOOP.
DESCRIBE TABLE itab_zycit042 LINES v_lines.
DESCRIBE TABLE itab_zycit003 LINES v_lin.
LOOP AT itab_zycit049_aux_r WHERE nrseq = v_nrseq AND
vldp NE 0.
it_zycee006-indice = v_ind.
IF itab_zycit049_aux_r-tpdesp EQ /pws/zycit000-cod_sisc.
IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit049_aux_r-waers
* >> Início da exclusão: FORM MENSAGENS_NF
itab_zycit049_aux_r-vldp.
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF
changing itab_zycit049_aux_r-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_aux_r-waers
itab_zycit085-dttax CHANGING v_taxa_desp.
v_vldp = itab_zycit049_aux_r-vldp *
v_taxa_desp.
ELSE.
v_vldp = itab_zycit049_aux_r-vldp .
ENDIF.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit049_aux_r-tpdesp.
READ TABLE itab_zycit020 WITH KEY codigo = itab_zycit019-codigo
regio = itab_zycit019-regio.
ELSE.
IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit049_aux_r-waers
* >> Início da exclusão: FORM MENSAGENS_NF
itab_zycit049_aux_r-vldp.
* << Fim da exclusão
* >> Início da inclusão: FORM MENSAGENS_NF
changing itab_zycit049_aux_r-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_aux_r-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049_aux_r-vldp = itab_zycit049_aux_r-vldp *
v_taxa_desp.
ENDIF.
v_vldp_aux = itab_zycit049_aux_r-vldp.
LOOP AT itab_zycit003_mark.
v_idx = sy-tabix.
IF itab_zycit085-waersfob NE itab_zycit003_mark-waers.
...
...
IF wa_zycit048-nfext EQ 'X' AND v_ok EQ space.
itab_zycit042-nfnum = wa_zycit048-nfprov.
itab_zycit042-series = wa_zycit048-series.
ENDIF.
itab_zycit042-docnum = 0.
IF itab_zycit042-nfglobal IS INITIAL.
itab_zycit042-nfglobal = /pws/zycie041-nfglobal.
ENDIF.
APPEND itab_zycit042.
ENDFORM.
* >> Início da exclusão: FORM GRAVA_TAB_SEP
FORM grava_tab_sep.
/pws/zycie041-docnum = it_zycee005-belnr.
/pws/zycie041-nfnum = itab_zycit042_aux-nfnum.
/pws/zycie041-series = itab_zycit042_aux-series.
/pws/zycie041-subser = itab_zycit042_aux-subser.
itab_zycit042-docnum = it_zycee005-belnr.
MODIFY /pws/zycit041 FROM /pws/zycie041.
MODIFY itab_zycit042 TRANSPORTING docnum.
/pws/zycit042-mandt = sy-mandt.
/pws/zycit042-nrseq = itab_zycit042-nrseq.
/pws/zycit042-nfglobal = itab_zycit042-nfglobal.
/pws/zycit042-ebeln = itab_zycit042-ebeln.
/pws/zycit042-ebelp = itab_zycit042-ebelp.
/pws/zycit042-tpnf = itab_zycit042-tpnf.
/pws/zycit042-qtd_iten = itab_zycit042-qtd_iten.
/pws/zycit042-meins = itab_zycit042-meins.
/pws/zycit042-waersb = itab_zycit042-waersb.
/pws/zycit042-netpr = itab_zycit042-netpr.
/pws/zycit042-docnum = it_zycee005-belnr.
/pws/zycit042-nfnum = itab_zycit042-nfnum.
/pws/zycit042-series = itab_zycit042-series.
/pws/zycit042-subser = itab_zycit042-subser.
MODIFY /pws/zycit042.
ENDFORM.
FORM grava_tab_sep_r.
/pws/zycie043-docnum = it_zycee005-belnr.
/pws/zycie043-nfnum = itab_zycit044_aux-nfnum.
/pws/zycie043-series = itab_zycit044_aux-series.
/pws/zycie043-subser = itab_zycit044_aux-subser.
itab_zycit044-docnum = it_zycee005-belnr.
MODIFY /pws/zycit043 FROM /pws/zycie043.
MODIFY itab_zycit044 TRANSPORTING docnum.
/pws/zycit044-mandt = sy-mandt.
/pws/zycit044-nrseq = itab_zycit044-nrseq.
/pws/zycit044-nfglobal = itab_zycit044-nfglobal.
/pws/zycit044-nfremessa = itab_zycit044-nfremessa.
/pws/zycit044-ebeln = itab_zycit044-ebeln.
/pws/zycit044-ebelp = itab_zycit044-ebelp.
/pws/zycit044-tpnf = itab_zycit044-tpnf.
/pws/zycit044-qtd_item = itab_zycit044-qtd_item.
/pws/zycit044-meins = itab_zycit044-meins.
/pws/zycit044-waersb = itab_zycit044-waersb.
/pws/zycit044-netpr = itab_zycit044-netpr.
/pws/zycit044-docnum = it_zycee005-belnr.
/pws/zycit044-nfnum = itab_zycit044-nfnum.
/pws/zycit044-series = itab_zycit044-series.
/pws/zycit044-subser = itab_zycit044-subser.
MODIFY /pws/zycit044.
ENDFORM.
* << Fim da exclusão
FORM valores.
DATA: v_vldp_042 LIKE /pws/zycit042-vldp,
v_vlseg LIKE itab_zycit036_di-vlmov.
CLEAR: v_vldp_042, v_impostos.
CLEAR v_despesas.
LOOP AT itab_zycit036
WHERE nrseq = itab_zycit042-nrseq
AND ebeln = itab_zycit042-ebeln
AND ebelp = itab_zycit042-ebelp.
READ TABLE itab_zycit036_di WITH KEY nrseq = itab_zycit036-nrseq
...
...
tpdesp = itab_zycit049_a-tpdesp.
IF ( itab_zycit019-tipo EQ 'A' OR
itab_zycit019-tipo IS INITIAL ) OR
itab_zycit049_a-tpdesp = /pws/zycit000-flagfreten.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF itab_zycit049_a-waers NE /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit049_a-waers
* >> Início da exclusão: FORM SELECIONA_DESPESAS
itab_zycit049_a-vldp.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DESPESAS
CHANGING itab_zycit049_a-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049_a-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049_a-vldp = itab_zycit049_a-vldp *
v_taxa_desp.
itab_zycit049_a-waers = /pws/zycbt007-waersb.
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049_a-vldp - v_tot_vldp.
itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.
...
...
tpdesp = itab_zycit049-tpdesp.
IF ( itab_zycit019-tipo EQ 'A' OR
itab_zycit019-tipo IS INITIAL ) OR
itab_zycit049-tpdesp = /pws/zycit000-flagfreten.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF itab_zycit049-waers NE /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit049-waers
* >> Início da exclusão: FORM SELECIONA_DESPESAS
itab_zycit049-vldp.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DESPESAS
CHANGING itab_zycit049-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049-vldp = itab_zycit049-vldp *
v_taxa_desp.
itab_zycit049-waers = /pws/zycbt007-waersb.
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049-vldp - v_tot_vldp.
itab_zycit042-vldp = itab_zycit042-vldp + v_vldp.
...
...
tpdesp = itab_zycit049-tpdesp.
IF ( itab_zycit019-tipo EQ 'A' OR
itab_zycit019-tipo IS INITIAL ) OR
itab_zycit049-tpdesp = /pws/zycit000-flagfreten.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
IF itab_zycit049-waers NE /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit049-waers
* >> Início da exclusão: FORM SELECIONA_DESPESAS
itab_zycit049-vldp.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DESPESAS
CHANGING itab_zycit049-vldp.
* << Fim da inclusão
PERFORM taxa_converte USING itab_zycit049-waers
/pws/zycit085-dttax
CHANGING v_taxa_desp.
itab_zycit049-vldp = itab_zycit049-vldp *
v_taxa_desp.
itab_zycit049-waers = /pws/zycbt007-waersb.
ENDIF.
IF v_lines = v_tabix.
v_vldp = itab_zycit049-vldp - v_tot_vldp.
itab_zycit042_d-vldpii = itab_zycit042_d-vldpii + v_vldp.
...
...
itab_zycit042_d-vldpii = itab_zycit042_d-vldpii +
itab_zycit100-vl_sisco.
MODIFY itab_zycit042_d.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
* >> Início da exclusão: FORM NFISCAL_COMPLEMENTAR
FORM nfiscal_complementar.
CLEAR: /pws/zycie041a, itab_zycit042_c, itab_zycit042_c2,
itab_zycit042_c3.
REFRESH: itab_zycit042_c, itab_zycit042_c2, itab_zycit042_c3.
READ TABLE itab_zycit042.
IF itab_zycit042-docnum IS INITIAL.
MESSAGE e036.
CLEAR: okcode, sy-ucomm.
ENDIF.
CONCATENATE itab_zycit042-nfnum '-' itab_zycit042-series INTO v_nfnum.
CLEAR wa_zycit048.
SELECT SINGLE * FROM /pws/zyglt369
INTO wa_zyglt369
WHERE bukrs EQ /pws/zycit085-bukrs
AND branch EQ /pws/zycit085-j_1bbranch
AND urfdesp EQ /pws/zycit085-urfdesp.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit048
INTO wa_zycit048
WHERE bukrs EQ wa_zyglt369-bukrs
AND branch EQ wa_zyglt369-branch.
ELSE.
SELECT SINGLE * FROM /pws/zycit048
INTO wa_zycit048
WHERE bukrs EQ /pws/zycie041-bukrs
AND branch EQ /pws/zycie041-j_1bbranch.
IF sy-subrc NE 0.
SELECT SINGLE * FROM /pws/zycit048
INTO wa_zycit048
WHERE bukrs EQ /pws/zycie041-bukrs
AND branch EQ space.
ENDIF.
ENDIF.
MOVE:
/pws/zycie041-embarca TO /pws/zycie041a-embarca,
/pws/zycie041-nrseq TO /pws/zycie041a-nrseq,
/pws/zycie041-bukrs TO /pws/zycie041a-bukrs,
/pws/zycie041-werks TO /pws/zycie041a-werks,
/pws/zycie041-nrdi TO /pws/zycie041a-nrdi,
/pws/zycie041-j_1bbranch TO /pws/zycie041a-j_1bbranch,
/pws/zycie041-nfglobal TO /pws/zycie041a-nfglobal,
/pws/zycie041-nfexterna TO /pws/zycie041a-nfexterna,
sy-datum TO /pws/zycie041a-dtincl,
/pws/zycie041-belnr_f_02_c TO /pws/zycie041a-belnr_f_02_c,
/pws/zycie041-dt_f_02_c TO /pws/zycie041a-dt_f_02_c.
IF /pws/zycie041a-nfexterna IS INITIAL.
MOVE wa_zycit048-nfext TO /pws/zycie041a-nfexterna.
ENDIF.
LOOP AT itab_zycit042.
MOVE itab_zycit042 TO itab_zycit042_c.
IF itab_zycit042-docnum_c IS INITIAL.
v_status_nfc = '1'.
ELSE.
v_status_nfc = '0'.
ENDIF.
IF NOT wa_zycit048-nfext IS INITIAL.
MOVE:
wa_zycit048-nfprov TO itab_zycit042_c-nfnum_c,
wa_zycit048-series TO itab_zycit042_c-series_c.
ENDIF.
APPEND itab_zycit042_c.
ENDLOOP.
PERFORM calcula_despesa.
IF sy-tcode = '/PWS/ZYCI016_E'.
LOOP AT itab_zycit042_c WHERE docnum_c IS initial.
ENDLOOP.
IF sy-subrc NE 0.
CALL SCREEN '0300'.
ELSE.
MESSAGE s015 WITH text-062.
ENDIF.
ELSE.
CALL SCREEN '0300'.
ENDIF.
ENDFORM.
* << Fim da exclusão
FORM carrega_zycie042_c.
IF itab_zycit042_c-ebeln IS INITIAL.
EXIT.
ENDIF.
MOVE-CORRESPONDING itab_zycit042_c TO /pws/zycie042a.
SELECT SINGLE * FROM j_1bnfdoc
WHERE docnum = itab_zycit042_c-docnum_c.
IF sy-subrc EQ 0.
itab_zycit042_c-nfnum_c = j_1bnfdoc-nfnum.
itab_zycit042_c-series_c = j_1bnfdoc-series.
...
...
FORM taxa_converte USING p_waers
p_data
CHANGING p_taxa.
CLEAR: p_taxa.
DATA: v_moeda LIKE tcurc-/pws/codmo.
SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE
waers = p_waers.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM /pws/zycit174 INTO /pws/zycit174 WHERE
codconver = v_moeda AND
* >> Início da exclusão: FORM TAXA_CONVERTE
vigen_inicio <= p_data AND
* << Fim da exclusão
* >> Início da inclusão: FORM TAXA_CONVERTE
vigen_inicio <= p_data AND "#EC PORTABLE
* << Fim da inclusão
vigen_fim >= p_data AND
land1 = t001-land1.
IF sy-subrc EQ 0.
p_taxa = /pws/zycit174-txconver.
ELSE.
p_taxa = '1'.
ENDIF.
ENDIF.
ENDFORM.
FORM atualiza_icms_unitario.
...
...
itab_zycit042-netpr = itab_zycit042-netpr + ( (
/pws/zycit100-vlicms / itab_zycit042-qtd_iten )
* 100 ) / v_basred.
ELSE.
itab_zycit042-netpr = itab_zycit042-netpr +
( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
* >> Início da exclusão: FORM BI_FB08
FORM bi_fb08.
CHECK NOT /pws/zycie041a-belnr_f_02_c IS INITIAL.
PERFORM clear_date_batch.
it_zycbe033-tcode = 'FB08'.
it_zycbe033-tabela = text-014.
it_zycbe033-cpochv = /pws/zycie041a-nfglobal.
it_zycbe033-belnr = /pws/zycie041a-belnr_f_02_c.
it_zycbe033-bukrs = /pws/zycie041a-bukrs.
it_zycbe033-bldat = sy-datum.
it_zycbe033-budat = sy-datum.
it_zycbe033-gjahs = sy-datum(4).
IF /pws/zycbt007 IS INITIAL.
SELECT SINGLE *
FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie041-bukrs.
ENDIF.
CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'
EXPORTING
v_data = /pws/zycie041a-dtincl
v_bukrs = /pws/zycie041a-bukrs
v_koart = 'K'
IMPORTING
v_subrc = v_subrc
v_gjahr = itab_zycbe033-gjahr.
IF v_subrc = 0.
itab_zycbe033-budat = /pws/zycie041a-dtincl.
itab_zycbe033-stgrd = /pws/zycbt007-percorr.
ELSE.
itab_zycbe033-budat = sy-datum.
itab_zycbe033-stgrd = /pws/zycbt007-perencer .
ENDIF.
APPEND it_zycbe033.
CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FB08_A'
EXPORTING
v_modo = v_modo_bi
TABLES
t_dados = it_zycbe033
t_campo = it_zycbt034
t_zycbt032 = it_zycbt032
EXCEPTIONS
campo_em_branco = 1
OTHERS = 2.
IF sy-subrc = 0.
READ TABLE it_zycbt032 WITH KEY tcode = 'FB08'
tabela = text-014
cpochv = /pws/zycie041a-nfglobal
tpmsg = 'S'.
IF sy-subrc EQ 0.
MESSAGE i030 WITH /pws/zycie041a-belnr_f_02_c.
CLEAR: /pws/zycie041a-belnr_f_02_c, /pws/zycie041-belnr_f_02_c,
/pws/zycie041a-dt_f_02_c, /pws/zycie041-dt_f_02_c.
UPDATE /pws/zycit041 SET belnr_f_02_c = /pws/zycie041-belnr_f_02_c
dt_f_02_c = /pws/zycie041a-dt_f_02_c
WHERE nrseq = /pws/zycie041a-nrseq AND
nfglobal = /pws/zycie041a-nfglobal AND
docnum = /pws/zycie041-docnum.
COMMIT WORK.
ELSE.
LOOP AT it_zycbt032.
MESSAGE i015 WITH it_zycbt032-msg+0(50)
it_zycbt032-msg+50(50).
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM.
* << Fim da exclusão
FORM mensagens_nf_c.
DATA BEGIN OF itab_zycit001_msg OCCURS 0.
DATA: nrseq LIKE /pws/zycit001-nrseq,
embarca LIKE /pws/zycit001-embarca.
DATA END OF itab_zycit001_msg.
DATA itab_zycit042_auxre LIKE /pws/zycit042 OCCURS 0 WITH HEADER LINE.
DATA : v_idm TYPE i,
v_dtreg(10) TYPE c VALUE space ,
v_cont TYPE i.
READ TABLE itab_zycit042_c INDEX 1.
...
...
control_flush_error = 21
OTHERS = 22.
IF sy-subrc EQ 0.
MOVE v_arquivo TO v_caminho.
ELSE.
CLEAR v_caminho.
ENDIF.
CLEAR itab_cabecalho_txt.
FREE itab_cabecalho_txt.
ENDFORM.
* >> Início da exclusão: FORM FILL_DATA_J1B2N
FORM fill_data_j1b2n.
DATA: v_data(10) TYPE c.
REFRESH: it_bdc, it_msg.
CLEAR: it_bdc, it_msg.
WRITE: sy-datum USING EDIT MASK '__.__.____' TO v_data.
PERFORM fill_bdc USING: 'X' 'SAPMJ1B1' '1100',
' ' 'BDC_CURSOR' 'J_1BDYDOC-DOCNUM',
' ' 'J_1BDYDOC-DOCNUM' v_valor,
' ' 'BDC_OKCODE' '/00'.
PERFORM fill_bdc USING: 'X' 'SAPLJ1BB2' '2000' ,
' ' 'BDC_CURSOR' 'J_1BDYDOC-PSTDAT',
' ' 'BDC_OKCODE' '/00' ,
' ' 'J_1BDYDOC-PSTDAT' v_data .
PERFORM fill_bdc USING: 'X' 'SAPLJ1BB2' '2000' ,
' ' 'BDC_OKCODE' '=SAVE'.
IF v_modo_bi IS INITIAL.
v_modo_bi = 'N'.
ENDIF.
CALL TRANSACTION 'J1B2N' USING it_bdc
MODE v_modo_bi
UPDATE 'S'
MESSAGES INTO it_msg. "#EC CI_CALLTA
ENDFORM.
* << Fim da exclusão
FORM fill_bdc USING p_tipo
p_fnam
p_fval.
CLEAR it_bdc.
IF NOT p_tipo IS INITIAL.
it_bdc-program = p_fnam.
it_bdc-dynpro = p_fval.
it_bdc-dynbegin = 'X'.
ELSE.
it_bdc-fnam = p_fnam.
it_bdc-fval = p_fval.
ENDIF.
APPEND it_bdc.
ENDFORM.
FORM itens_nfnew.
* >> Início da inclusão: FORM ITENS_NFNEW
v_tiponf = 'NF'.
* << Fim da inclusão
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI' AND NOT
itab_zycit480[] IS INITIAL.
v_fundap = 'X' .
ELSE.
CLEAR v_fundap.
ENDIF.
it_zycee007-tcode = text-065.
it_zycee007-tabela = text-014.
it_zycee007-cpochv = /pws/zycie041-nfglobal.
...
...
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND.
ENDIF.
APPEND it_zycee007.
CLEAR it_zycee007.
MOVE itab_zycit042 TO itab_zycit042_mark.
APPEND itab_zycit042_mark.
ENDFORM.
FORM itens_nfrnew.
* >> Início da inclusão: FORM ITENS_NFRNEW
v_tiponf = 'NFR'.
* << Fim da inclusão
DATA v_val_icms_r LIKE /pws/zycee007-netpr.
DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.
IF /pws/zycie001-modalidade EQ '05' AND
/pws/zycie001-tpdecl EQ 'DI' AND NOT
itab_zycit480r[] IS INITIAL.
v_fundap = 'X' .
ELSE.
CLEAR v_fundap.
ENDIF.
it_zycee007-tcode = text-009.
...
...
v_resposta = v_resp
TABLES
itab_zycit036 = itab_zycit036
itab_despesa = itab_desp_funcao
itab_zycit003 = itab_zycit003
itab_zycit100 = itab_zycit100aux.
LOOP AT itab_zycit049_a.
DELETE itab_zycit049_a WHERE mandt IS initial.
ENDLOOP.
ENDFORM.
* >> Início da exclusão: FORM CALC_RET_MOEDA
FORM calc_ret_moeda USING p_waersfrom
p_waersto
CHANGING p_value.
DATA: v_taxa LIKE /pws/zycie085-ukursfob,
v_msgd(10).
IF /pws/zycbt007-waersb IS INITIAL.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie041-bukrs.
ENDIF.
PERFORM taxa_converte USING
p_waersfrom /pws/zycie085-dttax v_taxa.
IF NOT v_taxa IS INITIAL.
p_value = p_value / v_taxa.
IF p_waersto NE /pws/zycbt007-waersb.
PERFORM taxa_converte USING
p_waersto /pws/zycie085-dttax v_taxa.
ELSE.
v_taxa = 1.
ENDIF.
IF NOT v_taxa IS INITIAL AND NOT p_value IS INITIAL.
p_value = p_value * v_taxa.
ENDIF.
ENDIF.
ENDFORM.
* << Fim da exclusão
FORM seek_account_number TABLES p_cta STRUCTURE /pws/zygle316
USING p_bukrs
p_ktosl
p_werks
p_bklas
p_codaux1
p_codaux2
p_codaux3.
CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'
EXPORTING
...
...
docnum = /pws/zycit041-docnum
EXCEPTIONS
foreign_lock = 1
system_failure = 2
.
IF sy-subrc <> 0.
MESSAGE w061 WITH text-089 text-090.
v_status_s = 0.
ENDIF.
ENDFORM.
* >> Início da exclusão: FORM RETORNA_DECIMAIS
FORM retorna_decimais USING p_moeda
CHANGING p_valor.
SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).
ENDFORM.
* << Fim da exclusão
FORM atualiza_dados_nota.
READ TABLE it_zycet005 WITH KEY tcode = text-065
tabela = text-014
cpochv = /pws/zycie041-nfglobal
tpmsg = 'S'.
IF sy-subrc EQ 0.
IF it_zycee005-belnr NE '0000000000'.
SELECT SINGLE * FROM j_1bnfdoc
WHERE docnum EQ it_zycee005-belnr.
IF sy-subrc EQ 0 OR it_zycet005-belnr = '9999999999'
...
...
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie041-bukrs.
ENDIF.
PERFORM taxa_converte USING p_waersfrom
/pws/zycit085-dttax
CHANGING v_taxa_desp.
IF NOT v_taxa_desp IS INITIAL.
p_value = p_value * v_taxa_desp.
IF p_waersto NE /pws/zycbt007-waersb.
PERFORM taxa_converte USING
* >> Início da exclusão: FORM CALC_CONV_MOEDA
p_waersto /pws/zycit085-dttax v_taxa_desp.
* << Fim da exclusão
* >> Início da inclusão: FORM CALC_CONV_MOEDA
p_waersto /pws/zycit085-dttax
CHANGING v_taxa_desp.
* << Fim da inclusão
ELSE.
v_taxa_desp = 1.
ENDIF.
IF NOT v_taxa_desp IS INITIAL AND NOT p_value IS INITIAL.
p_value = p_value / v_taxa_desp.
ENDIF.
ENDIF.
ENDFORM.
FORM call_fundap_r.
CLEAR /pws/zycit480.
...