Módulo: DOC. IMPORTAÇÃO
Funcionalidade: DI
Data/Hora da Publicação: 29/11/2012 00:00:00
Data/Hora Última Alteração: 16/04/2014 09:01:10
Descrição da Nota: QUEBRA DE RATEIO POR ADIÇÕES USANDO QUANTIDADE PARCIAL DOS ITENS
Sintoma
Quebra de rateio por adições usando quantidade parcial dos itens
Solução
Criar tabela e lógica para rateio por itens.
9.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 12695 Data: 29/11/2012 Hora: 16:08:04
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 12695
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 9.0
Pacote : 00002
Agrupamento : 00138
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
12520 - 00001 - 9.0 - 00001 - CRIADO O TRATAMENTO PARA RATEIO POR AGRUPAMENTOS
12569 - 00002 - 9.0 - 00002 - ERRO AO RATEAR VALORES PARA MIRO
12599 - 00003 - 9.0 - 00002 - ERRO NO RATEIO DE DESPESA NÃO POSSUEM AGRUPAMENTO NA ANA
12626 - 00004 - 9.0 - 00002 - AO DAR ERRO, NÃO EXIBE MENSAGEM COMPLETA - AGRUPAMENTO - PRESTAÇÃ
----------------------------------------------------------------------------------------------------
QUEBRA DE RATEIO POR ADIÇÕES USANDO QUANTIDADE PARCIAL DOS ITENS
----------------------------------------------------------------------------------------------------
Palavras Chave:
RATEIO - ADIÇÕES - ANA - ITENS - AGRUPAMENTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
TABL /PWS/ZYCIT533
TABL /PWS/ZYCIE533
FUNC /PWS/ZYCI_RATEIO_CUSTO
FUNC /PWS/ZYCI_CALCULA_DESPESAS_DI
CUAD /PWS/SAPMZYCI085
DYNP /PWS/SAPMZYCI085 0100
DYNP /PWS/SAPMZYCI085 0103
REPS /PWS/MZYCI003I01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI001F02
REPS /PWS/MZYCI003O01
REPS /PWS/MZYCI003F03
REPS /PWS/MZYCI085X01
REPS /PWS/MZYCI085TOP
REPS /PWS/MZYCI085O01
REPS /PWS/MZYCI085I01
REPS /PWS/MZYCI085F01
REPS /PWS/MZYCI059F01
REPS /PWS/MZYCI003X01
REPT /PWS/SAPMZYCI001
REPT /PWS/SAPMZYCI085
REPT /PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT533
*Criar a tabela /PWS/ZYCIT533
DESCRIÇÃO BREVE: CI - Itens do Pedido do Agrupamento
CARACTERÍSTICAS
CATEGORIA DA TABELA: Tabela transparente
CLASSE DE ENTREGA: A Tabela de aplicação (dados mestre e de movimento)
(X) - ATUALIZAÇÃO DE TABELAS PERMITIDA
CAMPOS NOVOS
CAMPOS: TP. CAMPO CH: INI:
MANDT MANDT X X
NRSEQ /PWS/ZYCIL001 X X
EBELN EBELN X X
EBELP EBELP X X
AGRUPAMENTO CHAR20 X X
MATERIAL MATNR
DESCR MAKTX
QTD_AGRUP /PWS/ZYCIL193
OPÇÕES TÉCNICAS
TIPO DE DADOS: APPL0 Dados mestre, tabelas transparent
CATEGOR. TAMANHO: 0 Registros dados esperados: 0 Até 5300.
(X) - AR. BUFFER NÃO PERMITIDO
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIE533
*Criar a estrutura /PWS/ZYCIE533
DESCRIÇÃO BREVE: CI - Itens do Pedido do Agrupamento
COMPONENTES NOVOS
COMPONENTE: TP. COMP: TAB.REF.: CPO.REF.: AJUD. PESQU.
.INCLUDE /PWS/ZYCIT533
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
t_itens-vlfob = itab_zycit100a-vlfob .
t_itens-vlfre = itab_zycit100a-vlfre .
t_itens-vlseg = itab_zycit100a-vlseg .
ENDIF.
APPEND t_itens.
ENDIF.
t_zycit049-tpdesp = itab_despesa-tpdesp.
t_zycit049-vldp = itab_despesa-netpr .
t_zycit049-waers = itab_despesa-waers .
APPEND t_zycit049 .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF wa_zycie085 IS INITIAL.
wa_zycie085 = /pws/zycie085.
ENDIF.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'
EXPORTING
nrseq = /pws/zycie001-nrseq
/pws/zycie085 = wa_zycie085
TABLES
t_zycit049 = t_zycit049
t_itens = t_itens
CHANGING
v_agrup = v_rateio.
IF v_rateio = 'X' .
...
...
t_itens-vlfob = itab_zycit100a-vlfob .
t_itens-vlfre = itab_zycit100a-vlfre .
t_itens-vlseg = itab_zycit100a-vlseg .
ENDIF.
APPEND t_itens.
ENDIF.
t_zycit049-tpdesp = itab_despesa-tpdesp.
t_zycit049-vldp = itab_despesa-netpr .
t_zycit049-waers = itab_despesa-waers .
APPEND t_zycit049 .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF wa_zycie085 IS INITIAL.
wa_zycie085 = /pws/zycie085.
ENDIF.
* << Fim da inclusão
CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'
EXPORTING
nrseq = /pws/zycie001-nrseq
/pws/zycie085 = wa_zycie085
TABLES
t_zycit049 = t_zycit049
t_itens = t_itens
CHANGING
v_agrup = v_rateio.
IF v_rateio = 'X' .
...
...
ENDIF.
IF NOT itab_zycit036-vlreal IS INITIAL.
IF v_waers IS INITIAL.
itab_zycit036-waers_real = /pws/zycbt007-waersb.
ELSE.
itab_zycit036-waers_real = v_waers.
ENDIF.
ENDIF.
ELSE.
IF v_di = 'AL' AND v_agrup = 'X' .
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
IF /pws/zycie085 IS INITIAL.
SELECT SINGLE * FROM /pws/zycit085
INTO wa_zycie085
WHERE nrseqdi EQ itab_zycit100a-nrseqdi.
ENDIF.
* << Fim da exclusão
t_itens-nrseqdi = itab_zycit003-nrseq.
t_itens-ebeln = itab_zycit003-ebeln .
t_itens-ebelp = itab_zycit003-ebelp .
APPEND t_itens.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
t_zycit049-tpdesp = 'FRETEI'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
t_zycit049-codigo = 'FRETEI'.
* << Fim da inclusão
t_zycit049-vldp = v_total .
IF v_waers IS INITIAL.
t_zycit049-waers = /pws/zycbt007-waersb.
ELSE.
t_zycit049-waers = v_waers.
ENDIF.
APPEND t_zycit049 .
CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'
EXPORTING
nrseq = /pws/zycie001-nrseq
/pws/zycie085 = wa_zycie085
TABLES
t_zycit049 = t_zycit049
t_itens = t_itens
CHANGING
v_agrup = v_rateio.
IF v_rateio = 'X' .
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit036_aux-vlreal = t_itens-vldp.
itab_zycit036_aux-waers_real = t_itens-waers.
APPEND itab_zycit036_aux.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
MOVE: 'FRETEI' TO itab_zycit036-codigo.
CALL METHOD /pws/cl_zyci_trata_moedas=>retorna_decimais
EXPORTING
waers = t_zycit049-waers
CHANGING
value = t_itens-vldp .
itab_zycit036-vlreal = t_itens-vldp.
itab_zycit036-waers_real = t_zycit049-waers.
APPEND itab_zycit036.
v_tot_desp =
v_tot_desp + itab_zycit036-vlreal.
* << Fim da inclusão
CLEAR: t_itens, t_zycit049.
REFRESH: t_itens, t_zycit049.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
v_tot_desp =
v_tot_desp + itab_zycit036_aux-vlreal.
* << Fim da exclusão
CONTINUE.
ENDIF.
ENDIF.
MOVE: 'FRETEI' TO itab_zycit036-codigo.
...
...
MOVE: 'SEGURO' TO itab_zycit036-codigo.
itab_zycit036-vlreal = v_total.
ENDIF.
IF v_waers IS INITIAL.
itab_zycit036-waers_real = /pws/zycbt007-waersb.
ELSE.
itab_zycit036-waers_real = v_waers.
ENDIF.
ELSE.
IF v_di = 'AL' AND v_agrup = 'X' .
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
READ TABLE itab_zycit100a WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
IF /pws/zycie085 IS INITIAL.
SELECT SINGLE * FROM /pws/zycit085
INTO wa_zycie085
WHERE nrseqdi EQ itab_zycit100a-nrseqdi.
ENDIF.
* << Fim da exclusão
t_itens-nrseqdi = itab_zycit003-nrseq.
t_itens-ebeln = itab_zycit003-ebeln .
t_itens-ebelp = itab_zycit003-ebelp .
APPEND t_itens.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
t_zycit049-tpdesp = 'SEGURO'.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
t_zycit049-codigo = 'SEGURO'.
* << Fim da inclusão
t_zycit049-vldp = v_total .
IF v_waers IS INITIAL.
t_zycit049-waers = /pws/zycbt007-waersb.
ELSE.
t_zycit049-waers = v_waers.
ENDIF.
APPEND t_zycit049 .
CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'
EXPORTING
nrseq = /pws/zycie001-nrseq
/pws/zycie085 = wa_zycie085
TABLES
t_zycit049 = t_zycit049
t_itens = t_itens
CHANGING
v_agrup = v_rateio.
IF v_rateio = 'X' .
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
itab_zycit036_aux-vlreal = t_itens-vldp.
itab_zycit036_aux-waers_real = t_itens-waers.
APPEND itab_zycit036_aux.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
MOVE: 'SEGURO' TO itab_zycit036-codigo.
CALL METHOD /pws/cl_zyci_trata_moedas=>retorna_decimais
EXPORTING
waers = t_zycit049-waers
CHANGING
value = t_itens-vldp.
itab_zycit036-vlreal = t_itens-vldp.
itab_zycit036-waers_real = t_zycit049-waers.
APPEND itab_zycit036.
v_tot_desp =
v_tot_desp + itab_zycit036-vlreal.
* << Fim da inclusão
CLEAR: t_itens, t_zycit049.
REFRESH: t_itens, t_zycit049.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
v_tot_desp =
v_tot_desp + itab_zycit036_aux-vlreal.
* << Fim da exclusão
CONTINUE.
ENDIF.
ENDIF.
MOVE: 'SEGURO' TO itab_zycit036-codigo.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_CALCULA_DESPESAS_DI
FUNCTION /pws/zyci_calcula_despesas_di.
TABLES /pws/zycie006 .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
DATA: itab_zycit533 TYPE STANDARD TABLE OF /pws/zycit533
WITH HEADER LINE,
itab_zycit533_aux TYPE STANDARD TABLE OF /pws/zycit533
WITH HEADER LINE.
DATA: v_desp_aux TYPE /pws/zycie085-vlfob.
CLEAR: itab_zycit533.
REFRESH: itab_zycit533.
* << Fim da inclusão
...
...
v_prog TYPE /pws/zycit036-origem ,
v_parametro TYPE /pws/zycit003-descr,
v_bukrs TYPE t001-bukrs.
CLEAR: v_decim1, v_decim2, v_totplan, v_totreal, v_tntgew .
CLEAR: itab_zycit039, itab_zycit020, itab_zycit019, /pws/zycie006.
REFRESH: itab_zycit039, itab_zycit020, itab_zycit019.
IMPORT v_parametro FROM MEMORY ID 'PARAM' .
IMPORT /pws/zycie006 FROM MEMORY ID '006' .
v_agrup = 'X' .
IF v_parametro(2) EQ '04' OR
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
v_parametro(2) EQ 'M' .
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
v_parametro(2) EQ 'M' OR
v_parametro(2) EQ '02' OR
v_parametro(2) EQ '03' .
* << Fim da inclusão
v_bukrs = /pws/zycie006-bukrs.
ELSE.
v_bukrs = /pws/zycie085-bukrs .
ENDIF.
SELECT SINGLE land1 FROM t001 INTO v_land1
WHERE bukrs EQ v_bukrs.
SELECT SINGLE * FROM /pws/zycbt007
INTO wa_zycbt007
WHERE bukrs EQ v_bukrs.
READ TABLE t_zycit049 INDEX 1 .
...
...
INTO TABLE itab_zycit529
FOR ALL ENTRIES IN t_itens
WHERE nrseq = t_itens-nrseqdi
AND ebeln = t_itens-ebeln
AND ebelp = t_itens-ebelp.
IF NOT itab_zycit529[] IS INITIAL.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
FOR ALL ENTRIES IN itab_zycit529
WHERE nrseq EQ itab_zycit529-nrseq
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
AND container EQ itab_zycit529-agrupamento .
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
AND container EQ itab_zycit529-agrupamento
and vldp ne space.
LOOP AT itab_zycit003.
v_totplan = v_totplan +
( itab_zycit003-qtd_iten * itab_zycit003-netpr ).
v_totreal = v_totreal +
( itab_zycit003-qtd_iten * itab_zycit003-vlreal ).
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_tntgew = v_tntgew + itab_zycit003-ntgewd.
ELSE.
v_tntgew = v_tntgew + itab_zycit003-ntgew.
ENDIF.
ENDLOOP.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
* << Fim da inclusão
LOOP AT itab_zycit530.
CLEAR: itab_zycit019.
READ TABLE itab_zycit019 WITH KEY
codigo = itab_zycit530-codigo.
READ TABLE t_zycit049 WITH KEY
tpdesp = itab_zycit019-tpdesp.
IF sy-subrc NE 0 OR t_zycit049-vldp IS INITIAL.
DELETE itab_zycit530.
ENDIF.
ENDLOOP.
...
...
INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_zycit529_aux
WHERE nrseq EQ itab_zycit529_aux-nrseq
AND ebeln EQ itab_zycit529_aux-ebeln
AND ebelp EQ itab_zycit529_aux-ebelp .
ENDIF.
ELSE.
CLEAR v_agrup.
ENDIF.
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
CLEAR v_agrup.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
SELECT * FROM /pws/zycit533
INTO TABLE itab_zycit533
FOR ALL ENTRIES IN t_itens
WHERE nrseq = t_itens-nrseqdi
AND ebeln = t_itens-ebeln
AND ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
FOR ALL ENTRIES IN itab_zycit533
WHERE nrseq EQ itab_zycit533-nrseq
AND container EQ itab_zycit533-agrupamento .
IF v_parametro(2) EQ '02'.
DELETE itab_zycit530 WHERE codigo NE 'FRETEI'.
ELSEIF v_parametro(2) EQ '03'.
DELETE itab_zycit530 WHERE codigo NE 'SEGURO'.
ENDIF.
LOOP AT itab_zycit530.
CLEAR: itab_zycit019.
READ TABLE itab_zycit019 WITH KEY
codigo = itab_zycit530-codigo.
READ TABLE t_zycit049 WITH KEY
tpdesp = itab_zycit019-tpdesp.
IF sy-subrc NE 0 OR t_zycit049-vldp IS INITIAL.
DELETE itab_zycit530.
ENDIF.
ENDLOOP.
IF NOT itab_zycit530[] IS INITIAL.
SELECT * FROM /pws/zycit003
INTO TABLE itab_zycit003
WHERE nrseq EQ t_itens-nrseqdi.
* << Fim da inclusão
ENDIF.
ELSE.
CLEAR v_agrup.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
EXIT.
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
LOOP AT itab_zycit003.
v_totplan = v_totplan +
( itab_zycit003-qtd_iten * itab_zycit003-netpr ).
v_totreal = v_totreal +
( itab_zycit003-qtd_iten * itab_zycit003-vlreal ).
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_tntgew = v_tntgew + itab_zycit003-ntgewd.
* << Fim da exclusão
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
v_tntgew = v_tntgew + itab_zycit003-ntgew.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
CLEAR v_agrup.
* << Fim da inclusão
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
ENDLOOP.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
* << Fim da exclusão
IMPORT v_prog FROM MEMORY ID 'PROG' .
LOOP AT t_zycit049 WHERE NOT vldp IS initial.
CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.
IF t_zycit049-codigo IS INITIAL.
READ TABLE itab_zycit019 WITH KEY
tpdesp = t_zycit049-tpdesp.
READ TABLE itab_zycit020 WITH KEY
codigo = itab_zycit019-codigo.
READ TABLE itab_zycit039 WITH KEY
codigo = itab_zycit020-codigo.
...
...
ENDIF.
IF NOT itab_zycit039 IS INITIAL.
CLEAR v_desp.
READ TABLE itab_zycit529 WITH KEY
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit530 WITH KEY
container = itab_zycit529-agrupamento
codigo = t_zycit049-codigo.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
IF sy-subrc EQ 0.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
IF NOT itab_zycit530 IS INITIAL .
* << Fim da inclusão
IF v_parametro(2) EQ '04'.
IF itab_zycit530-waers NE wa_zycbt007-waersb.
CALL METHOD /pws/cl_zyci_trata_moedas=>trata_decimais
EXPORTING
waers = itab_zycit530-waers
CHANGING
value = itab_zycit530-vldp .
CALL METHOD /pws/cl_zyci_trata_moedas=>busca_taxa_dia
EXPORTING
/pws/zycie006 = /pws/zycie006
CHANGING
valor = itab_zycit530-vldp .
ENDIF.
ENDIF.
t_zycit049-vlreal = itab_zycit530-vldp.
ELSE.
EXIT.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
ENDIF.
* << Fim da exclusão
ENDIF.
IF itab_zycit039-divabs EQ 'X'.
IF NOT v_line IS INITIAL.
v_desp = ( 1 / v_line ) * t_zycit049-vlreal.
ENDIF.
ELSEIF itab_zycit039-peso EQ 'X'.
IF NOT v_tntgew IS INITIAL.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_desp = ( itab_zycit003-ntgewd / v_tntgew ) *
t_zycit049-vlreal.
...
...
ENDIF.
ELSE.
IF NOT v_totreal IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
v_desp = ( ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ) /
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
v_totreal ) * t_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
t_zycit049-vldp_aux = t_zycit049-vldp_aux + v_desp .
ELSE.
CLEAR v_desp.
LOOP AT itab_zycit533
WHERE ebeln = t_itens-ebeln
AND ebelp = t_itens-ebelp.
CLEAR: v_desp_aux.
LOOP AT itab_zycit530
WHERE container = itab_zycit533-agrupamento.
CHECK NOT itab_zycit530-vldp IS INITIAL.
IF v_parametro(2) EQ '04'.
IF itab_zycit530-waers NE wa_zycbt007-waersb.
CALL METHOD /pws/cl_zyci_trata_moedas=>trata_decimais
EXPORTING
waers = itab_zycit530-waers
CHANGING
value = itab_zycit530-vldp .
CALL METHOD /pws/cl_zyci_trata_moedas=>busca_taxa_dia
EXPORTING
/pws/zycie006 = /pws/zycie006
CHANGING
valor = itab_zycit530-vldp .
ENDIF.
ENDIF.
t_zycit049-vlreal = itab_zycit530-vldp.
SELECT * FROM /pws/zycit533
INTO TABLE itab_zycit533_aux
WHERE agrupamento EQ itab_zycit533-agrupamento
AND nrseq EQ itab_zycit533-nrseq.
IF sy-subrc EQ 0.
DESCRIBE TABLE itab_zycit533_aux LINES v_line.
ENDIF.
CLEAR : v_totplan , v_totreal, v_tntgew.
LOOP AT itab_zycit533_aux.
LOOP AT itab_zycit003
WHERE ebeln = itab_zycit533_aux-ebeln
AND ebelp = itab_zycit533_aux-ebelp.
v_totplan = v_totplan +
( itab_zycit533_aux-qtd_agrup * itab_zycit003-netpr ).
v_totreal = v_totreal +
( itab_zycit533_aux-qtd_agrup * itab_zycit003-vlreal ).
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_tntgew = v_tntgew +
( ( itab_zycit003-ntgewd / itab_zycit003-qtd_itend ) *
itab_zycit533_aux-qtd_agrup ).
ELSE.
v_tntgew = v_tntgew +
( ( itab_zycit003-ntgew / itab_zycit003-qtd_iten ) *
itab_zycit533_aux-qtd_agrup ) .
ENDIF.
ENDLOOP.
ENDLOOP.
IF itab_zycit039-divabs EQ 'X'.
IF NOT v_line IS INITIAL.
v_desp_aux = ( 1 / v_line ) * t_zycit049-vlreal.
ENDIF.
ELSEIF itab_zycit039-peso EQ 'X'.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit533_aux WITH KEY
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
IF NOT v_tntgew IS INITIAL.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
v_desp_aux =
( ( ( ( itab_zycit003-ntgewd / itab_zycit003-qtd_itend ) *
itab_zycit533_aux-qtd_agrup ) )
/ v_tntgew ) * t_zycit049-vlreal.
ELSE.
v_desp_aux =
( ( ( ( itab_zycit003-ntgew / itab_zycit003-qtd_iten ) *
itab_zycit533_aux-qtd_agrup ) )
/ v_tntgew ) * t_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSEIF itab_zycit039-proporplan EQ 'X'.
IF NOT v_totplan IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
v_desp_aux = ( ( itab_zycit003-netpr *
itab_zycit533-qtd_agrup ) /
v_totplan ) * t_zycit049-vlreal.
ENDIF.
ENDIF.
ELSE.
IF v_prog NE 'FAT' .
IF itab_zycit020-baseicms EQ 'X' .
IF wa_zycit062-bs_rat_icms EQ 'CIF' .
PERFORM taxa_converte(/pws/sapmzyci023)
USING /pws/zycie085-waersfob
/pws/zycie085-dttax
v_land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
v_vfre = t_itens-vlfre / v_taxa.
v_vseg = t_itens-vlseg / v_taxa.
ENDIF.
v_vlfobr = t_itens-vlfob.
v_tseg = /pws/zycie085-vlseg .
IF /pws/zycie085-ukursfre NE /pws/zycie085-ukursfob.
PERFORM taxa_converte(/pws/sapmzyci023)
USING /pws/zycie085-waersfre
/pws/zycie085-dttax
v_land1
CHANGING v_taxa.
v_tfre = /pws/zycie085-vlfre * v_taxa.
PERFORM taxa_converte(/pws/sapmzyci023)
USING /pws/zycie085-waersfob
/pws/zycie085-dttax
v_land1
CHANGING v_taxa.
IF NOT v_taxa IS INITIAL.
v_tfre = v_tfre / v_taxa.
ENDIF.
ELSE.
v_tfre = /pws/zycie085-vlfre.
ENDIF.
v_vtot = /pws/zycie085-vlfob + v_tfre + v_tseg.
IF NOT v_vtot IS INITIAL.
v_desp_aux = t_zycit049-vlreal *
( ( v_vlfobr + v_vfre + v_vseg ) / v_vtot ).
ENDIF.
IF NOT v_totreal IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
v_desp_aux = ( ( itab_zycit003-vlreal *
itab_zycit533-qtd_agrup ) /
v_totplan ) * t_zycit049-vlreal.
ENDIF.
ENDIF.
ELSE.
IF NOT v_totreal IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
v_desp_aux = ( ( itab_zycit003-vlreal *
itab_zycit533-qtd_agrup ) /
v_totplan ) * t_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF NOT v_totreal IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
v_desp_aux = ( ( itab_zycit003-vlreal *
itab_zycit533-qtd_agrup ) /
v_totreal ) * t_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF NOT v_totreal IS INITIAL.
READ TABLE itab_zycit003 WITH KEY
nrseq = t_itens-nrseqdi
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
v_desp_aux = ( ( itab_zycit003-vlreal *
itab_zycit533-qtd_agrup ) /
* << Fim da inclusão
v_totreal ) * t_zycit049-vlreal.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
ENDLOOP.
v_desp = v_desp + v_desp_aux.
ENDLOOP.
* << Fim da inclusão
t_zycit049-vldp_aux = t_zycit049-vldp_aux + v_desp .
* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI
ENDIF.
* << Fim da inclusão
MODIFY t_zycit049.
t_ivdesp = t_ivdesp + v_desp.
ENDIF.
ENDLOOP.
t_itens-vldp = t_ivdesp.
ENDFUNCTION.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em CUAD /PWS/SAPMZYCI085
*Criar
STATUS: 0103
ATRIBUTOS DE STATUS
TEXTO BREVE: Itens do Agrupamento
CATEGORIA DE STATUS
(X) - STATUS DIÁLOGO
(_) - CAIXA DE DIÁLOGO
(_) - MENU DE CONTEXTO
*Criar as teclas de função na Barra ferramentas
Código de função ENTE BACK LEAVE
Texto de função Selecionar Voltar Encerrar
*Informar teclas de função de livre definição
*Tecla F5
Código de função PRIM
Modificação Original
Texto de função Primeiro
Nome de ícone ICON_TOTAL_LEFT
Texto informativo Primeiro
Modificação Original
*Tecla F6
Código de função ANTE
Modificação Original
Texto de função Anterior
Nome de ícone ICON_COLUMN_LEFT
Texto informativo Anterior
Modificação Original
*Tecla F7
Código de função PROX
Modificação Original
Texto de função Próximo
Nome de ícone ICON_COLUMN_RIGHT
Texto informativo Próximo
Modificação Original
*Tecla F8
Código de função ULTI
Modificação Original
Texto de função Último
Nome de ícone ICON_TOTAL_RIGHT
Texto informativo Último
Modificação Original
*Informar botões na barra de botões
Itens 1- 7 PRIM ANTE PROX ULTI
*Modificar
STATUS: 0101
*Informar botões na barra de botões
Itens 1- 7 PRIM ANTE PROX ULTI
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI085 0100
Modificações efetuadas em DYNP /PWS/SAPMZYCI085 0103
O Download das telas encontra-se disponível no link abaixo
http://produtos.sondait.com.br/home/PW.CE/Notas/
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003I01
...
WHEN 'SAVE'.
* >> Início da inclusão: MODULE USER_COMMAND_0100
IF /pws/zycie006-tpfatura EQ '02' OR
/pws/zycie006-tpfatura EQ '03' .
CALL METHOD /pws/cl_zyci_agrupamento=>existe_agrup
EXPORTING
bukrs = /pws/zycie006-bukrs
RECEIVING
agrupamento = v_agrupamento .
IF v_agrupamento EQ 'X' .
PERFORM verifica_agrupamento.
IF v_msg = 'X' .
EXIT.
ENDIF.
ENDIF.
ENDIF.
* << Fim da inclusão
IF /pws/zycit000-land1 EQ 'BR' OR
/pws/zycit000-land1 EQ 'PE'.
LOOP AT itab_zycit003 WHERE paisfab EQ space.
EXIT.
ENDLOOP.
IF /pws/zycie006-tpfatura = '01' AND
/pws/zycie006-fabricante = '3' AND
sy-subrc EQ 0.
MESSAGE e015 WITH text-208.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
FORM multiplos_lancamentos.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
DATA: itab_zycit533 TYPE STANDARD TABLE OF /pws/zycit533
WITH HEADER LINE.
* << Fim da inclusão
TABLES /pws/zycie085.
DATA: itab_zycit529 TYPE STANDARD TABLE OF /pws/zycit529
WITH HEADER LINE,
itab_zycit530 TYPE STANDARD TABLE OF /pws/zycit530
WITH HEADER LINE,
t_zycit049 TYPE STANDARD TABLE OF
/pws/zycie049b WITH HEADER LINE,
t_itens TYPE STANDARD TABLE OF
/pws/zycie100b WITH HEADER LINE.
* >> Início da exclusão: FORM MULTIPLOS_LANCAMENTOS
DATA: v_prog TYPE /pws/zycit036-origem VALUE 'FAT'.
* << Fim da exclusão
...
...
FOR ALL ENTRIES IN t_itens
WHERE nrseq = t_itens-nrseqdi
AND ebeln = t_itens-ebeln
AND ebelp = t_itens-ebelp.
IF NOT itab_zycit529[] IS INITIAL.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
FOR ALL ENTRIES IN itab_zycit529
WHERE nrseq EQ itab_zycit529-nrseq
AND container EQ itab_zycit529-agrupamento .
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ELSE.
SELECT * FROM /pws/zycit533
INTO TABLE itab_zycit533
FOR ALL ENTRIES IN t_itens
WHERE nrseq = t_itens-nrseqdi
AND ebeln = t_itens-ebeln
AND ebelp = t_itens-ebelp.
IF NOT itab_zycit533[] IS INITIAL.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
FOR ALL ENTRIES IN itab_zycit533
WHERE nrseq EQ itab_zycit533-nrseq
AND container EQ itab_zycit533-agrupamento .
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
EXPORT v_prog TO MEMORY ID 'PROG' .
v_parametro = 'M'.
EXPORT v_parametro TO MEMORY ID 'PARAM' .
CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'
EXPORTING
nrseq = t_itens-nrseqdi
/pws/zycie085 = /pws/zycie085
TABLES
...
...
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit529 WITH KEY
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit530 WITH KEY
container = itab_zycit529-agrupamento
codigo = itab_zycit019-codigo.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ELSE.
READ TABLE itab_zycit533 WITH KEY
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0 .
READ TABLE itab_zycit530 WITH KEY
container = itab_zycit533-agrupamento
codigo = itab_zycit019-codigo.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
IF itab_zycit530 IS INITIAL .
itab_zycbt035_aux-wrbtr = /pws/zycie006-vltotal *
( itab_zycit003-ntgew / v_tpeso ).
ELSE.
v_desp_aux = t_zycit049-vldp_aux.
ENDIF.
v_valor_frete = v_valor_frete + itab_zycbt035_aux-wrbtr.
ENDIF.
...
...
FOR ALL ENTRIES IN t_itens
WHERE nrseq = t_itens-nrseqdi
AND ebeln = t_itens-ebeln
AND ebelp = t_itens-ebelp.
IF NOT itab_zycit529[] IS INITIAL.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
FOR ALL ENTRIES IN itab_zycit529
WHERE nrseq EQ itab_zycit529-nrseq
AND container EQ itab_zycit529-agrupamento .
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ELSE.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
FOR ALL ENTRIES IN itab_zycit533
WHERE nrseq EQ itab_zycit533-nrseq
AND container EQ itab_zycit533-agrupamento .
* << Fim da inclusão
ENDIF.
ENDIF.
EXPORT v_prog TO MEMORY ID 'PROG' .
v_parametro = 'M'.
EXPORT v_parametro TO MEMORY ID 'PARAM' .
CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'
EXPORTING
nrseq = t_itens-nrseqdi
/pws/zycie085 = /pws/zycie085
TABLES
...
...
ENDIF.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit529 WITH KEY
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit530 WITH KEY
container = itab_zycit529-agrupamento
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
codigo = itab_zycit019-codigo.
ELSE.
READ TABLE itab_zycit533 WITH KEY
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0 .
READ TABLE itab_zycit530 WITH KEY
container = itab_zycit533-agrupamento
* << Fim da inclusão
codigo = itab_zycit019-codigo.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ENDIF.
* << Fim da inclusão
IF itab_zycit530 IS INITIAL .
IF /pws/zycit031-inco1_ci = 'FOB'.
itab_zycbt035_aux-wrbtr = /pws/zycie006-vltotal *
( itab_frete-total +
...
...
FOR ALL ENTRIES IN t_itens
WHERE nrseq = t_itens-nrseqdi
AND ebeln = t_itens-ebeln
AND ebelp = t_itens-ebelp.
IF NOT itab_zycit529[] IS INITIAL.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
FOR ALL ENTRIES IN itab_zycit529
WHERE nrseq EQ itab_zycit529-nrseq
AND container EQ itab_zycit529-agrupamento .
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ELSE.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
FOR ALL ENTRIES IN itab_zycit533
WHERE nrseq EQ itab_zycit533-nrseq
AND container EQ itab_zycit533-agrupamento .
* << Fim da inclusão
ENDIF.
ENDIF.
EXPORT v_prog TO MEMORY ID 'PROG' .
v_parametro = 'M'.
EXPORT v_parametro TO MEMORY ID 'PARAM' .
CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'
EXPORTING
nrseq = t_itens-nrseqdi
/pws/zycie085 = /pws/zycie085
TABLES
...
...
ENDIF.
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit529 WITH KEY
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit530 WITH KEY
container = itab_zycit529-agrupamento
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
codigo = itab_zycit019-codigo.
ELSE.
READ TABLE itab_zycit533 WITH KEY
ebeln = t_itens-ebeln
ebelp = t_itens-ebelp.
IF sy-subrc EQ 0 .
READ TABLE itab_zycit530 WITH KEY
container = itab_zycit533-agrupamento
* << Fim da inclusão
codigo = itab_zycit019-codigo.
* >> Início da inclusão: FORM MULTIPLOS_LANCAMENTOS
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
IF itab_zycit530 IS INITIAL .
READ TABLE itab_zycit019 WITH KEY
tpdesp = itab_zycit047-tpdesp.
IF sy-subrc EQ 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
DATA: v_zeile TYPE mesg-zeile,
v_text1(50) TYPE c,
v_vldp TYPE /pws/zycit049-vldp.
CLEAR: v_msg.
* >> Início da inclusão: FORM VERIFICA_AGRUPAMENTO
CALL FUNCTION 'MESSAGES_INITIALIZE'.
IF /pws/zycie006-tpfatura EQ '04' .
* << Fim da inclusão
SELECT * FROM /pws/zycit019 INTO TABLE itab_zycit019
FOR ALL ENTRIES IN itab_zycit047
WHERE tpdesp = itab_zycit047-tpdesp
AND land1 = v_land1.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
WHERE nrseq EQ /pws/zycie001-nrseq
AND vldp NE space.
LOOP AT itab_zycit047 WHERE vldp NE space.
READ TABLE itab_zycit019 WITH KEY tpdesp = itab_zycit047-tpdesp.
...
...
ELSE.
IF itab_zycit530-waers NE itab_zycit047-waers.
MOVE : itab_zycit530-codigo TO itab_erro-codigo,
'W' TO itab_erro-erro_w.
APPEND itab_erro.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da exclusão: FORM VERIFICA_AGRUPAMENTO
CALL FUNCTION 'MESSAGES_INITIALIZE'.
* << Fim da exclusão
CLEAR v_zeile.
LOOP AT itab_erro.
v_zeile = v_zeile + 1.
CLEAR: v_text1.
IF ( NOT itab_erro-erro_v IS INITIAL AND
NOT itab_erro-erro_w IS INITIAL ).
CONCATENATE itab_erro-codigo
text-224 INTO v_text1 SEPARATED BY space.
ELSEIF NOT itab_erro-erro_v IS INITIAL.
CONCATENATE text-225 itab_erro-codigo
...
...
IF NOT itab_erro[] IS INITIAL.
CALL FUNCTION 'MESSAGES_SHOW'
EXPORTING
object = '/PWS/SAPMZYCI003'
i_amodal_window = ' '.
* >> Início da inclusão: FORM VERIFICA_AGRUPAMENTO
v_msg = 'X'.
ENDIF.
ELSEIF ( /pws/zycie006-tpfatura EQ '02' OR
/pws/zycie006-tpfatura EQ '03' ) .
READ TABLE itab_zycit003 INDEX 1 .
SELECT SINGLE * FROM /pws/zycit100
WHERE nrseq EQ itab_zycit003-nrseq.
IF sy-subrc NE 0.
IF /pws/zycie006-tpfatura EQ '02' .
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
WHERE nrseq EQ /pws/zycie001-nrseq
AND vldp NE space
AND codigo EQ 'FRETEI' .
IF sy-subrc EQ 0.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCIM'
msgty = 'E'
msgv1 = text-229
msgv2 = text-230
txtnr = '015'
zeile = '01'.
v_msg = 'X' .
ENDIF.
ELSEIF /pws/zycie006-tpfatura EQ '03'.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
WHERE nrseq EQ /pws/zycie001-nrseq
AND vldp NE space
AND codigo EQ 'SEGURO' .
IF sy-subrc EQ 0.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCIM'
msgty = 'E'
msgv1 = text-229
msgv2 = text-231
txtnr = '015'
zeile = '01'.
* << Fim da inclusão
v_msg = 'X'.
* >> Início da inclusão: FORM VERIFICA_AGRUPAMENTO
ENDIF.
ENDIF.
ENDIF.
IF v_msg = 'X'.
CALL FUNCTION 'MESSAGES_SHOW'
EXPORTING
object = '/PWS/SAPMZYCI003'
i_amodal_window = ' '.
EXIT.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F02
...
ELSE.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit094-nrseqce.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING /pws/zycit093 TO wa_zycie085.
MOVE: /pws/zycit093-nrseqce TO wa_zycie085-nrbl,
/pws/zycie001-embarca TO wa_zycie085-identify.
EXPORT wa_zycie085 TO MEMORY ID rimc4.
IF /pws/zycie001-tpdecl EQ 'DI'.
IF sy-tcode NE '/PWS/ZYCI001_E'.
* >> Início da inclusão: FORM CALL_DI_MULT
PERFORM qtde_agrupamento changing v_consist.
if v_consist eq 'X' .
message i015 with text-539.
clear v_consist.
exit.
endif.
* << Fim da inclusão
PERFORM valida_trans USING '/PWS/ZYCI059_C' ''.
ELSE.
MESSAGE e015 WITH text-166.
ENDIF.
ELSE.
IF sy-tcode NE '/PWS/ZYCI001_E'.
PERFORM valida_trans USING '/PWS/ZYCI059_I' ''.
ELSE.
MESSAGE e015 WITH text-166.
ENDIF.
...
...
* >> Início da inclusão:
FORM qtde_agrupamento changing v_consist.
DATA: itab_zycit533 TYPE STANDARD TABLE OF
/pws/zycit533 WITH HEADER LINE.
DATA: v_qtd_agrup TYPE /pws/zycit003-qtd_iten.
clear v_consist.
SELECT SINGLE * FROM /pws/zycit527
WHERE nrseq EQ /pws/zycie001-nrseq.
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit533
INTO TABLE itab_zycit533
WHERE nrseq EQ /pws/zycie001-nrseq.
LOOP AT itab_zycit003.
clear v_qtd_agrup.
LOOP AT itab_zycit533 WHERE
ebeln EQ itab_zycit003-ebeln AND
ebelp EQ itab_zycit003-ebelp.
v_qtd_agrup = v_qtd_agrup + itab_zycit533-qtd_agrup.
ENDLOOP.
IF v_qtd_agrup NE itab_zycit003-qtd_iten.
v_consist = 'X' .
exit.
ENDIF .
ENDLOOP.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
/pws/zycie006-dtlanc = sy-datlo.
ENDIF.
v_tpfabr = /pws/zycie006-fabricante.
IF NOT /pws/zycie094-nrseqce IS INITIAL.
SELECT SINGLE * FROM /pws/zycit085
WHERE nrbl EQ /pws/zycie094-nrseqce.
IF sy-subrc EQ 0.
v_di = 'X'.
ENDIF.
ENDIF.
* >> Início da exclusão: MODULE LOAD_DATA
IF /pws/zycie006-tpfatura EQ '04'.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_DATA
IF ( /pws/zycie006-tpfatura EQ '04' OR
/pws/zycie006-tpfatura EQ '02' OR
/pws/zycie006-tpfatura EQ '03' ).
* << Fim da inclusão
CALL METHOD /pws/cl_zyci_agrupamento=>existe_agrup
EXPORTING
bukrs = /pws/zycie006-bukrs
RECEIVING
agrupamento = v_agrupamento .
IF v_agrupamento EQ 'X' .
v_di = 'AL' .
EXPORT v_di TO MEMORY ID 'V_DI'.
CLEAR v_di.
* >> Início da inclusão: MODULE LOAD_DATA
EXPORT v_prog TO MEMORY ID 'PROG' .
* << Fim da inclusão
ENDIF.
ENDIF.
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI085X01
TABLES:
...
* >> Início da exclusão:
/pws/zycit530.
* << Fim da exclusão
* >> Início da inclusão:
/pws/zycit530,
/pws/zycie533,
/pws/zycit533.
* << Fim da inclusão
DATA: BEGIN OF COMMON PART a.
* >> Início da inclusão:
DATA: BEGIN OF itab_itens OCCURS 0 .
include structure /pws/zycit533.
data: saldo type /pws/zycit003-qtd_iten.
DATA: END OF itab_itens.
DATA: itab_zycit533 TYPE STANDARD TABLE OF /pws/zycit533
WITH HEADER LINE,
itab_zycit533_save TYPE STANDARD TABLE OF /pws/zycit533
WITH HEADER LINE.
DATA: BEGIN OF itab_zycit533_sv OCCURS 0 .
INCLUDE STRUCTURE /pws/zycit533.
DATA: END OF itab_zycit533_sv.
data: v_idx type sy-tabix.
* << Fim da inclusão
...
...
DATA: BEGIN OF itab_zycit003 OCCURS 0 .
DATA: ebeln TYPE /pws/zycit003-ebeln,
ebelp TYPE /pws/zycit003-ebelp,
* >> Início da inclusão:
qtd_iten TYPE /pws/zycit003-qtd_iten,
* << Fim da inclusão
matnr TYPE /pws/zycit003-matnr,
descr TYPE /pws/zycit003-descr.
DATA: END OF itab_zycit003.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI085TOP
PROGRAM /pws/sapmzyci085 MESSAGE-ID /pws/zycim.
INCLUDE /pws/mzyci085x01.
CONTROLS:
tc_agrup TYPE TABLEVIEW USING SCREEN 0100,
* >> Início da exclusão:
tc_itens TYPE TABLEVIEW USING SCREEN 0100,
* << Fim da exclusão
* >> Início da inclusão:
tc_itens TYPE TABLEVIEW USING SCREEN 0103,
* << Fim da inclusão
tc_desp TYPE TABLEVIEW USING SCREEN 0101,
tc_repl TYPE TABLEVIEW USING SCREEN 0102.
DATA: okcode TYPE sy-ucomm ,
wa_cols TYPE cxtab_column.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI085O01
...
MODULE status OUTPUT.
CASE sy-dynnr.
WHEN '0001'.
PERFORM status_0001 .
WHEN '0100'.
PERFORM status_0100.
WHEN '0101' .
PERFORM status_0101.
WHEN '0102'.
PERFORM status_0102.
* >> Início da inclusão: MODULE STATUS
WHEN '0103'.
PERFORM status_0103.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
...
MODULE preenche_itens OUTPUT.
* >> Início da exclusão: MODULE PREENCHE_ITENS
MOVE-CORRESPONDING itab_zycit529 TO /pws/zycie529 .
* << Fim da exclusão
* >> Início da inclusão: MODULE PREENCHE_ITENS
MOVE-CORRESPONDING itab_itens TO /pws/zycie533 .
* << Fim da inclusão
ENDMODULE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI085I01
WHEN '0102'.
PERFORM trata_tela_0102.
* >> Início da inclusão: MODULE USER_COMMAND
WHEN '0103'.
PERFORM trata_tela_0103.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
...
...
MODULE atualiza_itens INPUT.
* >> Início da exclusão: MODULE ATUALIZA_ITENS
MOVE-CORRESPONDING /pws/zycie529 TO itab_zycit529 .
itab_zycit529-mandt = sy-mandt.
itab_zycit529-nrseq = /pws/zycie001-nrseq.
MODIFY itab_zycit529 INDEX tc_itens-current_line.
IF sy-subrc NE 0.
APPEND itab_zycit529.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITENS
MOVE-CORRESPONDING /pws/zycie533 TO itab_itens .
itab_itens-mandt = sy-mandt.
itab_itens-nrseq = /pws/zycie001-nrseq.
itab_itens-agrupamento = wa_zycie528-container.
MODIFY itab_itens INDEX tc_itens-current_line.
* << Fim da inclusão
ENDMODULE.
...
...
* >> Início da inclusão:
MODULE verifica_qtd INPUT.
PERFORM calcula_saldo.
IF itab_itens-saldo LT 0.
CLEAR /pws/zycie533-qtd_agrup.
MESSAGE i015 WITH text-019 .
PERFORM calcula_saldo.
ENDIF.
ENDMODULE.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI085F01
...
SELECT /pws/zycit526~mandt /pws/zycit526~land
/pws/zycit526~codigo /pws/zycit526t~descricao
INTO TABLE itab_despesas
FROM /pws/zycit526
INNER JOIN /pws/zycit526t
ON ( /pws/zycit526~land EQ /pws/zycit526t~land
AND /pws/zycit526~codigo EQ /pws/zycit526t~codigo )
WHERE /pws/zycit526~land EQ v_land1
AND /pws/zycit526t~spras EQ sy-langu .
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DADOS
SELECT ebeln ebelp qtd_iten matnr descr FROM /pws/zycit003
INTO TABLE itab_zycit003
WHERE nrseq EQ /pws/zycie001-nrseq.
* << Fim da inclusão
IF sy-tcode EQ '/PWS/ZYCI085_C'.
/pws/zycie527-mandt = sy-mandt.
/pws/zycie527-nrseq = /pws/zycie001-nrseq.
/pws/zycie527-embarca = /pws/zycie001-embarca.
/pws/zycie527-bukrs = /pws/zycie001-bukrs .
/pws/zycie527-j_1bbranch = /pws/zycie001-j_1bbranch.
/pws/zycie527-netpr = /pws/zycie001-netpr.
/pws/zycie527-waers = /pws/zycie001-waers.
* >> Início da exclusão: FORM SELECIONA_DADOS
SELECT ebeln ebelp matnr descr FROM /pws/zycit003
INTO TABLE itab_zycit003
WHERE nrseq EQ /pws/zycie001-nrseq.
IF sy-subrc EQ 0.
LOOP AT itab_zycit003.
MOVE-CORRESPONDING itab_zycit003 TO itab_zycit529.
itab_zycit529-mandt = sy-mandt.
itab_zycit529-nrseq = /pws/zycie001-nrseq.
itab_zycit529-material = itab_zycit003-matnr.
APPEND itab_zycit529.
ENDLOOP.
ENDIF.
* << Fim da exclusão
ELSE.
SELECT SINGLE * FROM /pws/zycit527
INTO /pws/zycie527
WHERE nrseq EQ /pws/zycie001-nrseq.
* >> Início da inclusão: FORM SELECIONA_DADOS
/pws/zycie527-netpr = /pws/zycie001-netpr.
/pws/zycie527-waers = /pws/zycie001-waers.
IF sy-subrc EQ 0.
* << Fim da inclusão
SELECT * FROM /pws/zycit528
INTO TABLE itab_zycit528
WHERE nrseq EQ /pws/zycie001-nrseq.
SELECT * FROM /pws/zycit529
INTO TABLE itab_zycit529
WHERE nrseq EQ /pws/zycie001-nrseq.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
* >> Início da inclusão: FORM SELECIONA_DADOS
WHERE nrseq EQ /pws/zycie001-nrseq.
SELECT * FROM /pws/zycit533
INTO TABLE itab_zycit533
* << Fim da inclusão
WHERE nrseq EQ /pws/zycie001-nrseq.
* >> Início da inclusão: FORM SELECIONA_DADOS
ELSE.
MESSAGE w015 WITH text-010.
EXIT.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DADOS
ENDIF.
* << Fim da inclusão
wa_zycie527_sv = /pws/zycie527.
itab_zycit528_sv[] = itab_zycit528[].
itab_zycit529_sv[] = itab_zycit529[].
itab_zycit530_sv[] = itab_zycit530[].
* >> Início da inclusão: FORM SELECIONA_DADOS
itab_zycit533_sv[] = itab_zycit533[].
* << Fim da inclusão
CALL SCREEN '0100' .
ENDFORM.
...
...
FORM status_0101.
SET TITLEBAR '0101'.
* >> Início da inclusão: FORM STATUS_0101
DESCRIBE TABLE itab_desp LINES v_line.
IF v_line EQ '1'.
itab_botoes-fcode = 'PRIM'.
APPEND itab_botoes.
itab_botoes-fcode = 'ANTE'.
APPEND itab_botoes.
itab_botoes-fcode = 'PROX'.
APPEND itab_botoes.
itab_botoes-fcode = 'ULTI'.
APPEND itab_botoes.
SET PF-STATUS '0101' EXCLUDING itab_botoes .
ELSE.
* << Fim da inclusão
SET PF-STATUS '0101'.
* >> Início da inclusão: FORM STATUS_0101
ENDIF.
* << Fim da inclusão
ENDFORM.
...
...
WHEN 'DESP'.
READ TABLE itab_zycit528 WITH KEY marc = 'X' .
IF sy-subrc EQ 0 .
* >> Início da inclusão: FORM TRATA_TELA_0100
v_idx = sy-tabix.
* << Fim da inclusão
MOVE itab_zycit528 TO wa_zycie528 .
PERFORM trata_despesas.
CALL SCREEN '0101' .
ELSE.
MESSAGE s015 WITH text-003.
ENDIF.
WHEN 'REPL'.
PERFORM trata_replicacao.
WHEN 'SAVE'.
PERFORM salva_dados.
...
...
PERFORM log_trilha USING SY-REPID
/pws/zycie527-nrseq
' ' .
WHEN 'BACK'.
PERFORM verifica_alteracoes.
LEAVE TO SCREEN 0.
WHEN 'LEAVE'.
PERFORM verifica_alteracoes.
PERFORM limpa_tabelas.
LEAVE PROGRAM.
* >> Início da inclusão: FORM TRATA_TELA_0100
WHEN 'ITENS'.
READ TABLE itab_zycit528 WITH KEY marc = 'X' .
IF sy-subrc EQ 0 .
v_idx = sy-tabix.
MOVE itab_zycit528 TO wa_zycie528 .
PERFORM move_itens.
CALL SCREEN '0103'.
ELSE.
MESSAGE s015 WITH text-003.
EXIT.
ENDIF.
* << Fim da inclusão
ENDCASE.
CLEAR okcode.
ENDFORM.
FORM trata_tela_0101.
CASE sy-ucomm.
WHEN 'BACK'.
* >> Início da exclusão: FORM TRATA_TELA_0101
LOOP AT itab_desp.
READ TABLE itab_zycit530 WITH KEY
container = itab_desp-container
codigo = itab_desp-codigo .
IF sy-subrc EQ 0.
itab_zycit530-vldp = itab_desp-vldp.
itab_zycit530-waers = itab_desp-waers.
MODIFY itab_zycit530 TRANSPORTING vldp waers
WHERE container EQ itab_desp-container
AND codigo EQ itab_desp-codigo .
ELSE.
itab_zycit530-mandt = sy-mandt.
itab_zycit530-nrseq = /pws/zycie001-nrseq.
itab_zycit530-container = itab_desp-container.
itab_zycit530-codigo = itab_desp-codigo.
itab_zycit530-vldp = itab_desp-vldp .
itab_zycit530-waers = itab_desp-waers .
APPEND itab_zycit530.
ENDIF.
ENDLOOP.
CLEAR itab_desp.
REFRESH itab_desp.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_TELA_0101
PERFORM salva_desp.
* << Fim da inclusão
LEAVE TO SCREEN 0.
WHEN 'LEAVE'.
LEAVE PROGRAM.
* >> Início da inclusão: FORM TRATA_TELA_0101
WHEN 'PRIM'.
PERFORM salva_desp.
v_idx = 1 .
READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.
IF sy-subrc EQ 0.
PERFORM trata_despesas.
ENDIF.
WHEN 'ANTE'.
PERFORM salva_desp.
IF v_idx > '1'.
v_idx = v_idx - 1 .
READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.
IF sy-subrc EQ 0.
PERFORM trata_despesas.
ENDIF.
ENDIF.
WHEN 'PROX'.
PERFORM salva_desp.
DESCRIBE TABLE itab_zycit528 LINES v_line.
IF v_idx < v_line.
v_idx = v_idx + 1 .
READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.
IF sy-subrc EQ 0.
PERFORM trata_despesas.
ENDIF.
ENDIF.
WHEN 'ULTI'.
PERFORM salva_desp.
DESCRIBE TABLE itab_zycit528 LINES v_idx.
READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.
IF sy-subrc EQ 0.
PERFORM trata_despesas.
ENDIF.
* << Fim da inclusão
ENDCASE.
ENDFORM.
FORM trata_despesas.
* >> Início da inclusão: FORM TRATA_DESPESAS
CLEAR itab_desp.
REFRESH itab_desp.
* << Fim da inclusão
...
...
FORM limpa_tabelas.
CLEAR : itab_desp, itab_despesas, itab_zycit003, itab_repl,
itab_zycit528, itab_zycit529, itab_zycit530,
itab_zycit528_sv, itab_zycit529_sv, itab_zycit530_sv,
wa_zycie001, wa_zycie528, wa_zycie527_sv.
REFRESH: itab_desp, itab_despesas, itab_zycit003, itab_repl,
itab_zycit528, itab_zycit529, itab_zycit530,
itab_zycit528_sv, itab_zycit529_sv, itab_zycit530_sv.
* >> Início da inclusão: FORM LIMPA_TABELAS
CLEAR : itab_zycit533.
REFRESH : itab_zycit533.
* << Fim da inclusão
ENDFORM.
...
...
FORM salva_dados.
DATA: wa_zycit527_save TYPE /pws/zycit527 ,
v_table(13) TYPE c.
DATA:
itab_zycit528s TYPE STANDARD TABLE OF /pws/zycit528
WITH HEADER LINE,
itab_zycit529s TYPE STANDARD TABLE OF /pws/zycit529
WITH HEADER LINE,
itab_zycit530s TYPE STANDARD TABLE OF /pws/zycit530
* >> Início da inclusão: FORM SALVA_DADOS
WITH HEADER LINE,
itab_zycit533s TYPE STANDARD TABLE OF /pws/zycit533
* << Fim da inclusão
WITH HEADER LINE.
* >> Início da exclusão: FORM SALVA_DADOS
PERFORM consiste_dados.
* << Fim da exclusão
IF v_erro = 'X' .
EXIT.
ENDIF.
DEFINE m_log.
if sy-subrc eq 0.
perform carrega_log using v_table 'U'
...
...
END-OF-DEFINITION.
IF sy-tcode EQ '/PWS/ZYCI085_A' .
SELECT * FROM /pws/zycit528
INTO TABLE itab_zycit528_save
WHERE nrseq = /pws/zycie001-nrseq.
SELECT * FROM /pws/zycit529
INTO TABLE itab_zycit529_save
WHERE nrseq = /pws/zycie001-nrseq.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530_save
* >> Início da inclusão: FORM SALVA_DADOS
WHERE nrseq = /pws/zycie001-nrseq.
SELECT * FROM /pws/zycit533
INTO TABLE itab_zycit533_save
* << Fim da inclusão
WHERE nrseq = /pws/zycie001-nrseq.
ENDIF.
/pws/zycit527 = /pws/zycie527.
v_table = '/PWS/ZYCIT527'.
SELECT SINGLE * FROM /pws/zycit527
INTO wa_zycit527_save
WHERE nrseq = /pws/zycie001-nrseq.
m_log.
MODIFY /pws/zycit527 FROM /pws/zycie527.
v_table = '/PWS/ZYCIT528' .
...
...
ENDLOOP.
LOOP AT itab_zycit530_save.
/pws/zycit530 = itab_zycit530_save.
m_log_d.
DELETE FROM /pws/zycit530
WHERE nrseq EQ itab_zycit530_save-nrseq
AND container EQ itab_zycit530_save-container
AND codigo EQ itab_zycit530_save-codigo.
ENDLOOP.
MODIFY /pws/zycit530 FROM TABLE itab_zycit530.
* >> Início da inclusão: FORM SALVA_DADOS
v_table = '/PWS/ZYCIT533' .
LOOP AT itab_zycit533.
itab_zycit533s = itab_zycit533.
READ TABLE itab_zycit533_save WITH KEY
nrseq = itab_zycit533-nrseq
ebeln = itab_zycit533-ebeln
ebelp = itab_zycit533-ebelp
agrupamento = itab_zycit533-agrupamento.
IF sy-subrc NE 0 OR
itab_zycit533_save NE itab_zycit533s.
/pws/zycit533 = itab_zycit533.
m_log.
APPEND itab_zycit533s.
ENDIF.
DELETE itab_zycit533_save
WHERE nrseq = itab_zycit533-nrseq
AND ebeln = itab_zycit533-ebeln
AND ebelp = itab_zycit533-ebelp
AND agrupamento = itab_zycit533-agrupamento.
ENDLOOP.
LOOP AT itab_zycit533_save.
/pws/zycit533 = itab_zycit533_save.
m_log_d.
DELETE FROM /pws/zycit533
WHERE nrseq = itab_zycit533-nrseq
AND ebeln = itab_zycit533-ebeln
AND ebelp = itab_zycit533-ebelp
AND agrupamento = itab_zycit533-agrupamento.
ENDLOOP.
MODIFY /pws/zycit533 FROM TABLE itab_zycit533.
* << Fim da inclusão
COMMIT WORK.
MESSAGE i017 WITH text-005.
wa_zycie527_sv = /pws/zycie527.
itab_zycit528_sv[] = itab_zycit528[].
itab_zycit529_sv[] = itab_zycit529[].
itab_zycit530_sv[] = itab_zycit530[].
* >> Início da inclusão: FORM SALVA_DADOS
itab_zycit533_sv[] = itab_zycit533[].
* << Fim da inclusão
ENDFORM.
...
...
sy-tcode '/PWS/SAPMZYCI085' /pws/zycit529-nrseq.
ENDLOOP.
LOOP AT itab_zycit530_save.
MOVE-CORRESPONDING itab_zycit530_save TO /pws/zycit530.
PERFORM carrega_log USING '/PWS/ZYCIT530' 'D'
sy-tcode '/PWS/SAPMZYCI085' /pws/zycit530-nrseq.
ENDLOOP.
DELETE FROM /pws/zycit528 WHERE nrseq = /pws/zycie001-nrseq.
DELETE FROM /pws/zycit529 WHERE nrseq = /pws/zycie001-nrseq.
DELETE FROM /pws/zycit530 WHERE nrseq = /pws/zycie001-nrseq.
* >> Início da inclusão: FORM ELIMINA_DADOS
SELECT * FROM /pws/zycit533 INTO TABLE itab_zycit533_save
WHERE nrseq = /pws/zycie527-nrseq.
LOOP AT itab_zycit530_save.
MOVE-CORRESPONDING itab_zycit530_save TO /pws/zycit530.
PERFORM carrega_log USING '/PWS/ZYCIT530' 'D'
sy-tcode '/PWS/SAPMZYCI085' /pws/zycit530-nrseq.
ENDLOOP.
DELETE FROM /pws/zycit533 WHERE nrseq = /pws/zycie001-nrseq.
* << Fim da inclusão
ENDIF.
COMMIT WORK.
LEAVE PROGRAM.
ENDIF.
ENDFORM.
...
...
* >> Início da inclusão:
FORM status_0103.
DESCRIBE TABLE itab_zycit528 LINES v_line.
SET TITLEBAR '0103'.
IF v_line EQ '1' .
itab_botoes-fcode = 'PRIM'.
APPEND itab_botoes.
itab_botoes-fcode = 'ANTE'.
APPEND itab_botoes.
itab_botoes-fcode = 'PROX'.
APPEND itab_botoes.
itab_botoes-fcode = 'ULTI'.
APPEND itab_botoes.
SET PF-STATUS '0103' EXCLUDING itab_botoes .
ELSE.
SET PF-STATUS '0103' .
ENDIF.
ENDFORM.
FORM trata_tela_0103.
CASE sy-ucomm.
WHEN 'BACK'.
PERFORM save_data_item.
DELETE itab_zycit533 WHERE qtd_agrup IS initial .
CLEAR itab_itens.
REFRESH itab_itens.
LEAVE TO SCREEN 0.
WHEN 'LEAVE'.
LEAVE TO SCREEN 0.
WHEN 'PRIM'.
PERFORM save_data_item.
v_idx = 1 .
READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.
IF sy-subrc EQ 0.
PERFORM move_itens.
ENDIF.
WHEN 'ANTE'.
PERFORM save_data_item.
IF v_idx > '1'.
v_idx = v_idx - 1 .
READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.
IF sy-subrc EQ 0.
PERFORM move_itens.
ENDIF.
ENDIF.
WHEN 'PROX'.
PERFORM save_data_item.
DESCRIBE TABLE itab_zycit528 LINES v_line.
IF v_idx < v_line.
v_idx = v_idx + 1 .
READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.
IF sy-subrc EQ 0.
PERFORM move_itens.
ENDIF.
ENDIF.
WHEN 'ULTI'.
PERFORM save_data_item.
DESCRIBE TABLE itab_zycit528 LINES v_idx.
READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.
IF sy-subrc EQ 0.
PERFORM move_itens.
ENDIF.
ENDCASE.
ENDFORM.
FORM calcula_saldo.
READ TABLE itab_zycit003 WITH KEY
ebeln = itab_itens-ebeln
ebelp = itab_itens-ebelp .
IF sy-subrc EQ 0.
itab_itens-saldo = itab_zycit003-qtd_iten - /pws/zycie533-qtd_agrup.
ENDIF.
LOOP AT itab_zycit533 WHERE ebeln EQ itab_itens-ebeln
AND ebelp EQ itab_itens-ebelp
AND agrupamento NE itab_itens-agrupamento.
itab_itens-saldo = itab_itens-saldo - itab_zycit533-qtd_agrup.
ENDLOOP.
ENDFORM.
FORM save_data_item.
LOOP AT itab_itens.
READ TABLE itab_zycit533 WITH KEY
nrseq = itab_itens-nrseq
ebeln = itab_itens-ebeln
ebelp = itab_itens-ebelp
agrupamento = wa_zycie528-container.
IF sy-subrc EQ 0.
itab_zycit533-qtd_agrup = itab_itens-qtd_agrup.
MODIFY itab_zycit533 TRANSPORTING qtd_agrup
WHERE nrseq = itab_itens-nrseq
AND ebeln = itab_itens-ebeln
AND ebelp = itab_itens-ebelp
AND agrupamento = wa_zycie528-container.
ELSE.
IF NOT itab_itens-qtd_agrup IS INITIAL.
MOVE-CORRESPONDING itab_itens TO itab_zycit533.
APPEND itab_zycit533.
ENDIF.
ENDIF.
ENDLOOP.
ENDFORM.
FORM move_itens.
DATA: v_saldo TYPE /pws/zycit003-qtd_iten.
DATA: itab_zycit533_aux TYPE
STANDARD TABLE OF /pws/zycit533 WITH HEADER LINE.
MOVE itab_zycit533[] TO itab_zycit533_aux[] .
CLEAR itab_itens.
REFRESH itab_itens.
LOOP AT itab_zycit003 .
clear itab_itens.
CLEAR: v_saldo.
v_saldo = itab_zycit003-qtd_iten.
LOOP AT itab_zycit533_aux
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
v_saldo = v_saldo - itab_zycit533_aux-qtd_agrup.
ENDLOOP.
itab_itens-saldo = v_saldo.
READ TABLE itab_zycit533
WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp
agrupamento = wa_zycie528-container.
IF sy-subrc EQ 0.
MOVE-CORRESPONDING itab_zycit533 TO itab_itens .
ELSE.
MOVE-CORRESPONDING itab_zycit003 TO itab_itens .
itab_itens-mandt = sy-mandt.
itab_itens-nrseq = /pws/zycie001-nrseq.
itab_itens-material = itab_zycit003-matnr.
itab_itens-agrupamento = wa_zycie528-container.
ENDIF.
APPEND itab_itens.
ENDLOOP.
ENDFORM.
FORM salva_desp.
LOOP AT itab_desp.
READ TABLE itab_zycit530 WITH KEY
container = itab_desp-container
codigo = itab_desp-codigo .
IF sy-subrc EQ 0.
itab_zycit530-vldp = itab_desp-vldp.
itab_zycit530-waers = itab_desp-waers.
MODIFY itab_zycit530 TRANSPORTING vldp waers
WHERE container EQ itab_desp-container
AND codigo EQ itab_desp-codigo .
ELSE.
itab_zycit530-mandt = sy-mandt.
itab_zycit530-nrseq = /pws/zycie001-nrseq.
itab_zycit530-container = itab_desp-container.
itab_zycit530-codigo = itab_desp-codigo.
itab_zycit530-vldp = itab_desp-vldp .
itab_zycit530-waers = itab_desp-waers .
APPEND itab_zycit530.
ENDIF.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI059F01
...
DATA: END OF itab_erro.
DATA: v_zeile TYPE mesg-zeile,
v_text1(50) TYPE c,
v_vldp TYPE /pws/zycit049-vldp.
CLEAR: v_msg.
SELECT * FROM /pws/zycit530
INTO TABLE itab_zycit530
WHERE nrseq EQ /pws/zycie001-nrseq
AND vldp NE space.
LOOP AT itab_zycit049 WHERE vldp NE space.
* >> Início da inclusão: FORM VERIFICA_AGRUPAMENTO
read table itab_zycit019 with key tpdesp = itab_zycit049-tpdesp.
* << Fim da inclusão
CLEAR v_vldp.
* >> Início da exclusão: FORM VERIFICA_AGRUPAMENTO
LOOP AT itab_zycit530 WHERE codigo = itab_zycit049-codigo.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_AGRUPAMENTO
LOOP AT itab_zycit530 WHERE codigo = itab_zycit019-codigo.
* << Fim da inclusão
v_vldp = itab_zycit530-vldp + v_vldp.
ENDLOOP .
IF sy-subrc EQ 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003X01
...
* >> Início da inclusão:
DATA: v_prog TYPE /pws/zycit036-origem VALUE 'FAT'.
* << Fim da inclusão
DATA: END OF COMMON PART.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI001
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 539
Texto: (30 caracteres)
"There are items without group."
Comprimento máximo: 35
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 539
Texto: (30 caracteres)
"Existem itens sem agrupamento."
Comprimento máximo: 35
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 539
Texto: (31 caracteres)
"No hay elementos de agrupación."
Comprimento máximo: 35
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI085
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 019
Texto: (37 caracteres)
"Amount exceeds the available balance."
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 019
Texto: (35 caracteres)
"Quantidade excede saldo disponível."
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 019
Texto: (33 caracteres)
"Monto excede el saldo disponible."
Comprimento máximo: 35
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI003
------------------------------------------------------------------------
Modificado símbolo de texto:
Idioma: ES
Símbolo: 225
Texto: (8 caracteres)
"El gasto"
Comprimento máximo: 15
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 229
Texto: (36 caracteres)
"The DI isn't created after Grouping."
Comprimento máximo: 45
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 229
Texto: (45 caracteres)
"A DI ainda não foi criada após o agrupamento."
Comprimento máximo: 45
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 229
Texto: (45 caracteres)
"DI no ha sido creado después de la agrupacion"
Comprimento máximo: 45
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 230
Texto: (39 caracteres)
"The Freight invoice can't be generated."
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 230
Texto: (40 caracteres)
"A Fatura de Frete não poderá ser gerada."
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 230
Texto: (40 caracteres)
"La Factura de Flete no se puede generar."
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: EN
Símbolo: 231
Texto: (41 caracteres)
"The Assurance invoice can't be generated."
Comprimento máximo: 41
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 231
Texto: (41 caracteres)
"A Fatura de Seguro não poderá ser gerada."
Comprimento máximo: 41
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 231
Texto: (41 caracteres)
"La Factura de Seguro no se puede generar."
Comprimento máximo: 41