Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Valores Mantidos no Exterior
Data/Hora da Publicação: 20/03/2008 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:48:02
Descrição da Nota: VALORES MANTIDOS NO EXTERIOR - DISPONIBILIDADE NO EXTERIOR
Sintoma
Nova lei.
Solução
Criada nova pasta de disponibilidade no exterior.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 06218 Data: 20/03/2008 Hora: 14:15:54
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 06218
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00005
Agrupamento : 00039
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
05482 - 00002 - 7.0 - 00003 - VALORES MANTIDOS NO EXTERIOR - DA COMPLETO
05531 - 00001 - 7.0 - 00004 - TRADUÇÃO DE CAMPOS FIXOS DOS RELATÓRIOS /PWS/ZYCBR360 E PWS/ZYCBR
05654 - 00003 - 7.0 - 00004 - RELATÓRIO DE CONTROLE DE VALORES RECEBIDOS NO EXTERIOR
05704 - 00004 - 7.0 - 00004 - RELATÓRIO DE VALORES RECEBIDOS NO EXTERIOR - FILTRO POR FATURA
----------------------------------------------------------------------------------------------------
VALORES MANTIDOS NO EXTERIOR - DISPONIBILIDADE NO EXTERIOR
----------------------------------------------------------------------------------------------------
Palavras Chave:
VALORES MANTIDOS NO EXTERIOR - DISPONIBILIDADE NO EXTERIOR
----------------------------------------------------------------------------------------------------
Objetos da nota:
DOCU NA/PWS/ZYCBM310
DOMD /PWS/ZYGLD562
DYNP /PWS/SAPMZYCB034 0100
DYNP /PWS/SAPMZYCB034 0150
MESS /PWS/ZYCBM310
REPS /PWS/MZYCB034F01
REPS /PWS/MZYCB034I01
REPS /PWS/MZYCB034O01
REPS /PWS/MZYCB034TOP
REPS /PWS/ZYCBR361
REPT /PWS/ZYCBR361
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOCU NA/PWS/ZYCBM310
* Entrar na transação de classe de mensagens e editar o texto descritivo da mensagem 310
&CAUSE&
* >> Inicio da Inclusão
Conforme Resolução nº 3.548 de 12.03.2008, não será necessário a contratação de Câmbio Simplificado
Simultâneo. Utilize a pasta "Disponibilidade no Exterior" para direcionar os recursos.
* << Fim da Inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMD /PWS/ZYGLD562
------------------------------------------------------------------------
Domínio modificado: /PWS/ZYGLD562
-Valores individuais
Modificado valor fixo "30"
Texto modificado, idioma: PT (60 caracteres):
"Simplificado não simultâneo [obsoleto - valor não utilizado]"
Modificado valor fixo "70"
Texto modificado, idioma: PT (56 caracteres):
"Simplificado simultâneo [obsoleto - valor não utilizado]"
Incluído valor fixo "00"
Texto incluído, idioma: PT (27 caracteres):
"Disponibilidade no Exterior"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCB034 0100
* Efetuado download para arquivo.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCB034 0150
* Efetuado download para arquivo.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em MESS /PWS/ZYCBM310
msg Txt breve mensagem
* >> Inicio da inclusao
310 Resolução nº 3.548 de 12.03.2008.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
ts_principal-activetab = wa_controle-ts_atual.
ELSE.
ts_principal-activetab = ok_code.
ENDIF.
WHEN 'TAB100_70'.
IF itab_disp_70[] IS INITIAL.
ts_principal-activetab = wa_controle-ts_atual.
ELSE.
ts_principal-activetab = ok_code.
ENDIF.
* >> Início da inclusão: FORM USER_COMMAND_0100
WHEN 'TAB100_00'.
IF itab_disp_00[] IS INITIAL.
ts_principal-activetab = wa_controle-ts_atual.
ELSE.
ts_principal-activetab = ok_code.
ENDIF.
* << Fim da inclusão
WHEN OTHERS.
IF ok_code(6) EQ 'TAB100'.
ts_principal-activetab = ok_code.
ELSEIF ok_code(6) EQ 'TAB130'.
ts_70-activetab = ok_code.
ENDIF.
ENDCASE.
ENDFORM.
FORM seleciona_parametros.
IF wa_controle-parametros_carregados IS INITIAL.
...
...
FOR ALL ENTRIES IN itab_zycbt226
WHERE nrseq = itab_zycbt226-nrseq
AND destino = c_30.
APPEND LINES OF itab_disp_30 TO itab_disp_ant.
SELECT * FROM /pws/zycbt238
INTO TABLE itab_disp_70
FOR ALL ENTRIES IN itab_zycbt226
WHERE nrseq = itab_zycbt226-nrseq
AND destino = c_70.
APPEND LINES OF itab_disp_70 TO itab_disp_ant.
* >> Início da inclusão: FORM SELECIONA_OP
SELECT * FROM /pws/zycbt238
INTO TABLE itab_disp_00
FOR ALL ENTRIES IN itab_zycbt226
WHERE nrseq = itab_zycbt226-nrseq
AND destino = c_00.
APPEND LINES OF itab_disp_00 TO itab_disp_ant.
* << Fim da inclusão
IF NOT itab_disp_70[] IS INITIAL.
SELECT * FROM /pws/zycbt239
INTO TABLE itab_contrato
FOR ALL ENTRIES IN itab_disp_70
WHERE nrseq = itab_disp_70-nrseq."#EC CI_NOFIRST
IF sy-subrc EQ 0.
SORT itab_contrato BY nrseq dtdisp tpcontr ASCENDING.
APPEND LINES OF itab_contrato TO itab_contrato_ant.
ENDIF.
CLEAR:
...
...
IF <fs_cols>-screen-group3 CA 'A'.
<fs_cols>-screen-input = 1.
ENDIF.
IF <fs_cols>-screen-group3 CA 'F'.
<fs_cols>-screen-input = 0.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
* >> Início da inclusão: FORM VERIFICA_AUTORIZACAO
FORM trata_tela_0150.
DATA: v_linhas TYPE sy-tabix.
FIELD-SYMBOLS: <fs_cols> TYPE cxtab_column.
DESCRIBE TABLE itab_disp_00 LINES v_linhas.
tc_00-lines = v_linhas.
LOOP AT SCREEN.
IF sy-tcode = c_transacao_e.
IF screen-group1 CA 'E'.
screen-input = 0.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT tc_00-cols ASSIGNING <fs_cols>.
IF sy-tcode = c_transacao_e.
IF <fs_cols>-screen-group1 CA 'E'.
<fs_cols>-screen-input = 0.
ENDIF.
ELSEIF sy-tcode = c_transacao_a.
IF <fs_cols>-screen-group1 CA 'A'.
<fs_cols>-screen-input = 1.
ENDIF.
IF <fs_cols>-screen-group1 CA 'F'.
<fs_cols>-screen-input = 0.
ENDIF.
ELSEIF sy-tcode = c_transacao_c.
IF opt_origem_pagantec = 'X'.
IF <fs_cols>-screen-group2 CA 'A'.
<fs_cols>-screen-input = 1.
ENDIF.
IF <fs_cols>-screen-group2 CA 'F'.
<fs_cols>-screen-input = 0.
ENDIF.
ENDIF.
IF opt_origem_embarque = 'X'.
IF <fs_cols>-screen-group3 CA 'A'.
<fs_cols>-screen-input = 1.
ENDIF.
IF <fs_cols>-screen-group3 CA 'F'.
<fs_cols>-screen-input = 0.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
FORM verifica_autorizacao USING value(p_tipo).
DATA: p_oper(2) TYPE c,
wa_zycbt017 TYPE t_s_zycbt017.
FIELD-SYMBOLS <fs_zycbt226> TYPE t_s_zycbe226.
CASE p_tipo.
WHEN 'TCODE'.
AUTHORITY-CHECK OBJECT 'S_TCODE'
ID 'TCD'
FIELD sy-tcode.
IF sy-subrc NE 0.
...
...
ENDIF.
PERFORM: le_dados,
verifica_dados USING 'X'
CHANGING v_excecao.
IF v_excecao IS INITIAL.
PERFORM: contabilizacoes_estorno.
REFRESH itab_contabilizacoes.
ENDIF.
ELSE.
PERFORM atualiza_dados_op.
* >> Início da inclusão: FORM PROCESSAMENTO
PERFORM processa_disponibilidade
USING itab_disp_00.
* << Fim da inclusão
PERFORM processa_disponibilidade
USING itab_disp_30.
PERFORM processa_disponibilidade
USING itab_disp_70.
CONTINUE.
ENDIF.
ELSEIF <fs_op>-status = 'I' OR
<fs_op>-status IS INITIAL.
CHECK <fs_op>-bloqueado IS INITIAL.
CLEAR v_excecao.
...
...
AND nrparcf EQ wa_zycbt030-nrparcf.
ENDLOOP.
SELECT *
FROM bkpf
INTO CORRESPONDING FIELDS OF TABLE itab_bkpf
FOR ALL ENTRIES IN itab_zycbt030
WHERE ( belnr = itab_zycbt030-belnr OR
belnr = itab_zycbt030-belnr_t OR
belnr = itab_zycbt030-belnr6 )
AND bukrs = itab_zycbt030-bukrs
* >> Início da exclusão: FORM SELECIONA_DADOS
AND gjahr = itab_zycbt030-gjahr.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DADOS
AND gjahr = itab_zycbt030-gjahr. "#EC CI_NOFIRST
* << Fim da inclusão
ENDIF.
SELECT *
FROM /pws/zycbt209
INTO TABLE itab_zycbt209
FOR ALL ENTRIES IN itab_zycbt017
WHERE nrinvoic = itab_zycbt017-nrinvoic
AND nrparcf = itab_zycbt017-nrparcf
AND gsberf = itab_zycbt017-gsberf."#EC CI_NOFIRST
SELECT *
FROM /pws/zyglt368
...
...
wa_zycbe033-belnr = <fs_zycbt030>-belnr.
ENDIF.
ENDIF.
wa_zycbe033-d_newko = <fs_op>-kunag.
wa_zycbe033-newbs = '01'.
PERFORM preenche_contas_bloqueio USING sy-mandt
<fs_op>-bukrs
'D'
wa_zycbe033-d_newko
'S'.
* >> Início da inclusão: FORM DOC_DESM_CLIENTE
IF <fs_zycbt030> IS ASSIGNED.
* << Fim da inclusão
CONCATENATE text-038
<fs_zycbt030>-nrinvoic <fs_zycbt030>-nrparcf
INTO wa_zycbe033-d_zuonr
SEPARATED BY space.
* >> Início da inclusão: FORM DOC_DESM_CLIENTE
ENDIF.
* << Fim da inclusão
wa_zycbt036-tcode = wa_zycbe033-tcode.
wa_zycbt036-tabela = wa_zycbe033-tabela.
wa_zycbt036-cpochv = wa_zycbe033-cpochv.
...
...
wa_modo LIKE LINE OF itab_modo.
LOOP AT itab_zycbt226 INTO wa_zycbt226
WHERE mark = 'X'.
CLEAR:
v_total.
LOOP AT itab_disp_30 INTO wa_disp
WHERE nrseq = wa_zycbt226-nrseq.
v_total = v_total + wa_disp-vldisp.
ENDLOOP.
LOOP AT itab_disp_70 INTO wa_disp
* >> Início da inclusão: FORM ADICIONAR_DISPONIBILIDADE
WHERE nrseq = wa_zycbt226-nrseq.
v_total = v_total + wa_disp-vldisp.
ENDLOOP.
LOOP AT itab_disp_00 INTO wa_disp
* << Fim da inclusão
WHERE nrseq = wa_zycbt226-nrseq.
v_total = v_total + wa_disp-vldisp.
ENDLOOP.
IF v_total GE wa_zycbt226-vlr_exterior.
v_ok = 'X'.
ENDIF.
ENDLOOP.
IF sy-subrc NE 0.
MESSAGE w061 WITH
'Por favor, selecionar pelo menos uma fatura.'(m01).
...
...
text-m21.
EXIT.
ENDIF.
wa_modo-selflag = '1'.
wa_modo-varoption = '30%'(031).
APPEND wa_modo TO itab_modo.
wa_modo-selflag = '2'.
wa_modo-varoption = '70%'(032).
APPEND wa_modo TO itab_modo.
SORT itab_modo BY selflag ASCENDING.
* >> Início da exclusão: FORM ADICIONAR_DISPONIBILIDADE
CALL FUNCTION 'POPUP_TO_DECIDE_LIST'
EXPORTING
textline1 = 'Selecione o destino da'(m18)
textline2 = 'disponibilidade:'(m19)
titel = 'Valores Mantidos no Exterior'(m20)
IMPORTING
answer = v_answer
TABLES
t_spopli = itab_modo
EXCEPTIONS
not_enough_answers = 1
too_much_answers = 2
too_much_marks = 3
OTHERS = 4.
IF sy-subrc = 0.
CASE v_answer.
WHEN '1'.
PERFORM mover_dados
USING itab_zycbt226
c_30
CHANGING itab_disp_30.
ts_principal-activetab = 'TAB100_30'.
WHEN '2'.
* << Fim da exclusão
* >> Início da inclusão: FORM ADICIONAR_DISPONIBILIDADE
IF wa_controle-msg_lei_mostrada EQ space.
MESSAGE w310.
wa_controle-msg_lei_mostrada = 'X'.
ENDIF.
* << Fim da inclusão
PERFORM mover_dados
USING itab_zycbt226
* >> Início da exclusão: FORM ADICIONAR_DISPONIBILIDADE
c_70
CHANGING itab_disp_70.
PERFORM adicionar_dados_contrato
USING itab_disp_70.
ts_principal-activetab = 'TAB100_70'.
ts_70-activetab = 'TAB130_DISP'.
ENDCASE.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM ADICIONAR_DISPONIBILIDADE
c_00
CHANGING itab_disp_00.
ts_principal-activetab = 'TAB100_00'.
* << Fim da inclusão
ENDFORM.
FORM busca_conta_contabil
USING p_tipo TYPE char1
p_bukrs TYPE /pws/zyglt316-bukrs
p_chave TYPE /pws/zyglt316-ktosl
p_codaux1 TYPE /pws/zygle316-codaux1
p_codaux2 TYPE /pws/zygle316-codaux2
p_codaux3 TYPE /pws/zygle316-codaux3
CHANGING p_conta.
DATA: itab_zyglt316 TYPE STANDARD TABLE OF /pws/zyglt316,
...
...
WHEN c_novo.
INSERT INTO /pws/zycbt238 VALUES p_disp.
WHEN c_alterado.
UPDATE /pws/zycbt238 FROM p_disp.
WHEN c_excluido.
DELETE FROM /pws/zycbt238
WHERE nrseq = p_disp-nrseq
AND destino = p_disp-destino
AND dtdisp = p_disp-dtdisp.
ENDCASE.
* >> Início da exclusão: FORM SALVAR_DADOS_DISP
CONCATENATE p_disp-nrseq '-' p_disp-destino '%' INTO v_msg.
* << Fim da exclusão
SHIFT v_msg LEFT DELETING LEADING '0'.
IF sy-subrc EQ 0.
CASE p_disp-operacao.
WHEN c_novo.
APPEND p_disp TO itab_disp_ant.
PERFORM message_store USING
'/PWS/ZYCBM'
'I'
'Disponibilidade'(039)
v_msg
...
...
'Lançamento da Provisão da disponibilidade'(m28)
CHANGING wa_mensagem.
IF NOT wa_mensagem IS INITIAL.
p_disp-doc_cont = wa_mensagem-belnr.
IF p_disp-operacao IS INITIAL.
p_disp-operacao = c_alterado.
ENDIF.
v_msg = p_disp-nrseq.
SHIFT v_msg LEFT DELETING LEADING space.
SHIFT v_msg LEFT DELETING LEADING '0'.
* >> Início da exclusão: FORM CONTABILIZA_DISPONIBILIDADE
CONCATENATE v_msg
'-'
p_disp-destino
'%'
INTO v_msg.
* << Fim da exclusão
CONCATENATE wa_controle-msg_cnt '.' INTO v_count.
PERFORM message_store
USING '/PWS/ZYCBM'
'I'
v_count
wa_mensagem-msg
v_msg
'realizada com sucesso.'(m24)
'061'.
PERFORM message_store
...
...
IF NOT wa_mensagem IS INITIAL.
p_disp-doc_desm = wa_mensagem-belnr.
<fs_op>-belnr_op2 = p_disp-doc_desm.
<fs_op>-dtlancto2 = p_disp-dtlanc.
IF p_disp-operacao IS INITIAL.
p_disp-operacao = c_alterado.
ENDIF.
v_msg = p_disp-nrseq.
SHIFT v_msg LEFT DELETING LEADING space.
SHIFT v_msg LEFT DELETING LEADING '0'.
* >> Início da exclusão: FORM DESMEMBRAMENTO_DISPONIBILIDADE
CONCATENATE v_msg
'-'
p_disp-destino
'%'
INTO v_msg.
* << Fim da exclusão
CONCATENATE wa_controle-msg_cnt '.' INTO v_count.
PERFORM message_store
USING '/PWS/ZYCBM'
'I'
v_count
wa_mensagem-msg
v_msg
'realizada com sucesso.'(m24)
'061'.
PERFORM message_store
...
...
'Clearing da disponibilidade'(m30)
CHANGING wa_mensagem.
IF NOT wa_mensagem IS INITIAL.
p_disp-doc_comp = wa_mensagem-belnr.
IF p_disp-operacao IS INITIAL.
p_disp-operacao = c_alterado.
ENDIF.
v_msg = p_disp-nrseq.
SHIFT v_msg LEFT DELETING LEADING space.
SHIFT v_msg LEFT DELETING LEADING '0'.
* >> Início da exclusão: FORM CLEARING_DISPONIBILIDADE
CONCATENATE v_msg
'-'
p_disp-destino
'%'
INTO v_msg.
* << Fim da exclusão
CONCATENATE wa_controle-msg_cnt '.' INTO v_count.
PERFORM message_store
USING '/PWS/ZYCBM'
'I'
v_count
wa_mensagem-msg
v_msg
'realizada com sucesso.'(m24)
'061'.
PERFORM message_store
...
...
p_disp-doc_desm.
ENDIF.
IF NOT p_disp-doc_cont IS INITIAL.
PERFORM estorna_documento
USING p_disp-dtlanc
v_cpochv
CHANGING wa_zycbe033
p_disp-doc_cont.
ENDIF.
ENDFORM.
* >> Início da inclusão:
form user_command_0150.
CHECK ts_principal-activetab EQ c_tela_disp_00.
DATA: v_linhas TYPE sy-tabix.
CASE ok_code.
WHEN 'MARK'.
PERFORM preenche_campo_itab
USING 'MARK'
'X'
CHANGING itab_disp_00.
WHEN 'UNMARK'.
PERFORM preenche_campo_itab
USING 'MARK'
' '
CHANGING itab_disp_00.
WHEN 'DEL_LINE'.
PERFORM elimina_linha_marcada
CHANGING itab_disp_00.
WHEN 'P--' OR 'P-' OR 'P++' OR 'P+'.
DESCRIBE TABLE itab_disp_00 LINES v_linhas.
PERFORM paginacao_tc USING v_linhas
CHANGING tc_00-top_line.
WHEN 'ESTORNO'.
PERFORM marcar_estorno
USING 'X'
CHANGING itab_disp_00.
WHEN 'NOOP'.
PERFORM marcar_estorno
USING ' '
CHANGING itab_disp_00.
ENDCASE.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034I01
...
WHEN '0110'.
PERFORM user_command_0110.
WHEN '0120'.
PERFORM user_command_0120.
WHEN '0131'.
PERFORM user_command_0131.
WHEN '0132'.
PERFORM user_command_0132.
WHEN '0140'.
PERFORM user_command_0140.
* >> Início da inclusão: MODULE USER_COMMAND
WHEN '0150'.
PERFORM user_command_0150.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
MODULE user_command_exit INPUT.
CASE sy-dynnr.
WHEN '0100'.
CASE sy-tcode.
WHEN c_transacao_a OR
c_transacao_e.
LEAVE TO SCREEN 0001.
WHEN OTHERS.
...
...
tc_70
c_70.
WHEN '0132'.
PERFORM atualiza_tc_contrato
USING itab_contrato
tc_contrato.
WHEN '0140'.
PERFORM atualiza_tc_rendimentos
USING itab_rendimentos
tc_rendimentos.
* >> Início da inclusão: MODULE ATUALIZA_TC
WHEN '0150'.
PERFORM atualiza_tc_disponibilidade
USING itab_disp_00
tc_00
c_00.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
MODULE guarda_ts_atual INPUT.
wa_controle-ts_atual = ts_principal-activetab.
ENDMODULE.
MODULE verifica_campos INPUT.
DATA:
wa_disp LIKE LINE OF itab_disp_30,
v_sldext TYPE /pws/zycbe226-sld_exterior.
CLEAR:
wa_contrato,
v_sldext.
CASE sy-dynnr.
WHEN '0120'.
* >> Início da inclusão: MODULE VERIFICA_CAMPOS
LOOP AT itab_disp_00 INTO wa_disp
WHERE nrseq = /pws/zycbe238-nrseq
AND operacao NE space.
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_disp-nrseq
destino = wa_disp-destino
dtdisp = wa_disp-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
v_sldext = v_sldext + wa_disp-vldisp.
ENDIF.
ENDLOOP.
* << Fim da inclusão
LOOP AT itab_disp_70 INTO wa_disp
WHERE nrseq = /pws/zycbe238-nrseq
AND operacao NE space.
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_disp-nrseq
destino = wa_disp-destino
dtdisp = wa_disp-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
v_sldext = v_sldext + wa_disp-vldisp.
ENDIF.
ENDLOOP.
v_sldext = v_sldext + /pws/zycbe238-vldisp.
IF /pws/zycbe238-vldisp GT /pws/zycbe226-sld_exterior OR
v_sldext GT /pws/zycbe226-sld_exterior.
MESSAGE e061
WITH 'Valor maior que o saldo. Favor corrigir.'(033).
ENDIF.
WHEN '0131'.
* >> Início da inclusão: MODULE VERIFICA_CAMPOS
LOOP AT itab_disp_00 INTO wa_disp
WHERE nrseq = /pws/zycbe238-nrseq
AND operacao NE space.
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_disp-nrseq
destino = wa_disp-destino
dtdisp = wa_disp-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
v_sldext = v_sldext + wa_disp-vldisp.
ENDIF.
ENDLOOP.
* << Fim da inclusão
LOOP AT itab_disp_30 INTO wa_disp
WHERE nrseq = /pws/zycbe238-nrseq
AND operacao NE space.
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_disp-nrseq
destino = wa_disp-destino
dtdisp = wa_disp-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
v_sldext = v_sldext + wa_disp-vldisp.
...
...
WHERE indice = wa_contrato-indice.
ENDIF.
WHEN '0140'.
IF NOT /pws/zycbe240-bco_ext IS INITIAL.
SELECT name1 UP TO 1 ROWS
FROM lfa1 INTO /pws/zycbe240-nome_bco
WHERE lifnr = /pws/zycbe240-bco_ext.
ENDSELECT.
ELSE.
CLEAR /pws/zycbe240-nome_bco.
* >> Início da inclusão: MODULE VERIFICA_CAMPOS
ENDIF.
WHEN '0150'.
LOOP AT itab_disp_70 INTO wa_disp
WHERE nrseq = /pws/zycbe238-nrseq
AND operacao NE space.
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_disp-nrseq
destino = wa_disp-destino
dtdisp = wa_disp-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
v_sldext = v_sldext + wa_disp-vldisp.
ENDIF.
ENDLOOP.
LOOP AT itab_disp_30 INTO wa_disp
WHERE nrseq = /pws/zycbe238-nrseq
AND operacao NE space.
READ TABLE itab_disp_ant
WITH KEY nrseq = wa_disp-nrseq
destino = wa_disp-destino
dtdisp = wa_disp-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc NE 0.
v_sldext = v_sldext + wa_disp-vldisp.
ENDIF.
ENDLOOP.
v_sldext = v_sldext + /pws/zycbe238-vldisp.
IF /pws/zycbe238-vldisp GT /pws/zycbe226-sld_exterior OR
v_sldext GT /pws/zycbe226-sld_exterior.
MESSAGE e061
WITH 'Valor maior que o saldo. Favor corrigir.'(033).
* << Fim da inclusão
ENDIF.
ENDCASE.
ENDMODULE.
MODULE verifica_data_disp INPUT.
DATA:
v_destino TYPE /pws/zycbe238-destino.
CASE sy-dynnr.
WHEN '0120'.
v_destino = c_30.
WHEN '0131'.
v_destino = c_70.
* >> Início da inclusão: MODULE VERIFICA_DATA_DISP
WHEN '0150'.
v_destino = c_00.
* << Fim da inclusão
ENDCASE.
READ TABLE itab_disp_ant
WITH KEY nrseq = /pws/zycbe238-nrseq
destino = v_destino
dtdisp = /pws/zycbe238-dtdisp
TRANSPORTING NO FIELDS.
IF sy-subrc EQ 0.
MESSAGE e061 WITH 'Data Inválida, Favor redigitar.'(034).
ENDIF.
ENDMODULE.
...
...
MODULE define_operacao INPUT.
CASE sy-dynnr.
WHEN '0120'.
PERFORM define_operacao_disp
USING tc_30
CHANGING itab_disp_30.
WHEN '0131'.
PERFORM define_operacao_disp
USING tc_70
CHANGING itab_disp_70.
* >> Início da inclusão: MODULE DEFINE_OPERACAO
WHEN '0150'.
PERFORM define_operacao_disp
USING tc_00
CHANGING itab_disp_00.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
module drilldown input.
DATA: v_campo(30) TYPE c,
v_value(10) TYPE c,"#EC NEEDED
v_index TYPE sy-tabix.
FIELD-SYMBOLS:
<fs_receb> LIKE LINE OF itab_zycbt226.
CASE ok_code.
WHEN '/CS'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034O01
...
module preenche_tc_disponibilidade output.
CASE sy-dynnr.
WHEN '0120'.
PERFORM preenche_tc_disponibilidade
USING itab_disp_30
tc_30.
WHEN '0131'.
PERFORM preenche_tc_disponibilidade
USING itab_disp_70
tc_70.
* >> Início da inclusão: MODULE PREENCHE_TC_DISPONIBILIDADE
WHEN '0150'.
PERFORM preenche_tc_disponibilidade
USING itab_disp_00
tc_00.
* << Fim da inclusão
ENDCASE.
endmodule.
module loop_at_screen_tc_linhas output.
CASE sy-dynnr.
WHEN '0120'.
PERFORM loop_at_screen_disp
using itab_disp_30
tc_30
c_30.
WHEN '0131'.
...
...
tc_70
c_70.
WHEN '0132'.
PERFORM loop_at_screen_contr
using itab_contrato
tc_contrato.
WHEN '0140'.
PERFORM loop_at_screen_rendimentos
using itab_rendimentos
tc_rendimentos.
* >> Início da inclusão: MODULE LOOP_AT_SCREEN_TC_LINHAS
WHEN '0150'.
PERFORM loop_at_screen_disp
using itab_disp_00
tc_00
c_00.
* << Fim da inclusão
ENDCASE.
endmodule.
module preenche_tc_contrato output.
PERFORM preenche_tc_contrato
USING itab_disp_70
itab_contrato
tc_contrato.
endmodule.
module preenche_tc_rendimentos output.
PERFORM preenche_tc_rendimentos
...
...
tc_30-lines = v_linhas.
WHEN '0131'.
DESCRIBE TABLE itab_disp_70 LINES v_linhas.
tc_70-lines = v_linhas.
WHEN '0132'.
DESCRIBE TABLE itab_contrato LINES v_linhas.
tc_contrato-lines = v_linhas.
WHEN '0140'.
DESCRIBE TABLE itab_rendimentos LINES v_linhas.
tc_rendimentos-lines = v_linhas.
* >> Início da inclusão: MODULE VERIFICAR_LINHAS
WHEN '0150'.
DESCRIBE TABLE itab_disp_00 LINES v_linhas.
tc_00-lines = v_linhas.
* << Fim da inclusão
ENDCASE.
endmodule.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034TOP
PROGRAM /pws/sapmzycb034 MESSAGE-ID /pws/zycbm.
INCLUDE: /pws/zygli100,
/pws/zygli101,
<icon>.
TYPE-POOLS: icon.
* >> Início da exclusão:
TABLES: /pws/zycbe226,
* << Fim da exclusão
* >> Início da inclusão:
TABLES:
/pws/zycbe226,
* << Fim da inclusão
/pws/zycbe238,
/pws/zycbe239,
/pws/zycbe240,
/pws/zycbe017,
/pws/zycbt089.
CONTROLS:
ts_70 TYPE TABSTRIP,
ts_principal TYPE TABSTRIP,
tc_op TYPE TABLEVIEW USING SCREEN '0110',
tc_30 TYPE TABLEVIEW USING SCREEN '0120',
tc_70 TYPE TABLEVIEW USING SCREEN '0131',
tc_contrato TYPE TABLEVIEW USING SCREEN '0132',
* >> Início da inclusão:
tc_00 TYPE TABLEVIEW USING SCREEN '0150',
* << Fim da inclusão
tc_rendimentos TYPE TABLEVIEW USING SCREEN '0140'.
CONSTANTS:
c_debito TYPE c VALUE 'D',
c_credito TYPE c VALUE 'C',
c_30(2) TYPE c VALUE '30',
c_70(2) TYPE c VALUE '70',
* >> Início da inclusão:
c_00(2) TYPE c VALUE '00',
* << Fim da inclusão
c_tp1 TYPE /pws/zycbt239-tpcontr VALUE 'TIPO 01',
c_tp4 TYPE /pws/zycbt239-tpcontr VALUE 'TIPO 04',
c_contabilizado TYPE /pws/zycbt226-status VALUE 'C',
c_excluido TYPE c VALUE 'E',
c_alterado TYPE c VALUE 'A',
c_novo TYPE c VALUE 'N',
c_tela_receb TYPE FELD-FCOD VALUE 'TAB100_RECEB',
c_tela_disp_30 TYPE FELD-FCOD VALUE 'TAB100_30',
c_tela_ts_70 TYPE FELD-FCOD VALUE 'TAB100_70',
c_tela_disp_70 TYPE FELD-FCOD VALUE 'TAB130_DISP',
* >> Início da inclusão:
c_tela_disp_00 TYPE FELD-FCOD VALUE 'TAB100_00',
* << Fim da inclusão
c_mark(6) TYPE c VALUE 'V_MARK',
c_parametro(14) TYPE C VALUE 'ZYCBE034-NRSEQ',
c_f02 TYPE /pws/zycbt032-tcode VALUE 'F-02',
c_f30 TYPE /pws/zycbt032-tcode VALUE 'F-30',
c_fb08 TYPE /pws/zycbt032-tcode VALUE 'FB08',
c_fbra TYPE /pws/zycbt032-tcode VALUE 'FBRA',
c_zycbt239 TYPE /pws/zycbe033-tabela VALUE '/PWS/ZYCBT239',
c_embarque_exportacao TYPE /pws/zycbt226-tipo_op VALUE 'E',
c_pagamento_antecipado TYPE /pws/zycbt226-tipo_op VALUE 'P',
c_transacao_c(14) TYPE c VALUE '/PWS/ZYCB034_C',
...
...
BEGIN OF t_controle,
dados_op_carregados(1) TYPE c,
parametros_carregados(1) TYPE c,
msg_inicializada(1) TYPE c,
tc_linhas TYPE sy-srows,
autorizacao_emp(1) TYPE c,
total_30_70(1) TYPE c,
periodo_fechado(1) TYPE c,
ts_atual LIKE ts_principal-activetab,
msg_cnt(3) TYPE N,
* >> Início da inclusão:
msg_lei_mostrada TYPE c,
* << Fim da inclusão
END OF t_controle,
BEGIN OF t_disponibilidade.
INCLUDE STRUCTURE /pws/zycbt238.
TYPES:
belnr_f02 type /pws/zycbt238-doc_cont,
indice TYPE sy-index,
mark(1) TYPE c,
operacao(1) TYPE c,
END OF t_disponibilidade,
BEGIN OF t_contrato.
...
...
itab_zycit054 TYPE t_t_zycit054,
itab_kna1 TYPE t_t_kna1,
itab_lfa1 TYPE t_t_lfa1,
itab_bkpf TYPE t_t_bkpf,
itab_zycbe224 TYPE t_t_zycbe224,
itab_disp_30 TYPE t_t_disponibilidade,
itab_disp_70 TYPE t_t_disponibilidade,
itab_contrato TYPE t_t_contrato,
itab_zycbt227 TYPE t_t_zycbt227,
itab_rendimentos TYPE t_t_rendimentos,
* >> Início da inclusão:
itab_disp_00 TYPE t_t_disponibilidade,
* << Fim da inclusão
itab_disp_ant TYPE t_t_disponibilidade,
itab_contrato_ant TYPE t_t_contrato,
itab_doctos TYPE t_t_doctos,
itab_rendimentos_ant TYPE t_t_rendimentos,
itab_contabilizacoes TYPE t_t_contabilizacoes.
DATA: wa_zycbt007 TYPE t_s_zycbt007,
wa_zyglt009 TYPE t_s_zyglt009,
wa_zycbt089 TYPE t_s_zycbt089,
wa_controle TYPE t_controle,
wa_fat TYPE t_s_zycbt017,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR361
...
gsberf LIKE /pws/zycbt226-gsberf,
werks LIKE /pws/zycbt226-werks,
j_1bbranch LIKE /pws/zycbt226-j_1bbranch,
kunag LIKE /pws/zycbt226-kunag,
name1 TYPE kna1-name1,
vlavinc LIKE /pws/zycbt017-vlavinc,
vlr_exterior LIKE /pws/zycbt226-vlr_exterior,
sld_exterior LIKE /pws/zycbt226-sld_exterior,
vldisp30 LIKE /pws/zycbt238-vldisp,
vldisp70 LIKE /pws/zycbt238-vldisp,
* >> Início da inclusão:
vldisp00 LIKE /pws/zycbt238-vldisp,
* << Fim da inclusão
vlcred LIKE /pws/zycbt240-vlcred,
dtcredext LIKE /pws/zycbt226-dtcredext,
dtlancto LIKE /pws/zycbt226-dtlancto,
dtincl LIKE /pws/zycbt226-dtincl,
dtlimite LIKE /pws/zycbt226-dtlimite,
dtdisp LIKE /pws/zycbt238-dtdisp,
dtreceb LIKE /pws/zycbt240-dtreceb,
bco_me LIKE /pws/zycbt226-bco_me,
name1_lfa LIKE lfa1-name1,
conta_contabil LIKE /pws/zycbt226-conta_contabil,
...
...
gsberf LIKE /pws/zycbt226-gsberf,
werks LIKE /pws/zycbt226-werks,
j_1bbranch LIKE /pws/zycbt226-j_1bbranch,
kunag LIKE /pws/zycbt226-kunag,
name1 TYPE kna1-name1,
vlavinc LIKE /pws/zycbt017-vlavinc,
vlr_exterior LIKE /pws/zycbt226-vlr_exterior,
sld_exterior LIKE /pws/zycbt226-sld_exterior,
vldisp30 LIKE /pws/zycbt238-vldisp,
vldisp70 LIKE /pws/zycbt238-vldisp,
* >> Início da inclusão:
vldisp00 LIKE /pws/zycbt238-vldisp,
* << Fim da inclusão
vlcred LIKE /pws/zycbt240-vlcred,
dtcredext LIKE /pws/zycbt226-dtcredext,
dtlancto LIKE /pws/zycbt226-dtlancto,
dtincl LIKE /pws/zycbt226-dtincl,
dtlimite LIKE /pws/zycbt226-dtlimite,
dtdisp LIKE /pws/zycbt238-dtdisp,
dtreceb LIKE /pws/zycbt240-dtreceb,
bco_me LIKE /pws/zycbt226-bco_me,
name1_lfa LIKE lfa1-name1,
conta_contabil LIKE /pws/zycbt226-conta_contabil,
...
...
s_dtlcto FOR /pws/zycbt226-dtlancto,
s_dtincl FOR /pws/zycbt226-dtincl,
s_dtdisp FOR /pws/zycbt238-dtdisp,
s_dtrecb FOR /pws/zycbt240-dtreceb,
s_bco_me FOR /pws/zycbt226-bco_me,
s_ref_op FOR /pws/zycbt226-ref_op,
s_exerc FOR bsad-gjahr NO INTERVALS NO-EXTENSION OBLIGATORY.
SELECTION-SCREEN END OF BLOCK bl_1.
SELECTION-SCREEN BEGIN OF BLOCK vlreceb WITH FRAME TITLE text-004.
PARAMETERS: p_receb AS CHECKBOX DEFAULT 'X',
* >> Início da inclusão:
p_disp00 AS CHECKBOX DEFAULT 'X',
* << Fim da inclusão
p_disp30 AS CHECKBOX DEFAULT 'X',
p_disp70 AS CHECKBOX DEFAULT 'X',
p_rendrb AS CHECKBOX DEFAULT 'X'.
SELECTION-SCREEN END OF BLOCK vlreceb.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
PARAMETERS: p_varian LIKE disvariant-variant.
SELECTION-SCREEN END OF BLOCK b2.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_varian.
v_repid = sy-repid.
PERFORM help_variante
USING v_repid
sy-uname
CHANGING v_exit
p_varian.
AT SELECTION-SCREEN.
IF p_receb = '' AND p_disp30 = '' AND p_disp70 = '' AND
* >> Início da inclusão:
p_disp00 = '' AND
* << Fim da inclusão
p_rendrb = ''.
MESSAGE e015 WITH text-005.
ENDIF.
START-OF-SELECTION.
v_repid = sy-repid.
PERFORM f_seleciona_dados.
PERFORM f_monta_saida.
PERFORM f_elimina_duplicidade_valores.
IF NOT it_saida[] IS INITIAL.
PERFORM f_layout.
...
...
FORM f_seleciona_dados.
CLEAR:
it_zycbt226[],
it_zycbt238[],
it_zycbt240[].
PERFORM f_seleciona_zycbt226.
PERFORM f_seleciona_zycbt238.
PERFORM f_seleciona_zycbt240.
ENDFORM.
FORM f_seleciona_zycbt226.
* >> Início da exclusão: FORM F_SELECIONA_ZYCBT226
CHECK p_receb ='X' OR p_disp30 = 'X' OR p_disp70 = 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM F_SELECIONA_ZYCBT226
CHECK p_receb ='X' OR p_disp30 = 'X' OR p_disp70 = 'X'
OR p_disp00 = 'X'.
* << Fim da inclusão
SELECT
bukrs
nrseq
tipo_op
waers
nrinvoic
nrparcf
gsberf
werks
j_1bbranch
...
...
doc_cont
vldisp
FROM /pws/zycbt238
INTO TABLE it_zycbt238
FOR ALL ENTRIES IN it_zycbt226
WHERE
nrseq = it_zycbt226-nrseq AND
dtdisp IN s_dtdisp AND
destino = 70.
ENDIF.
* >> Início da inclusão: FORM F_SELECIONA_ZYCBT238
IF p_disp00 EQ 'X'.
SELECT
nrseq
destino
dtdisp
conta_contabil
doc_cont
vldisp
FROM /pws/zycbt238
APPENDING TABLE it_zycbt238
FOR ALL ENTRIES IN it_zycbt226
WHERE
nrseq = it_zycbt226-nrseq AND
dtdisp IN s_dtdisp AND
destino = '00'.
ENDIF.
* << Fim da inclusão
IF ( it_zycbt238[] IS INITIAL ) AND ( p_receb IS INITIAL ).
CLEAR it_zycbt226[].
ELSE.
IF p_receb IS INITIAL.
SORT: it_zycbt226 BY nrseq,
it_zycbt238 BY nrseq.
LOOP AT it_zycbt226.
lc_index = sy-tabix.
READ TABLE it_zycbt238 WITH KEY it_zycbt226-nrseq. "#EC *
IF sy-subrc NE 0.
...
...
CLEAR: it_saida-sld_exterior,
it_saida-vlr_exterior.
LOOP AT it_zycbt238 WHERE nrseq = it_zycbt226-nrseq.
IF it_zycbt238-destino = 30 .
it_saida-destino = 'Disponibilidade 30%'(009).
it_saida-vldisp30 = it_zycbt238-vldisp.
CLEAR it_saida-vldisp70.
ELSEIF it_zycbt238-destino = 70 .
it_saida-destino = 'Disponibilidade 70%'(010).
it_saida-vldisp70 = it_zycbt238-vldisp.
* >> Início da inclusão: FORM F_MONTA_SAIDA
CLEAR it_saida-vldisp30.
ELSEIF it_zycbt238-destino = '00' .
it_saida-destino = 'Disponibilidade no Exterior'(043).
it_saida-vldisp00 = it_zycbt238-vldisp.
* << Fim da inclusão
CLEAR it_saida-vldisp30.
ENDIF.
it_saida-dtdisp = it_zycbt238-dtdisp.
it_saida-conta_contabil_l = it_zycbt238-conta_contabil.
it_saida-doc_cont = it_zycbt238-doc_cont.
CLEAR: it_zycbt226-vlr_exterior,
it_zycbt226-sld_exterior.
PERFORM f_preenche_zycbt226.
ENDLOOP.
CLEAR: it_saida-vldisp70,
* >> Início da inclusão: FORM F_MONTA_SAIDA
it_saida-vldisp00,
* << Fim da inclusão
it_saida-vldisp30.
ENDLOOP.
CLEAR it_saida.
LOOP AT it_zycbt240.
it_saida-nrseq = it_zycbt240-nrseqr.
it_saida-bukrs = it_zycbt240-bukrs.
it_saida-destino = text-003.
it_saida-waers = it_zycbt240-waers.
it_saida-gsberf = it_zycbt240-gsber.
it_saida-werks = it_zycbt240-werks.
...
...
PERFORM: inclui_campo USING 'IT_SAIDA' 'NAME1'
text-023 'C' '35' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLR_EXTERIOR'
text-024 'P' '13' ' ' ' ' 'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'SLD_EXTERIOR'
text-025 'P' '13' ' ' ' ' 'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLDISP30'
text-026 'P' '13' ' ' ' ' 'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLDISP70'
text-027 'P' '13' ' ' ' ' 'X' ' ' ' ' ' ' ' '.
* >> Início da inclusão: FORM F_MONTA_CAMPOS
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLDISP00'
text-043 'P' '13' ' ' ' ' 'X' ' ' ' ' ' ' ' '.
* << Fim da inclusão
PERFORM: inclui_campo USING 'IT_SAIDA' 'VLCRED'
text-028 'P' '13' ' ' ' ' 'X' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTCREDEXT'
text-029 'D' '13' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTLANCTO'
text-030 'D' '08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTINCL'
text-031 'D' '08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
PERFORM: inclui_campo USING 'IT_SAIDA' 'DTLIMITE'
text-032 'D' '08' ' ' ' ' ' ' ' ' ' ' ' ' ' '.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/ZYCBR361
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 043
Texto: (27 caracteres)
"Disponibilidade no Exterior"
Comprimento máximo: 27
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): P_DISP00
Texto: (35 caracteres)
"Disponibilidade no Exterior"
Referência ao Dictionary: NÃO