Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: Captação
Data/Hora da Publicação: 28/09/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 16:35:50
Descrição da Nota: CAPTAÇÃO - DP DOWN PAYMENT - ORDEM DE VENDA
Sintoma
Captação - DowPayment - Ordem de venda - não permite a criação de outros contratos para o mesmo item
Solução
Incluir o tratamento dentro do programa em vez de ponto de exit.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09100 Data: 28/09/2009 Hora: 10:02:06
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09100
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 8.0
Pacote : 00001
Agrupamento : 00001
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
02092 - 00017 - 6.0 - 00024 - CAPTAÇÃO/PRORROGAÇÃO - VERIFICAÇÃO DE CONTRATO POR LETRA.
03011 - 00016 - 6.0 - 00026 - CAPTAÇÃO - CAMPO IRRELEVANTE PARA CONTABILIZAÇÃO NRCONTR
03292 - 00015 - 6.0 - 00026 - CAPTAÇÃO - DP - PONTO DE EXIT F-29 E CONSITÊNCIA ORDEM
03802 - 00014 - 7.0 - 00001 - CAPTAÇÃO - (CÁLCULO JUROS)
03856 - 00013 - 7.0 - 00001 - CAPTAÇÃO - EXIT CPT015 - COMISSÃO
04030 - 00012 - 7.0 - 00002 - CAPTAÇÃO - DP - ITENS ORDEM PAGAMENTO - VALOR ZERO
04808 - 00011 - 7.0 - 00003 - CAPTAÇÃO - ELIMINAÇÃO DA OBRIGATORIEDADE DA FORMA DE CALCULO PARA
04834 - 00010 - 7.0 - 00003 - ESTRATÉGIA LIBERAÇÃO - REMESSA - JPY - FATOR DE CONVERSÃO
05479 - 00009 - 7.0 - 00003 - CAPTAÇÂO - ORDEM DE PAGAMENTO
05533 - 00008 - 7.0 - 00004 - EXIT CAPTAÇÃO DE CONTRATOS DE EXPORTAÇÃO
07834 - 00007 - 7.0 - 00008 - FLEXIBILIZAR AS CONTAS DE BANCO NO PROGRAMA DE CAPTAÇÃO
07965 - 00006 - 7.0 - 00008 - DA - COTAÇÃO DE MOEDAS PARA CAPTAÇÃO/FINANCIAMENTO/EMPRÉSTIMO
08164 - 00005 - 7.0 - 00008 - DA - DATA CREDITO NO EXTERIOR NA VINCULAÇÃO- PRÉ-PAGAMENTO SECURI
08377 - 00004 - 7.0 - 00009 - CAPTAÇÃO-DUMP RECALCULO JUROS-ROTINA MENSAL-VALOR NEGATIVO DTPAGE
08572 - 00003 - 7.0 - 00010 - CAPTAÇÃO - PASTA DE PERIODO DE JUROS - MENSAGEM VARIAS VEZES.
08930 - 00002 - 7.0 - 00010 - CAPTAÇÃO - LIQUIDAÇÃO DAS CAPTAÇÕES DE PRÉ-PAGAMENTO E SECURITIZA
08954 - 00001 - 7.0 - 00010 - CAPTAÇÃO - DA - INCLUSAO DE CAMPOS NA PASTA DADOS ADICIONAIS
----------------------------------------------------------------------------------------------------
CAPTAÇÃO - DP DOWN PAYMENT - ORDEM DE VENDA
----------------------------------------------------------------------------------------------------
Palavras Chave:
CAPTAÇÃO - DP DOWN PAYMENT - ORDEM DE VENDA
NÃO PERMITE A CRIAÇÃO DE OUTROS CONTRATOS PARA O MESMO ITEM
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCB001 0207
DYNP /PWS/SAPMZYGL007 0119
MERG F6DK971914 20090925 164956 PWSCB
RELE F6DK971947 20090925 165029 PWSCB
REPS /PWS/MZYCB001F01
REPS /PWS/MZYCB001F04
REPS /PWS/MZYCB001I01
REPS /PWS/MZYCB001O01
REPS /PWS/MZYCB001TOP
REPS /PWS/MZYCB001X01
REPS /PWS/MZYGL007I01
REPT /PWS/SAPMZYCB001
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCB001 0207
MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0207
PROCESS BEFORE OUTPUT.
MODULE set_screen.
LOOP AT itab_zycbt221 WITH CONTROL tc_ordvda
CURSOR tc_ordvda-current_line.
MODULE insert_line.
MODULE move_mark.
ENDLOOP.
* >> Início da inclusão:
module ponto_exit_cpt018.
* << Fim da inclusão
PROCESS AFTER INPUT.
LOOP AT itab_zycbt221.
FIELD: /pws/zycbe221-vlr_item,
/pws/zycbe221-vlr_rateio,
/pws/zycbe221-moeda,
/pws/zycbe221-ordem.
MODULE modify_line.
MODULE move_mark_table.
ENDLOOP.
MODULE carrega_itab.
MODULE user_command_0207.
* >> Início da inclusão:
process on value-request.
field /pws/zycbe221-ordem module seta_matchcode_ordem.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYGL007 0119
MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0119
process before output.
module: set_screen,
set_campos_119.
process after input.
* >> Início da exclusão:
module set_campos_119.
* << Fim da exclusão
* >> Início da inclusão:
Chain.
field : v_ctrl_ov1,
v_ov_obrig1,
v_ctrl_ov2,
v_ov_obrig2
module set_campos_119 ON CHAIN-REQUEST.
Endchain.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F01
...
itab_zycbt002-dtfinal = /pws/zycbe002-dtfinal.
itab_zycbt002-nrdias = /pws/zycbe002-nrdias.
itab_zycbt002-nrdiasj = /pws/zycbe002-nrdiasj.
if itab_zycbt002-dtfinal gt v_dtliquid.
itab_zycbt002-dtfinal = v_dtliquid.
endif.
modify itab_zycbt002 index /pws/zycbe002-nrparc.
endform.
form update_itab_zycbt003.
data: v_mark(1) type c.
* >> Início da exclusão: FORM UPDATE_ITAB_ZYCBT003
if /pws/zycbe001-tpcontr(1) = 'P' and /pws/zycbe003-tppror = 'L'.
* << Fim da exclusão
* >> Início da inclusão: FORM UPDATE_ITAB_ZYCBT003
if ( /pws/zycbe001-tpcontr(1) = 'P' or
/pws/zycbe001-tpcontr(1) = 'S' or
/pws/zycbe001-tpcontr(1) = 'T' )
and /pws/zycbe003-tppror = 'L'.
* << Fim da inclusão
clear /pws/zycbe003.
message i015 with text-460 text-461.
* >> Início da inclusão: FORM UPDATE_ITAB_ZYCBT003
elseif /pws/zycbe001-tpcontr(1) ne 'P' and
/pws/zycbe001-tpcontr(1) ne 'S' and
/pws/zycbe001-tpcontr(1) ne 'T' and
/pws/zycbe003-tppror = 'P'.
clear /pws/zycbe003.
message i015 with text-508 text-461.
* << Fim da inclusão
endif.
if not /pws/zycbe003 is initial.
if /pws/zycbe003-tppror is initial.
message i073.
elseif /pws/zycbe003-tppror eq 'P'.
if /pws/zycbe003-dtpror is initial and
not /pws/zycbe003-nrparc is initial.
message i074.
endif.
elseif /pws/zycbe003-dtpror is initial.
...
...
refresh itab_zycbt005l.
saldo_inicial = /pws/zycbe001-slpagar.
select *
from /pws/zycbt005
into table itab_zycbt005l
where nrseqc = /pws/zycbe001-nrseqc and
dtpagext <= itab_zycbt002-dtinicio
and dtpagext > '00000000'.
if sy-subrc eq 0.
loop at itab_zycbt005l.
* >> Início da inclusão: FORM JUROS
select single *
from /pws/zycbt006
where nrseqc = itab_zycbt005l-nrseqc
and tpdesp = itab_zycbt005l-tpdesp
and nrparc = itab_zycbt005l-nrparc
and dtincl = itab_zycbt005l-dtincl
and nrinvoic = itab_zycbt005l-nrinvoic
and nrparcf = itab_zycbt005l-nrparcf
and gsberf = itab_zycbt005l-gsberf
and dtvincul = itab_zycbt005l-dtvincul
and dtvencto = itab_zycbt005l-dtvencto
and dtpagext = itab_zycbt005l-dtpagext.
if sy-subrc ne 0.
* << Fim da inclusão
saldo_inicial = saldo_inicial -
( itab_zycbt005l-vlme_p * itab_zycbt005l-parid ).
* >> Início da inclusão: FORM JUROS
endif.
* << Fim da inclusão
endloop.
v_diasj = v_dtjuros - itab_zycbt002-dtinicio.
v_juros = saldo_inicial * itab_zycbt002-txjtotal / 100
* v_diasj / v_nrdias.
else.
...
...
data: begin of itab_vbpa occurs 0,
vbeln like vbpa-vbeln,
posnr like vbpa-posnr,
kunnr like vbpa-kunnr,
end of itab_vbpa.
data: v_soma like vbap-netwr,
v_valor like vbap-netwr,
v_sub like vbap-netwr,
v_idx like sy-tabix,
v_itens type i.
* >> Início da exclusão: FORM VERIFICA_ORDEM
data: v_msg1(25),
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ORDEM
data: v_msg1(30),
* << Fim da inclusão
v_msg2(25).
* >> Início da inclusão: FORM VERIFICA_ORDEM
data: v_loop(3) type n,
v_valoritem like /pws/zycbt221-vlr_item.
* << Fim da inclusão
clear: itab_vbap.
refresh: itab_vbap.
clear: v_soma, v_itens, v_sub, v_pagador, v_tipo, v_moeda.
if wa_zycbt221[] is initial.
loop at itab_zycbt221.
...
...
delete wa_zycbt221 where ordem = /pws/zycbe221-ordem.
endif.
endloop.
endif.
select * from /pws/zycbt221
into table itab_zycbt221_aux
for all entries in wa_zycbt221
where nrseqc ne /pws/zycbe001-nrseqc and
ordem = wa_zycbt221-ordem and
item = wa_zycbt221-item.
* >> Início da exclusão: FORM VERIFICA_ORDEM
loop at wa_zycbt221.
read table itab_zycbt221_aux with key
ordem = wa_zycbt221-ordem
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ORDEM
if sy-tcode ne c_transacao_e .
if v_pass is initial.
v_valoritem = wa_zycbt221-vlr_item.
loop at itab_zycbt221_aux where ordem = wa_zycbt221-ordem and
* << Fim da inclusão
item = wa_zycbt221-item.
* >> Início da exclusão: FORM VERIFICA_ORDEM
if sy-subrc eq 0.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ORDEM
v_valoritem = v_valoritem - itab_zycbt221_aux-vlr_rateio.
if v_valoritem <= '0'.
wa_zycbt221-vlr_item = v_valoritem .
endif.
concatenate v_msg1 itab_zycbt221_aux-nrseqc
into v_msg1 separated by space.
endloop.
v_pass = 'X'.
if v_valoritem > '0'.
modify wa_zycbt221 index 1.
endif.
if not v_msg1 is initial .
message i061 with text-505 wa_zycbt221-ordem
text-506 v_msg1 .
endif.
endif.
clear v_valoritem.
v_valoritem = /pws/zycbe001-vlme + itab_zycbt221_aux-vlr_rateio.
if v_valoritem > wa_zycbt221-vlr_item and
not v_valoritem is initial.
message i061 with text-505 wa_zycbt221-ordem
text-507 .
* << Fim da inclusão
v_erro_ov = 'X'.
* >> Início da exclusão: FORM VERIFICA_ORDEM
concatenate text-416 wa_zycbt221-ordem into
v_msg1 separated by space.
concatenate text-417 wa_zycbt221-item text-418 into
v_msg2 separated by space.
message i061 with v_msg1 v_msg2 text-419.
delete wa_zycbt221.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ORDEM
v_erro_2 = 'X'.
delete wa_zycbt221 where ordem = /pws/zycbe221-ordem.
endif.
endif.
loop at wa_zycbt221.
if v_erro_2 = 'X'.
* << Fim da inclusão
else.
clear v_erro_ov.
* >> Início da inclusão: FORM VERIFICA_ORDEM
endif.
* << Fim da inclusão
v_soma = v_soma + wa_zycbt221-vlr_item.
v_itens = v_itens + 1.
* >> Início da exclusão: FORM VERIFICA_ORDEM
endif.
* << Fim da exclusão
endloop.
loop at wa_zycbt221.
if sy-tabix eq v_itens.
v_valor = /pws/zycbe001-vlme - v_sub.
else.
v_valor = ( wa_zycbt221-vlr_item / v_soma ) *
/pws/zycbe001-vlme.
v_sub = v_sub + v_valor.
endif.
move: v_valor to wa_zycbt221-vlr_rateio,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001F04
...
move text-422 to v_tab-value.
append v_tab.
move text-425 to v_tab-value.
append v_tab.
case /pws/zycbe001-tpcontr(1).
when 'P' or 'S' or 'T'.
move text-423 to v_tab-value.
append v_tab.
move text-426 to v_tab-value.
append v_tab.
* >> Início da inclusão: FORM SET_MATCH_CODE
delete v_tab where value = text-422
or value = text-425.
* << Fim da inclusão
endcase.
move: '/PWS/ZYCBT003' to f_tab-tabname,
'TPPROR' to f_tab-fieldname,
'X' to f_tab-selectflag.
append f_tab.
move: 'DD07D' to f_tab-tabname,
'DDTEXT' to f_tab-fieldname,
' ' to f_tab-selectflag.
append f_tab.
call function 'HELP_VALUES_GET_WITH_TABLE'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001I01
...
( /pws/zycbt001-tpcontr(1) = 'E' and
/pws/zycbt001-capital = 'X' ).
perform delete_zycbt001_pre1.
elseif /pws/zycbt001-tpcontr(1) = 'T'.
perform delete_zycbt001_tr.
else.
perform delete_zycbt001.
endif.
endif.
when 'SAVE'.
* >> Início da inclusão: MODULE USER_COMMAND_CB001
if v_erro_ov = 'X'.
message i015 with text-509.
leave to screen '0100'.
endif.
* << Fim da inclusão
case /pws/zycbe001-tpcontr+0(1).
when 'D'.
perform create_zycbt002_a.
when 'P' or 'S'.
perform create_zycbt002_p.
when 'A' or 'E' or 'C' or 'T'.
perform create_zycbt002_e.
endcase.
perform cria_parcelas_comissao.
perform dias_juros using ' '.
...
...
module consiste_tipodespesa input.
check not /pws/zycbe004-tpdesp is initial.
check sy-tcode ne '/PWS/ZYCB001_E' and
v_status_s200 ne 0.
if /pws/zycbe004-tpdesp = 'J'.
message e061 with text-067.
leave to screen 0.
endif.
endmodule.
module ajuda_pesquisa input.
* >> Início da exclusão: MODULE AJUDA_PESQUISA
data: begin of itab_result occurs 0.
include structure ddshretval.
data: end of itab_result.
* << Fim da exclusão
data: begin of record_tab occurs 0.
include structure seahlpres.
data: end of record_tab.
data: l_display(1) type c,
v_searchhelp type shlpname,
tdynpread like dynpread occurs 0 with header line.
clear: tdynpread, record_tab.
refresh: tdynpread, record_tab.
export record_tab to memory id 'contrazao'.
set parameter id 'BUK' field /pws/zycbe001-bukrs.
...
...
dyname = sy-cprog
dynumb = '0301'
tables
dynpfields = tdynpread
exceptions
others = 8.
endmodule.
module consiste_instituicao input.
check not /PWS/ZYCBE001-INSTITUICAO is initial.
select single * from /pws/zyglt215
* >> Início da exclusão: MODULE CONSISTE_INSTITUICAO
where instituicao = /PWS/ZYCBE001-INSTITUICAO."#EC CI_NOFIELD
* << Fim da exclusão
* >> Início da inclusão: MODULE CONSISTE_INSTITUICAO
where instituicao = /pws/zycbe001-instituicao. "#EC CI_NOFIELD
* << Fim da inclusão
if sy-subrc ne 0.
message e061 with text-084.
endif.
endmodule.
* >> Início da inclusão:
module seta_matchcode_ordem input.
clear: itab_zyglt100, itab_result.
read table itab_zyglt100 with key zexit = 'CPT019' binary search.
if sy-subrc eq 0 and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
else.
v_matchcode = '/PWS/ZYCBA260'.
endif.
call function 'F4IF_FIELD_VALUE_REQUEST'
exporting
tabname = '/PWS/ZYCBE221'
fieldname = 'ORDEM'
searchhelp = v_matchcode
dynpprog = '/PWS/SAPMZYCB001'
dynpnr = '0207'
dynprofield = '/PWS/ZYCBE221-ORDEM'
tables
return_tab = itab_result
exceptions
others = 0.
endmodule.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001O01
...
endcase.
endloop.
endmodule.
module load_itab_comissao output.
perform cria_parcelas_comissao.
endmodule.
module status_0007 output.
set pf-status '0007'.
set titlebar '0007'.
endmodule.
* >> Início da inclusão:
module ponto_exit_cpt018 output.
clear itab_zyglt100.
if itab_zyglt100[] is initial.
v_syrepid = sy-repid.
call function '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'
exporting
i_codmod = 'E'
i_func = v_syrepid
tables
itab_zyglt100 = itab_zyglt100
exceptions
i_codmod_nao_encontrado = 1
i_func_nao_encontrado = 2
i_zexit_nao_encontrado = 3
others = 4.
endif.
read table itab_zyglt100 with key zexit = 'CPT018' binary search.
if sy-subrc eq 0 and not itab_zyglt100-zexit_ativa is initial.
perform (itab_zyglt100-formulario)
in program (itab_zyglt100-programa).
endif.
endmodule.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001TOP
...
v_codaux2 type /pws/zygle316-codaux2,
v_banco(10) type n,
v_conta(10) type c,
v_volta_part_conta(1) type c,
v_codaux3 type /pws/zygle316-codaux3.
constants: c_debito type c value 'D',
c_credito type c value 'C'.
data: v_mess type c.
data: v_dp(1) type c.
data: v_cont_cambio(06) type c .
* >> Início da inclusão:
data: v_pass(1) type c,
v_erro_2 .
* << Fim da inclusão
data: vg_tcode(15) type c,
vg_origem type c.
data: v_year like bkpf-gjahr,
v_repid like sy-repid,
v_codmod type c value 'E',
v_exit like /pws/zyglt100-zexit value 'CPT002'.
data: v_capital,
v_primeiro,
v_bco_cred type /pws/zycbe001-bcocred,
v_bconegoc type /pws/zycbe001-bconegoc,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB001X01
...
wa_zycbt136 LIKE itab_zycbt136,
wa_zycbt002 LIKE /pws/zycbt002,
wa_zycbt089 LIKE /pws/zycbt089.
DATA:
v_contabiliza TYPE c,
okcode LIKE sy-ucomm,
v_zuonr LIKE /pws/zycbe033-c_zuonr,
v_modo_bi.
DATA: itab_zycbe033 LIKE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,
itab_zycbt032 LIKE /pws/zycbt032 OCCURS 10 WITH HEADER LINE.
* >> Início da inclusão:
data: v_matchcode type shlpname.
data: begin of itab_result occurs 0.
include structure ddshretval.
data: end of itab_result.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYGL007I01
...
ENDIF.
IF v_rateio_cl1 = 'X'.
/pws/zycbt089-rateio_cl = 'X'.
ELSEIF v_rateio_cl2 = 'X'.
CLEAR /pws/zycbt089-rateio_cl.
ENDIF.
IF v_ctrl_ov1 = 'X'.
/pws/zycbt089-controle_ov = 'X'.
ELSEIF v_ctrl_ov2 = 'X'.
CLEAR /pws/zycbt089-controle_ov.
* >> Início da inclusão: MODULE SET_CAMPOS_119
clear: v_ov_obrig1,
/pws/zycbt089-cpo_ov_obrig.
v_ov_obrig2 = 'X'.
* << Fim da inclusão
ENDIF.
IF v_ov_obrig1 = 'X'.
/pws/zycbt089-cpo_ov_obrig = 'X'.
ELSEIF v_ov_obrig2 = 'X'.
CLEAR /pws/zycbt089-cpo_ov_obrig.
ENDIF.
ENDMODULE.
MODULE set_tpconta INPUT.
IF v_contaimp1 EQ 'X'.
MOVE '1' TO /pws/zyglt009-cont_impostos.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB001
------------------------------------------------------------------------
Modificado símbolo de texto:
Idioma: PT
Símbolo: 461
Texto: (47 caracteres)
"captações de Pré-Pagamento/Securitização/Trava."
Comprimento máximo: 47
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 505
Texto: (17 caracteres)
"Ordem selecionada"
Comprimento máximo: 17
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 506
Texto: (28 caracteres)
"já utilizada nas captações :"
Comprimento máximo: 28
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 507
Texto: (31 caracteres)
"já utilizada em sua totalidade."
Comprimento máximo: 132
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 508
Texto: (36 caracteres)
"Tipo Prorrogação P só permitida para"
Comprimento máximo: 36
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 509
Texto: (29 caracteres)
"Não é possivel contabilizar !"
Comprimento máximo: 29