Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Custo Efetivo
Data/Hora da Publicação: 25/05/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 12:24:32
Descrição da Nota: AGREGAR OS CUSTOS EFETIVOS DA ADMISSÃO NA NACIONALIZAÇÃO DA MERCADORIA
Sintoma
Agregar os custos efetivos da admissão na nacionalização da mercadoria de entreposto aduaneiro.
Solução
Feito desenvolvimento para tratamento do custo efetivo da DA.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01417 Data: 25/05/2006 Hora: 17:33:11
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01417
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00115
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01268 - 00002 - 6.0 - 00023 - DESENVOLVIMENTO ENTREPOSTO ADUANEIRO
01282 - 00001 - 6.0 - 00023 - DESEMVOLVIMENTO DA DECLARAÇÃO DE ADMISSÃO (DA)
01450 - 00003 - 6.0 - 00023 - INTERFACE PW.CE X PW.RECOF - CARGA DE EMBARQUE DE NACIONALIZAÇÃO.
----------------------------------------------------------------------------------------------------
AGREGAR OS CUSTOS EFETIVOS DA ADMISSÃO NA NACIONALIZAÇÃO DA MERCADORIA
----------------------------------------------------------------------------------------------------
Palavras Chave:
DA - CUSTO EFETIVO - ADMISSÃO - NACIONALIZAÇÃO
----------------------------------------------------------------------------------------------------
Objetos da nota:
DYNP /PWS/SAPMZYCI001 0003
DYNP /PWS/SAPMZYCI001 0111
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001I01
REPS /PWS/MZYCI001O01
REPS /PWS/MZYCI001TOP
REPS /PWS/MZYCI001X01
REPS /PWS/MZYCI075F02
REPS /PWS/ZYCIR006
REPT /PWS/SAPMZYCI001
TABD /PWS/ZYCIT003
REPS /PWS/MZYCI070F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em DYNP /PWS/SAPMZYCI001 0111
*Os seguintes campos foram alterados:
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
* Modificados
+ TC_DA
Tabel 2 1 111 111 12
Seleção linha=Múltipla, Seleção coluna=Simples
TabEntr., Com título, Configurável, Coluna marc., LSep.horiz., LnhSep.vert.
* Inserido
- /PWS/ZYCIE003-NRSEQDA
Texto 1 3 10 10 1 CHAR X 1
/PWS/ZYCIP442
Título de coluna TC
- /PWS/ZYCIE003-NRDI
Texto 1 4 11 11 1 CHAR X 2
Título de coluna TC
- /PWS/ZYCIE003-ADICAO
Texto 1 6 6 3 1 CHAR X 1
Título de coluna TC
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
IF sy-subrc NE 0.
DELETE FROM /pws/zycit125 WHERE nrseq = /pws/zycie001-nrseq
AND lifnr = itab_zycit125_aux-lifnr.
ENDIF.
ENDLOOP.
* >> Início da exclusão: FORM GRAVA_TABELAS
CLEAR itab_zycit003_del. FREE itab_zycit003_del.
* << Fim da exclusão
LOOP AT itab_zycit003.
IF itab_zycit003-qtd_iten EQ 0.
MESSAGE w015 WITH text-260 text-261.
v_sair = 'X'.
EXIT.
...
...
MODIFY /pws/zycit093.
ENDIF.
ENDIF.
MODIFY /pws/zycit356 FROM /pws/zycie356.
IF /pws/zycie001-regime EQ '14' OR /pws/zycie001-regime EQ '16'.
* >> Início da inclusão: FORM GRAVA_TABELAS
PERFORM salva_dados_rc.
* << Fim da inclusão
PERFORM salva_dados_da.
ENDIF.
* >> Início da exclusão: FORM GRAVA_TABELAS
CLEAR itab_zycit003_del.
REFRESH itab_zycit003_del.
* << Fim da exclusão
DELETE FROM /pws/zycit001 WHERE nrseq = space.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI001'
'EMB003'.
CLEAR itab_zyglt100 .
...
...
itab_zycit003-gsber TO /pws/zycbt119-gsber,
/pws/zycit006-dtincl TO /pws/zycbt119-dtincl.
modify /pws/zycbt119.
MODIFY itab_zycit003.
MODIFY /pws/zycit003 FROM itab_zycit003.
* >> Início da inclusão: FORM GRAVA_TABELAS
ENDLOOP.
ENDIF.
loop at itab_zycit455_del.
UPDATE /pws/zycit455 SET nrseq = itab_zycit455_del-nrseq
WHERE ebeln = itab_zycit455_del-ebeln
AND ebelp = itab_zycit455_del-ebelp
AND nrseqda = itab_zycit455_del-nrseqda.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM GRAVA_TABELAS
if /pws/zycie001-regime eq '14'.
perform gravar_custos.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM GRAVA_TABELAS
CLEAR itab_zycit003_del. FREE itab_zycit003_del.
* << Fim da inclusão
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
INTO TABLE itab_fabric
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
ENDIF.
* >> Início da inclusão: FORM CARREGA_FABRIC
ENDFORM.
* << Fim da inclusão
* >> Início da exclusão: FORM CARREGA_FABRIC
ENDFORM.
* << Fim da exclusão
FORM call_da.
EXPORT /pws/zycie001-nrseq TO MEMORY ID rimc7.
LOOP AT itab_zycit003.
v_qtd_iten = itab_zycit003-qtd_iten.
IF itab_zycit003-invoiced NE v_qtd_iten AND
...
...
ENDLOOP.
ENDIF.
ELSE.
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs
/pws/zycit442~dtdesemb /pws/zycit460~lifnr /pws/zycit443~ebeln
* >> Início da exclusão: FORM SELECIONAR_DA
/pws/zycit443~ebelp /pws/zycit443~matnr /pws/zycit463~lote_forn
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_DA
/pws/zycit443~ebelp /pws/zycit443~matnr
/pws/zycit463~lote_forn
* << Fim da inclusão
/pws/zycit463~numfatura /pws/zycit463~qtd_lote
/pws/zycit463~qtd_nac
FROM ( /pws/zycit442 INNER JOIN /pws/zycit460 ON
/pws/zycit442~nrseqda = /pws/zycit460~nrseqda
INNER JOIN /pws/zycit443 ON
...
...
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
DESCRIBE TABLE itab_da LINES v_line.
* >> Início da inclusão: FORM SELECIONAR_DA
v_caller = 'SELECIONAR_DA'.
* << Fim da inclusão
CALL SCREEN '0003'.
ELSE.
MESSAGE s015 WITH text-259.
ENDIF.
ENDFORM.
...
...
LOOP AT itab_zycit125 WHERE mark = 'X'.
DELETE itab_zycit125 INDEX sy-tabix.
CLEAR itab_zycit125.
ENDLOOP.
WHEN 'FC_DA'.
* >> Início da inclusão: FORM TRATA_DELP
CLEAR : itab_zycit036_del, itab_zycit455_del.
REFRESH: itab_zycit036_del, itab_zycit455_del.
* << Fim da inclusão
LOOP AT itab_zycit003 WHERE mark = 'X'.
IF itab_zycit003-nrseqli IS INITIAL AND
itab_zycit003-nrseqlsi IS INITIAL.
CLEAR v_tabix.
v_tabix = sy-tabix.
...
...
ENDIF.
MOVE:itab_zycit003-ebeln TO itab_zycit003_del-ebeln,
itab_zycit003-ebelp TO itab_zycit003_del-ebelp,
itab_zycit003-qtd_iten TO itab_zycit003_del-qtd_iten.
APPEND itab_zycit003_del.
* >> Início da inclusão: FORM TRATA_DELP
IF /pws/zycie001-regime EQ '14'.
MOVE:itab_zycit003-ebeln TO itab_zycit036_del-ebeln,
itab_zycit003-ebelp TO itab_zycit036_del-ebelp,
itab_zycit003-nrseq TO itab_zycit036_del-nrseq.
APPEND itab_zycit036_del.
MOVE:itab_zycit003-ebeln TO itab_zycit455_del-ebeln,
itab_zycit003-ebelp TO itab_zycit455_del-ebelp,
space TO itab_zycit455_del-nrseq,
itab_zycit003-nrseqda TO itab_zycit455_del-nrseqda.
APPEND itab_zycit455_del.
ENDIF.
* << Fim da inclusão
DELETE itab_zycit003 INDEX v_tabix.
CLEAR itab_zycit003.
ELSE.
MESSAGE w015 WITH text-190.
EXIT.
...
...
ENDIF.
ENDFORM.
FORM verifica_itens_da.
DATA: v_ebelp LIKE konv-kposn,
itab_zycit100_per LIKE /pws/zycit100 OCCURS 0 WITH HEADER LINE.
* >> Início da exclusão: FORM VERIFICA_ITENS_DA
CLEAR /pws/zycie001-netpr.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
CLEAR : /pws/zycie001-netpr , v_netpr.
* << Fim da inclusão
IF ( sy-tcode = '/PWS/ZYCI001_E' OR
sy-tcode = '/PWS/ZYCI001_A' ) AND
( okcode = 'P-' OR okcode = 'P--' OR
okcode = 'P+' OR okcode = 'P++' ).
ELSEIF okcode EQ 'SELE_DA' OR okcode EQ 'ENTE' OR okcode EQ 'SAVE' OR
...
...
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
FREE itab_itens_aux.
CLEAR itab_itens_aux.
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
IF NOT itab_zycit003[] IS INITIAL AND /pws/zycit442 IS INITIAL.
READ TABLE itab_zycit003 INDEX 1.
SELECT SINGLE * FROM /pws/zycit442
WHERE nrseqda EQ itab_zycit003-nrseqda.
ELSE.
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit455
WHERE nrseq EQ /pws/zycie001-nrseq.
SELECT SINGLE * FROM /pws/zycit442
WHERE nrseqda EQ /pws/zycit455-nrseqda.
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
ENDIF.
* << Fim da inclusão
SELECT * FROM /pws/zycit443
INTO TABLE itab_zycit443_aux
FOR ALL ENTRIES IN itab_zycit003
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
PERFORM calcula_saldo_da.
* << Fim da inclusão
DELETE itab_zycit443_aux WHERE nrseqda NE /pws/zycit455-nrseqda.
LOOP AT itab_zycit003.
PERFORM load_pttext USING itab_zycit003-matnr
sy-langu.
PERFORM: aplicacao.
MODIFY itab_zycit003.
ENDLOOP.
* >> Início da exclusão: FORM VERIFICA_ITENS_DA
PERFORM calcula_saldo_da.
* << Fim da exclusão
SELECT SINGLE * FROM /pws/zycit094
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc = 0.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit094-nrseqce.
...
...
MESSAGE e015 WITH text-213.
ENDIF.
ENDIF.
LOOP AT itab_zycit003.
v_tabix = sy-tabix.
* >> Início da exclusão: FORM VERIFICA_ITENS_DA
/pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
v_netpr = v_netpr +
( itab_zycit003-netpr * itab_zycit003-qtd_iten ).
/pws/zycie001-netpr = v_netpr.
* << Fim da inclusão
IF /pws/zycie001-netpr < 0.
CLEAR /pws/zycie001-netpr.
MESSAGE e061 WITH text-235 text-236.
ENDIF.
SELECT SINGLE j_1bmatuse INTO ekpo-j_1bmatuse
...
...
itab_zycit443_aux-gewei = 'G' AND NOT
itab_zycit003-qtd_iten IS INITIAL.
itab_zycit003-ntgew = 1 / 1000.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM VERIFICA_ITENS_DA
IF /pws/zycie001-regime EQ '14' .
READ TABLE itab_zycit443 WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0 .
itab_zycit003-sld_da = itab_zycit443-qtd_da -
( itab_zycit443-qtd_util + itab_zycit003-qtd_iten ).
ENDIF.
ELSEIF /pws/zycie001-regime EQ '16'.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
IF /pws/zycie001-regime EQ '14' OR
/pws/zycie001-regime EQ '16'.
* << Fim da inclusão
IF NOT itab_zycit443[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_zycit443
WHERE ebeln EQ itab_zycit443-ebeln
AND ebelp EQ itab_zycit443-ebelp.
* >> Início da inclusão: FORM VERIFICA_ITENS_DA
IF sy-subrc EQ 0.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq.
LOOP AT itab_zycit001_saldo WHERE regime EQ '04'.
DELETE itab_zycit003_saldo
WHERE nrseq EQ itab_zycit001_saldo-nrseq.
ENDLOOP.
ENDIF.
* << Fim da inclusão
clear v_qtdutil_da.
LOOP AT itab_zycit003_saldo.
if itab_zycit003_saldo-nrseq ne /pws/zycie001-nrseq.
v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten .
endif.
...
...
DELETE itab_da WHERE qtd_nac IS initial.
ENDIF.
READ TABLE itab_da INDEX 1.
IF NOT itab_da[] IS INITIAL AND ( /pws/zycie001-regime EQ '14' OR
/pws/zycie001-regime EQ '16' ).
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
SELECT SINGLE * FROM /pws/zycit442
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
SELECT SINGLE *
FROM /pws/zycit442
* << Fim da inclusão
WHERE nrseqda EQ itab_da-nrseqda
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
AND ( codreg EQ '02' OR
codreg = '04' ).
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
AND ( codreg EQ '02' OR
codreg EQ '04' ).
* << Fim da inclusão
IF /pws/zycit442-statusfin NE space.
MESSAGE i015 WITH text-255.
EXIT.
ENDIF.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
SELECT *
INTO TABLE itab_zycit443
FROM /pws/zycit443
FOR ALL ENTRIES IN itab_da
WHERE nrseqda EQ itab_da-nrseqda.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
SELECT *
INTO TABLE itab_zycit442
FROM /pws/zycit442
* << Fim da inclusão
FOR ALL ENTRIES IN itab_da
WHERE nrseqda EQ itab_da-nrseqda.
ENDIF.
IF NOT /pws/zycit442 IS INITIAL.
MOVE :
...
...
ebelp = itab_zycit443-ebelp.
IF sy-subrc = 0.
MOVE:
itab_zycit443-advalicms TO itab_zycit003-advalicms ,
itab_zycit443-advalii TO itab_zycit003-advalii ,
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
itab_zycit443-advalipi TO itab_zycit003-advalipi,
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
itab_zycit443-advalipi TO itab_zycit003-advalipi,
* << Fim da inclusão
itab_zycit443-aliqicms TO itab_zycit003-aliqicms ,
itab_zycit443-aliqii TO itab_zycit003-aliqii ,
itab_zycit443-aliqipi TO itab_zycit003-aliqipi ,
itab_zycit443-basred TO itab_zycit003-basred ,
itab_zycit443-ebeln TO itab_zycit003-ebeln ,
...
...
IF /pws/zycie001-netpr < 0.
CLEAR /pws/zycie001-netpr.
MESSAGE e061 WITH text-235 text-236.
ENDIF.
ENDLOOP.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
ENDFORM.
* << Fim da inclusão
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
ENDFORM.
* << Fim da exclusão
FORM user_command_0003.
CASE sy-ucomm.
WHEN 'ENTER'.
PERFORM:
selecionar_itens_da.
...
...
IF itab_zycit443[] IS INITIAL.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
WHERE nrseqda EQ /pws/zycit442-nrseqda.
ENDIF.
DELETE itab_zycit443_saldo WHERE nrseqda NE /pws/zycit442-nrseqda.
* >> Início da inclusão: FORM CALCULA_SALDO_DA
IF NOT itab_zycit443[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
FOR ALL ENTRIES IN itab_zycit443
WHERE ebeln EQ itab_zycit443-ebeln
AND ebelp EQ itab_zycit443-ebelp.
IF sy-subrc EQ 0.
SELECT nrseq regime FROM /pws/zycit001
INTO TABLE itab_zycit001_saldo
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq.
LOOP AT itab_zycit001_saldo WHERE regime EQ '16'.
DELETE itab_zycit003_saldo
WHERE nrseq EQ itab_zycit001_saldo-nrseq.
ENDLOOP.
ENDIF.
LOOP AT itab_zycit443.
* << Fim da inclusão
CLEAR v_qtdutil_da.
* >> Início da exclusão: FORM CALCULA_SALDO_DA
LOOP AT itab_zycit443 .
v_tabix = sy-tabix.
LOOP AT itab_zycit443_saldo WHERE ebeln = itab_zycit443-ebeln
AND ebelp = itab_zycit443-ebelp.
READ TABLE itab_zycit455 WITH KEY
ebeln = itab_zycit443_saldo-ebeln
ebelp = itab_zycit443_saldo-ebelp.
IF sy-subrc = 0 AND NOT
itab_zycit455-nrseq IS INITIAL AND
itab_zycit455-nrseq NE /pws/zycie001-nrseq.
v_qtdutil_da = v_qtdutil_da + itab_zycit443_saldo-qtd_da.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULA_SALDO_DA
v_index = sy-tabix.
LOOP AT itab_zycit003_saldo WHERE ebeln EQ itab_zycit443-ebeln
AND ebelp EQ itab_zycit443-ebelp.
IF itab_zycit003_saldo-nrseq NE /pws/zycie001-nrseq.
v_qtdutil_da = v_qtdutil_da + itab_zycit003_saldo-qtd_iten.
* << Fim da inclusão
ENDIF.
ENDLOOP.
itab_zycit443-qtd_util = v_qtdutil_da.
* >> Início da exclusão: FORM CALCULA_SALDO_DA
MODIFY itab_zycit443 INDEX v_tabix.
* << Fim da exclusão
* >> Início da inclusão: FORM CALCULA_SALDO_DA
MODIFY itab_zycit443 INDEX v_index.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM CALCULA_SALDO_DA
ENDIF.
* << Fim da inclusão
ENDFORM.
...
...
DESCRIBE TABLE itab_da LINES tc_selda-lines.
LOOP AT tc_selda-cols INTO wa_cols.
IF v_status_s = '0'.
wa_cols-screen-input = '0'.
ENDIF.
* >> Início da inclusão: FORM TRATA_SCREEN_0003
CASE wa_cols-screen-name.
WHEN 'ITAB_DA-QTD_NAC'.
IF v_caller EQ 'SELECIONAR_RC'.
wa_cols-screen-input = '0'.
ENDIF.
ENDCASE.
* << Fim da inclusão
MODIFY tc_selda-cols FROM wa_cols.
ENDLOOP.
* >> Início da inclusão: FORM TRATA_SCREEN_0003
ENDFORM.
* << Fim da inclusão
* >> Início da exclusão: FORM TRATA_SCREEN_0003
ENDFORM.
* << Fim da exclusão
FORM salva_dados_da.
LOOP AT itab_zycit003_del.
DELETE itab_zycit455 WHERE nrseq = /pws/zycie001-nrseq
AND ebeln = itab_zycit003_del-ebeln
AND ebelp = itab_zycit003_del-ebelp .
...
...
AND ebeln = itab_zycit003-ebeln
AND ebelp = itab_zycit003-ebelp .
ENDLOOP.
COMMIT WORK.
ENDFORM.
* >> Início da inclusão: FORM CARREGA_ITAB_0111
FORM salva_dados_rc.
FIELD-SYMBOLS:
<fs_tabrc> TYPE STANDARD TABLE,
<fs_hearc> TYPE ANY,
<fs_fldrc> TYPE ANY.
DATA:
v_tipo TYPE REF TO data,
v_reg TYPE i.
CLEAR v_tipo.
PERFORM criar_tipo USING v_tabname1 CHANGING v_tipo.
IF NOT v_tipo IS INITIAL.
ASSIGN v_tipo->* TO <fs_tabrc>.
ENDIF.
IF NOT <fs_tabrc> IS ASSIGNED.
EXIT.
ENDIF.
LOOP AT itab_zycit003_del.
LOOP AT itab_zycit455
WHERE nrseq EQ /pws/zycie001-nrseq
AND ebeln EQ itab_zycit003_del-ebeln
AND ebelp EQ itab_zycit003_del-ebelp.
READ TABLE itab_zycit442
WITH KEY nrseqda = itab_zycit455-nrseqda.
IF sy-subrc EQ 0.
REFRESH <fs_tabrc>.
SELECT *
INTO TABLE <fs_tabrc>
FROM (v_tabname1)
WHERE cod_matriz EQ /pws/zycie001-bukrs
AND cod_filial EQ /pws/zycie001-j_1bbranch
AND num_da_di EQ itab_zycit442-nrdi
AND num_adicao EQ itab_zycit455-adicao
AND num_item_adicao EQ itab_zycit455-itseqda
AND id_util EQ 'X'.
IF NOT <fs_tabrc>[] IS INITIAL.
LOOP AT <fs_tabrc> ASSIGNING <fs_hearc>.
UNASSIGN <fs_fldrc>.
ASSIGN COMPONENT 'ID_UTIL' OF STRUCTURE <fs_hearc>
TO <fs_fldrc>.
IF <fs_fldrc> IS ASSIGNED.
<fs_fldrc> = space.
ENDIF.
ENDLOOP.
UPDATE (v_tabname1) FROM TABLE <fs_tabrc>.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
LOOP AT itab_zycit003.
LOOP AT itab_zycit455
WHERE nrseqda EQ itab_zycit003-nrseqda
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND adicao EQ itab_zycit003-adicao.
READ TABLE itab_zycit442
WITH KEY nrseqda = itab_zycit455-nrseqda.
IF sy-subrc EQ 0.
REFRESH <fs_tabrc>.
SELECT *
INTO TABLE <fs_tabrc>
FROM (v_tabname1)
WHERE cod_matriz EQ /pws/zycie001-bukrs
AND cod_filial EQ /pws/zycie001-j_1bbranch
AND num_da_di EQ itab_zycit442-nrdi
AND num_adicao EQ itab_zycit455-adicao
AND num_item_adicao EQ itab_zycit455-itseqda
AND id_util EQ space.
IF NOT <fs_tabrc>[] IS INITIAL.
LOOP AT <fs_tabrc> ASSIGNING <fs_hearc>.
UNASSIGN <fs_fldrc>.
ASSIGN COMPONENT 'ID_UTIL' OF STRUCTURE <fs_hearc>
TO <fs_fldrc>.
IF <fs_fldrc> IS ASSIGNED.
<fs_fldrc> = 'X'.
ENDIF.
ENDLOOP.
UPDATE (v_tabname1) FROM TABLE <fs_tabrc>.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
ENDFORM.
* << Fim da inclusão
FORM carrega_itab_0111.
MOVE-CORRESPONDING /pws/zycie003 TO itab_zycit003.
MODIFY itab_zycit003 INDEX tc_da-current_line.
ENDFORM.
FORM consiste_sld_da.
...
...
FORM selecionar_rc.
FIELD-SYMBOLS:
<fs_tabrc> TYPE STANDARD TABLE,
<fs_hearc> TYPE ANY,
<fs_fldrc> TYPE ANY.
* >> Início da inclusão: FORM SELECIONAR_RC
DATA:
itab_zycit003_saldo LIKE itab_zycit003 OCCURS 0
WITH HEADER LINE.
* << Fim da inclusão
DATA:
v_tipo TYPE REF TO data,
v_reg TYPE i,
BEGIN OF itab_rc_aux OCCURS 100,
cod_matriz TYPE /pws/zycie442-bukrs,
...
...
itab_da-qtd_nac = itab_rc_aux-quantidade.
MODIFY itab_da FROM itab_da TRANSPORTING qtd_nac.
ENDIF.
ENDLOOP.
ENDIF.
* >> Início da exclusão: FORM SELECIONAR_RC
ENDIF.
* << Fim da exclusão
IF NOT itab_da[] IS INITIAL.
DESCRIBE TABLE itab_da LINES v_line.
* >> Início da inclusão: FORM SELECIONAR_RC
v_caller = 'SELECIONAR_RC'.
* << Fim da inclusão
CALL SCREEN '0003'.
ELSE.
MESSAGE s015 WITH text-259.
* >> Início da inclusão: FORM SELECIONAR_RC
ENDIF.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM criar_tipo USING p_tabname
CHANGING p_tipo.
DATA:
...
...
it_fieldcatalog = t_fieldcat
IMPORTING
ep_table = p_tipo.
ENDIF.
ENDFORM.
* >> Início da inclusão:
FORM gravar_custos.
TABLES: j_1bbranch ,
adrc ,
/pws/zycit062,
/pws/zycit036.
DATA: BEGIN OF itab_zycit461 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit461.
DATA: dtlanc LIKE /pws/zycit459-dtlanc,
hr_docfat LIKE /pws/zycit459-hr_docfat.
DATA: END OF itab_zycit461.
DATA: BEGIN OF itab_zycit466 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit466.
DATA: END OF itab_zycit466.
DATA: itab_zycit036_aux LIKE /pws/zycit036 OCCURS 0 WITH HEADER LINE,
itab_zycit459 LIKE /pws/zycit459 OCCURS 0 WITH HEADER LINE,
itab_zycit465 LIKE /pws/zycit465 OCCURS 0 WITH HEADER LINE,
itab_zycit019 LIKE /pws/zycit019 OCCURS 0 WITH HEADER LINE,
itab_zycit461_aux LIKE itab_zycit461 OCCURS 0 WITH HEADER LINE,
itab_zycit466_aux LIKE itab_zycit466 OCCURS 0 WITH HEADER LINE.
DATA: v_vldp LIKE /pws/zycit461-vldp,
v_netpc_nac LIKE /pws/zycit036-netpr,
v_netdc_nac LIKE /pws/zycit036-netpr,
v_vldpd LIKE /pws/zycit466-vldp .
CLEAR : itab_zycit003_saldo.
REFRESH : itab_zycit003_saldo.
LOOP AT itab_zycit036_del.
DELETE FROM /pws/zycit036 WHERE nrseq = itab_zycit036_del-nrseq
AND ebeln = itab_zycit036_del-ebeln
AND ebelp = itab_zycit036_del-ebelp.
ENDLOOP.
CLEAR itab_zycit036_del.
REFRESH itab_zycit036_del.
IF NOT itab_zycit003[] IS INITIAL.
SELECT SINGLE land1 FROM t001 INTO t001-land1
WHERE bukrs EQ /pws/zycie001-bukrs.
SELECT SINGLE * FROM j_1bbranch
WHERE bukrs = /pws/zycie001-bukrs AND
branch = /pws/zycie001-j_1bbranch.
IF sy-subrc EQ 0.
SELECT SINGLE * FROM adrc
WHERE addrnumber = j_1bbranch-adrnr.
ENDIF.
SELECT SINGLE * FROM /pws/zycit062
WHERE regio = adrc-region.
IF /pws/zycbt007 IS INITIAL.
SELECT SINGLE *
FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie001-bukrs.
ENDIF.
SELECT * FROM /pws/zycit019 INTO TABLE itab_zycit019
WHERE land1 EQ t001-land1.
READ TABLE itab_zycit003 INDEX 1.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003_saldo
WHERE nrseqda EQ itab_zycit003-nrseqda.
DELETE itab_zycit003_saldo WHERE nrseq EQ /pws/zycie001-nrseq.
IF NOT itab_zycit003_saldo[] IS INITIAL.
SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036_aux
FOR ALL ENTRIES IN itab_zycit003_saldo
WHERE nrseq EQ itab_zycit003_saldo-nrseq.
ENDIF.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseqda EQ itab_zycit003-nrseqda.
SELECT * FROM /pws/zycit459 INTO TABLE itab_zycit459
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseqda EQ itab_zycit003-nrseqda
AND status EQ 'A'.
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit461 INTO TABLE itab_zycit461
FOR ALL ENTRIES IN itab_zycit459
WHERE nrseqda = itab_zycit459-nrseqda.
ENDIF.
SELECT * FROM /pws/zycit465 INTO TABLE itab_zycit465
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseqda
AND status EQ 'A'.
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit466 INTO TABLE itab_zycit466
FOR ALL ENTRIES IN itab_zycit465
WHERE nrseq = itab_zycit465-nrseq
AND nradto = itab_zycit465-nradto.
ENDIF.
ENDIF.
DELETE itab_zycit036_aux WHERE origem EQ 'PED'.
SORT itab_zycit459 BY dtlanc hr_docfat .
DESCRIBE TABLE itab_zycit459 LINES v_line.
READ TABLE itab_zycit459 INDEX 1.
LOOP AT itab_zycit461 WHERE nrseqda EQ itab_zycit459-nrseqda
AND nradto EQ itab_zycit459-nrpres.
READ TABLE itab_zycit461_aux WITH KEY
tpdesp = itab_zycit461-tpdesp.
IF sy-subrc NE 0.
MOVE itab_zycit461 TO itab_zycit461_aux.
APPEND itab_zycit461_aux.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit459.
LOOP AT itab_zycit461 WHERE nrseqda EQ itab_zycit459-nrseqda
AND nradto EQ itab_zycit459-nrpres.
itab_zycit461-dtlanc = itab_zycit459-dtlanc.
itab_zycit461-hr_docfat = itab_zycit459-hr_docfat.
MODIFY itab_zycit461.
ENDLOOP.
ENDLOOP.
SORT itab_zycit466 BY dtlanc hr_f02 tpdesp.
DESCRIBE TABLE itab_zycit465 LINES v_line.
LOOP AT itab_zycit466.
READ TABLE itab_zycit466_aux WITH KEY
tpdesp = itab_zycit466-tpdesp.
IF sy-subrc NE 0.
MOVE itab_zycit466 TO itab_zycit466_aux.
APPEND itab_zycit466_aux.
ENDIF.
ENDLOOP.
LOOP AT itab_zycit003.
DESCRIBE TABLE itab_zycit459 LINES v_line.
LOOP AT itab_zycit461 .
CLEAR v_qtdutil_da.
READ TABLE itab_zycit459 WITH KEY nrseqda = itab_zycit461-nrseqda
nrpres = itab_zycit461-nradto.
READ TABLE itab_zycit019 WITH KEY tpdesp = itab_zycit461-tpdesp.
IF sy-subrc EQ 0.
READ TABLE itab_zycit461_aux
WITH KEY nrseqda = itab_zycit461-nrseqda
tpdesp = itab_zycit461-tpdesp
nradto = itab_zycit461-nradto .
IF sy-subrc NE 0.
LOOP AT itab_zycit003_saldo
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
READ TABLE itab_zycit036_aux WITH KEY
ebeln = itab_zycit003_saldo-ebeln
ebelp = itab_zycit003_saldo-ebelp
nrseq = itab_zycit003_saldo-nrseq.
IF sy-subrc EQ 0 .
IF itab_zycit036_aux-dtuserc Le itab_zycit461-dtlanc .
if itab_zycit036_aux-hruserc LT itab_zycit461-hr_docfat.
v_qtdutil_da = v_qtdutil_da +
itab_zycit003_saldo-qtd_iten.
endif.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
CLEAR itab_zycit036_aux.
MOVE: itab_zycit003-nrseq TO itab_zycit036_aux-nrseq,
itab_zycit003-ebeln TO itab_zycit036_aux-ebeln,
itab_zycit003-ebelp TO itab_zycit036_aux-ebelp,
/pws/zycie001-embarca TO itab_zycit036_aux-embarca,
itab_zycit019-codigo TO itab_zycit036_aux-codigo,
'PCD' TO itab_zycit036_aux-origem,
/pws/zycie001-bukrs TO itab_zycit036_aux-bukrs,
itab_zycit003-werks TO itab_zycit036_aux-werks,
'D' TO itab_zycit036_aux-codmod,
sy-uname TO itab_zycit036_aux-usernamec,
sy-datum TO itab_zycit036_aux-dtuserc,
sy-uzeit TO itab_zycit036_aux-hruserc,
/pws/zycbt007-waersb TO itab_zycit036_aux-waers_real,
itab_zycit461-nradto TO itab_zycit036_aux-nrseqori .
READ TABLE itab_zycit443 WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
IF NOT itab_zycit443-qtd_da IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-qtd_iten /
( itab_zycit443-qtd_da - v_qtdutil_da ) ) *
itab_zycit461-vldp.
ENDIF.
IF NOT itab_zycit036_aux-vlreal LT 0.
APPEND itab_zycit036_aux.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
DESCRIBE TABLE itab_zycit465 LINES v_line.
LOOP AT itab_zycit466 .
CLEAR v_qtdutil_da.
READ TABLE itab_zycit019 WITH KEY tpdesp = itab_zycit466-tpdesp.
IF sy-subrc EQ 0.
LOOP AT itab_zycit003_saldo
WHERE ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp.
READ TABLE itab_zycit036_aux WITH KEY
ebeln = itab_zycit003_saldo-ebeln
ebelp = itab_zycit003_saldo-ebelp
nrseq = itab_zycit003_saldo-nrseq.
IF sy-subrc EQ 0 .
IF itab_zycit036_aux-dtuserc Le itab_zycit466-dtlanc .
if itab_zycit036_aux-hruserc LT itab_zycit466-hr_f02.
v_qtdutil_da = v_qtdutil_da +
itab_zycit003_saldo-qtd_iten.
endif.
ENDIF.
ENDIF.
ENDLOOP.
CLEAR itab_zycit036_aux.
MOVE: itab_zycit003-nrseq TO itab_zycit036_aux-nrseq,
itab_zycit003-ebeln TO itab_zycit036_aux-ebeln,
itab_zycit003-ebelp TO itab_zycit036_aux-ebelp,
/pws/zycie001-embarca TO itab_zycit036_aux-embarca,
itab_zycit019-codigo TO itab_zycit036_aux-codigo,
'DCD' TO itab_zycit036_aux-origem,
/pws/zycie001-bukrs TO itab_zycit036_aux-bukrs,
itab_zycit003-werks TO itab_zycit036_aux-werks,
'D' TO itab_zycit036_aux-codmod,
sy-uname TO itab_zycit036_aux-usernamec,
sy-datum TO itab_zycit036_aux-dtuserc,
sy-uzeit TO itab_zycit036_aux-hruserc,
/pws/zycbt007-waersb TO itab_zycit036_aux-waers_real,
itab_zycit466-nradto TO itab_zycit036_aux-nrseqori .
READ TABLE itab_zycit443 WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
IF NOT itab_zycit443-qtd_da IS INITIAL.
itab_zycit036_aux-vlreal = ( itab_zycit003-qtd_iten /
( itab_zycit443-qtd_da - v_qtdutil_da ) ) *
itab_zycit466-vldp.
ENDIF.
IF NOT itab_zycit036_aux-vlreal LT 0.
APPEND itab_zycit036_aux.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDLOOP.
LOOP AT itab_zycit036_aux.
MODIFY /pws/zycit036 FROM itab_zycit036_aux.
ENDLOOP.
COMMIT WORK.
ENDFORM.
FORM call_rec.
SELECT SINGLE * FROM /pws/zycit455
WHERE nrseq EQ /pws/zycie001-nrseq.
SELECT SINGLE nrseqda FROM /pws/zycit443
INTO v_nrseqdi
WHERE nrseqda = /pws/zycit455-nrseqda.
SELECT SINGLE * FROM /pws/zycit442
WHERE nrseqda = v_nrseqdi.
IF sy-subrc = 0.
IF sy-tcode EQ '/PWS/ZYCI001_C'.
SET PARAMETER ID '/PWS/ZYCIP085' FIELD /pws/zycit442-nrseqda.
SET PARAMETER ID '/PWS/ZYGLP089' FIELD /pws/zycit442-identify.
PERFORM valida_trans USING '/PWS/ZYCI017_C' 'skip'.
ELSEIF sy-tcode EQ '/PWS/ZYCI001_A'.
SET PARAMETER ID '/PWS/ZYCIP085' FIELD /pws/zycit442-nrseqda.
SET PARAMETER ID '/PWS/ZYGLP089' FIELD /pws/zycit442-identify.
PERFORM valida_trans USING '/PWS/ZYCI017_A' 'skip'.
ELSEIF sy-tcode EQ '/PWS/ZYCI001_E'.
SET PARAMETER ID '/PWS/ZYCIP085' FIELD /pws/zycit442-nrseqda.
SET PARAMETER ID '/PWS/ZYGLP089' FIELD /pws/zycit442-identify.
PERFORM valida_trans USING '/PWS/ZYCI017_E' 'skip'.
ENDIF.
ELSE.
MESSAGE e015 WITH text-049.
ENDIF.
ENDFORM.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
v_waers_diferente = 'X'.
ENDLOOP.
IF sy-subrc NE 0.
/pws/zycie001-waers = v_moeda.
ENDIF.
* >> Início da inclusão: MODULE USER_COMMAND_0102
if /pws/zycie001-regime ne '14' and
/pws/zycie001-regime ne '16'.
* << Fim da inclusão
LOOP AT itab_zycit003.
IF v_waers_diferente = 'X'.
PERFORM busca_taxa_dia USING itab_zycit003-waers
CHANGING v_taxa .
ELSE.
...
...
v_taxa ).
PERFORM tratar_decimais USING itab_zycit003-waers
CHANGING v_netpr.
/pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.
ENDLOOP.
* >> Início da inclusão: MODULE USER_COMMAND_0102
endif.
* << Fim da inclusão
ENDCASE.
ENDMODULE.
MODULE atualizar_itens INPUT.
DATA:v_ver_index LIKE sy-tabix.
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
...
...
WHEN 'RECEB'.
IF /pws/zycie001-modalidade EQ '02'.
MESSAGE i013 WITH text-202.
EXIT.
ENDIF.
* >> Início da inclusão: MODULE USER_COMMAND_0050
if /pws/zycie001-regime ne '04'.
* << Fim da inclusão
PERFORM call_bt.
* >> Início da inclusão: MODULE USER_COMMAND_0050
else.
perform call_rec.
endif.
* << Fim da inclusão
WHEN 'CO'.
IF v_status_s NE 0.
PERFORM grava_tabelas.
ENDIF.
PERFORM call_corigem.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001O01
...
perform carrega_estrutura.
DESCRIBE TABLE itab_zycit003 LINES v_line.
tc_da-lines = v_line.
endif.
endif.
* >> Início da inclusão: MODULE CARREGA_ESTRUTURA
endmodule.
* << Fim da inclusão
* >> Início da exclusão: MODULE CARREGA_ESTRUTURA
endmodule.
* << Fim da exclusão
module STATUS_0003 output.
SET PF-STATUS '0003'.
endmodule.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001TOP
...
DATA: BEGIN OF itab_zycit003_del OCCURS 0.
DATA: ebeln LIKE /pws/zycie003-ebeln,
ebelp LIKE /pws/zycie003-ebelp,
qtd_iten LIKE /pws/zycit003-qtd_iten,
END OF itab_zycit003_del.
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit036_del OCCURS 0.
DATA: nrseq LIKE /pws/zycie036-nrseq,
ebeln LIKE /pws/zycie036-ebeln,
ebelp LIKE /pws/zycie036-ebelp,
END OF itab_zycit036_del.
DATA: itab_zycit455_del LIKE /pws/zycit455 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
DATA t_zycit003 LIKE /pws/zycit003 OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_zycit008 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit008.
DATA: END OF itab_zycit008.
DATA: BEGIN OF itab_zycit354 OCCURS 10.
...
...
v_fldname1 TYPE dd03l-fieldname,
v_fldname2 TYPE dd03l-fieldname,
v_fldname3 TYPE dd03l-fieldname,
v_fldname4 TYPE dd03l-fieldname,
v_fldname5 TYPE dd03l-fieldname,
* >> Início da inclusão:
v_caller TYPE syst-xform,
* << Fim da inclusão
v_mexit(01) TYPE c.
DATA v_land1 LIKE t001-land1.
DATA v_valida.
DATA:
ok_code LIKE sy-ucomm ,
...
...
IF sy-dynnr EQ '0701'.
IF v_tabname1 IS INITIAL.
LEAVE TO SCREEN 0.
ENDIF.
SET TITLEBAR '0701'.
* >> Início da inclusão:
REFRESH:
so_matri,
so_filia.
* << Fim da inclusão
MOVE:
/pws/zycie001-bukrs TO so_matri-low,
/pws/zycie001-j_1bbranch TO so_filia-low.
LOOP AT SCREEN.
IF ( screen-name EQ 'SO_MATRI-LOW' AND
...
...
NOT so_filia-low IS INITIAL ).
screen-input = '0'.
MODIFY SCREEN.
ENDIF.
ENDLOOP.
* >> Início da inclusão:
IF NOT so_matri-low IS INITIAL.
so_matri-sign = 'I'.
so_matri-option = 'EQ'.
APPEND so_matri.
ENDIF.
IF NOT so_filia-low IS INITIAL.
so_filia-sign = 'I'.
so_filia-option = 'EQ'.
APPEND so_filia.
ENDIF.
* << Fim da inclusão
ENDIF.
AT SELECTION-SCREEN.
CASE sy-dynnr .
WHEN '0300'.
CASE sy-ucomm.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
...
INCLUDE STRUCTURE /pws/zycit443.
DATA: END OF itab_zycit443_saldo.
DATA: BEGIN OF itab_zycit003_saldo OCCURS 0.
INCLUDE STRUCTURE /pws/zycit003.
DATA: END OF itab_zycit003_saldo.
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit001_saldo OCCURS 0,
nrseq like /pws/zycit001-nrseq,
regime like /pws/zycit001-regime.
DATA: END OF itab_zycit001_saldo.
* << Fim da inclusão
DATA: BEGIN OF itab_zycit455 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit455.
DATA: END OF itab_zycit455.
DATA: BEGIN OF itab_zycit455_aux OCCURS 0.
INCLUDE STRUCTURE /pws/zycit455.
...
...
DATA: END OF itab_da.
DATA: itab_zycit443_aux LIKE itab_zycit443 OCCURS 0 WITH HEADER LINE,
itab_da_aux LIKE itab_da OCCURS 0 WITH HEADER LINE,
itab_da_aux2 LIKE itab_da OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF itab_nac OCCURS 0.
* >> Início da exclusão:
DATA: ebeln LIKE /pws/zycit443-ebeln,
ebelp LIKE /pws/zycit443-ebelp,
* << Fim da exclusão
* >> Início da inclusão:
DATA: ebeln LIKE /pws/zycit443-ebeln,
ebelp LIKE /pws/zycit443-ebelp,
* << Fim da inclusão
qtd_nac LIKE /pws/zycit443-qtd_iten.
DATA: END OF itab_nac.
DATA: END OF COMMON PART a.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI075F02
...
AND ebeln EQ itab_zycit036-ebeln
AND ebelp EQ itab_zycit036-ebelp
AND codigo EQ itab_zycit036-codigo
AND origem EQ 'PC'
AND nrseqori EQ itab_zycit036-nrseqori.
* >> Início da exclusão: FORM GRAVAR_CUSTOS_FUNCAO
IF sy-subrc NE 0.
MODIFY /pws/zycit036 FROM itab_zycit036.
ENDIF.
* << Fim da exclusão
ENDLOOP.
/pws/zycie459-dtlanc = sy-datlo.
UPDATE /pws/zycit459 SET dtlanc = /pws/zycie459-dtlanc
WHERE nrpres = /pws/zycie459-nrpres.
ENDFORM.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCIR006
...
/pws/zycit085,
/pws/zycit100,
/pws/zycit093,
/pws/zycit132,
/pws/zycit174,
* >> Início da exclusão:
indx.
* << Fim da exclusão
* >> Início da inclusão:
indx,
/pws/zycit442.
* << Fim da inclusão
DATA: BEGIN OF itab_zycit003 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit003.
DATA: mark.
DATA: END OF itab_zycit003.
DATA: BEGIN OF itab_zycit029 OCCURS 0.
...
...
INCLUDE STRUCTURE /pws/zycit007.
DATA: END OF itab_zycit007.
DATA: BEGIN OF itab_tcurc OCCURS 0.
INCLUDE STRUCTURE tcurc.
DATA: END OF itab_tcurc.
* >> Início da inclusão:
DATA: BEGIN OF itab_zycit443 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit443.
DATA: END OF itab_zycit443.
* << Fim da inclusão
DATA: wa_t001w LIKE t001w,
wa_bseg LIKE bseg OCCURS 0.
DATA:
v_netpr LIKE ekpo-netpr,
v_porcent LIKE konv-kbetr,
...
...
fator_nao_encontrado = 6
i_montante_nao_encontrado = 7
OTHERS = 8.
ENDFORM.
FORM custear_itens.
* >> Início da inclusão: FORM CUSTEAR_ITENS
if /pws/zycie001-regime ne '14'.
* << Fim da inclusão
PERFORM calcular_outros_custos TABLES itab_zycit036.
* >> Início da inclusão: FORM CUSTEAR_ITENS
else.
PERFORM calcular_outros_custos_da TABLES itab_zycit036.
endif.
* << Fim da inclusão
ENDFORM.
FORM gravar_tabelas.
DATA: itab_zycit036_cong LIKE itab_zycit036 OCCURS 0 WITH HEADER LINE.
MOVE itab_zycit036[] TO itab_zycit036_cong[].
DELETE itab_zycit036_cong WHERE congelamov NE 'X'.
...
...
IF sy-subrc <> 0.
tcurx-currdec = 2.
ENDIF.
p_valor = p_valor / ( 10 ** ( tcurx-currdec - 2 ) ).
ENDFORM.
* >> Início da inclusão:
FORM calcular_outros_custos_da
TABLES itab_zycit036 STRUCTURE itab_zycit036.
DATA: v_importou,
v_real_brl LIKE /pws/zycit036-vlreal,
v_valor LIKE /pws/zycit036-vlreal,
v_val_real LIKE /pws/zycit036-vlreal,
v_itemcongela,
v_belnr_p LIKE /pws/zycit006-belnr_p,
v_nrseq_fat LIKE /pws/zycit006-nrseq,
v_kursf LIKE bkpf-kursf,
itab_zycit036_auxl LIKE itab_zycit036 OCCURS 10 WITH HEADER LINE
,
itab_bkpf LIKE bkpf OCCURS 10 WITH HEADER LINE,
v_dtincl LIKE /pws/zycit006-dtincl,
v_acum_seg LIKE /pws/zycit442-vlseg,
v_acum_fre LIKE /pws/zycit442-vlfre,
v_result LIKE /pws/zycit036-vldif,
v_resultf LIKE /pws/zycit036-vldif,
v_vlfre LIKE /pws/zycit442-vlfre,
v_ukursfre LIKE /pws/zycit442-ukursfre,
v_vlseg LIKE /pws/zycit442-vlseg,
v_ukursseg LIKE /pws/zycit442-ukursseg,
v_usd LIKE /pws/zycie442-ukursfob,
v_vl LIKE /pws/zycit036-netpr VALUE '0.01',
v_val_tot LIKE /pws/zycit036-vlreal ,
v_val_tots LIKE /pws/zycit036-vlreal ,
v_linf TYPE i,
v_lins TYPE i,
v_tot_lins TYPE i,
v_tot_linf TYPE i,
v_valor_mi LIKE /pws/zycit036-vlreal,
v_val LIKE /pws/zycit443-vlseg .
IF itab_zycit036[] IS INITIAL .
v_importou = 'S'.
indx-aedat = sy-datum.
indx-usera = sy-uname.
IMPORT itab_zycit036_auxiliar[] FROM MEMORY ID 'I006A'.
MOVE-CORRESPONDING itab_zycit036_auxiliar TO itab_zycit036.
ENDIF.
READ TABLE itab_zycit036 INDEX 1.
IF pa_nrseq IS INITIAL.
pa_nrseq = itab_zycit036-nrseq.
ENDIF.
SELECT SINGLE * FROM /pws/zycit001 WHERE nrseq = itab_zycit036-nrseq.
SELECT SINGLE *
FROM t001
WHERE bukrs EQ /pws/zycit001-bukrs.
CLEAR: itab_zycit140. FREE: itab_zycit140.
SELECT * FROM /pws/zycit140 INTO TABLE itab_zycit140
WHERE codmod EQ 'D' AND
land1 EQ t001-land1.
select * from /pws/zycit003 into table itab_zycit003
where nrseq eq /pws/zycie001-nrseq.
read table itab_zycit003 index 1.
SELECT SINGLE nrseqda FROM /pws/zycit442 INTO pa_nrseq
WHERE nrseqda = itab_zycit003-nrseqda.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443
WHERE nrseqda = pa_nrseq.
SELECT SINGLE * FROM /pws/zycit442
WHERE nrseqda = pa_nrseq.
SELECT SINGLE *
FROM /pws/zycit000
WHERE land1 EQ t001-land1.
SELECT SINGLE *
FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycit001-bukrs.
CLEAR: itab_tcurc, itab_zycit174.
REFRESH: itab_tcurc, itab_zycit174.
IF NOT itab_zycit443[] IS INITIAL and
/pws/zycit442-mdadicao = 'N'.
SELECT * FROM tcurc INTO TABLE itab_tcurc
FOR ALL ENTRIES IN itab_zycit443
WHERE waers = itab_zycit443-waersbem.
SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174
WHERE vigen_inicio <= /pws/zycit442-dttax AND
vigen_fim >= /pws/zycit442-dttax AND
land1 = t001-land1.
ENDIF.
LOOP AT itab_zycit443.
IF /pws/zycit442-mdadicao = 'N'.
IF itab_zycit443-waersbem NE /pws/zycit442-waersfob.
CLEAR : /pws/zycit174, v_moeda.
READ TABLE itab_tcurc WITH KEY
waers = itab_zycit443-waersbem.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
ENDIF.
ENDIF.
IF NOT /pws/zycit174-txconver IS INITIAL.
itab_zycit443-vlfob =
itab_zycit443-vlfob * /pws/zycit174-txconver.
ENDIF.
CLEAR : /pws/zycit174, v_moeda.
READ TABLE itab_tcurc WITH KEY
waers = itab_zycit443-waersbem.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
ENDIF.
ENDIF.
IF NOT /pws/zycit174-txconver IS INITIAL.
itab_zycit443-vlfob =
itab_zycit443-vlfob / /pws/zycit174-txconver.
ENDIF.
itab_zycit443-dttaxbem = /pws/zycit174-txconver.
itab_zycit443-waersbem = /pws/zycit442-waersfob .
ENDIF.
ENDIF.
MODIFY itab_zycit443 TRANSPORTING vlfob dttaxbem.
ENDLOOP.
PERFORM desconsidera_desp_est CHANGING itab_zycit036-nrseq.
LOOP AT itab_zycit036.
IF itab_zycit036-origem = 'PED'.
MOVE itab_zycit036 TO itab_zycit036_plan.
APPEND itab_zycit036_plan.
ENDIF.
ENDLOOP.
MOVE itab_zycit036[] TO itab_zycit036_auxl[].
LOOP AT itab_zycit036 WHERE NOT vlmov IS initial AND
origem NE 'PED'.
READ TABLE itab_zycit036_auxl
WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo
origem = 'PED'.
IF sy-subrc = 0.
CLEAR itab_zycit036_auxl-vlmov.
MODIFY itab_zycit036_auxl INDEX sy-tabix.
ENDIF.
ENDLOOP.
IF NOT itab_zycit036[] IS INITIAL.
SELECT * FROM tcurc INTO TABLE itab_tcurc
FOR ALL ENTRIES IN itab_zycit036
WHERE waers EQ itab_zycit036-waers_real.
SELECT * FROM tcurc APPENDING TABLE itab_tcurc
WHERE waers = /pws/zycit442-waersfob.
SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174
WHERE vigen_inicio <= /pws/zycit442-dttax AND
vigen_fim >= /pws/zycit442-dttax AND
land1 = t001-land1.
IF itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
FOR ALL ENTRIES IN itab_zycit036
WHERE nrseq = itab_zycit036-nrseq
AND ebeln = itab_zycit036-ebeln
AND ebelp = itab_zycit036-ebelp.
ENDIF.
IF itab_zycit263[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit036
WHERE nrseq = itab_zycit036-nrseq
AND ebeln = itab_zycit036-ebeln
AND ebelp = itab_zycit036-ebelp
AND eliminado NE 'X'.
ENDIF.
IF itab_zycit006[] IS INITIAL.
SELECT *
FROM /pws/zycit006
INTO TABLE itab_zycit006
FOR ALL ENTRIES IN itab_zycit036
WHERE nrseq = itab_zycit036-nrseqori
AND eliminado EQ space.
ENDIF.
ENDIF.
IF NOT itab_zycit006[] IS INITIAL.
DATA: BEGIN OF itab_zycit006_year OCCURS 0.
INCLUDE STRUCTURE /pws/zycit006.
DATA: END OF itab_zycit006_year.
DATA: v_tabix LIKE sy-tabix,
v_year LIKE t009b-bdatj.
MOVE itab_zycit006[] TO itab_zycit006_year[].
LOOP AT itab_zycit006_year.
v_tabix = sy-tabix.
IF itab_zycit006_year-frpagto NE 'A'.
IF NOT itab_zycit006_year-dt_belnrp IS INITIAL AND
NOT itab_zycit006_year-bukrs IS INITIAL.
CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'
EXPORTING
v_bukrs = itab_zycit006_year-bukrs
v_date = itab_zycit006_year-dt_belnrp
IMPORTING
v_year = v_year.
itab_zycit006_year-dt_belnrp+0(4) = v_year.
MODIFY itab_zycit006_year INDEX v_tabix.
ENDIF.
ENDIF.
ENDLOOP.
IF NOT itab_zycit006[] IS INITIAL.
SELECT *
FROM bkpf
INTO TABLE itab_bkpf
FOR ALL ENTRIES IN itab_zycit006
WHERE bukrs EQ itab_zycit006-bukrs
AND belnr EQ itab_zycit006-belnr_p
AND gjahr EQ itab_zycit006-dt_belnrp(04).
ENDIF.
itab_zycit006[] = itab_zycit006_year[].
ENDIF.
IF /pws/zycit442-mdadicao EQ 'N'.
LOOP AT itab_zycit036 WHERE origem EQ 'NF'.
v_index = sy-tabix.
IF itab_zycit036-codigo EQ 'FOB' OR
itab_zycit036-codigo EQ 'C&F' OR
itab_zycit036-codigo EQ 'CIF' .
IF itab_zycit036-waers_real NE /pws/zycit442-waersfob.
READ TABLE itab_tcurc WITH KEY
waers = itab_zycit036-waers_real.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
ENDIF.
ENDIF.
IF NOT /pws/zycit174-txconver IS INITIAL.
itab_zycit036-vlreal =
itab_zycit036-vlreal * /pws/zycit174-txconver.
ENDIF.
CLEAR : /pws/zycit174, v_moeda.
READ TABLE itab_tcurc WITH KEY
waers = /pws/zycit442-waersfob.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
ENDIF.
ENDIF.
IF NOT /pws/zycit174-txconver IS INITIAL.
itab_zycit036-vlreal =
itab_zycit036-vlreal / /pws/zycit174-txconver.
ENDIF.
itab_zycit036-waers_real = /pws/zycit442-waersfob.
ENDIF.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
ENDLOOP.
CLEAR : /pws/zycit174, v_moeda.
LOOP AT itab_zycit036 WHERE origem EQ 'FAT'.
v_index = sy-tabix.
IF itab_zycit036-codigo EQ 'FOB' OR
itab_zycit036-codigo EQ 'C&F' OR
itab_zycit036-codigo EQ 'CIF' .
IF itab_zycit036-waers_real NE /pws/zycit442-waersfob.
READ TABLE itab_tcurc WITH KEY
waers = itab_zycit036-waers_real.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
ENDIF.
ENDIF.
IF NOT /pws/zycit174-txconver IS INITIAL.
itab_zycit036-vlreal =
itab_zycit036-vlreal * /pws/zycit174-txconver.
ENDIF.
CLEAR : /pws/zycit174, v_moeda.
READ TABLE itab_tcurc WITH KEY
waers = /pws/zycit442-waersfob.
IF sy-subrc EQ 0.
MOVE itab_tcurc-/pws/codmo TO v_moeda.
READ TABLE itab_zycit174 WITH KEY
codconver = v_moeda.
IF sy-subrc EQ 0.
MOVE itab_zycit174 TO /pws/zycit174.
ENDIF.
ENDIF.
IF NOT /pws/zycit174-txconver IS INITIAL.
itab_zycit036-vlreal =
itab_zycit036-vlreal / /pws/zycit174-txconver.
ENDIF.
itab_zycit036-waers_real = /pws/zycit442-waersfob.
ENDIF.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
ENDLOOP.
ENDIF.
LOOP AT itab_zycit140 WHERE origem = 'NF'.
LOOP AT itab_zycit036 WHERE nrseqori <> '9999999999' AND
codigo = itab_zycit140-codigo.
ENDLOOP.
IF sy-subrc = 0.
DELETE itab_zycit036 WHERE codigo = itab_zycit140-codigo AND
nrseqori = '9999999999'.
ENDIF.
ENDLOOP.
CLEAR: v_tot_linf, v_tot_lins, v_linf, v_lins.
SORT itab_zycit036 BY ebeln ebelp origem codigo.
LOOP AT itab_zycit036 WHERE codigo EQ 'FRETEI'.
v_tot_linf = v_tot_linf + 1.
ENDLOOP.
LOOP AT itab_zycit036 WHERE codigo EQ 'SEGURO'.
v_tot_lins = v_tot_lins + 1.
ENDLOOP.
data : begin of itab_zycit006_fat occurs 0.
include structure /pws/zycit006.
data : end of itab_zycit006_fat.
if not itab_zycit263[] is initial.
SELECT * FROM /pws/zycit006 into table itab_zycit006_fat
for all entries in itab_zycit263
WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat
AND frpagto = 'A'
AND tpfatura NE '99'
AND eliminado NE 'X'.
endif.
loop at itab_zycit036 where origem ne 'PED'.
IF itab_zycit036-netpr <= v_vl.
CLEAR itab_zycit036-netpr.
ENDIF.
CLEAR v_valor.
v_index = sy-tabix.
CLEAR v_itemcongela.
READ TABLE itab_zycit036_auxl WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
congelamov = 'X'.
IF sy-subrc EQ 0.
v_itemcongela = 'X'.
ENDIF.
CASE itab_zycit036-codigo.
WHEN 'FOB' OR 'C&F' OR 'CIF'.
IF itab_zycit036-origem = 'FAT'.
READ TABLE itab_zycit003 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF sy-subrc = 0.
READ TABLE itab_zycit263 WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
SELECT SINGLE nrseq belnr_p dtincl FROM /pws/zycit006
INTO (v_nrseq_fat,v_belnr_p,v_dtincl)
WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat.
IF sy-subrc EQ 0 AND v_belnr_p IS INITIAL.
SELECT SINGLE belnr_p FROM /pws/zycit132
INTO (v_belnr_p)
WHERE nrseq EQ v_nrseq_fat.
ENDIF.
ENDIF.
IF sy-subrc = 0.
SELECT SINGLE kursf FROM bkpf INTO v_kursf
WHERE bukrs = /pws/zycit001-bukrs
AND belnr = v_belnr_p
AND gjahr = v_dtincl+0(4).
ENDIF.
ENDIF.
IF itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
v_valor = itab_zycit036-vlreal.
IF t001-land1 EQ 'CL'.
PERFORM trata_decimais USING itab_zycit036-waers_real
CHANGING v_valor.
ENDIF.
IF t001-land1 EQ 'BR'.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING v_valor.
ENDIF.
IF v_itemcongela NE 'X'.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
IF NOT /pws/zycit085-ukursfob IS INITIAL.
IF itab_zycit036-origem NE 'FAT'.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob.
ELSE.
itab_zycit036-vlmov = v_valor * v_kursf.
ENDIF.
ELSE.
IF itab_zycit036-origem NE 'FAT'.
READ TABLE itab_zycit443
WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
ELSE.
PERFORM converter_moeda USING v_valor
itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
ENDIF.
ELSE.
itab_zycit036-vlmov = v_valor * v_kursf.
ENDIF.
ENDIF.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING itab_zycit036-vlmov.
CLEAR: itab_zycit036-vldif, itab_zycit036-waers_dif.
ELSE.
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND
itab_zycit036_plan-netpr GT 0 AND NOT
itab_zycit036_plan-waers IS INITIAL
AND v_itemcongela NE 'X'.
v_valor = itab_zycit036_plan-netpr.
IF itab_zycit036-origem <> 'FAT'.
IF NOT /pws/zycit442-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
itab_zycit036-vlmov = v_valor * v_kursf.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ELSE.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF itab_zycit036-origem <> 'FAT'.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ELSE.
itab_zycit036-vlmov = v_valor * v_kursf.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
IF itab_zycit036-origem <> 'FAT'.
IF itab_zycit036-origem NE 'EST'.
IF NOT /pws/zycit442-ukursfob IS INITIAL.
v_val_real = v_valor * /pws/zycit442-ukursfob.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING v_val_real.
itab_zycit036-vldif = v_val_real
- itab_zycit036-vlmov.
ELSE.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vldif = ( v_valor
* itab_zycit443-dttaxbem )
- itab_zycit036-vlmov.
ELSE.
PERFORM converter_moeda USING
v_valor
itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING itab_zycit036-vldif.
itab_zycit036-vldif =
itab_zycit036-vldif - itab_zycit036-vlmov.
ENDIF.
ENDIF.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSE.
IF NOT v_kursf IS INITIAL.
v_val_real = v_valor * v_kursf.
ELSE.
v_val_real = v_valor * /pws/zycit442-ukursfob .
ENDIF.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING v_val_real.
itab_zycit036-vldif = v_val_real
- itab_zycit036-vlmov.
itab_zycit036-waers_dif = itab_zycit036-waers_mov.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
v_valor = itab_zycit036-netpr.
IF itab_zycit036-origem <> 'FAT'.
IF NOT /pws/zycit442-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob .
ELSE.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
ELSE.
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
ENDIF.
ENDIF.
ELSE.
itab_zycit036-vlmov = v_valor * v_kursf.
ENDIF.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
IF itab_zycit036-vlmov IS INITIAL.
CLEAR itab_zycit036-waers_mov.
ELSEIF itab_zycit036-vldif IS INITIAL.
CLEAR itab_zycit036-waers_dif.
ENDIF.
READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF sy-subrc = 0.
READ TABLE itab_zycit263 WITH KEY
nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc = 0.
read table itab_zycit006_fat with key
nrseq_pgfat = itab_zycit263-nrseq_pgfat.
IF sy-subrc = 0.
CLEAR: itab_zycit036-vlmov, itab_zycit036-waers_mov,
itab_zycit036-vldif, itab_zycit036-waers_dif.
ENDIF.
ENDIF.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
WHEN 'FRETEI'.
v_linf = v_linf + 1.
CLEAR v_valor.
IF itab_zycit036-origem NE 'PED'.
CLEAR itab_zycit036-netpr.
ENDIF.
IF itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
PERFORM busca_fatores CHANGING itab_zycit036-waers_real.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF v_linf NE v_tot_linf OR
itab_zycit036-origem NE 'NF'.
IF itab_zycit036-origem = 'NF'.
IF t001-land1 = 'BR'.
v_valor = itab_zycit443-vlfre.
ELSE.
v_valor = itab_zycit036-vlreal.
ENDIF.
v_valor = itab_zycit443-vlfre.
ELSE.
v_valor = itab_zycit036-vlreal.
ENDIF.
IF itab_zycit036-origem = 'NF'.
PERFORM retorna_decimais USING itab_zycit443-waersreal
CHANGING v_valor.
ELSE.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING v_valor.
ENDIF.
v_val_tot = v_val_tot + v_valor.
ELSE.
v_valor = ( /pws/zycit442-vlfre * /pws/zycit442-ukursfre )
- v_val_tot .
ENDIF.
IF v_itemcongela NE 'X'.
IF NOT /pws/zycit442-ukursfre IS INITIAL.
IF itab_zycit036-origem = 'NF'.
itab_zycit036-vlmov = v_valor .
ELSE.
IF itab_zycit036-waers_real NE /pws/zycbt007-waersb.
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036-nrseqori.
IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfre .
ELSE.
READ TABLE itab_bkpf WITH KEY
bukrs = itab_zycit006-bukrs
belnr = itab_zycit006-belnr_p
gjahr = itab_zycit006-dt_belnrp(04).
itab_zycit036-vlmov = itab_zycit036-vlreal *
itab_bkpf-kursf.
ENDIF.
ELSE.
itab_zycit036-vlmov = v_valor.
ENDIF.
ENDIF.
ELSEIF itab_zycit036-origem NE 'FAT'.
PERFORM converter_moeda
USING v_valor
itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
ELSE.
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036-nrseqori.
IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.
itab_zycit036-vlmov = v_valor .
ELSE.
READ TABLE itab_bkpf WITH KEY
bukrs = itab_zycit006-bukrs
belnr = itab_zycit006-belnr_p
gjahr = itab_zycit006-dt_belnrp(04).
itab_zycit036-vlmov = itab_zycit036-vlreal *
itab_bkpf-kursf.
ENDIF.
ENDIF.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING itab_zycit036-vlmov.
ELSE.
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND
itab_zycit036_plan-netpr GT 0 AND NOT
itab_zycit036_plan-waers IS INITIAL
AND v_itemcongela NE 'X'.
v_valor = itab_zycit036_plan-netpr.
IF NOT /pws/zycit442-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ELSEIF itab_zycit036-origem = 'FAT'
AND itab_zycit036-waers_mov IS INITIAL.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ELSEIF sy-subrc NE 0 AND itab_zycit036-origem = 'FAT'
AND itab_zycit036-waers_mov IS INITIAL.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSEIF sy-subrc NE 0 AND itab_zycit036-origem = 'PC'
AND itab_zycit036-waers_mov IS INITIAL.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
IF v_itemcongela = 'X' AND
( itab_zycit036-origem EQ 'NF' OR
itab_zycit036-origem EQ 'FAT' ) AND
NOT /pws/zycit442-ukursfre IS INITIAL.
IF ( t001-land1 EQ 'CL' OR
t001-land1 EQ 'AR' ) OR
itab_zycit036-origem EQ 'FAT'.
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036-nrseqori.
IF sy-subrc EQ 0 AND itab_zycit006-frpagto EQ 'P'.
v_valor = v_valor *
/pws/zycit442-ukursfre .
ELSE.
READ TABLE itab_bkpf WITH KEY
bukrs = itab_zycit006-bukrs
belnr = itab_zycit006-belnr_p
gjahr = itab_zycit006-dt_belnrp(04).
IF itab_bkpf-waers NE 'BRL'.
v_valor = itab_zycit036-vlreal *
itab_bkpf-kursf.
ELSE.
v_valor = itab_zycit036-vlreal.
ENDIF.
ENDIF.
ENDIF.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING v_valor.
ENDIF.
IF NOT /pws/zycit442-ukursfre IS INITIAL AND
( itab_zycit036-origem EQ 'NF'
OR itab_zycit036-origem EQ 'FAT' ).
IF itab_zycit036-waers_real <> itab_zycit036-waers_mov
AND v_itemcongela NE 'X'.
v_valor = v_valor * /pws/zycit442-ukursfre.
ENDIF.
itab_zycit036-vldif = v_valor
- itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ELSE.
IF itab_zycit036-waers_real <> itab_zycit036-waers_mov
AND itab_zycit036-vlmov <> 0.
v_valor = v_valor / /pws/zycit442-ukursfre.
ENDIF.
itab_zycit036-vldif = v_valor - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
v_valor = itab_zycit036-netpr.
IF NOT /pws/zycit442-ukursfre IS INITIAL.
IF itab_zycit036-waers NE /pws/zycbt007-waersb.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfre .
ELSE.
itab_zycit036-vlmov = v_valor .
ENDIF.
ELSE.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
IF itab_zycit036-vlmov IS INITIAL.
CLEAR itab_zycit036-waers_mov.
ELSEIF itab_zycit036-vldif IS INITIAL.
CLEAR itab_zycit036-waers_dif.
ENDIF.
IF itab_zycit036-origem = 'NF'.
v_acum_fre = v_acum_fre + itab_zycit036-vlmov.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
WHEN 'SEGURO'.
v_lins = v_lins + 1.
IF
itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
READ TABLE itab_zycit443 WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF v_lins NE v_tot_lins.
IF itab_zycit036-origem = 'NF'.
IF t001-land1 = 'BR'.
v_valor = itab_zycit443-vlseg.
ELSE.
v_valor = itab_zycit036-vlreal.
ENDIF.
ELSE.
v_valor = itab_zycit036-vlreal.
ENDIF.
v_val_tots = v_val_tots + v_valor.
MOVE v_valor TO v_val.
ELSE.
.
if not v_val_tots is initial and itab_zycit036-origem = 'NF'.
v_val = ( /pws/zycit442-vlseg * /pws/zycit442-ukursseg ) .
perform retorna_decimais using /pws/zycit442-waersseg
changing v_val.
v_val = v_val - v_val_tots.
else.
if itab_zycit036-origem = 'NF'.
if t001-land1 = 'BR'.
v_valor = itab_zycit443-vlseg.
else.
v_valor = itab_zycit036-vlreal.
endif.
if v_tot_lins = 1 .
v_val = ( /pws/zycit442-vlseg *
/pws/zycit442-ukursseg ) .
else.
v_val = ( /pws/zycit442-vlseg *
/pws/zycit442-ukursseg ) - v_valor .
endif.
else.
v_valor = itab_zycit036-vlreal.
v_val = itab_zycit036-vlreal.
endif.
endif.
ENDIF.
IF t001-land1 EQ 'BR'.
IF itab_zycit036-origem = 'NF'.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING v_val.
ELSE.
PERFORM retorna_decimais USING itab_zycit036-waers_real
CHANGING v_val.
ENDIF.
MOVE v_val TO v_valor.
ENDIF.
IF v_itemcongela NE 'X'.
IF NOT /pws/zycit442-ukursseg IS INITIAL.
IF itab_zycit036-origem = 'NF'.
IF t001-land1 EQ 'AR' OR t001-land1 EQ 'CL'.
v_valor = v_valor * /pws/zycit442-ukursseg .
ENDIF.
itab_zycit036-vlmov = v_valor .
ELSE.
IF itab_zycit036-waers_real NE /pws/zycbt007-waersb.
CLEAR itab_zycit140.
READ TABLE itab_zycit140 WITH KEY
codigo = itab_zycit036-codigo
origem = itab_zycit036-origem.
IF itab_zycit140-custo NE 'X'.
itab_zycit036-vlmov = v_valor .
ELSE.
READ TABLE itab_zycit006 WITH KEY
nrseq = itab_zycit036-nrseqori.
.
IF sy-subrc EQ 0.
READ TABLE itab_bkpf WITH KEY
belnr = itab_zycit006-belnr_p.
IF sy-subrc EQ 0.
itab_zycit036-vlmov = v_valor * itab_bkpf-kursf.
ENDIF.
ENDIF.
ENDIF.
ELSE.
CLEAR itab_zycit140.
READ TABLE itab_zycit140 WITH KEY
codigo = itab_zycit036-codigo
origem = itab_zycit036-origem.
IF itab_zycit140-custo NE 'X'.
itab_zycit036-vlmov = v_valor .
ELSE.
READ TABLE itab_zycit006 WITH KEY
nrfat = itab_zycit036-codigo
nrseq = itab_zycit036-nrseqori.
.
IF sy-subrc EQ 0.
READ TABLE itab_bkpf WITH KEY
belnr = itab_zycit006-belnr_p.
IF sy-subrc EQ 0.
itab_zycit036-vlmov = v_valor * itab_bkpf-kursf.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ELSE.
PERFORM converter_moeda USING v_valor
itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
ENDIF.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING itab_zycit036-vlmov.
CLEAR: itab_zycit036-vldif, itab_zycit036-waers_dif.
ELSE.
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND
itab_zycit036_plan-netpr GT 0 AND NOT
itab_zycit036_plan-waers IS INITIAL
AND v_itemcongela NE 'X'.
v_valor = itab_zycit036_plan-netpr.
IF NOT /pws/zycit442-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
IF v_itemcongela = 'X' AND
itab_zycit036-origem EQ 'NF' OR
itab_zycit036-origem EQ 'FAT' AND
NOT /pws/zycit442-ukursseg IS INITIAL.
v_valor = v_valor * /pws/zycit442-ukursseg.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING v_valor.
ENDIF.
IF NOT /pws/zycit442-ukursseg IS INITIAL AND
( itab_zycit036-origem EQ 'NF'
OR itab_zycit036-origem EQ 'FAT' ).
itab_zycit036-vldif = v_valor
- itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ELSE.
IF itab_zycit036-waers_real NE /pws/zycbt007-waersb.
v_valor = v_valor / /pws/zycit442-ukursseg.
ENDIF.
itab_zycit036-vldif = v_valor - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
v_valor = itab_zycit036-netpr.
IF NOT /pws/zycit442-ukursseg IS INITIAL.
IF itab_zycit036-waers NE /pws/zycbt007-waersb.
itab_zycit036-vlmov = v_valor * /pws/zycit442-ukursseg
.
ELSE.
itab_zycit036-vlmov = v_valor .
ENDIF.
ELSE.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
IF itab_zycit036-vlmov IS INITIAL.
CLEAR itab_zycit036-waers_mov.
ELSEIF itab_zycit036-vldif IS INITIAL.
CLEAR itab_zycit036-waers_dif.
ENDIF.
IF itab_zycit036-origem = 'NF'.
v_acum_seg = v_acum_seg + itab_zycit036-vlmov.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
WHEN 'II' OR 'IPI' OR 'ICMS' .
IF itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
IF v_itemcongela NE 'X'.
itab_zycit036-vlmov = itab_zycit036-vlreal .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND
itab_zycit036_plan-netpr GT 0 AND NOT
itab_zycit036_plan-waers IS INITIAL
AND v_itemcongela NE 'X'.
v_valor = itab_zycit036_plan-netpr.
IF NOT /pws/zycit442-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = itab_zycit036-vlreal -
itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
IF itab_zycit036-vlmov IS INITIAL.
CLEAR itab_zycit036-waers_mov.
ELSEIF itab_zycit036-vldif IS INITIAL.
CLEAR itab_zycit036-waers_dif.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
WHEN OTHERS .
IF t001-land1 EQ 'BR'.
IF itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
CLEAR v_real_brl.
PERFORM converter_moeda USING itab_zycit036-vlreal
itab_zycit036-waers_real
/pws/zycbt007-waersb
CHANGING v_real_brl.
PERFORM trata_decimais USING itab_zycit036-waers_real
CHANGING v_real_brl.
IF v_itemcongela NE 'X'.
itab_zycit036-vlmov = v_real_brl.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND NOT
itab_zycit036_plan-netpr = 0 AND NOT
itab_zycit036_plan-waers IS INITIAL AND
v_itemcongela NE 'X'.
v_valor = itab_zycit036_plan-netpr.
IF /pws/zycit000-flag_desp = 'X'.
IF NOT /pws/zycit442-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ELSE.
PERFORM converter_moeda USING
itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSE.
IF itab_zycit036-vlreal GT 0 AND
NOT itab_zycit036-waers_real IS INITIAL.
CLEAR v_real_brl.
PERFORM: taxa_converte USING 'USD'
/pws/zycit442-dttax
CHANGING v_usd.
IF NOT v_usd IS INITIAL AND itab_zycit036-waers_real
NE /pws/zycbt007-waersb.
v_real_brl = itab_zycit036-vlreal * v_usd.
PERFORM trata_decimais USING /pws/zycbt007-waersb
CHANGING v_real_brl.
ELSE.
v_real_brl = itab_zycit036-vlreal.
ENDIF.
IF v_itemcongela NE 'X'.
itab_zycit036-vlmov = v_real_brl.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit036_plan WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo.
IF sy-subrc = 0.
IF itab_zycit036-vlmov = 0 AND NOT
itab_zycit036_plan-netpr = 0 AND NOT
itab_zycit036_plan-waers IS INITIAL AND
v_itemcongela NE 'X'.
v_valor = itab_zycit036_plan-netpr.
IF /pws/zycit000-flag_desp = 'X'.
IF NOT /pws/zycit442-ukursfob IS INITIAL.
itab_zycit036-vlmov = v_valor *
/pws/zycit442-ukursfob .
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ELSE.
READ TABLE itab_zycit443 WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp.
IF NOT itab_zycit443-dttaxbem IS INITIAL.
itab_zycit036-vlmov = v_valor *
itab_zycit443-dttaxbem.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
ELSE.
PERFORM: taxa_converte USING 'USD'
/pws/zycit442-dttax
CHANGING v_usd.
IF NOT v_usd IS INITIAL.
itab_zycit036-vlmov = itab_zycit036-vlmov * v_usd.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
PERFORM trata_decimais USING itab_zycit036-waers_mov
CHANGING itab_zycit036-vlmov.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF itab_zycit036-origem NE 'EST'.
itab_zycit036-vldif = v_real_brl - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ELSEIF itab_zycit036-netpr GT 0 AND
NOT itab_zycit036-waers IS INITIAL.
IF v_itemcongela NE 'X'.
PERFORM converter_moeda USING itab_zycit036-netpr
itab_zycit036-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036-vlmov.
PERFORM trata_decimais USING itab_zycit036-waers
CHANGING itab_zycit036-vlmov.
itab_zycit036-waers_mov = /pws/zycbt007-waersb.
ENDIF.
itab_zycit036-vldif = 0 - itab_zycit036-vlmov.
itab_zycit036-waers_dif = /pws/zycbt007-waersb.
ENDIF.
ENDIF.
IF itab_zycit036-vlmov IS INITIAL.
CLEAR itab_zycit036-waers_mov.
ELSEIF itab_zycit036-vldif IS INITIAL.
CLEAR itab_zycit036-waers_dif.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
ENDCASE.
READ TABLE itab_zycit036_auxl WITH KEY
nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo
origem = 'PED'.
IF sy-subrc = 0.
IF itab_zycit036_auxl-vlmov GT 0 AND
itab_zycit036-vlmov EQ 0.
MOVE itab_zycit036_auxl-vlmov TO itab_zycit036-vlmov.
MOVE itab_zycit036_auxl-waers_mov TO itab_zycit036-waers_mov.
itab_zycit036-vldif = itab_zycit036-vlreal - itab_zycit036-vlmov.
itab_zycit036-waers_dif = itab_zycit036-waers_mov.
CLEAR itab_zycit036_auxl-vlmov.
CLEAR itab_zycit036_auxl-waers_mov.
MODIFY itab_zycit036_auxl INDEX sy-tabix.
MODIFY itab_zycit036 INDEX v_index.
ENDIF.
ENDIF.
MODIFY itab_zycit036 INDEX v_index.
ENDLOOP.
DATA nrbl LIKE /pws/zycit442-nrbl.
IF /pws/zycit000-fretepres NE 'X'.
SELECT SINGLE nrbl ukursfre waersfre vlseg ukursseg waersseg
FROM /pws/zycit442
INTO (nrbl,v_ukursfre,v_waersf,v_vlseg,v_ukursseg,v_waerss)
WHERE nrseqda = pa_nrseq.
SELECT SINGLE waersfre vlfre FROM /pws/zycit093 INTO
(v_waersf,v_vlfre)
WHERE nrseqce = nrbl.
IF v_waerss = 'JPY'.
PERFORM retorna_decimais USING v_waerss
CHANGING v_vlseg.
ELSE.
PERFORM trata_decimais USING v_waerss
CHANGING v_vlseg.
ENDIF.
IF v_waersf = 'JPY'.
PERFORM retorna_decimais USING v_waersf
CHANGING v_vlfre.
ELSE.
PERFORM trata_decimais USING v_waersf
CHANGING v_vlfre.
ENDIF.
v_result = ( v_ukursseg * v_vlseg ).
v_resultf = ( v_ukursfre * v_vlfre ).
IF v_itemcongela NE 'X'.
IF v_result <> v_acum_seg.
v_result = ( v_ukursseg * v_vlseg ) - v_acum_seg.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit036-nrseq
codigo = 'SEGURO'
origem = 'NF'.
IF sy-subrc = 0.
itab_zycit036-vlmov = itab_zycit036-vlmov + ( v_result ).
MODIFY itab_zycit036 INDEX sy-tabix.
v_result = 0.
ENDIF.
ENDIF.
v_result = ( v_ukursfre * v_vlfre ).
IF v_result <> v_acum_fre.
v_result = ( v_ukursfre * v_vlfre ) - v_acum_fre.
READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit036-nrseq
codigo = 'FRETEI'
origem = 'NF'.
IF sy-subrc = 0.
itab_zycit036-vlmov = itab_zycit036-vlmov + ( v_result ).
MODIFY itab_zycit036 INDEX sy-tabix.
v_result = 0.
ENDIF.
ENDIF.
ELSE.
DATA: acum_fre LIKE /pws/zycit036-vlmov,
acum_seg LIKE /pws/zycit036-vlmov.
LOOP AT itab_zycit036 WHERE ( codigo = 'SEGURO'
OR codigo = 'FRETEI' )
AND origem = 'NF'.
IF itab_zycit036-codigo = 'SEGURO'.
acum_seg = acum_seg + itab_zycit036-vlmov.
ELSE.
acum_fre = acum_fre + itab_zycit036-vlmov.
ENDIF.
ENDLOOP.
IF v_result = acum_seg.
LOOP AT itab_zycit036 WHERE codigo = 'SEGURO' AND
origem = 'NF'.
IF itab_zycit036-vldif <> 0.
itab_zycit036-vldif = 0.
MODIFY itab_zycit036 INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDIF.
IF v_resultf = acum_fre.
LOOP AT itab_zycit036 WHERE codigo = 'FRETEI' AND
origem = 'NF'.
IF itab_zycit036-vldif <> 0.
itab_zycit036-vldif = 0.
MODIFY itab_zycit036 INDEX sy-tabix.
ENDIF.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
IF /pws/zycie001-dtencer NE '00000000'.
LOOP AT itab_zycit036 WHERE origem = 'PED'.
LOOP AT itab_zycit036_auxl WHERE nrseq = itab_zycit036-nrseq
AND ebeln = itab_zycit036-ebeln
AND ebelp = itab_zycit036-ebelp
AND codigo = itab_zycit036-codigo
AND origem NE 'PED'.
ENDLOOP.
IF sy-subrc = 0.
READ TABLE itab_zycit036_auxl WITH KEY nrseq = itab_zycit036-nrseq
ebeln = itab_zycit036-ebeln
ebelp = itab_zycit036-ebelp
codigo = itab_zycit036-codigo
origem = 'PED'.
IF sy-subrc = 0.
IF itab_zycit036-vlmov IS INITIAL AND
itab_zycit036_auxl-vlmov IS INITIAL.
ELSE.
MOVE itab_zycit036_auxl TO itab_zycit036.
MODIFY itab_zycit036.
ENDIF.
ENDIF.
ENDIF.
ENDLOOP.
ENDIF.
LOOP AT itab_zycit036 WHERE codigo = 'SEGURO' AND
origem = 'NF'.
CLEAR itab_zycit036-vldif.
MODIFY itab_zycit036.
ENDLOOP.
PERFORM exit_movimentado(/pws/sapmzyci010) TABLES itab_zycit036
CHANGING v_rub.
IF v_importou EQ 'S'.
indx-aedat = sy-datum.
indx-usera = sy-uname.
EXPORT itab_zycit036[] TO MEMORY ID 'I006A'.
ENDIF.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPT /PWS/SAPMZYCI001
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 254
Texto: (39 caracteres)
"No permitido seleccionar DAs distintas."
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 255
Texto: (36 caracteres)
"No permitido seleccionar DA acabada."
Comprimento máximo: 39
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 256
Texto: (39 caracteres)
"Favor informar cantidad a nacionalizar."
Comprimento máximo: 41
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 257
Texto: (31 caracteres)
"Saldo escaso para nacionalizar."
Comprimento máximo: 39
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 258
Texto: (46 caracteres)
"Cantidad a nacionalizar excede cantd por lote."
Comprimento máximo: 46
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 259
Texto: (51 caracteres)
"No fueran encontrados itens para criterio selección"
Comprimento máximo: 53
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 260
Texto: (37 caracteres)
"No permitido gravar el esto embarque."
Comprimento máximo: 75
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 261
Texto: (37 caracteres)
"Existen itens con cant embarque zero."
Comprimento máximo: 37
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 262
Texto: (38 caracteres)
"Proveedor del Pedido no es extranjero."
Comprimento máximo: 40
------------------------------------------------------------------------
Incluído símbolo de texto:
Idioma: ES
Símbolo: 263
Texto: (27 caracteres)
"Datos de la orden incorrect"
Comprimento máximo: 27
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): PA_BUK
Texto: (16 caracteres)
"Embarque"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_ADICA
Texto: (17 caracteres)
"Adiciones"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_BELN
Texto: (14 caracteres)
"Pedido"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_BELP
Texto: (12 caracteres)
"ìtem"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_DTDE
Texto: (24 caracteres)
"Fecha Desembaraz"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_FILIA
Texto: (19 caracteres)
"Subsidiaria"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_ITADI
Texto: (24 caracteres)
"Iten da Adicción"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_LIFN
Texto: (17 caracteres)
"Proveedor"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_MATN
Texto: (16 caracteres)
"Material"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Modificado texto de seleção:
Idioma: PT
Variável (SELECT-OPTION / PARAMETER): SO_MATRI
Texto: (15 caracteres)
"Empresa"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_MATRI
Texto: (14 caracteres)
"Matriz"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_NRDA
Texto: (17 caracteres)
"Número DA"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_NRSEQ
Texto: (21 caracteres)
"Secuencial DA"
Referência ao Dictionary: NÃO
------------------------------------------------------------------------
Incluído texto de seleção:
Idioma: ES
Variável (SELECT-OPTION / PARAMETER): SO_NUMDA
Texto: (17 caracteres)
"Número DA"
Referência ao Dictionary: NÃO
----------------------------------------------------------------------------------------------------
Modificações efetuadas em TABD /PWS/ZYCIT003
*Os seguintes campos foram inseridos:
MATNR MATNR CHAR 18
TPNF /PWS/ZYCIL108 /PWS/ZYCIT018 CHAR 2
SERVICO XFELD CHAR 1
QTD_ITEND BSTMG QUAN 13
AGRUPAMENTO /PWS/ZYCIL613 /PWS/ZYCIT395 CHAR 3
DT_TRANS /PWS/ZYGLL972 DATS 8
DT_RECEB /PWS/ZYCIL567 DATS 8
NTGEWD NTGEW_15 QUAN 15
DTREMESSA /PWS/ZYCIL581 DATS 8
DTPROVENT /PWS/ZYCIL582 DATS 8
DTALOCPROD /PWS/ZYCIL583 DATS 8
NRPEDFORN /PWS/ZYCIL599 CHAR 10
CONTATOFORN /PWS/ZYCIL612 CHAR 15
NRREGPROD /PWS/ZYCIL615 CHAR 13
DTREGPROD /PWS/ZYCIL616 DATS 8
FUMIGACAO /PWS/ZYCIL617 CHAR 1
DTRECANALISE /PWS/ZYCIL618 DATS 8
*>>Inicio Inclusão
NRDI /PWS/ZYCIL299 CHAR 11
*>>Fim Inclusão
NRSEQDA /PWS/ZYCIL831 CHAR 10
ITSEQDA /PWS/ZYCIL836 NUMC 5
ADICAO /PWS/ZYCIL267 NUMC 3
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI070F01
...
UPDATE /pws/zycit078 SET nrdi = /pws/zycie442-nrdi
nrseqdi = /pws/zycie442-nrseqda
dtregdi = /pws/zycie442-dtreg
adicao = itab_zycit443_t-adicao
WHERE nrseqli = itab_zycit078_t-nrseqli
AND tpli = 'N'.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
*PWS280450 - Início
ENDIF.
*PWS280450 - Fim
ENDIF.
*>>Inicio Exclusão: FORM SAVE_DATA
* Contabilizando a Fatura
IF NOT /pws/zycie442-dtreg IS INITIAL AND
NOT /pws/zycie442-nrdi IS INITIAL.
PERFORM salva_fatura.
ENDIF.
*>>Fim Exclusão
* Fim do ajuste
IF NOT /pws/zycie442-nrdi IS INITIAL OR
NOT /pws/zycie442-dtreg IS INITIAL.
PERFORM atualiza_status.
ENDIF.
DELETE itab_zycit442 WHERE nrseqda = /pws/zycie442-nrseqda.
APPEND /pws/zycie442 TO itab_zycit442.
SORT itab_zycit442 BY nrseqda.
...
...
itab_zycit453[] TO itab_zycit453a[],
itab_zycit454[] TO itab_zycit454a[],
itab_zycit200[] TO itab_zycit200a[],
itab_zycit049di2[] TO itab_zycit049di[],
itab_it[] TO itab_ita[],
/pws/zycie442 TO wa_zycit442.
PERFORM save_especificacao.
*>>Inicio Inclusão: FORM SAVE_DATA
if /PWS/ZYCIE442-CODREG eq '04'.
*>>Fim Inclusão
PERFORM reclassificacao_ia.
*>>Inicio Inclusão: FORM SAVE_DATA
endif.
*>>Fim Inclusão
ENDFORM. " save_data
...