Módulo: DOC. EXPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 20/10/2005 00:00:00
Data/Hora Última Alteração: 21/02/2011 13:43:26
Descrição da Nota: DESENVOLVIMENTO DO EMBARQUE DE EXPORTAÇÃO EM CONSIGNAÇÃO
Sintoma
O Embarque de Exportação não trata o processo de Consignação.
Solução
Aplicar os ajustes constantes nessa nota de atualização para permitir a criação de embarques de
consignação.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 00169 Data: 20/10/2005 Hora: 09:47:32
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 00169
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00021
Agrupamento : 00084
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00061 - 00001 - 6.0 - 00021 - CHECAGEM DE AUTORIZAÇÃO POR EMPRESA PARA ACESSO DE DADOS
00067 - 00002 - 6.0 - 00021 - AUTHORITY-CHECK POR EMPRESA NA NOMEAÇÃO
00071 - 00003 - 6.0 - 00021 - CHECAGEM DE AUTORIZAÇÃO POR EMPRESA PARA ACESSO DE DADOS
00130 - 00004 - 6.0 - 00021 - EMBARQUE PERMITE ENVIO PARA CÂMBIO ANTES DE CONTABILIZAR COMISSÃO
----------------------------------------------------------------------------------------------------
DESENVOLVIMENTO DO EMBARQUE DE EXPORTAÇÃO EM CONSIGNAÇÃO
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXPORTAÇÃO EMBARQUE CONSIGNAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
DOCT /PWS/ZYCEM261
DOCT /PWS/ZYCEM262
DOCU NA/PWS/ZYCEM261
DOCU NA/PWS/ZYCEM262
DOCU NA/PWS/ZYCEM263
DOCU NA/PWS/ZYCEM264
DOMD /PWS/ZYCED006
DOMD /PWS/ZYCED344
DOMD /PWS/ZYCED357
DYNP /PWS/SAPMZYCE003 0100
DYNP /PWS/SAPMZYCE003 0101
DYNP /PWS/SAPMZYCE003 0103
DYNP /PWS/SAPMZYCE003 0104
FUNC /PWS/ZYCE_ENQUEUE_ZYCET001
FUNC /PWS/ZYCE_TRATA_ORDEM
INDX /PWS/ZYCET002 003
INDX /PWS/ZYCET034 001
INDX /PWS/ZYCET034 002
MESS /PWS/ZYCEM261
MESS /PWS/ZYCEM262
MESS /PWS/ZYCEM263
MESS /PWS/ZYCEM264
REPS /PWS/MZYCE003F01
REPS /PWS/MZYCE003F02
REPS /PWS/MZYCE003TCD
REPS /PWS/MZYCE003TCP
REPS /PWS/MZYCE003TIA
REPS /PWS/MZYCE003TOP
REPS /PWS/MZYCE006F01
REPS /PWS/MZYCE027F01
REPS /PWS/MZYCE040F01
REPS /PWS/MZYCE103F01
REPS /PWS/MZYCE110F01
REPS /PWS/ZYCER007
REPS /PWS/ZYCER203
REPS /PWS/ZYCER227
REPT /PWS/SAPMZYCE003
TABD /PWS/ZYCEE002
TABD /PWS/ZYCET002
TABD /PWS/ZYCET002A
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMD /PWS/ZYCED006
No Domínio /PWS/ZYCED006, foram incluídos dois valores fixos na área de valores:
CO Ordem de Consignação
VC Venda da Consignação
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMD /PWS/ZYCED344
No Domínio /PWS/ZYCED344, foram alterados os textos dos seguintes valores fixos:
V Venda de Consignação
C Exportação em Consignação
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DOMD /PWS/ZYCED357
No Domínio /PWS/ZYCED357, foram alterados os textos dos seguintes valores fixos:
C Embarque de Consignação
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCEE002
Incluir os seguintes campos com os seguintes elementos de dados no final da Estrutura /PWS/ZYCEE002:
CONSIG CHAR1
NRSEQ_CONSIG /PWS/ZYCEL001
VBELN_CONSIG VBELN
POSNR_CONSIG POSNR
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCET002
Incluir os seguintes campos com os seguintes elementos de dados no final da Estrutura /PWS/ZYCET002:
CONSIG CHAR1
NRSEQ_CONSIG /PWS/ZYCEL001
VBELN_CONSIG VBELN
POSNR_CONSIG POSNR
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCET002A
Incluir os seguintes campos com os seguintes elementos de dados no final da Estrutura
/PWS/ZYCET002A:
CONSIG CHAR1
NRSEQ_CONSIG /PWS/ZYCEL001
VBELN_CONSIG VBELN
POSNR_CONSIG POSNR
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCE_TRATA_ORDEM
FUNCTION /pws/zyce_trata_ordem.
...
READ TABLE itab_doc_referencia INDEX v_index.
MOVE: itab_zycee085-vbeln_vf TO itab_doc_referencia-vbeln_ref,
itab_zycee085-posnr TO itab_doc_referencia-posnr_ref.
MODIFY itab_doc_referencia INDEX v_index.
ENDLOOP.
ENDIF.
CALL CUSTOMER-FUNCTION '001'
IMPORTING
v_subrc = v_subrc.
IF NOT v_subrc IS INITIAL.
LOOP AT itab_zycee085_aux.
v_index = sy-tabix.
READ TABLE itab_zycet023 WITH KEY fkart = itab_zycee085_aux-fkart.
IF sy-subrc = 0.
CASE itab_zycet023-tipodoc.
* >> Início da Exclusão <<
WHEN 'OV'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
WHEN 'OV' OR
'CO' OR
'VC'.
* >> Fim da Inclusão <<
READ TABLE itab_estorno WITH KEY
vbeln = itab_zycee085_aux-vbeln_vf
fksto = 'X'.
IF sy-subrc = 0 .
MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.
APPEND t_estorno.
DELETE itab_zycee085_aux INDEX v_index.
MOVE: t_estorno-vbeln_vf TO wa_vbco6-vbeln,
t_estorno-posnr TO wa_vbco6-posnr.
CALL FUNCTION 'RV_ORDER_FLOW_INFORMATION'
EXPORTING
comwa = wa_vbco6
TABLES
vbfa_tab = itab_vbfa_aux.
IF NOT itab_vbfa_aux[] IS INITIAL.
READ TABLE itab_vbfa_aux
WITH KEY vbelv = t_estorno-vbeln_vf
vbtyp_n = 'N'.
IF sy-subrc EQ 0.
DELETE itab_zycee085_aux
WHERE vbeln_vf = itab_vbfa_aux-vbeln
OR vbeln_vf = t_estorno-vbeln_vf.
DELETE itab_zycee085
WHERE vbeln_vf = itab_vbfa_aux-vbeln
OR vbeln_vf = t_estorno-vbeln_vf.
ENDIF.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
WHEN 'OD'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
WHEN 'OD' OR
'DR'.
* >> Fim da Inclusão <<
READ TABLE itab_estorno WITH KEY
vbeln = itab_zycee085_aux-vbeln_vf
fksto = 'X'.
...
DELETE itab_zycee085
WHERE nfnum = itab_zycee085_aux-nfnum
AND vbeln_va = itab_zycee085_aux-vbeln_va
AND posnr = itab_zycee085_aux-aupos
AND vbeln_vf = itab_zycee085_aux-vbeln_vf
AND posnr = itab_zycee085_aux-posnr
AND vbeln_vl = itab_zycee085_aux-vbeln_vl
AND posnl = itab_zycee085_aux-posnl
DELETE itab_zycee085_aux INDEX v_index.
ENDIF.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
WHEN 'OC' OR 'DR'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
WHEN 'OC'.
* >> Fim da Inclusão <<
CLEAR v_continue.
READ TABLE itab_estorno WITH KEY
vbeln = itab_zycee085_aux-vbeln_vf
fksto = 'X'.
IF sy-subrc = 0 .
MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.
APPEND t_estorno.
...
itab_zycee085-nrseq = v_estornado.
MODIFY itab_zycee085 TRANSPORTING nrseq
WHERE vbeln_vf = itab_estorno-vbeln.
ENDLOOP.
SORT itab_zycee085 BY nrseq.
itab_zycee085_aux[] = itab_zycee085[].
LOOP AT itab_zycee085_aux.
v_index = sy-tabix.
READ TABLE itab_zycet023 WITH KEY fkart = itab_zycee085_aux-fkart.
IF sy-subrc = 0.
CASE itab_zycet023-tipodoc.
* >> Início da Exclusão <<
WHEN 'OV'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
WHEN 'OV' OR
'CO' OR
'VC'.
* >> Fim da Inclusão <<
READ TABLE itab_estorno WITH KEY
vbeln = itab_zycee085_aux-vbeln_vf
fksto = 'X'.
IF sy-subrc = 0 .
MOVE-CORRESPONDING itab_zycee085_aux TO t_estorno.
APPEND t_estorno.
CLEAR t_estorno.
READ TABLE itab_estorno WITH KEY
kidno = itab_zycee085_aux-vbeln_vf
fksto = ' '.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE027F01
form consiste_tipoordem.
loop at itab_zycet002.
v_tabix = sy-tabix.
read table itab_zycet020 with key auart =
itab_zycet002-auart.
if sy-subrc eq 0.
* >> Início da Exclusão <<
if itab_zycet020-tipodoc <> 'OV'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
if ( itab_zycet020-tipodoc <> 'OV' and
itab_zycet020-tipodoc <> 'VC' and
itab_zycet020-tipodoc <> 'CO' ).
* >> Fim da Inclusão <<
delete itab_zycet002 index v_tabix.
* >> Início da Exclusão <<
elseif itab_zycet020-tipodoc <> 'OV' and
itab_zycet020-vinc_pex <> '1'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
elseif ( itab_zycet020-tipodoc <> 'OV' and "Tipos permitidos.
itab_zycet020-tipodoc <> 'VC' and
itab_zycet020-tipodoc <> 'CO' ) and
itab_zycet020-vinc_pex <> '1'.
* >> Fim da Inclusão <<
delete itab_zycet002 index v_tabix.
endif.
endif.
move itab_zycet002-fkimg to itab_zycet002-fkimg_pex.
modify itab_vinc index v_tabix.
endloop.
endform. " consiste_tipoordem
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE040F01
FORM consist_vbeln_va.
IF NOT /pws/zycee271-bstkd IS INITIAL.
SELECT SINGLE *
FROM vbak
WHERE vbeln = /pws/zycee265-vbeln_va.
IF sy-subrc = 0.
SELECT SINGLE *
FROM /pws/zycet020
WHERE auart = vbak-auart.
IF sy-subrc = 0.
* >> Início da Exclusão <<
IF /pws/zycet020-tipodoc = 'OV'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF /pws/zycet020-tipodoc = 'OV' or
/pws/zycet020-tipodoc = 'VC' or
/pws/zycet020-tipodoc = 'CO'.
* >> Fim da Inclusão <<
SELECT SINGLE *
FROM vbkd
WHERE vbeln = /pws/zycee265-vbeln_va.
IF sy-subrc = 0.
IF /pws/zycee271-bstkd NE vbkd-bstkd.
v_erro = 1.
ENDIF.
ENDIF.
ELSE.
v_erro = 2.
ENDIF.
ENDIF.
ELSE.
v_erro = 3.
ENDIF.
ENDIF.
ENDFORM. " consist_vbeln_va
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE103F01
FORM fill_sint2.
DATA: lvlme LIKE it108-vlme.
CLEAR: svltot.
REFRESH: it111. CLEAR it111.
* Seleciona tipo da ordem de venda de acordo com empresa
SELECT *
FROM /pws/zycet020
INTO TABLE it020
WHERE bukrs = /pws/zycee106-bukrs.
...
lvlme = it108-vlme.
IF lvlme < 0.
lvlme = lvlme * -1.
ENDIF.
READ TABLE it020 WITH KEY auart = it108-auart.
IF sy-subrc EQ 0.
* >> Início da Exclusão <<
IF NOT ( it020-tipodoc EQ 'OC' OR it020-tipodoc EQ 'OV' ).
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF NOT ( it020-tipodoc EQ 'OC' OR
it020-tipodoc EQ 'OV' OR
it020-tipodoc EQ 'VC' OR
it020-tipodoc EQ 'CO' OR ).
* >> Fim da Inclusão <<
lvlme = lvlme * -1.
svltot = svltot - it108-netwr.
ELSE.
svltot = svltot + it108-netwr.
ENDIF.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE110F01
form selecionar_dados_embarque.
select *
from /pws/zycet020
into table itab_zycet020
where bukrs = /pws/zycee001-bukrs.
select * from /pws/zycet002 into table itab_zycet002
where nrseq = /pws/zycee001-nrseq.
...
* >> Início da Exclusão <<
when 'OV'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
when 'OV' OR 'VC' OR 'CO'.
* >> Fim da Inclusão <<
move :
itab_zycet002_aux-nrseq to itab_zycet062_aux1-nrseq,
itab_zycet002_aux-vbeln_va to itab_zycet062_aux1-vbeln_va,
itab_zycet002_aux-posnr to itab_zycet062_aux1-posnr,
itab_zycet002_aux-ntgew to itab_zycet062_aux1-ntgew,
itab_zycet002_aux-brgew to itab_zycet062_aux1-brgew,
itab_zycet002_aux-gewei to itab_zycet062_aux1-gewei,
itab_zycet002_aux-netpr_t to itab_zycet062_aux1-netpr_t,
itab_zycet002_aux-netpr to itab_zycet062_aux1-netpr,
itab_zycet002_aux-waers to itab_zycet062_aux1-waers.
append itab_zycet062_aux1.
endcase.
endif.
endloop.
...
form trata_tipo_ordens.
* Seleciona Ordens de Complemento
clear itab_devolucao.
refresh itab_devolucao.
...
loop at itab_zycet002_aux.
v_index = sy-tabix.
read table itab_zycet020 with key auart = itab_zycet002_aux-auart.
case itab_zycet020-tipodoc.
* >> Início da Exclusão <<
when 'OV'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
when 'OV' OR 'VC' OR 'CO'.
* >> Fim da Inclusão <<
read table itab_estorno with key nfnum =
itab_zycet002_aux-nfnum.
if sy-subrc = 0.
delete itab_zycet002_aux index v_index.
delete itab_zycet002_aux where nfnum = itab_estorno-nfnum.
delete itab_zycet002 where nfnum = itab_estorno-nfnum.
else.
read table itab_vbap with key
vbeln = itab_zycet002_aux-vbeln_va
posnr = itab_zycet002_aux-posnr.
if sy-subrc = 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER203
FORM imprime_relatorio.
CLEAR : itab_zycet046, itab_zycet101, itab_zycet102,
itab_zycet106,
itab_zycet053.
WRITE: text-001 COLOR 1 INVERSE,
50 p_nrseq.
...
LOOP AT itab_zycet023
WHERE fkart EQ itab_zycet002-fkart
AND bukrs EQ itab_zycet002-bukrs.
* >> Início da Exclusão <<
IF /pws/zycet020-tipodoc EQ 'OV' AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF ( /pws/zycet020-tipodoc EQ 'OV' or
/pws/zycet020-tipodoc EQ 'VC' or
/pws/zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet023-estorno NE 'X'.
WRITE: / ' ',2 text-009 COLOR 2 INTENSIFIED OFF,
30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
* >> Início da Exclusão <<
ELSEIF /pws/zycet020-tipodoc EQ 'OV' AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
ELSEIF ( /pws/zycet020-tipodoc EQ 'OV' or
/pws/zycet020-tipodoc EQ 'VC' or
/pws/zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet023-estorno EQ 'X'.
WRITE: / ' ',2 text-013 COLOR 2 INTENSIFIED OFF,
30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
...
ELSE.
LOOP AT itab_likp WHERE vbeln EQ itab_zycet002-vbeln_vl.
IF itab_likp-vbeln <> v_likp-vbeln.
WRITE: / ' ', 2 text-008 COLOR 2 INTENSIFIED OFF,
30 ' ',
31 ' ',
31 itab_likp-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnl COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ', 56 itab_likp-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
READ TABLE itab_vbup
WITH KEY vbeln = itab_zycet002-vbeln_va
posnr = itab_zycet002-posnl.
IF sy-subrc EQ 0.
IF itab_vbup-lfsta EQ space.
WRITE: 67 text-023 COLOR 3 INTENSIFIED OFF.
ELSEIF itab_vbup-lfsta EQ 'A'.
WRITE: 67 text-024 COLOR 6 INTENSIFIED OFF.
ELSEIF itab_vbup-lfsta EQ 'B'.
WRITE: 67 text-025 COLOR 5 INTENSIFIED OFF.
ELSEIF itab_vbup-lfsta EQ 'C'.
WRITE: 67 text-026 COLOR 5.
ENDIF.
ENDIF.
v_likp-vbeln = itab_likp-vbeln.
ENDIF.
LOOP AT itab_vbrk WHERE vbeln EQ itab_zycet002-vbeln_vf.
IF v_vbeln_vf NE itab_zycet002-vbeln_vf.
LOOP AT itab_zycet023 WHERE fkart EQ itab_zycet002-fkart
AND bukrs EQ itab_zycet002-bukrs.
* >> Início da Exclusão <<
IF /pws/zycet020-tipodoc EQ 'OV' AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF ( /pws/zycet020-tipodoc EQ 'OV' or
/pws/zycet020-tipodoc EQ 'VC' or
/pws/zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet023-estorno NE 'X'.
WRITE: / ' ',2 text-009 COLOR 2 INTENSIFIED OFF,
30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
* >> Início da Exclusão <<
ELSEIF /pws/zycet020-tipodoc EQ 'OV' AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
ELSEIF ( /pws/zycet020-tipodoc EQ 'OV' or
/pws/zycet020-tipodoc EQ 'VC' or
/pws/zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet023-estorno EQ 'X'.
WRITE: / ' ',2 text-013 COLOR 2 INTENSIFIED OFF,
30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
...
FORM print_report USING nrseq.
DESCRIBE TABLE itab_034 LINES v_lines.
IF wa_034-nrseq = wa_001-nrseq.
WRITE: text-001 COLOR 1 INVERSE,
50 p_nrseq.
WRITE: / sy-uline(89).
WRITE: / ' ',2 text-002 COLOR 1,
30 ' ',
55 ' ',
66 ' ',
89 ' '.
WRITE: / sy-uline(89).
...
****************************************************************
* QUANDO O EMBARQUE NÃO POSSUI REMESSA
***************************************************************
IF NOT itab_zycet002-vbeln_vf IS INITIAL AND
itab_zycet002-vbeln_vl IS INITIAL.
LOOP AT itab_vbrk WHERE vbeln EQ itab_zycet002-vbeln_vf.
IF v_vbeln_vf NE itab_zycet002-vbeln_vf.
LOOP AT itab_zycet023 WHERE fkart EQ itab_zycet002-fkart
AND bukrs EQ itab_zycet002-bukrs.
* >> Início da Exclusão <<
IF /pws/zycet020-tipodoc EQ 'OV' AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF ( /pws/zycet020-tipodoc EQ 'OV' or
/pws/zycet020-tipodoc EQ 'VC' or
/pws/zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet023-estorno NE 'X'.
IF wa_034-nrseq = wa_001-nrseq.
WRITE: / ' ',2 text-051 COLOR 2 INTENSIFIED OFF.
ELSE.
WRITE: / ' ',2 text-054 COLOR 2 INTENSIFIED OFF.
ENDIF.
WRITE: 30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
* >> Início da Exclusão <<
ELSEIF /pws/zycet020-tipodoc EQ 'OV' AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
ELSEIF ( /pws/zycet020-tipodoc EQ 'OV' or
/pws/zycet020-tipodoc EQ 'VC' or
/pws/zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet023-estorno EQ 'X'.
WRITE: / ' ',2 text-013 COLOR 2 INTENSIFIED OFF,
30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
ELSEIF itab_zycet023-tipodoc EQ 'OD'.
WRITE: / ' ',2 text-011 COLOR 2 INTENSIFIED OFF,
30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
...
******
*FIM
******
ELSE.
LOOP AT itab_likp WHERE vbeln EQ itab_zycet002-vbeln_vl.
IF itab_likp-vbeln <> v_likp-vbeln.
IF wa_034-nrseq = wa_001-nrseq.
WRITE: / ' ', 2 text-050 COLOR 2 INTENSIFIED OFF.
ELSE.
WRITE: / ' ', 2 text-053 COLOR 2 INTENSIFIED OFF.
ENDIF.
WRITE: 30 ' ',
31 ' ',
31 itab_likp-vbeln COLOR 2 INTENSIFIED OFF HOTSPOT,
itab_zycet002-posnl COLOR 2 INTENSIFIED OFF
NO-ZERO,
55 ' ', 56 itab_likp-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
READ TABLE itab_vbup WITH KEY vbeln = itab_zycet002-vbeln_va
posnr = itab_zycet002-posnl.
IF sy-subrc EQ 0.
IF itab_vbup-lfsta EQ space.
WRITE: 67 text-023 COLOR 3 INTENSIFIED OFF.
ELSEIF itab_vbup-lfsta EQ 'A'.
WRITE: 67 text-024 COLOR 6 INTENSIFIED OFF.
ELSEIF itab_vbup-lfsta EQ 'B'.
WRITE: 67 text-025 COLOR 5 INTENSIFIED OFF.
ELSEIF itab_vbup-lfsta EQ 'C'.
WRITE: 67 text-026 COLOR 5.
ENDIF.
ENDIF.
v_likp-vbeln = itab_likp-vbeln.
ENDIF.
LOOP AT itab_vbrk WHERE vbeln EQ itab_zycet002-vbeln_vf
AND bukrs EQ itab_zycet002-bukrs.
IF v_vbeln_vf NE itab_zycet002-vbeln_vf.
LOOP AT itab_zycet023 WHERE fkart EQ itab_zycet002-fkart
AND bukrs EQ itab_zycet002-bukrs.
* >> Início da Exclusão <<
IF /pws/zycet020-tipodoc EQ 'OV' AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF ( /pws/zycet020-tipodoc EQ 'OV' or
/pws/zycet020-tipodoc EQ 'VC' or
/pws/zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet023-estorno NE 'X'.
IF wa_034-nrseq = wa_001-nrseq.
WRITE: / ' ',2 text-051 COLOR 2 INTENSIFIED OFF.
ELSE.
WRITE: / ' ',2 text-054 COLOR 2 INTENSIFIED OFF.
ENDIF.
WRITE: 30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
* >> Início da Exclusão <<
ELSEIF /pws/zycet020-tipodoc EQ 'OV' AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
ELSEIF ( /pws/zycet020-tipodoc EQ 'OV' or
/pws/zycet020-tipodoc EQ 'VC' or
/pws/zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet023-estorno EQ 'X'.
WRITE: / ' ',2 text-013 COLOR 2 INTENSIFIED OFF,
30 ' ',
31 itab_vbrk-vbeln COLOR 2 INTENSIFIED OFF
HOTSPOT,
itab_zycet002-posnr COLOR 2
INTENSIFIED OFF NO-ZERO,
55 ' ',
56 itab_vbrk-erdat COLOR 2 INTENSIFIED OFF,
66 ' ', 89 ' '.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCER227
FORM seleciona_dados.
CLEAR: itab_inicio.
FREE : itab_inicio.
IF p_sim EQ c_x AND
p_nao EQ c_x.
PERFORM selecao_todos_embarques.
ELSEIF p_sim EQ c_x.
PERFORM selecao_enviados_cambio.
ELSE.
PERFORM selecao_nao_enviados_cambio.
ENDIF.
...
LOOP AT itab_inicio.
v_tabix = sy-tabix.
CLEAR itab_zycet124.
READ TABLE itab_zycet124 WITH KEY nrseq = itab_inicio-nrseq
BINARY SEARCH.
IF sy-subrc IS INITIAL.
* >> Início da Exclusão <<
IF itab_zycet124-tipodoc NE c_tpdoc_ov.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF itab_zycet124-tipodoc NE c_tpdoc_ov AND
itab_zycet124-tipodoc NE 'VC' AND
itab_zycet124-tipodoc NE 'CO'.
* >> Fim da Inclusão <<
DELETE itab_inicio INDEX v_tabix.
ENDIF.
ENDIF.
ENDLOOP.
IF itab_inicio[] IS INITIAL.
MESSAGE s008.
STOP.
ENDIF.
* Código do Despachante
CLEAR: itab_zycet015.
FREE : itab_zycet015.
----------------------------------------------------------------------------------------------------
Criada as mensagens a seguir na classe de mensagens /PWS/ZYCEM:
261 Embarque de &1 não permite Ordem de Venda do tipo &2. Ordem &3.
262 Ordem de Venda &1/&2 pertence a outro Embarque de Consignação: &3.
263 Ordem de Venda &1/&2 não faz parte de um processo de Consignação.
264 Embarque possui Venda de Consignação (&1). Não pode excluir.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003F01
FORM carrega_parametros.
CHECK wa_controle-parametros_carregados IS INITIAL.
SELECT bukrs
butxt
land1
waers
adrnr
FROM t001
INTO TABLE itab_t001.
LOOP AT itab_t001 WHERE NOT adrnr IS initial.
...
SELECT *
FROM /pws/zycet317
INTO TABLE itab_zycet317.
* >> Início da Exclusão <<
SELECT *
FROM /pws/zycet318
INTO TABLE itab_zycet318.
SELECT *
FROM /pws/zycet319
INTO TABLE itab_zycet319.
* >> Fim da Exclusão <<
SELECT bukrs
codmod
codigo
kschl
vtext
fator
FROM /pws/zycit030
INTO TABLE itab_zycit030.
...
ENDFORM. " carrega_parametros
FORM seleciona_dados_embarque_pw.
* Itens do Embarque
SELECT *
FROM /pws/zycet002
INTO TABLE itab_zycet002
WHERE nrseq = /pws/zycee001-nrseq.
...
itab_zycet016_ant[] = itab_zycet016[].
* >> Início da Inclusão <<
* Dados de Consignação
IF NOT /pws/zycee001-emb_consig IS INITIAL.
IF /pws/zycee001-emb_consig EQ 'C'.
SELECT *
FROM /pws/zycet034
INTO TABLE itab_zycet034
WHERE nrseq = /pws/zycee001-nrseq.
ELSE.
SELECT *
FROM /pws/zycet034
INTO TABLE itab_zycet034
WHERE nrseq_n = /pws/zycee001-nrseq.
ENDIF.
ENDIF.
* >> Fim da Inclusão <<
ENDFORM. " seleciona_dados_embarque_pw
FORM seleciona_dados_adicionais_pw.
IF sy-tcode NE c_transacao_c.
* Seleciona REs criados pelo programa de RE
DELETE itab_zycet003 WHERE NOT nrseqre IS initial.
SELECT *
FROM /pws/zycet003
APPENDING TABLE itab_zycet003
WHERE nrseq = /pws/zycee001-nrseq AND
nrseqre NE space.
...
SELECT nrseqper
nrper
nrseq
dtincl
FROM /pws/zycet292
INTO TABLE itab_zycet292
WHERE nrseq EQ /pws/zycee001-nrseq.
* >> Início da Inclusão <<
* Vendas de Consignação
IF /pws/zycee001-tipo_emb EQ 'C' AND
/pws/zycee001-emb_consig EQ 'C'.
SELECT nrseq
vbeln_va
vbeln_vf
posnr
docnum
vbeln_vl
posnl
aupos
fkdat
inco1
zterm
land1
kunag
gsber
matnr
werks
nfnum
nrseq_consig
vbeln_consig
posnr_consig
FROM /pws/zycet002
INTO TABLE itab_venda_cons
WHERE nrseq_consig EQ /pws/zycee001-nrseq.
ENDIF.
* >> Fim da Inclusão <<
ENDFORM. " seleciona_dados_adicionais_pw
FORM atualiza_dados_sap_no_embarque USING value(p_novos).
DATA: v_linhas_ant TYPE i,
v_linhas_dep TYPE i,
v_checa_auart TYPE c.
v_checa_auart = 'X'.
v_linhas_dep = 0.
DESCRIBE TABLE itab_zycet002 LINES v_linhas_ant.
WHILE v_linhas_ant NE v_linhas_dep AND
p_novos EQ 'X'.
DESCRIBE TABLE itab_zycet002 LINES v_linhas_ant.
IF sy-tcode NE c_transacao_e AND
/pws/zycee001-envia_c IS INITIAL AND
/pws/zycee001-sta1 NE '4'.
PERFORM atualiza_ordens_e_remessas.
PERFORM atualiza_faturamentos.
* >> Início da Inclusão <<
IF /pws/zycee001-emb_consig EQ 'C'.
v_checa_auart = 'X'.
ENDIF.
* >> Fim da Inclusão <<
PERFORM atualiza_outras_ordens USING v_checa_auart.
IF /pws/zycee001-tipo_emb EQ 'V'.
DELETE itab_zycet002 WHERE vbeln_va IS initial.
ENDIF.
DELETE itab_zycet002 WHERE aupos IS initial AND
ebelp IS initial.
PERFORM verifica_particao_lote.
ENDIF.
DESCRIBE TABLE itab_zycet002 LINES v_linhas_dep.
CLEAR v_checa_auart.
ENDWHILE.
PERFORM atualiza_itens_embarque.
PERFORM elimina_dados_sap_irrelevantes.
ENDFORM. " atualiza_dados_sap_no_embarque
FORM identifica_status_itens.
DATA: itab_002 LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE.
DATA: itab_vbfa2 LIKE itab_vbfa OCCURS 0 WITH HEADER LINE.
...
* Identifica itens de serviço
LOOP AT itab_zycet002 WHERE devolucao = 'X'.
v_index = sy-tabix.
READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart
bukrs = itab_zycet002-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart.
IF sy-subrc NE 0.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'E'
msgv1 = itab_zycet002-auart
msgv2 = itab_zycet002-bukrs
msgv3 = itab_zycet002-vbeln_va
txtnr = 222
zeile = 'TP_OV_001'.
CONTINUE.
ENDIF.
ENDIF.
IF itab_zycet020-tipodoc = 'OS'.
CLEAR itab_zycet002-devolucao.
itab_zycet002-servico = 'X'.
ELSEIF NOT ( itab_zycet020-tipodoc = 'OD' OR
* >> Início da Exclusão <<
itab_zycet020-tipodoc = 'OD' ).
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
itab_zycet020-tipodoc = 'DR' ).
* >> Início da Inclusão <<
CLEAR itab_zycet002-devolucao.
itab_zycet002-saida = 'X'.
ENDIF.
MODIFY itab_zycet002 INDEX v_index TRANSPORTING saida
devolucao
servico.
ENDLOOP.
...
FORM monta_drawback.
DATA: v_vbeln_vf LIKE /pws/zycet002-vbeln_vf,
v_posnr LIKE /pws/zycet002-posnr,
v_num TYPE i,
v_branch LIKE t001w-j_1bbranch,
v_cgc LIKE j_1bwfield-cgc_number,
v_status LIKE /pws/zycet002-staprop,
v_datum LIKE sy-datum,
v_vlme LIKE /pws/zycee002-vlme,
v_processa TYPE c.
...
ELSE.
CLEAR itab_lfa1.
READ TABLE itab_lfa1 WITH KEY lifnr = itab_zycit244-lifnr.
IF sy-subrc NE 0.
PERFORM seleciona_novos_fornecedores
USING itab_zycit244-lifnr.
CLEAR itab_lfa1.
READ TABLE itab_lfa1 WITH KEY lifnr = itab_zycit244-lifnr.
ENDIF.
itab_drawback-name1 = itab_lfa1-name1.
WRITE itab_lfa1-stcd1 TO itab_drawback-stcd1
* >> Início da Exclusão <<
USING EDIT MASK 'CGCBR'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
USING EDIT MASK '==CGCBR'.
* >> Fim da Inclusão <<
itab_drawback-regio = itab_lfa1-regio.
itab_drawback-steuc = itab_zycit282-j_1bnbmimp.
...
FORM move_dados_sap_para_itens.
DATA: v_index LIKE sy-tabix,
v_lfimg LIKE lips-lfimg,
v_tipo_ov TYPE c,
v_kwmeng LIKE vbap-kwmeng.
...
LOOP AT itab_vbap.
READ TABLE itab_vbak WITH KEY vbeln = itab_vbap-vbeln.
CLEAR itab_zycet020.
IF NOT itab_vbak-auart IS INITIAL.
READ TABLE itab_zycet020
WITH KEY auart = itab_vbak-auart
bukrs = /pws/zycee001-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycet020
WITH KEY auart = itab_vbak-auart.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
CHECK itab_zycet020-tipodoc EQ 'OV'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
CHECK itab_zycet020-tipodoc EQ 'OV' OR
itab_zycet020-tipodoc EQ 'CO' OR
itab_zycet020-tipodoc EQ 'VC'.
* >> Fim da Inclusão <<
MOVE: itab_vbap-vbeln TO itab_saldo_ov-vbeln,
itab_vbap-posnr TO itab_saldo_ov-posnr,
itab_vbap-kwmeng TO itab_saldo_ov-kwmeng,
'C' TO itab_saldo_ov-tipo_ov.
LOOP AT itab_vbfa WHERE vbelv = itab_vbap-vbeln AND
posnv = itab_vbap-posnr AND
* >> Início da Exclusão <<
vbtyp_n = 'J'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbtyp_n CA 'JT7'.
* >> Fim da Inclusão <<
READ TABLE itab_lips WITH KEY vbeln = itab_vbfa-vbeln
posnr = itab_vbfa-posnn.
CHECK sy-subrc EQ 0.
v_lfimg = itab_lips-lfimg.
PERFORM converte_um USING itab_lips-lfimg
itab_lips-vrkme
itab_vbap-vrkme
itab_vbap-matnr
CHANGING v_lfimg.
itab_saldo_ov-kwmeng = itab_saldo_ov-kwmeng - v_lfimg.
ENDLOOP.
LOOP AT itab_vbfa WHERE vbelv EQ itab_vbap-vbeln AND
posnv EQ itab_vbap-posnr AND
* >> Início da Exclusão <<
vbtyp_n NE 'J'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbtyp_n NA 'JT7'.
* >> Fim da Inclusão <<
READ TABLE itab_vbrp WITH KEY vbeln = itab_vbfa-vbeln
posnr = itab_vbfa-posnn.
CHECK sy-subrc EQ 0.
v_lfimg = itab_vbrp-fkimg.
PERFORM converte_um USING itab_vbrp-fkimg
itab_vbrp-vrkme
itab_vbap-vrkme
itab_vbap-matnr
CHANGING v_lfimg.
itab_saldo_ov-kwmeng = itab_saldo_ov-kwmeng - v_lfimg.
ENDLOOP.
...
IF /pws/zycee001-tipo_emb NE 'V'.
LOOP AT itab_ekpo.
MOVE: itab_ekpo-ebeln TO itab_saldo_ov-vbeln,
itab_ekpo-ebelp TO itab_saldo_ov-posnr,
itab_ekpo-menge TO itab_saldo_ov-kwmeng,
'V' TO itab_saldo_ov-tipo_ov.
LOOP AT itab_vbfa WHERE vbelv = itab_ekpo-ebeln AND
posnv = itab_ekpo-ebelp AND
* >> Início da Exclusão <<
vbtyp_n = 'J'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbtyp_n CA 'JT7'.
* >> Fim da Inclusão <<
READ TABLE itab_lips WITH KEY vbeln = itab_vbfa-vbeln
posnr = itab_vbfa-posnn.
CHECK sy-subrc EQ 0.
v_lfimg = itab_lips-lfimg.
PERFORM converte_um USING itab_lips-lfimg
itab_lips-vrkme
itab_ekpo-meins
itab_ekpo-matnr
CHANGING v_lfimg.
itab_saldo_ov-kwmeng = itab_saldo_ov-kwmeng - v_lfimg.
ENDLOOP.
LOOP AT itab_vbfa WHERE vbelv EQ itab_ekpo-ebeln AND
posnv EQ itab_ekpo-ebeln AND
* >> Início da Exclusão <<
vbtyp_n NE 'J'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbtyp_n NA 'JT7'.
* >> Fim da Inclusão <<
READ TABLE itab_vbrp WITH KEY vbeln = itab_vbfa-vbeln
posnr = itab_vbfa-posnn.
CHECK sy-subrc EQ 0.
v_lfimg = itab_vbrp-fkimg.
PERFORM converte_um USING itab_vbrp-fkimg
itab_vbrp-vrkme
itab_ekpo-meins
itab_ekpo-matnr
CHANGING v_lfimg.
itab_saldo_ov-kwmeng = itab_saldo_ov-kwmeng - v_lfimg.
ENDLOOP.
APPEND itab_saldo_ov.
ENDLOOP.
...
* Item da Ordem de Venda
MOVE: itab_vbap-posnr TO itab_zycet002-posnv,
itab_vbap-vrkme TO itab_zycet002-vrkme,
itab_vbap-gewei TO itab_zycet002-gewei,
itab_vbap-gsber TO itab_zycet002-gsber,
itab_vbap-matnr TO itab_zycet002-matnr,
itab_vbap-werks TO itab_zycet002-werks,
itab_vbap-prctr TO itab_zycet002-prctr,
itab_vbap-pstyv TO itab_zycet002-pstyv,
itab_vbap-arktx TO itab_zycet002-arktx,
itab_vbap-ktgrm TO itab_zycet002-ktgrm,
itab_vbap-aufnr TO itab_zycet002-aufnr,
itab_vbap-ps_psp_pnr TO itab_zycet002-pspid,
itab_vbap-shkzg TO itab_zycet002-shkzg.
MOVE: itab_vbap-ntgew TO itab_zycet002-ntgew,
itab_vbap-brgew TO itab_zycet002-brgew.
v_kwmeng = itab_vbap-kwmeng.
* >> Início da Inclusão <<
CLEAR: itab_zycet002-vbeln_consig,
itab_zycet002-posnr_consig.
IF /pws/zycee001-tipo_emb EQ 'C' AND
/pws/zycee001-emb_consig EQ 'V'.
CLEAR itab_zycet020.
READ TABLE itab_zycet020
WITH KEY auart = itab_zycet002-auart
bukrs = itab_zycet002-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycet020
WITH KEY auart = itab_zycet002-auart.
ENDIF.
IF itab_zycet020-tipodoc EQ 'VC'.
PERFORM localiza_consignacao.
ENDIF.
ENDIF.
* >> Fim da Inclusão <<
ENDIF.
IF itab_zycet002-vbeln_vl IS INITIAL AND
itab_zycet002-vbeln_vf IS INITIAL.
...
ENDFORM. " move_dados_sap_para_itens
FORM atualiza_cabecalho_embarque.
CHECK sy-tcode NE c_transacao_e AND
/pws/zycee001-envia_c IS INITIAL AND
/pws/zycee001-sta1 NE '4'.
...
CLEAR itab_zycet002.
READ TABLE itab_zycet002 INDEX 1.
PERFORM: cabecalho_condicao_pagamento,
cabecalho_incoterms,
cabecalho_porto_pais,
cabecalho_descricoes,
cabecalho_outros_dados,
cabecalho_peso_embarque.
* >> Início da Inclusão <<
IF /pws/zycee001-tipo_emb EQ 'C' AND
/pws/zycee001-emb_consig EQ 'V'.
PERFORM atualiza_consignacao.
ENDIF.
* >> Fim da Inclusão <<
ENDFORM. " atualiza_cabecalho_embarque
FORM cabecalho_condicao_pagamento.
DATA: v_zterm LIKE t052-zterm.
IF itab_zycet037-alt_cond EQ '0'.
CLEAR /pws/zycee046-zterm.
* >> Início da Exclusão <<
LOOP AT itab_zycet020 WHERE tipodoc = 'OV'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
LOOP AT itab_zycet020 WHERE tipodoc = 'OV' OR
tipodoc = 'CO' OR
tipodoc = 'VC'.
* >> Fim da Inclusão <<
READ TABLE itab_zycet002 WITH KEY auart = itab_zycet020-auart.
IF sy-subrc EQ 0.
/pws/zycee046-zterm = itab_zycet002-zterm.
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
...
ENDFORM. " cabecalho_condicao_pagamento
FORM atualiza_ordens_e_remessas.
DATA: wa_zycet002 LIKE itab_zycet002,
itab_002 LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE,
v_vbeln_va LIKE /pws/zycet002-vbeln_va,
v_vbeln_vl LIKE /pws/zycet002-vbeln_vl,
v_posnr_va LIKE /pws/zycet002-aupos,
v_posnr_vl LIKE /pws/zycet002-posnl,
v_kwmeng LIKE vbap-kwmeng,
v_lfimg LIKE lips-lfimg,
v_tipo_ov TYPE c.
...
IF NOT v_vbeln_va IS INITIAL AND
v_posnr_va IS INITIAL.
* >> Início da Exclusão <<
LOOP AT itab_vbfa WHERE vbeln EQ v_vbeln_va AND
posnn NE space AND
( ( vbelv EQ space AND
posnv EQ space ) OR
( vbtyp_v EQ v_tipo_ov ) ) AND
vbtyp_n EQ v_tipo_ov.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
LOOP AT itab_vbfa WHERE vbeln EQ v_vbeln_va AND
posnn NE space AND
vbtyp_n EQ v_tipo_ov.
* >> Fim da Inclusão <<
wa_zycet002 = itab_zycet002.
IF v_tipo_ov EQ 'V'.
wa_zycet002-ebelp = itab_vbfa-posnn.
ELSE.
wa_zycet002-aupos = itab_vbfa-posnn.
ENDIF.
APPEND wa_zycet002 TO itab_zycet002.
APPEND wa_zycet002 TO itab_002.
ENDLOOP.
...
IF NOT v_vbeln_vl IS INITIAL AND
v_posnr_vl IS INITIAL.
LOOP AT itab_vbfa WHERE vbeln EQ itab_zycet002-vbeln_vl AND
posnn NE space AND
* >> Início da Exclusão <<
vbtyp_n EQ 'J'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbtyp_n CA 'JT7'.
* >> Fim da Inclusão <<
READ TABLE itab_vbak WITH KEY vbeln = itab_vbfa-vbelv.
IF sy-subrc EQ 0.
v_tipo_ov = 'C'.
ELSE.
READ TABLE itab_ekpo WITH KEY ebeln = itab_vbfa-vbelv.
IF sy-subrc EQ 0.
v_tipo_ov = 'V'.
ENDIF.
ENDIF.
...
IF NOT v_vbeln_va IS INITIAL AND
v_vbeln_vl IS INITIAL.
LOOP AT itab_vbfa WHERE vbelv EQ v_vbeln_va AND
posnv EQ v_posnr_va AND
* >> Início da Exclusão <<
vbtyp_n EQ 'J'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbtyp_n CA 'JT7'.
* >> Fim da Inclusão <<
READ TABLE itab_likp WITH KEY vbeln = itab_vbfa-vbeln.
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
IF v_tipo_ov EQ 'V'.
READ TABLE itab_002 WITH KEY ebeln = v_vbeln_va
ebelp = v_posnr_va
vbeln_vl = itab_vbfa-vbeln
posnl = itab_vbfa-posnn.
ELSE.
...
ENDFORM. " atualiza_ordens_e_remessas
FORM atualiza_outras_ordens USING value(p_auart) TYPE c.
DATA: wa_zycet002 LIKE itab_zycet002,
itab_002 LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE,
v_vbeln LIKE vbfa-vbeln,
v_posnr LIKE vbfa-posnn,
v_nao_achou TYPE c,
v_exclui TYPE c.
v_nao_achou = 'X'.
LOOP AT itab_zycet002 WHERE NOT vbeln_vf IS initial.
...
IF p_auart EQ 'X'.
IF NOT itab_vbak-auart IS INITIAL.
CLEAR itab_zycet020.
READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart
bukrs = itab_vbak-bukrs_vf
IF sy-subrc NE 0.
READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
IF /pws/zycee001-tipo_emb EQ 'D'.
IF itab_zycet020-tipodoc EQ 'OS' OR
itab_zycet020-tipodoc EQ 'OV'.
CONTINUE.
ENDIF.
ENDIF.
IF /pws/zycee001-tipo_emb EQ 'V'.
IF itab_zycet020-tipodoc NE 'OS' AND
itab_zycet020-tipodoc NE 'OV'.
CONTINUE.
ENDIF.
ENDIF.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF /pws/zycee001-tipo_emb EQ 'D'.
IF itab_zycet020-tipodoc EQ 'OS' OR
itab_zycet020-tipodoc EQ 'OV' OR
itab_zycet020-tipodoc EQ 'VC' OR
itab_zycet020-tipodoc EQ 'CO'.
CONTINUE.
ENDIF.
ENDIF.
IF /pws/zycee001-tipo_emb EQ 'V'.
IF itab_zycet020-tipodoc NE 'OS' AND
itab_zycet020-tipodoc NE 'OV' AND
itab_zycet020-tipodoc NE 'VC' AND
itab_zycet020-tipodoc NE 'CO'.
CONTINUE.
ENDIF.
ENDIF.
IF /pws/zycee001-tipo_emb EQ 'C' AND
/pws/zycee001-emb_consig EQ 'C'.
IF itab_zycet020-tipodoc EQ 'VC'.
CONTINUE.
ENDIF.
ENDIF.
* >> Fim da Inclusão <<
ENDIF.
CLEAR v_nao_achou.
CLEAR wa_zycet002.
...
ENDFORM. " atualiza_outras_ordens
FORM atualiza_faturamentos.
DATA: wa_zycet002 LIKE itab_zycet002,
itab_002 LIKE itab_zycet002 OCCURS 0 WITH HEADER LINE,
v_vbeln LIKE vbfa-vbeln,
v_posnr LIKE vbfa-posnn,
v_nao_achou TYPE c,
v_tipo_ov TYPE c.
LOOP AT itab_zycet002 WHERE vbeln_vf IS initial.
itab_002[] = itab_zycet002[].
CHECK ( NOT itab_zycet002-vbeln_va IS INITIAL AND
NOT itab_zycet002-aupos IS INITIAL ) OR
( NOT itab_zycet002-ebeln IS INITIAL AND
NOT itab_zycet002-ebelp IS INITIAL ).
* >> Início da Inclusão <<
clear itab_vbak.
read table itab_vbak with key vbeln = itab_zycet002-vbeln_va.
* >> Fim da Inclusão <<
IF NOT itab_vbak-auart IS INITIAL.
CLEAR itab_zycet020.
READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart
bukrs = itab_vbak-bukrs_vf.
IF sy-subrc NE 0.
READ TABLE itab_zycet020 WITH KEY auart = itab_vbak-auart.
ENDIF.
* >> Início da Exclusão <<
IF ( itab_zycet020-tipodoc EQ 'OS' OR
itab_zycet020-tipodoc EQ 'OV' ) AND
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF ( itab_zycet020-tipodoc EQ 'OS' OR
itab_zycet020-tipodoc EQ 'OV' OR
itab_zycet020-tipodoc EQ 'VC' OR
itab_zycet020-tipodoc EQ 'CO' ) AND
* >> Fim da Inclusão <<
itab_zycet002-vbeln_vl IS INITIAL.
CONTINUE.
ENDIF.
ENDIF.
...
ENDFORM. " atualiza_faturamentos
FORM elimina_embarque.
DATA: v_resposta(1) TYPE c.
DATA: v_erro(1) TYPE c.
...
DELETE FROM /pws/zycet001
WHERE nrseq = /pws/zycee001-nrseq.
IF sy-subrc NE 0.
v_erro = 'X'.
ENDIF.
* >> Início da Exclusão <<
IF NOT itab_zycet002[] IS INITIAL.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF NOT itab_zycet002[] IS INITIAL OR
NOT itab_zycet002_ant[] IS INITIAL.
* >> Fim da Inclusão <<
DELETE FROM /pws/zycet002
WHERE nrseq = /pws/zycee001-nrseq.
IF sy-subrc NE 0.
v_erro = 'X'.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
IF NOT itab_zycet003[] IS INITIAL.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF NOT itab_zycet003[] IS INITIAL OR
NOT itab_zycet003_ant[] IS INITIAL.
* >> Fim da Inclusão <<
DELETE FROM /pws/zycet003
WHERE nrseq = /pws/zycee001-nrseq.
IF sy-subrc NE 0.
v_erro = 'X'.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
IF NOT itab_zycet008[] IS INITIAL.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF NOT itab_zycet008[] IS INITIAL OR
NOT itab_zycet008_ant[] IS INITIAL.
* >> Fim da Inclusão <<
DELETE FROM /pws/zycet008
WHERE nrseq = /pws/zycee001-nrseq.
IF sy-subrc NE 0.
v_erro = 'X'.
ENDIF.
ENDIF.
DELETE FROM /pws/zycet014
WHERE nrseq = /pws/zycee001-nrseq.
DELETE FROM /pws/zycet014a
WHERE nrseq = /pws/zycee001-nrseq.
* >> Início da Exclusão <<
IF NOT itab_zycet015[] IS INITIAL.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF NOT itab_zycet015[] IS INITIAL OR
NOT itab_zycet015_ant[] IS INITIAL.
* >> Fim da Inclusão <<
DELETE FROM /pws/zycet015
WHERE nrseq = /pws/zycee001-nrseq.
IF sy-subrc NE 0.
v_erro = 'X'.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
IF NOT itab_zycet016[] IS INITIAL.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF NOT itab_zycet016[] IS INITIAL OR
NOT itab_zycet016_ant[] IS INITIAL.
* >> Fim da Inclusão <<
DELETE FROM /pws/zycet016
WHERE nrseq = /pws/zycee001-nrseq.
IF sy-subrc NE 0.
v_erro = 'X'.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
IF NOT itab_zycet129[] IS INITIAL.
DELETE FROM /pws/zycet129
WHERE nrseq = /pws/zycee001-nrseq.
IF sy-subrc NE 0.
v_erro = 'X'.
ENDIF.
ENDIF.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
DELETE FROM /pws/zycet129
WHERE nrseq = /pws/zycee001-nrseq.
* >> Fim da Inclusão <<
...
ENDFORM. " elimina_embarque
FORM valida_eliminacao.
DATA: v_num_messages LIKE sy-tabix.
IF NOT wa_status_cab-f_pca IS INITIAL.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'W'
msgv1 = /pws/zycee001-nrseq
msgv2 = text-s02
txtnr = 236
zeile = 'CAN_NOT_DEL'.
ENDIF.
* >> Início da Exclusão <<
IF NOT wa_status_cab-comag IS INITIAL.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF wa_status_cab-comag CA 'BC'.
* >> Fim da Inclusão <<
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'W'
msgv1 = /pws/zycee001-nrseq
msgv2 = text-s03
txtnr = 236
zeile = 'CAN_NOT_DEL'.
ENDIF.
...
READ TABLE itab_zycet292 INDEX 1.
IF sy-subrc EQ 0.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'W'
msgv1 = /pws/zycee001-nrseq
msgv2 = text-544
txtnr = 236
zeile = 'CAN_NOT_DEL'.
ENDIF.
* >> Início da Inclusão <<
IF /pws/zycee001-tipo_emb EQ 'C' AND
/pws/zycee001-emb_consig EQ 'C'.
LOOP AT itab_venda_cons.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'E'
msgv1 = itab_venda_cons-nrseq
txtnr = 264
zeile = 'CAN_NOT_DEL'.
ENDLOOP.
ENDIF.
* >> Fim da Inclusão <<
CALL FUNCTION 'MESSAGES_COUNT'
IMPORTING
count = v_num_messages.
IF v_num_messages IS INITIAL.
sy-subrc = 0.
ELSE.
sy-subrc = 4.
ENDIF.
ENDFORM. " valida_eliminacao
...
FORM verifica_particao_lote.
DATA: BEGIN OF itab_particao OCCURS 0,
vbelv LIKE lips-vbeln,
posnv LIKE lips-posnr,
vbeln LIKE lips-vbeln,
posnn LIKE lips-posnr,
END OF itab_particao.
...
CHECK sy-subrc EQ 0.
LOOP AT itab_vbfa WHERE vbelv = itab_lips-vgbel AND
posnv = itab_lips-vgpos AND
* >> Início da Exclusão <<
vbtyp_n = 'J'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
vbtyp_n CA 'JT7'.
* >> Fim da Inclusão <<
CHECK itab_vbfa-posnn LT 900000.
itab_particao-vbelv = itab_vbfa-vbeln.
itab_particao-posnv = itab_vbfa-posnn.
itab_particao-vbeln = itab_zycet002-vbeln_vl.
itab_particao-posnn = itab_zycet002-posnl.
APPEND itab_particao.
ENDLOOP.
ENDLOOP.
...
ENDFORM. " verifica_particao_lote
FORM consistencia_itens USING value(p_excluir).
STATICS: v_parvw LIKE vbpa-parvw.
...
IF v_parvw IS INITIAL.
CALL FUNCTION 'CONVERSION_EXIT_PARVW_INPUT'
EXPORTING
input = 'PY'
IMPORTING
output = v_parvw.
ENDIF.
itab_zycet002-mark = ' '.
* >> Início da Exclusão <<
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF /pws/zycee001-emb_consig EQ 'C'.
itab_zycet002-consig = 'X'.
ELSE.
itab_zycet002-consig = ' '.
ENDIF.
* >> Fim da Inclusão <<
MODIFY itab_zycet002 TRANSPORTING consig mark
WHERE mark NE itab_zycet002-mark OR
consig NE itab_zycet002-consig.
* Carrega itens já existentes em outros embarques
LOOP AT itab_zycet002 WHERE vbeln_va NE space.
MOVE: itab_zycet002-vbeln_va TO itab_ordens-vbeln_va,
itab_zycet002-aupos TO itab_ordens-aupos.
APPEND itab_ordens.
ENDLOOP.
...
* Consistência da Divisão
IF itab_zycet002-gsber NE /pws/zycee001-gsber.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = v_msgtp
msgv1 = text-566
msgv2 = itab_zycet002-vbeln_va
msgv3 = itab_zycet002-aupos
txtnr = 241
zeile = 'GSBER_ERR'.
IF p_excluir EQ 'X'.
itab_zycet002-mark = 'X'.
MODIFY itab_zycet002.
ENDIF.
ENDIF.
ENDIF.
* >> Início da Inclusão <<
* Consistência do Tipo de Ordem
IF /pws/zycee001-tipo_emb EQ 'C'.
CLEAR itab_zycet020.
IF NOT itab_zycet002-auart IS INITIAL.
READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart
bukrs = itab_zycet002-bukrs.
IF sy-subrc NE 0.
READ TABLE itab_zycet020 WITH KEY auart = itab_zycet002-auart.
ENDIF.
IF sy-subrc EQ 0.
IF /pws/zycee001-emb_consig EQ 'C'.
IF itab_zycet020-tipodoc NE 'DR' AND
itab_zycet020-tipodoc NE 'OD' AND
itab_zycet020-tipodoc NE 'OC' AND
itab_zycet020-tipodoc NE 'CO'.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'E'
msgv1 = 'Consignação'(572)
msgv2 = itab_zycet002-auart
msgv3 = itab_zycet002-vbeln_va
msgv4 = itab_zycet002-aupos
txtnr = 261
zeile = 'AUART_ERR'.
IF p_excluir EQ 'X'.
itab_zycet002-mark = 'X'.
MODIFY itab_zycet002.
ENDIF.
ENDIF.
ELSE.
IF itab_zycet020-tipodoc NE 'DR' AND
itab_zycet020-tipodoc NE 'OD' AND
itab_zycet020-tipodoc NE 'OC' AND
itab_zycet020-tipodoc NE 'VC'.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'E'
msgv1 = 'Venda de Consignação'(573)
msgv2 = itab_zycet002-auart
msgv3 = itab_zycet002-vbeln_va
msgv4 = itab_zycet002-aupos
txtnr = 261
zeile = 'AUART_ERR'.
IF p_excluir EQ 'X'.
itab_zycet002-mark = 'X'.
MODIFY itab_zycet002.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* Consistência do Embarque de Consignação.
IF /pws/zycee001-emb_consig EQ 'V'.
IF itab_zycet002-devolucao IS INITIAL AND
itab_zycet002-complemento IS INITIAL AND
itab_zycet002-estornado IS INITIAL AND
NOT itab_zycet002-zterm IS INITIAL.
IF itab_zycet002-nrseq_consig NE wa_valores-nrseq_consig.
IF itab_zycet002-nrseq_consig IS INITIAL.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'E'
msgv1 = itab_zycet002-vbeln_va
msgv2 = itab_zycet002-aupos
txtnr = 263
zeile = 'CONSIG_ERR'.
ELSE.
CALL FUNCTION 'MESSAGE_STORE'
EXPORTING
arbgb = '/PWS/ZYCEM'
msgty = 'E'
msgv1 = itab_zycet002-vbeln_va
msgv2 = itab_zycet002-aupos
msgv3 = itab_zycet002-nrseq_consig
msgv4 = wa_valores-nrseq_consig
txtnr = 262
zeile = 'CONSIG_ERR'.
ENDIF.
IF p_excluir EQ 'X'.
itab_zycet002-mark = 'X'.
MODIFY itab_zycet002.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
* >> Fim da Inclusão <<
* Verifica se Item está em outro Embarque
READ TABLE itab_zycet002_existe
WITH KEY vbeln_va = itab_zycet002-vbeln_va
aupos = itab_zycet002-aupos
vbeln_vl = itab_zycet002-vbeln_vl
posnl = itab_zycet002-posnl
vbeln_vf = itab_zycet002-vbeln_vf
posnr = itab_zycet002-posnr
ebeln = itab_zycet002-ebeln
ebelp = itab_zycet002-ebelp.
...
PERFORM refresh_embarque USING space.
ENDFORM. " consistencia_itens
...
FORM seleciona_novos_itens.
DATA: wa_vbco6 LIKE vbco6.
DATA: BEGIN OF itab_002 OCCURS 0,
vbeln_va LIKE /pws/zycet002-vbeln_va,
aupos LIKE /pws/zycet002-aupos,
vbeln_vl LIKE /pws/zycet002-vbeln_vl,
posnl LIKE /pws/zycet002-posnl,
vbeln_vf LIKE /pws/zycet002-vbeln_vf,
posnr LIKE /pws/zycet002-posnr,
END OF itab_002.
...
LOOP AT itab_vbfa_2.
IF itab_vbfa_2-vbtyp_n EQ 'C'.
READ TABLE itab_vbak_2 WITH KEY vbeln = itab_vbfa_2-vbeln.
CHECK sy-subrc NE 0.
SELECT vbeln
auart
vkorg
vtweg
FROM vbak
APPENDING TABLE itab_vbak_2
WHERE vbeln = itab_vbfa_2-vbeln.
* >> Início da Exclusão <<
ELSEIF itab_vbfa_2-vbtyp_n CA 'JT'.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
ELSEIF itab_vbfa_2-vbtyp_n CA 'JT7'.
* >> Fim da Inclusão <<
READ TABLE itab_likp_2 WITH KEY vbeln = itab_vbfa_2-vbeln.
CHECK sy-subrc NE 0.
SELECT vbeln
kunag
FROM likp
APPENDING TABLE itab_likp_2
WHERE vbeln = itab_vbfa_2-vbeln.
ENDIF.
ENDLOOP.
...
ENDFORM. " seleciona_novos_itens
...
* >> Início da Inclusão <<
FORM localiza_consignacao.
DATA: v_vbeln_vf LIKE vbrp-vbeln,
v_posnr_vf LIKE vbrp-posnr,
v_vbeln_vl LIKE lips-vbeln,
v_posnr_vl LIKE lips-posnr.
READ TABLE itab_vbfa WITH KEY vbeln = itab_zycet002-vbeln_va
posnn = itab_zycet002-aupos
vbtyp_n = 'C'
vbtyp_v = 'M'.
CHECK sy-subrc EQ 0.
v_vbeln_vf = itab_vbfa-vbelv.
v_posnr_vf = itab_vbfa-posnv.
READ TABLE itab_vbfa WITH KEY vbeln = v_vbeln_vf
posnn = v_posnr_vf
vbtyp_n = 'M'
vbtyp_v = 'J'.
CHECK sy-subrc EQ 0.
v_vbeln_vl = itab_vbfa-vbelv.
v_posnr_vl = itab_vbfa-posnv.
READ TABLE itab_vbfa WITH KEY vbeln = v_vbeln_vl
posnn = v_posnr_vl
vbtyp_n = 'J'
vbtyp_v = 'C'.
CHECK sy-subrc EQ 0.
itab_zycet002-vbeln_consig = itab_vbfa-vbelv.
itab_zycet002-posnr_consig = itab_vbfa-posnv.
ENDFORM. " localiza_consignacao
FORM atualiza_consignacao.
DATA: BEGIN OF itab_emb_cons OCCURS 0,
nrseq_cons LIKE /pws/zycet001-nrseq,
dtaverb LIKE /pws/zycet001-dtaverb,
dtemb LIKE /pws/zycet001-dtemb,
dteta LIKE /pws/zycet001-dteta,
dtinclav LIKE /pws/zycet001-dtinclav,
dtprev LIKE /pws/zycet001-dtprev,
dtrecemb LIKE /pws/zycet001-dtrecemb,
dtvencto LIKE /pws/zycet001-dtvencto,
kurrf_bl LIKE /pws/zycet001-kurrf_bl,
navio LIKE /pws/zycet001-navio,
portdest LIKE /pws/zycet001-portdest,
portemb LIKE /pws/zycet001-portemb,
paisportdest LIKE /pws/zycet001-paisportdest,
viatrans LIKE /pws/zycet001-viatrans,
inco1 LIKE /pws/zycet001-inco1,
dtcruze LIKE /pws/zycet001-dtcruze,
paisemb LIKE /pws/zycet001-paisemb,
tpcalc LIKE /pws/zycet001-tpcalc,
eadi LIKE /pws/zycet001-eadi,
zolla_eadi LIKE /pws/zycet001-zolla_eadi,
modo_venc LIKE /pws/zycet001-modo_venc,
END OF itab_emb_cons.
DATA: BEGIN OF itab_item_cons OCCURS 0,
nrseq LIKE /pws/zycet002-nrseq,
vbeln_va LIKE /pws/zycet002-vbeln_va,
aupos LIKE /pws/zycet002-aupos,
END OF itab_item_cons.
DATA: itab_itens LIKE itab_item_cons OCCURS 0 WITH HEADER LINE.
LOOP AT itab_zycet002 WHERE NOT vbeln_consig IS initial.
MOVE: itab_zycet002-vbeln_consig TO itab_itens-vbeln_va,
itab_zycet002-posnr_consig TO itab_itens-aupos.
APPEND itab_itens.
ENDLOOP.
IF NOT itab_itens[] IS INITIAL.
SELECT nrseq
vbeln_va
aupos
FROM /pws/zycet002
INTO TABLE itab_item_cons
FOR ALL ENTRIES IN itab_itens
WHERE vbeln_va EQ itab_itens-vbeln_va AND
aupos EQ itab_itens-aupos AND
consig EQ 'X'.
IF sy-subrc EQ 0.
SELECT nrseq
dtaverb
dtemb
dteta
dtinclav
dtprev
dtrecemb
dtvencto
kurrf_bl
navio
portdest
portemb
paisportdest
viatrans
inco1
dtcruze
paisemb
tpcalc
eadi
zolla_eadi
modo_venc
FROM /pws/zycet001
INTO TABLE itab_emb_cons
FOR ALL ENTRIES IN itab_item_cons
WHERE nrseq EQ itab_item_cons-nrseq.
IF sy-subrc EQ 0.
CLEAR itab_emb_cons.
LOOP AT itab_zycet002 WHERE nrseq_consig IS initial AND
NOT vbeln_consig IS initial.
READ TABLE itab_item_cons
WITH KEY vbeln_va = itab_zycet002-vbeln_consig
aupos = itab_zycet002-posnr_consig.
CHECK sy-subrc EQ 0.
itab_zycet002-nrseq_consig = itab_item_cons-nrseq.
MODIFY itab_zycet002 TRANSPORTING nrseq_consig.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
CLEAR: /pws/zycee001-dtaverb,
/pws/zycee001-dtemb,
/pws/zycee001-dteta,
/pws/zycee001-dtinclav,
/pws/zycee001-dtprev,
/pws/zycee001-dtrecemb,
/pws/zycee001-dtvencto,
/pws/zycee001-kurrf_bl,
/pws/zycee001-navio,
/pws/zycee001-portdest,
/pws/zycee001-portemb,
/pws/zycee001-paisportdest,
/pws/zycee001-viatrans,
/pws/zycee001-inco1,
/pws/zycee001-dtcruze,
/pws/zycee001-paisemb,
/pws/zycee001-tpcalc,
/pws/zycee001-eadi,
/pws/zycee001-zolla_eadi,
/pws/zycee001-modo_venc,
wa_valores-nrseq_consig.
LOOP AT itab_zycet002 WHERE NOT nrseq_consig IS initial.
READ TABLE itab_emb_cons
WITH KEY nrseq_cons = itab_zycet002-nrseq_consig.
CHECK sy-subrc EQ 0.
wa_valores-nrseq_consig = itab_zycet002-nrseq_consig.
MOVE-CORRESPONDING itab_emb_cons TO /pws/zycee001.
EXIT.
ENDLOOP.
ENDFORM. " atualiza_consignacao
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003F02
FORM cons_define_tabstrips.
DATA: v_tela_botao LIKE sy-dynnr.
* Define as telas e subtelas das tabstrips, além dos textos das abas
DEFINE add_tabstrip.
clear itab_tabstrip.
read table itab_tabstrip with key level = &1
tabname = &2.
if sy-subrc ne 0.
itab_tabstrip-level = &1.
itab_tabstrip-tabname = &2.
itab_tabstrip-cprog = &3.
itab_tabstrip-dynnr = &4.
itab_tabstrip-visible = 'X'.
itab_tabstrip-hdr_scr = &5.
itab_tabstrip-tbar_scr = &6.
itab_tabstrip-descr = &7.
append itab_tabstrip.
endif.
END-OF-DEFINITION.
...
add_tabstrip 'HDR' 'T/06' sy-cprog '0102' '0100' '0050'
'Serviços'(c06).
* >> Início da Exclusão <<
add_tabstrip 'HDR' 'T/07' sy-cprog '0103' '0100' '0050'
'Fluxo do Faturamento Intercompany'(c07).
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
add_tabstrip 'HDR' 'T/07' sy-cprog '0103' '0100' '0050'
'Vendas de Consignação'(c07).
* >> Fim da Inclusão <<
add_tabstrip 'HDR' 'T/08' sy-cprog '0104' '0100' '0050'
'SISCOMEX'(c08).
...
FORM cons_define_tablecontrols.
* Define dados de controle para as Table-Controls
DEFINE add_table_control.
clear itab_tbcontrol.
read table itab_tbcontrol with key level = &1
tabname = &2.
if sy-subrc ne 0.
itab_tbcontrol-level = &1.
itab_tbcontrol-dynnr = &2.
itab_tbcontrol-tabname = &3.
itab_tbcontrol-nivel = &4.
itab_tbcontrol-group4 = &5.
itab_tbcontrol-exibe = &6.
itab_tbcontrol-selec = &7.
itab_tbcontrol-pagina = 1.
append itab_tbcontrol.
endif.
END-OF-DEFINITION.
...
add_table_control 'HDR' '0102' 'T/06' 'SVC' 'S' space 'X'.
* >> Início da Inclusão <<
add_table_control 'HDR' '0103' 'T/07' 'CON' 'C' 'S' 'X'.
* >> Fim da Inclusão <<
add_table_control 'HDR' '0104' 'T/08' 'SIS' 'S' 'S' 'X'.
...
FORM cons_define_drill_down.
DATA: v_tsysdef LIKE tsysdef.
...
IF v_tsysdef(2) EQ '00'.
add_drill_down '/PWS/ZYCEE001-WERKS'
'WB03'
'WRK'
space
space
space
space.
add_drill_down '/PWS/ZYCEE002-WERKS'
'WB03'
'WRK'
space
space
space
space.
* >> Início da Inclusão <<
add_drill_down 'ITAB_VENDA_CONS-WERKS'
'WB03'
'WRK'
space
space
space
space.
* >> Fim da Inclusão <<
ELSE.
add_drill_down '/PWS/ZYCEE001-WERKS'
'WB03'
'WRK'
space
space
'X'
space.
add_drill_down '/PWS/ZYCEE002-WERKS'
'WB03'
'WRK'
space
space
'X'
space.
* >> Início da Inclusão <<
add_drill_down 'ITAB_VENDA_CONS-WERKS'
'WB03'
'WRK'
space
space
'X'
space.
* >> Fim da Inclusão <<
ENDIF.
...
* >> Início da Inclusão <<
add_drill_down 'ITAB_VENDA_CONS-VBELN_VA'
'VA03'
'AUN'
space
space
'X'
space.
add_drill_down 'ITAB_VENDA_CONS-VBELN_VL'
'VL03N'
'VL'
space
space
'X'
space.
add_drill_down 'ITAB_VENDA_CONS-VBELN_VF'
'VF03'
'VF'
space
space
'X'
space.
add_drill_down 'ITAB_VENDA_CONS-DOCNUM'
'J1B3'
'JEF'
space
space
'X'
space.
add_drill_down 'ITAB_VENDA_CONS-KUNAG'
'FD03'
'KUN'
space
space
'X'
space.
add_drill_down 'ITAB_VENDA_CONS-MATNR'
'MM03'
'MAT'
space
space
'X'
space.
add_drill_down 'WA_VALORES-NRSEQ_CONSIG'
c_transacao_e
'/PWS/ZYCEP001'
space
space
'X'
space.
add_drill_down 'ITAB_VENDA_CONS-NRSEQ'
c_transacao_e
'/PWS/ZYCEP001'
space
space
'X'
space.
* >> Fim da Inclusão <<
...
ENDFORM. " cons_define_drill_down
FORM valores_iniciais.
CASE sy-dynnr.
WHEN '0001'.
PERFORM valores_iniciais_0001.
WHEN '0002'.
PERFORM valores_iniciais_0002.
WHEN '0003'.
PERFORM valores_iniciais_0003.
WHEN '0010'.
PERFORM valores_iniciais_0010.
WHEN '0050'.
WHEN '0051'.
WHEN '0100'.
* >> Início da Inclusão <<
PERFORM valores_iniciais_0100.
* >> Fim da Inclusão <<
WHEN '0101'.
PERFORM valores_iniciais_0101.
WHEN '0102'.
PERFORM valores_iniciais_0102.
* >> Início da Inclusão <<
WHEN '0103'.
PERFORM valores_iniciais_0103.
* >> Fim da Inclusão <<
WHEN '0104'.
PERFORM valores_iniciais_0104.
WHEN '0105'.
PERFORM valores_iniciais_0105.
WHEN '0106'.
PERFORM valores_iniciais_0106.
...
ENDFORM. " valores_iniciais
...
FORM valores_iniciais_0002.
DATA: v_nome TYPE vrm_id,
v_lista TYPE vrm_values,
wa_valores LIKE LINE OF v_lista.
* >> Início da Inclusão <<
CONSTANTS: c_permitido(5) TYPE c VALUE 'SDVTC'.
* >> Fim da Inclusão <<
IF /pws/zycee001 IS INITIAL.
PERFORM limpa_tabelas_internas.
READ TABLE itab_zycet312 INDEX 1.
...
MOVE: sy-langu TO /pws/zycee001-spras,
sy-datum TO /pws/zycee001-dtuserc,
sy-uzeit TO /pws/zycee001-hruserc,
sy-uname TO /pws/zycee001-unamec,
sy-datlo TO /pws/zycee001-dtincl,
space TO /pws/zycee001-envia_c,
'1' TO /pws/zycee001-sta1,
'1' TO /pws/zycee001-tpcalc.
* >> Início da Inclusão <<
IF /pws/zycee001-tipo_emb NA c_permitido.
/pws/zycee001-tipo_emb = 'S'.
ENDIF.
* >> Fim da Inclusão <<
ENDIF.
* >> Início da Exclusão <<
* Prepara o filtro da seleção do Local de Embarque
v_nome = 'WA_FILTRO-LCEMB'.
* Define valores para o Local de Embarque
LOOP AT itab_zycet316 WHERE uname EQ sy-uname AND
loc_emb NE space.
wa_valores-key = itab_zycet316-loc_emb.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'
itab_zycet316-loc_emb
CHANGING wa_valores-text.
APPEND wa_valores TO v_lista.
ENDLOOP.
IF sy-subrc NE 0.
LOOP AT itab_zycet316 WHERE uname EQ space AND
loc_emb NE space.
wa_valores-key = itab_zycet316-loc_emb.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'
itab_zycet316-loc_emb
CHANGING wa_valores-text.
APPEND wa_valores TO v_lista.
ENDLOOP.
ENDIF.
wa_filtro-lcemb = /pws/zycee001-loc_emb.
DESCRIBE TABLE v_lista LINES wa_numero_filtro-lcemb.
IF wa_numero_filtro-lcemb EQ 0.
wa_valores-key = 'N'.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'
wa_valores-key
CHANGING wa_valores-text.
wa_numero_filtro-lcemb = 1.
wa_filtro-lcemb = 'N'.
ELSEIF wa_numero_filtro-lcemb EQ 1.
READ TABLE itab_zycet316 INDEX 1.
wa_filtro-lcemb = itab_zycet316-loc_emb.
ENDIF.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = v_nome
values = v_lista.
REFRESH v_lista.
* Prepara o filtro da seleção do Tipo de Embarque
v_nome = 'WA_FILTRO-TPEMB'.
* Define valores para o Local de Embarque
LOOP AT itab_zycet317 WHERE uname EQ sy-uname AND
tp_emb NE space.
CHECK itab_zycet317-tp_emb CA 'SDVT'.
wa_valores-key = itab_zycet317-tp_emb.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'
itab_zycet317-tp_emb
CHANGING wa_valores-text.
APPEND wa_valores TO v_lista.
ENDLOOP.
IF sy-subrc NE 0.
LOOP AT itab_zycet317 WHERE uname EQ space AND
tp_emb NE space.
CHECK itab_zycet317-tp_emb CA 'SDVT'.
wa_valores-key = itab_zycet317-tp_emb.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'
itab_zycet317-tp_emb
CHANGING wa_valores-text.
APPEND wa_valores TO v_lista.
ENDLOOP.
ENDIF.
wa_filtro-tpemb = /pws/zycee001-tipo_emb.
DESCRIBE TABLE v_lista LINES wa_numero_filtro-tpemb.
IF wa_numero_filtro-tpemb EQ 1.
READ TABLE itab_zycet317 INDEX 1.
wa_filtro-tpemb = itab_zycet317-tp_emb.
ENDIF.
wa_filtro-lcemb = /pws/zycee001-loc_emb.
DESCRIBE TABLE v_lista LINES wa_numero_filtro-lcemb.
IF wa_numero_filtro-tpemb EQ 0.
wa_valores-key = 'S'.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'
wa_valores-key
CHANGING wa_valores-text.
wa_numero_filtro-tpemb = 1.
wa_filtro-tpemb = 'S'.
ELSEIF wa_numero_filtro-tpemb EQ 1.
READ TABLE itab_zycet317 INDEX 1.
wa_filtro-tpemb = itab_zycet317-tp_emb.
ENDIF.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = v_nome
values = v_lista.
REFRESH v_lista.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
* Prepara o filtro da seleção do Local de Embarque
v_nome = 'WA_FILTRO-LCEMB'.
* Define valores para o Local de Embarque
LOOP AT itab_zycet316 WHERE uname EQ sy-uname AND
loc_emb NE space.
wa_valores-key = itab_zycet316-loc_emb.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'
itab_zycet316-loc_emb
CHANGING wa_valores-text.
APPEND wa_valores TO v_lista.
ENDLOOP.
IF sy-subrc NE 0.
LOOP AT itab_zycet316 WHERE uname EQ space AND
loc_emb NE space.
wa_valores-key = itab_zycet316-loc_emb.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'
itab_zycet316-loc_emb
CHANGING wa_valores-text.
APPEND wa_valores TO v_lista.
ENDLOOP.
ENDIF.
wa_filtro-lcemb = /pws/zycee001-loc_emb.
DESCRIBE TABLE v_lista LINES wa_numero_filtro-lcemb.
IF wa_numero_filtro-lcemb EQ 0.
wa_valores-key = 'N'.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET316-LOC_EMB'
wa_valores-key
CHANGING wa_valores-text.
wa_numero_filtro-lcemb = 1.
wa_filtro-lcemb = 'N'.
/pws/zycee001-loc_emb = 'N'.
ELSEIF wa_numero_filtro-lcemb EQ 1.
READ TABLE itab_zycet316 INDEX 1.
wa_filtro-lcemb = itab_zycet316-loc_emb.
/pws/zycee001-loc_emb = itab_zycet316-loc_emb.
ELSE.
READ TABLE v_lista
WITH KEY key = /pws/zycee001-loc_emb
INTO wa_valores.
IF sy-subrc NE 0.
READ TABLE v_lista INDEX 1 INTO wa_valores.
/pws/zycee001-loc_emb = wa_valores-key.
wa_filtro-lcemb = /pws/zycee001-loc_emb.
ENDIF.
ENDIF.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = v_nome
values = v_lista.
REFRESH v_lista.
* Prepara o filtro da seleção do Tipo de Embarque
v_nome = 'WA_FILTRO-TPEMB'.
* Define valores para o Local de Embarque
LOOP AT itab_zycet317 WHERE uname EQ sy-uname AND
tp_emb NE space.
CHECK itab_zycet317-tp_emb CA c_permitido.
wa_valores-key = itab_zycet317-tp_emb.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'
itab_zycet317-tp_emb
CHANGING wa_valores-text.
APPEND wa_valores TO v_lista.
ENDLOOP.
IF sy-subrc NE 0.
LOOP AT itab_zycet317 WHERE uname EQ space AND
tp_emb NE space.
CHECK itab_zycet317-tp_emb CA c_permitido.
wa_valores-key = itab_zycet317-tp_emb.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'
itab_zycet317-tp_emb
CHANGING wa_valores-text.
APPEND wa_valores TO v_lista.
ENDLOOP.
ENDIF.
wa_filtro-tpemb = /pws/zycee001-tipo_emb.
DESCRIBE TABLE v_lista LINES wa_numero_filtro-tpemb.
IF wa_numero_filtro-tpemb EQ 0.
wa_valores-key = 'S'.
PERFORM busca_descricao_dominio USING '/PWS/ZYCET317-TP_EMB'
wa_valores-key
CHANGING wa_valores-text.
wa_numero_filtro-tpemb = 1.
wa_filtro-tpemb = 'S'.
/pws/zycee001-tipo_emb = wa_filtro-tpemb.
ELSEIF wa_numero_filtro-tpemb EQ 1.
READ TABLE itab_zycet317 INDEX 1.
wa_filtro-tpemb = itab_zycet317-tp_emb.
/pws/zycee001-tipo_emb = wa_filtro-tpemb.
ELSE.
READ TABLE v_lista
WITH KEY key = /pws/zycee001-tipo_emb
INTO wa_valores.
IF sy-subrc NE 0.
READ TABLE v_lista INDEX 1 INTO wa_valores.
wa_filtro-tpemb = wa_valores-key.
/pws/zycee001-tipo_emb = wa_filtro-tpemb.
ENDIF.
ENDIF.
CALL FUNCTION 'VRM_SET_VALUES'
EXPORTING
id = v_nome
values = v_lista.
REFRESH v_lista.
* >> Fim da Inclusão <<
...
ENDFORM. " valores_iniciais_0002
* >> Início da Inclusão <<
FORM valores_iniciais_0100.
LOOP AT itab_zycet002 WHERE NOT nrseq_consig IS initial.
wa_valores-nrseq_consig = itab_zycet002-nrseq_consig.
EXIT.
ENDLOOP.
ENDFORM. " valores_iniciais_0100
FORM valores_iniciais_0103.
DATA: v_tabix LIKE sy-tabix.
DESCRIBE TABLE itab_venda_cons LINES v_tabix.
tc_consigna-lines = v_tabix + 1.
PERFORM posiciona_table_control USING 3
CHANGING tc_consigna-top_line.
ENDFORM. " valores_iniciais_0103
* >> Fim da Inclusão <<
FORM loop_at_screen.
* >> Início da Exclusão <<
DATA: v_consignacao TYPE c.
IF NOT /pws/zycee001 IS INITIAL.
CLEAR itab_zycet037.
READ TABLE itab_zycet037 WITH KEY bukrs = /pws/zycee001-bukrs.
IF NOT itab_zycet037-bukrs IS INITIAL.
IF itab_zycet037-consig_std EQ 0.
IF itab_zycet002[] IS INITIAL.
v_consignacao = 'X'.
ELSE.
READ TABLE itab_zycet002 WITH KEY vbeln_vf = space.
IF sy-subrc EQ 0.
v_consignacao = 'X'.
ENDIF.
ENDIF.
ELSE.
v_consignacao = 'X'.
ENDIF.
ENDIF.
ENDIF.
* >> Fim da Exclusão <<
CASE sy-dynnr.
WHEN '0001'.
WHEN '0002'.
PERFORM loop_at_screen_0002.
* >> Início da Exclusão <<
v_consignacao = 'X'.
WHEN '0010'.
PERFORM loop_at_screen_0010.
PERFORM verifica_tabstrip.
WHEN '0050'.
WHEN '0100'.
WHEN '0101'.
PERFORM loop_at_screen_0101.
WHEN '0102'.
PERFORM loop_at_screen_0102 USING v_consignacao.
WHEN '0104'.
PERFORM loop_at_screen_0104 USING v_consignacao.
WHEN '0105'.
PERFORM loop_at_screen_0105 USING v_consignacao.
WHEN '0106'.
PERFORM loop_at_screen_0106 USING v_consignacao.
WHEN '0200'.
PERFORM loop_at_screen_0102 USING v_consignacao.
PERFORM loop_at_screen_0200.
WHEN '0201'.
PERFORM loop_at_screen_0102 USING v_consignacao.
WHEN '0204'.
PERFORM loop_at_screen_0204.
WHEN '0205'.
PERFORM loop_at_screen_0205 USING v_consignacao.
WHEN '0211'.
PERFORM loop_at_screen_0211 USING v_consignacao.
WHEN '0221'.
PERFORM loop_at_screen_expande.
WHEN '0222'.
PERFORM loop_at_screen_expande.
WHEN '0223'.
PERFORM loop_at_screen_expande.
WHEN '0224'.
PERFORM loop_at_screen_expande.
WHEN '4001'.
PERFORM loop_at_screen_4001.
WHEN '4002'.
PERFORM loop_at_screen_0102 USING v_consignacao.
WHEN '4004'.
PERFORM loop_at_screen_4004.
ENDCASE.
LOOP AT SCREEN.
PERFORM loop_at_screen_default USING v_consignacao
CHANGING screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
WHEN '0010'.
PERFORM loop_at_screen_0010.
PERFORM verifica_tabstrip.
WHEN '0050'.
WHEN '0100'.
WHEN '0101'.
PERFORM loop_at_screen_0101.
WHEN '0102'.
PERFORM loop_at_screen_0102.
WHEN '0103'.
PERFORM loop_at_screen_0103.
WHEN '0104'.
PERFORM loop_at_screen_0104.
WHEN '0105'.
PERFORM loop_at_screen_0105.
WHEN '0106'.
PERFORM loop_at_screen_0106.
WHEN '0200'.
PERFORM loop_at_screen_0102.
PERFORM loop_at_screen_0200.
WHEN '0201'.
PERFORM loop_at_screen_0102.
WHEN '0204'.
PERFORM loop_at_screen_0204.
WHEN '0205'.
PERFORM loop_at_screen_0205.
WHEN '0211'.
PERFORM loop_at_screen_0211.
WHEN '0221'.
PERFORM loop_at_screen_expande.
WHEN '0222'.
PERFORM loop_at_screen_expande.
WHEN '0223'.
PERFORM loop_at_screen_expande.
WHEN '0224'.
PERFORM loop_at_screen_expande.
WHEN '4001'.
PERFORM loop_at_screen_4001.
WHEN '4002'.
PERFORM loop_at_screen_0102.
WHEN '4004'.
PERFORM loop_at_screen_4004.
ENDCASE.
LOOP AT SCREEN.
PERFORM loop_at_screen_default CHANGING screen.
* >> Fim da Inclusão <<
MODIFY SCREEN.
ENDLOOP.
ENDFORM. " loop_at_screen
...
* >> Início da Exclusão <<
FORM loop_at_screen_default USING value(p_consignacao) TYPE c
CHANGING wa_screen LIKE screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
FORM loop_at_screen_default CHANGING wa_screen LIKE screen.
* >> Fim da Inclusão <<
...
IF wa_screen-group3 EQ '023'.
IF sy-tcode EQ c_transacao_c.
wa_screen-input = '0'.
wa_screen-output = '0'.
wa_screen-invisible = '1'.
wa_screen-required = '0'.
wa_screen-active = '0'.
ELSEIF sy-tcode EQ c_transacao_a.
v_input = '1'.
wa_screen-input = '1'.
wa_screen-output = '1'.
wa_screen-invisible = '0'.
wa_screen-required = '0'.
wa_screen-active = '1'.
ELSE.
wa_screen-output = '1'.
wa_screen-invisible = '0'.
wa_screen-required = '0'.
wa_screen-active = '1'.
ENDIF.
ENDIF.
* >> Início da Exclusão <<
IF /pws/zycee001-emb_consig = 'C' AND
p_consignacao NE 'X'.
wa_screen-input = '0'.
ENDIF.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
IF wa_screen-group3 EQ '024' OR
wa_screen-group2 CA '4'.
IF /pws/zycee001-emb_consig EQ 'V'.
wa_screen-input = '0'.
ENDIF.
ENDIF.
IF wa_screen-group3 EQ '025'.
IF /pws/zycee001-emb_consig NE 'V' OR
/pws/zycee001-tipo_emb NE 'C'.
wa_screen-input = '0'.
wa_screen-output = '0'.
wa_screen-invisible = '1'.
wa_screen-required = '0'.
wa_screen-active = '0'.
ELSE.
wa_screen-input = '0'.
wa_screen-output = '1'.
wa_screen-invisible = '0'.
wa_screen-required = '0'.
wa_screen-active = '1'.
ENDIF.
ENDIF.
* >> Fim da Inclusão <<
IF wa_screen-group2 NA '0'.
...
ENDFORM. " loop_at_screen_default
FORM loop_at_screen_0010.
DATA: v_tabix LIKE sy-tabix,
v_tabname(4) TYPE c.
CLEAR itab_t001.
READ TABLE itab_t001 WITH KEY bukrs = /pws/zycee001-bukrs.
LOOP AT SCREEN.
CHECK screen-group1 EQ 'TAB'.
IF wa_controle-nivel_tela EQ 'HDR'.
CONCATENATE 'T/'
screen-name+26(2)
INTO v_tabname.
READ TABLE itab_tabstrip
WITH KEY level = wa_controle-nivel_tela
tabname = v_tabname.
IF sy-subrc EQ 0.
v_tabix = sy-tabix.
* >> Início da Inclusão <<
IF itab_tabstrip-dynnr EQ '0103'.
itab_tabstrip-visible = ' '.
IF sy-tcode EQ c_transacao_c.
itab_tabstrip-visible = ' '.
ELSEIF /pws/zycee001-tipo_emb EQ 'C' AND
/pws/zycee001-emb_consig EQ 'C'.
itab_tabstrip-visible = 'X'.
ENDIF.
ENDIF.
* >> Fim da Inclusão <<
IF itab_tabstrip-dynnr EQ '0104'.
...
ENDFORM. " loop_at_screen_0010
* >> Início da Exclusão <<
FORM loop_at_screen_0102 USING value(p_consignacao) TYPE c.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
FORM loop_at_screen_0102.
* >> Fim da Inclusão <<
...
wa_cols-screen-output = '1'.
wa_cols-screen-active = '1'.
wa_cols-invisible = '0'.
wa_cols-screen-invisible = '0'.
* >> Início da Exclusão <<
PERFORM loop_at_screen_default USING p_consignacao
CHANGING wa_cols-screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
* >> Fim da Inclusão <<
IF wa_cols-screen-invisible EQ '1'.
wa_cols-invisible = '1'.
ENDIF.
ENDIF.
MODIFY tc_itens-cols FROM wa_cols.
ENDLOOP.
ENDFORM. " loop_at_screen_0102
* >> Início da Inclusão <<
FORM loop_at_screen_0103.
DATA: wa_cols TYPE cxtab_column.
LOOP AT tc_consigna-cols INTO wa_cols.
IF wa_cols-screen-group1 CA 'F'.
wa_cols-screen-input = '0'.
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
wa_cols-screen-input = '0'.
ELSE.
wa_cols-screen-output = '1'.
wa_cols-invisible = '0'.
wa_cols-screen-active = '1'.
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
IF wa_cols-screen-invisible EQ '1'.
wa_cols-invisible = '1'.
ENDIF.
ENDIF.
MODIFY tc_consigna-cols FROM wa_cols.
ENDLOOP.
ENDFORM. " loop_at_screen_0103
* >> Fim da Inclusão <<
* >> Início da Exclusão <<
FORM loop_at_screen_0104 USING value(p_consignacao) TYPE c.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
FORM loop_at_screen_0104.
* >> Fim da Inclusão <<
DATA: wa_cols TYPE cxtab_column.
LOOP AT tc_siscomex-cols INTO wa_cols.
IF wa_cols-screen-group1 CA 'F'.
wa_cols-screen-input = '0'.
* >> Início da Exclusão <<
PERFORM loop_at_screen_default USING p_consignacao
CHANGING wa_cols-screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
* >> Fim da Inclusão <<
wa_cols-screen-input = '0'.
ELSE.
wa_cols-screen-output = '1'.
wa_cols-invisible = '0'.
wa_cols-screen-active = '1'.
* >> Início da Exclusão <<
PERFORM loop_at_screen_default USING p_consignacao
CHANGING wa_cols-screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
* >> Fim da Inclusão <<
IF wa_cols-screen-invisible EQ '1'.
wa_cols-invisible = '1'.
ENDIF.
ENDIF.
MODIFY tc_siscomex-cols FROM wa_cols.
ENDLOOP.
ENDFORM. " loop_at_screen_0104
* >> Início da Exclusão <<
FORM loop_at_screen_0105 USING value(p_consignacao) TYPE c.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
FORM loop_at_screen_0105.
* >> Fim da Inclusão <<
DATA: wa_cols TYPE cxtab_column.
LOOP AT tc_parceiro-cols INTO wa_cols.
IF wa_cols-screen-group3 NE space AND
( ( wa_cols-screen-group3 CA wa_filtro-parvw(1) AND
wa_filtro-parvw NE 'DK' ) OR
wa_cols-screen-group3 EQ 'DK' ).
wa_cols-screen-input = '0'.
wa_cols-screen-output = '0'.
wa_cols-invisible = '1'.
wa_cols-screen-active = '0'.
ELSE.
wa_cols-screen-output = '1'.
wa_cols-invisible = '0'.
wa_cols-screen-active = '1'.
* >> Início da Exclusão <<
PERFORM loop_at_screen_default USING p_consignacao
CHANGING wa_cols-screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
* >> Fim da Inclusão <<
IF wa_cols-screen-invisible EQ '1'.
wa_cols-invisible = '1'.
ENDIF.
ENDIF.
MODIFY tc_parceiro-cols FROM wa_cols.
ENDLOOP.
...
ENDFORM. " loop_at_screen_0105
* >> Início da Exclusão <<
FORM loop_at_screen_0105 USING value(p_consignacao) TYPE c.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
FORM loop_at_screen_0105.
* >> Fim da Inclusão <<
DATA: wa_cols TYPE cxtab_column.
LOOP AT tc_resumo-cols INTO wa_cols.
* >> Início da Exclusão <<
PERFORM loop_at_screen_default USING p_consignacao
CHANGING wa_cols-screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
* >> Fim da Inclusão <<
IF wa_cols-screen-invisible EQ '1'.
wa_cols-invisible = '1'.
ENDIF.
MODIFY tc_resumo-cols FROM wa_cols.
ENDLOOP.
ENDFORM. " loop_at_screen_0106
* >> Início da Exclusão <<
FORM loop_at_screen_0205 USING value(p_consignacao) TYPE c.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
FORM loop_at_screen_0205.
* >> Fim da Inclusão <<
DATA: wa_cols TYPE cxtab_column.
LOOP AT tc_drawback-cols INTO wa_cols.
* >> Início da Exclusão <<
PERFORM loop_at_screen_default USING p_consignacao
CHANGING wa_cols-screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
* >> Fim da Inclusão <<
wa_cols-screen-input = '0'.
MODIFY tc_drawback-cols FROM wa_cols.
ENDLOOP.
ENDFORM. " loop_at_screen_0205
* >> Início da Exclusão <<
FORM loop_at_screen_0211 USING value(p_consignacao) TYPE c.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
FORM loop_at_screen_0211.
* >> Fim da Inclusão <<
DATA: v_itens TYPE i.
DATA: wa_cols TYPE cxtab_column.
DATA: v_nivel TYPE c.
DESCRIBE TABLE itab_pricing_tc LINES v_itens.
tc_pricing-lines = v_itens.
READ TABLE itab_tbcontrol WITH KEY level = wa_controle-nivel_tela
tabname = ts_embarque-activetab
dynnr = sy-dynnr.
...
ELSE.
wa_cols-screen-input = '0'.
wa_cols-screen-output = '1'.
wa_cols-screen-active = '1'.
wa_cols-invisible = '0'.
* >> Início da Exclusão <<
PERFORM loop_at_screen_default USING p_consignacao
CHANGING wa_cols-screen.
* >> Fim da Exclusão <<
* >> Início da Inclusão <<
PERFORM loop_at_screen_default CHANGING wa_cols-screen.
* >> Fim da Inclusão <<
IF wa_cols-screen-invisible EQ '1'.
wa_cols-invisible = '1'.
ENDIF.
ENDIF.
MODIFY tc_pricing-cols FROM wa_cols.
ENDLOOP.
ENDFORM. " loop_at_screen_0211
FORM loop_at_screen_tc.
DATA: v_input LIKE screen-input.
v_input = '0'.
IF wa_controle-edicao EQ 'X'.
v_input = '1'.
ENDIF.
IF /pws/zycee001-envia_c EQ 'X'.
IF sy-dynnr NE '0105'.
v_input = '0'.
ENDIF.
ENDIF.
...
ENDIF.
ENDIF.
MODIFY SCREEN.
ENDLOOP.
* >> Início da Inclusão <<
WHEN '0103'.
LOOP AT SCREEN.
CHECK screen-group1 NA 'F'.
screen-input = v_input.
MODIFY SCREEN.
ENDLOOP.
* >> Fim da Inclusão <<
WHEN '0104'.
LOOP AT SCREEN.
...
ENDFORM. " loop_at_screen_tc
FORM exclui_status_gui_0010_hdr TABLES i_botoes.
IF itab_zycet015[] IS INITIAL.
APPEND 'F_SADIA' TO i_botoes.
APPEND 'F_SPCON' TO i_botoes.
ENDIF.
...
IF /pws/zycee001-tipo_emb EQ 'T'.
APPEND 'ENV_CB' TO i_botoes.
APPEND 'REM_CB' TO i_botoes.
APPEND 'F_APROP' TO i_botoes.
APPEND 'F_RGVEN' TO i_botoes.
APPEND 'F_RVEND' TO i_botoes.
ENDIF.
* >> Início da Inclusão <<
IF /pws/zycee001-tipo_emb EQ 'C'.
IF /pws/zycee001-emb_consig EQ 'C'.
APPEND 'ENV_CB' TO i_botoes.
APPEND 'REM_CB' TO i_botoes.
APPEND 'F_RVEND' TO i_botoes.
APPEND 'F_VCAMB' TO i_botoes.
APPEND 'F_LCAMB' TO i_botoes.
APPEND 'F_APROP' TO i_botoes.
APPEND 'F_PEXPA' TO i_botoes.
ELSE.
APPEND 'F_REXPO' TO i_botoes.
APPEND 'F_DDEXP' TO i_botoes.
APPEND 'F_DSEXP' TO i_botoes.
APPEND 'F_APROP' TO i_botoes.
APPEND 'F_PEXPA' TO i_botoes.
APPEND 'F_FPRAC' TO i_botoes.
APPEND 'F_CONTA' TO i_botoes.
ENDIF.
ENDIF.
* >> Fim da Inclusão <<
ENDFORM. " exclui_status_gui_0010_hdr
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003TCP
* /PWS/ZYCET317 - CE - Tipos de Embarque
DATA: BEGIN OF itab_zycet317 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet317.
DATA: END OF itab_zycet317.
* >> Início da Exclusão <<
* /PWS/ZYCET318 - CE - Tipos de Embarque de Consignação
DATA: BEGIN OF itab_zycet318 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet318.
DATA: END OF itab_zycet318.
* /PWS/ZYCET319 - CE - Tipos de Embarque Temporários
DATA: BEGIN OF itab_zycet319 OCCURS 0.
INCLUDE STRUCTURE /pws/zycet319.
DATA: END OF itab_zycet319.
* >> Fim da Exclusão <<
* /PWS/ZYCIT030 - GL - Param. Despesas de Custo x Condition Type
DATA: BEGIN OF itab_zycit030 OCCURS 0,
bukrs LIKE /pws/zycit030-bukrs,
codmod LIKE /pws/zycit030-codmod,
codigo LIKE /pws/zycit030-codigo,
kschl LIKE /pws/zycit030-kschl,
vtext LIKE /pws/zycit030-vtext,
fator LIKE /pws/zycit030-fator,
END OF itab_zycit030.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003TIA
* Tabela interna com os valores individuais das Conditions de Preços
DATA: BEGIN OF itab_pricing OCCURS 0,
codigo LIKE /pws/zycet008-codigo,
kschl LIKE konv-kschl,
vbeln LIKE vbap-vbeln,
posnr LIKE vbap-posnr,
kwert LIKE konv-kwert,
kbetr LIKE konv-kbetr,
END OF itab_pricing.
DATA: itab_pricing_tc LIKE itab_pricing OCCURS 0 WITH HEADER LINE.
* >> Início da Inclusão <<
* Tabela interna com dados das vendas de consignação
DATA: BEGIN OF itab_venda_cons OCCURS 0,
nrseq LIKE /pws/zycet002-nrseq,
vbeln_va LIKE /pws/zycet002-vbeln_va,
vbeln_vf LIKE /pws/zycet002-vbeln_vf,
posnr LIKE /pws/zycet002-posnr,
docnum LIKE /pws/zycet002-docnum,
vbeln_vl LIKE /pws/zycet002-vbeln_vl,
posnl LIKE /pws/zycet002-posnl,
aupos LIKE /pws/zycet002-aupos,
fkdat LIKE /pws/zycet002-fkdat,
inco1 LIKE /pws/zycet002-inco1,
zterm LIKE /pws/zycet002-zterm,
land1 LIKE /pws/zycet002-land1,
kunag LIKE /pws/zycet002-kunag,
gsber LIKE /pws/zycet002-gsber,
matnr LIKE /pws/zycet002-matnr,
werks LIKE /pws/zycet002-werks,
nfnum LIKE /pws/zycet002-nfnum,
nrseq_consig LIKE /pws/zycet002-nrseq_consig,
vbeln_consig LIKE /pws/zycet002-vbeln_consig,
posnr_consig LIKE /pws/zycet002-posnr_consig,
END OF itab_venda_cons.
* >> Fim da Inclusão <<
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCE003TOP
* Valores de Campos
DATA: BEGIN OF wa_valores,
* >> Início da Inclusão <<
nrseq_consig LIKE /pws/zycet001-nrseq,
* >> Fim da Inclusão <<
peso(30) TYPE c,
parvw_final(20) TYPE c,
preco_base LIKE /pws/zycet008-vlme,
preco_000001 LIKE /pws/zycet008-vlme,
pais_dest LIKE t005t-landx,
gsber LIKE tgsbt-gtext,
werks LIKE t001w-name1,
vkorg LIKE tvkot-vtext,
vtweg LIKE tvtwt-vtext,
spara LIKE tspat-vtext,
kostl LIKE cskt-ktext,
prctr LIKE cepct-ktext,
vkgrp LIKE tvgrt-bezei,
auart LIKE tvakt-bezei,
fkart LIKE tvfkt-vtext,
inco1 LIKE tinct-bezei,
zterm LIKE t052u-text1,
ktgrm LIKE tvkmt-vtext,
ktgrd LIKE tvktt-vtext,
END OF wa_valores.
...
* Controles
CONTROLS: ts_embarque TYPE TABSTRIP,
tc_itens TYPE TABLEVIEW USING SCREEN '0102',
* >> Início da Inclusão <<
tc_consigna TYPE TABLEVIEW USING SCREEN '0103',
* >> Fim da Inclusão <<
tc_siscomex TYPE TABLEVIEW USING SCREEN '0104',
tc_parceiro TYPE TABLEVIEW USING SCREEN '0105',
tc_resumo TYPE TABLEVIEW USING SCREEN '0106',
tc_docrel TYPE TABLEVIEW USING SCREEN '0204',
tc_drawback TYPE TABLEVIEW USING SCREEN '0205',
tc_pricing TYPE TABLEVIEW USING SCREEN '0211',
tc_outdados TYPE TABLEVIEW USING SCREEN '4004'.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCE003
Criar os seguintes elementos de texto:
572: Consignação
573: Venda de Consignação
Alterar o elemento de texto abaixo:
De:
C07: Fluxo do Faturamento Intercompany
Para:
C07: Vendas de Consignação
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCE003 0100
Abaixo do campo Status do Processo (/PWS/ZYCEE001-STA1), foi incluído um campo na tela:
Campo Texto:
Nome : *WA_VALORES-NRSEQ_CONSIG
Texto : Embarque de Consignação
Linha : 3
Coluna: 59
SCREEN-GROUP1: ' '
SCREEN-GROUP2: '0 '
SCREEN-GROUP3: '025'
SCREEN-GROUP4: ' '
Como denominador à esquerda
Campo entrada/saída:
Nome : WA_VALORES-NRSEQ_CONSIG
Texto : Embarque de Consignação
Linha : 3
Coluna: 82
SCREEN-GROUP1: 'F '
SCREEN-GROUP2: '0 '
SCREEN-GROUP3: '025'
SCREEN-GROUP4: ' '
Campo de Entrada
Campo de Saída
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCE003 0101
Alterar os campos GROUP2 e GROUP3 dos seguintes elementos da tela 0101:
Campo GR2 GR3
/PWS/ZYCEE001-DTETA 4
/PWS/ZYCEE001-DTPREV 4 007
/PWS/ZYCEE001-DTEMB 4 007
/PWS/ZYCEE001-DTRECEMB 4
/PWS/ZYCEE001-DTVENCTO 4 007
/PWS/ZYCEE001-KURRF_BL 4
/PWS/ZYCEE001-DTCRUZE 4 021
/PWS/ZYCEE001-NAVIO 024
/PWS/ZYCEE001-VIATRANS 4 013
/PWS/ZYCEE001-PORTEMB 4
/PWS/ZYCEE001-PORTDEST 4
/PWS/ZYCEE001-EADI 4
/PWS/ZYCEE001-PAISDEST 74 010
/PWS/ZYCEE046-ZTERM 74 011
/PWS/ZYCEE001-INCO1 74 012
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCE003 0103
Criar a subtela 0103:
Linhas : 32
Colunas: 180
Incluir uma Table Control (TC_CONSIGNA) ocupando toda a área da tela, com redimensionsamento
vertical e horizontal, com linhas de separação verticais e horizontais, sem possibilidade de marcar
linhas ou colunas.
Incluir as seguintes colunas na Table Control, com todos os campos de Entrada/Saída com o SCREEN-
GROUP1 = 'F ':
Nome Texto
ITAB_VENDA_CONS-NRSEQ Embarque_de_Venda
ITAB_VENDA_CONS-VBELN_VA Ordem_de_Venda
ITAB_VENDA_CONS-AUPOS Item_OV
ITAB_VENDA_CONS-VBELN_VL Fornecimento
ITAB_VENDA_CONS-POSNL Item_Forn.
ITAB_VENDA_CONS-VBELN_VF Faturamento
ITAB_VENDA_CONS-POSNR Item_Fat.
ITAB_VENDA_CONS-FKDAT Data_Fat.
ITAB_VENDA_CONS-DOCNUM Doc._N.F.
ITAB_VENDA_CONS-NFNUM Nota_Fiscal
ITAB_VENDA_CONS-KUNAG Emissor
ITAB_VENDA_CONS-ZTERM Cond._Pag.
ITAB_VENDA_CONS-INCO1 Incoterm
ITAB_VENDA_CONS-LAND1 País
ITAB_VENDA_CONS-WERKS Centro
ITAB_VENDA_CONS-GSBER Divisão
ITAB_VENDA_CONS-MATNR Material
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCE003 0104
Definir o SCREEN-GROUP3 do campo /PWS/ZYCEE001-DTINCLAV igual a '024'.