Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 01/10/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 15:17:36
Descrição da Nota: PERMITIR NACIONALIZAÇÃO DE DI 01, DE ACORDO COM FUNDAMENTAÇÃO LEGAL
Sintoma
Pw.CE deve permitir nacionalização de DI 01, de acordo com o regime de fundamentação legal
Solução
Ajustar programa de Embarque para aceitar nacionalização de DI 01, de acordo com o regime de
fundamentação legal
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 04866 Data: 01/10/2007 Hora: 09:45:36
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 04866
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 7.0
Pacote : 00003
Agrupamento : 00015
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01450 - 00001 - 6.0 - 00023 - INTERFACE PW.CE X PW.RECOF - CARGA DE EMBARQUE DE NACIONALIZAÇÃO.
01516 - 00002 - 6.0 - 00023 - DUMP NO EMBARQUE DE RECOF
01914 - 00003 - 6.0 - 00024 - RESUMO DE DOCTOS DE EMBARQUE COM REGIME 14 NAO APRESENTA DÉBITO E
02291 - 00004 - 6.0 - 00025 - AJUSTES FEITOS NA DA PARA TRATAMENTO DE CENTROS DIFERENTES
04611 - 00005 - 7.0 - 00002 - EMBARQUE DE NACIONALIZAÇÃO - REGIME 14
----------------------------------------------------------------------------------------------------
PERMITIR NACIONALIZAÇÃO DE DI 01, DE ACORDO COM FUNDAMENTAÇÃO LEGAL
----------------------------------------------------------------------------------------------------
Palavras Chave:
DI - NACIONALIZAÇÃO - RECOF - EMBARQUE - REGIME 01
----------------------------------------------------------------------------------------------------
Objetos da nota:
CUAD /PWS/SAPMZYCI001
DTEL /PWS/ZYGLL1360
DTEL /PWS/ZYGLL1361
DTEL /PWS/ZYGLL1362
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F02
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001I01
REPS /PWS/MZYCI001X01
TABD /PWS/ZYCIT003
----------------------------------------------------------------------------------------------------
Modificações efetuadas em CUAD /PWS/SAPMZYCI001
*Seguinte tecla de função foi eliminada
Texto informativo Teclas de função CI - Seleção DA
Código de função Tecla F Tecla de função Código de função Texto
000016 00 ENTER ENTER Selecionar
----------------------------------------------------------------------------------------------------
*Criados domínio
Modificações efetuadas em DTEL /PWS/ZYGLD568
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLD568
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (15 caracteres), idioma: PT
"GL - Percentual"
Categoria de dados: Domínio
Domínio: J_1BTXRATE
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (10 caracteres), idioma: PT
"Percentual"
Comprimento máximo do denominador médio: 15
Denominador médio incluído (10 caracteres), idioma: PT
"Percentual"
Comprimento máximo do denominador longo: 20
Denominador longo incluído (10 caracteres), idioma: PT
"Percentual"
Comprimento máximo do título: 10
Título incluído (10 caracteres), idioma: PT
"Percentual"
----------------------------------------------------------------------------------------------------
*Criados elementos de dados
Modificações efetuadas em DTEL /PWS/ZYGLL1358
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLL1358
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (37 caracteres), idioma: PT
"CI - Tipo de Processo"
Categoria de dados: /PWS/ZYGLD568
Domínio: CHAR1
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (10 caracteres), idioma: PT
"Tp.proc."
Comprimento máximo do denominador médio: 20
Denominador médio incluído (20 caracteres), idioma: PT
"Tp.proc."
Comprimento máximo do denominador longo: 32
Denominador longo incluído (32 caracteres), idioma: PT
"Tp.proc."
Comprimento máximo do título: 32
Título incluído (32 caracteres), idioma: PT
"Tp.proc."
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1360
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLL1360
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (37 caracteres), idioma: PT
"GL - Ano de Identificador do Registro"
Categoria de dados: Domínio
Domínio: NUM4
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (10 caracteres), idioma: PT
"Ano de Ide"
Comprimento máximo do denominador médio: 20
Denominador médio incluído (20 caracteres), idioma: PT
"Ano de Identificador"
Comprimento máximo do denominador longo: 32
Denominador longo incluído (32 caracteres), idioma: PT
"Ano de Identificador do Registro"
Comprimento máximo do título: 32
Título incluído (32 caracteres), idioma: PT
"Ano de Identificador do Registro"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1361
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLL1361
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (41 caracteres), idioma: PT
"GL - Número de Identificador do Registro"
Categoria de dados: Domínio
Domínio: NUM9
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (9 caracteres), idioma: PT
"Número de"
Comprimento máximo do denominador médio: 20
Denominador médio incluído (20 caracteres), idioma: PT
"Número de Identifica"
Comprimento máximo do denominador longo: 35
Denominador longo incluído (35 caracteres), idioma: PT
"Número de Identificador do Registro"
Comprimento máximo do título: 35
Título incluído (35 caracteres), idioma: PT
"Número de Identificador do Registro"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYGLL1362
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYGLL1362
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (38 caracteres), idioma: PT
"GL - Item de identificados do Registro"
Categoria de dados: Domínio
Domínio: NUM5
ID parâmetro:
Nome componente default:
Documentar modificações: NÃO
Nome da ajuda de pesquisa:
Parâmetro da ajuda de pesquisa:
Comprimento máximo do denominador breve: 10
Denominador breve incluído (10 caracteres), idioma: PT
"Item de id"
Comprimento máximo do denominador médio: 20
Denominador médio incluído (20 caracteres), idioma: PT
"Item de identificado"
Comprimento máximo do denominador longo: 33
Denominador longo incluído (33 caracteres), idioma: PT
"Item de identificados do Registro"
Comprimento máximo do título: 33
Título incluído (33 caracteres), idioma: PT
"Item de identificados do Registro"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
/pws/zycie013-meins = /pws/zycie263-meins = itab_zycit003-meins.
/pws/zycie263-qtd_iten = itab_zycit003-invoiced.
/pws/zycie003-dtremessa = itab_zycit003-dtremessa.
REFRESH itab_zycit003_aux.
MOVE itab_zycit003[] TO itab_zycit003_aux[].
CHECK /pws/zycie001-regime EQ '16' OR
( /pws/zycie001-regime EQ '14' AND
sy-tcode EQ '/PWS/ZYCI001_A' ) OR
( /pws/zycie001-regime EQ '14' AND
sy-tcode EQ '/PWS/ZYCI001_E' ).
* >> Início da inclusão: FORM CARREGA_ZYCBE003
CLEAR itab_zycit482.
SELECT * FROM /pws/zycit482 INTO TABLE itab_zycit482
WHERE processo = '1'.
READ TABLE itab_zycit482 WITH KEY
processo = '1'.
IF sy-subrc = 0 AND /pws/zycie001-regime EQ '16'.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND nrseqda EQ itab_zycit003-nrseqda.
LOOP AT itab_zycit003.
v_tabix = sy-tabix.
CLEAR v_qtdutil_da.
LOOP AT itab_zycit003_saldo
WHERE ebeln = itab_zycit003-ebeln
AND ebelp = itab_zycit003-ebelp.
IF itab_zycit003_saldo-nrseq NE /pws/zycie001-nrseq.
v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten .
ENDIF.
ENDLOOP.
SELECT SINGLE * FROM /pws/zycit100
WHERE ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
nrseqdi = itab_zycit003-nrseqda.
SELECT SINGLE qtd_iten
FROM /pws/zycit003 INTO itab_zycit443-qtd_da
WHERE nrseq = /pws/zycit100-nrseq AND
ebeln = /pws/zycit100-ebeln AND
ebelp = /pws/zycit100-ebelp.
IF sy-subrc EQ 0 .
itab_zycit003-sld_da = itab_zycit443-qtd_da -
( v_qtdutil_da + itab_zycit003-qtd_iten ).
ENDIF.
itab_zycit003-menge = itab_zycit443-qtd_da.
MODIFY itab_zycit003 INDEX v_tabix.
ENDLOOP.
ELSE.
* << Fim da inclusão
IF NOT itab_zycit003[] IS INITIAL.
IF itab_zycit443[] IS INITIAL.
SELECT *
INTO TABLE itab_zycit443
FROM /pws/zycit443
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseqda EQ itab_zycit003-nrseqda.
ENDIF.
ENDIF.
IF NOT itab_zycit443[] IS INITIAL.
...
...
READ TABLE itab_zycit443_saldo WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
itab_zycit003-sld_da = itab_zycit443_saldo-qtd_iten -
v_qtdutil_da - itab_zycit003-qtd_iten.
ENDIF.
ENDIF.
itab_zycit003-menge = itab_zycit443-qtd_da.
MODIFY itab_zycit003 INDEX v_tabix.
ENDLOOP.
* >> Início da inclusão: FORM CARREGA_ZYCBE003
ENDIF.
* << Fim da inclusão
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F02
...
ELSEIF sy-tcode EQ '/PWS/ZYCI001_E'.
SET PARAMETER ID '/PWS/ZYCIP085' FIELD /pws/zycit085-nrseqdi.
SET PARAMETER ID '/PWS/ZYGLP089' FIELD /pws/zycit085-identify.
PERFORM valida_trans USING '/PWS/ZYCI017_E' 'skip'.
ENDIF.
* >> Início da inclusão: FORM CALL_BT
ELSE.
READ TABLE itab_zycit477 WITH KEY land = v_land1.
IF sy-subrc EQ 0 .
MESSAGE s015 WITH text-454 text-453.
* << Fim da inclusão
ELSE.
MESSAGE e015 WITH text-049.
* >> Início da inclusão: FORM CALL_BT
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
FORM selecionar_da.
* >> Início da inclusão: FORM SELECIONAR_DA
DATA: itab_zycit003_saldo LIKE itab_zycit003 OCCURS 0
WITH HEADER LINE.
* << Fim da inclusão
...
...
MESSAGE s015 WITH text-329.
EXIT.
ENDIF.
CLEAR itab_zycit003_del.
FREE itab_zycit003_del.
IF /pws/zycie001-regime NE '14'.
* >> Início da inclusão: FORM SELECIONAR_DA
READ TABLE itab_zycit482 WITH KEY
processo = '1'.
IF sy-subrc = 0.
REFRESH: itab_di, itab_da.
CLEAR: itab_di , itab_da.
SELECT /pws/zycit085~nrseqdi /pws/zycit100~nrseq /pws/zycit100~ebeln
/pws/zycit100~ebelp /pws/zycit100~adicao /pws/zycit085~nrdi
/pws/zycit085~bukrs /pws/zycit085~codreg /pws/zycit085~dtdesemb
/pws/zycit003~matnr /pws/zycit003~qtd_iten
/pws/zycit100~item_adi_sisc
FROM ( ( /pws/zycit085
INNER JOIN /pws/zycit100 ON
/pws/zycit085~nrseqdi = /pws/zycit100~nrseqdi )
INNER JOIN /pws/zycit003 ON
/pws/zycit003~nrseq = /pws/zycit100~nrseq
AND /pws/zycit003~ebeln = /pws/zycit100~ebeln
AND /pws/zycit003~ebelp = /pws/zycit100~ebelp )
INTO TABLE itab_di
WHERE /pws/zycit085~bukrs EQ pa_buk
AND /pws/zycit085~nrseqdi IN so_nrseq
AND /pws/zycit085~nrdi IN so_nrda
AND /pws/zycit100~ebeln IN so_beln
AND /pws/zycit100~ebelp IN so_belp
AND /pws/zycit003~matnr IN so_matn
AND /pws/zycit100~codfunleg = itab_zycit482-codfunleg
.
LOOP AT itab_di.
MOVE: itab_di-nrseqdi TO itab_da-nrseqda ,
itab_di-nrseq TO itab_da-nrseq,
itab_di-nrdi TO itab_da-nrdi ,
itab_di-bukrs TO itab_da-bukrs ,
itab_di-codreg TO itab_da-codreg ,
itab_di-dtdesemb TO itab_da-dtdesemb ,
itab_di-ebeln TO itab_da-ebeln ,
itab_di-ebelp TO itab_da-ebelp ,
itab_di-adicao TO itab_da-adicao ,
itab_di-matnr TO itab_da-matnr ,
itab_di-qtd_iten TO itab_da-qtd_lote.
APPEND itab_da.
ENDLOOP.
IF NOT itab_da[] IS INITIAL.
IF /pws/zycie001-regime EQ '16' .
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_da
WHERE ebeln EQ itab_da-ebeln
AND ebelp EQ itab_da-ebelp
AND nrseqda EQ itab_da-nrseqda.
ENDIF.
IF NOT itab_zycit003_saldo[] IS INITIAL.
IF /pws/zycie001-regime EQ '16' .
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq
AND regime EQ '16'
AND tpdecl EQ 'DI'.
ELSE.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq
AND regime EQ '04'
AND tpdecl EQ 'DI'.
ENDIF.
ENDIF.
MOVE itab_zycit003_saldo[] TO itab_zycit003_saldo_aux[].
CLEAR itab_zycit003_saldo.
REFRESH itab_zycit003_saldo.
LOOP AT itab_zycit001_saldo.
LOOP AT itab_zycit003_saldo_aux WHERE
nrseq = itab_zycit001_saldo-nrseq.
MOVE itab_zycit003_saldo_aux TO itab_zycit003_saldo.
APPEND itab_zycit003_saldo.
ENDLOOP.
ENDLOOP.
CLEAR v_qtdutil_da.
LOOP AT itab_da.
v_index = sy-tabix.
LOOP AT itab_zycit003_saldo WHERE ebeln EQ itab_da-ebeln
AND ebelp EQ itab_da-ebelp.
v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten .
ENDLOOP.
itab_da-qtd_lote = itab_da-qtd_lote - v_qtdutil_da.
IF itab_da-qtd_lote LE 0.
DELETE itab_da.
ELSE.
MODIFY itab_da INDEX v_index.
ENDIF.
CLEAR v_qtdutil_da.
ENDLOOP.
ENDIF.
ELSE.
* << Fim da inclusão
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs
/pws/zycit442~codreg
/pws/zycit442~dtdesemb /pws/zycit443~ebeln
/pws/zycit443~ebelp /pws/zycit443~matnr /pws/zycit443~qtd_iten
/pws/zycit443~qtd_iten
FROM ( /pws/zycit442
INNER JOIN /pws/zycit443 ON
/pws/zycit442~nrseqda = /pws/zycit443~nrseqda )
INTO CORRESPONDING FIELDS OF TABLE itab_da
WHERE /pws/zycit442~bukrs EQ pa_buk
...
...
* >> Início da exclusão: FORM SELECIONAR_DA
DATA: itab_zycit003_saldo LIKE itab_zycit003 OCCURS 0
WITH HEADER LINE.
* << Fim da exclusão
...
...
DELETE itab_da.
ELSE.
MODIFY itab_da INDEX v_index.
ENDIF.
CLEAR v_qtdutil_da.
ENDLOOP.
* >> Início da inclusão: FORM SELECIONAR_DA
ENDIF.
* << Fim da inclusão
ENDIF.
ELSE.
IF NOT so_lifn IS INITIAL.
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs
/pws/zycit442~codreg
/pws/zycit442~dtdesemb /pws/zycit460~lifnr /pws/zycit443~ebeln
/pws/zycit443~ebelp /pws/zycit443~matnr
/pws/zycit463~nrseqlote
/pws/zycit463~lote_forn
/pws/zycit463~numfatura /pws/zycit463~qtd_lote
...
...
ENDIF.
ENDIF.
READ TABLE itab_zycit443_aux WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
IF itab_zycit003-ntgew IS INITIAL AND
itab_zycit443_aux-gewei = 'G' AND NOT
itab_zycit003-qtd_iten IS INITIAL.
itab_zycit003-ntgew = 1 / 1000.
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
ENDIF.
ENDIF.
CLEAR itab_zycit482.
SELECT * FROM /pws/zycit482 INTO TABLE itab_zycit482
WHERE processo = '1'.
READ TABLE itab_zycit482 WITH KEY
processo = '1'.
IF sy-subrc = 0 AND /pws/zycie001-regime EQ '16'.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND nrseqda EQ itab_zycit003-nrseqda.
CLEAR v_qtdutil_da.
LOOP AT itab_zycit003_saldo
WHERE ebeln = itab_zycit003-ebeln
AND ebelp = itab_zycit003-ebelp.
IF itab_zycit003_saldo-nrseq NE /pws/zycie001-nrseq.
v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten .
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
ENDLOOP.
SELECT SINGLE * FROM /pws/zycit100
WHERE ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
nrseqdi = itab_zycit003-nrseqda.
SELECT SINGLE qtd_iten
FROM /pws/zycit003 INTO itab_zycit443-qtd_da
WHERE nrseq = /pws/zycit100-nrseq AND
ebeln = /pws/zycit100-ebeln AND
ebelp = /pws/zycit100-ebelp.
IF sy-subrc EQ 0 .
itab_zycit003-sld_da = itab_zycit443-qtd_da -
( v_qtdutil_da + itab_zycit003-qtd_iten ).
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
ELSE.
* << Fim da inclusão
IF /pws/zycie001-regime EQ '14' OR
/pws/zycie001-regime EQ '16'.
IF NOT itab_zycit443[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_zycit443
WHERE ebeln EQ itab_zycit443-ebeln
...
...
IF itab_zycit003-sld_da LT 0.
CLEAR itab_zycit443_saldo.
READ TABLE itab_zycit443_saldo WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
itab_zycit003-sld_da = itab_zycit443_saldo-qtd_iten -
v_qtdutil_da - itab_zycit003-qtd_iten.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
ENDIF.
* << Fim da inclusão
ENDIF.
MODIFY itab_zycit003 INDEX v_tabix.
ENDLOOP.
ENDFORM.
...
...
FORM selecionar_itens_da.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
DATA: itab_t001w LIKE t001w OCCURS 0 WITH HEADER LINE,
v_qtd_util LIKE /pws/zycit003-qtd_iten.
* << Fim da inclusão
...
...
itab_zycit125 = itab_zycit460.
APPEND itab_zycit125.
CLEAR itab_zycit125.
ENDIF.
ENDIF.
ENDLOOP.
itab_zycit125_aux[] = itab_zycit125[].
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
READ TABLE itab_zycit482 WITH KEY
processo = '1'.
IF sy-subrc = 0 AND /pws/zycie001-regime = '16'.
SELECT SINGLE * FROM /pws/zycit085 WHERE
nrseqdi = itab_da-nrseqda.
IF sy-subrc = 0.
SELECT SINGLE * FROM /pws/zycit093 WHERE
nrseqce = /pws/zycit085-nrbl.
ENDIF.
SELECT SINGLE inco1 FROM /pws/zycit001 INTO /pws/zycie001-inco1
WHERE nrseq = itab_da-nrseq.
MOVE :
/pws/zycit093-agente TO /pws/zycie001-agente ,
/pws/zycit085-bukrs TO /pws/zycie001-bukrs ,
/pws/zycit085-dtsaida TO /pws/zycie001-dtsaida ,
/pws/zycit093-meiotransp TO /pws/zycie001-meioemba ,
/pws/zycit093-embarca TO /pws/zycie001-navio .
SELECT *
INTO TABLE itab_zycit085_da
FROM /pws/zycit085
FOR ALL ENTRIES IN itab_da
WHERE nrseqdi EQ itab_da-nrseqda.
SELECT *
INTO TABLE itab_zycit100_da
FROM /pws/zycit100
FOR ALL ENTRIES IN itab_da
WHERE nrseqdi EQ itab_da-nrseqda.
SELECT *
INTO TABLE itab_zycit003_da
FROM /pws/zycit003
FOR ALL ENTRIES IN itab_zycit100_da
WHERE nrseq EQ itab_zycit100_da-nrseq.
ELSE.
* << Fim da inclusão
SELECT SINGLE *
FROM /pws/zycit442
WHERE nrseqda EQ itab_da-nrseqda
AND ( codreg EQ '02' OR
codreg EQ '04' ).
IF /pws/zycit442-statusfin NE space.
MESSAGE i015 WITH text-255.
EXIT.
ENDIF.
SELECT *
INTO TABLE itab_zycit443
FROM /pws/zycit443
FOR ALL ENTRIES IN itab_da
WHERE nrseqda EQ itab_da-nrseqda.
SELECT *
INTO TABLE itab_zycit442
FROM /pws/zycit442
FOR ALL ENTRIES IN itab_da
WHERE nrseqda EQ itab_da-nrseqda.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
ENDIF.
ENDIF.
LOOP AT itab_da.
MOVE : itab_da-ebeln TO itab_nac-ebeln,
itab_da-ebelp TO itab_nac-ebelp,
itab_da-qtd_nac TO itab_nac-qtd_nac,
itab_da-ID_REG_ANO_NAC to itab_nac-ID_REG_ANO_NAC,
itab_da-ID_REG_NUM_NAC to itab_nac-ID_REG_NUM_NAC,
itab_da-ID_REG_ITM_NAC to itab_nac-ID_REG_ITM_NAC.
COLLECT itab_nac.
ENDLOOP.
READ TABLE itab_zycit482 WITH KEY
processo = '1'.
IF sy-subrc = 0 AND /pws/zycie001-regime = '16'.
IF NOT itab_zycit100_da[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_zycit100_da
WHERE ebeln EQ itab_zycit100_da-ebeln
AND ebelp EQ itab_zycit100_da-ebelp
AND nrseq NE itab_zycit100_da-nrseq.
IF sy-subrc EQ 0.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq
AND tpdecl EQ 'DI'.
ENDIF.
ENDIF.
IF itab_zycit100_da[] IS INITIAL.
MESSAGE s015 WITH text-259 text-264.
EXIT.
ENDIF.
CLEAR v_centro_dif.
LOOP AT itab_da.
READ TABLE itab_zycit003_da WITH KEY
ebeln = itab_da-ebeln
ebelp = itab_da-ebelp
nrseq = itab_da-nrseq.
CLEAR itab_nac.
READ TABLE itab_nac WITH KEY ebeln = itab_da-ebeln
ebelp = itab_da-ebelp.
CLEAR itab_zycit100_da.
READ TABLE itab_zycit100_da WITH KEY
ebeln = itab_da-ebeln
ebelp = itab_da-ebelp
nrseq = itab_da-nrseq.
IF sy-subrc IS INITIAL.
IF itab_da-werks IS INITIAL.
itab_da-werks = itab_zycit003_da-werks.
ELSE.
IF itab_da-werks NE itab_zycit003_da-werks.
v_centro_dif = c_sim.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit100_da.
READ TABLE itab_zycit003_da WITH KEY
ebeln = itab_zycit100_da-ebeln
ebelp = itab_zycit100_da-ebelp
nrseq = itab_zycit100_da-nrseq.
CLEAR v_qtd_util.
LOOP AT itab_zycit003_saldo
WHERE ebeln = itab_zycit100_da-ebeln
AND ebelp = itab_zycit100_da-ebelp
AND nrseq NE itab_zycit100_da-nrseq.
v_qtd_util = v_qtd_util + itab_zycit003_saldo-qtd_iten.
ENDLOOP.
READ TABLE itab_nac WITH KEY ebeln = itab_zycit100_da-ebeln
ebelp = itab_zycit100_da-ebelp.
IF sy-subrc = 0.
MOVE:
itab_zycit003_da-advalicms TO itab_zycit003-advalicms ,
itab_zycit003_da-advalii TO itab_zycit003-advalii ,
itab_zycit003_da-advalipi TO itab_zycit003-advalipi,
itab_zycit003_da-aliqicms TO itab_zycit003-aliqicms ,
itab_zycit003_da-aliqii TO itab_zycit003-aliqii ,
itab_zycit003_da-aliqipi TO itab_zycit003-aliqipi ,
itab_zycit003_da-basred TO itab_zycit003-basred ,
itab_zycit100_da-ebeln TO itab_zycit003-ebeln ,
itab_zycit100_da-ebelp TO itab_zycit003-ebelp ,
itab_zycit003_da-extarif_al TO itab_zycit003-extarif_al ,
itab_zycit003_da-ii_anoemiss TO itab_zycit003-ii_anoemiss,
itab_zycit003_da-ii_extarif TO itab_zycit003-ii_extarif ,
itab_zycit003_da-ii_numero TO itab_zycit003-ii_numero ,
itab_zycit003_da-ii_orgemiss TO itab_zycit003-ii_orgemiss ,
itab_zycit003_da-ii_tipo TO itab_zycit003-ii_tipo ,
itab_zycit003_da-indic_obrig TO itab_zycit003-indic_obrig ,
itab_zycit003_da-ipi_anoemiss TO itab_zycit003-ipi_anoemiss,
itab_zycit003_da-ipi_extarif TO itab_zycit003-ipi_extarif,
itab_zycit003_da-ipi_numero TO itab_zycit003-ipi_numero,
itab_zycit003_da-ipi_orgemiss TO itab_zycit003-ipi_orgemiss,
itab_zycit003_da-ipi_tipo TO itab_zycit003-ipi_tipo,
itab_zycit003_da-j_1bnbm TO itab_zycit003-j_1bnbm,
itab_zycit003_da-lifnr TO itab_zycit003-lifnr,
itab_zycit003_da-matnr TO itab_zycit003-matnr,
itab_zycit003_da-meins TO itab_zycit003-meins,
itab_zycit003_da-meinsest TO itab_zycit003-meinsest,
itab_zycit003_da-qtd_iten TO itab_zycit003-menge,
itab_zycit003_da-modalidade TO itab_zycit003-modalidade,
itab_zycit003_da-naladi TO itab_zycit003-naladi,
itab_zycit003_da-naladincca TO itab_zycit003-naladincca,
itab_zycit003_da-netpr TO itab_zycit003-netpr,
itab_zycit003_da-nrdrawback TO itab_zycit003-nrdrawback,
itab_zycit003_da-nrli TO itab_zycit003-nrli,
itab_zycit003_da-nrseqli TO itab_zycit003-nrseqli,
itab_zycit003_da-orgemiss_al TO itab_zycit003-orgemiss_al,
itab_nac-qtd_nac TO itab_zycit003-qtd_iten ,
itab_zycit003_da-qtdeumest TO itab_zycit003-qtdeumest,
itab_zycit003_da-tipo_al TO itab_zycit003-tipo_al,
itab_zycit003_da-vlfre_fat TO itab_zycit003-vlfre_fat,
itab_zycit003_da-werks TO itab_zycit003-werks,
itab_zycit003_da-ad_anoemiss TO itab_zycit003-ad_anoemiss,
itab_zycit003_da-ad_extarif TO itab_zycit003-ad_extarif,
itab_zycit003_da-ad_numero TO itab_zycit003-ad_numero,
itab_zycit003_da-ad_orgemiss TO itab_zycit003-ad_orgemiss,
itab_zycit003_da-ad_tipo TO itab_zycit003-ad_tipo,
itab_zycit003_da-anoemiss_al TO itab_zycit003-anoemiss_al,
itab_zycit003_da-aplicacao TO itab_zycit003-aplicacao,
itab_zycit003_da-bednr TO itab_zycit003-bednr,
itab_zycit003_da-condmerc TO itab_zycit003-condmerc,
itab_zycit003_da-descr TO itab_zycit003-descr,
itab_zycit003_da-gewei TO itab_zycit003-gewei,
itab_zycit003_da-gsber TO itab_zycit003-gsber,
itab_zycit003_da-numero_al TO itab_zycit003-numero_al,
itab_zycit003_da-vlreal TO itab_zycit003-vlreal,
itab_zycit003_da-waers TO itab_zycit003-waers,
itab_zycit003_da-qtd_iten TO itab_zycit003-menge ,
itab_zycit003_da-netpr TO itab_zycit003-v_fob ,
/pws/zycie001-nrseq TO itab_zycit003-nrseq ,
itab_zycit100_da-nrseqdi TO itab_zycit003-nrseqda,
itab_zycit100_da-adicao TO itab_zycit003-adicao ,
/pws/zycit085-nrdi TO itab_zycit003-nrdi ,
itab_nac-ID_REG_ANO_NAC to itab_zycit003-ID_REG_ANO_NAC,
itab_nac-ID_REG_NUM_NAC to itab_zycit003-ID_REG_NUM_NAC,
itab_nac-ID_REG_ITM_NAC to itab_zycit003-ID_REG_ITM_NAC.
IF NOT itab_zycit003_da-qtd_iten IS INITIAL.
itab_zycit003-ntgew = ( itab_zycit003_da-ntgew /
itab_zycit003_da-qtd_iten ) * itab_zycit003-qtd_iten.
ENDIF.
itab_zycit003-sld_da = itab_zycit003_da-qtd_iten -
v_qtd_util - itab_zycit003-qtd_iten.
APPEND itab_zycit003.
ENDIF.
ENDLOOP.
IF v_centro_dif EQ c_sim.
itab_zycit003_aux[] = itab_zycit003[].
CLEAR itab_zycit003.
REFRESH itab_zycit003.
SORT itab_zycit003_aux BY ebeln ebelp werks.
LOOP AT itab_zycit003_aux.
ON CHANGE OF itab_zycit003_aux-ebeln OR
itab_zycit003_aux-ebelp OR
itab_zycit003_aux-werks.
itab_zycit003 = itab_zycit003_aux.
CLEAR itab_nac.
READ TABLE itab_nac WITH KEY
ebeln = itab_zycit003_aux-ebeln
ebelp = itab_zycit003_aux-ebelp.
IF sy-subrc IS INITIAL.
itab_zycit003-qtd_iten = itab_nac-qtd_nac.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
APPEND itab_zycit003.
CLEAR itab_zycit003.
ENDON.
ENDLOOP.
ENDIF.
ELSE.
* << Fim da inclusão
IF NOT /pws/zycit442 IS INITIAL.
MOVE :
/pws/zycit442-agente TO /pws/zycie001-agente ,
/pws/zycit442-bukrs TO /pws/zycie001-bukrs ,
/pws/zycit442-dtsaida TO /pws/zycie001-dtsaida ,
/pws/zycit442-inco1 TO /pws/zycie001-inco1 ,
/pws/zycit442-meiotransp TO /pws/zycie001-meioemba ,
/pws/zycit442-embarca TO /pws/zycie001-navio .
ENDIF.
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
LOOP AT itab_da.
MOVE : itab_da-ebeln TO itab_nac-ebeln,
itab_da-ebelp TO itab_nac-ebelp,
itab_da-qtd_nac TO itab_nac-qtd_nac.
COLLECT itab_nac.
ENDLOOP.
* << Fim da exclusão
LOOP AT itab_zycit443 .
v_tabix = sy-tabix.
READ TABLE itab_nac WITH KEY ebeln = itab_zycit443-ebeln
ebelp = itab_zycit443-ebelp.
IF sy-subrc EQ 0.
itab_zycit443-qtd_iten = itab_nac-qtd_nac.
MODIFY itab_zycit443 INDEX v_tabix.
ENDIF.
ENDLOOP.
IF /pws/zycie001-regime NE '16'.
...
...
itab_zycit443-gewei TO itab_zycit003-gewei,
itab_zycit443-gsber TO itab_zycit003-gsber,
itab_zycit443-numero_al TO itab_zycit003-numero_al,
itab_zycit443-vlreal TO itab_zycit003-vlreal,
itab_zycit443-waersbem TO itab_zycit003-waers,
itab_zycit443-qtd_da TO itab_zycit003-menge ,
itab_zycit443-netpr TO itab_zycit003-v_fob ,
/pws/zycie001-nrseq TO itab_zycit003-nrseq ,
itab_zycit443-nrseqda TO itab_zycit003-nrseqda,
itab_zycit443-adicao TO itab_zycit003-adicao ,
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
/pws/zycit442-nrdi TO itab_zycit003-nrdi .
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
/pws/zycit442-nrdi TO itab_zycit003-nrdi ,
itab_nac-ID_REG_ANO_NAC to itab_zycit003-ID_REG_ANO_NAC,
itab_nac-ID_REG_NUM_NAC to itab_zycit003-ID_REG_NUM_NAC,
itab_nac-ID_REG_ITM_NAC to itab_zycit003-ID_REG_ITM_NAC.
* << Fim da inclusão
IF NOT itab_zycit443-qtd_da IS INITIAL.
itab_zycit003-ntgew = ( itab_zycit443-ntgew /
itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.
ENDIF.
itab_zycit003-sld_da = itab_zycit443-qtd_sld =
itab_zycit443-qtd_da - itab_zycit443-qtd_util -
itab_zycit443-qtd_iten.
APPEND itab_zycit003.
ENDIF.
ENDLOOP.
...
...
v_tabix = sy-tabix.
CLEAR itab_zycit003_aux3.
READ TABLE itab_zycit003_aux3 WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
itab_zycit003-qtd_iten = itab_zycit003_aux3-qtd_iten.
itab_zycit003-ntgew = itab_zycit003_aux3-ntgew.
itab_zycit003-sld_da = itab_zycit003_aux3-sld_da.
MODIFY itab_zycit003 INDEX v_tabix.
ENDLOOP.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
ENDIF.
* << Fim da inclusão
ENDIF.
CLEAR itab_nac.
REFRESH itab_nac.
MOVE itab_da[] TO itab_da_aux[].
CLEAR itab_da. REFRESH itab_da.
LOOP AT itab_da_aux.
DELETE itab_zycit467_del WHERE nrseqda EQ itab_da_aux-nrseqda
AND nrseqlote EQ itab_da_aux-nrseqlote
AND nrseq EQ /pws/zycie001-nrseq
AND ebeln EQ itab_da_aux-ebeln
...
...
/pws/zycie003-nrli TO itab_zycit003-nrli ,
/pws/zycie003-nrseqlsi TO itab_zycit003-nrseqlsi,
/pws/zycie003-nrlsi TO itab_zycit003-nrlsi ,
/pws/zycie003-tpnf TO itab_zycit003-tpnf ,
/pws/zycie003-dtalocprod TO itab_zycit003-dtalocprod,
/pws/zycie003-dtremessa TO itab_zycit003-dtremessa ,
/pws/zycie003-dtprovent TO itab_zycit003-dtprovent ,
/pws/zycie003-nrlisub TO itab_zycit003-nrlisub ,
/pws/zycie003-nrlsisub TO itab_zycit003-nrlsisub ,
/pws/zycie003-corigobrig TO itab_zycit003-corigobrig,
* >> Início da exclusão: FORM CARREGA_ITAB_0111
/pws/zycie003-servico TO itab_zycit003-servico .
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_ITAB_0111
/pws/zycie003-servico TO itab_zycit003-servico ,
/pws/zycie003-ID_REG_ANO_NAC TO itab_zycit003-ID_REG_ANO_NAC,
/pws/zycie003-ID_REG_NUM_NAC TO itab_zycit003-ID_REG_NUM_NAC,
/pws/zycie003-ID_REG_ITM_NAC TO itab_zycit003-ID_REG_ITM_NAC.
* << Fim da inclusão
MODIFY itab_zycit003 INDEX tc_da-current_line.
ENDFORM.
...
...
FORM selecionar_rc.
* >> Início da inclusão: FORM SELECIONAR_RC
DATA: BEGIN OF itab_zycit003_saldo_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycit003.
DATA: END OF itab_zycit003_saldo_aux.
* << Fim da inclusão
...
...
DATA:
v_tipo TYPE REF TO data,
v_reg TYPE i,
BEGIN OF itab_rc_aux OCCURS 100,
cod_matriz TYPE /pws/zycie442-bukrs,
cod_filial TYPE /pws/zycie442-j_1bbranch,
num_da_di TYPE /pws/zycie442-nrdi,
num_adicao TYPE /pws/zycie443-adicao,
num_item_adicao TYPE /pws/zycie443-item_adi_sisc,
quantidade TYPE /pws/zycie443-qtd_da,
* >> Início da inclusão: FORM SELECIONAR_RC
ID_REG_ANO_NAC type /pws/zycit003-ID_REG_ANO_NAC,
ID_REG_NUM_NAC type /pws/zycit003-ID_REG_NUM_NAC,
ID_REG_ITM_NAC type /pws/zycit003-ID_REG_ITM_NAC,
* << Fim da inclusão
END OF itab_rc_aux.
...
...
ASSIGN COMPONENT 'NUM_ITEM_ADICAO' OF STRUCTURE <fs_hearc>
TO <fs_fldrc>.
IF <fs_fldrc> IS ASSIGNED.
itab_rc_aux-num_item_adicao = <fs_fldrc>.
ENDIF.
UNASSIGN <fs_fldrc>.
ASSIGN COMPONENT 'QUANTIDADE' OF STRUCTURE <fs_hearc>
TO <fs_fldrc>.
IF <fs_fldrc> IS ASSIGNED.
itab_rc_aux-quantidade = <fs_fldrc>.
* >> Início da inclusão: FORM SELECIONAR_RC
ENDIF.
UNASSIGN <fs_fldrc>.
ASSIGN COMPONENT 'ID_REG_ANO_NAC' OF STRUCTURE <fs_hearc>
TO <fs_fldrc>.
IF <fs_fldrc> IS ASSIGNED.
itab_rc_aux-ID_REG_ANO_NAC = <fs_fldrc>.
ENDIF.
UNASSIGN <fs_fldrc>.
ASSIGN COMPONENT 'ID_REG_NUM_NAC' OF STRUCTURE <fs_hearc>
TO <fs_fldrc>.
IF <fs_fldrc> IS ASSIGNED.
itab_rc_aux-ID_REG_NUM_NAC = <fs_fldrc>.
ENDIF.
UNASSIGN <fs_fldrc>.
ASSIGN COMPONENT 'ID_REG_ITM_NAC' OF STRUCTURE <fs_hearc>
TO <fs_fldrc>.
IF <fs_fldrc> IS ASSIGNED.
itab_rc_aux-ID_REG_ITM_NAC = <fs_fldrc>.
* << Fim da inclusão
ENDIF.
APPEND itab_rc_aux.
ENDLOOP.
DELETE ADJACENT DUPLICATES
FROM itab_rc_aux.
IF NOT itab_rc_aux[] IS INITIAL.
* >> Início da inclusão: FORM SELECIONAR_RC
READ TABLE itab_zycit482 WITH KEY
processo = '1'.
IF sy-subrc = 0.
REFRESH: itab_di, itab_da.
CLEAR: itab_di , itab_da.
SELECT /pws/zycit085~nrseqdi /pws/zycit100~nrseq /pws/zycit100~ebeln
/pws/zycit100~ebelp /pws/zycit100~adicao /pws/zycit085~nrdi
/pws/zycit085~bukrs /pws/zycit085~codreg /pws/zycit085~dtdesemb
/pws/zycit003~matnr /pws/zycit003~qtd_iten
/pws/zycit100~item_adi_sisc
FROM ( ( /pws/zycit085
INNER JOIN /pws/zycit100 ON
/pws/zycit085~nrseqdi = /pws/zycit100~nrseqdi )
INNER JOIN /pws/zycit003 ON
/pws/zycit003~nrseq = /pws/zycit100~nrseq
AND /pws/zycit003~ebeln = /pws/zycit100~ebeln
AND /pws/zycit003~ebelp = /pws/zycit100~ebelp )
INTO TABLE itab_di
FOR ALL ENTRIES IN itab_rc_aux
WHERE /pws/zycit085~bukrs EQ itab_rc_aux-cod_matriz
AND /pws/zycit085~j_1bbranch EQ itab_rc_aux-cod_filial
AND /pws/zycit085~nrdi EQ itab_rc_aux-num_da_di
AND /pws/zycit100~adicao EQ itab_rc_aux-num_adicao
AND /pws/zycit100~item_adi_sisc EQ itab_rc_aux-num_item_adicao
AND /pws/zycit100~codfunleg = itab_zycit482-codfunleg.
IF sy-subrc = 0.
LOOP AT itab_di.
clear itab_rc_aux.
read table itab_rc_aux with key
cod_matriz = itab_di-bukrs
num_da_di = itab_di-nrdi
num_adicao = itab_di-adicao
num_item_adicao = itab_di-item_adi_sisc.
MOVE: itab_di-nrseqdi TO itab_da-nrseqda ,
itab_di-nrseq TO itab_da-nrseq,
itab_di-nrdi TO itab_da-nrdi ,
itab_di-bukrs TO itab_da-bukrs ,
itab_di-codreg TO itab_da-codreg ,
itab_di-dtdesemb TO itab_da-dtdesemb ,
itab_di-ebeln TO itab_da-ebeln ,
itab_di-ebelp TO itab_da-ebelp ,
itab_di-adicao TO itab_da-adicao ,
itab_di-matnr TO itab_da-matnr ,
itab_di-qtd_iten TO itab_da-qtd_lote,
itab_di-item_adi_sisc TO itab_da-itseqda.
move:
itab_rc_aux-ID_REG_ANO_NAC to itab_da-ID_REG_ANO_NAC,
itab_rc_aux-ID_REG_NUM_NAC to itab_da-ID_REG_NUM_NAC,
itab_rc_aux-ID_REG_ITM_NAC to itab_da-ID_REG_ITM_NAC.
APPEND itab_da.
ENDLOOP.
SORT itab_da BY nrseqda adicao itseqda ebeln ebelp
ID_REG_ANO_NAC ID_REG_NUM_NAC ID_REG_ITM_NAC.
DELETE ADJACENT DUPLICATES FROM itab_da
COMPARING nrseqda adicao itseqda
ID_REG_ANO_NAC ID_REG_NUM_NAC ID_REG_ITM_NAC.
IF NOT itab_da[] IS INITIAL.
IF /pws/zycie001-regime EQ '16' .
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_da
WHERE ebeln EQ itab_da-ebeln
AND ebelp EQ itab_da-ebelp
AND nrseqda EQ itab_da-nrseqda.
ENDIF.
IF NOT itab_zycit003_saldo[] IS INITIAL.
IF /pws/zycie001-regime EQ '16' .
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq
AND regime EQ '16'
AND tpdecl EQ 'DI'.
ELSE.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq
AND regime EQ '04'
AND tpdecl EQ 'DI'.
ENDIF.
ENDIF.
MOVE itab_zycit003_saldo[] TO itab_zycit003_saldo_aux[].
CLEAR itab_zycit003_saldo.
REFRESH itab_zycit003_saldo.
LOOP AT itab_zycit001_saldo.
LOOP AT itab_zycit003_saldo_aux WHERE
nrseq = itab_zycit001_saldo-nrseq.
MOVE itab_zycit003_saldo_aux TO itab_zycit003_saldo.
APPEND itab_zycit003_saldo.
ENDLOOP.
ENDLOOP.
CLEAR v_qtdutil_da.
LOOP AT itab_da.
v_index = sy-tabix.
LOOP AT itab_zycit003_saldo WHERE ebeln EQ itab_da-ebeln
AND ebelp EQ itab_da-ebelp.
v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten .
ENDLOOP.
itab_da-qtd_lote = itab_da-qtd_lote - v_qtdutil_da.
IF itab_da-qtd_lote LE 0.
DELETE itab_da.
ELSE.
MODIFY itab_da INDEX v_index.
ENDIF.
CLEAR v_qtdutil_da.
ENDLOOP.
ENDIF.
MOVE itab_da[] TO itab_da_aux[].
LOOP AT itab_da.
v_reg = sy-tabix.
READ TABLE itab_rc_aux
WITH KEY cod_matriz = itab_da-bukrs
num_da_di = itab_da-nrdi
num_adicao = itab_da-adicao
num_item_adicao = itab_da-itseqda.
IF sy-subrc NE 0 OR itab_rc_aux-quantidade IS INITIAL.
DELETE itab_da INDEX v_reg.
ELSE.
itab_da-qtd_nac = itab_rc_aux-quantidade.
MODIFY itab_da FROM itab_da TRANSPORTING qtd_nac.
ENDIF.
ENDLOOP.
ENDIF.
ELSE.
* << Fim da inclusão
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi
/pws/zycit442~bukrs
/pws/zycit442~codreg
/pws/zycit442~dtdesemb
/pws/zycit443~lifnr AS agente
/pws/zycit443~ebeln /pws/zycit443~ebelp
/pws/zycit443~matnr
/pws/zycit443~qtd_da AS qtd_lote
/pws/zycit443~qtd_iten AS qtd_nac
/pws/zycit443~adicao /pws/zycit443~item_adi_sisc
INTO CORRESPONDING FIELDS OF TABLE itab_da_aux3
FROM ( /pws/zycit442 INNER JOIN /pws/zycit443
* >> Início da exclusão: FORM SELECIONAR_RC
ON /pws/zycit442~nrseqda = /pws/zycit443~nrseqda
INNER JOIN /pws/zycit455
ON /pws/zycit442~nrseqda = /pws/zycit455~nrseqda )
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_RC
ON /pws/zycit442~nrseqda = /pws/zycit443~nrseqda )
* << Fim da inclusão
FOR ALL entries IN itab_rc_aux
WHERE /pws/zycit442~bukrs EQ itab_rc_aux-cod_matriz
AND /pws/zycit442~j_1bbranch EQ itab_rc_aux-cod_filial
AND /pws/zycit442~nrdi EQ itab_rc_aux-num_da_di
AND /pws/zycit443~adicao EQ itab_rc_aux-num_adicao
AND /pws/zycit443~item_adi_sisc EQ itab_rc_aux-num_item_adicao.
IF sy-subrc EQ 0.
* >> Início da inclusão: FORM SELECIONAR_RC
LOOP AT itab_da_aux3.
clear itab_rc_aux.
read table itab_rc_aux with key
cod_matriz = itab_da_aux3-bukrs
num_da_di = itab_da_aux3-nrdi
num_adicao = itab_da_aux3-adicao
num_item_adicao = itab_da_aux3-item_adi_sisc.
move:
itab_rc_aux-ID_REG_ANO_NAC to itab_da_aux3-ID_REG_ANO_NAC,
itab_rc_aux-ID_REG_NUM_NAC to itab_da_aux3-ID_REG_NUM_NAC,
itab_rc_aux-ID_REG_ITM_NAC to itab_da_aux3-ID_REG_ITM_NAC.
modify itab_da_aux3.
endloop.
* << Fim da inclusão
MOVE itab_da_aux3[] TO itab_da[].
SORT itab_da BY nrseqda adicao itseqda
* >> Início da exclusão: FORM SELECIONAR_RC
ebeln ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_RC
ebeln ebelp ID_REG_ANO_NAC ID_REG_NUM_NAC ID_REG_ITM_NAC .
* << Fim da inclusão
DELETE ADJACENT DUPLICATES FROM itab_da
COMPARING nrseqda adicao itseqda
* >> Início da exclusão: FORM SELECIONAR_RC
ebeln ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_RC
ebeln ebelp ID_REG_ANO_NAC ID_REG_NUM_NAC ID_REG_ITM_NAC.
* << Fim da inclusão
MOVE itab_da[] TO itab_da_aux[].
LOOP AT itab_da.
v_reg = sy-tabix.
READ TABLE itab_rc_aux
WITH KEY cod_matriz = itab_da-bukrs
num_da_di = itab_da-nrdi
num_adicao = itab_da-adicao
num_item_adicao = itab_da-itseqda.
IF sy-subrc NE 0 OR itab_rc_aux-quantidade IS INITIAL.
DELETE itab_da INDEX v_reg.
ELSE.
itab_da-qtd_nac = itab_rc_aux-quantidade.
MODIFY itab_da FROM itab_da TRANSPORTING qtd_nac.
ENDIF.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FORM SELECIONAR_RC
ENDIF.
* << Fim da inclusão
IF NOT itab_da[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_da
WHERE ebeln EQ itab_da-ebeln
AND ebelp EQ itab_da-ebelp.
IF sy-subrc EQ 0.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq
...
...
ENDLOOP.
DELETE itab_zycit003_util WHERE nrseq EQ /pws/zycie001-nrseq.
LOOP AT itab_zycit003 .
itab_zycit003_util-nrseq = itab_zycit003-nrseq.
itab_zycit003_util-ebeln = itab_zycit003-ebeln.
itab_zycit003_util-ebelp = itab_zycit003-ebelp.
itab_zycit003_util-qtd_iten = itab_zycit003-qtd_iten.
APPEND itab_zycit003_util.
ENDLOOP.
IF NOT itab_pedido_temp[] IS INITIAL.
* >> Início da inclusão: FORM CARREGA_SALDO
IF /pws/zycie001-regime = '16' AND /pws/zycie001-tpdecl = 'DI' AND
sy-subrc = 0.
SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003
APPENDING TABLE itab_zycit003_util
FOR ALL ENTRIES IN itab_pedido_temp
WHERE ebeln EQ itab_pedido_temp-ebeln
AND ebelp EQ itab_pedido_temp-ebelp
AND nrseq NE /pws/zycie001-nrseq
AND nrseqda NE ' '.
IF NOT itab_zycit003_util[] IS INITIAL.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_util
WHERE nrseq EQ itab_zycit003_util-nrseq.
LOOP AT itab_zycit001_saldo WHERE regime EQ '16' .
DELETE itab_zycit003_util
WHERE nrseq EQ itab_zycit001_saldo-nrseq.
ENDLOOP .
ENDIF .
ELSEIF /pws/zycie001-regime = '04' AND /pws/zycie001-tpdecl = 'DI'
AND sy-subrc EQ 0.
SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003
APPENDING TABLE itab_zycit003_util
FOR ALL ENTRIES IN itab_pedido_temp
WHERE ebeln EQ itab_pedido_temp-ebeln
AND ebelp EQ itab_pedido_temp-ebelp
AND nrseq NE /pws/zycie001-nrseq
AND nrseqda NE ' '.
ELSE.
SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003
APPENDING TABLE itab_zycit003_util
FOR ALL ENTRIES IN itab_pedido_temp
WHERE ebeln EQ itab_pedido_temp-ebeln
AND ebelp EQ itab_pedido_temp-ebelp
AND nrseq NE /pws/zycie001-nrseq.
ENDIF.
ELSE.
* << Fim da inclusão
SELECT nrseq ebeln ebelp qtd_iten FROM /pws/zycit003
APPENDING TABLE itab_zycit003_util
FOR ALL ENTRIES IN itab_pedido_temp
WHERE ebeln EQ itab_pedido_temp-ebeln
AND ebelp EQ itab_pedido_temp-ebelp
AND nrseq NE /pws/zycie001-nrseq.
...
...
LOOP AT itab_zycit013.
CLEAR: itab_pedido, itab_zycit003_util.
READ TABLE itab_pedido WITH KEY ebeln = itab_zycit013-ebeln
ebelp = itab_zycit013-ebelp.
IF sy-subrc EQ 0.
CLEAR v_qtdemb.
LOOP AT itab_zycit003_util WHERE ebeln EQ itab_zycit013-ebeln
* >> Início da exclusão: FORM CARREGA_SALDO
AND ebelp EQ itab_zycit013-ebelp.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_SALDO
AND ebelp EQ itab_zycit013-ebelp
and nrseq ne /pws/zycie001-nrseq.
* << Fim da inclusão
v_qtdemb = v_qtdemb + itab_zycit003_util-qtd_iten.
ENDLOOP.
ENDIF.
v_slqtde = itab_pedido-menge - v_qtdemb.
IF v_slqtde NE itab_zycit013-slqtde.
IF /pws/zycie001-regime NE '16'.
itab_zycit013-slqtde = v_slqtde.
UPDATE /pws/zycit013 SET slqtde = itab_zycit013-slqtde
menge = itab_pedido-menge
WHERE ebeln = itab_zycit013-ebeln
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
PERFORM verifica_itens.
ELSE.
PERFORM verifica_itens_da.
ENDIF.
* >> Início da exclusão: MODULE ATUALIZA_ITENS
IF /pws/zycie003-qtd_iten > /pws/zycie003-menge.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITENS
IF /pws/zycie003-qtd_iten > /pws/zycie003-menge .
* << Fim da inclusão
MESSAGE w061 WITH text-004 itab_zycit003-ebelp
text-005 itab_zycit003-ebeln.
v_mexit = 'X'.
EXIT.
ELSE.
LOOP AT itab_zycit003.
v_indice = sy-tabix.
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
PERFORM atualiza_itens.
PERFORM qtd_est.
...
...
ENDIF.
PERFORM call_da.
SELECT SINGLE status
FROM /pws/zycit001
INTO /pws/zycie001-status
WHERE nrseq = /pws/zycie001-nrseq.
WHEN 'SELE_DA'.
IF /pws/zycie001-regime = '16'.
PERFORM verifica_rc.
ENDIF.
* >> Início da inclusão: MODULE USER_COMMAND_0050
select * from /pws/zycit482 into table itab_zycit482
where processo = '1'.
* << Fim da inclusão
IF v_manual EQ 'N'.
CALL SELECTION-SCREEN '0701'.
ELSE.
CALL SELECTION-SCREEN '0700'.
ENDIF.
WHEN 'SELE_RC'.
CALL SELECTION-SCREEN '0701'.
WHEN 'CUSTO_DA'.
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
mfrnr LIKE ekpo-mfrnr.
DATA: END OF itab_fabric.
DATA: BEGIN OF itab_zycit442 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit442.
DATA: END OF itab_zycit442.
DATA: BEGIN OF itab_zycit443 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit443.
DATA: qtd_sld LIKE /pws/zycit443-qtd_iten,
qtd_util LIKE /pws/zycit443-qtd_iten.
DATA: END OF itab_zycit443.
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit085_da OCCURS 0.
INCLUDE STRUCTURE /pws/zycit085.
DATA: END OF itab_zycit085_da.
DATA: BEGIN OF itab_zycit100_da OCCURS 0.
INCLUDE STRUCTURE /pws/zycit100.
DATA: qtd_sld LIKE /pws/zycit003-qtd_iten,
qtd_util LIKE /pws/zycit003-qtd_iten.
DATA: END OF itab_zycit100_da.
DATA: BEGIN OF itab_zycit003_da OCCURS 0.
INCLUDE STRUCTURE /pws/zycit003.
DATA: END OF itab_zycit003_da.
* << Fim da inclusão
DATA: BEGIN OF itab_komk OCCURS 0.
INCLUDE STRUCTURE komk.
DATA: END OF itab_komk.
DATA: BEGIN OF itab_komk_aux OCCURS 0.
INCLUDE STRUCTURE komk.
DATA: ebeln LIKE ekko-ebeln.
DATA: END OF itab_komk_aux.
DATA: BEGIN OF itab_komv OCCURS 0.
INCLUDE STRUCTURE komv.
DATA: ebeln LIKE ekko-ebeln.
...
...
matnr LIKE /pws/zycie443-matnr ,
nrseqlote LIKE /pws/zycie463-nrseqlote,
lote_forn LIKE /pws/zycie463-lote_forn,
numfatura LIKE /pws/zycie463-numfatura,
qtd_lote LIKE /pws/zycie463-qtd_lote ,
qtd_nac LIKE /pws/zycie463-qtd_lote ,
qtd_usada LIKE /pws/zycie463-qtd_lote ,
adicao TYPE /pws/zycie443-adicao ,
itseqda TYPE /pws/zycit443-item_adi_sisc ,
rc TYPE flag,
* >> Início da inclusão:
nrseq like /pws/zycit100-nrseq,
* << Fim da inclusão
werks LIKE /pws/zycie003-werks,
* >> Início da inclusão:
ID_REG_ANO_NAC type /pws/zycit003-ID_REG_ANO_NAC,
ID_REG_NUM_NAC type /pws/zycit003-ID_REG_NUM_NAC,
ID_REG_ITM_NAC type /pws/zycit003-ID_REG_ITM_NAC,
* << Fim da inclusão
mark.
DATA: END OF itab_da.
* >> Início da inclusão:
DATA: BEGIN OF itab_di OCCURS 0,
NRSEQDI like /pws/zycit085-nrseqdi,
NRSEQ like /PWS/ZYCIT100-nrseq,
EBELN like /pws/zycit100-ebeln ,
EBELP like /pws/zycit100-ebelp ,
adicao like /pws/ZYCIT100-adicao,
NRDI like /pws/zycit085-nrdi ,
BUKRS like /pws/zycit085-bukrs,
CODREG like /pws/zycit085-codreg,
DTDESEMB like /pws/zycit085-dtdesemb,
MATNR like /pws/zycit003-matnr ,
qtd_iten like /pws/zycit003-qtd_iten,
item_adi_sisc like /pws/zycit100-item_adi_sisc.
DATA: END OF itab_di.
* << Fim da inclusão
DATA: BEGIN OF itab_da_aux3 occURS 0,
nrseqda LIKE /pws/zycie442-nrseqda ,
nrdi LIKE /pws/zycie442-nrdi ,
bukrs LIKE /pws/zycie442-bukrs ,
codreg LIKE /pws/zycit442-codreg,
dtdesemb LIKE /pws/zycie442-dtdesemb ,
agente LIKE /pws/zycie460-lifnr ,
ebeln LIKE /pws/zycie443-ebeln ,
ebelp LIKE /pws/zycie443-ebelp ,
matnr LIKE /pws/zycie443-matnr ,
nrseqlote LIKE /pws/zycie463-nrseqlote,
lote_forn LIKE /pws/zycie463-lote_forn,
numfatura LIKE /pws/zycie463-numfatura,
qtd_lote LIKE /pws/zycie463-qtd_lote ,
qtd_nac LIKE /pws/zycie463-qtd_lote ,
qtd_usada LIKE /pws/zycie463-qtd_lote ,
adicao TYPE /pws/zycie443-adicao ,
item_adi_sisc TYPE /pws/zycit443-item_adi_sisc ,
rc TYPE flag,
* >> Início da inclusão:
nrseq like /pws/zycit100-nrseq,
* << Fim da inclusão
werks LIKE /pws/zycie003-werks,
* >> Início da inclusão:
ID_REG_ANO_NAC type /pws/zycit003-ID_REG_ANO_NAC,
ID_REG_NUM_NAC type /pws/zycit003-ID_REG_NUM_NAC,
ID_REG_ITM_NAC type /pws/zycit003-ID_REG_ITM_NAC,
* << Fim da inclusão
mark.
DATA: END OF itab_da_aux3.
DATA : v_prod_dif.
DATA: BEGIN OF itab_zycit460 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit460.
DATA: END OF itab_zycit460.
DATA: itab_zycit443_aux LIKE itab_zycit443 OCCURS 0 WITH HEADER LINE,
itab_da_aux LIKE itab_da OCCURS 0 WITH HEADER LINE,
itab_da_aux2 LIKE itab_da OCCURS 0 WITH HEADER LINE,
itab_zycit467 LIKE /pws/zycit467 OCCURS 0 WITH HEADER LINE,
itab_zycit467_del LIKE /pws/zycit467 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_nac OCCURS 0.
DATA: ebeln LIKE /pws/zycit443-ebeln,
ebelp LIKE /pws/zycit443-ebelp,
* >> Início da exclusão:
qtd_nac LIKE /pws/zycit443-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão:
qtd_nac LIKE /pws/zycit443-qtd_iten,
ID_REG_ANO_NAC like /pws/zycit003-ID_REG_ANO_NAC,
ID_REG_NUM_NAC like /pws/zycit003-ID_REG_NUM_NAC,
ID_REG_ITM_NAC like /pws/zycit003-ID_REG_ITM_NAC.
* << Fim da inclusão
DATA: END OF itab_nac.
DATA: s_refdespachante(30),
s_descr(30),
s_dtinicio(30),
s_modalidade(30),
s_navio(30),
s_inco1(30),
s_regime(30),
s_tpvinculo(30),
s_meioemba(30),
...
...
DATA: itab_zycit477 TYPE /pws/zycit477 OCCURS 0 WITH HEADER LINE.
DATA : BEGIN OF itab_zycit125 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit125.
DATA : name1 LIKE lfa1-name1,
mark(1).
DATA : END OF itab_zycit125.
DATA : BEGIN OF itab_zycit125_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycit125.
DATA : END OF itab_zycit125_aux.
data v_tela.
* >> Início da inclusão:
data: BEGIN of itab_zycit482 occurs 0.
include structure /pws/zycit482.
DATA: end of itab_zycit482.
* << Fim da inclusão
DATA: END OF COMMON PART a.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT003
*Os seguintes campos foram criados no final da tabela /PWS/ZYCIT003
Nome de campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
ID_REG_ANO_NAC /PWS/ZYGLL1360 NUMC 4
ID_REG_NUM_NAC /PWS/ZYGLL1361 NUMC 9
ID_REG_ITM_NAC /PWS/ZYGLL1362 NUMC 5
----------------------------------------------------------------------------------------------------
Criação TABD /PWS/ZYCIT482
* Características da tabela /PWS/ZYCIT482
Última modificação PWSCI
Classe desenvolvimento /PWS/ZYCI
Idioma original PT
Categoria de tabela Tabela transparente
Classe de entrega A Tabela de aplicação (dados mestre e de movimento)
X Atualizações de tabelas permitida
* campos da tabela /PWS/ZYCIT482
Campos Chave Inic Tipo de Campo Categoria Compr. Casa Tabela Verificação
MANDT X X MANDT CLNT 3 0 T000
PROCESSO X X /PWS/ZYGLL1358 CHAR 1 0
CODFUNLEG X X /PWS/ZYCIL203 CHAR 2 0
* Geração de visão de atualização de tabela criada
Tabela/visão /PWS/ZYCIT482
Grupo de autorização ZYCE pw.CE - Grp. Autor.
Objeto autorização S_TABU_DIS
Grupo de funções /PWS/ZYCIGF1
Cl.desenvolvimento /PWS/ZYCI
Ctg.atualização
Nº tela atualização Tela de síntese 482
Tela individual 0
Rotina de registro Rotina de registro standard
Código de ajuste Ajustável automaticamente
* Transação da tabela /PWS/ZYCIT482 criada
CÓDIGO DE TRANSAÇÃO: /PWS/ZYCIT482
ATRIBUTOS DA TRANSAÇÃO
TEXTO BREVE: CI - Fund.legais para nacionalização
OBJETO DE EXECUÇÃO
(X) - PROGRAMA E TELA (TRANSAÇÃO DE DIÁLOGO)
TEXTO DA TRANSAÇÃO: CI - Fund.legais para nacionalização
PROGRAMA: SM30
CLASSIFICAÇÃO
CLASSIFICAÇÃO DE TRANSAÇÃO:
(x) - TRANSAÇÃO PROFESSIONAL USER
CAPACIDADE GUI:
(x) SAP GUI PARA HTML
(x) SAP GUI PARA JAVA
(X) SAP GUI PARA WINDOWS
Valores propostos
Nome de campo da tela Valor
UPDATE X
VIEWNAME /PWS/ZYCIT482