Módulo: DRAWBACK
Funcionalidade: Composição
Data/Hora da Publicação: 11/10/2006 00:00:00
Data/Hora Última Alteração: 17/02/2011 14:01:26
Descrição da Nota: COMPOSIÇÃO ISENÇÃO(EXPORTAÇÃO, TRADING COMPANY, COMERCIAL EXPORTADORA)
Sintoma
Ajustes no programa de composição para buscar Exportações, notas de Trading Company e Comercial
Exportadora para criar a composição de isenção e ajustado programa para tratamento de itens
genéricos.
Solução
Ajustes no programa de composição para buscar Exportações, notas de Trading Company e Comercial
Exportadora para criar a composição de isenção e ajustado programa para tratamento de itens
genéricos.
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02251 Data: 11/10/2006 Hora: 10:59:30
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02251
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00135
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01029 - 00001 - 6.0 - 00022 - PREENCHIMENTO DOS VALORES DE IMPORTAÇÃO
01758 - 00002 - 6.0 - 00024 - AJUSTE PARA TRATAMENTO DO CENTRO EXPORTADOR/IMPORTADOR NA COMPOSI
02070 - 00003 - 6.0 - 00024 - PADRONIZAÇÃO DOS CAMPOS NA COMPOSICAO DE ISENÇÃO
02190 - 00004 - 6.0 - 00025 - TRATAMENTO DE DATAS E EXCLUSÃO DOS TRATAMENTOS DE INSUMOS_ALTERNA
----------------------------------------------------------------------------------------------------
COMPOSIÇÃO ISENÇÃO(EXPORTAÇÃO, TRADING COMPANY, COMERCIAL EXPORTADORA)
----------------------------------------------------------------------------------------------------
Palavras Chave:
EXPORTAÇÃO - TRADING - COMPANY - COMERCIAL - EXPORTADORA
COMPOSIÇÃO - ISENÇÃO - /PWS/SAPMZYCI064
----------------------------------------------------------------------------------------------------
Objetos da nota:
CUAD /PWS/SAPMZYCI064
DTEL /PWS/ZYCIL843
DYNP /PWS/SAPMZYCI064 0301
DYNP /PWS/SAPMZYCI064 0303
DYNP /PWS/SAPMZYCI064 0304
DYNP /PWS/SAPMZYCI064 0305
DYNP /PWS/SAPMZYCI064 0307
DYNP /PWS/SAPMZYCI064 0308
DYNP /PWS/SAPMZYCI064 0309
DYNP /PWS/SAPMZYCI064 0310
DYNP /PWS/SAPMZYCI064 0321
FUGR /PWS/ZYCIGF1
RELE F6DK937689 20061010 105425 PWSCI
REPS /PWS/MZYCI064F03
REPS /PWS/MZYCI064I01
REPS /PWS/MZYCI064O01
REPS /PWS/MZYCI064TOP2
REPS /PWS/MZYCI064TOP3
REPS /PWS/MZYCI064X01
REPT /PWS/SAPMZYCI064
TABD /PWS/ZYCIE258
TABD /PWS/ZYCIE259
TABD /PWS/ZYCIE259C
TABD /PWS/ZYCIE259D
TABD /PWS/ZYCIE260
TABD /PWS/ZYCIE260C
TABD /PWS/ZYCIE260D
TABD /PWS/ZYCIE261
TABD /PWS/ZYCIE261C
TABD /PWS/ZYCIT258
TABD /PWS/ZYCIT259
TABD /PWS/ZYCIT260
TABD /PWS/ZYCIT261
TABD /PWS/ZYCIT321
TABL /PWS/ZYCIT472
TABL /PWS/ZYCIT473
TOBJ /PWS/ZYCIT321S
TOBJ /PWS/ZYCIT472S
TOBJ /PWS/ZYCIT473S
TRAN /PWS/ZYCIT472
TRAN /PWS/ZYCIT473
----------------------------------------------------------------------------------------------------
Modificações efetuadas em CUAD /PWS/SAPMZYCI064
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DTEL /PWS/ZYCIL843
------------------------------------------------------------------------
Elemento de dados incluído: /PWS/ZYCIL843
Classe de desenvolvimento: /PWS/ZYGL
Idioma original: PT
Descrição breve incluída: (45 caracteres), idioma: PT
"'GL - Utiliza Codigo Genérico para o material"
Categoria de dados: Domínio
Domínio: XFIELD
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
"Cod.G.Mat."
Comprimento máximo do denominador médio: 18
Denominador médio incluído (18 caracteres), idioma: PT
"Cod. Genérico Mat."
Comprimento máximo do denominador longo: 31
Denominador longo incluído (31 caracteres), idioma: PT
"Codigo Genérico para o material"
Comprimento máximo do título: 44
Título incluído (44 caracteres), idioma: PT
"GL - Utiliza Codigo Genérico para o material"
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0301
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* Campos modificados. Status Novo - Inicio
V_CENT_EI
Texto 7 5 16 16 1 CHAR
V_CENT_EI
I/O 7 22 4 4 1 CHAR Off
NEX
BT_302_02
Push 7 27 4 2 1 CHAR
EXBCE
Ícn.=ICON_ENTER_MORE
V_TXTCENT_EI
I/O 7 33 32 32 1 CHAR Off S.Sd
Dest, PossRol
V_QUAD4_0301
Quadr 8 68 46 46 1 CHAR
/PWS/ZYCIE258-CODAGRUP
Texto 9 5 15 15 1 CHAR X F
Chave externa
/PWS/ZYCIE258-CODAGRUP
I/O 9 22 4 4 1 CHAR X X Ent Off
Chave externa, Botão EntrsPoss.stand.
V_NDIVISAO3
I/O 9 33 35 32 1 CHAR Off S.Sd
Dest, PossRol
/PWS/ZYCIE258-ATOCON
Texto 10 73 23 23 1 CHAR X F
/PWS/ZYCIP435
Chave externa
/PWS/ZYCIE258-ATOCON
I/O 10 97 10 10 1 CHAR X Off
NEX /PWS/ZYCIP435
Dest, Chave externa, Botão EntrsPoss.stand.
/PWS/ZYCIE258-DATA_AC
Texto 11 73 23 23 1 CHAR X F
/PWS/ZYCIE258-DATA_AC
I/O 11 97 10 10 1 DATE X Off
NEX
Dest, Botão EntrsPoss.stand.
* Campos modificados. Status Novo - Fim
* Campos Inseridos - Inicio
BOX04
Quadr 8 68 46 46 1 CHAR
/PWS/ZYCIE258-DTPR
Texto 10 73 14 14 1 CHAR X F
/PWS/ZYCIE258-DTPR
I/O 10 92 10 10 1 DATE X Ent Off
Entr.obrig., Botão EntrsPoss.stand.
* Campos Inseridos - Fim
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0303
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
+ TC_RESUMO3
Tabel 2 1 112 112 15
Seleção linha=Simples, Seleção coluna=Nenh.
TabEntr., Com título, Configurável, Coluna marc., RedimVertic., RedimHoriz., LnhSep.vert.
* Campos Inseridos - Inicio
- /PWS/ZYCIE259-MEINS
Texto 1 7 3 3 1 CHAR X F
Chave externa, Título de coluna TC
- /PWS/ZYCIE259-WAERSFOB
Texto 1 9 5 5 1 CHAR X F
FWS
Chave externa, Título de coluna TC
- /PWS/ZYCIE259-MEINS
I/O 1 7 3 3 1 UNIT X Off
NEX
Chave externa, Botão EntrsPoss.stand., Elem.TC
Saída de conversão=CUNIT
- /PWS/ZYCIE259-WAERSFOB
I/O 1 9 5 5 1 CUKY X Off
NEX FWS
Chave externa, Botão EntrsPoss.stand., Elem.TC
* Campos Inseridos - Fim
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0304
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* Campos Inseridos - Inicio
/PWS/ZYCIE259D-MEINS
I/O 2 34 3 3 1 UNIT X Off
NEX
Dest, Chave externa, Botão EntrsPoss.stand.
Saída de conversão=CUNIT
/PWS/ZYCIE259D-WAERSFOB
I/O 2 77 5 5 1 CUKY X Off
NEX FWS
Dest, Chave externa, Botão EntrsPoss.stand.
- V_ICO_T
I/O 1 2 4 3 1 CHAR Off
NEX
PossRol, Elem.TC, Col.fixa TC
TEXT_304_001
Texto 17 1 22 20 1 CHAR
Ícn.=ICON_UNSPECIFIED_ONE
TEXT_304_002
Texto 17 46 20 18 1 CHAR
Ícn.=ICON_UNSPECIFIED_TWO
TEXT_304_003
Texto 17 89 26 24 1 CHAR
Ícn.=ICON_UNSPECIFIED_THREE
* Campos Inseridos - Fim
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0305
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* Campos Inseridos - Inicio
/PWS/ZYCIE259D-NFNUM
Texto 2 1 13 13 1 CHAR X F
VEX
/PWS/ZYCIE259D-NFNUM
I/O 2 15 6 6 1 NUMC X Off
NEX NF
/PWS/ZYCIE259D-SERIE
I/O 2 24 3 3 1 CHAR X Off
NEX NF
/PWS/ZYCIE259D-DTNF
I/O 2 31 10 10 1 DATE X Off
NEX NF
Botão EntrsPoss.stand.
/PWS/ZYCIE259D-NRRE
Texto 3 1 11 11 1 CHAR X F
RE
/PWS/ZYCIE259D-NRRE
I/O 3 15 14 14 1 CHAR X Off
NEX RE
Saída de conversão=NRRE
* Campos Inseridos - Fim
* Campos Excluidos - Inicio
/PWS/ZYCIE259D-MEINS
Texto 2 83 2 2 1 CHAR X F
Chave externa
/PWS/ZYCIE259D-NRSEQRE
Texto 3 1 13 13 1 CHAR X F
/PWS/ZYCEP013
/PWS/ZYCIE259D-NRSEQRE
I/O 3 15 10 10 1 CHAR X Off
NEX SPA GPA /PWS/ZYCEP013
Dest
* Campos Excluidos - Fim
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0307
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* Campos Inseridos - Inicio
- /PWS/ZYCIE260-GRUPO
Texto 1 2 18 18 1 CHAR X F
Título de coluna TC
- /PWS/ZYCIE260-DESC_G
Texto 1 4 23 30 1 CHAR X F
Título de coluna TC
- /PWS/ZYCIE260-WAERS
Texto 1 9 15 5 1 CHAR X 2
FWS
Chave externa, Título de coluna TC
- V_ICO_DET3
I/O 1 1 4 4 1 CHAR Off
NEX
Elem.TC, Col.fixa TC
- /PWS/ZYCIE260-GRUPO
I/O 1 2 4 18 1 CHAR X Off
NEX GR
Elem.TC, Col.fixa TC
- /PWS/ZYCIE260-DESC_G
I/O 1 4 40 30 1 CHAR X Off
NEX GR
PossRol, Elem.TC
- /PWS/ZYCIE260-MEINS
I/O 1 6 3 3 1 UNIT X Off
NEX
Chave externa, Botão EntrsPoss.stand., Elem.TC
Saída de conversão=CUNIT
- /PWS/ZYCIE260-WAERS
I/O 1 9 5 5 1 CUKY X Off
NEX FWS
Chave externa, Botão EntrsPoss.stand., Elem.TC
* Campos Inseridos - Fim
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0308
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* Campos Inseridos - Inicio
/PWS/ZYCIE260-GRUPO
Texto 1 1 17 17 1 CHAR X F
GR
/PWS/ZYCIE260-GRUPO
I/O 1 19 18 18 1 CHAR X X Off
NEX GR
Dest
/PWS/ZYCIE260-DESC_G
Texto 1 56 10 10 1 CHAR X F
GR
/PWS/ZYCIE260-DESC_G
I/O 1 67 38 38 1 CHAR X X Off
NEX GR
Dest
/PWS/ZYCIE260-MEINS
I/O 3 38 3 3 1 UNIT X Off
NEX
Dest, Chave externa, Botão EntrsPoss.stand.
Saída de conversão=CUNIT
/PWS/ZYCIE260-WAERS
I/O 3 85 5 5 1 CUKY X Off
NEX FWS
Dest, Chave externa, Botão EntrsPoss.stand.
- /PWS/ZYCIE260C-CODCOMP
Texto 1 8 15 18 1 CHAR X 2
MAT
Título de coluna TC
- /PWS/ZYCIE260C-CODCOMP
I/O 1 8 18 18 1 CHAR X Off
NEX GR MAT
Elem.TC
Saída de conversão=MATN1
* Campos Inseridos - Fim
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0309
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* Campos Inseridos - Inicio
- /PWS/ZYCIE261-GRUPO
Texto 1 4 18 18 1 CHAR X F
Título de coluna TC
- /PWS/ZYCIE261-DESC_G
Texto 1 5 15 21 1 CHAR X 2
Título de coluna TC
- /PWS/ZYCIE261-GRUPO
I/O 1 4 4 18 1 CHAR X Off
NEX GR
Elem.TC
- /PWS/ZYCIE261-DESC_G
I/O 1 5 40 21 1 CHAR X Off
NEX GR
PossRol, Elem.TC
* Campos Inseridos - Fim
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0310
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* Campos Inseridos - Inicio
- /PWS/ZYCIE260C-CODCOMP
Texto 1 2 15 18 1 CHAR X 2
MAT
Título de coluna TC
- /PWS/ZYCIE260C-WAERS
Texto 1 8 8 6 1 CHAR X F
FWS
Chave externa, Título de coluna TC
- /PWS/ZYCIE260C-NETPR
Texto 1 9 13 17 1 CHAR X F
Título de coluna TC
- /PWS/ZYCIE260C-CODCOMP
I/O 1 2 18 18 1 CHAR X Off
NEX MAT
Elem.TC, Col.fixa TC
Saída de conversão=MATN1
- /PWS/ZYCIE260C-WAERS
I/O 1 8 5 6 1 CUKY X Off
NEX FWS
Alinh.à dir., Chave externa, Botão EntrsPoss.stand., Elem.TC
- /PWS/ZYCIE260C-NETPR
I/O 1 9 31 17 1 CURR X Off
NEX
Alinh.à dir., Elem.TC
Código da moeda=/PWS/ZYCIE260C-WAERS
* Campos Inseridos - Fim
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI064 0321
*Criar tela
Descrição breve: SS - Beneficio Importação 2
Idioma original: P
Gravação tela: 05.10.2006 15:34:17
Tipo tela: Tela include (subtela)
Tela seguin: 0321
Manter dados: Desativado
Fonte equidistante: Desativado
Compressão tmp.exec.: Ativado
Tela-modelo: Desativado
Manter posição de rola: Desativado
Posição cursor:
Grp.telas:
Linhas/colunas Ocupds 16 / 85
Atual. 27 /120
*Layout:
Total Item Genérico Total Geral
Código: ______>
Descrição: _________________________>
II _______________> II ________________
IPI _______________> IPI ________________
AFRMM ________________ AFRMM ________________
PIS ________________ PIS ________________
COFINS ________________ COFINS ________________
Total ________________ Total ________________
Variação Cambial ________________ Variação Cambial ________________
Nome
Ctg. Linha Coluna CmprDf CmVis Altura Format Dict Modif At.Des.Só At
Gr1 Gr2 Gr3 Gr4 SPA GPA ID parâm Cód.F TCmp TpoLoopExbLoop
Outros atributos
* Campos Inseridos - Inicio
V_QUAD1_0311
Quadr 2 1 41 41 1 CHAR
V_QUAD2_0311
Quadr 2 43 41 41 1 CHAR
V_DETCOMP1
Texto 4 3 10 10 1 CHAR
Fonte equidistante
V_DETCOMP1
I/O 4 14 26 7 1 CHAR Off
NEX MAT
Alinh.à dir., PossRol
Saída de conversão=MATN1
V_DETCOMP2
Texto 5 3 10 10 1 CHAR
Fonte equidistante
V_DETCOMP2
I/O 5 14 40 26 1 CHAR Off
NEX
PossRol
/PWS/ZYCIE260D-I_VLII
Texto 7 3 20 20 1 CHAR X F
/PWS/ZYCIE260D-I_VLII
I/O 7 24 31 16 1 CURR X Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
TT_II
Texto 7 45 20 20 1 CHAR
TT_II
I/O 7 66 16 16 1 CURR Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
/PWS/ZYCIE260D-I_VLIPI
Texto 8 3 20 20 1 CHAR X F
/PWS/ZYCIE260D-I_VLIPI
I/O 8 24 31 16 1 CURR X Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
TT_IPI
Texto 8 45 20 20 1 CHAR
TT_IPI
I/O 8 66 16 16 1 CURR Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
/PWS/ZYCIE260D-VLAFRMM
Texto 9 3 5 5 1 CHAR X F
/PWS/ZYCIE260D-VLAFRMM
I/O 9 24 16 16 1 CURR X X Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
TT_AFRMM
Texto 9 45 5 5 1 CHAR
TT_AFRMM
I/O 9 66 16 16 1 CURR Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
/PWS/ZYCIE260D-VLPIS
Texto 10 3 3 3 1 CHAR X F
/PWS/ZYCIE260D-VLPIS
I/O 10 24 16 16 1 CURR X X Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
TT_PIS
Texto 10 45 3 3 1 CHAR
TT_PIS
I/O 10 66 16 16 1 CURR Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
/PWS/ZYCIE260D-VLCOFINS
Texto 11 3 6 6 1 CHAR X F
/PWS/ZYCIE260D-VLCOFINS
I/O 11 24 16 16 1 CURR X X Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
TT_COFINS
Texto 11 45 6 6 1 CHAR
TT_COFINS
I/O 11 66 16 16 1 CURR Off
NEX
Dest, Alinh.à dir.
Código da moeda=/PWS/ZYCIE260D-WAERSIMP
TT_COMP3
Texto 13 3 5 5 1 CHAR
TT_COMP3
I/O 13 24 16 16 1 DEC Off
NEX
Dest, Alinh.à dir.
TT_GERAL3
Texto 13 45 5 5 1 CHAR
TT_GERAL3
I/O 13 66 16 16 1 DEC Off
NEX
Dest, Alinh.à dir.
V_VAR_CAMB3
Texto 15 3 16 16 1 CHAR
V_VAR_CAMB3
I/O 15 24 16 16 1 CHAR Off
Dest, Alinh.à dir.
V_VAR_CAMBT3
Texto 15 45 16 16 1 CHAR
V_VAR_CAMBT3
I/O 15 66 16 16 1 CHAR Off
Dest, Alinh.à dir.
* Campos Inseridos - Fim
*Codigo fonte:
PROCESS BEFORE OUTPUT.
module set_screen3.
*
PROCESS AFTER INPUT.
* MODULE USER_COMMAND_0321.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064F03
...
CLEAR itab_botoes3.
itab_botoes3-bname = 'LOGER'.
APPEND itab_botoes3.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM TRATA_BOTOES3
IF pressed_tab_3c NE 'FS_IMPORT3'
OR pressed_tab_3c_3 NE 'FS_RES_IMP3'.
itab_botoes3-bname = 'TRANSP'.
APPEND itab_botoes3.
ENDIF.
* << Fim da inclusão
IF pressed_tab_3c NE 'FS_EXPORT3' AND
pressed_tab_3c NE 'FS_IMPORT3'.
itab_botoes3-bname = 'FIRST'.
APPEND itab_botoes3.
itab_botoes3-bname = 'PRIOR'.
...
...
ELSEIF pressed_tab_3c_4 EQ 'FS_VCP3'.
itab_botoes3-bname = 'ATUALIZ'.
APPEND itab_botoes3.
ENDIF.
ELSEIF v_tcode3 EQ '/PWS/ZYCI040_L'.
* >> Início da inclusão: FORM TRATA_BOTOES3
itab_botoes3-bname = 'TRANSP'.
APPEND itab_botoes3.
* << Fim da inclusão
itab_botoes3-bname = 'SELEXP'.
APPEND itab_botoes3.
itab_botoes3-bname = 'LOGER'.
APPEND itab_botoes3.
itab_botoes3-bname = 'APROV'.
...
...
EXIT.
ENDIF.
ENDIF.
ENDIF.
IF e_subrc = 0.
* >> Início da exclusão: FORM SELECIONAR_EXPORTACOES3
v_dtini = sy-datum - 728.
v_dtfim = sy-datum.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3
v_dtini = /pws/zycie258-dtpr - 728.
v_dtfim = /pws/zycie258-dtpr.
* << Fim da inclusão
IF p_dtexp1 IS INITIAL AND
p_dtexp2 IS INITIAL.
p_dtexp1 = v_dtini. p_dtexp2 = v_dtfim.
ELSEIF NOT p_dtexp1 IS INITIAL AND
p_dtexp2 IS INITIAL.
...
...
MODIFY itab_msg_erro INDEX v_index.
ENDIF.
ENDLOOP.
CALL SCREEN 0600 STARTING AT 5 5.
ENDIF.
* >> Início da inclusão: FORM SELECIONAR_EXPORTACOES3
PERFORM equip_exp.
PERFORM comerc_exp.
* << Fim da inclusão
PERFORM carrega_resumo_exportacao3.
ENDIF.
if itab_det_exp_final[] is initial.
message s015 with text-267 text-268.
endif.
...
...
MOVE: sy-tabix TO v_indicatu4.
MOVE: itab_resumo-codmat TO /pws/zycie259d-codmat ,
/pws/zycie258-werks TO /pws/zycie259d-werks ,
itab_resumo-qtd_iten TO /pws/zycie259d-qtd_iten,
itab_resumo-vlfob TO /pws/zycie259d-vlfob .
* >> Início da inclusão: FORM TRATA_TAB_DETALHE3
/pws/zycie259d-waersfob = itab_resumo-waersfob.
/pws/zycie259d-meins = itab_resumo-meins .
* << Fim da inclusão
CLEAR: itab_det_exp. REFRESH: itab_det_exp.
LOOP AT itab_det_exp_final.
CHECK itab_det_exp_final-codmat EQ /pws/zycie259d-codmat.
MOVE-CORRESPONDING itab_det_exp_final TO itab_det_exp.
APPEND itab_det_exp.
...
...
MOVE: sy-tabix TO v_indicatu5.
MOVE: itab_det_exp-codmat TO /pws/zycie259d-codmat ,
itab_det_exp-meins TO /pws/zycie259d-meins ,
itab_det_exp-qtd_iten TO v_qtd_0305 ,
itab_det_exp-nrseqre TO /pws/zycie259d-nrseqre ,
* >> Início da inclusão: FORM TRATA_TAB_VINC3
itab_det_exp-nrre TO /pws/zycie259d-nrre ,
itab_det_exp-nfnum TO /pws/zycie259d-nfnum ,
itab_det_exp-serie TO /pws/zycie259d-serie ,
itab_det_exp-nrseqc TO /pws/zycie259d-nrseqc ,
itab_det_exp-dtnf TO /pws/zycie259d-dtnf ,
* << Fim da inclusão
itab_det_exp-dtre TO /pws/zycie259d-dtre ,
itab_det_exp-lote TO /pws/zycie259d-lote ,
itab_det_exp-nrseq TO /pws/zycie259d-nrseq ,
itab_det_exp-dtemb TO /pws/zycie259d-dtemb ,
itab_det_exp-vbeln_va TO /pws/zycie259d-vbeln_va,
...
...
EXIT.
ENDIF.
MOVE: sy-tabix TO v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
* >> Início da inclusão: FORM TRATA_TAB_DETALHE_IMP3
itab_res_imp-grupo TO /pws/zycie260-grupo ,
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-waers TO /pws/zycie260-waers ,
itab_res_imp-desc_g TO /pws/zycie260-desc_g ,
* << Fim da inclusão
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp. REFRESH: itab_det_imp.
LOOP AT itab_det_imp_final.
* >> Início da inclusão: FORM TRATA_TAB_DETALHE_IMP3
IF /pws/zycit321-it_ge EQ 'X'.
CHECK itab_det_imp_final-grupo EQ itab_res_imp-grupo.
ELSE.
* << Fim da inclusão
CHECK itab_det_imp_final-codcomp EQ itab_res_imp-codcomp.
* >> Início da inclusão: FORM TRATA_TAB_DETALHE_IMP3
ENDIF.
* << Fim da inclusão
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
...
...
ENDIF.
MOVE: sy-tabix TO v_indicatu6.
CLEAR: itab_di. REFRESH: itab_di.
LOOP AT itab_di_final WHERE
codmat EQ itab_comp_vinc-codmat AND
* >> Início da exclusão: FORM TRATA_TAB_VDI3
codcomp EQ itab_comp_vinc-codcomp AND
* << Fim da exclusão
nrseqre EQ itab_comp_vinc-nrseqre AND
nrseq EQ itab_comp_vinc-nrseq AND
vbeln_va EQ itab_comp_vinc-vbeln_va AND
vbeln_vf EQ itab_comp_vinc-vbeln_vf AND
posnr EQ itab_comp_vinc-posnr.
* >> Início da inclusão: FORM TRATA_TAB_VDI3
IF /pws/zycit321-it_ge EQ 'X'.
CHECK itab_di_final-grupo EQ itab_comp_vinc-grupo.
ELSE.
CHECK itab_di_final-codcomp EQ itab_comp_vinc-codcomp.
ENDIF.
* << Fim da inclusão
IF itab_di_final-sdo_qtd > 0
OR itab_di_final-qtd_vinc > 0 .
MOVE-CORRESPONDING itab_di_final TO itab_di.
APPEND itab_di.
ENDIF.
...
...
MODIFY itab_resumo INDEX v_indicatu4.
MOVE: itab_resumo-codmat TO /pws/zycie259d-codmat ,
/pws/zycie258-werks TO /pws/zycie259d-werks ,
itab_resumo-qtd_iten TO /pws/zycie259d-qtd_iten,
itab_resumo-vlfob TO /pws/zycie259d-vlfob .
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST_0304
/pws/zycie259d-waersfob = itab_resumo-waersfob.
/pws/zycie259d-meins = itab_resumo-meins .
* << Fim da inclusão
CLEAR: itab_det_exp. REFRESH: itab_det_exp.
LOOP AT itab_det_exp_final.
CHECK itab_det_exp_final-codmat EQ /pws/zycie259d-codmat.
MOVE-CORRESPONDING itab_det_exp_final TO itab_det_exp.
APPEND itab_det_exp.
...
...
MODIFY itab_resumo INDEX v_indicatu4.
MOVE: itab_resumo-codmat TO /pws/zycie259d-codmat ,
/pws/zycie258-werks TO /pws/zycie259d-werks ,
itab_resumo-qtd_iten TO /pws/zycie259d-qtd_iten,
itab_resumo-vlfob TO /pws/zycie259d-vlfob .
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR_0304
/pws/zycie259d-waersfob = itab_resumo-waersfob.
/pws/zycie259d-meins = itab_resumo-meins .
* << Fim da inclusão
CLEAR: itab_det_exp. REFRESH: itab_det_exp.
LOOP AT itab_det_exp_final.
CHECK itab_det_exp_final-codmat EQ /pws/zycie259d-codmat.
MOVE-CORRESPONDING itab_det_exp_final TO itab_det_exp.
APPEND itab_det_exp.
...
...
MODIFY itab_resumo INDEX v_indicatu4.
MOVE: itab_resumo-codmat TO /pws/zycie259d-codmat ,
/pws/zycie258-werks TO /pws/zycie259d-werks ,
itab_resumo-qtd_iten TO /pws/zycie259d-qtd_iten,
itab_resumo-vlfob TO /pws/zycie259d-vlfob .
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT_0304
/pws/zycie259d-waersfob = itab_resumo-waersfob.
/pws/zycie259d-meins = itab_resumo-meins .
* << Fim da inclusão
CLEAR: itab_det_exp. REFRESH: itab_det_exp.
LOOP AT itab_det_exp_final.
CHECK itab_det_exp_final-codmat EQ /pws/zycie259d-codmat.
MOVE-CORRESPONDING itab_det_exp_final TO itab_det_exp.
APPEND itab_det_exp.
...
...
MODIFY itab_resumo INDEX v_indicatu4.
MOVE: itab_resumo-codmat TO /pws/zycie259d-codmat ,
/pws/zycie258-werks TO /pws/zycie259d-werks ,
itab_resumo-qtd_iten TO /pws/zycie259d-qtd_iten,
itab_resumo-vlfob TO /pws/zycie259d-vlfob .
* >> Início da inclusão: FORM TRATA_BUTTON_LAST_0304
/pws/zycie259d-waersfob = itab_resumo-waersfob.
/pws/zycie259d-meins = itab_resumo-meins .
* << Fim da inclusão
CLEAR: itab_det_exp. REFRESH: itab_det_exp.
LOOP AT itab_det_exp_final.
CHECK itab_det_exp_final-codmat EQ /pws/zycie259d-codmat.
MOVE-CORRESPONDING itab_det_exp_final TO itab_det_exp.
APPEND itab_det_exp.
...
...
MODIFY itab_det_exp INDEX v_indicatu5.
MOVE: itab_det_exp-codmat TO /pws/zycie259d-codmat ,
itab_det_exp-meins TO /pws/zycie259d-meins ,
itab_det_exp-qtd_iten TO v_qtd_0305 ,
itab_det_exp-nrseqre TO /pws/zycie259d-nrseqre ,
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST_0305
itab_det_exp-nrre TO /pws/zycie259d-nrre ,
itab_det_exp-nfnum TO /pws/zycie259d-nfnum ,
itab_det_exp-serie TO /pws/zycie259d-serie ,
itab_det_exp-nrseqc TO /pws/zycie259d-nrseqc ,
itab_det_exp-dtnf TO /pws/zycie259d-dtnf ,
* << Fim da inclusão
itab_det_exp-dtre TO /pws/zycie259d-dtre ,
itab_det_exp-nrseq TO /pws/zycie259d-nrseq ,
itab_det_exp-dtemb TO /pws/zycie259d-dtemb ,
itab_det_exp-vbeln_va TO /pws/zycie259d-vbeln_va,
itab_det_exp-vbeln_vf TO /pws/zycie259d-vbeln_vf,
...
...
MODIFY itab_det_exp INDEX v_indicatu5.
MOVE: itab_det_exp-codmat TO /pws/zycie259d-codmat ,
itab_det_exp-meins TO /pws/zycie259d-meins ,
itab_det_exp-qtd_iten TO v_qtd_0305 ,
itab_det_exp-nrseqre TO /pws/zycie259d-nrseqre ,
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR_0305
itab_det_exp-nrre TO /pws/zycie259d-nrre ,
itab_det_exp-nfnum TO /pws/zycie259d-nfnum ,
itab_det_exp-serie TO /pws/zycie259d-serie ,
itab_det_exp-nrseqc TO /pws/zycie259d-nrseqc ,
itab_det_exp-dtnf TO /pws/zycie259d-dtnf ,
* << Fim da inclusão
itab_det_exp-dtre TO /pws/zycie259d-dtre ,
itab_det_exp-nrseq TO /pws/zycie259d-nrseq ,
itab_det_exp-dtemb TO /pws/zycie259d-dtemb ,
itab_det_exp-vbeln_va TO /pws/zycie259d-vbeln_va,
itab_det_exp-vbeln_vf TO /pws/zycie259d-vbeln_vf,
...
...
itab_det_exp-meins TO /pws/zycie259d-meins ,
itab_det_exp-qtd_iten TO v_qtd_0305 ,
itab_det_exp-nrseqre TO /pws/zycie259d-nrseqre ,
itab_det_exp-dtre TO /pws/zycie259d-dtre ,
itab_det_exp-nrseq TO /pws/zycie259d-nrseq ,
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT_0305
itab_det_exp-nrre TO /pws/zycie259d-nrre ,
itab_det_exp-nfnum TO /pws/zycie259d-nfnum ,
itab_det_exp-serie TO /pws/zycie259d-serie ,
itab_det_exp-nrseqc TO /pws/zycie259d-nrseqc ,
itab_det_exp-dtnf TO /pws/zycie259d-dtnf ,
* << Fim da inclusão
itab_det_exp-dtemb TO /pws/zycie259d-dtemb ,
itab_det_exp-vbeln_va TO /pws/zycie259d-vbeln_va,
itab_det_exp-vbeln_vf TO /pws/zycie259d-vbeln_vf,
itab_det_exp-posnr TO /pws/zycie259d-posnr ,
itab_det_exp-stlal TO /pws/zycie259d-stlal ,
...
...
MOVE: itab_det_exp-codmat TO /pws/zycie259d-codmat ,
itab_det_exp-meins TO /pws/zycie259d-meins ,
itab_det_exp-qtd_iten TO v_qtd_0305 ,
itab_det_exp-nrseqre TO /pws/zycie259d-nrseqre ,
itab_det_exp-dtre TO /pws/zycie259d-dtre ,
* >> Início da inclusão: FORM TRATA_BUTTON_LAST_0305
itab_det_exp-nrre TO /pws/zycie259d-nrre ,
itab_det_exp-nfnum TO /pws/zycie259d-nfnum ,
itab_det_exp-serie TO /pws/zycie259d-serie ,
itab_det_exp-nrseqc TO /pws/zycie259d-nrseqc ,
itab_det_exp-dtnf TO /pws/zycie259d-dtnf ,
* << Fim da inclusão
itab_det_exp-nrseq TO /pws/zycie259d-nrseq ,
itab_det_exp-dtemb TO /pws/zycie259d-dtemb ,
itab_det_exp-vbeln_va TO /pws/zycie259d-vbeln_va,
itab_det_exp-vbeln_vf TO /pws/zycie259d-vbeln_vf,
itab_det_exp-posnr TO /pws/zycie259d-posnr ,
...
...
IF e_subrc EQ '8'.
EXIT.
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES3
REFRESH: itab_insumo_di.
* << Fim da inclusão
IF /pws/zycit321-lote IS INITIAL.
LOOP AT itab_det_exp.
CLEAR: it_stpox, it_stpox2. REFRESH: it_stpox, it_stpox2.
READ TABLE itab_comp_vinc WITH KEY nrseqre = itab_det_exp-nrseqre
nrseq = itab_det_exp-nrseq
...
...
vbeln_vf = itab_det_exp-vbeln_vf
posnr = itab_det_exp-posnr.
IF sy-subrc EQ 0.
CONTINUE.
ENDIF.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES3
v_verif_v = 'X'.
* << Fim da inclusão
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'PP01'
datuv = itab_det_exp-dtre
mktls = 'X'
...
...
nrseq = itab_det_exp-nrseq
vbeln_va = itab_det_exp-vbeln_va
vbeln_vf = itab_det_exp-vbeln_vf
posnr = itab_det_exp-posnr.
IF sy-subrc NE 0.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES3
IF itab_zycit433[] IS INITIAL.
SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433.
ENDIF.
* << Fim da inclusão
LOOP AT i_final.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES3
CLEAR: itab_zycit433.
READ TABLE itab_zycit433 WITH KEY matnr = i_final-insumo.
IF /pws/zycit321-it_ge EQ 'X' AND
sy-subrc NE 0.
READ TABLE itab_insumo_di WITH KEY
matnr = i_final-insumo.
IF sy-subrc NE 0.
itab_insumo_di-matnr = i_final-insumo.
APPEND itab_insumo_di.
MESSAGE i015 WITH text-178 i_final-insumo text-294.
DELETE i_final WHERE insumo EQ i_final-insumo.
CONTINUE.
ENDIF.
ENDIF.
* << Fim da inclusão
READ TABLE itab_mbew WITH KEY matnr = i_final-insumo.
CLEAR itab_comp_vinc_final.
MOVE:
* >> Início da exclusão: FORM VERIFICA_COMPONENTES3
/pws/zycie258-nrseqd TO itab_comp_vinc_final-nrseqd ,
itab_det_exp-codmat TO itab_comp_vinc_final-codmat ,
itab_det_exp-nrseqre TO itab_comp_vinc_final-nrseqre,
itab_det_exp-nrseq TO itab_comp_vinc_final-nrseq ,
itab_det_exp-vbeln_va
TO itab_comp_vinc_final-vbeln_va,
itab_det_exp-vbeln_vf
TO itab_comp_vinc_final-vbeln_vf,
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_COMPONENTES3
/pws/zycie258-nrseqd TO itab_comp_vinc_final-nrseqd ,
itab_det_exp-codmat TO itab_comp_vinc_final-codmat ,
itab_det_exp-nrseqre TO itab_comp_vinc_final-nrseqre ,
itab_det_exp-nrseq TO itab_comp_vinc_final-nrseq ,
itab_det_exp-vbeln_va TO itab_comp_vinc_final-vbeln_va,
itab_det_exp-vbeln_vf TO itab_comp_vinc_final-vbeln_vf,
itab_zycit433-grupo TO itab_comp_vinc_final-grupo ,
itab_zycit433-desc_g TO itab_comp_vinc_final-desc_g ,
* << Fim da inclusão
itab_det_exp-posnr TO itab_comp_vinc_final-posnr ,
i_final-insumo TO itab_comp_vinc_final-codcomp .
* >> Início da inclusão: FORM VERIFICA_COMPONENTES3
itab_comp_vinc_final-grupo = itab_zycit433-grupo.
* << Fim da inclusão
itab_comp_vinc_final-qtd_iten = i_final-qtunit.
PERFORM converte_um_base USING i_final-insumo
CHANGING i_final-meins
itab_comp_vinc_final-qtd_iten.
MOVE : i_final-meins TO itab_comp_vinc_final-meins.
itab_comp_vinc_final-qtd_total =
itab_comp_vinc_final-qtd_iten * itab_det_exp-qtd_iten.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_total.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES3
IF /pws/zycit321-it_ge EQ 'X'.
CLEAR: itab_comp_vinc_final-codcomp.
ENDIF.
* << Fim da inclusão
COLLECT itab_comp_vinc_final.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FORM VERIFICA_COMPONENTES3
ENDIF.
ENDLOOP.
* << Fim da inclusão
SORT itab_comp_vinc_final BY nrseqre nrseq vbeln_va vbeln_vf posnr
codmat codcomp.
* >> Início da exclusão: FORM VERIFICA_COMPONENTES3
ENDIF.
ENDLOOP.
* << Fim da exclusão
IF /pws/zycie258-tipo EQ 'C'.
IF /pws/zycit321-ut_imp EQ 'X'.
PERFORM seleciona_di3.
ELSE.
PERFORM seleciona_di.
...
...
ENDIF.
IF screen-group1 NE 'NEX' AND
screen-name NE 'MARC_CP'.
screen-input = v_status3.
MODIFY SCREEN.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0309
ENDIF.
ENDLOOP.
LOOP AT tc_vcp3-cols INTO wa_cols3.
IF /pws/zycit321-it_ge EQ 'X'.
IF wa_cols3-screen-group4 EQ 'MAT'.
wa_cols3-invisible = 1.
MODIFY tc_vcp3-cols FROM wa_cols3.
ENDIF.
ELSE.
IF wa_cols3-screen-group4 EQ 'GR'.
wa_cols3-invisible = 1.
MODIFY tc_vcp3-cols FROM wa_cols3.
ENDIF.
* << Fim da inclusão
ENDIF.
ENDLOOP.
DESCRIBE TABLE itab_comp_vinc LINES v_ilinhas2.
tc_vcp3-lines = v_ilinhas2.
ENDFORM.
...
...
ENDIF.
IF /pws/zycie258-tipo EQ 'F'
AND screen-name EQ 'FS_VDI3'.
screen-invisible = 1 .
MODIFY SCREEN.
* >> Início da inclusão: FORM CGECK_FIELDS_SCREEN_0305
ENDIF.
IF NOT /pws/zycie259d-nrseqc IS INITIAL.
IF ( screen-group4 EQ 'EMB' OR
screen-group4 EQ 'NF' ).
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
ELSEIF NOT /pws/zycie259d-nrseq IS INITIAL.
IF screen-group4 EQ 'NF'.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
ELSE.
IF screen-group4 EQ 'EMB' OR
screen-group4 EQ 'RE'.
screen-invisible = 1.
MODIFY SCREEN.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CGECK_FIELDS_SCREEN_0305
ENDIF.
* << Fim da inclusão
ENDLOOP.
...
...
AND spras = sy-langu.
ENDSELECT.
ENDIF.
ENDFORM.
FORM seleciona_di3.
* >> Início da exclusão: FORM SELECIONA_DI3
DATA: v_found(1) TYPE c,
v_vlreali LIKE /pws/zycit100-vlfob,
v_fator_conv LIKE /pws/zycit100-vlfob.
DATA: BEGIN OF itab_insumo_di OCCURS 0.
DATA: matnr LIKE mara-matnr.
DATA: END OF itab_insumo_di.
DATA: itab_zycit003_t2 TYPE /pws/zycit003 OCCURS 0 WITH HEADER LINE,
itab_zycit244 TYPE /pws/zycit244 OCCURS 0 WITH HEADER LINE.
IF /pws/zycie258-tipo NE 'I'.
ENDIF.
DATA: itab_ekpo_sort LIKE ekpo OCCURS 0 WITH HEADER LINE.
DATA: itab_comp_sort3 LIKE itab_comp_vinc_final
OCCURS 0 WITH HEADER LINE.
DATA BEGIN OF itab_zycit100_sort OCCURS 0.
INCLUDE STRUCTURE /pws/zycit100.
DATA: matnr LIKE /pws/zycit003-matnr.
DATA: END OF itab_zycit100_sort.
DATA: v_xa LIKE /pws/zycie085-vlfob,
v_xb LIKE /pws/zycie085-vlfob,
v_xc LIKE /pws/zycie085-vlfob,
v_fatx TYPE p DECIMALS 8,
v_faty TYPE p DECIMALS 8,
v_tot_real LIKE /pws/zycie003-vlreal,
v_fatpc LIKE /pws/zycie085-vlfob,
v_advii LIKE /pws/zycie085-vlfob,
v_advipi LIKE /pws/zycie085-vlfob,
v_advicms LIKE /pws/zycie085-vlfob,
v_advpis LIKE /pws/zycie085-vlfob,
v_advcof LIKE /pws/zycie085-vlfob,
v_divisor LIKE /pws/zycie085-vlfob.
* << Fim da exclusão
CLEAR: itab_zycit085,
itab_zycit100,
itab_zycit260,
itab_zycit003,
itab_ekpo ,
...
...
itab_zycit044,
itab_zycit042,
itab_zycit041,
itab_zycit043,
itab_insumo_di.
* >> Início da inclusão: FORM SELECIONA_DI3
DATA: BEGIN OF itab_sel_di OCCURS 0 .
DATA: nrseqdi TYPE /pws/zycit100-nrseqdi,
nrseq TYPE /pws/zycit100-nrseq,
ebeln TYPE /pws/zycit100-ebeln,
ebelp TYPE /pws/zycit100-ebelp.
DATA: END OF itab_sel_di.
* << Fim da inclusão
LOOP AT itab_comp_vinc_final.
* >> Início da inclusão: FORM SELECIONA_DI3
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_zycit433 WHERE
grupo EQ itab_comp_vinc_final-grupo.
READ TABLE itab_insumo_di WITH KEY
matnr = itab_zycit433-matnr.
IF sy-subrc NE 0.
itab_insumo_di-matnr = itab_zycit433-matnr.
APPEND itab_insumo_di.
ENDIF.
ENDLOOP.
ELSE.
* << Fim da inclusão
READ TABLE itab_insumo_di WITH KEY
matnr = itab_comp_vinc_final-codcomp.
IF sy-subrc NE 0.
itab_insumo_di-matnr = itab_comp_vinc_final-codcomp.
APPEND itab_insumo_di.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DI3
ENDIF.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM SELECIONA_DI3
SORT itab_det_exp BY dtnf dtre.
READ TABLE itab_det_exp INDEX 1.
IF itab_det_exp-dtre IS INITIAL.
itab_det_exp-dtre = itab_det_exp-dtnf.
ENDIF.
itab_det_exp-dtre = itab_det_exp-dtre - 728.
IF NOT itab_insumo_di[] IS INITIAL.
REFRESH itab_sel_di.
SELECT c~nrseqdi b~nrseq b~ebeln b~ebelp
FROM ( ( /pws/zycit003 AS a INNER JOIN /pws/zycit100 AS b
ON a~nrseq EQ b~nrseq
AND a~ebeln EQ b~ebeln
AND a~ebelp EQ b~ebelp )
INNER JOIN /pws/zycit085 AS c
ON b~nrseqdi EQ c~nrseqdi )
INTO TABLE itab_sel_di
FOR ALL ENTRIES IN itab_insumo_di
WHERE a~matnr EQ itab_insumo_di-matnr
AND c~dtuserc >= itab_det_exp-dtre.
ENDIF.
IF NOT itab_insumo_di[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_insumo_di
WHERE
matnr EQ itab_insumo_di-matnr.
* >> Início da inclusão: FORM SELECIONA_DI3
ENDIF.
* << Fim da inclusão
IF NOT itab_zycit003[] IS INITIAL.
itab_zycit003_t2[] = itab_zycit003[].
DELETE itab_zycit003_t2 WHERE nrseqd EQ space.
SORT itab_zycit003_t2 BY nrseqd.
DELETE ADJACENT DUPLICATES FROM itab_zycit003_t2 COMPARING nrseqd.
...
...
itab_ekpo_sort = itab_ekpo.
APPEND itab_ekpo_sort.
ENDIF.
itab_zycit100_sort = itab_zycit100.
itab_zycit100_sort-matnr = itab_ekpo-matnr.
* >> Início da inclusão: FORM SELECIONA_DI3
CLEAR itab_zycit433.
READ TABLE itab_zycit433 WITH KEY matnr = itab_ekpo-matnr.
itab_zycit100_sort-grupo = itab_zycit433-grupo.
* << Fim da inclusão
APPEND itab_zycit100_sort.
ENDLOOP.
ENDLOOP.
REFRESH: itab_ekpo.
itab_ekpo[] = itab_ekpo_sort[] .
...
...
APPEND itab_comp_sort3.
ENDLOOP.
ENDLOOP.
REFRESH itab_comp_vinc_final.
itab_comp_vinc_final[] = itab_comp_sort3[].
* >> Início da inclusão: FORM SELECIONA_DI3
IF /pws/zycit321-it_ge EQ 'X'.
ELSE.
ENDIF.
* << Fim da inclusão
LOOP AT itab_comp_vinc_final.
* >> Início da exclusão: FORM SELECIONA_DI3
LOOP AT itab_zycit100_sort
WHERE matnr EQ itab_comp_vinc_final-codcomp.
REFRESH itab_di_final_aux.
itab_di_final_aux[] = itab_di_final[].
READ TABLE itab_ekpo WITH KEY
ebeln = itab_zycit100_sort-ebeln
ebelp = itab_zycit100_sort-ebelp.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit100_sort-nrseq
ebeln = itab_zycit100_sort-ebeln
ebelp = itab_zycit100_sort-ebelp.
* << Fim da exclusão
READ TABLE itab_det_exp WITH KEY
codmat = itab_comp_vinc_final-codmat
nrseqre = itab_comp_vinc_final-nrseqre
nrseq = itab_comp_vinc_final-nrseq
vbeln_va = itab_comp_vinc_final-vbeln_va
vbeln_vf = itab_comp_vinc_final-vbeln_vf
posnr = itab_comp_vinc_final-posnr.
* >> Início da inclusão: FORM SELECIONA_DI3
IF NOT itab_det_exp-dtre IS INITIAL.
* << Fim da inclusão
v_dtini = itab_det_exp-dtre - 728.
v_dtfim = itab_det_exp-dtre.
* >> Início da exclusão: FORM SELECIONA_DI3
CLEAR itab_zycit085.
READ TABLE itab_zycit085 WITH KEY
nrseqdi = itab_zycit100-nrseqdi.
CHECK sy-subrc EQ 0 AND
itab_zycit085-dtuserc >= v_dtini AND
itab_zycit085-dtuserc <= v_dtfim.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ itab_zycit085-bukrs.
CLEAR itab_zycit001.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit100-nrseq.
IF sy-subrc EQ 0.
CLEAR itab_zycit003.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit100-nrseq
ebeln = itab_zycit100-ebeln
ebelp = itab_zycit100-ebelp.
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
* << Fim da exclusão
ELSE.
* >> Início da exclusão: FORM SELECIONA_DI3
CONTINUE.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3
v_dtini = itab_det_exp-dtnf - 728.
v_dtfim = itab_det_exp-dtnf.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DI3
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_zycit100_sort
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI3
v_vlreali = itab_zycit003-qtd_iten.
READ TABLE itab_mess_un WITH KEY meins =
itab_zycit003-meins
matnr = itab_zycit003-matnr.
IF sy-subrc EQ 0.
CONTINUE.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3
WHERE grupo EQ itab_comp_vinc_final-grupo.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI3
PERFORM converte_um_base USING itab_zycit003-matnr
CHANGING itab_zycit003-meins
itab_zycit003-qtd_iten.
IF itab_zycit003-qtd_iten <= 0.
itab_mess_un-meins = itab_det_exp_final-meins.
itab_mess_un-matnr = itab_det_exp_final-codmat.
APPEND itab_mess_un.
CONTINUE.
ENDIF.
MOVE: itab_zycit003-meins TO itab_di_final-meins ,
itab_zycit003-qtd_iten TO itab_di_final-qtd_di .
PERFORM converte_um_ncm USING itab_zycit003-matnr
CHANGING itab_di_final-meins
/pws/zycie258-werks
itab_di_final-qtd_di.
IF itab_di_final-qtd_di IS INITIAL.
EXIT.
ENDIF.
v_fator_conv = v_vlreali / itab_zycit003-qtd_iten.
CLEAR: v_advii, v_advicms, v_advipi, v_advpis, v_advcof, v_xa, v_xb,
v_fatx, v_faty.
v_advii = ( itab_zycit003-advalii / 100 ).
v_advipi = ( itab_zycit003-advalipi / 100 ).
IF NOT itab_zycit003-basred IS INITIAL.
v_advicms = ( ( itab_zycit003-advalicms / 100 ) *
( itab_zycit003-basred / 100 ) ) .
ELSE.
v_advicms = ( itab_zycit003-advalicms / 100 ).
ENDIF.
v_advpis = ( itab_zycit100-advalpis / 100 ).
v_advcof = ( itab_zycit100-advalcofins / 100 ).
v_xb = ( 1 - v_advpis - v_advcof - v_advicms ) .
v_xa = 1 + v_advicms * ( v_advii + v_advipi * ( 1 + v_advii ) ) .
v_fatx = v_xa / v_xb.
v_faty = v_advicms / v_xb.
CLEAR itab_di_final_aux.
READ TABLE itab_di_final_aux WITH KEY
nrseqre = itab_comp_vinc_final-nrseqre
nrseq = itab_comp_vinc_final-nrseq
codmat = itab_comp_vinc_final-codmat
vbeln_va = itab_comp_vinc_final-vbeln_va
vbeln_vf = itab_comp_vinc_final-vbeln_vf
posnr = itab_comp_vinc_final-posnr
codcomp = itab_comp_vinc_final-codcomp
nrdi = itab_zycit085-nrseqdi
nrseqemb = itab_zycit100-nrseq
ebeln = itab_ekpo-ebeln
ebelp = itab_ekpo-ebelp.
IF sy-subrc NE 0 AND
itab_zycit003-qtd_iten > 0.
READ TABLE itab_di_final_aux WITH KEY
codcomp = itab_comp_vinc_final-codcomp
nrdi = itab_zycit085-nrseqdi
nrseqemb = itab_zycit100-nrseq
ebeln = itab_ekpo-ebeln
ebelp = itab_ekpo-ebelp.
IF sy-subrc NE 0.
CLEAR itab_di_final.
MOVE:
/pws/zycie258-nrseqd TO itab_di_final-nrseqd ,
itab_comp_vinc_final-codcomp TO itab_di_final-codcomp ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit085-nrseqdi TO itab_di_final-nrdi ,
itab_zycit085-nrdi TO itab_di_final-reg_di ,
itab_zycit085-dtuserc TO itab_di_final-dtdi ,
itab_zycit100-nrseq TO itab_di_final-nrseqemb ,
itab_zycit100-adicao TO itab_di_final-adicao ,
itab_ekpo-ebeln TO itab_di_final-ebeln ,
itab_ekpo-ebelp TO itab_di_final-ebelp ,
itab_zycit003-meins TO itab_di_final-meins ,
itab_zycit003-qtd_iten TO itab_di_final-qtd_di ,
itab_zycit003-qtd_iten TO itab_di_final-sdo_qtd ,
itab_zycit003-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit085-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit003-gewei TO itab_di_final-gewei ,
itab_zycit003-werks TO itab_di_final-werks ,
itab_zycit003-ntgew TO itab_di_final-ntgew ,
itab_zycit003-waers TO itab_di_final-waers ,
itab_zycit003-netpr TO itab_di_final-netpr ,
itab_zycit003-advalii TO itab_di_final-i_txii ,
itab_zycit100-advalpis TO itab_di_final-pis ,
itab_zycit100-advalcofins TO itab_di_final-cofins ,
itab_zycit003-advalipi TO itab_di_final-i_txipi ,
itab_zycit003-advalicms TO itab_di_final-i_txicms ,
itab_zycit003-waers_real TO itab_di_final-i_waerscifme,
itab_zycit100-dttaxbem TO itab_di_final-i_txmoeda ,
itab_zycit100-waersreal TO itab_di_final-i_waerscifmi,
itab_zycit100-waersreal TO itab_di_final-waersimp ,
itab_zycit003-vlreal TO itab_di_final-vlreal ,
itab_zycit100-vlfre TO itab_di_final-vlfrete ,
itab_zycit100-vlseg TO itab_di_final-vlseg .
SELECT SINGLE *
FROM mara INTO mara
WHERE matnr = itab_di_final-codmat.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.
IF itab_zycit001-inco1 EQ 'FOB'.
itab_di_final-valor_u = itab_zycit003-vlreal.
ELSEIF itab_zycit001-inco1 EQ 'CFR'.
itab_di_final-valor_u = ( itab_zycit003-vlreal +
itab_zycit003-vlfre_fat ) - itab_zycit100-vlfre.
ELSEIF itab_zycit001-inco1 EQ 'CIF'.
itab_di_final-valor_u = ( ( itab_zycit003-vlreal +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ) -
itab_zycit100-vlfre ) - itab_zycit100-vlseg.
ELSE.
itab_di_final-valor_u = itab_zycit003-vlreal.
ENDIF.
itab_di_final-valor_u = itab_di_final-valor_u * v_fator_conv.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfrete.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlseg.
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit003-qtd_iten.
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit003-qtd_iten.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3
PERFORM monta_dis3.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI3
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
LOOP AT itab_zycit260
WHERE codcomp = itab_comp_vinc_final-codcomp
AND nrdi = itab_zycit085-nrseqdi
AND nrseqemb = itab_zycit100-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_zycit260-qtd_vinc.
* << Fim da exclusão
ENDLOOP.
* >> Início da exclusão: FORM SELECIONA_DI3
IF itab_di_final-sdo_qtd <= 0.
CLEAR itab_di_final.
CONTINUE.
ENDIF.
CLEAR wa_itab_di_final.
IF itab_comp_vinc_final-qtd_stotal > 0 AND
itab_di_final-sdo_qtd > 0.
IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.
IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_di.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-qtd_di.
* << Fim da exclusão
ELSE.
* >> Início da exclusão: FORM SELECIONA_DI3
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3
LOOP AT itab_zycit100_sort
WHERE matnr EQ itab_comp_vinc_final-codcomp.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI3
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
itab_di_final-vlcofins =
v_perc_vinc * itab_zycit100-vlcofins.
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc * itab_zycit100-vlii.
itab_di_final-i_vlipi =
v_perc_vinc * itab_zycit100-vlipi.
itab_di_final-i_vlicms =
v_perc_vinc * itab_zycit100-vlicms.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlpis.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlcofins.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlii.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ELSE.
IF itab_comp_vinc_final-qtd_stotal <
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_comp_vinc_final-qtd_stotal.
ELSE.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
itab_di_final-vlcofins =
v_perc_vinc * itab_zycit100-vlcofins.
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc * itab_zycit100-vlii.
itab_di_final-i_vlipi =
v_perc_vinc * itab_zycit100-vlipi.
itab_di_final-i_vlicms =
v_perc_vinc * itab_zycit100-vlicms.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlpis.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlcofins.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlii.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ENDIF.
ENDIF.
CLEAR v_found.
LOOP AT itab_zycit044 WHERE nrseq = itab_zycit001-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
CLEAR itab_zycit043.
READ TABLE itab_zycit043 WITH KEY
nrseq = itab_zycit044-nrseqnf
nfglobal = itab_zycit044-nfglobal
nfremessa = itab_zycit044-nfremessa.
IF sy-subrc EQ 0.
MOVE: itab_zycit043-nfnum TO itab_di_final-nfnum,
itab_zycit043-series TO itab_di_final-serie,
itab_zycit043-dtincl TO itab_di_final-dtnf .
v_found = 'S'.
EXIT.
ENDIF.
ENDLOOP.
IF v_found NE 'S'.
LOOP AT itab_zycit042 WHERE nrseq = itab_zycit001-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
CLEAR itab_zycit041.
READ TABLE itab_zycit041 WITH KEY
nrseq = itab_zycit042-nrseqnf
nfglobal = itab_zycit042-nfglobal.
IF sy-subrc EQ 0.
MOVE: itab_zycit041-nfnum TO itab_di_final-nfnum,
itab_zycit041-series TO itab_di_final-serie,
itab_zycit041-dtincl TO itab_di_final-dtnf .
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final.
IF
( itab_di_final-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final-posnr NE itab_det_exp-posnr OR
itab_di_final-nrseq NE itab_det_exp-nrseq OR
itab_di_final-codmat NE itab_det_exp-codmat ) AND
( itab_di_final-codcomp EQ
itab_comp_vinc_final-codcomp AND
itab_di_final-nrdi EQ wa_itab_di_final-nrdi AND
itab_di_final-ebeln EQ wa_itab_di_final-ebeln AND
itab_di_final-ebelp EQ wa_itab_di_final-ebelp AND
itab_di_final-nrseqemb EQ wa_itab_di_final-nrseqemb ).
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
MODIFY itab_di_final.
ENDIF.
ENDLOOP.
ENDIF.
ELSE.
CLEAR itab_di_final.
MOVE:
/pws/zycie258-nrseqd TO itab_di_final-nrseqd ,
itab_comp_vinc_final-codcomp TO itab_di_final-codcomp ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit085-nrseqdi TO itab_di_final-nrdi ,
itab_zycit085-nrdi TO itab_di_final-reg_di ,
itab_zycit085-dtuserc TO itab_di_final-dtdi ,
itab_zycit100-nrseq TO itab_di_final-nrseqemb ,
itab_zycit100-adicao TO itab_di_final-adicao ,
itab_ekpo-ebeln TO itab_di_final-ebeln ,
itab_ekpo-ebelp TO itab_di_final-ebelp ,
itab_zycit003-meins TO itab_di_final-meins ,
itab_zycit003-qtd_iten TO itab_di_final-qtd_di ,
itab_di_final_aux-sdo_qtd TO itab_di_final-sdo_qtd ,
itab_zycit003-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit085-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit003-gewei TO itab_di_final-gewei ,
itab_zycit003-ntgew TO itab_di_final-ntgew ,
itab_zycit003-werks TO itab_di_final-werks ,
itab_zycit003-waers TO itab_di_final-waers ,
itab_zycit003-netpr TO itab_di_final-netpr ,
itab_zycit100-advalpis TO itab_di_final-pis ,
itab_zycit100-advalcofins TO itab_di_final-cofins ,
itab_zycit003-advalii TO itab_di_final-i_txii ,
itab_zycit003-advalipi TO itab_di_final-i_txipi ,
itab_zycit003-advalicms TO itab_di_final-i_txicms ,
itab_zycit003-waers_real TO itab_di_final-i_waerscifme,
itab_zycit100-dttaxbem TO itab_di_final-i_txmoeda ,
itab_zycit100-waersreal TO itab_di_final-i_waerscifmi,
itab_zycit100-waersreal TO itab_di_final-waersimp ,
itab_zycit003-vlreal TO itab_di_final-vlreal ,
itab_zycit100-vlfre TO itab_di_final-vlfrete ,
itab_zycit100-vlseg TO itab_di_final-vlseg .
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
IF itab_zycit001-inco1 EQ 'FOB'.
itab_di_final-valor_u = itab_zycit003-vlreal.
ELSEIF itab_zycit001-inco1 EQ 'CFR'.
itab_di_final-valor_u = ( itab_zycit003-vlreal +
itab_zycit003-vlfre_fat ) - itab_zycit100-vlfre.
ELSEIF itab_zycit001-inco1 EQ 'CIF'.
itab_di_final-valor_u = ( ( itab_zycit003-vlreal +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ) -
itab_zycit100-vlfre ) - itab_zycit100-vlseg.
ELSE.
itab_di_final-valor_u = itab_zycit003-vlreal.
ENDIF.
itab_di_final-valor_u = itab_di_final-valor_u * v_fator_conv.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfrete.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlseg.
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit003-qtd_iten.
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit003-qtd_iten.
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
CLEAR wa_itab_di_final.
IF itab_comp_vinc_final-qtd_stotal > 0 AND
itab_di_final-sdo_qtd > 0.
IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.
IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_di.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-qtd_di.
ELSE.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
ENDIF.
SELECT SINGLE *
FROM mara INTO mara
WHERE matnr = itab_di_final-codmat.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
itab_di_final-vlcofins =
v_perc_vinc * itab_zycit100-vlcofins.
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc * itab_zycit100-vlii.
itab_di_final-i_vlipi =
v_perc_vinc * itab_zycit100-vlipi.
itab_di_final-i_vlicms =
v_perc_vinc * itab_zycit100-vlicms.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlpis.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlcofins.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlii.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ELSE.
IF itab_comp_vinc_final-qtd_stotal <
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_comp_vinc_final-qtd_stotal.
ELSE.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
itab_di_final-vlcofins =
v_perc_vinc * itab_zycit100-vlcofins.
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc * itab_zycit100-vlii.
itab_di_final-i_vlipi =
v_perc_vinc * itab_zycit100-vlipi.
itab_di_final-i_vlicms =
v_perc_vinc * itab_zycit100-vlicms.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlpis.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlcofins.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlii.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI3
PERFORM monta_dis3.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI3
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ENDIF.
ENDIF.
CLEAR v_found.
LOOP AT itab_zycit044 WHERE nrseq = itab_zycit001-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
CLEAR itab_zycit043.
READ TABLE itab_zycit043 WITH KEY
nrseq = itab_zycit044-nrseqnf
nfglobal = itab_zycit044-nfglobal
nfremessa = itab_zycit044-nfremessa.
IF sy-subrc EQ 0.
MOVE: itab_zycit043-nfnum TO itab_di_final-nfnum,
itab_zycit043-series TO itab_di_final-serie,
itab_zycit043-dtincl TO itab_di_final-dtnf .
v_found = 'S'.
EXIT.
ENDIF.
ENDLOOP.
IF v_found NE 'S'.
LOOP AT itab_zycit042 WHERE nrseq = itab_zycit001-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
CLEAR itab_zycit041.
READ TABLE itab_zycit041 WITH KEY
nrseq = itab_zycit042-nrseqnf
nfglobal = itab_zycit042-nfglobal.
IF sy-subrc EQ 0.
MOVE: itab_zycit041-nfnum TO itab_di_final-nfnum,
itab_zycit041-series TO itab_di_final-serie,
itab_zycit041-dtincl TO itab_di_final-dtnf .
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final.
IF
( itab_di_final-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final-posnr NE itab_det_exp-posnr OR
itab_di_final-nrseq NE itab_det_exp-nrseq OR
itab_di_final-codmat NE itab_det_exp-codmat ) AND
( itab_di_final-codcomp EQ
itab_comp_vinc_final-codcomp AND
itab_di_final-nrdi EQ wa_itab_di_final-nrdi AND
itab_di_final-ebeln EQ wa_itab_di_final-ebeln AND
itab_di_final-ebelp EQ wa_itab_di_final-ebelp AND
itab_di_final-nrseqemb EQ wa_itab_di_final-nrseqemb ).
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
MODIFY itab_di_final.
ENDIF.
* << Fim da exclusão
ENDLOOP.
* >> Início da exclusão: FORM SELECIONA_DI3
ENDIF.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM SELECIONA_DI3
ENDIF.
ENDLOOP.
* << Fim da exclusão
ENDLOOP.
LOOP AT itab_di_final.
v_tabix = sy-tabix.
CLEAR mara.
SELECT SINGLE ntgew brgew
...
...
LOOP AT itab_det_exp_final.
CLEAR itab_resumo.
MOVE: itab_det_exp_final-codmat TO itab_resumo-codmat ,
itab_det_exp_final-werks TO itab_resumo-werks ,
itab_det_exp_final-qtd_iten TO itab_resumo-qtd_iten,
* >> Início da inclusão: FORM CARREGA_RESUMO_EXPORTACAO3
itab_det_exp_final-meins TO itab_resumo-meins ,
itab_det_exp_final-waersfob TO itab_resumo-waersfob,
* << Fim da inclusão
itab_det_exp_final-vlfob TO itab_resumo-vlfob .
COLLECT itab_resumo.
ENDLOOP.
SORT itab_det_exp_final BY dtre ASCENDING.
SORT itab_resumo BY codmat.
...
...
ENDFORM.
FORM check_fields_screen_0308.
LOOP AT tc_det_imp3-cols INTO wa_cols3.
IF wa_cols3-screen-group1 NE 'NEX'.
wa_cols3-screen-input = v_status3.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0308
MODIFY tc_det_imp3-cols FROM wa_cols3.
ENDIF.
IF /pws/zycit321-it_ge NE 'X'.
IF wa_cols3-screen-group4 NE 'GR'.
wa_cols3-invisible = '1'.
* << Fim da inclusão
MODIFY tc_det_imp3-cols FROM wa_cols3.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0308
ENDIF.
ENDIF.
ENDLOOP.
LOOP AT SCREEN.
IF /pws/zycit321-it_ge EQ 'X'.
IF screen-group4 EQ 'MAT'.
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
ELSE.
IF screen-group4 EQ 'GR'.
screen-invisible = 1.
MODIFY SCREEN.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0308
ENDIF.
* << Fim da inclusão
ENDLOOP.
...
...
tc_det_imp3-lines = v_ilinhas2.
ENDFORM.
FORM carrega_det_imp3.
CLEAR itab_det_imp_final. REFRESH itab_det_imp_final.
CLEAR: tt_ii, tt_ipi, tt_icms, tt_benef, tt_afrmm, tt_pis, tt_cofins.
* >> Início da inclusão: FORM CARREGA_DET_IMP3
REFRESH itab_res_imp.
* << Fim da inclusão
LOOP AT itab_di_final.
CHECK itab_di_final-v_sel EQ 'X'.
SELECT SINGLE * FROM /pws/zycit085
INTO /pws/zycit085
WHERE nrseqdi EQ itab_di_final-nrdi.
...
...
tt_icms = tt_icms + itab_di_final-i_vlicms.
tt_afrmm = tt_afrmm + itab_di_final-vlafrmm.
tt_pis = tt_pis + itab_di_final-vlpis.
tt_cofins = tt_cofins + itab_di_final-vlcofins.
COLLECT itab_det_imp_final.
* >> Início da inclusão: FORM CARREGA_DET_IMP3
IF /pws/zycit321-it_ge EQ 'X'.
itab_res_imp-grupo = itab_di_final-grupo.
ELSE.
itab_res_imp-codcomp = itab_di_final-codcomp.
ENDIF.
COLLECT itab_res_imp.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM CARREGA_DET_IMP3
IF v_verif_v EQ 'X'.
CLEAR: /pws/zycie260d, v_verif_v.
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_res_imp.
CLEAR: /pws/zycie260d-i_vlii.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
/pws/zycie260d-i_vlii =
itab_det_imp_final-i_vlii + itab_det_imp_final-i_vlipi
+ itab_det_imp_final-i_vlicms + itab_det_imp_final-vlafrmm
+ itab_det_imp_final-vlpis + itab_det_imp_final-vlcofins.
ENDLOOP.
IF /pws/zycie260d-i_vlii >= /pws/zycit321-viabilidade.
itab_di_final-transp = 'X'.
ELSE.
CLEAR: itab_di_final-transp.
ENDIF.
MODIFY itab_di_final TRANSPORTING transp
WHERE grupo EQ itab_res_imp-grupo.
ENDLOOP.
ELSE.
LOOP AT itab_res_imp.
CLEAR: /pws/zycie260d-i_vlii.
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
/pws/zycie260d-i_vlii =
itab_det_imp_final-i_vlii + itab_det_imp_final-i_vlipi
+ itab_det_imp_final-i_vlicms + itab_det_imp_final-vlafrmm
+ itab_det_imp_final-vlpis + itab_det_imp_final-vlcofins.
ENDLOOP.
IF /pws/zycie260d-i_vlii >= /pws/zycit321-viabilidade.
itab_di_final-transp = 'X'.
ELSE.
CLEAR: itab_di_final-transp.
ENDIF.
MODIFY itab_di_final TRANSPORTING transp
WHERE codcomp EQ itab_res_imp-codcomp.
ENDLOOP.
ENDIF.
ENDIF.
* << Fim da inclusão
tt_benef = tt_benef + tt_ii + tt_ipi.
SORT itab_det_imp_final BY dtdi nrdi ebeln ebelp adicao.
* >> Início da inclusão: FORM CARREGA_DET_IMP3
REFRESH itab_res_imp.
* << Fim da inclusão
PERFORM carrega_resumo_importacao3.
ENDFORM.
FORM carrega_resumo_importacao3.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
DATA: v_moeda TYPE c.
* << Fim da inclusão
DATA: BEGIN OF itab_det_imp_aux OCCURS 0.
* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3
DATA: nrdi LIKE /pws/zycit085-nrseqdi,
codcomp LIKE /pws/zycit245-codcomp.
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
DATA: nrdi TYPE /pws/zycit085-nrseqdi,
codcomp TYPE /pws/zycit245-codcomp,
grupo TYPE /pws/zycit433-grupo.
* << Fim da inclusão
DATA: END OF itab_det_imp_aux.
CLEAR itab_res_imp. REFRESH itab_res_imp.
CLEAR itab_det_imp_aux. REFRESH itab_det_imp_aux.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
REFRESH itab_det_imp.
itab_det_imp[] = itab_det_imp_final[].
* << Fim da inclusão
LOOP AT itab_det_imp_final.
CLEAR itab_res_imp.
* >> Início da exclusão: FORM CARREGA_RESUMO_IMPORTACAO3
READ TABLE itab_det_imp_aux WITH KEY nrdi = itab_det_imp_final-nrdi
* << Fim da exclusão
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
IF /pws/zycit321-it_ge NE 'X'.
READ TABLE itab_det_imp_aux WITH KEY
nrdi = itab_det_imp_final-nrdi
* << Fim da inclusão
codcomp = itab_det_imp_final-codcomp.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
CLEAR: v_moeda.
LOOP AT itab_det_imp WHERE codcomp EQ itab_det_imp_final-codcomp
AND waers NE itab_det_imp_final-waers.
v_moeda = 'X'.
EXIT.
ENDLOOP.
ELSE.
READ TABLE itab_det_imp_aux WITH KEY
nrdi = itab_det_imp_final-nrdi
grupo = itab_det_imp_final-grupo.
CLEAR: v_moeda.
LOOP AT itab_det_imp WHERE grupo EQ itab_det_imp_final-grupo
AND waers NE itab_det_imp_final-waers.
v_moeda = 'X'.
EXIT.
ENDLOOP.
ENDIF.
* << Fim da inclusão
IF sy-subrc NE 0.
MOVE: itab_det_imp_final-qtd_di TO itab_res_imp-qtd_di,
itab_det_imp_final-codcomp TO itab_det_imp_aux-codcomp.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
IF /pws/zycit321-it_ge EQ 'X'.
CLEAR itab_det_imp_aux-codcomp.
itab_det_imp_aux-grupo = itab_det_imp_final-grupo.
ENDIF.
* << Fim da inclusão
itab_det_imp_aux-nrdi = itab_det_imp_final-nrdi.
APPEND itab_det_imp_aux.
ENDIF.
MOVE: itab_det_imp_final-codcomp TO itab_res_imp-codcomp ,
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_det_imp_final-waers TO itab_res_imp-waers ,
* << Fim da inclusão
itab_det_imp_final-qtd_vinc TO itab_res_imp-qtd_vinc.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
IF /pws/zycit321-it_ge EQ 'X'.
CLEAR: itab_res_imp-codcomp .
itab_res_imp-grupo = itab_det_imp_final-grupo.
itab_res_imp-desc_g = itab_det_imp_final-desc_g.
ENDIF.
IF v_moeda EQ 'X'.
* << Fim da inclusão
itab_res_imp-vlfob = itab_res_imp-qtd_vinc *
itab_det_imp_final-valor_u.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
itab_res_imp-waers = 'USD'.
ELSE.
itab_res_imp-vlfob = itab_det_imp_final-netpr.
itab_res_imp-waers = itab_det_imp_final-waers.
itab_res_imp-meins = itab_det_imp_final-meins.
ENDIF.
* << Fim da inclusão
COLLECT itab_res_imp.
ENDLOOP.
SORT itab_det_imp_final BY dtdi ASCENDING.
SORT itab_res_imp BY codcomp.
CLEAR: v_dtini, v_dtfim, v_idxtmp.
LOOP AT itab_res_imp.
v_idxtmp = sy-tabix.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo = itab_res_imp-grupo.
IF v_dtini IS INITIAL.
v_dtini = itab_det_imp_final-dtdi.
ENDIF.
IF v_dtfim IS INITIAL.
v_dtfim = itab_det_imp_final-dtdi.
ENDIF.
IF itab_det_imp_final-dtdi < v_dtini AND
NOT v_dtini IS INITIAL.
v_dtini = itab_det_imp_final-dtdi.
ELSE.
IF itab_det_imp_final-dtdi > v_dtfim AND
NOT v_dtfim IS INITIAL.
v_dtfim = itab_det_imp_final-dtdi.
ENDIF.
ENDIF.
ENDLOOP.
ELSE.
* << Fim da inclusão
LOOP AT itab_det_imp_final WHERE codcomp = itab_res_imp-codcomp.
IF v_dtini IS INITIAL.
v_dtini = itab_det_imp_final-dtdi.
ENDIF.
IF v_dtfim IS INITIAL.
...
...
NOT v_dtfim IS INITIAL.
v_dtfim = itab_det_imp_final-dtdi.
ENDIF.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM CARREGA_RESUMO_IMPORTACAO3
ENDIF.
* << Fim da inclusão
MOVE: v_dtini TO itab_res_imp-dtpdi,
v_dtfim TO itab_res_imp-dtudi.
CLEAR: v_dtini, v_dtfim.
MODIFY itab_res_imp INDEX v_idxtmp.
ENDLOOP.
...
...
ENDFORM.
FORM check_fields_screen_0307.
LOOP AT tc_res_imp3-cols INTO wa_cols3.
IF wa_cols3-screen-group1 NE 'NEX'.
wa_cols3-screen-input = v_status3.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0307
MODIFY tc_res_imp3-cols FROM wa_cols3.
ENDIF.
IF /pws/zycit321-it_ge EQ 'X'.
IF wa_cols3-screen-group4 EQ 'MAT'.
wa_cols3-invisible = 1.
MODIFY tc_res_imp3-cols FROM wa_cols3.
ENDIF.
ELSE.
IF wa_cols3-screen-group4 EQ 'GR'.
wa_cols3-invisible = 1.
* << Fim da inclusão
MODIFY tc_res_imp3-cols FROM wa_cols3.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0307
ENDIF.
* << Fim da inclusão
ENDIF.
...
...
MESSAGE s015 WITH text-102.
EXIT.
ENDIF.
MOVE: sy-tabix TO v_indicatu7.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
* >> Início da exclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
* << Fim da inclusão
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii =
/pws/zycie260d-i_vlii + itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
...
...
/pws/zycie260d-vlafrmm + itab_det_imp_final-vlafrmm.
/pws/zycie260d-vlpis =
/pws/zycie260d-vlpis + itab_det_imp_final-vlpis.
/pws/zycie260d-vlcofins =
/pws/zycie260d-vlcofins + itab_det_imp_final-vlcofins.
* >> Início da inclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
ENDLOOP.
CLEAR: v_var_camb3, v_var_cambt3, v_cifimp3, v_fobexp3.
LOOP AT itab_di_final WHERE grupo EQ itab_res_imp-grupo.
v_cifimp3 = v_cifimp3 +
( itab_di_final-vlfob + itab_di_final-vlfrete_t
+ itab_di_final-vlseg_t ).
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
ELSE.
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii =
/pws/zycie260d-i_vlii + itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi + itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms + itab_det_imp_final-i_vlicms.
/pws/zycie260d-vlafrmm =
/pws/zycie260d-vlafrmm + itab_det_imp_final-vlafrmm.
/pws/zycie260d-vlpis =
/pws/zycie260d-vlpis + itab_det_imp_final-vlpis.
/pws/zycie260d-vlcofins =
/pws/zycie260d-vlcofins + itab_det_imp_final-vlcofins.
ENDLOOP.
* << Fim da inclusão
CLEAR: v_var_camb3, v_var_cambt3, v_cifimp3, v_fobexp3.
LOOP AT itab_di_final WHERE codcomp EQ itab_res_imp-codcomp.
v_cifimp3 = v_cifimp3 +
( itab_di_final-vlfob + itab_di_final-vlfrete_t
+ itab_di_final-vlseg_t ).
ENDLOOP.
* >> Início da inclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
ENDIF.
* << Fim da inclusão
LOOP AT itab_det_exp_final.
* >> Início da inclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
IF /pws/zycit321-it_ge EQ 'X'.
READ TABLE itab_di_final
WITH KEY nrseqre = itab_di_final-nrseqre
nrseq = itab_di_final-nrseq
codmat = itab_di_final-codmat
vbeln_va = itab_di_final-vbeln_va
vbeln_vf = itab_di_final-vbeln_vf
posnr = itab_di_final-posnr
grupo = itab_res_imp-grupo.
ELSE.
* << Fim da inclusão
READ TABLE itab_di_final
WITH KEY nrseqre = itab_di_final-nrseqre
nrseq = itab_di_final-nrseq
codmat = itab_di_final-codmat
vbeln_va = itab_di_final-vbeln_va
vbeln_vf = itab_di_final-vbeln_vf
posnr = itab_di_final-posnr
codcomp = itab_res_imp-codcomp.
* >> Início da inclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
ENDIF.
* << Fim da inclusão
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
v_fobexp3 = v_fobexp3 +
( itab_det_exp_final-vlfob - itab_det_exp_final-vlcomis ).
...
...
SHIFT v_var_cambt3 LEFT DELETING LEADING space.
CONCATENATE v_var_cambt3 '%' INTO v_var_cambt3.
ENDIF.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
* >> Início da inclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
pressed_tab_3c_3 = ok_code3.
IF /pws/zycit321-it_ge EQ 'X'.
dynpronr3c_3 = '0321'.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
* << Fim da inclusão
MOVE itab_res_imp-codcomp TO v_detcomp1.
* >> Início da exclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
pressed_tab_3c_3 = ok_code3.
* << Fim da exclusão
dynpronr3c_3 = '0311'.
* >> Início da inclusão: FORM TRATA_TAB_BENEFICIOS_IMP3
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM trata_button_first_0306.
MOVE: 1 TO v_indicatu7.
LOOP AT itab_res_imp WHERE marc_l = 'X'.
itab_res_imp-marc_l = ' '.
...
...
IF sy-subrc EQ 0.
itab_res_imp-marc_l = 'X'.
MODIFY itab_res_imp INDEX v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST_0306
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-waers TO /pws/zycie260-waers ,
* << Fim da inclusão
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST_0306
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
* << Fim da inclusão
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
...
...
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE itab_res_imp-codcomp TO v_detcomp1.
* >> Início da inclusão: FORM TRATA_BUTTON_FIRST_0306
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM trata_button_prior_0306.
IF v_indicatu7 > 1.
v_indicatu7 = v_indicatu7 - 1.
...
...
IF sy-subrc EQ 0.
itab_res_imp-marc_l = 'X'.
MODIFY itab_res_imp INDEX v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR_0306
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-waers TO /pws/zycie260-waers ,
* << Fim da inclusão
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR_0306
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
* << Fim da inclusão
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
...
...
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE itab_res_imp-codcomp TO v_detcomp1.
ENDIF.
* >> Início da inclusão: FORM TRATA_BUTTON_PRIOR_0306
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM trata_button_next_0306.
DESCRIBE TABLE itab_res_imp LINES v_ilinhas2.
IF v_indicatu7 < v_ilinhas2.
v_indicatu7 = v_indicatu7 + 1.
...
...
IF sy-subrc EQ 0.
itab_res_imp-marc_l = 'X'.
MODIFY itab_res_imp INDEX v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT_0306
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-waers TO /pws/zycie260-waers ,
* << Fim da inclusão
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT_0306
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
* << Fim da inclusão
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
...
...
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE itab_res_imp-codcomp TO v_detcomp1.
* >> Início da inclusão: FORM TRATA_BUTTON_NEXT_0306
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM trata_button_last_0306.
DESCRIBE TABLE itab_res_imp LINES v_ilinhas2.
v_indicatu7 = v_ilinhas2.
...
...
IF sy-subrc EQ 0.
itab_res_imp-marc_l = 'X'.
MODIFY itab_res_imp INDEX v_indicatu7.
MOVE: itab_res_imp-codcomp TO /pws/zycie260-codcomp,
itab_res_imp-qtd_vinc TO /pws/zycie260-qtd_di ,
* >> Início da inclusão: FORM TRATA_BUTTON_LAST_0306
itab_res_imp-meins TO /pws/zycie260-meins ,
itab_res_imp-waers TO /pws/zycie260-waers ,
* << Fim da inclusão
itab_res_imp-vlfob TO /pws/zycie260-vlfob_t.
CLEAR: itab_det_imp, /pws/zycie260d. REFRESH: itab_det_imp.
* >> Início da inclusão: FORM TRATA_BUTTON_LAST_0306
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_det_imp_final WHERE grupo EQ itab_res_imp-grupo.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
/pws/zycie260d-i_vlipi =
/pws/zycie260d-i_vlipi +
itab_det_imp_final-i_vlipi.
/pws/zycie260d-i_vlicms =
/pws/zycie260d-i_vlicms +
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE: itab_res_imp-grupo TO v_detcomp1,
itab_res_imp-desc_g TO v_detcomp2.
ELSE.
* << Fim da inclusão
LOOP AT itab_det_imp_final WHERE codcomp EQ itab_res_imp-codcomp.
MOVE-CORRESPONDING itab_det_imp_final TO itab_det_imp.
APPEND itab_det_imp.
/pws/zycie260d-i_vlii = /pws/zycie260d-i_vlii +
itab_det_imp_final-i_vlii.
...
...
itab_det_imp_final-i_vlicms.
ENDLOOP.
/pws/zycie260d-t_benef = /pws/zycie260d-i_vlii +
/pws/zycie260d-i_vlipi.
MOVE itab_res_imp-codcomp TO v_detcomp1.
* >> Início da inclusão: FORM TRATA_BUTTON_LAST_0306
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM trata_button_atualiz3.
PERFORM seleciona_di3.
ENDFORM.
FORM check_fields_screen_0311.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0311
IF /pws/zycit321-it_ge NE 'X'.
* << Fim da inclusão
SELECT maktx UP TO 1 ROWS FROM makt INTO v_detcomp2
WHERE matnr = v_detcomp1
AND spras = sy-langu.
ENDSELECT.
* >> Início da inclusão: FORM CHECK_FIELDS_SCREEN_0311
ENDIF.
* << Fim da inclusão
tt_geral3 = tt_ii + tt_ipi + tt_afrmm
+ tt_pis + tt_cofins.
tt_comp3 = /pws/zycie260d-i_vlii + /pws/zycie260d-i_vlipi +
/pws/zycie260d-vlafrmm
+ /pws/zycie260d-vlpis + /pws/zycie260d-vlcofins.
...
...
IMPORT i_final FROM MEMORY ID idmemory2.
IF sy-subrc NE 0 OR i_final[] IS INITIAL.
ENDIF.
ENDFORM.
FORM seleciona_nf3.
* >> Início da exclusão: FORM SELECIONA_NF3
DATA: itab_rseg LIKE rseg OCCURS 0 WITH HEADER LINE.
DATA: wa_di LIKE itab_di_final.
DATA: BEGIN OF itab_insumo_nf OCCURS 0.
DATA: matnr LIKE /pws/zycit003-matnr.
DATA: END OF itab_insumo_nf.
DATA: BEGIN OF itab_sel_doc OCCURS 0.
DATA: belnr LIKE rseg-belnr ,
gjahr LIKE rseg-gjahr ,
buzei LIKE rseg-buzei ,
docnum LIKE j_1bnflin-docnum,
itmnum LIKE j_1bnflin-itmnum.
DATA: END OF itab_sel_doc.
DATA: itab_comp_sort3 LIKE itab_comp_vinc_final
OCCURS 0 WITH HEADER LINE.
DATA: itab_j_1bnflin_sort LIKE j_1bnflin
OCCURS 0 WITH HEADER LINE.
* << Fim da exclusão
REFRESH: itab_j_1bnflin,
itab_j_1bnfdoc,
itab_insumo_nf,
itab_sel_doc ,
itab_di_final_aux ,
itab_zycit260 .
LOOP AT itab_comp_vinc_final.
* >> Início da inclusão: FORM SELECIONA_NF3
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_zycit433 WHERE
grupo EQ itab_comp_vinc_final-grupo.
READ TABLE itab_insumo_nf WITH KEY
matnr = itab_zycit433-matnr.
IF sy-subrc NE 0.
itab_insumo_nf-matnr = itab_zycit433-matnr.
APPEND itab_insumo_nf.
ENDIF.
ENDLOOP.
ELSE.
READ TABLE itab_insumo_nf WITH KEY
matnr = itab_comp_vinc_final-codcomp.
IF sy-subrc NE 0.
* << Fim da inclusão
itab_insumo_nf-matnr = itab_comp_vinc_final-codcomp.
* >> Início da exclusão: FORM SELECIONA_NF3
COLLECT itab_insumo_nf.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_NF3
APPEND itab_insumo_nf.
ENDIF.
ENDIF.
* << Fim da inclusão
ENDLOOP.
IF NOT itab_insumo_nf[] IS INITIAL.
SELECT * FROM j_1bnflin INTO TABLE itab_j_1bnflin
FOR ALL ENTRIES IN itab_insumo_nf
WHERE matnr EQ itab_insumo_nf-matnr.
...
...
itab_sel_doc-gjahr = itab_j_1bnflin-refkey+10(4).
itab_sel_doc-buzei = itab_j_1bnflin-refitm.
itab_sel_doc-docnum = itab_j_1bnflin-docnum.
itab_sel_doc-itmnum = itab_j_1bnflin-itmnum.
APPEND itab_sel_doc.
* >> Início da inclusão: FORM SELECIONA_NF3
CLEAR: itab_zycit433.
READ TABLE itab_zycit433 WITH KEY matnr = itab_j_1bnflin-matnr.
itab_j_1bnflin-grupo = itab_zycit433-grupo.
itab_j_1bnflin-desc_g = itab_zycit433-desc_g.
MODIFY itab_j_1bnflin.
* << Fim da inclusão
ENDIF.
ENDLOOP.
IF NOT itab_j_1bnflin[] IS INITIAL.
SELECT * FROM j_1bnfdoc INTO TABLE itab_j_1bnfdoc
FOR ALL ENTRIES IN itab_j_1bnflin
...
...
ENDLOOP.
REFRESH: itab_comp_vinc_final.
itab_comp_vinc_final[] = itab_comp_sort3[].
itab_di_final_aux[] = itab_di_final[].
LOOP AT itab_comp_vinc_final.
* >> Início da exclusão: FORM SELECIONA_NF3
LOOP AT itab_j_1bnflin WHERE matnr EQ itab_comp_vinc_final-codcomp.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_NF3
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_j_1bnflin WHERE grupo EQ itab_comp_vinc_final-grupo.
PERFORM monta_nf.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_NF3
READ TABLE itab_di_final_aux WITH KEY
nrseqre = itab_comp_vinc_final-nrseqre
nrseq = itab_comp_vinc_final-nrseq
codmat = itab_comp_vinc_final-codmat
vbeln_va = itab_comp_vinc_final-vbeln_va
vbeln_vf = itab_comp_vinc_final-vbeln_vf
posnr = itab_comp_vinc_final-posnr
codcomp = itab_comp_vinc_final-codcomp
docnum = itab_j_1bnflin-docnum
itmnum = itab_j_1bnflin-itmnum.
IF sy-subrc EQ 0.
CONTINUE.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_NF3
ENDLOOP.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_NF3
READ TABLE itab_zycit260 WITH KEY
docnum = itab_j_1bnflin-docnum
itmnum = itab_j_1bnflin-itmnum.
IF sy-subrc NE 0.
READ TABLE itab_j_1bnfdoc WITH KEY
docnum = itab_j_1bnflin-docnum.
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
READ TABLE itab_sel_doc WITH KEY
docnum = itab_j_1bnflin-docnum
itmnum = itab_j_1bnflin-itmnum.
READ TABLE itab_rseg WITH KEY
belnr = itab_sel_doc-belnr
gjahr = itab_sel_doc-gjahr
buzei = itab_sel_doc-buzei.
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
PERFORM converte_um_base USING itab_j_1bnflin-matnr
CHANGING itab_j_1bnflin-meins
itab_j_1bnflin-menge.
IF itab_j_1bnflin-menge IS INITIAL.
DELETE itab_j_1bnflin WHERE
meins EQ itab_j_1bnflin-meins.
CONTINUE.
ENDIF.
CLEAR wa_di.
MOVE:
/pws/zycie258-nrseqd TO wa_di-nrseqd ,
itab_comp_vinc_final-codcomp TO wa_di-codcomp ,
itab_comp_vinc_final-codmat TO wa_di-codmat ,
itab_comp_vinc_final-nrseqre TO wa_di-nrseqre ,
itab_comp_vinc_final-nrseq TO wa_di-nrseq ,
itab_comp_vinc_final-vbeln_va TO wa_di-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO wa_di-vbeln_vf ,
itab_comp_vinc_final-posnr TO wa_di-posnr ,
itab_rseg-ebeln TO wa_di-ebeln ,
itab_rseg-ebelp TO wa_di-ebelp ,
itab_j_1bnfdoc-nfnum TO wa_di-nfnum ,
itab_j_1bnfdoc-series TO wa_di-serie ,
itab_j_1bnfdoc-docdat TO wa_di-dtnf ,
itab_j_1bnflin-docnum TO wa_di-docnum ,
itab_j_1bnflin-itmnum TO wa_di-itmnum ,
itab_j_1bnflin-nbm TO wa_di-j_1bnbm ,
itab_j_1bnflin-meins TO wa_di-meins ,
itab_j_1bnflin-menge TO wa_di-qtd_di ,
itab_j_1bnflin-menge TO wa_di-sdo_qtd .
* << Fim da exclusão
ELSE.
* >> Início da exclusão: FORM SELECIONA_NF3
wa_di = itab_zycit260.
wa_di-sdo_qtd = wa_di-qtd_di.
LOOP AT itab_zycit260 WHERE docnum = itab_j_1bnflin-docnum
AND itmnum = itab_j_1bnflin-itmnum.
wa_di-sdo_qtd = wa_di-sdo_qtd - itab_zycit260-qtd_vinc.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_NF3
LOOP AT itab_j_1bnflin WHERE matnr EQ itab_comp_vinc_final-codcomp.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_NF3
ENDLOOP.
IF wa_di-sdo_qtd <= 0.
CONTINUE.
ENDIF.
ENDIF.
LOOP AT itab_di_final WHERE docnum = itab_j_1bnflin-docnum
AND itmnum = itab_j_1bnflin-itmnum
AND qtd_vinc > 0.
wa_di-sdo_qtd = wa_di-sdo_qtd - itab_di_final-qtd_vinc.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_NF3
PERFORM monta_nf.
* << Fim da inclusão
ENDLOOP.
* >> Início da exclusão: FORM SELECIONA_NF3
IF wa_di-sdo_qtd > 0.
IF itab_comp_vinc_final-qtd_stotal > 0 .
IF itab_comp_vinc_final-qtd_stotal <= wa_di-sdo_qtd .
wa_di-qtd_vinc = itab_comp_vinc_final-qtd_stotal.
wa_di-sdo_qtd = wa_di-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_comp_vinc_final-qtd_stotal = 0.
ELSE.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal - wa_di-sdo_qtd.
wa_di-qtd_vinc = wa_di-sdo_qtd.
wa_di-sdo_qtd = 0.
ENDIF.
wa_di-v_sel = 'X'.
ENDIF.
ENDIF.
itab_di_final = wa_di.
APPEND itab_di_final.
IF itab_di_final-sdo_qtd <> itab_di_final-qtd_di.
MODIFY itab_di_final TRANSPORTING sdo_qtd
WHERE docnum = itab_j_1bnflin-docnum
AND itmnum = itab_j_1bnflin-itmnum.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM SELECIONA_NF3
ENDLOOP.
* << Fim da exclusão
MODIFY itab_comp_vinc_final.
...
...
APPEND itab_det_nf.
ENDIF.
ENDLOOP.
ENDFORM.
FORM seleciona_di.
* >> Início da exclusão: FORM SELECIONA_DI
DATA: itab_zycit244 LIKE /pws/zycit244 OCCURS 0 WITH HEADER LINE.
DATA: v_found(1) TYPE c,
v_vlreali LIKE /pws/zycit100-vlfob,
v_fator_conv LIKE /pws/zycit100-vlfob.
DATA: BEGIN OF itab_insumo_di OCCURS 0.
DATA: matnr LIKE mara-matnr.
DATA: END OF itab_insumo_di.
* << Fim da exclusão
IF /pws/zycie258-tipo NE 'I'.
ENDIF.
* >> Início da exclusão: FORM SELECIONA_DI
DATA: itab_ekpo_sort LIKE ekpo OCCURS 0 WITH HEADER LINE.
DATA: itab_comp_sort3 LIKE itab_comp_vinc_final
OCCURS 0 WITH HEADER LINE.
DATA: v_xa LIKE /pws/zycie085-vlfob,
v_xb LIKE /pws/zycie085-vlfob,
v_xc LIKE /pws/zycie085-vlfob,
v_fatx TYPE p DECIMALS 8,
v_faty TYPE p DECIMALS 8,
v_tot_real LIKE /pws/zycie003-vlreal,
v_fatpc LIKE /pws/zycie085-vlfob,
v_advii LIKE /pws/zycie085-vlfob,
v_advipi LIKE /pws/zycie085-vlfob,
v_advicms LIKE /pws/zycie085-vlfob,
v_advpis LIKE /pws/zycie085-vlfob,
v_advcof LIKE /pws/zycie085-vlfob,
v_divisor LIKE /pws/zycie085-vlfob.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI
REFRESH: itab_insumo_di,
itab_zycit279,
itab_zycit244.
* << Fim da inclusão
LOOP AT itab_comp_vinc_final.
* >> Início da inclusão: FORM SELECIONA_DI
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_zycit433 WHERE
grupo EQ itab_comp_vinc_final-grupo.
READ TABLE itab_insumo_di WITH KEY
matnr = itab_zycit433-matnr.
IF sy-subrc NE 0.
itab_insumo_di-matnr = itab_zycit433-matnr.
APPEND itab_insumo_di.
ENDIF.
ENDLOOP.
ELSE.
* << Fim da inclusão
READ TABLE itab_insumo_di WITH KEY
matnr = itab_comp_vinc_final-codcomp.
IF sy-subrc NE 0.
itab_insumo_di-matnr = itab_comp_vinc_final-codcomp.
APPEND itab_insumo_di.
* >> Início da inclusão: FORM SELECIONA_DI
ENDIF.
* << Fim da inclusão
ENDIF.
ENDLOOP.
REFRESH: itab_zycit279, itab_zycit244.
* >> Início da inclusão: FORM SELECIONA_DI
SORT itab_det_exp BY dtnf dtre.
READ TABLE itab_det_exp INDEX 1.
IF itab_det_exp-dtre IS INITIAL.
itab_det_exp-dtre = itab_det_exp-dtnf.
ENDIF.
itab_det_exp-dtre = itab_det_exp-dtre - 728.
* << Fim da inclusão
SELECT * FROM /pws/zycit279 INTO TABLE itab_zycit279
FOR ALL ENTRIES IN itab_insumo_di
WHERE matnr EQ itab_insumo_di-matnr
* >> Início da exclusão: FORM SELECIONA_DI
AND esgotado NE 'X'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI
AND esgotado NE 'X'
AND dtdi >= itab_det_exp-dtre.
* << Fim da inclusão
IF NOT itab_zycit279[] IS INITIAL.
SELECT * FROM /pws/zycit244 INTO TABLE itab_zycit244
FOR ALL ENTRIES IN itab_zycit279
WHERE nrseqd EQ itab_zycit279-nrseqd
AND tipo EQ 'I'.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DI
LOOP AT itab_zycit279 WHERE grupo EQ space.
READ TABLE itab_zycit433 WITH KEY matnr = itab_zycit279-matnr.
itab_zycit279-grupo = itab_zycit433-grupo.
MODIFY itab_zycit279 TRANSPORTING grupo
WHERE matnr EQ itab_zycit279-matnr.
ENDLOOP.
* << Fim da inclusão
IF NOT itab_zycit244[] IS INITIAL.
LOOP AT itab_zycit279 WHERE nrseqd NE space.
READ TABLE itab_zycit244 WITH KEY nrseqd = itab_zycit279-nrseqd.
IF sy-subrc NE 0.
DELETE itab_zycit279 WHERE nrseqd EQ itab_zycit279-nrseqd.
...
...
ENDLOOP.
ENDLOOP.
REFRESH itab_comp_vinc_final.
itab_comp_vinc_final[] = itab_comp_sort3[].
LOOP AT itab_comp_vinc_final.
* >> Início da exclusão: FORM SELECIONA_DI
LOOP AT itab_zycit279
WHERE matnr EQ itab_comp_vinc_final-codcomp.
IF NOT itab_zycit279-nrseqd IS INITIAL.
READ TABLE itab_zycit244 WITH KEY
nrseqd = itab_zycit279-nrseqd.
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
ENDIF.
REFRESH itab_di_final_aux.
itab_di_final_aux[] = itab_di_final[].
* << Fim da exclusão
READ TABLE itab_det_exp WITH KEY
codmat = itab_comp_vinc_final-codmat
nrseqre = itab_comp_vinc_final-nrseqre
nrseq = itab_comp_vinc_final-nrseq
vbeln_va = itab_comp_vinc_final-vbeln_va
vbeln_vf = itab_comp_vinc_final-vbeln_vf
posnr = itab_comp_vinc_final-posnr.
* >> Início da inclusão: FORM SELECIONA_DI
IF NOT itab_det_exp-dtre IS INITIAL.
* << Fim da inclusão
v_dtini = itab_det_exp-dtre - 728.
v_dtfim = itab_det_exp-dtre.
* >> Início da exclusão: FORM SELECIONA_DI
CHECK itab_zycit279-dtdi >= v_dtini AND
itab_zycit279-dtdi <= v_dtfim.
MOVE: itab_zycit279-meins TO itab_di_final-meins ,
itab_zycit279-menge TO itab_di_final-qtd_di .
IF itab_di_final-qtd_di IS INITIAL.
EXIT.
ENDIF.
CLEAR itab_di_final_aux.
READ TABLE itab_di_final_aux WITH KEY
nrseqre = itab_comp_vinc_final-nrseqre
nrseq = itab_comp_vinc_final-nrseq
codmat = itab_comp_vinc_final-codmat
vbeln_va = itab_comp_vinc_final-vbeln_va
vbeln_vf = itab_comp_vinc_final-vbeln_vf
posnr = itab_comp_vinc_final-posnr
codcomp = itab_comp_vinc_final-codcomp
docnum = itab_zycit279-docnum
ebeln = itab_zycit279-ebeln
ebelp = itab_zycit279-ebelp.
IF sy-subrc NE 0 AND
itab_zycit279-menge > 0.
READ TABLE itab_di_final_aux WITH KEY
codcomp = itab_comp_vinc_final-codcomp
docnum = itab_zycit279-docnum
ebeln = itab_zycit279-ebeln
ebelp = itab_zycit279-ebelp.
IF sy-subrc NE 0.
CLEAR itab_di_final.
MOVE:
/pws/zycie258-nrseqd TO itab_di_final-nrseqd ,
itab_comp_vinc_final-codcomp TO itab_di_final-codcomp ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit279-nrseqdi TO itab_di_final-nrdi ,
itab_zycit279-nrdi TO itab_di_final-reg_di ,
itab_zycit279-dtdi TO itab_di_final-dtdi ,
itab_zycit279-nrseq TO itab_di_final-nrseqemb ,
itab_zycit279-adicao TO itab_di_final-adicao ,
itab_zycit279-docnum TO itab_di_final-docnum ,
itab_zycit279-ebeln TO itab_di_final-ebeln ,
itab_zycit279-ebelp TO itab_di_final-ebelp ,
itab_zycit279-meins TO itab_di_final-meins ,
itab_zycit279-menge TO itab_di_final-qtd_di ,
itab_zycit279-nfnum TO itab_di_final-nfnum ,
itab_zycit279-serie TO itab_di_final-serie ,
itab_zycit279-dtnf TO itab_di_final-dtnf ,
itab_zycit279-menge TO itab_di_final-sdo_qtd ,
itab_zycit279-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit279-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit279-gewei TO itab_di_final-gewei ,
itab_zycit279-ntgew TO itab_di_final-ntgew ,
itab_zycit279-waers TO itab_di_final-waers ,
itab_zycit279-netpr TO itab_di_final-netpr ,
itab_zycit279-i_txii TO itab_di_final-i_txii ,
itab_zycit279-pis TO itab_di_final-pis ,
itab_zycit279-cofins TO itab_di_final-cofins ,
itab_zycit279-i_txipi TO itab_di_final-i_txipi ,
itab_zycit279-i_txicms TO itab_di_final-i_txicms ,
itab_zycit279-waers TO itab_di_final-i_waerscifme,
itab_zycit279-i_txmoeda TO itab_di_final-i_txmoeda ,
itab_zycit279-waers TO itab_di_final-i_waerscifmi,
itab_zycit279-waers TO itab_di_final-waersimp ,
itab_zycit279-vltot TO itab_di_final-vlreal ,
itab_zycit279-vlfrete TO itab_di_final-vlfrete ,
itab_zycit279-vlseg TO itab_di_final-vlseg .
SELECT SINGLE *
FROM mara INTO mara
WHERE matnr = itab_di_final-codmat.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.
itab_di_final-valor_u = itab_zycit279-vltot /
itab_zycit279-qtd_ncm.
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit279-qtd_ncm.
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit279-qtd_ncm.
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
LOOP AT itab_zycit260
WHERE codcomp = itab_comp_vinc_final-codcomp
AND docnum = itab_zycit279-docnum
AND ebeln = itab_zycit279-ebeln
AND ebelp = itab_zycit279-ebelp.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_zycit260-qtd_vinc.
ENDLOOP.
IF itab_di_final-sdo_qtd <= 0.
CLEAR itab_di_final.
CONTINUE.
ENDIF.
CLEAR wa_itab_di_final.
IF itab_comp_vinc_final-qtd_stotal > 0 AND
itab_di_final-sdo_qtd > 0.
IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.
IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_di.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-qtd_di.
* << Fim da exclusão
ELSE.
* >> Início da exclusão: FORM SELECIONA_DI
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI
v_dtini = itab_det_exp-dtnf - 728.
v_dtfim = itab_det_exp-dtnf.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DI
IF /pws/zycit321-it_ge EQ 'X'.
LOOP AT itab_zycit279
WHERE grupo EQ itab_comp_vinc_final-grupo.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
itab_di_final-vlcofins =
v_perc_vinc *
( itab_zycit279-basecofins *
( itab_zycit279-cofins / 100 ) ).
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc *
( itab_zycit279-baseii *
( itab_zycit279-i_txii / 100 ) ).
itab_di_final-i_vlipi =
v_perc_vinc *
( itab_zycit279-baseipi *
( itab_zycit279-i_txipi / 100 ) ).
itab_di_final-i_vlicms =
v_perc_vinc *
( itab_zycit279-baseicms *
( itab_zycit279-i_txicms / 100 ) ).
itab_di_final-vlpis =
itab_di_final-vlpis / itab_di_final-i_txmoeda.
itab_di_final-i_vlii =
itab_di_final-i_vlii / itab_di_final-i_txmoeda.
itab_di_final-i_vlipi =
itab_di_final-i_vlipi / itab_di_final-i_txmoeda.
itab_di_final-vlcofins =
itab_di_final-vlcofins / itab_di_final-i_txmoeda.
itab_di_final-i_vlicms =
itab_di_final-i_vlicms / itab_di_final-i_txmoeda.
itab_di_final-vlafrmm =
itab_di_final-vlafrmm / itab_di_final-i_txmoeda.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ELSE.
IF itab_comp_vinc_final-qtd_stotal <
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_comp_vinc_final-qtd_stotal.
ELSE.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
itab_di_final-vlcofins =
v_perc_vinc *
( itab_zycit279-basecofins *
( itab_zycit279-cofins / 100 ) ).
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc *
( itab_zycit279-baseii *
( itab_zycit279-i_txii / 100 ) ).
itab_di_final-i_vlipi =
v_perc_vinc *
( itab_zycit279-baseipi *
( itab_zycit279-i_txipi / 100 ) ).
itab_di_final-i_vlicms =
v_perc_vinc *
( itab_zycit279-baseicms *
( itab_zycit279-i_txicms / 100 ) ).
itab_di_final-vlpis =
itab_di_final-vlpis / itab_di_final-i_txmoeda.
itab_di_final-i_vlii =
itab_di_final-i_vlii / itab_di_final-i_txmoeda.
itab_di_final-i_vlipi =
itab_di_final-i_vlipi / itab_di_final-i_txmoeda.
itab_di_final-vlcofins =
itab_di_final-vlcofins / itab_di_final-i_txmoeda.
itab_di_final-i_vlicms =
itab_di_final-i_vlicms / itab_di_final-i_txmoeda.
itab_di_final-vlafrmm =
itab_di_final-vlafrmm / itab_di_final-i_txmoeda.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ENDIF.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI
PERFORM monta_di.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final.
IF
( itab_di_final-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final-posnr NE itab_det_exp-posnr OR
itab_di_final-nrseq NE itab_det_exp-nrseq OR
itab_di_final-codmat NE itab_det_exp-codmat ) AND
( itab_di_final-codcomp EQ
itab_comp_vinc_final-codcomp AND
itab_di_final-docnum EQ wa_itab_di_final-docnum AND
itab_di_final-ebeln EQ wa_itab_di_final-ebeln AND
itab_di_final-ebelp EQ wa_itab_di_final-ebelp ).
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
MODIFY itab_di_final.
ENDIF.
* << Fim da exclusão
ENDLOOP.
* >> Início da exclusão: FORM SELECIONA_DI
ENDIF.
* << Fim da exclusão
ELSE.
* >> Início da exclusão: FORM SELECIONA_DI
CLEAR itab_di_final.
MOVE:
/pws/zycie258-nrseqd TO itab_di_final-nrseqd ,
itab_comp_vinc_final-codcomp TO itab_di_final-codcomp ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit279-nrseqdi TO itab_di_final-nrdi ,
itab_zycit279-nrdi TO itab_di_final-reg_di ,
itab_zycit279-dtdi TO itab_di_final-dtdi ,
itab_zycit279-nrseq TO itab_di_final-nrseqemb ,
itab_zycit279-adicao TO itab_di_final-adicao ,
itab_zycit279-docnum TO itab_di_final-docnum ,
itab_zycit279-ebeln TO itab_di_final-ebeln ,
itab_zycit279-ebelp TO itab_di_final-ebelp ,
itab_zycit279-meins TO itab_di_final-meins ,
itab_zycit279-menge TO itab_di_final-qtd_di ,
itab_di_final_aux-sdo_qtd TO itab_di_final-sdo_qtd ,
itab_zycit279-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit279-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit279-gewei TO itab_di_final-gewei ,
itab_zycit279-ntgew TO itab_di_final-ntgew ,
itab_zycit279-waers TO itab_di_final-waers ,
itab_zycit279-netpr TO itab_di_final-netpr ,
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI
LOOP AT itab_zycit279
WHERE matnr EQ itab_comp_vinc_final-codcomp.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONA_DI
itab_zycit279-nfnum TO itab_di_final-nfnum ,
itab_zycit279-serie TO itab_di_final-serie ,
itab_zycit279-dtnf TO itab_di_final-dtnf ,
itab_zycit279-i_txii TO itab_di_final-i_txii ,
itab_zycit279-pis TO itab_di_final-pis ,
itab_zycit279-cofins TO itab_di_final-cofins ,
itab_zycit279-i_txipi TO itab_di_final-i_txipi ,
itab_zycit279-i_txicms TO itab_di_final-i_txicms ,
itab_zycit279-waers TO itab_di_final-i_waerscifme,
itab_zycit279-i_txmoeda TO itab_di_final-i_txmoeda ,
itab_zycit279-waers TO itab_di_final-i_waerscifmi,
itab_zycit279-waers TO itab_di_final-waersimp ,
itab_zycit279-vltot TO itab_di_final-vlreal ,
itab_zycit279-vlfrete TO itab_di_final-vlfrete ,
itab_zycit279-vlseg TO itab_di_final-vlseg .
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-valor_u = itab_zycit279-vltot /
itab_zycit279-qtd_ncm.
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit279-menge.
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit279-menge.
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
CLEAR wa_itab_di_final.
IF itab_comp_vinc_final-qtd_stotal > 0 AND
itab_di_final-sdo_qtd > 0.
IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.
IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_di.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-qtd_di.
ELSE.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
ENDIF.
SELECT SINGLE *
FROM mara INTO mara
WHERE matnr = itab_di_final-codmat.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
itab_di_final-vlcofins =
v_perc_vinc *
( itab_zycit279-basecofins *
( itab_zycit279-cofins / 100 ) ).
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc *
( itab_zycit279-baseii *
( itab_zycit279-i_txii / 100 ) ).
itab_di_final-i_vlipi =
v_perc_vinc *
( itab_zycit279-baseipi *
( itab_zycit279-i_txipi / 100 ) ).
itab_di_final-i_vlicms =
v_perc_vinc *
( itab_zycit279-baseicms *
( itab_zycit279-i_txicms / 100 ) ).
itab_di_final-vlpis =
itab_di_final-vlpis / itab_di_final-i_txmoeda.
itab_di_final-i_vlii =
itab_di_final-i_vlii / itab_di_final-i_txmoeda.
itab_di_final-i_vlipi =
itab_di_final-i_vlipi / itab_di_final-i_txmoeda.
itab_di_final-vlcofins =
itab_di_final-vlcofins / itab_di_final-i_txmoeda.
itab_di_final-i_vlicms =
itab_di_final-i_vlicms / itab_di_final-i_txmoeda.
itab_di_final-vlafrmm =
itab_di_final-vlafrmm / itab_di_final-i_txmoeda.
.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ELSE.
IF itab_comp_vinc_final-qtd_stotal <
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_comp_vinc_final-qtd_stotal.
ELSE.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
itab_di_final-vlcofins =
v_perc_vinc *
( itab_zycit279-basecofins *
( itab_zycit279-cofins / 100 ) ).
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc *
( itab_zycit279-baseii *
( itab_zycit279-i_txii / 100 ) ).
itab_di_final-i_vlipi =
v_perc_vinc *
( itab_zycit279-baseipi *
( itab_zycit279-i_txipi / 100 ) ).
itab_di_final-i_vlicms =
v_perc_vinc *
( itab_zycit279-baseicms *
( itab_zycit279-i_txicms / 100 ) ).
itab_di_final-vlpis =
itab_di_final-vlpis / itab_di_final-i_txmoeda.
itab_di_final-i_vlii =
itab_di_final-i_vlii / itab_di_final-i_txmoeda.
itab_di_final-i_vlipi =
itab_di_final-i_vlipi / itab_di_final-i_txmoeda.
itab_di_final-vlcofins =
itab_di_final-vlcofins / itab_di_final-i_txmoeda.
itab_di_final-i_vlicms =
itab_di_final-i_vlicms / itab_di_final-i_txmoeda.
itab_di_final-vlafrmm =
itab_di_final-vlafrmm / itab_di_final-i_txmoeda.
.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ENDIF.
ENDIF.
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final.
IF
( itab_di_final-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final-posnr NE itab_det_exp-posnr OR
itab_di_final-nrseq NE itab_det_exp-nrseq OR
itab_di_final-codmat NE itab_det_exp-codmat ) AND
( itab_di_final-codcomp EQ
itab_comp_vinc_final-codcomp AND
itab_di_final-nrdi EQ wa_itab_di_final-nrdi AND
itab_di_final-ebeln EQ wa_itab_di_final-ebeln AND
itab_di_final-ebelp EQ wa_itab_di_final-ebelp AND
itab_di_final-nrseqemb EQ wa_itab_di_final-nrseqemb ).
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
MODIFY itab_di_final.
ENDIF.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONA_DI
PERFORM monta_di.
* << Fim da inclusão
ENDLOOP.
* >> Início da exclusão: FORM SELECIONA_DI
ENDIF.
* << Fim da exclusão
ENDIF.
* >> Início da exclusão: FORM SELECIONA_DI
ENDIF.
ENDLOOP.
* << Fim da exclusão
ENDLOOP.
ENDFORM.
FORM verifica_exit USING p_modulo
p_func
p_exit.
...
...
OCCURS 0 WITH HEADER LINE.
DATA BEGIN OF itab_zycit100_sort OCCURS 0.
INCLUDE STRUCTURE /pws/zycit100.
DATA: matnr LIKE /pws/zycit003-matnr.
DATA: END OF itab_zycit100_sort.
* >> Início da exclusão: FORM SELECIONA_DI3_L
DATA: v_xa LIKE /pws/zycie085-vlfob,
v_xb LIKE /pws/zycie085-vlfob,
v_xc LIKE /pws/zycie085-vlfob,
v_fatx TYPE p DECIMALS 8,
v_faty TYPE p DECIMALS 8,
v_tot_real LIKE /pws/zycie003-vlreal,
v_fatpc LIKE /pws/zycie085-vlfob,
v_advii LIKE /pws/zycie085-vlfob,
v_advipi LIKE /pws/zycie085-vlfob,
v_advicms LIKE /pws/zycie085-vlfob,
v_advpis LIKE /pws/zycie085-vlfob,
v_advcof LIKE /pws/zycie085-vlfob,
v_divisor LIKE /pws/zycie085-vlfob.
* << Fim da exclusão
CLEAR: itab_zycit085,
itab_zycit100,
itab_zycit260,
itab_zycit003,
itab_ekpo ,
...
...
ENDLOOP.
delete itab_cent_ei where werks eq space.
sort itab_cent_ei by werks.
CALL SCREEN '0320' STARTING AT 30 4.
ENDFORM.
* >> Início da inclusão:
FORM comerc_exp.
DATA: itab_vbfa_aux LIKE itab_vbfa OCCURS 0 WITH HEADER LINE,
itab_zycit259_d TYPE /pws/zycit259 OCCURS 0 WITH HEADER LINE.
IF itab_zycit472[] IS INITIAL.
SELECT * FROM /pws/zycit472 INTO TABLE itab_zycit472.
SELECT * FROM /pws/zycit473 INTO TABLE itab_zycit473.
ENDIF.
REFRESH itab_nota_c.
IF NOT itab_zycit281[] IS INITIAL.
SELECT a~docnum a~docdat a~parid a~nfnum a~series b~refkey
b~refitm b~menge b~meins b~netpr b~netwr
b~werks b~cfop b~nbm b~matnr b~itmnum
b~netfre b~netins a~waerk
FROM ( j_1bnfdoc AS a INNER JOIN j_1bnflin AS b ON
a~docnum EQ b~docnum )
INTO TABLE itab_nota_c
FOR ALL ENTRIES IN itab_zycit281
WHERE a~docdat >= p_dtexp1
AND a~docdat <= p_dtexp2
AND a~bukrs EQ /pws/zycie258-bukrs
AND b~matnr EQ itab_zycit281-matnr.
ENDIF.
REFRESH: itab_sel_vbfa, itab_vbfa.
LOOP AT itab_nota_c.
READ TABLE itab_zycit473 WITH KEY kunnr = itab_nota_c-parid.
IF sy-subrc NE 0.
DELETE itab_nota_c WHERE parid EQ itab_nota_c-parid.
CONTINUE.
ENDIF.
READ TABLE itab_zycit472 WITH KEY cfop = itab_nota_c-cfop.
IF sy-subrc NE 0.
DELETE itab_nota_c WHERE cfop EQ itab_nota_c-cfop.
CONTINUE.
ENDIF.
MOVE: itab_nota_c-refkey TO itab_sel_vbfa-vbeln,
itab_nota_c-refitm TO itab_sel_vbfa-posnn.
APPEND itab_sel_vbfa.
ENDLOOP.
REFRESH: itab_vbfa, itab_vbfa_aux.
IF NOT itab_sel_vbfa[] IS INITIAL.
SELECT vbelv vbeln posnn posnv vbtyp_v vbtyp_n
ntgew brgew gewei
FROM vbfa INTO TABLE itab_vbfa_1
FOR ALL ENTRIES IN itab_sel_vbfa
WHERE vbeln EQ itab_sel_vbfa-vbeln
AND posnn EQ itab_sel_vbfa-posnn
AND ( vbtyp_v EQ 'C' OR vbtyp_v EQ 'J' )
AND vbtyp_n EQ 'M'.
ENDIF.
itab_vbfa_aux[] = itab_vbfa_1[].
DELETE itab_vbfa_aux WHERE vbtyp_v EQ 'C'.
REFRESH itab_zycit259_d.
IF NOT itab_vbfa_aux[] IS INITIAL.
SELECT * FROM /pws/zycit259 INTO TABLE itab_zycit259_d
FOR ALL ENTRIES IN itab_vbfa_aux
WHERE nrseqd NE /pws/zycie258-nrseqd
AND vbeln_vf EQ itab_vbfa_aux-vbeln
AND posnr EQ itab_vbfa_aux-posnn.
ENDIF.
LOOP AT itab_zycit259_d.
DELETE itab_nota_c WHERE refkey EQ itab_zycit259_d-vbeln_vf
AND refitm EQ itab_zycit259_d-posnr.
ENDLOOP.
LOOP AT itab_nota_c.
READ TABLE itab_det_exp_final WITH KEY
vbeln_vf = itab_nota_c-refkey
posnr = itab_nota_c-refitm.
IF sy-subrc EQ 0.
CONTINUE.
ENDIF.
CLEAR: itab_det_exp_final.
READ TABLE itab_zycit281 WITH KEY matnr = itab_nota_c-matnr
werks = itab_nota_c-werks.
IF sy-subrc NE 0.
SELECT SINGLE a~wrk02
FROM ( t460a AS a INNER JOIN marc AS b ON
a~werks EQ b~werks AND
a~sobsl EQ b~sobsl AND
a~beskz EQ b~beskz )
INTO itab_nota_c-werks
WHERE b~matnr EQ itab_nota_c-matnr
AND b~werks EQ itab_nota_c-werks
AND a~beskz EQ 'F'.
IF sy-subrc EQ 0.
READ TABLE itab_zycit281 WITH KEY
matnr = itab_nota_c-matnr
werks = itab_nota_c-werks.
IF sy-subrc EQ 0.
MODIFY itab_nota_c TRANSPORTING werks
WHERE matnr EQ itab_nota_c-matnr.
ENDIF.
ENDIF.
ENDIF.
CLEAR: itab_det_exp_final.
READ TABLE itab_vbfa_1 WITH KEY vbeln = itab_nota_c-refkey
posnn = itab_nota_c-refitm
vbtyp_v = 'C'.
IF sy-subrc EQ 0.
MOVE: itab_vbfa_1-vbelv TO itab_det_exp_final-vbeln_va,
itab_vbfa_1-posnv TO itab_det_exp_final-posnr .
ELSE.
CONTINUE.
ENDIF.
READ TABLE itab_vbfa_1 WITH KEY vbeln = itab_nota_c-refkey
posnn = itab_nota_c-refitm
vbtyp_v = 'J'.
IF sy-subrc EQ 0.
MOVE: itab_vbfa_1-vbelv TO itab_det_exp_final-vbeln_vl,
itab_vbfa_1-posnv TO itab_det_exp_final-posnl,
itab_vbfa_1-vbelv TO itab_det_exp_final-fornec ,
itab_vbfa_1-posnv TO itab_det_exp_final-it_fornec ,
itab_vbfa_1-gewei TO itab_det_exp_final-gewei ,
itab_vbfa_1-ntgew TO itab_det_exp_final-ntgew ,
itab_vbfa_1-brgew TO itab_det_exp_final-brgew .
ELSE.
CONTINUE.
ENDIF.
MOVE:
/pws/zycie258-nrseqd TO itab_det_exp_final-nrseqd ,
/pws/zycie258-lifnr TO itab_det_exp_final-lifnr ,
itab_zycit281-werks TO itab_det_exp_final-werks ,
itab_zycit281-stlnr TO itab_det_exp_final-stlnr ,
itab_zycit281-stlal TO itab_det_exp_final-stlal ,
itab_zycit281-stlan TO itab_det_exp_final-stlan ,
itab_nota_c-matnr TO itab_det_exp_final-codmat ,
itab_nota_c-refkey TO itab_det_exp_final-vbeln_vf,
itab_nota_c-werks TO itab_det_exp_final-werks_e ,
itab_nota_c-nbm TO itab_det_exp_final-j_1bnbm ,
itab_nota_c-nfnum TO itab_det_exp_final-nfnum ,
itab_nota_c-series TO itab_det_exp_final-serie ,
itab_nota_c-docdat TO itab_det_exp_final-dtnf ,
itab_nota_c-netfre TO itab_det_exp_final-vlfre ,
itab_nota_c-meins TO itab_det_exp_final-meins ,
itab_nota_c-menge TO itab_det_exp_final-qtd_iten,
itab_nota_c-waers TO itab_det_exp_final-waersfob,
itab_nota_c-netwr TO itab_det_exp_final-vlfob .
PERFORM converte_um_base USING itab_det_exp_final-codmat
CHANGING itab_det_exp_final-meins
itab_det_exp_final-qtd_iten.
itab_det_exp_final-qtd_ncm = itab_det_exp_final-qtd_iten.
itab_det_exp_final-meins_ncm = itab_det_exp_final-meins.
PERFORM converte_um_ncm USING itab_det_exp_final-codmat
CHANGING itab_det_exp_final-meins_ncm
itab_det_exp_final-werks
itab_det_exp_final-qtd_ncm.
PERFORM converter_moeda_exp USING
itab_det_exp_final-vlfob
itab_det_exp_final-waersfob
'USD'
itab_det_exp_final-dtnf
CHANGING
itab_det_exp_final-vlfob.
itab_det_exp_final-waersfob =
itab_det_exp_final-waerscif =
itab_det_exp_final-waersemb = 'USD'.
itab_det_exp_final-vlcif = itab_nota_c-netwr +
itab_nota_c-netfre + itab_nota_c-netins.
APPEND itab_det_exp_final.
ENDLOOP.
ENDFORM.
FORM equip_exp.
DATA: itab_zycit371 TYPE /pws/zycit371 OCCURS 0 WITH HEADER LINE,
itab_zycit373 TYPE /pws/zycit373 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_zycit259_dl OCCURS 0.
DATA: nrseqc TYPE /pws/zycit259-nrseqc,
vbeln_vf TYPE /pws/zycit259-vbeln_vf,
posnr TYPE /pws/zycit259-posnr.
DATA: END OF itab_zycit259_dl.
REFRESH itab_zycit281.
SELECT * FROM /pws/zycit281 INTO TABLE itab_zycit281
WHERE matnr IN p_matnr.
IF NOT itab_zycit281[] IS INITIAL.
SELECT * FROM /pws/zycit373 INTO TABLE itab_zycit373
FOR ALL ENTRIES IN itab_zycit281
WHERE dtnf >= p_dtexp1
AND dtnf <= p_dtexp2
AND matnr EQ itab_zycit281-matnr.
ELSE.
EXIT.
ENDIF.
REFRESH itab_zycit259_dl.
IF NOT itab_zycit373[] IS INITIAL.
SELECT nrseqc vbeln_vf posnr FROM /pws/zycit259
INTO TABLE itab_zycit259_dl
FOR ALL ENTRIES IN itab_zycit373
WHERE nrseqc EQ itab_zycit373-nrseq
AND vbeln_vf EQ itab_zycit373-doc_fat
AND posnr EQ itab_zycit373-it_docfat.
LOOP AT itab_zycit259_dl.
DELETE itab_zycit373
WHERE nrseq EQ itab_zycit259_dl-nrseqc
AND doc_fat EQ itab_zycit259_dl-vbeln_vf
AND it_docfat EQ itab_zycit259_dl-posnr.
ENDLOOP.
ENDIF.
IF NOT itab_zycit373[] IS INITIAL.
SELECT * FROM /pws/zycit371 INTO TABLE itab_zycit371
FOR ALL ENTRIES IN itab_zycit373
WHERE nrseqd EQ itab_zycit373-nrseq
AND r_venda EQ 'X'.
SELECT a~docnum a~docdat a~parid a~nfnum a~series b~refkey
b~refitm b~menge b~meins b~netpr b~netwr
b~werks b~cfop b~nbm b~matnr b~itmnum
b~netfre b~netins a~waerk
FROM ( j_1bnfdoc AS a INNER JOIN j_1bnflin AS b ON
a~docnum EQ b~docnum )
INTO TABLE itab_nota_c
FOR ALL ENTRIES IN itab_zycit373
WHERE a~docnum = itab_zycit373-docnum
AND b~itmnum <= itab_zycit373-itmnum.
SELECT * FROM mara INTO TABLE itab_mara
FOR ALL ENTRIES IN itab_zycit373
WHERE matnr EQ itab_zycit373-matnr.
ENDIF.
LOOP AT itab_zycit373.
CLEAR: itab_zycit371, itab_nota_c, itab_mara.
READ TABLE itab_zycit371 WITH KEY nrseqd = itab_zycit373-nrseq.
IF sy-subrc NE 0.
CONTINUE.
ENDIF.
READ TABLE itab_nota_c WITH KEY docnum = itab_zycit373-docnum
itmnum = itab_zycit373-itmnum.
READ TABLE itab_mara WITH KEY matnr = itab_zycit373-matnr.
CLEAR: itab_det_exp_final.
MOVE: itab_zycit373-nrseq TO itab_det_exp_final-nrseqc ,
itab_zycit371-nrre TO itab_det_exp_final-nrre ,
itab_zycit373-doc_ven TO itab_det_exp_final-vbeln_va ,
itab_zycit373-it_docven TO itab_det_exp_final-posnr ,
itab_zycit373-fornec TO itab_det_exp_final-vbeln_vl ,
itab_zycit373-it_fornec TO itab_det_exp_final-posnl ,
itab_zycit373-fornec TO itab_det_exp_final-fornec ,
itab_zycit373-it_fornec TO itab_det_exp_final-it_fornec ,
itab_mara-gewei TO itab_det_exp_final-gewei ,
/pws/zycie258-nrseqd TO itab_det_exp_final-nrseqd ,
/pws/zycie258-lifnr TO itab_det_exp_final-lifnr ,
itab_zycit281-werks TO itab_det_exp_final-werks ,
itab_zycit281-stlnr TO itab_det_exp_final-stlnr ,
itab_zycit281-stlal TO itab_det_exp_final-stlal ,
itab_zycit281-stlan TO itab_det_exp_final-stlan ,
itab_nota_c-matnr TO itab_det_exp_final-codmat ,
itab_zycit373-doc_fat TO itab_det_exp_final-vbeln_vf ,
itab_nota_c-werks TO itab_det_exp_final-werks_e ,
itab_nota_c-nbm TO itab_det_exp_final-j_1bnbm ,
itab_nota_c-nfnum TO itab_det_exp_final-nfnum ,
itab_nota_c-series TO itab_det_exp_final-serie ,
itab_nota_c-docdat TO itab_det_exp_final-dtnf ,
itab_nota_c-meins TO itab_det_exp_final-meins ,
itab_zycit373-qtd_apro TO itab_det_exp_final-qtd_iten ,
itab_nota_c-waers TO itab_det_exp_final-waersfob ,
itab_nota_c-waers TO itab_det_exp_final-waerscif ,
itab_nota_c-waers TO itab_det_exp_final-waersemb .
itab_det_exp_final-vlfob =
( itab_zycit373-qtd_apro / itab_zycit373-qtd_iten )
* itab_nota_c-netwr .
itab_det_exp_final-vlfre =
( itab_zycit373-qtd_apro / itab_zycit373-qtd_iten )
* itab_nota_c-netfre .
PERFORM converter_moeda_exp USING
itab_det_exp_final-vlfob
itab_det_exp_final-waersfob
'USD'
itab_det_exp_final-dtnf
CHANGING
itab_det_exp_final-vlfob.
itab_det_exp_final-waersfob =
itab_det_exp_final-waerscif =
itab_det_exp_final-waersemb = 'USD'.
PERFORM converte_um_base USING itab_det_exp_final-codmat
CHANGING itab_det_exp_final-meins
itab_det_exp_final-qtd_iten.
itab_det_exp_final-qtd_ncm = itab_det_exp_final-qtd_iten.
itab_det_exp_final-meins_ncm = itab_det_exp_final-meins.
PERFORM converte_um_ncm USING itab_det_exp_final-codmat
CHANGING itab_det_exp_final-meins_ncm
itab_det_exp_final-werks
itab_det_exp_final-qtd_ncm.
itab_det_exp_final-ntgew = itab_det_exp_final-qtd_iten
* itab_mara-ntgew.
itab_det_exp_final-brgew = itab_det_exp_final-qtd_iten
* itab_mara-brgew.
itab_det_exp_final-vlcif = ( itab_nota_c-netwr +
itab_nota_c-netfre + itab_nota_c-netins )
* ( itab_zycit373-qtd_apro / itab_zycit373-qtd_iten ).
APPEND itab_det_exp_final.
ENDLOOP.
ENDFORM.
FORM monta_dis3.
REFRESH itab_di_final_aux.
itab_di_final_aux[] = itab_di_final[].
CLEAR itab_zycit085.
READ TABLE itab_zycit085 WITH KEY
nrseqdi = itab_zycit100_sort-nrseqdi.
CHECK sy-subrc EQ 0 AND
itab_zycit085-dtuserc >= v_dtini AND
itab_zycit085-dtuserc <= v_dtfim.
IF /pws/zycbt007-bukrs NE itab_zycit085-bukrs.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ itab_zycit085-bukrs.
ENDIF.
READ TABLE itab_ekpo WITH KEY
ebeln = itab_zycit100_sort-ebeln
ebelp = itab_zycit100_sort-ebelp.
READ TABLE itab_zycit100 WITH KEY
nrseq = itab_zycit100_sort-nrseq
ebeln = itab_zycit100_sort-ebeln
ebelp = itab_zycit100_sort-ebelp.
CLEAR itab_zycit001.
READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit100-nrseq.
IF sy-subrc EQ 0.
CLEAR itab_zycit003.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit100-nrseq
ebeln = itab_zycit100-ebeln
ebelp = itab_zycit100-ebelp.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ELSE.
EXIT.
ENDIF.
v_vlreali = itab_zycit003-qtd_iten.
READ TABLE itab_mess_un WITH KEY meins =
itab_zycit003-meins
matnr = itab_zycit003-matnr.
IF sy-subrc EQ 0.
EXIT.
ENDIF.
PERFORM converte_um_base USING itab_zycit003-matnr
CHANGING itab_zycit003-meins
itab_zycit003-qtd_iten.
IF itab_zycit003-qtd_iten <= 0.
itab_mess_un-meins = itab_det_exp_final-meins.
itab_mess_un-matnr = itab_det_exp_final-codmat.
APPEND itab_mess_un.
EXIT.
ENDIF.
MOVE: itab_zycit003-meins TO itab_di_final-meins ,
itab_zycit003-qtd_iten TO itab_di_final-qtd_di .
PERFORM converte_um_ncm USING itab_zycit003-matnr
CHANGING itab_di_final-meins
/pws/zycie258-werks
itab_di_final-qtd_di.
IF itab_di_final-qtd_di IS INITIAL.
EXIT.
ENDIF.
v_fator_conv = v_vlreali / itab_zycit003-qtd_iten.
CLEAR: v_advii, v_advicms, v_advipi, v_advpis, v_advcof, v_xa, v_xb,
v_fatx, v_faty.
v_advii = ( itab_zycit003-advalii / 100 ).
v_advipi = ( itab_zycit003-advalipi / 100 ).
IF NOT itab_zycit003-basred IS INITIAL.
v_advicms = ( ( itab_zycit003-advalicms / 100 ) *
( itab_zycit003-basred / 100 ) ) .
ELSE.
v_advicms = ( itab_zycit003-advalicms / 100 ).
ENDIF.
v_advpis = ( itab_zycit100-advalpis / 100 ).
v_advcof = ( itab_zycit100-advalcofins / 100 ).
v_xb = ( 1 - v_advpis - v_advcof - v_advicms ) .
v_xa = 1 + v_advicms * ( v_advii + v_advipi * ( 1 + v_advii ) ) .
v_fatx = v_xa / v_xb.
v_faty = v_advicms / v_xb.
READ TABLE itab_zycit433 WITH KEY matnr = itab_zycit100_sort-matnr.
CLEAR itab_di_final_aux.
READ TABLE itab_di_final_aux WITH KEY
nrseqre = itab_comp_vinc_final-nrseqre
nrseq = itab_comp_vinc_final-nrseq
codmat = itab_comp_vinc_final-codmat
vbeln_va = itab_comp_vinc_final-vbeln_va
vbeln_vf = itab_comp_vinc_final-vbeln_vf
posnr = itab_comp_vinc_final-posnr
nrdi = itab_zycit085-nrseqdi
nrseqemb = itab_zycit100-nrseq
ebeln = itab_ekpo-ebeln
ebelp = itab_ekpo-ebelp.
IF sy-subrc NE 0 AND
itab_zycit003-qtd_iten > 0.
READ TABLE itab_di_final_aux WITH KEY
nrdi = itab_zycit085-nrseqdi
nrseqemb = itab_zycit100-nrseq
ebeln = itab_ekpo-ebeln
ebelp = itab_ekpo-ebelp.
IF sy-subrc NE 0.
CLEAR itab_di_final.
MOVE:
/pws/zycie258-nrseqd TO itab_di_final-nrseqd ,
itab_zycit100_sort-matnr TO itab_di_final-codcomp ,
itab_zycit100_sort-grupo TO itab_di_final-grupo ,
itab_zycit433-desc_g TO itab_di_final-desc_g ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit085-nrseqdi TO itab_di_final-nrdi ,
itab_zycit085-nrdi TO itab_di_final-reg_di ,
itab_zycit085-dtuserc TO itab_di_final-dtdi ,
itab_zycit100-nrseq TO itab_di_final-nrseqemb ,
itab_zycit100-adicao TO itab_di_final-adicao ,
itab_ekpo-ebeln TO itab_di_final-ebeln ,
itab_ekpo-ebelp TO itab_di_final-ebelp ,
itab_zycit003-meins TO itab_di_final-meins ,
itab_zycit003-qtd_iten TO itab_di_final-qtd_di ,
itab_zycit003-qtd_iten TO itab_di_final-sdo_qtd ,
itab_zycit003-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit085-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit003-gewei TO itab_di_final-gewei ,
itab_zycit003-werks TO itab_di_final-werks ,
itab_zycit003-ntgew TO itab_di_final-ntgew ,
itab_zycit003-waers TO itab_di_final-waers ,
itab_zycit003-netpr TO itab_di_final-netpr ,
itab_zycit003-advalii TO itab_di_final-i_txii ,
itab_zycit100-advalpis TO itab_di_final-pis ,
itab_zycit100-advalcofins TO itab_di_final-cofins ,
itab_zycit003-advalipi TO itab_di_final-i_txipi ,
itab_zycit003-advalicms TO itab_di_final-i_txicms ,
itab_zycit003-waers_real TO itab_di_final-i_waerscifme,
itab_zycit100-dttaxbem TO itab_di_final-i_txmoeda ,
itab_zycit100-waersreal TO itab_di_final-i_waerscifmi,
itab_zycit100-waersreal TO itab_di_final-waersimp ,
itab_zycit003-vlreal TO itab_di_final-vlreal ,
itab_zycit100-vlfre TO itab_di_final-vlfrete ,
itab_zycit100-vlseg TO itab_di_final-vlseg .
SELECT SINGLE *
FROM mara INTO mara
WHERE matnr = itab_di_final-codmat.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.
IF itab_zycit001-inco1 EQ 'FOB'.
itab_di_final-valor_u = itab_zycit003-vlreal.
ELSEIF itab_zycit001-inco1 EQ 'CFR'.
itab_di_final-valor_u = ( itab_zycit003-vlreal +
itab_zycit003-vlfre_fat ) - itab_zycit100-vlfre.
ELSEIF itab_zycit001-inco1 EQ 'CIF'.
itab_di_final-valor_u = ( ( itab_zycit003-vlreal +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ) -
itab_zycit100-vlfre ) - itab_zycit100-vlseg.
ELSE.
itab_di_final-valor_u = itab_zycit003-vlreal.
ENDIF.
itab_di_final-valor_u = itab_di_final-valor_u * v_fator_conv.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfrete.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlseg.
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit003-qtd_iten.
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit003-qtd_iten.
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
LOOP AT itab_zycit260
WHERE
nrdi = itab_zycit085-nrseqdi
AND nrseqemb = itab_zycit100-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_zycit260-qtd_vinc.
ENDLOOP.
IF itab_di_final-sdo_qtd <= 0.
CLEAR itab_di_final.
EXIT.
ENDIF.
CLEAR wa_itab_di_final.
IF itab_comp_vinc_final-qtd_stotal > 0 AND
itab_di_final-sdo_qtd > 0.
IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.
IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_di.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-qtd_di.
ELSE.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
itab_di_final-vlcofins =
v_perc_vinc * itab_zycit100-vlcofins.
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc * itab_zycit100-vlii.
itab_di_final-i_vlipi =
v_perc_vinc * itab_zycit100-vlipi.
itab_di_final-i_vlicms =
v_perc_vinc * itab_zycit100-vlicms.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlpis.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlcofins.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlii.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp
AND grupo = itab_comp_vinc_final-grupo.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ELSE.
IF itab_comp_vinc_final-qtd_stotal <
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_comp_vinc_final-qtd_stotal.
ELSE.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
itab_di_final-vlcofins =
v_perc_vinc * itab_zycit100-vlcofins.
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc * itab_zycit100-vlii.
itab_di_final-i_vlipi =
v_perc_vinc * itab_zycit100-vlipi.
itab_di_final-i_vlicms =
v_perc_vinc * itab_zycit100-vlicms.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlpis.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlcofins.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlii.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp
AND grupo = itab_comp_vinc_final-grupo .
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ENDIF.
ENDIF.
CLEAR v_found.
LOOP AT itab_zycit044 WHERE nrseq = itab_zycit001-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
CLEAR itab_zycit043.
READ TABLE itab_zycit043 WITH KEY
nrseq = itab_zycit044-nrseqnf
nfglobal = itab_zycit044-nfglobal
nfremessa = itab_zycit044-nfremessa.
IF sy-subrc EQ 0.
MOVE: itab_zycit043-nfnum TO itab_di_final-nfnum,
itab_zycit043-series TO itab_di_final-serie,
itab_zycit043-dtincl TO itab_di_final-dtnf .
v_found = 'S'.
EXIT.
ENDIF.
ENDLOOP.
IF v_found NE 'S'.
LOOP AT itab_zycit042 WHERE nrseq = itab_zycit001-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
CLEAR itab_zycit041.
READ TABLE itab_zycit041 WITH KEY
nrseq = itab_zycit042-nrseqnf
nfglobal = itab_zycit042-nfglobal.
IF sy-subrc EQ 0.
MOVE: itab_zycit041-nfnum TO itab_di_final-nfnum,
itab_zycit041-series TO itab_di_final-serie,
itab_zycit041-dtincl TO itab_di_final-dtnf .
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final WHERE
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
nrdi EQ wa_itab_di_final-nrdi AND
ebeln EQ wa_itab_di_final-ebeln AND
ebelp EQ wa_itab_di_final-ebelp AND
nrseqemb EQ wa_itab_di_final-nrseqemb .
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
MODIFY itab_di_final.
ENDLOOP.
ENDIF.
ELSE.
CLEAR itab_di_final.
MOVE:
/pws/zycie258-nrseqd TO itab_di_final-nrseqd ,
itab_zycit100_sort-matnr TO itab_di_final-codcomp ,
itab_zycit100_sort-grupo TO itab_di_final-grupo ,
itab_zycit433-desc_g TO itab_di_final-desc_g ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit085-nrseqdi TO itab_di_final-nrdi ,
itab_zycit085-nrdi TO itab_di_final-reg_di ,
itab_zycit085-dtuserc TO itab_di_final-dtdi ,
itab_zycit100-nrseq TO itab_di_final-nrseqemb ,
itab_zycit100-adicao TO itab_di_final-adicao ,
itab_ekpo-ebeln TO itab_di_final-ebeln ,
itab_ekpo-ebelp TO itab_di_final-ebelp ,
itab_zycit003-meins TO itab_di_final-meins ,
itab_zycit003-qtd_iten TO itab_di_final-qtd_di ,
itab_di_final_aux-sdo_qtd TO itab_di_final-sdo_qtd ,
itab_zycit003-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit085-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit003-gewei TO itab_di_final-gewei ,
itab_zycit003-ntgew TO itab_di_final-ntgew ,
itab_zycit003-werks TO itab_di_final-werks ,
itab_zycit003-waers TO itab_di_final-waers ,
itab_zycit003-netpr TO itab_di_final-netpr ,
itab_zycit100-advalpis TO itab_di_final-pis ,
itab_zycit100-advalcofins TO itab_di_final-cofins ,
itab_zycit003-advalii TO itab_di_final-i_txii ,
itab_zycit003-advalipi TO itab_di_final-i_txipi ,
itab_zycit003-advalicms TO itab_di_final-i_txicms ,
itab_zycit003-waers_real TO itab_di_final-i_waerscifme,
itab_zycit100-dttaxbem TO itab_di_final-i_txmoeda ,
itab_zycit100-waersreal TO itab_di_final-i_waerscifmi,
itab_zycit100-waersreal TO itab_di_final-waersimp ,
itab_zycit003-vlreal TO itab_di_final-vlreal ,
itab_zycit100-vlfre TO itab_di_final-vlfrete ,
itab_zycit100-vlseg TO itab_di_final-vlseg .
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
IF itab_zycit001-inco1 EQ 'FOB'.
itab_di_final-valor_u = itab_zycit003-vlreal.
ELSEIF itab_zycit001-inco1 EQ 'CFR'.
itab_di_final-valor_u = ( itab_zycit003-vlreal +
itab_zycit003-vlfre_fat ) - itab_zycit100-vlfre.
ELSEIF itab_zycit001-inco1 EQ 'CIF'.
itab_di_final-valor_u = ( ( itab_zycit003-vlreal +
itab_zycit003-vlfre_fat + itab_zycit003-vlseg_fat ) -
itab_zycit100-vlfre ) - itab_zycit100-vlseg.
ELSE.
itab_di_final-valor_u = itab_zycit003-vlreal.
ENDIF.
itab_di_final-valor_u = itab_di_final-valor_u * v_fator_conv.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfrete.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlseg.
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit003-qtd_iten.
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit003-qtd_iten.
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
CLEAR wa_itab_di_final.
IF itab_comp_vinc_final-qtd_stotal > 0 AND
itab_di_final-sdo_qtd > 0.
IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.
IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_di.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-qtd_di.
ELSE.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
ENDIF.
SELECT SINGLE *
FROM mara INTO mara
WHERE matnr = itab_di_final-codmat.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
itab_di_final-vlcofins =
v_perc_vinc * itab_zycit100-vlcofins.
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc * itab_zycit100-vlii.
itab_di_final-i_vlipi =
v_perc_vinc * itab_zycit100-vlipi.
itab_di_final-i_vlicms =
v_perc_vinc * itab_zycit100-vlicms.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlpis.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlcofins.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlii.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp
AND grupo = itab_comp_vinc_final-grupo.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ELSE.
IF itab_comp_vinc_final-qtd_stotal <
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_comp_vinc_final-qtd_stotal.
ELSE.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc * itab_zycit100-vlpis.
itab_di_final-vlcofins =
v_perc_vinc * itab_zycit100-vlcofins.
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc * itab_zycit100-vlii.
itab_di_final-i_vlipi =
v_perc_vinc * itab_zycit100-vlipi.
itab_di_final-i_vlicms =
v_perc_vinc * itab_zycit100-vlicms.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlpis.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlcofins.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlii.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlipi.
PERFORM valor_converte_imp USING /pws/zycbt007-waersb
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-i_vlicms.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp
AND grupo = itab_comp_vinc_final-grupo.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ENDIF.
ENDIF.
CLEAR v_found.
LOOP AT itab_zycit044 WHERE nrseq = itab_zycit001-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
CLEAR itab_zycit043.
READ TABLE itab_zycit043 WITH KEY
nrseq = itab_zycit044-nrseqnf
nfglobal = itab_zycit044-nfglobal
nfremessa = itab_zycit044-nfremessa.
IF sy-subrc EQ 0.
MOVE: itab_zycit043-nfnum TO itab_di_final-nfnum,
itab_zycit043-series TO itab_di_final-serie,
itab_zycit043-dtincl TO itab_di_final-dtnf .
v_found = 'S'.
EXIT.
ENDIF.
ENDLOOP.
IF v_found NE 'S'.
LOOP AT itab_zycit042 WHERE nrseq = itab_zycit001-nrseq
AND ebeln = itab_ekpo-ebeln
AND ebelp = itab_ekpo-ebelp.
CLEAR itab_zycit041.
READ TABLE itab_zycit041 WITH KEY
nrseq = itab_zycit042-nrseqnf
nfglobal = itab_zycit042-nfglobal.
IF sy-subrc EQ 0.
MOVE: itab_zycit041-nfnum TO itab_di_final-nfnum,
itab_zycit041-series TO itab_di_final-serie,
itab_zycit041-dtincl TO itab_di_final-dtnf .
EXIT.
ENDIF.
ENDLOOP.
ENDIF.
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final WHERE
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
nrdi EQ wa_itab_di_final-nrdi AND
ebeln EQ wa_itab_di_final-ebeln AND
ebelp EQ wa_itab_di_final-ebelp AND
nrseqemb EQ wa_itab_di_final-nrseqemb .
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
MODIFY itab_di_final.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
FORM monta_di.
IF NOT itab_zycit279-nrseqd IS INITIAL.
READ TABLE itab_zycit244 WITH KEY
nrseqd = itab_zycit279-nrseqd.
IF sy-subrc NE 0.
EXIT.
ENDIF.
ENDIF.
REFRESH itab_di_final_aux.
itab_di_final_aux[] = itab_di_final[].
CHECK itab_zycit279-dtdi >= v_dtini AND
itab_zycit279-dtdi <= v_dtfim.
MOVE: itab_zycit279-meins TO itab_di_final-meins ,
itab_zycit279-menge TO itab_di_final-qtd_di .
IF itab_di_final-qtd_di IS INITIAL.
EXIT.
ENDIF.
READ TABLE itab_zycit433 WITH KEY matnr = itab_zycit279-matnr.
CLEAR itab_di_final_aux.
READ TABLE itab_di_final_aux WITH KEY
nrseqre = itab_comp_vinc_final-nrseqre
nrseq = itab_comp_vinc_final-nrseq
codmat = itab_comp_vinc_final-codmat
vbeln_va = itab_comp_vinc_final-vbeln_va
vbeln_vf = itab_comp_vinc_final-vbeln_vf
posnr = itab_comp_vinc_final-posnr
docnum = itab_zycit279-docnum
ebeln = itab_zycit279-ebeln
ebelp = itab_zycit279-ebelp.
IF sy-subrc NE 0 AND
itab_zycit279-menge > 0.
READ TABLE itab_di_final_aux WITH KEY
docnum = itab_zycit279-docnum
ebeln = itab_zycit279-ebeln
ebelp = itab_zycit279-ebelp.
IF sy-subrc NE 0.
CLEAR itab_di_final.
MOVE:
/pws/zycie258-nrseqd TO itab_di_final-nrseqd ,
itab_zycit279-matnr TO itab_di_final-codcomp ,
itab_zycit279-grupo TO itab_di_final-grupo ,
itab_zycit433-desc_g TO itab_di_final-desc_g ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit279-nrseqdi TO itab_di_final-nrdi ,
itab_zycit279-nrdi TO itab_di_final-reg_di ,
itab_zycit279-dtdi TO itab_di_final-dtdi ,
itab_zycit279-nrseq TO itab_di_final-nrseqemb ,
itab_zycit279-adicao TO itab_di_final-adicao ,
itab_zycit279-docnum TO itab_di_final-docnum ,
itab_zycit279-ebeln TO itab_di_final-ebeln ,
itab_zycit279-ebelp TO itab_di_final-ebelp ,
itab_zycit279-meins TO itab_di_final-meins ,
itab_zycit279-menge TO itab_di_final-qtd_di ,
itab_zycit279-nfnum TO itab_di_final-nfnum ,
itab_zycit279-serie TO itab_di_final-serie ,
itab_zycit279-dtnf TO itab_di_final-dtnf ,
itab_zycit279-menge TO itab_di_final-sdo_qtd ,
itab_zycit279-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit279-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit279-gewei TO itab_di_final-gewei ,
itab_zycit279-ntgew TO itab_di_final-ntgew ,
itab_zycit279-waers TO itab_di_final-waers ,
itab_zycit279-netpr TO itab_di_final-netpr ,
itab_zycit279-i_txii TO itab_di_final-i_txii ,
itab_zycit279-pis TO itab_di_final-pis ,
itab_zycit279-cofins TO itab_di_final-cofins ,
itab_zycit279-i_txipi TO itab_di_final-i_txipi ,
itab_zycit279-i_txicms TO itab_di_final-i_txicms ,
itab_zycit279-waers TO itab_di_final-i_waerscifme,
itab_zycit279-i_txmoeda TO itab_di_final-i_txmoeda ,
itab_zycit279-waers TO itab_di_final-i_waerscifmi,
itab_zycit279-waers TO itab_di_final-waersimp ,
itab_zycit279-vltot TO itab_di_final-vlreal ,
itab_zycit279-vlfrete TO itab_di_final-vlfrete ,
itab_zycit279-vlseg TO itab_di_final-vlseg .
SELECT SINGLE *
FROM mara INTO mara
WHERE matnr = itab_di_final-codmat.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.
itab_di_final-valor_u = itab_zycit279-vltot /
itab_zycit279-qtd_ncm.
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit279-qtd_ncm.
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit279-qtd_ncm.
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
LOOP AT itab_zycit260
WHERE
docnum = itab_zycit279-docnum
AND ebeln = itab_zycit279-ebeln
AND ebelp = itab_zycit279-ebelp.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_zycit260-qtd_vinc.
ENDLOOP.
IF itab_di_final-sdo_qtd <= 0.
CLEAR itab_di_final.
EXIT.
ENDIF.
CLEAR wa_itab_di_final.
IF itab_comp_vinc_final-qtd_stotal > 0 AND
itab_di_final-sdo_qtd > 0.
IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.
IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_di.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-qtd_di.
ELSE.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
itab_di_final-vlcofins =
v_perc_vinc *
( itab_zycit279-basecofins *
( itab_zycit279-cofins / 100 ) ).
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc *
( itab_zycit279-baseii *
( itab_zycit279-i_txii / 100 ) ).
itab_di_final-i_vlipi =
v_perc_vinc *
( itab_zycit279-baseipi *
( itab_zycit279-i_txipi / 100 ) ).
itab_di_final-i_vlicms =
v_perc_vinc *
( itab_zycit279-baseicms *
( itab_zycit279-i_txicms / 100 ) ).
itab_di_final-vlpis =
itab_di_final-vlpis / itab_di_final-i_txmoeda.
itab_di_final-i_vlii =
itab_di_final-i_vlii / itab_di_final-i_txmoeda.
itab_di_final-i_vlipi =
itab_di_final-i_vlipi / itab_di_final-i_txmoeda.
itab_di_final-vlcofins =
itab_di_final-vlcofins / itab_di_final-i_txmoeda.
itab_di_final-i_vlicms =
itab_di_final-i_vlicms / itab_di_final-i_txmoeda.
itab_di_final-vlafrmm =
itab_di_final-vlafrmm / itab_di_final-i_txmoeda.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp
AND grupo = itab_comp_vinc_final-grupo.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ELSE.
IF itab_comp_vinc_final-qtd_stotal <
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_comp_vinc_final-qtd_stotal.
ELSE.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
itab_di_final-vlcofins =
v_perc_vinc *
( itab_zycit279-basecofins *
( itab_zycit279-cofins / 100 ) ).
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc *
( itab_zycit279-baseii *
( itab_zycit279-i_txii / 100 ) ).
itab_di_final-i_vlipi =
v_perc_vinc *
( itab_zycit279-baseipi *
( itab_zycit279-i_txipi / 100 ) ).
itab_di_final-i_vlicms =
v_perc_vinc *
( itab_zycit279-baseicms *
( itab_zycit279-i_txicms / 100 ) ).
itab_di_final-vlpis =
itab_di_final-vlpis / itab_di_final-i_txmoeda.
itab_di_final-i_vlii =
itab_di_final-i_vlii / itab_di_final-i_txmoeda.
itab_di_final-i_vlipi =
itab_di_final-i_vlipi / itab_di_final-i_txmoeda.
itab_di_final-vlcofins =
itab_di_final-vlcofins / itab_di_final-i_txmoeda.
itab_di_final-i_vlicms =
itab_di_final-i_vlicms / itab_di_final-i_txmoeda.
itab_di_final-vlafrmm =
itab_di_final-vlafrmm / itab_di_final-i_txmoeda.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp
AND grupo = itab_comp_vinc_final-grupo.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ENDIF.
ENDIF.
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final WHERE
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
docnum EQ wa_itab_di_final-docnum AND
ebeln EQ wa_itab_di_final-ebeln AND
ebelp EQ wa_itab_di_final-ebelp .
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
MODIFY itab_di_final.
ENDLOOP.
ENDIF.
ELSE.
CLEAR itab_di_final.
MOVE:
/pws/zycie258-nrseqd TO itab_di_final-nrseqd ,
itab_zycit279-matnr TO itab_di_final-codcomp ,
itab_zycit279-grupo TO itab_di_final-grupo ,
itab_zycit433-desc_g TO itab_di_final-desc_g ,
itab_comp_vinc_final-codmat TO itab_di_final-codmat ,
itab_comp_vinc_final-nrseqre TO itab_di_final-nrseqre ,
itab_comp_vinc_final-nrseq TO itab_di_final-nrseq ,
itab_comp_vinc_final-vbeln_va TO itab_di_final-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO itab_di_final-vbeln_vf ,
itab_comp_vinc_final-posnr TO itab_di_final-posnr ,
itab_zycit279-nrseqdi TO itab_di_final-nrdi ,
itab_zycit279-nrdi TO itab_di_final-reg_di ,
itab_zycit279-dtdi TO itab_di_final-dtdi ,
itab_zycit279-nrseq TO itab_di_final-nrseqemb ,
itab_zycit279-adicao TO itab_di_final-adicao ,
itab_zycit279-docnum TO itab_di_final-docnum ,
itab_zycit279-ebeln TO itab_di_final-ebeln ,
itab_zycit279-ebelp TO itab_di_final-ebelp ,
itab_zycit279-meins TO itab_di_final-meins ,
itab_zycit279-menge TO itab_di_final-qtd_di ,
itab_di_final_aux-sdo_qtd TO itab_di_final-sdo_qtd ,
itab_zycit279-j_1bnbm TO itab_di_final-j_1bnbm ,
itab_zycit279-dtdesemb TO itab_di_final-dtdesemb ,
itab_zycit279-gewei TO itab_di_final-gewei ,
itab_zycit279-ntgew TO itab_di_final-ntgew ,
itab_zycit279-waers TO itab_di_final-waers ,
itab_zycit279-netpr TO itab_di_final-netpr ,
itab_zycit279-nfnum TO itab_di_final-nfnum ,
itab_zycit279-serie TO itab_di_final-serie ,
itab_zycit279-dtnf TO itab_di_final-dtnf ,
itab_zycit279-i_txii TO itab_di_final-i_txii ,
itab_zycit279-pis TO itab_di_final-pis ,
itab_zycit279-cofins TO itab_di_final-cofins ,
itab_zycit279-i_txipi TO itab_di_final-i_txipi ,
itab_zycit279-i_txicms TO itab_di_final-i_txicms ,
itab_zycit279-waers TO itab_di_final-i_waerscifme,
itab_zycit279-i_txmoeda TO itab_di_final-i_txmoeda ,
itab_zycit279-waers TO itab_di_final-i_waerscifmi,
itab_zycit279-waers TO itab_di_final-waersimp ,
itab_zycit279-vltot TO itab_di_final-vlreal ,
itab_zycit279-vlfrete TO itab_di_final-vlfrete ,
itab_zycit279-vlseg TO itab_di_final-vlseg .
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-valor_u = itab_zycit279-vltot /
itab_zycit279-qtd_ncm.
itab_di_final-vlfrete = itab_di_final-vlfrete /
itab_zycit279-menge.
itab_di_final-vlseg = itab_di_final-vlseg /
itab_zycit279-menge.
CHECK itab_di_final-valor_u > 0.
itab_di_final-i_vlcif_me = itab_di_final-valor_u.
itab_di_final-i_vlcif_mi =
itab_di_final-i_vlcif_me * itab_di_final-i_txmoeda.
CLEAR wa_itab_di_final.
IF itab_comp_vinc_final-qtd_stotal > 0 AND
itab_di_final-sdo_qtd > 0.
IF itab_di_final-qtd_di <= itab_comp_vinc_final-qtd_stotal.
IF itab_di_final-qtd_di = itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_di.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-qtd_di.
ELSE.
itab_di_final-qtd_vinc =
itab_di_final-qtd_vinc + itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-sdo_qtd.
ENDIF.
SELECT SINGLE *
FROM mara INTO mara
WHERE matnr = itab_di_final-codmat.
itab_di_final-gewei = mara-gewei.
itab_di_final-ntgew = itab_di_final-ntgew * v_fator_conv.
itab_di_final-brgew = itab_di_final-brgew * v_fator_conv.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
itab_di_final-vlcofins =
v_perc_vinc *
( itab_zycit279-basecofins *
( itab_zycit279-cofins / 100 ) ).
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc *
( itab_zycit279-baseii *
( itab_zycit279-i_txii / 100 ) ).
itab_di_final-i_vlipi =
v_perc_vinc *
( itab_zycit279-baseipi *
( itab_zycit279-i_txipi / 100 ) ).
itab_di_final-i_vlicms =
v_perc_vinc *
( itab_zycit279-baseicms *
( itab_zycit279-i_txicms / 100 ) ).
itab_di_final-vlpis =
itab_di_final-vlpis / itab_di_final-i_txmoeda.
itab_di_final-i_vlii =
itab_di_final-i_vlii / itab_di_final-i_txmoeda.
itab_di_final-i_vlipi =
itab_di_final-i_vlipi / itab_di_final-i_txmoeda.
itab_di_final-vlcofins =
itab_di_final-vlcofins / itab_di_final-i_txmoeda.
itab_di_final-i_vlicms =
itab_di_final-i_vlicms / itab_di_final-i_txmoeda.
itab_di_final-vlafrmm =
itab_di_final-vlafrmm / itab_di_final-i_txmoeda.
.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp
AND grupo = itab_comp_vinc_final-grupo.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ELSE.
IF itab_comp_vinc_final-qtd_stotal <
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd = itab_di_final-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_comp_vinc_final-qtd_stotal.
ELSE.
itab_di_final-qtd_vinc = itab_di_final-qtd_vinc +
itab_di_final-sdo_qtd.
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di_final-qtd_vinc.
ENDIF.
itab_di_final-vlfrete_t = itab_di_final-vlfrete *
itab_di_final-qtd_vinc.
itab_di_final-vlseg_t = itab_di_final-vlseg *
itab_di_final-qtd_vinc.
itab_di_final-vlfob_t = itab_di_final-valor_u *
itab_di_final-qtd_vinc.
itab_di_final-vlfob = itab_di_final-vlfob_t.
PERFORM valor_converte_imp USING itab_zycit085-waersfob
'USD'
itab_zycit085-dttax
CHANGING itab_di_final-vlfob.
itab_di_final-i_vlcifn_mi =
( itab_di_final-vlfob_t * itab_di_final-i_txmoeda ).
v_perc_vinc =
itab_di_final-qtd_vinc / itab_di_final-qtd_di.
itab_di_final-vlpis =
v_perc_vinc *
( itab_zycit279-basepis *
( itab_zycit279-pis / 100 ) ).
itab_di_final-vlcofins =
v_perc_vinc *
( itab_zycit279-basecofins *
( itab_zycit279-cofins / 100 ) ).
itab_di_final-vlafrmm = itab_di_final-vlfrete_t *
( 25 / 100 ).
itab_di_final-afrmm = '25'.
itab_di_final-i_vlii =
v_perc_vinc *
( itab_zycit279-baseii *
( itab_zycit279-i_txii / 100 ) ).
itab_di_final-i_vlipi =
v_perc_vinc *
( itab_zycit279-baseipi *
( itab_zycit279-i_txipi / 100 ) ).
itab_di_final-i_vlicms =
v_perc_vinc *
( itab_zycit279-baseicms *
( itab_zycit279-i_txicms / 100 ) ).
itab_di_final-vlpis =
itab_di_final-vlpis / itab_di_final-i_txmoeda.
itab_di_final-i_vlii =
itab_di_final-i_vlii / itab_di_final-i_txmoeda.
itab_di_final-i_vlipi =
itab_di_final-i_vlipi / itab_di_final-i_txmoeda.
itab_di_final-vlcofins =
itab_di_final-vlcofins / itab_di_final-i_txmoeda.
itab_di_final-i_vlicms =
itab_di_final-i_vlicms / itab_di_final-i_txmoeda.
itab_di_final-vlafrmm =
itab_di_final-vlafrmm / itab_di_final-i_txmoeda.
.
itab_di_final-t_benef =
itab_di_final-i_vlii + itab_di_final-i_vlipi.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal -
itab_di_final-qtd_vinc.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc_final-nrseqre
AND nrseq = itab_comp_vinc_final-nrseq
AND codmat = itab_comp_vinc_final-codmat
AND vbeln_va = itab_comp_vinc_final-vbeln_va
AND vbeln_vf = itab_comp_vinc_final-vbeln_vf
AND posnr = itab_comp_vinc_final-posnr
AND codcomp = itab_comp_vinc_final-codcomp
AND grupo = itab_comp_vinc_final-grupo.
itab_di_final-v_sel = 'X'.
MOVE-CORRESPONDING itab_di_final TO wa_itab_di_final.
ENDIF.
ENDIF.
APPEND itab_di_final.
IF NOT wa_itab_di_final IS INITIAL.
LOOP AT itab_di_final WHERE
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
docnum EQ wa_itab_di_final-docnum AND
ebeln EQ wa_itab_di_final-ebeln AND
ebelp EQ wa_itab_di_final-ebelp .
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - wa_itab_di_final-qtd_vinc.
MODIFY itab_di_final.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
ENDFORM.
FORM monta_nf.
READ TABLE itab_di_final_aux WITH KEY
nrseqre = itab_comp_vinc_final-nrseqre
nrseq = itab_comp_vinc_final-nrseq
codmat = itab_comp_vinc_final-codmat
vbeln_va = itab_comp_vinc_final-vbeln_va
vbeln_vf = itab_comp_vinc_final-vbeln_vf
posnr = itab_comp_vinc_final-posnr
docnum = itab_j_1bnflin-docnum
itmnum = itab_j_1bnflin-itmnum.
IF sy-subrc EQ 0.
EXIT.
ENDIF.
READ TABLE itab_zycit260 WITH KEY
docnum = itab_j_1bnflin-docnum
itmnum = itab_j_1bnflin-itmnum.
IF sy-subrc NE 0.
READ TABLE itab_j_1bnfdoc WITH KEY
docnum = itab_j_1bnflin-docnum.
IF sy-subrc NE 0.
EXIT.
ENDIF.
READ TABLE itab_sel_doc WITH KEY
docnum = itab_j_1bnflin-docnum
itmnum = itab_j_1bnflin-itmnum.
READ TABLE itab_rseg WITH KEY
belnr = itab_sel_doc-belnr
gjahr = itab_sel_doc-gjahr
buzei = itab_sel_doc-buzei.
IF sy-subrc NE 0.
EXIT.
ENDIF.
PERFORM converte_um_base USING itab_j_1bnflin-matnr
CHANGING itab_j_1bnflin-meins
itab_j_1bnflin-menge.
IF itab_j_1bnflin-menge IS INITIAL.
DELETE itab_j_1bnflin WHERE
meins EQ itab_j_1bnflin-meins.
EXIT.
ENDIF.
CLEAR wa_di.
MOVE:
/pws/zycie258-nrseqd TO wa_di-nrseqd ,
itab_comp_vinc_final-codcomp TO wa_di-codcomp ,
itab_comp_vinc_final-codmat TO wa_di-codmat ,
itab_comp_vinc_final-nrseqre TO wa_di-nrseqre ,
itab_comp_vinc_final-nrseq TO wa_di-nrseq ,
itab_comp_vinc_final-vbeln_va TO wa_di-vbeln_va ,
itab_comp_vinc_final-vbeln_vf TO wa_di-vbeln_vf ,
itab_comp_vinc_final-posnr TO wa_di-posnr ,
itab_rseg-ebeln TO wa_di-ebeln ,
itab_rseg-ebelp TO wa_di-ebelp ,
itab_j_1bnfdoc-nfnum TO wa_di-nfnum ,
itab_j_1bnfdoc-series TO wa_di-serie ,
itab_j_1bnfdoc-docdat TO wa_di-dtnf ,
itab_j_1bnflin-docnum TO wa_di-docnum ,
itab_j_1bnflin-grupo TO wa_di-grupo ,
itab_j_1bnflin-desc_g TO wa_di-desc_g ,
itab_j_1bnflin-itmnum TO wa_di-itmnum ,
itab_j_1bnflin-nbm TO wa_di-j_1bnbm ,
itab_j_1bnflin-meins TO wa_di-meins ,
itab_j_1bnflin-menge TO wa_di-qtd_di ,
itab_j_1bnflin-menge TO wa_di-sdo_qtd .
ELSE.
wa_di = itab_zycit260.
wa_di-sdo_qtd = wa_di-qtd_di.
LOOP AT itab_zycit260 WHERE docnum = itab_j_1bnflin-docnum
AND itmnum = itab_j_1bnflin-itmnum.
wa_di-sdo_qtd = wa_di-sdo_qtd - itab_zycit260-qtd_vinc.
ENDLOOP.
IF wa_di-sdo_qtd <= 0.
EXIT.
ENDIF.
ENDIF.
LOOP AT itab_di_final WHERE docnum = itab_j_1bnflin-docnum
AND itmnum = itab_j_1bnflin-itmnum
AND qtd_vinc > 0.
wa_di-sdo_qtd = wa_di-sdo_qtd - itab_di_final-qtd_vinc.
ENDLOOP.
IF wa_di-sdo_qtd > 0.
IF itab_comp_vinc_final-qtd_stotal > 0 .
IF itab_comp_vinc_final-qtd_stotal <= wa_di-sdo_qtd .
wa_di-qtd_vinc = itab_comp_vinc_final-qtd_stotal.
wa_di-sdo_qtd = wa_di-sdo_qtd -
itab_comp_vinc_final-qtd_stotal.
itab_comp_vinc_final-qtd_stotal = 0.
ELSE.
itab_comp_vinc_final-qtd_stotal =
itab_comp_vinc_final-qtd_stotal - wa_di-sdo_qtd.
wa_di-qtd_vinc = wa_di-sdo_qtd.
wa_di-sdo_qtd = 0.
ENDIF.
wa_di-v_sel = 'X'.
ENDIF.
ENDIF.
itab_di_final = wa_di.
APPEND itab_di_final.
IF itab_di_final-sdo_qtd <> itab_di_final-qtd_di.
MODIFY itab_di_final TRANSPORTING sdo_qtd
WHERE docnum = itab_j_1bnflin-docnum
AND itmnum = itab_j_1bnflin-itmnum.
ENDIF.
ENDFORM.
FORM alt_transp.
READ TABLE itab_res_imp WITH KEY marc_l = 'X'.
IF sy-subrc EQ 0.
IF /pws/zycit321-it_ge EQ 'X'.
READ TABLE itab_di_final WITH KEY grupo = itab_res_imp-grupo.
ELSE.
READ TABLE itab_di_final WITH KEY codcomp = itab_res_imp-codcomp.
ENDIF.
IF itab_di_final-transp EQ 'X'.
CLEAR itab_di_final-transp.
ELSE.
itab_di_final-transp = 'X'.
ENDIF.
IF /pws/zycit321-it_ge EQ 'X'.
MODIFY itab_di_final TRANSPORTING transp
WHERE grupo = itab_res_imp-grupo.
ELSE.
MODIFY itab_di_final TRANSPORTING transp
WHERE codcomp = itab_res_imp-codcomp.
ENDIF.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064I01
...
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
* >> Início da exclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp
and grupo = itab_comp_vinc-grupo.
* << Fim da inclusão
itab_comp_vinc_final-qtd_stotal = itab_comp_vinc-qtd_stotal.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc-nrseqre
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
* >> Início da exclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp
and grupo = itab_comp_vinc-grupo.
* << Fim da inclusão
itab_di-v_sel = v_vsel.
MODIFY itab_di INDEX tc_di3-current_line.
* >> Início da exclusão: MODULE TRATA_SELECAO
LOOP AT itab_di_final.
IF ( itab_di_final-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final-posnr NE itab_det_exp-posnr OR
itab_di_final-nrseq NE itab_det_exp-nrseq OR
itab_di_final-codmat NE itab_det_exp-codmat ) AND
( itab_di_final-codcomp EQ itab_comp_vinc-codcomp AND
itab_di_final-nrdi EQ itab_di-nrdi AND
itab_di_final-ebeln EQ itab_di-ebeln AND
itab_di_final-ebelp EQ itab_di-ebelp AND
itab_di_final-nrseqemb EQ itab_di-nrseqemb ).
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
LOOP AT itab_di_final where
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
nrdi EQ itab_di-nrdi AND
ebeln EQ itab_di-ebeln AND
ebelp EQ itab_di-ebelp AND
nrseqemb EQ itab_di-nrseqemb .
* << Fim da inclusão
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di-qtd_vinc.
MODIFY itab_di_final.
* >> Início da exclusão: MODULE TRATA_SELECAO
ENDIF.
* << Fim da exclusão
ENDLOOP.
ELSE.
IF itab_comp_vinc-qtd_stotal < itab_di-sdo_qtd.
itab_di-sdo_qtd =
itab_di-sdo_qtd - itab_comp_vinc-qtd_stotal.
...
...
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
* >> Início da exclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp
and grupo = itab_comp_vinc-grupo.
* << Fim da inclusão
itab_comp_vinc_final-qtd_stotal = itab_comp_vinc-qtd_stotal.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc-nrseqre
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
* >> Início da exclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp
and grupo = itab_comp_vinc-grupo.
* << Fim da inclusão
itab_di-v_sel = v_vsel.
MODIFY itab_di INDEX tc_di3-current_line.
* >> Início da exclusão: MODULE TRATA_SELECAO
LOOP AT itab_di_final.
IF ( itab_di_final-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final-posnr NE itab_det_exp-posnr OR
itab_di_final-nrseq NE itab_det_exp-nrseq OR
itab_di_final-codmat NE itab_det_exp-codmat ) AND
( itab_di_final-codcomp EQ itab_comp_vinc-codcomp AND
itab_di_final-nrdi EQ itab_di-nrdi AND
itab_di_final-ebeln EQ itab_di-ebeln AND
itab_di_final-ebelp EQ itab_di-ebelp AND
itab_di_final-nrseqemb EQ itab_di-nrseqemb ).
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
LOOP AT itab_di_final where
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
nrdi EQ itab_di-nrdi AND
ebeln EQ itab_di-ebeln AND
ebelp EQ itab_di-ebelp AND
nrseqemb EQ itab_di-nrseqemb .
* << Fim da inclusão
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd - itab_di-qtd_vinc.
MODIFY itab_di_final.
* >> Início da exclusão: MODULE TRATA_SELECAO
ENDIF.
* << Fim da exclusão
ENDLOOP.
ENDIF.
ENDIF.
IF v_vsel EQ ' ' AND
NOT itab_di-qtd_vinc IS INITIAL.
...
...
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
* >> Início da exclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp
and grupo = itab_comp_vinc-grupo.
* << Fim da inclusão
itab_comp_vinc_final-qtd_stotal = itab_comp_vinc-qtd_stotal.
MODIFY itab_comp_vinc_final TRANSPORTING qtd_stotal
WHERE nrseqre = itab_comp_vinc-nrseqre
AND nrseq = itab_comp_vinc-nrseq
AND codmat = itab_comp_vinc-codmat
AND vbeln_va = itab_comp_vinc-vbeln_va
AND vbeln_vf = itab_comp_vinc-vbeln_vf
AND posnr = itab_comp_vinc-posnr
* >> Início da exclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp.
LOOP AT itab_di_final.
IF ( itab_di_final-nrseqre NE itab_det_exp-nrseqre OR
itab_di_final-vbeln_va NE itab_det_exp-vbeln_va OR
itab_di_final-vbeln_vf NE itab_det_exp-vbeln_vf OR
itab_di_final-posnr NE itab_det_exp-posnr OR
itab_di_final-nrseq NE itab_det_exp-nrseq OR
itab_di_final-codmat NE itab_det_exp-codmat ) AND
( itab_di_final-codcomp EQ itab_comp_vinc-codcomp AND
itab_di_final-nrdi EQ itab_di-nrdi AND
itab_di_final-ebeln EQ itab_di-ebeln AND
itab_di_final-ebelp EQ itab_di-ebelp AND
itab_di_final-nrseqemb EQ itab_di-nrseqemb ).
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
AND codcomp = itab_comp_vinc-codcomp
and grupo = itab_comp_vinc-grupo.
LOOP AT itab_di_final where
( nrseqre NE itab_det_exp-nrseqre OR
vbeln_va NE itab_det_exp-vbeln_va OR
vbeln_vf NE itab_det_exp-vbeln_vf OR
posnr NE itab_det_exp-posnr OR
nrseq NE itab_det_exp-nrseq OR
codmat NE itab_det_exp-codmat ) AND
nrdi EQ itab_di-nrdi AND
ebeln EQ itab_di-ebeln AND
ebelp EQ itab_di-ebelp AND
nrseqemb EQ itab_di-nrseqemb .
* << Fim da inclusão
itab_di_final-sdo_qtd =
itab_di_final-sdo_qtd + itab_di-qtd_vinc.
MODIFY itab_di_final.
* >> Início da exclusão: MODULE TRATA_SELECAO
ENDIF.
* << Fim da exclusão
ENDLOOP.
itab_di-sdo_qtd = itab_di-sdo_qtd + itab_di-qtd_vinc.
itab_di-qtd_vinc = itab_di-qtd_vinc - itab_di-qtd_vinc.
itab_di-vlfrete_t = itab_di-vlfrete * itab_di-qtd_vinc.
itab_di-vlseg_t = itab_di-vlseg * itab_di-qtd_vinc.
...
...
CHANGING itab_di-i_vlicms.
itab_di-t_benef = itab_di-i_vlii + itab_di-i_vlipi.
itab_di-v_sel = v_vsel.
MODIFY itab_di INDEX tc_di3-current_line.
ENDIF.
* >> Início da exclusão: MODULE TRATA_SELECAO
LOOP AT itab_di_final.
IF itab_di_final-nrseqre = itab_det_exp-nrseqre AND
itab_di_final-vbeln_va = itab_det_exp-vbeln_va AND
itab_di_final-vbeln_vf = itab_det_exp-vbeln_vf AND
itab_di_final-posnr = itab_det_exp-posnr AND
itab_di_final-nrseq = itab_det_exp-nrseq AND
itab_di_final-codmat = itab_det_exp-codmat AND
itab_di_final-codcomp = itab_comp_vinc-codcomp AND
itab_di_final-nrdi = itab_di-nrdi AND
itab_di_final-ebeln = itab_di-ebeln AND
itab_di_final-ebelp = itab_di-ebelp AND
itab_di_final-nrseqemb = itab_di-nrseqemb.
* << Fim da exclusão
* >> Início da inclusão: MODULE TRATA_SELECAO
LOOP AT itab_di_final where
nrseqre = itab_det_exp-nrseqre AND
vbeln_va = itab_det_exp-vbeln_va AND
vbeln_vf = itab_det_exp-vbeln_vf AND
posnr = itab_det_exp-posnr AND
nrseq = itab_det_exp-nrseq AND
codmat = itab_det_exp-codmat AND
nrdi = itab_di-nrdi AND
ebeln = itab_di-ebeln AND
ebelp = itab_di-ebelp AND
nrseqemb = itab_di-nrseqemb.
* << Fim da inclusão
itab_di_final-v_sel = itab_di-v_sel .
itab_di_final-sdo_qtd = itab_di-sdo_qtd .
itab_di_final-qtd_vinc = itab_di-qtd_vinc.
itab_di_final-vlseg_t = itab_di-vlseg_t.
itab_di_final-vlfrete_t = itab_di-vlfrete_t.
...
...
itab_di_final-i_vlii = itab_di-i_vlii.
itab_di_final-i_vlipi = itab_di-i_vlipi.
itab_di_final-i_vlicms = itab_di-i_vlicms.
itab_di_final-t_benef = itab_di-t_benef.
MODIFY itab_di_final.
* >> Início da exclusão: MODULE TRATA_SELECAO
ENDIF.
* << Fim da exclusão
ENDLOOP.
ENDIF.
ENDIF.
LOOP AT itab_di_final.
v_tabix = sy-tabix.
...
...
DESCRIBE TABLE itab_res_imp LINES v_ilinhas.
PERFORM blaettern
USING tc_res_imp3-current_line 11 v_ilinhas ok_code3
CHANGING nextline.
tc_res_imp3-top_line = nextline.
* >> Início da inclusão: MODULE USER_COMMAND_0307
WHEN 'TRANSP'.
perform alt_transp.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
MODULE user_command_0308 INPUT.
CASE ok_code3.
WHEN 'P-'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064O01
...
PERFORM check_fields_screen_0308.
WHEN '0309'.
PERFORM check_fields_screen_0309.
WHEN '0310'.
PERFORM check_fields_screen_0310.
* >> Início da exclusão: MODULE SET_SCREEN3
WHEN '0311'.
* << Fim da exclusão
* >> Início da inclusão: MODULE SET_SCREEN3
WHEN '0311' OR '0321'.
* << Fim da inclusão
PERFORM check_fields_screen_0311.
WHEN '0316'.
PERFORM check_fields_screen_0316.
ENDCASE.
ENDMODULE.
...
...
/pws/zycie259-stlan = itab_resumo-stlan .
/pws/zycie259-stlnr = itab_resumo-stlnr .
/pws/zycie259-stlal = itab_resumo-stlal .
/pws/zycie259-qtd_iten = itab_resumo-qtd_iten.
/pws/zycie259-vlfob = itab_resumo-vlfob .
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0303
/pws/zycie259-waersfob = itab_resumo-waersfob.
/pws/zycie259-meins = itab_resumo-meins .
* << Fim da inclusão
v_dtpre = itab_resumo-dtpre .
v_dture = itab_resumo-dture .
marc_l = itab_resumo-marc_l .
ENDMODULE.
MODULE trata_screen_0303 OUTPUT.
...
...
ts_vcomp3-activetab = pressed_tab_3c_4.
ENDMODULE.
MODULE preenche_estrutura_0309 OUTPUT.
/pws/zycie261-codcomp = itab_comp_vinc-codcomp .
/pws/zycie261-qtd_iten = itab_comp_vinc-qtd_iten .
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0309
/pws/zycie261-grupo = itab_comp_vinc-grupo .
/pws/zycie261-desc_g = itab_comp_vinc-desc_g .
* << Fim da inclusão
/pws/zycie261-qtd_total = itab_comp_vinc-qtd_total -
itab_comp_vinc-qtd_stotal.
/pws/zycie261-meins = itab_comp_vinc-meins.
v_qtd_orig3 = itab_comp_vinc-qtd_orig.
marc_cp = itab_comp_vinc-marc_cp .
...
...
MODULE preenche_estrutura_0310 OUTPUT.
/pws/zycie260c-nrdi = itab_di-nrdi .
/pws/zycie260c-dtdi = itab_di-dtdi .
/pws/zycie260c-ebeln = itab_di-ebeln .
/pws/zycie260c-ebelp = itab_di-ebelp .
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0310
/pws/zycie260c-codcomp = itab_di-codcomp .
/pws/zycie260c-waers = itab_di-waers .
/pws/zycie260c-netpr = itab_di-netpr .
* << Fim da inclusão
/pws/zycie260c-adicao = itab_di-adicao .
/pws/zycie260c-meins = itab_di-meins .
/pws/zycie260c-qtd_di = itab_di-qtd_di .
/pws/zycie260c-sdo_qtd = itab_di-sdo_qtd .
/pws/zycie260c-qtd_vinc = itab_di-qtd_vinc.
...
...
AND nrseq = itab_det_exp-nrseq
AND vbeln_va = itab_det_exp-vbeln_va
AND vbeln_vf = itab_det_exp-vbeln_vf
AND posnr = itab_det_exp-posnr
AND codmat = itab_det_exp-codmat.
* >> Início da inclusão: MODULE TRATA_SCREEN_0304
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: MODULE TRATA_SCREEN_0304
IF NOT itab_det_exp-nrseqc IS INITIAL.
v_ico_t = '@KY@'.
ELSEIF NOT itab_det_exp-nrseq IS INITIAL.
v_ico_t = '@KW@'.
ELSE.
v_ico_t = '@KX@'.
* << Fim da inclusão
ENDIF.
IF NOT itab_det_exp[] IS INITIAL AND
v_vtc = 'P'.
v_ico_det3 = '@5D@'.
ELSE.
...
...
/pws/zycie260c-nrdi = itab_det_imp-nrdi .
/pws/zycie260c-reg_di = itab_det_imp-reg_di .
/pws/zycie260c-ebeln = itab_det_imp-ebeln .
/pws/zycie260c-ebelp = itab_det_imp-ebelp .
/pws/zycie260c-adicao = itab_det_imp-adicao .
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0308
/pws/zycie260c-codcomp = itab_det_imp-codcomp .
* << Fim da inclusão
/pws/zycie260c-j_1bnbm = itab_det_imp-j_1bnbm .
/pws/zycie260c-nfnum = itab_det_imp-nfnum .
/pws/zycie260c-serie = itab_det_imp-serie .
/pws/zycie260c-werks = itab_det_imp-werks .
/pws/zycie260c-dtnf = itab_det_imp-dtnf .
...
...
ENDMODULE.
MODULE preenche_estrutura_0307 OUTPUT.
/pws/zycie260-codcomp = itab_res_imp-codcomp .
/pws/zycie260-qtd_di = itab_res_imp-qtd_di .
/pws/zycie260-qtd_vinc = itab_res_imp-qtd_vinc.
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0307
/pws/zycie260-meins = itab_res_imp-meins.
* << Fim da inclusão
/pws/zycie260-vlfob_t = itab_res_imp-vlfob .
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0307
/pws/zycie260-waers = itab_res_imp-waers .
* << Fim da inclusão
v_dtpdi = itab_res_imp-dtpdi .
v_dtudi = itab_res_imp-dtudi .
marci_l = itab_res_imp-marc_l .
* >> Início da inclusão: MODULE PREENCHE_ESTRUTURA_0307
/pws/zycie260-grupo = itab_res_imp-grupo .
/pws/zycie260-desc_g = itab_res_imp-desc_g .
/pws/zycie260-waers = itab_res_imp-waers .
IF /pws/zycit321-it_ge EQ 'X'.
READ TABLE itab_di_final WITH KEY
grupo = itab_res_imp-grupo.
ELSE.
READ TABLE itab_di_final WITH KEY
codcomp = itab_res_imp-codcomp.
ENDIF.
IF itab_di_final-transp EQ 'X'.
v_ico_det3 = '@5B@'.
ELSE.
v_ico_det3 = '@5C@'.
ENDIF.
* << Fim da inclusão
ENDMODULE.
MODULE trata_screen_0307 OUTPUT.
SELECT maktx UP TO 1 ROWS FROM makt INTO v_descr1_0307
WHERE matnr = /pws/zycie260-codcomp
AND spras = sy-langu.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064TOP2
...
DATA: BEGIN OF itab_ekpo OCCURS 0.
INCLUDE STRUCTURE ekpo .
DATA: END OF itab_ekpo .
DATA: BEGIN OF itab_zycit279 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit279.
* >> Início da inclusão:
data: grupo type /pws/zycit433-grupo.
* << Fim da inclusão
DATA: END OF itab_zycit279.
DATA: BEGIN OF itab_zycit329 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit329.
DATA: END OF itab_zycit329.
DATA: BEGIN OF itab_zycit330 OCCURS 0.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064TOP3
...
v_tbenef_0303 LIKE /pws/zycie260d-t_benef ,
v_errolog3(135) TYPE c ,
v_tabix LIKE sy-tabix ,
v_cent_ei TYPE /pws/zycit260-werks ,
V_DESC_AGR(35) TYPE c ,
* >> Início da exclusão:
V_NCENT(35) TYPE c .
* << Fim da exclusão
* >> Início da inclusão:
v_ncent(35) TYPE c ,
v_verif_v TYPE c,
v_ico_t TYPE icon-id .
* << Fim da inclusão
DATA: BEGIN OF itab_cent_ei OCCURS 0.
DATA: werks TYPE /pws/zycit260-werks.
DATA: END OF itab_cent_ei .
DATA: BEGIN OF itab_botoes3 OCCURS 0.
DATA: bname(20) TYPE c .
DATA: END OF itab_botoes3 .
DATA: BEGIN OF itab_res_imp OCCURS 0,
* >> Início da exclusão:
codcomp LIKE /pws/zycie260-codcomp ,
qtd_di LIKE /pws/zycie260-qtd_di ,
qtd_vinc LIKE /pws/zycie260-qtd_vinc,
vlfob LIKE /pws/zycie260-vlfob_t ,
dtpdi LIKE /pws/zycie260-dtdi ,
dtudi LIKE /pws/zycie260-dtdi ,
* << Fim da exclusão
* >> Início da inclusão:
codcomp TYPE /pws/zycie260-codcomp ,
qtd_di TYPE /pws/zycie260-qtd_di ,
qtd_vinc TYPE /pws/zycie260-qtd_vinc,
vlfob TYPE /pws/zycie260-vlfob_t ,
dtpdi TYPE /pws/zycie260-dtdi ,
dtudi TYPE /pws/zycie260-dtdi ,
grupo TYPE /pws/zycit433-grupo ,
desc_g TYPE /pws/zycit433-desc_g ,
waers TYPE /pws/zycit260-waers ,
meins TYPE /pws/zycit260-meins ,
* << Fim da inclusão
marc_l(1) TYPE c ,
END OF itab_res_imp.
DATA: BEGIN OF itab_det_imp OCCURS 0.
INCLUDE STRUCTURE /pws/zycie260.
DATA: um_ncm LIKE /pws/zycit245-meins,
...
...
centro LIKE stpox-werks,
ncm LIKE marc-steuc,
qtunit TYPE p DECIMALS 5,
meins LIKE stpox-meins.
DATA: END OF i_final.
* >> Início da inclusão:
DATA: itab_zycit472 TYPE /pws/zycit472 OCCURS 0 WITH HEADER LINE,
itab_zycit473 TYPE /pws/zycit473 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_sel_vbfa OCCURS 0.
DATA: vbeln TYPE vbfa-vbeln,
posnn TYPE vbfa-posnn.
DATA: END OF itab_sel_vbfa.
DATA : BEGIN OF itab_nota_c OCCURS 0 .
DATA : docnum TYPE j_1bnfdoc-docnum ,
docdat TYPE j_1bnfdoc-docdat ,
parid TYPE j_1bnfdoc-parid ,
nfnum TYPE j_1bnfdoc-nfnum ,
series TYPE j_1bnfdoc-series ,
refkey TYPE j_1bnflin-refkey ,
refitm TYPE j_1bnflin-refitm ,
menge TYPE j_1bnflin-menge ,
meins TYPE j_1bnflin-meins ,
netpr TYPE j_1bnflin-netpr ,
netwr TYPE j_1bnflin-netwr ,
werks TYPE j_1bnflin-werks ,
cfop TYPE j_1bnflin-cfop ,
nbm TYPE j_1bnflin-nbm ,
matnr TYPE j_1bnflin-matnr ,
itmnum TYPE j_1bnflin-itmnum ,
netfre TYPE j_1bnflin-netfre ,
netins TYPE j_1bnflin-netins ,
waers TYPE j_1bnfdoc-waerk .
DATA : END OF itab_nota_c .
DATA: BEGIN OF itab_vbfa_1 OCCURS 0.
INCLUDE STRUCTURE itab_vbfa.
DATA: ntgew TYPE vbfa-ntgew,
brgew TYPE vbfa-brgew,
gewei TYPE vbfa-gewei.
DATA: END OF itab_vbfa_1.
DATA: itab_zycit433 TYPE /pws/zycit433 OCCURS 0 WITH HEADER LINE.
DATA: v_found(1) TYPE c,
v_vlreali LIKE /pws/zycit100-vlfob,
v_fator_conv LIKE /pws/zycit100-vlfob.
DATA: BEGIN OF itab_insumo_di OCCURS 0.
DATA: matnr LIKE mara-matnr.
DATA: END OF itab_insumo_di.
DATA: itab_zycit003_t2 TYPE /pws/zycit003 OCCURS 0 WITH HEADER LINE,
itab_zycit244 TYPE /pws/zycit244 OCCURS 0 WITH HEADER LINE.
DATA: itab_ekpo_sort LIKE ekpo OCCURS 0 WITH HEADER LINE.
DATA: itab_comp_sort3 LIKE itab_comp_vinc_final
OCCURS 0 WITH HEADER LINE.
DATA BEGIN OF itab_zycit100_sort OCCURS 0.
INCLUDE STRUCTURE /pws/zycit100.
DATA: matnr LIKE /pws/zycit003-matnr,
grupo TYPE /pws/zycit433-grupo.
DATA: END OF itab_zycit100_sort.
DATA: itab_rseg LIKE rseg OCCURS 0 WITH HEADER LINE.
DATA: wa_di LIKE itab_di_final.
DATA: BEGIN OF itab_insumo_nf OCCURS 0.
DATA: matnr LIKE /pws/zycit003-matnr.
DATA: END OF itab_insumo_nf.
DATA: BEGIN OF itab_sel_doc OCCURS 0.
DATA: belnr LIKE rseg-belnr ,
gjahr LIKE rseg-gjahr ,
buzei LIKE rseg-buzei ,
docnum LIKE j_1bnflin-docnum,
itmnum LIKE j_1bnflin-itmnum.
DATA: END OF itab_sel_doc.
DATA: itab_j_1bnflin_sort LIKE j_1bnflin
OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA: wa_zycit258 LIKE /pws/zycie258 ,
wa_itab_det_exp LIKE itab_det_exp ,
wa_cols3 TYPE cxtab_column ,
wa_itab_di_final LIKE itab_di_final.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI064X01
...
dture LIKE /pws/zycie259-dtre ,
werks LIKE /pws/zycie259-werks ,
stlan LIKE /pws/zycie259-stlan ,
stlnr LIKE /pws/zycie259-stlnr ,
stlal LIKE /pws/zycie259-stlal ,
* >> Início da inclusão:
waersfob type /pws/zycie259-waersfob,
meins type /pws/zycie259-meins ,
* << Fim da inclusão
marc_l(1) TYPE c ,
END OF itab_resumo.
DATA: BEGIN OF itab_re_final OCCURS 0.
DATA: nrseqre LIKE /pws/zycet116-nrseqre ,
nrre LIKE /pws/zycet116-nrre ,
...
...
vtweg type mvke-vtweg .
.
DATA: END OF itab_re_final.
DATA: BEGIN OF itab_j_1bnflin OCCURS 0.
INCLUDE STRUCTURE j_1bnflin .
* >> Início da inclusão:
data: grupo type /pws/zycit433-grupo ,
desc_g type /pws/zycit433-desc_g.
* << Fim da inclusão
DATA: END OF itab_j_1bnflin .
DATA: BEGIN OF itab_j_1bnfdoc OCCURS 0.
INCLUDE STRUCTURE j_1bnfdoc .
DATA: END OF itab_j_1bnfdoc .
DATA: BEGIN OF itab_zycet001 OCCURS 0.
...
...
DATA: meins LIKE /pws/zycit245-meins,
matnr LIKE /pws/zycit003-matnr.
DATA: END OF itab_mess_un.
DATA: END OF COMMON PART.
SELECTION-SCREEN BEGIN OF SCREEN 0312 AS WINDOW TITLE text-098.
* >> Início da exclusão:
SELECT-OPTIONS p_matnr FOR mara-matnr.
* << Fim da exclusão
* >> Início da inclusão:
SELECT-OPTIONS p_matnr FOR mara-matnr obligatory.
* << Fim da inclusão
PARAMETERS: p_dtexp1 LIKE /pws/zycee116-dtincl,
p_dtexp2 LIKE /pws/zycee116-dtincl.
SELECTION-SCREEN END OF SCREEN 0312.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI064
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: PT
Símbolo: 294
Texto: (48 caracteres)
"não esta cadastrado na tabela de itens genéricos"
Comprimento máximo: 48
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE258
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
LIFNR ELIFN LFA1 CHAR 10
CODAGRUP /PWS/ZYCIL613 /PWS/ZYCIT395 CHAR 3
*Inicio da Inclusão:
DTPR DATUM DATS 8
*Fim da Inclusão.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE259
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
VBELN_VF VBELN_VF CHAR 10
POSNR POSNR NUMC 6
*Inicio da Inclusão:
NRSEQC /PWS/ZYCIL230 CHAR 10
*Fim da Inclusão:
J_1BNBM J_1BNBMCO1 T604F CHAR 16
NFNUM J_1BNFNUMB NUMC 6
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE259C
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
VBELN_VF VBELN_VF CHAR 10
POSNR POSNR NUMC 6
*Inicio da Inclusão:
NRSEQC /PWS/ZYCIL230 CHAR 10
*Fim da Inclusão:
J_1BNBM J_1BNBMCO1 T604F CHAR 16
NFNUM J_1BNFNUMB NUMC 6
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE259D
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
VBELN_VF VBELN_VF CHAR 10
POSNR POSNR NUMC 6
*Inicio da Inclusão:
NRSEQC /PWS/ZYCIL230 CHAR 10
*Fim da Inclusão:
J_1BNBM J_1BNBMCO1 T604F CHAR 16
NFNUM J_1BNFNUMB NUMC 6
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE260
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
ITMNUM J_1BITMNUM NUMC 6
LOTE LICHN CHAR 15
*Inicio da Inclusão:
NRSEQC /PWS/ZYCIL230 CHAR 10
*Fim da Inclusão:
REG_DI /PWS/ZYCIL299 CHAR 11
ADICAO /PWS/ZYCIL267 NUMC 3
...
VALOR_U /PWS/ZYCIL128 DEC 20
WERKS WERKS_D CHAR 4
*Inicio da Inclusão:
GRUPO CHAR4 CHAR 4
DESC_G MAKTX CHAR 40
TRANSP CHAR1 CHAR 1
*Fim da Inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE260C
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
ITMNUM J_1BITMNUM NUMC 6
LOTE LICHN CHAR 15
*Inicio da Inclusão:
NRSEQC /PWS/ZYCIL230 CHAR 10
*Fim da Inclusão:
REG_DI /PWS/ZYCIL299 CHAR 11
ADICAO /PWS/ZYCIL267 NUMC 3
...
VALOR_U /PWS/ZYCIL128 DEC 20
WERKS WERKS_D CHAR 4
*Inicio da Inclusão:
GRUPO CHAR4 CHAR 4
DESC_G MAKTX CHAR 40
TRANSP CHAR1 CHAR 1
*Fim da Inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE260D
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
ITMNUM J_1BITMNUM NUMC 6
LOTE LICHN CHAR 15
*Inicio da Inclusão:
NRSEQC /PWS/ZYCIL230 CHAR 10
*Fim da Inclusão:
REG_DI /PWS/ZYCIL299 CHAR 11
ADICAO /PWS/ZYCIL267 NUMC 3
...
VALOR_U /PWS/ZYCIL128 DEC 20
WERKS WERKS_D CHAR 4
*Inicio da Inclusão:
GRUPO CHAR4 CHAR 4
DESC_G MAKTX CHAR 40
TRANSP CHAR1 CHAR 1
*Fim da Inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE261
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
VBELN_VL VBELN_VL CHAR 10
POSNL POSNR_VL NUMC 6
*Inicio da Inclusão:
NRSEQC /PWS/ZYCIL230 CHAR 10
GRUPO CHAR4 CHAR 4
*Fim da Inclusão.
MEINS BSTME T006 UNIT 3
QTD_ITEN /PWS/ZYCIL473 QUAN 23
QTD_TOTAL /PWS/ZYCIL473 QUAN 23
QTD_STOTAL /PWS/ZYCIL473 QUAN 23
*Inicio da Inclusão:
DESC_G MAKTX CHAR 40
*Fim da Inclusão.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIE261C
Nome campo Elem.dados Tab.verif. N CtDt Comp. Grupo
...
VBELN_VL VBELN_VL CHAR 10
POSNL POSNR_VL NUMC 6
*Inicio da Inclusão:
NRSEQC /PWS/ZYCIL230 CHAR 10
GRUPO CHAR4 CHAR 4
*Fim da Inclusão.
MEINS BSTME T006 UNIT 3
QTD_ITEN /PWS/ZYCIL473 QUAN 23
QTD_TOTAL /PWS/ZYCIL473 QUAN 23
QTD_STOTAL /PWS/ZYCIL473 QUAN 23
*Inicio da Inclusão:
DESC_G MAKTX CHAR 40
*Fim da Inclusão.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT258
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
...
LIFNR ELIFN CHAR 10
CODAGRUP /PWS/ZYCIL613 CHAR 3
*Inicio da Inclusão:
DTPR DATUM DATS 8
*Fim da Inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT259
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
...
VBELN_VF X VBELN_VF X CHAR 10
POSNR X POSNR X NUMC 6
*Inicio da Inclusão:
NRSEQC X /PWS/ZYCIL230 X CHAR 10
*Fim da Inclusão:
J_1BNBM J_1BNBMCO1 CHAR 16
NFNUM J_1BNFNUMB NUMC 6
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT260
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
...
ITMNUM X J_1BITMNUM X NUMC 6
LOTE X LICHN X CHAR 15
*Inicio da Inclusão:
NRSEQC X /PWS/ZYCIL230 X CHAR 10
*Fim da Inclusão:
REG_DI /PWS/ZYCIL299 CHAR 11
ADICAO /PWS/ZYCIL267 NUMC 3
...
VALOR_U /PWS/ZYCIL128 DEC 20
WERKS WERKS_D CHAR 4
*Inicio da Inclusão:
GRUPO CHAR4 CHAR 4
DESC_G MAKTX CHAR 40
TRANSP CHAR1 CHAR 1
*Fim da Inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT261
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
...
VBELN_VL X VBELN_VL X CHAR 10
POSNL X POSNR_VL X NUMC 6
*Inicio da Inclusão:
NRSEQC X /PWS/ZYCIL230 X CHAR 10
GRUPO X CHAR4 X CHAR 4
*Fim da Inclusão:
MEINS BSTME UNIT 3
QTD_ITEN /PWS/ZYCIL473 QUAN 23
QTD_TOTAL /PWS/ZYCIL473 QUAN 23
QTD_STOTAL /PWS/ZYCIL473 QUAN 23
*Inicio da Inclusão:
DESC_G MAKTX CHAR 40
*Fim da Inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT321
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
...
C_COMUM /PWS/ZYCIL839 CHAR 1
LOTE /PWS/ZYCIL840 CHAR 1
*Inicio da Inclusão:
IT_GE /PWS/ZYCIL843 CHAR 1
*Fim da Inclusão:
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT472
*Criar Tabela:
*Características gerais:
Nome da tabela: /PWS/ZYCIT472
Descrição breve: CI - CFOP para Vendas para Trading Company
Ctg.tabela: Tabela transparente
Arm.bff.permitido:
AtualTab.permitida: X
Classe de entrega: A
*Campos:
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
MANDT X MANDT X CLNT 3
CFOP X J_1BCFOP J_1BAG X CHAR 7
DESCR TEXT45 CHAR 45
*Chave externa
Nome de campo: CFOP
Tabela verificação: J_1BAG
Grau dependência:
Cardinalidade:
Sem verificação:
Descrição breve:
Área funcional:
Mensagem:
Tabela chave externa Cpo.chave externa Tab.verif. Nome de campo
/PWS/ZYCIT472 MANDT J_1BAG MANDT
/PWS/ZYCIT472 CFOP J_1BAG CFOP
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABL /PWS/ZYCIT473
*Características gerais:
Nome da tabela: /PWS/ZYCIT473
Descrição breve: CI - Clientes(Vendas Tading Compani)
Ctg.tabela: Tabela transparente
Arm.bff.permitido:
AtualTab.permitida: X
Classe de entrega: A
*Campos:
Nome campo Chv Elem.dados Tab.verif. N CtDt Comp. Grupo
MANDT X MANDT X CLNT 3
KUNNR X KUNNR X CHAR 10