Módulo: CÂMBIO FINANCEIRO
Funcionalidade: SISCOSERV
Data/Hora da Publicação: 14/08/2013 00:00:00
Data/Hora Última Alteração: 19/08/2013 11:18:58
Descrição da Nota: SISCOSERV - ASSOCIAÇÃO SISCOSERV - PRAZO PARA RAS/RVS E RP/RF
Sintoma
1) alteração da verificação do prazo de registro das operações no siscoserv em função de alteração
da legislação;
2) alteração do campo para busca da Data de pagamento/recebimento na associação;
3) a ajuda de pesquisa de Embarques de Importação na aba de Fat. Importação do programa de
Associação de Siscoserv está trazendo faturas incorretas
Solução
1) os programas foram alterados para considerar a data de vencimento o último dia do mês subsequente
as datas de início e de Pagamento/Recebimento;
2) o programa foi alterado pra buscar a data de lançamento do boleto
3) o programa foi ajustado para trazer corretamente as faturas de acordo com o tipo
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 13172 Data: 14/08/2013 Hora: 14:52:52
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 13172
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 9.0
Pacote : 00005
Agrupamento : 00161
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04798 - 00001 - 7.0 - 00003 - REMESSA - DA BASE CÁLCULO IMPOSTOS
06671 - 00002 - 7.0 - 00005 - REPATRIAÇÃO DE REMESSA
12604 - 00003 - 9.0 - 00002 - SISCOSERV
12650 - 00004 - 9.0 - 00002 - SISCOSERV
12811 - 00005 - 9.0 - 00003 - SISCOSERV
12878 - 00006 - 9.0 - 00004 - SISCOSERV - ASSOCIAÇÃO
12943 - 00007 - 9.0 - 00004 - CB - 999999 - SISCOSERV - REQUEST COMPLETA
13109 - 00008 - 9.0 - 00005 - SISCOSERV - NBS
13149 - 00009 - 9.0 - 00005 - SISCOERV - ASSOCIAÇÃO SISCOSERV
----------------------------------------------------------------------------------------------------
SISCOSERV - ASSOCIAÇÃO SISCOSERV - PRAZO PARA RAS/RVS E RP/RF
----------------------------------------------------------------------------------------------------
Palavras Chave:
SISCOSERV - ASSOCIAÇÃO SISCOSERV - FOLLOW UP FATURAS
PRAZO REGISTRO SISCOSERV
----------------------------------------------------------------------------------------------------
Objetos da nota:
VIED /PWS/ZYCAV009
FUNC /PWS/ZYCA_PRAZO_SISCOSERV
DYNP /PWS/SAPMZYGL007 0131
REPS /PWS/LZYCAGFF01
REPS /PWS/MZYCA011I01
REPS /PWS/MZYCA012F01
REPS /PWS/ZYCAR021
----------------------------------------------------------------------------------------------------
Modificações efetuadas em VIED /PWS/ZYCAV009
TABELAS/CONDIÇÕES JOIN
TABELAS:
Incluir a tabela /PWS/ZYCIT094 (deverá ser incluída como a primeira da lista, antes das tabelas já
existentes)
CONDIÇÕES JOIN:
Incluir as informações abaixo (as informações deverão ser incluídas no ínicio, antes das informações
já existentes)
TABELA NOME CPO = TABELA NOME CPO
/PWS/ZYCIT006 MANDT = /PWS/ZYCIT094 MANDT
/PWS/ZYCIT006 NRSEQCE = /PWS/ZYCIT094 NRSEQCE
CPOS. VISÃO
No campo NRPAGTO, alterar o nome da tabela para /PWS/ZYCIT094 e o nome do campo para NRSEQ
CONDIÇÕES DE SELEÇÃO
Incluir as informações abaixo na primeira linta (antes das informações já existentes)
TABELA: NOME CPO.: OPERADOR: VL COMP: AND/OR
/PWS/ZYCIT006 TPFATURA EQ '01' OR
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCA_PRAZO_SISCOSERV
CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYCA_PRAZO_SISCOSERV
CARACTERÍSTICAS
CLASSIFICAÇÃO:
GRUPO DE FUNÇÕES: /PWS/ZYCAGF
TEXTO BREVE: Verifica prazo para Registro da RAS/RVS e RF/RP
TIPO DE EXECUÇÃO:
(X) - MÓDULO DE FUNÇÃO NORMAL
(_) - MÓDULO DE ACESSO REMOTO
(_) - MÓDULO DE ATUALIZAÇÃO
(X) - INÍCIO IMEDIATO
(_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.
(_) - INÍC. RETARDADO
(_) - PROCES. CLOETIVO
DADOS GERAIS:
(_) - BLOQUEIO PROCESSO
(_) - GLOBAL
IMPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA VL. PROPOSTO OPCIONAL TRANSF. TEXT
I_BUKRS TYPE BUKRS ' ' ' ' ' ' Empresa
I_PROCESSO TYPE CHAR1 ' ' ' ' ' ' 1-> RAS/RVS - 2-> RP/RF
I_DATA_INI TYPE DATUM ' ' ' ' ' ' Data Inicial Operação /
Pagamento / Faturamento
EXPORTAÇÃO:
NOME PARAM. ATRIB. TIPO REFERÊNCIA TRANSF. TEXTO BREVE
E_PRAZO TYPE DATUM ' ' ' ' Prazo para Registro no Siscoserv
MODIFIC.:
NOME PARAM. ATRIB. TIPO REFERÊNCIA VL. PROPOSTO OPCIONAL TRANSF. TEXT
TABELAS:
NOME PARAM. ATRIB. TIPO REFERÊNCIA OPCIONAL TEXTO BREVE
EXCEÇÕES:
EXCEÇÃO TEXTO BREVE
TEXTO FONTE
* >> Início da inclusão:
FUNCTION /pws/zyca_prazo_siscoserv.
DATA: v_prz_ras_rvs TYPE /pws/zycbt007-prz_ras_rvs,
v_prz_rp_rf TYPE /pws/zycbt007-prz_rp_rf,
v_prazo_ini TYPE datum,
v_prazo_fim TYPE datum.
SELECT SINGLE prz_ras_rvs prz_rp_rf
FROM /pws/zycbt007
INTO (v_prz_ras_rvs, v_prz_rp_rf)
WHERE bukrs = i_bukrs.
IF sy-subrc NE 0.
SELECT SINGLE prz_ras_rvs prz_rp_rf
FROM /pws/zycbt007
INTO (v_prz_ras_rvs, v_prz_rp_rf).
ENDIF.
IF i_processo = '1'.
v_prazo_ini = i_data_ini + v_prz_ras_rvs.
ELSEIF i_processo = '2'.
v_prazo_ini = i_data_ini + v_prz_rp_rf.
ENDIF.
PERFORM prazo_final USING v_prazo_ini
CHANGING e_prazo.
ENDFUNCTION.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYGL007 0131
MODIFICAR TEXTO "/PWS/ZYCBT007-PRZ_RAS_RVS"
Comprimento Visível 48
Texto Tolerância para entrega das RAS/RVS no Siscoser
MODIFICAR TEXTO "/PWS/ZYCBT007-PRZ_RP_RF"
Comprimento Visível 46
Texto Tolerância para entrega das RF/RP no Siscoserv
MODIFICAR FRAME "Q_SISCOSERV"
Texto Tolerância SISCOSERV
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/LZYCAGFF01
...
move 'it_xml[] = it_xml_aux.' to wa_prog.
append wa_prog to itab_prog.
clear wa_prog.
move 'endform.' to wa_prog.
append wa_prog to itab_prog.
generate subroutine pool itab_prog name v_program message v_mess.
if sy-subrc eq 0 and not v_program is initial.
perform converte_xml in program (v_program) tables it_xml.
endif.
endform.
* >> Início da inclusão:
form prazo_final using p_prazo_ini
changing p_prazo.
data: v_data type datum,
v_dia type p value '6',
v_mes type i.
v_data(4) = p_prazo_ini(4).
v_data+4(2) = p_prazo_ini+4(2) + 2.
v_data+6(2) = '01'.
if v_data+4(2) > '12'.
v_mes = v_data+4(2) - 12.
v_data+4(2) = v_mes.
v_data(4) = v_data(4) + 1.
endif.
v_data = v_data - 1.
while v_dia = '6' or v_dia = '7'.
call function '/PWS/ZYCB_DIA_DA_SEMANA'
exporting
datum = v_data
importing
wotnr = v_dia
exceptions
others = 0.
if v_dia = '6' or v_dia = '7'.
v_data = v_data - 1.
endif.
endwhile.
p_prazo = v_data.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA011I01
...
when 'V'.
v_mconame = 'DEBI'.
endcase.
call function 'G_HELP_VALUES_GET'
exporting
mc_object = v_mconame
importing
selected_value = /pws/zycat030-bukrs_ext.
endmodule.
module atualiza_itab_oper input.
* >> Início da exclusão: MODULE ATUALIZA_ITAB_OPER
data: v_prazo type i,
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITAB_OPER
data: v_prazo type datum,
* << Fim da inclusão
v_prz_ras_rvs type /pws/zycbt007-prz_ras_rvs.
move-corresponding /pws/zycat031 to itab_zycat031t.
move: v_mark to itab_zycat031t-mark,
/pws/zycat030-nrseq to itab_zycat031t-nrseq,
/pws/zycat030-waers to itab_zycat031t-waers.
if v_cria = 'X' or /pws/zycat030-n_rvs_ras is initial.
clear itab_zycat031t-origem.
else.
read table itab_zycat031_ant into wa_zycat031
with key nrseq = itab_zycat031t-nrseq
...
...
append itab_zycat031t.
endif.
endif.
if v_okcode ne 'BACK' and
/pws/zycat030-status ne 'PS' and
/pws/zycat030-status ne 'EX' and
/pws/zycat030-status ne 'ES'.
read table itab_zycat031t index tc_oper-current_line.
check itab_zycat031t-msg is initial.
check not /pws/zycat031-data_ini is initial.
* >> Início da exclusão: MODULE ATUALIZA_ITAB_OPER
v_prazo = sy-datum - /pws/zycat031-data_ini.
select single prz_ras_rvs
from /pws/zycbt007
into v_prz_ras_rvs
where bukrs = /pws/zycat030-bukrs.
if v_prazo > v_prz_ras_rvs.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITAB_OPER
CALL FUNCTION '/PWS/ZYCA_PRAZO_SISCOSERV'
EXPORTING
i_bukrs = /pws/zycat030-bukrs
i_processo = '1'
i_data_ini = /pws/zycat031-data_ini
IMPORTING
E_PRAZO = v_prazo.
if sy-datum > v_prazo.
* << Fim da inclusão
message i061 with text-i23 /pws/zycat031-operacao.
itab_zycat031t-msg = 'X'.
else.
* >> Início da exclusão: MODULE ATUALIZA_ITAB_OPER
v_prz_ras_rvs = v_prz_ras_rvs - 10.
if v_prazo >= v_prz_ras_rvs.
v_prz_ras_rvs = v_prz_ras_rvs + 10.
v_prazo = v_prz_ras_rvs - v_prazo.
message i061 with text-i21 v_prazo
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITAB_OPER
v_prazo = v_prazo - 10.
if sy-datum >= v_prazo.
v_prazo = v_prazo + 10.
v_prz_ras_rvs = sy-datum - v_prazo.
message i061 with text-i21 v_prz_ras_rvs
* << Fim da inclusão
text-i22 /pws/zycat031-operacao.
itab_zycat031t-msg = 'X'.
endif.
endif.
modify itab_zycat031t index tc_oper-current_line.
endif.
endmodule.
module carrega_valor_saldo input.
clear: /pws/zycat030-valor, /pws/zycat030-saldo.
loop at itab_zycat031t where status ne 'EX'
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA012F01
...
delete itab_zycat039_r.
endif.
endloop.
clear v_okcode.
endcase.
endform.
form atualiza_itab tables p_itab_zycat039 structure itab_zycat039_r
using p_wa_zycat039 structure /pws/zycat039
p_tc type cx_tableview.
data: v_pago value 'X',
* >> Início da exclusão: FORM ATUALIZA_ITAB
v_prazo type i,
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ITAB
v_prazo TYPE datum,
* << Fim da inclusão
v_processo(20) type c,
v_prz_rp_rf type /pws/zycbt007-prz_rp_rf.
perform verifica_associacao changing p_wa_zycat039
v_pago.
check v_pago = 'X'.
move-corresponding p_wa_zycat039 to p_itab_zycat039.
move: v_mark to p_itab_zycat039-mark,
/pws/zycat031-nrseq to p_itab_zycat039-nrseq,
/pws/zycat031-operacao to p_itab_zycat039-operacao.
if not p_tc-current_line is initial.
...
...
/pws/zycat031-nrseq to p_itab_zycat039-nrseq,
/pws/zycat031-operacao to p_itab_zycat039-operacao.
append p_itab_zycat039.
endif.
check p_itab_zycat039-msg is initial and
not p_itab_zycat039-dt_pg_rec is initial.
if v_okcode ne 'BACK' and
p_itab_zycat039-status ne 'PS' and
p_itab_zycat039-status ne 'EX' and
p_itab_zycat039-status ne 'ES'.
* >> Início da exclusão: FORM ATUALIZA_ITAB
v_prazo = sy-datum - p_itab_zycat039-dt_pg_rec.
* << Fim da exclusão
if not p_itab_zycat039-remessa is initial.
v_processo = p_itab_zycat039-remessa.
elseif not p_itab_zycat039-fat_comis is initial.
v_processo = p_itab_zycat039-fat_comis.
elseif not p_itab_zycat039-fat_imp is initial.
v_processo = p_itab_zycat039-fat_imp.
elseif not p_itab_zycat039-fatura is initial.
v_processo = p_itab_zycat039-fatura.
endif.
* >> Início da exclusão: FORM ATUALIZA_ITAB
if v_prz_rp_rf is initial.
select single prz_rp_rf
from /pws/zycbt007
into v_prz_rp_rf
where bukrs = /pws/zycat030-bukrs.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ITAB
IF p_itab_zycat039-dt_pg_rec >= /pws/zycat031-data_ini.
CALL FUNCTION '/PWS/ZYCA_PRAZO_SISCOSERV'
EXPORTING
i_bukrs = /pws/zycat030-bukrs
i_processo = '2'
i_data_ini = p_itab_zycat039-dt_pg_rec
IMPORTING
e_prazo = v_prazo.
ELSE.
CALL FUNCTION '/PWS/ZYCA_PRAZO_SISCOSERV'
EXPORTING
i_bukrs = /pws/zycat030-bukrs
i_processo = '2'
i_data_ini = /pws/zycat031-data_ini
IMPORTING
e_prazo = v_prazo.
* << Fim da inclusão
endif.
* >> Início da exclusão: FORM ATUALIZA_ITAB
if v_prazo > v_prz_rp_rf.
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ITAB
IF sy-datum > v_prazo.
* << Fim da inclusão
message i061 with text-i20 v_processo.
p_itab_zycat039-msg = 'X'.
else.
* >> Início da exclusão: FORM ATUALIZA_ITAB
v_prz_rp_rf = v_prz_rp_rf - 10.
if v_prazo >= v_prz_rp_rf.
v_prz_rp_rf = v_prz_rp_rf + 10.
v_prazo = v_prz_rp_rf - v_prazo.
message i061 with text-i18 v_prazo
* << Fim da exclusão
* >> Início da inclusão: FORM ATUALIZA_ITAB
v_prazo = v_prazo - 10.
IF sy-datum >= v_prazo.
v_prazo = v_prazo + 10.
v_prz_rp_rf = sy-datum - v_prazo.
MESSAGE i061 WITH text-i18 v_prz_rp_rf
* << Fim da inclusão
text-i19 v_processo.
p_itab_zycat039-msg = 'X'.
endif.
endif.
if not p_tc-current_line is initial.
modify p_itab_zycat039 index p_tc-current_line.
else.
modify p_itab_zycat039 index 1.
endif.
endif.
...
...
from /pws/zycbt124
into (p_bukrs, p_bukext, p_wa_zycat039-num_nf,
p_wa_zycat039-moeda, p_wa_zycat039-valor)
where nrseq = p_wa_zycat039-remessa.
if sy-subrc ne 0.
message i061 with text-i08 p_wa_zycat039-remessa
text-i09.
clear p_pago.
exit.
endif.
* >> Início da exclusão: FORM VALIDA_REMESSA
select single nrseq dtboleto
* << Fim da exclusão
* >> Início da inclusão: FORM VALIDA_REMESSA
SELECT SINGLE nrseq dtcredpr
* << Fim da inclusão
from /pws/zycbt031
into (v_nrseq, p_wa_zycat039-dt_pg_rec)
where mdcorresp = 'CP'
and nrcorresp = p_wa_zycat039-remessa.
if sy-subrc ne 0.
message i061 with text-i12 text-i11.
clear p_pago.
exit.
endif.
select single bco_ccme
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCAR021
...
wa_zycat031-waers TO wa_alv-waers,
wa_zycat031-valor TO wa_alv-valor,
wa_zycat031-saldo TO wa_alv-saldo,
wa_zycat031-status TO v_domvalue,
wa_zycat030-bukrs_ext TO wa_alv-bukrs_ext.
IF wa_zycat030-tp_processo = 'A'.
wa_alv-tp_processo = text-002.
ELSE.
wa_alv-tp_processo = text-003.
ENDIF.
* >> Início da exclusão: FORM MONTA_DADOS
SELECT SINGLE prz_ras_rvs
FROM /pws/zycbt007
INTO v_prz_ras_rvs
WHERE bukrs = wa_alv-bukrs.
wa_alv-prazo_web = wa_alv-data_ini + v_prz_ras_rvs.
* << Fim da exclusão
* >> Início da inclusão: FORM MONTA_DADOS
call function '/PWS/ZYCA_PRAZO_SISCOSERV'
exporting
i_bukrs = wa_alv-bukrs
i_processo = '1'
i_data_ini = wa_alv-data_ini
importing
e_prazo = wa_alv-prazo_web.
* << Fim da inclusão
IF wa_zycat030-tp_processo = 'V'.
READ TABLE itab_kna1 WITH KEY kunnr = wa_zycat030-bukrs_ext.
IF sy-subrc EQ 0.
wa_alv-name1 = itab_kna1-name1.
ENDIF.
ELSE.
READ TABLE itab_lfa1 WITH KEY lifnr = wa_zycat030-bukrs_ext.
IF sy-subrc EQ 0.
wa_alv-name1 = itab_lfa1-name1.
ENDIF.
...