Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Rotina Mensal
Data/Hora da Publicação: 24/10/2011 10:47:56
Data/Hora Última Alteração: 24/10/2011 10:47:56
Descrição da Nota: ROTINA MENSAL EXPORTAÇÃO
Sintoma
A Rotina Mensal não exibia a subtotalização por Juros de ACC/ACE, Tipo de Contrato e Moeda
Solução
Foi incluída no programa de Rotina Mensal a subtotalização por Juros de ACC ou ACE, Tipo de Contrato
e Moeda
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 11570 Data: 24/10/2011 Hora: 09:46:53
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 11570
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 8.0
Pacote : 00009
Agrupamento : 00091
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00471 - 00001 - 6.0 - 00021 - CALCULO DO VALOR MI PARA JPY NA ROTINA MENSAL PARA CLERING NO PAG
01441 - 00002 - 6.0 - 00023 - ROTINA MENSAL EXPORTAÇÃO - VALOR MI SUBTOTAL E TOTAL
04627 - 00003 - 7.0 - 00002 - ROTINA MENSAL EM JPY
09200 - 00004 - 8.0 - 00001 - ROTINA MENSAL EXPORTAÇÃO - DEDUZ JUROS, DATA PAGAMENTO EXTERIOR-L
11308 - 00005 - 8.0 - 00008 - ROTINA MENSAL - SOMATÓRIA VALOR MI, TAXA DA OB08 PARA CONTABILIZA
----------------------------------------------------------------------------------------------------
ROTINA MENSAL EXPORTAÇÃO
----------------------------------------------------------------------------------------------------
Palavras Chave:
ROTINA MENSAL EXPORTAÇÃO - SUBTOTALIZAÇÃO TIPO JUROS
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/ZYCBI003
REPS /PWS/ZYCBR003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBI003
...
DATA: BEGIN OF itab_sub_tipo OCCURS 5,
tpcontab(02) TYPE c,
tpcontr LIKE /pws/zycbt001-tpcontr,
waers LIKE /pws/zycbt001-waers,
vlmej LIKE /pws/zycbt001-vlme,
vlme_mes LIKE /pws/zycbt001-vlme,
vlmeir LIKE /pws/zycbt001-vlme,
vlmij LIKE /pws/zycbt001-vlmi,
vlmi_mes LIKE /pws/zycbt001-vlmi,
END OF itab_sub_tipo.
* >> Início da inclusão: FORM EXIBE_RELATORIO
DATA: BEGIN OF itab_sub_tpj OCCURS 5,
tpcontr LIKE /pws/zycbt001-tpcontr,
waers LIKE /pws/zycbt001-waers,
ftpj TYPE c,
vlmej LIKE /pws/zycbt001-vlme,
vlmij LIKE /pws/zycbt001-vlmi,
END OF itab_sub_tpj.
* << Fim da inclusão
DATA: BEGIN OF itab_total OCCURS 5,
tpcontab(02) TYPE c,
waers LIKE /pws/zycbt001-waers,
vlmej LIKE /pws/zycbt001-vlme,
vlme_mes LIKE /pws/zycbt001-vlme,
vlmeir LIKE /pws/zycbt001-vlme,
vlmij LIKE /pws/zycbt001-vlmi,
vlmi_mes LIKE /pws/zycbt001-vlmi,
END OF itab_total.
DATA: BEGIN OF itab_sub_tipo_pr OCCURS 5,
...
...
vlmej LIKE /pws/zycbt001-vlme,
vlme_mes LIKE /pws/zycbt001-vlme,
vlmij LIKE /pws/zycbt001-vlmi,
vlmi_mes LIKE /pws/zycbt001-vlmi,
END OF itab_total_pr.
DATA: BEGIN OF itab_lfa1 OCCURS 0,
lifnr LIKE lfa1-lifnr,
name1 LIKE lfa1-name1,
END OF itab_lfa1.
IF /pws/zyglt009-imp_rot_sep EQ 'S'.
* >> Início da inclusão: FORM EXIBE_RELATORIO
IF s_rbrela IS INITIAL.
* << Fim da inclusão
v_tamr = 245.
* >> Início da inclusão: FORM EXIBE_RELATORIO
ELSE.
v_tamr = 255.
ENDIF.
* << Fim da inclusão
ELSE.
* >> Início da inclusão: FORM EXIBE_RELATORIO
IF s_rbrela IS INITIAL.
* << Fim da inclusão
v_tamr = 229.
* >> Início da inclusão: FORM EXIBE_RELATORIO
ELSE.
v_tamr = 245.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM EXIBE_RELATORIO
ENDIF.
* << Fim da inclusão
NEW-PAGE LINE-SIZE v_tamr.
...
...
CLEAR itab_relat-descbanc.
ENDIF.
CLEAR v_nrdias.
IF NOT itab_relat-dtate IS INITIAL AND
NOT itab_relat-dtde IS INITIAL.
v_nrdias = itab_relat-dtate - itab_relat-dtde.
ENDIF.
FORMAT RESET.
aux_relat = itab_relat.
ON CHANGE OF itab_relat-tpcontr.
* >> Início da exclusão: FORM EXIBE_RELATORIO
LOOP AT itab_sub_tipo.
FORMAT COLOR 1 INVERSE OFF INTENSIFIED OFF.
IF itab_sub_tipo-vlmij IS INITIAL.
PERFORM calcula_vlmi USING itab_sub_tipo-tpcontr
itab_sub_tipo-waers
itab_sub_tipo-vlmej
v_txc
CHANGING itab_sub_tipo-vlmij.
ENDIF.
IF itab_sub_tipo-tpcontab IS INITIAL.
WRITE: / sy-vline,
text-006, text-008, itab_sub_tipo-tpcontr.
ELSE.
WRITE: / sy-vline,
text-128, text-132, text-008, itab_sub_tipo-tpcontr.
ENDIF.
WRITE: 172 itab_sub_tipo-vlmej CURRENCY itab_sub_tipo-waers,
itab_sub_tipo-waers,
(16) itab_sub_tipo-vlmij CURRENCY wa_zycbt007-waersb,
225 itab_sub_tipo-vlmeir
CURRENCY itab_sub_tipo-waers NO-ZERO.
WRITE: AT v_tamr sy-vline.
ULINE.
FORMAT COLOR OFF.
ENDLOOP.
REFRESH itab_sub_tipo.
CLEAR itab_sub_tipo.
LOOP AT itab_sub_tipo_pr.
IF itab_sub_tipo_pr-vlmij IS INITIAL.
PERFORM calcula_vlmi USING itab_sub_tipo_pr-tpcontr
itab_sub_tipo_pr-waers
itab_sub_tipo_pr-vlmej
v_txc
CHANGING itab_sub_tipo_pr-vlmij.
ENDIF.
FORMAT COLOR 1 INVERSE OFF INTENSIFIED OFF.
WRITE: / sy-vline,
text-104, text-008, itab_sub_tipo_pr-tpcontr,
172 itab_sub_tipo_pr-vlmej CURRENCY
itab_sub_tipo_pr-waers,
itab_sub_tipo_pr-waers,
(16) itab_sub_tipo_pr-vlmij CURRENCY wa_zycbt007-waersb.
WRITE: AT v_tamr sy-vline.
ULINE.
FORMAT COLOR OFF.
ENDLOOP.
REFRESH itab_sub_tipo_pr.
CLEAR itab_sub_tipo_pr.
* << Fim da exclusão
CLEAR v_primeiro.
IF v_imp = 1.
PERFORM exibe_top_relatorio.
ENDIF.
ENDON.
IF itab_relat-tpcontab = 'PR' AND v_primeiro IS INITIAL.
WRITE: / sy-vline,
text-103.
v_primeiro = 'X'.
ENDIF.
...
...
ELSE.
WRITE: (16) itab_relat-vlmej
CURRENCY itab_relat-waers NO-ZERO,
(16) itab_relat-vlmij
CURRENCY wa_zycbt007-waersb NO-ZERO.
ENDIF.
ELSE.
WRITE: (16) space,
(16) space.
ENDIF.
* >> Início da inclusão: FORM EXIBE_RELATORIO
IF s_rbrela IS INITIAL.
* << Fim da inclusão
WRITE: (12) itab_relat-aliqir,
(16) itab_relat-vlmeir CURRENCY itab_relat-waers NO-ZERO,
(16) itab_relat-vlmej_ace
* >> Início da inclusão: FORM EXIBE_RELATORIO
CURRENCY itab_relat-waers NO-ZERO,
(16) itab_relat-vlmij_ace
CURRENCY wa_zycbt007-waersb NO-ZERO.
ELSE.
WRITE: (12) itab_relat-aliqir,
(16) itab_relat-vlmeir CURRENCY itab_relat-waers NO-ZERO.
IF itab_relat-vlmej_ace >= 0.
WRITE: (16) itab_relat-vlmej_ace
CURRENCY itab_relat-waers NO-ZERO,
(16) itab_relat-vlmij_ace
CURRENCY wa_zycbt007-waersb NO-ZERO.
WRITE: (16) space,
(16) space.
ELSE.
WRITE: (16) space,
(16) space.
itab_relat-vlmej_ace = itab_relat-vlmej_ace * -1.
itab_relat-vlmij_ace = itab_relat-vlmij_ace * -1.
WRITE: (16) itab_relat-vlmej_ace
* << Fim da inclusão
CURRENCY itab_relat-waers NO-ZERO,
(16) itab_relat-vlmij_ace
CURRENCY wa_zycbt007-waersb NO-ZERO.
* >> Início da inclusão: FORM EXIBE_RELATORIO
ENDIF.
ENDIF.
* << Fim da inclusão
ELSE.
WRITE: (16) itab_relat-vlmej
CURRENCY itab_relat-waers NO-ZERO,
...
...
aux_relat-txc
CHANGING v_vlmij.
v_vlmij_contr = v_vlmij_contr + v_vlmij.
AT END OF nrseqc.
IF itab_relat-tpcontab IS INITIAL OR
itab_relat-tpcontab EQ 'PR' OR
( itab_relat-tpcontab EQ 'C' AND
wa_zycbt007-fprovisao NE 'C' ).
v_faux = 'X'.
SUM.
* >> Início da inclusão: FORM EXIBE_RELATORIO
loop at itab_relat assigning <fs_itab_relat>
where nrseqc = itab_relat-nrseqc.
if <fs_itab_relat>-vlmej < 0.
itab_relat-vlmej = itab_relat-vlmej - <fs_itab_relat>-vlmej.
endif.
endloop.
* << Fim da inclusão
CLEAR v_tjuros.
LOOP AT itab_zycbt004 WHERE nrseqc = aux_relat-nrseqc
AND tpdesp(1) = 'J'.
v_tjuros = v_tjuros + itab_zycbt004-vlme.
ENDLOOP.
IF wa_zycbt007-fprovisao = 'C'.
SORT itab_zycbt154 BY nrcorresp.
v_nrcorresp = itab_relat-nrseqc.
CLEAR: v_vlrjprov, v_vlirprov.
IF itab_relat-tpcontab IS INITIAL.
...
...
WHERE
tpcontab EQ itab_relat-tpcontab AND
nrseqc EQ itab_relat-nrseqc AND
nrcontr EQ itab_relat-nrcontr AND
tpcontr EQ itab_relat-tpcontr.
IF <fs_itab_relat>-txc GT 0.
EXIT.
ENDIF.
ENDLOOP.
IF itab_relat-tpcontab IS INITIAL.
* >> Início da inclusão: FORM EXIBE_RELATORIO
IF itab_relat-vlmej > 0.
* << Fim da inclusão
itab_sub_tipo-tpcontab = itab_relat-tpcontab.
itab_sub_tipo-tpcontr = itab_relat-tpcontr.
itab_sub_tipo-waers = itab_relat-waers.
itab_sub_tipo-vlmej = itab_relat-vlmej.
itab_sub_tipo-vlme_mes = itab_relat-vlme_mes.
IF <fs_itab_relat> IS ASSIGNED.
PERFORM calcula_vlmi USING <fs_itab_relat>-tpcontr
<fs_itab_relat>-waers
itab_relat-vlmej
itab_relat-txc
CHANGING itab_sub_tipo-vlmij.
ELSE.
itab_sub_tipo-vlmi_mes = itab_relat-vlmi_mes.
ENDIF.
itab_sub_tipo-vlmeir = itab_relat-vlmeir.
COLLECT itab_sub_tipo.
* >> Início da inclusão: FORM EXIBE_RELATORIO
itab_sub_tpj-tpcontr = itab_relat-tpcontr.
itab_sub_tpj-waers = itab_relat-waers.
itab_sub_tpj-ftpj = itab_relat-ftpj.
itab_sub_tpj-vlmej = itab_relat-vlmej.
itab_sub_tpj-vlmij = itab_sub_tipo-vlmij.
COLLECT itab_sub_tpj.
* << Fim da inclusão
itab_total-tpcontab = itab_relat-tpcontab.
itab_total-waers = itab_relat-waers.
itab_total-vlmej = itab_relat-vlmej.
IF <fs_itab_relat> IS ASSIGNED.
PERFORM calcula_vlmi USING <fs_itab_relat>-tpcontr
<fs_itab_relat>-waers
itab_relat-vlmej
itab_relat-txc
CHANGING itab_total-vlmij.
ELSE.
itab_total-vlmij = itab_relat-vlmij.
ENDIF.
itab_total-vlmeir = itab_relat-vlmeir.
itab_total-vlme_mes = itab_relat-vlme_mes.
itab_total-vlmi_mes = itab_relat-vlmi_mes.
COLLECT itab_total.
* >> Início da inclusão: FORM EXIBE_RELATORIO
ENDIF.
* << Fim da inclusão
IF wa_zycbt007-fprovisao IS INITIAL.
IF itab_relat-tpcontr(1) EQ 'A'.
CLEAR: itab_total_ac-slacc, itab_total_ac-slace.
itab_total_ac-waers = itab_relat-waers.
IF itab_relat-nrinvoic IS INITIAL OR
itab_relat-ftpj = 'A'.
itab_total_ac-slacc = itab_relat-vlmej.
ELSE.
itab_total_ac-slace = itab_relat-vlmej.
ENDIF.
...
...
itab_total-tpcontab = itab_relat-tpcontab.
itab_total-waers = itab_relat-waers.
itab_total-vlmej = itab_relat-vlmej.
itab_total-vlmij = itab_relat-vlmij.
itab_total-vlmeir = itab_relat-vlmeir.
itab_total-vlme_mes = itab_relat-vlme_mes.
itab_total-vlmi_mes = itab_relat-vlmi_mes.
COLLECT itab_total.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM EXIBE_RELATORIO
SORT itab_sub_tipo ASCENDING BY tpcontab tpcontr waers.
SORT itab_sub_tpj ASCENDING BY tpcontr waers ftpj.
* << Fim da inclusão
LOOP AT itab_sub_tipo.
FORMAT COLOR 1 INVERSE OFF INTENSIFIED OFF.
IF itab_sub_tipo-tpcontab IS INITIAL.
WRITE: / sy-vline,
text-006, text-008, itab_sub_tipo-tpcontr.
ELSE.
WRITE: / sy-vline,
text-128, text-132, text-008, itab_sub_tipo-tpcontr.
ENDIF.
WRITE: 172 itab_sub_tipo-vlmej CURRENCY itab_sub_tipo-waers,
itab_sub_tipo-waers,
(16) itab_sub_tipo-vlmij CURRENCY wa_zycbt007-waersb,
225 itab_sub_tipo-vlmeir
CURRENCY itab_sub_tipo-waers NO-ZERO.
* >> Início da inclusão: FORM EXIBE_RELATORIO
WRITE: AT v_tamr sy-vline.
FORMAT COLOR OFF.
IF /pws/zyglt009-calc_rot_sep = 'S'.
IF itab_sub_tipo-tpcontab IS INITIAL.
FORMAT COLOR COL_KEY INVERSE OFF INTENSIFIED OFF.
LOOP AT itab_sub_tpj
WHERE tpcontr = itab_sub_tipo-tpcontr
AND waers = itab_sub_tipo-waers.
IF itab_sub_tpj-ftpj = 'A'.
WRITE: / sy-vline,
text-006, text-143.
ELSEIF itab_sub_tpj-ftpj = 'E'.
WRITE: / sy-vline,
text-006, text-144.
ENDIF.
WRITE: 172 itab_sub_tpj-vlmej CURRENCY itab_sub_tpj-waers,
itab_sub_tpj-waers,
(16) itab_sub_tpj-vlmij CURRENCY wa_zycbt007-waersb.
* << Fim da inclusão
WRITE: AT v_tamr sy-vline.
* >> Início da inclusão: FORM EXIBE_RELATORIO
ENDLOOP.
ENDIF.
ENDIF.
* << Fim da inclusão
ULINE.
FORMAT COLOR OFF.
ENDLOOP.
LOOP AT itab_sub_tipo_pr.
...
...
(8) text-064 CENTERED,
(12) text-026 CENTERED,
(12) text-041 CENTERED,
(16) text-033 CENTERED,
(5) text-035 CENTERED,
(16) text-037 CENTERED,
(16) text-122 CENTERED,
(12) text-117 CENTERED,
(16) text-118 CENTERED.
IF /pws/zyglt009-imp_rot_sep EQ 'S'.
* >> Início da inclusão: FORM EXIBE_CABECALHO_RELATORIO
WRITE: (16) text-037 CENTERED,
(16) text-122 CENTERED.
ENDIF.
IF NOT s_rbrela IS INITIAL.
* << Fim da inclusão
WRITE: (16) text-037 CENTERED,
(16) text-122 CENTERED.
ENDIF.
WRITE: (12) text-042 CENTERED,
AT v_tamr sy-vline.
IF /pws/zyglt009-imp_rot_sep EQ 'S'.
WRITE: sy-vline,
(3) space,
(3) space,
(20) space,
...
...
(8) space,
(12) space,
(12) space,
(16) space,
(5) space,
(16) text-114 CENTERED,
(16) space,
(12) space,
(16) space,
(16) text-115 CENTERED,
* >> Início da exclusão: FORM EXIBE_CABECALHO_RELATORIO
(16) space,
AT v_tamr sy-vline.
* << Fim da exclusão
* >> Início da inclusão: FORM EXIBE_CABECALHO_RELATORIO
(16) space.
IF NOT s_rbrela IS INITIAL.
WRITE: (16) text-145 CENTERED,
(16) space.
ENDIF.
WRITE AT v_tamr sy-vline.
* << Fim da inclusão
ENDIF.
ULINE.
FORMAT COLOR OFF.
ENDFORM.
FORM processa_transfer_longo_curto.
DATA: v_nrdias TYPE i,
v_dtpror TYPE /pws/zycbt003-dtpror,
v_vlmeaux LIKE /pws/zycbt005-vlvinc.
LOOP AT itab_zycbt001
WHERE tpcontr(1) NE 'D'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR003
...
v_saldo_inicial like /pws/zycbt001-vlme,
v_vlmeaux like /pws/zycbt001-vlme,
v_juros like /pws/zycbt002-vlme,
v_tx_esc_tot like /pws/zycbt002-txjtotal,
v_tx_esc_fix like /pws/zycbt002-txjfixa,
v_tx_esc_var like /pws/zycbt002-txjvar,
v_descc like /pws/zycbt016-txtdesc,
v_codaux1 like /pws/zyglt316-codaux1,
v_confirm(1) type c value space, "#EC NEEDED
v_txt_f(95) type c value space, "#EC NEEDED
* >> Início da exclusão:
v_tamr type i value 254,
* << Fim da exclusão
* >> Início da inclusão:
v_tamr type i value 245,
* << Fim da inclusão
v_nrlines type i,
v_per_dias type i,
v_nrdias type i, "#EC NEEDED
v_base_dias type i,
v_lin type i,
v_imp type i,
v_ec type i,
v_nrparcj type /pws/zycbt002-nrparc,
v_programa type sy-cprog,
v_defator like tcurr-ffact,
...