Módulo: CÂMBIO EXPORTAÇÃO
Funcionalidade: SML - Sistema de Pagto. Moeda Inter
Data/Hora da Publicação: 24/07/2009 00:00:00
Data/Hora Última Alteração: 18/02/2011 17:51:12
Descrição da Nota: SML-SISTEMA DE MOEDA LOCAL-CONSIDERAR SÓ BRL-VME-ATUALIZAÇÃO ZYCBT030
Sintoma
SML - esta permitindo incluir faturas ou criar pagamento antecipado com moeda estrangeira.
Valores Mantidos no Exterior - esta atualizando incorretamente o campo /pws/zycbt030-vlsltrans
quando a fatura já possui liquidação em andamento
Solução
SML - buscar moeda nacional(/pws/zycbt007-waersb) e fazer com que as faturas ou o pagamento
antecipado se enquadre nesta moeda.
Valores Mantidos no Exterior - verificar o que já foi baixado pela liquidação em andamento no campo
/pws/zycbt030-vlsltrans e só baixar novamente dos valores mantidos no exterior o que excedeu este
valor.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 08733 Data: 24/07/2009 Hora: 17:48:59
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 08733
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00010
Agrupamento : 00106
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
07691 - 00001 - 7.0 - 00007 - VALORES MANTIDOS NO EXTERIOR - ATUALIZAÇÃO SALDO APÓS F-02
07931 - 00002 - 7.0 - 00008 - DA - SISTEMA DE PAGAMENTOS EM MOEDA LOCAL E ASSOCIAÇÃO(SML)
08195 - 00003 - 7.0 - 00008 - VALORES MANTIDOS NO EXTERIOR - BAIXA DE COMISSÃO DE AGENTE CG NA
----------------------------------------------------------------------------------------------------
SML-SISTEMA DE MOEDA LOCAL-CONSIDERAR SÓ BRL-VME-ATUALIZAÇÃO ZYCBT030
----------------------------------------------------------------------------------------------------
Palavras Chave:
SML SISTEMA DE MOEDA LOCAL CONSIDERAR SÓ BRL VME ATUALIZAÇÃO ZYCBT030
VALORES MANTIDOS NO EXTERIOR COM LIQUIDAÇÃO EM ANDAMENTO ZYCBT030
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCB034 0110
FUNC /PWS/ZYCBA275
REPS /PWS/MZYCB034F01
REPS /PWS/MZYCB034I01
REPS /PWS/MZYCB034TOP
REPT /PWS/SAPMZYCB034
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCB034 0110
MODIFICAR LÓGICA DE PROCESSAMENTO TELA 0110
...
verificar_linhas,
calcula_total_destino.
LOOP WITH CONTROL tc_op.
MODULE: preenche_tc_op.
ENDLOOP.
PROCESS AFTER INPUT.
MODULE:
drilldown.
LOOP WITH CONTROL tc_op.
FIELD /pws/zycbe226-nrinvoic MODULE verifica_processo.
* >> Início da inclusão:
field /pws/zycbe226-bukrs.
field /pws/zycbe226-waers module verifica_moeda.
* << Fim da inclusão
MODULE: verifica_vlr_exterior,
verifica_dt_limite,
verifica_periodo_contabil,
atualiza_tc_op.
ENDLOOP.
module preenche_table_control.
MODULE: user_command,
user_command_exit AT EXIT-COMMAND.
PROCESS ON VALUE-REQUEST.
FIELD /pws/zycbe226-nrinvoic MODULE get_invoice.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCBA275
FUNCTION /pws/zycba275.
TYPE-POOLS:
shlp.
TYPES:
BEGIN OF t_s_invoice,
nrinvoic TYPE /pws/zycbv216-nrinvoic,
nrparcf TYPE /pws/zycbv216-nrparcf,
gsberf TYPE /pws/zycbv216-gsberf,
bukrs TYPE /pws/zycbv216-bukrs,
* >> Início da inclusão: FUNCTION /PWS/ZYCBA275
waers TYPE /pws/zycbv216-waers,
* << Fim da inclusão
vlavinc TYPE /pws/zycbv216-vlavinc,
vlslliq TYPE /pws/zycbv216-vlslliq,
vlsltrans TYPE /pws/zycbv216-vlslliq,
saldo TYPE /pws/zycbv216-vlslliq,
END OF t_s_invoice,
BEGIN OF t_s_zycbt089,
bukrs TYPE /pws/zycbt089-bukrs,
retencao_fatura TYPE /pws/zycbt089-retencao_fatura,
END OF t_s_zycbt089,
BEGIN OF t_s_zycbt226,
...
...
saldo TYPE /pws/zycbt209-saldo,
END OF t_s_zycbt209,
t_t_invoice TYPE STANDARD TABLE OF t_s_invoice
WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf,
t_t_zycbt089 TYPE SORTED TABLE OF t_s_zycbt089
WITH UNIQUE KEY bukrs,
t_t_zycbt226 TYPE SORTED TABLE OF t_s_zycbt226
WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf,
t_t_zycbt209 TYPE SORTED TABLE OF t_s_zycbt209
WITH NON-UNIQUE KEY nrinvoic nrparcf gsberf.
* >> Início da inclusão: FUNCTION /PWS/ZYCBA275
DATA: v_sml TYPE c,
v_tabix TYPE sy-tabix.
DATA: BEGIN OF itab_zycbt007 OCCURS 0.
INCLUDE STRUCTURE /pws/zycbt007.
DATA: END OF itab_zycbt007.
* << Fim da inclusão
DATA:
itab_invoice TYPE t_t_invoice,
itab_zycbt089 TYPE t_t_zycbt089,
itab_zycbt226 TYPE t_t_zycbt226,
itab_zycbt226_soma LIKE itab_zycbt226, "#EC *
itab_zycbt209 TYPE t_t_zycbt209,
v_fieldname TYPE dfies-lfieldname,
v_nrinvoice TYPE /pws/zycbv216-nrinvoic, "#EC *
v_index TYPE sy-tabix, "#EC *
v_nrparcf TYPE /pws/zycbv216-nrparcf, "#EC *
...
...
<fs_zycbt209> LIKE LINE OF itab_zycbt209,
<fs_zycbt226> LIKE LINE OF itab_zycbt226. "#EC *
CLEAR callcontrol-maxrecords.
IF callcontrol-step = 'DISP'.
READ TABLE shlp_tab INDEX 1 ASSIGNING <fs_shlp>.
CHECK <fs_shlp> IS ASSIGNED.
LOOP AT <fs_shlp>-fielddescr ASSIGNING <fs_fielddescr>.
CHECK: <fs_fielddescr>-fieldname = 'NRINVOIC' OR
<fs_fielddescr>-fieldname = 'NRPARCF' OR
<fs_fielddescr>-fieldname = 'GSBERF' OR
* >> Início da inclusão: FUNCTION /PWS/ZYCBA275
<fs_fielddescr>-fieldname = 'WAERS' OR
* << Fim da inclusão
<fs_fielddescr>-fieldname = 'VLAVINC' OR
<fs_fielddescr>-fieldname = 'VLSLLIQ' OR
<fs_fielddescr>-fieldname = 'BUKRS' OR
<fs_fielddescr>-fieldname = 'VLSLTRANS' OR
<fs_fielddescr>-fieldname = 'SALDO'.
v_fieldname = <fs_fielddescr>-fieldname.
CALL FUNCTION 'F4UT_PARAMETER_VALUE_GET'
EXPORTING
parameter = <fs_fielddescr>-fieldname
fieldname = v_fieldname
...
...
results_tab = itab_invoice
CHANGING
shlp = shlp
callcontrol = callcontrol
EXCEPTIONS
parameter_unknown = 0
OTHERS = 0.
IF sy-subrc <> 0.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FUNCTION /PWS/ZYCBA275
IMPORT v_sml FROM MEMORY ID 'SML'.
SELECT * FROM /pws/zycbt007 INTO TABLE itab_zycbt007.
IF NOT v_sml IS INITIAL.
LOOP AT itab_invoice ASSIGNING <fs_invoice>.
v_tabix = sy-tabix.
READ TABLE itab_zycbt007 WITH KEY bukrs = <fs_invoice>-bukrs.
IF sy-subrc NE 0 OR
( sy-subrc EQ 0 AND itab_zycbt007-waersb IS INITIAL ).
DELETE itab_invoice.
DELETE record_tab INDEX v_tabix.
CONTINUE.
ELSE.
IF <fs_invoice>-waers NE itab_zycbt007-waersb.
DELETE itab_invoice.
DELETE record_tab INDEX v_tabix.
CONTINUE.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
* << Fim da inclusão
SELECT
nrinvoic
nrparcf
gsberf
saldo
FROM /pws/zycbt209
INTO TABLE itab_zycbt209
FOR ALL ENTRIES IN itab_invoice
WHERE bukrs EQ itab_invoice-bukrs
AND nrinvoic EQ itab_invoice-nrinvoic. "#EC CI_NOFIRST
...
...
shlp = shlp
callcontrol = callcontrol
EXCEPTIONS
parameter_unknown = 0
OTHERS = 0.
IF sy-subrc <> 0.
ENDIF.
EXPORT itab_invoice[] TO MEMORY ID 'itab_invoice_275'.
ELSEIF callcontrol-step = 'RETURN'.
EXPORT record_tab[] TO MEMORY ID 'mcx_record_tab_275'.
* >> Início da inclusão: FUNCTION /PWS/ZYCBA275
ENDIF.
IF NOT v_sml IS INITIAL.
CLEAR v_sml.
EXPORT v_sml TO MEMORY ID 'SML'.
* << Fim da inclusão
ENDIF.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034F01
...
perform atualiza_saldos_sml using ' '.
read table itab_zycbt030 into wa_zycbt030 with key
nrinvoic = <fs_op>-nrinvoic
nrparcf = <fs_op>-nrparcf
gsberf = <fs_op>-gsberf.
if sy-subrc = 0.
if sy-tcode+13(3) = 'SML' and v_wrbtr > 0.
wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans -
v_wrbtr.
else.
* >> Início da exclusão: FORM DOC_OP
wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans -
<fs_op>-vlr_exterior.
* << Fim da exclusão
* >> Início da inclusão: FORM DOC_OP
clear: v_dif, v_vl_liqand.
loop at itab_zycbt209 into wa_zycbt209
where nrinvoic = <fs_op>-nrinvoic
and nrparcf = <fs_op>-nrparcf
and gsberf = <fs_op>-gsberf.
v_vl_liqand = v_vl_liqand + wa_zycbt209-vlme.
endloop.
if <fs_op>-vlr_exterior > v_vl_liqand.
v_dif = <fs_op>-vlr_exterior - v_vl_liqand.
endif.
wa_zycbt030-vlsltrans = wa_zycbt030-vlsltrans - v_dif.
* << Fim da inclusão
endif.
if wa_zycbt030-vlsltrans < 0.
v_wrbtr = wa_zycbt030-vlsltrans * ( -1 ).
clear wa_zycbt030-vlsltrans.
endif.
update /pws/zycbt030
set vlsltrans = wa_zycbt030-vlsltrans
where nrinvoic = wa_zycbt030-nrinvoic
and nrparcf = wa_zycbt030-nrparcf
and gsberf = wa_zycbt030-gsberf.
...
...
fielddescr type dfies occurs 0,
fieldprop type ddshfprop occurs 0,
selopt type ddshselopt occurs 0,
end of shlp_descr_t,
begin of t_s_invoice.
types:
nrinvoic type /pws/zycbv216-nrinvoic,
nrparcf type /pws/zycbv216-nrparcf,
gsberf type /pws/zycbv216-gsberf,
bukrs type /pws/zycbv216-bukrs,
* >> Início da inclusão: FORM GET_INVOICE
waers type /pws/zycbv216-waers,
* << Fim da inclusão
vlavinc type /pws/zycbv216-vlavinc,
vlslliq type /pws/zycbv216-vlslliq,
vlsltrans type /pws/zycbv216-vlsltrans,
saldo type /pws/zycbv216-vlslliq,
end of t_s_invoice,
t_t_invoice type standard table of t_s_invoice
with non-unique key nrinvoic nrparcf gsberf.
data: itab_invoice type t_t_invoice,
itab_invoice_aux type t_t_invoice.
data: begin of itab_result occurs 0.
...
...
exit.
endif.
if sy-tcode = c_transacao_a or
sy-tcode = c_transacao_e
or sy-tcode = c_trans_sml_a
or sy-tcode = c_trans_sml_e.
l_display = 'X'.
else.
l_display = ' '.
endif.
* >> Início da inclusão: FORM GET_INVOICE
if sy-tcode+13(3) = 'SML'.
v_sml = 'X'.
export v_sml to memory id 'SML'.
endif.
* << Fim da inclusão
call function 'F4IF_FIELD_VALUE_REQUEST'
exporting
tabname = '/PWS/ZYCBE226'
fieldname = 'NRINVOIC'
searchhelp = '/PWS/ZYCBA275'
multiple_choice = 'X'
display = l_display
tables
return_tab = itab_result
exceptions
...
...
check sy-subrc eq 0 and
l_display eq space.
import record_tab from memory id 'mcx_record_tab_275'.
check sy-subrc eq 0.
import itab_invoice from memory id 'itab_invoice_275'.
free memory id: 'mcx_record_tab_275',
'itab_invoice_275'.
call function 'DYNP_GET_STEPL'
importing
povstepl = v_line.
* >> Início da inclusão: FORM GET_INVOICE
if sy-tcode+13(3) = 'SML'.
clear v_sml.
export v_sml to memory id 'SML'.
endif.
* << Fim da inclusão
do v_line times.
clear tdynpread.
refresh tdynpread.
tdynpread-fieldname = '/PWS/ZYCBE226-NRINVOIC'.
tdynpread-stepl = v_line - 1.
append tdynpread.
call function 'DYNP_VALUES_READ'
exporting
dyname = '/PWS/SAPMZYCB034'
dynumb = '0110'
...
...
where nrinvoic in nrin
and gsberf in gsbe
and fkdat in fkda
and kunag in kuna
and dtvencto in dtve
and dtbl in dtbl
and inco1 in inco
and nrre in nrre
and nrsd in nrsd
and status eq space.
* >> Início da inclusão: FORM SELECIONAR_ZYCBT017
if sy-tcode+13(3) = 'SML'.
loop at itab_zycbt007 into wa_zycbt007
where not bukrs is initial.
exit.
endloop.
if sy-subrc ne 0 or
( sy-subrc eq 0 and wa_zycbt007-waersb is initial ).
message i061 with text-m51.
refresh itab_zycbt017_aux.
else.
delete itab_zycbt017_aux where waers ne wa_zycbt007-waersb.
endif.
endif.
* << Fim da inclusão
describe table itab_zycbt017_aux lines v_nlin.
loop at itab_zycbt017_aux.
itab_zycbt017_aux-v_fsaldo = 'X'.
modify itab_zycbt017_aux index sy-tabix.
itab_zycbt226_aux-bukrs = itab_zycbt017_aux-bukrs .
itab_zycbt226_aux-nrinvoic = itab_zycbt017_aux-nrinvoic .
itab_zycbt226_aux-gsberf = itab_zycbt017_aux-gsberf .
itab_zycbt226_aux-kunag = itab_zycbt017_aux-kunag .
itab_zycbt226_aux-nrparcf = itab_zycbt017_aux-nrparcf .
itab_zycbt226_aux-vlavinc = itab_zycbt017_aux-vlavinc.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034I01
...
ENDIF.
CALL FUNCTION 'DYNP_VALUES_UPDATE'
EXPORTING
dyname = sy-cprog
dynumb = '0301'
TABLES
dynpfields = tdynpread
EXCEPTIONS
OTHERS = 8.
ENDMODULE.
* >> Início da inclusão:
MODULE verifica_moeda INPUT.
IF sy-tcode = c_trans_sml_c OR
sy-tcode = c_trans_sml_a.
READ TABLE itab_zycbt007 INTO wa_zycbt007
WITH KEY bukrs = /pws/zycbe226-bukrs.
IF sy-subrc NE 0 OR
( sy-subrc EQ 0 AND wa_zycbt007-waersb IS INITIAL ).
MESSAGE e061 WITH text-m51.
ELSE.
IF /pws/zycbe226-waers NE wa_zycbt007-waersb.
MESSAGE e061 WITH text-m52.
ENDIF.
ENDIF.
ENDIF.
ENDMODULE.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCB034TOP
...
v_text_bco_cc(22) type c,
v_text_descr_bco_cc(25) type c,
v_wrbtr type /pws/zycbt030-vlsltrans,
ok_code type sy-ucomm,
v_ultimo_nrseq type /pws/zycbe226-nrseq,
v_novo_nrseq type /pws/zycbe226-nrseq,
v_modo_bi(1) type c,
v_desm_cli(1) type c,
v_desm_liqand(1) type c,
v_sld_liq_and type wrbtr,
* >> Início da inclusão:
v_sml TYPE c,
v_vl_liqand TYPE /pws/zycbt209-vlme,
v_dif TYPE /pws/zycbt209-vlme,
* << Fim da inclusão
v_belnr_est_f02 type /pws/zycbt226-belnr_op,
v_dtlancto_est_f02 type /pws/zycbt226-dtlancto,
v_total_30 type wrbtr,
v_total_70 type wrbtr,
v_msg_previsto(74) type c, "#EC NEEDED
opt_origem_embarque(1) type c,
opt_origem_pagantec(1) type c,
opt_destino_30(1) type c,
opt_destino_70(1) type c,
v_mark(1) type c,
v_icone type icons-text,
v_tela_help type sy-dynnr value '0052'. "#EC NEEDED
data: v_adm(1) type c.
data:
v_codaux type /pws/zygle316-codaux1,
v_codaux1 type /pws/zygle316-codaux1,
v_codaux2 type /pws/zygle316-codaux2,
v_codaux3 type /pws/zygle316-codaux3,
v_conta type /pws/zycbe226-conta_contab,
v_bco_cab type /pws/zycbe134-bcocred.
data: v_vlme type /pws/zycet013-vlme,
v_belnr type /pws/zycet013-belnr.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCB034
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: M51
Texto: (50 caracteres)
"Moeda Nacional não informada nos parâmetros gerais"
Comprimento máximo: 50
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: M52
Texto: (30 caracteres)
"Só é permitido moeda nacional."
Comprimento máximo: 30