Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Embarque
Data/Hora da Publicação: 16/05/2006 00:00:00
Data/Hora Última Alteração: 20/06/2011 12:30:12
Descrição da Nota: APÓS SALVAR O EMBARQUE COM REGIME 16, O SALDO DA DA E O VALOR PLANEJADO
Sintoma
1) Após salvar o embarque com regime 16, o saldo da DA e o valor planejado ficam zerados;
2) O peso líquido do embarque não corresponde com a quantidade embarcada;
3) Quando a quantidade é alterada, o peso líquido fica zerado
4) Não é possível eliminar itens vinculados;
Solução
Ajuste no embarque
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 01353 Data: 16/05/2006 Hora: 16:51:15
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 01353
Categoria : Melhoria
Prioridade : Alta
Versão PW.CE : 6.0
Pacote : 00023
Agrupamento : 00114
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01268 - 00001 - 6.0 - 00023 - DESENVOLVIMENTO ENTREPOSTO ADUANEIRO
----------------------------------------------------------------------------------------------------
APÓS SALVAR O EMBARQUE COM REGIME 16, O SALDO DA DA E O VALOR PLANEJADO
----------------------------------------------------------------------------------------------------
Palavras Chave:
EMBARQUE
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI001F01
REPS /PWS/MZYCI001F02
REPS /PWS/MZYCI001F03
REPS /PWS/MZYCI001I01
REPS /PWS/MZYCI001O01
REPS /PWS/MZYCI001X01
REPS /PWS/MZYCI016F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F01
...
/pws/zycie001-nrseq TO itab_zycit003-nrseq ,
/pws/zycie013-slqtde TO itab_zycit003-slqtde ,
/pws/zycie003-qtd_itend TO itab_zycit003-qtd_itend ,
/pws/zycie003-dtremessa TO itab_zycit003-dtremessa ,
/pws/zycie003-dtalocprod TO itab_zycit003-dtalocprod ,
/pws/zycie003-dtprovent TO itab_zycit003-dtprovent ,
/pws/zycie003-ntgewd TO itab_zycit003-ntgewd .
MOVE ekpo-idnlf TO itab_zycit003-idnlf.
MODIFY itab_zycit003 INDEX tc_ped-current_line.
IF sy-subrc NE 0.
* >> Início da exclusão: FORM ALTERA_ITAB_ZYCIT003
IF /pws/zycie001-regime NE '14'.
* << Fim da exclusão
* >> Início da inclusão: FORM ALTERA_ITAB_ZYCIT003
IF /pws/zycie001-regime NE '14' AND /pws/zycie001-regime NE '16'.
* << Fim da inclusão
READ TABLE itab_zycit003_aux WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc NE 0.
CLEAR itab_zycit013.
READ TABLE itab_zycit013 WITH KEY
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF sy-subrc EQ 0.
MOVE: itab_zycit013-slqtde TO itab_zycit003-qtd_iten,
...
...
SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.
IF /pws/zycit000-flagbl IS INITIAL.
/pws/zycit093-paemb = /pws/zycit001-paorigem.
/pws/zycit093-padest = /pws/zycit001-padest.
/pws/zycit093-paispae = /pws/zycit001-paispao.
ENDIF.
MODIFY /pws/zycit093.
ENDIF.
ENDIF.
MODIFY /pws/zycit356 FROM /pws/zycie356.
* >> Início da exclusão: FORM GRAVA_TABELAS
IF /pws/zycie001-regime EQ '14'.
* << Fim da exclusão
* >> Início da inclusão: FORM GRAVA_TABELAS
IF /pws/zycie001-regime EQ '14' OR /pws/zycie001-regime EQ '16'.
* << Fim da inclusão
PERFORM salva_dados_da.
ENDIF.
CLEAR itab_zycit003_del.
REFRESH itab_zycit003_del.
DELETE FROM /pws/zycit001 WHERE nrseq = space.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI001'
'EMB003'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY zexit = 'EMB003' BINARY SEARCH.
...
...
IF sy-subrc EQ 0 AND NOT /pws/zyglt217-msgtp IS INITIAL.
CLEAR v_tot_ntgew.
LOOP AT itab_zycit003.
v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.
ENDLOOP.
IF sy-subrc = 0 AND okcode = 'SAVE'.
WRITE v_tot_ntgew TO v_tot_peso UNIT itab_zycit003-gewei.
MESSAGE ID '/PWS/ZYCIM' TYPE /pws/zyglt217-msgtp NUMBER '128'
WITH v_tot_peso.
ENDIF.
* >> Início da inclusão: FORM GRAVA_TABELAS
ENDIF.
IF /pws/zycie001-regime = '16' and okcode = 'DI'
and not itab_zycit003[] is initial.
SELECT * FROM /pws/zycit455 INTO TABLE itab_zycit455_aux
WHERE nrseq = /pws/zycie001-nrseq.
SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443_aux2
FOR ALL ENTRIES IN itab_zycit455_aux
WHERE nrseqda = itab_zycit455_aux-nrseqda AND
ebeln = itab_zycit455_aux-ebeln AND
ebelp = itab_zycit455_aux-ebelp.
SELECT SINGLE * FROM /pws/zycit094
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc NE 0.
/PWS/ZYCIT093-BUKRS = /PWS/ZYCIE093-BUKRS = /PWS/ZYCIE001-BUKRS.
PERFORM busca_sequencial_bl.
INSERT INTO /pws/zycit093 VALUES /pws/zycie093.
WHILE sy-subrc NE 0.
PERFORM busca_sequencial_bl.
INSERT INTO /pws/zycit093 VALUES /pws/zycie093.
ENDWHILE.
/pws/zycit093 = /pws/zycie093.
/pws/zycit094-nrseq = /pws/zycie001-nrseq.
/pws/zycit094-nrseqce = /pws/zycit093-nrseqce.
INSERT INTO /pws/zycit094 VALUES /pws/zycit094.
ELSE.
SELECT SINGLE * FROM /pws/zycit093
WHERE nrseqce = /pws/zycit094-nrseqce.
ENDIF.
CLEAR: /pws/zycit093-collect, /pws/zycit093-brgew.
LOOP AT itab_zycit443_aux2.
READ TABLE itab_zycit003 WITH KEY ebeln = itab_zycit443_aux2-ebeln
ebelp = itab_zycit443_aux2-ebelp.
/pws/zycit093-collect = /pws/zycit093-collect +
( itab_zycit443_aux2-vlfre / itab_zycit443_aux2-qtd_iten
* itab_zycit003-qtd_iten ).
/pws/zycit093-brgew = /pws/zycit093-brgew + itab_zycit003-ntgew.
/PWS/ZYCIT093-WAERSFRE = 'BRL'.
ENDLOOP.
MODIFY /pws/zycit093.
LOOP AT itab_zycit003.
READ TABLE itab_zycit443_aux2 WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
itab_zycit003-vlreal = itab_zycit443_aux2-vlreal.
itab_zycit003-waers_real = itab_zycit443_aux2-waersbem.
itab_zycit003-invoiced = itab_zycit003-qtd_iten.
READ TABLE itab_zycit263 WITH KEY nrseq = itab_zycit003-nrseq
ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp
eliminado = ' '.
IF sy-subrc NE 0.
/pws/zycbt119-status = 'E'.
MOVE: /pws/zycie001-embarca TO /pws/zycbt119-nrfat,
'S' TO /pws/zycbt119-fcambio.
PERFORM busca_sequencial_fat.
INSERT /pws/zycbt119 .
WHILE sy-subrc NE 0.
PERFORM busca_sequencial_fat.
INSERT /pws/zycbt119.
ENDWHILE.
CLEAR itab_zycit263.
MOVE:
itab_zycit003-nrseq TO itab_zycit263-nrseq,
itab_zycit003-ebeln TO itab_zycit263-ebeln,
itab_zycit003-ebelp TO itab_zycit263-ebelp,
/pws/zycbt119-nrseq TO itab_zycit263-nrseq_pgfat,
itab_zycit003-qtd_iten TO itab_zycit263-qtd_iten,
itab_zycit003-meins TO itab_zycit263-meins,
itab_zycit003-vlreal TO itab_zycit263-vlreal,
itab_zycit003-waers_real TO itab_zycit263-waers_real,
itab_zycit003-ntgew TO itab_zycit263-ntgew,
itab_zycit003-gewei TO itab_zycit263-gewei.
append itab_zycit263.
move itab_zycit263 to /pws/zycit263.
INSERT /pws/zycit263.
SELECT SINGLE * FROM /pws/zycit263 INTO wa_zycit263
WHERE nrseq = itab_zycit443_aux2-nrseq AND
ebeln = itab_zycit443_aux2-ebeln AND
ebelp = itab_zycit443_aux2-ebelp.
SELECT single * FROM /pws/zycit006 WHERE nrseq_pgfat
= wa_zycit263-nrseq_pgfat.
move /pws/zycit093-nrseqce to /pws/zycit006-nrseqce.
/pws/zycit006-nrseq_pgfat = /pws/zycbt119-nrseq.
CLEAR /pws/zycit006-nrseq.
/PWS/ZYCIT006-BUKRS = /PWS/ZYCIE001-BUKRS.
/pws/zycit006-frpagto = 'A'.
/pws/zycit006-ntgew = itab_zycit003-ntgew.
CLEAR /PWS/ZYCIT006-BELNR_P.
PERFORM busca_sequencial_fat2.
INSERT /pws/zycit006 .
WHILE sy-subrc NE 0.
PERFORM busca_sequencial_fat2.
INSERT /pws/zycit006.
ENDWHILE.
ENDIF.
move: /pws/zycit006-nrseq TO /pws/zycbt119-nrpagto,
/pws/zycit006-dtvencto TO /pws/zycbt119-dtvencext,
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.
ENDLOOP.
* << Fim da inclusão
ENDIF.
ENDFORM.
FORM busca_sequencial.
DATA:
v_nrseq LIKE /pws/zycit001-nrseq,
v_nrseq_ant LIKE /pws/zycit001-nrseq,
v_count(7) TYPE n,
v_ano(4).
v_nrseq_ant = /pws/zycie001-nrseq.
IF NOT /pws/zycie001-bukrs IS INITIAL.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F02
...
CHANGING /pws/zycie001-nrseq.
ELSE.
MESSAGE i061 WITH text-136.
ENDIF.
ENDIF.
ELSE.
PERFORM find_nrseqc.
PERFORM find_embarca.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM LOAD_DATA
if /pws/zycie001-regime ne '14'.
* << Fim da exclusão
* >> Início da inclusão: FORM LOAD_DATA
if /pws/zycie001-regime ne '14' and /pws/zycie001-regime ne '16'.
* << Fim da inclusão
PERFORM verifica_itens.
else.
PERFORM verifica_itens_da.
endif.
PERFORM: busca_cnpj,
load_text.
IF v_tcode EQ ' '.
v_tcode = sy-tcode.
ENDIF.
SELECT SINGLE name
...
...
ENDFORM.
FORM seleciona_di.
SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100
FOR ALL ENTRIES IN itab_zycit003
WHERE nrseq EQ itab_zycit003-nrseq.
IF sy-subrc EQ 0.
v_di = 'S'.
ELSE.
CLEAR v_di.
ENDIF.
* >> Início da inclusão: FORM SELECIONA_DI
if /pws/zycie001-regime = '16' and v_di is initial and
not /pws/zycie001-nrseq is initial.
select single * from /pws/zycit094
where nrseq = /pws/zycie001-nrseq.
if sy-subrc = 0.
delete FROM /pws/zycit093 where nrseqce = /pws/zycit094-nrseqce.
delete FROM /pws/zycit094 where nrseqce = /pws/zycit094-nrseqce.
SELECT * FROM /PWS/ZYCIT006 INTO TABLE ITAB_ZYCIT006
WHERE NRSEQCE = /pws/zycit094-nrseqce AND
TPFATURA = '01'.
LOOP AT ITAB_ZYCIT006 WHERE NRSEQ_PGFAT IS INITIAL.
delete FROM /pws/zycBT119
where nrseq = ITAB_ZYCIT006-NRSEQ_PGFAT.
ENDLOOP.
delete FROM /pws/zycit006 where nrseq = /pws/zycit094-nrseqCE AND
TPFATURA = '01'.
delete FROM /pws/zycit263 where nrseq = /pws/zyciE001-nrseq.
IF NOT ITAB_ZYCIT263[] IS INITIAL.
LOOP AT ITAB_ZYCIT263.
DELETE ITAB_ZYCIT263.
ENDLOOP.
ENDIF.
endif.
endif.
* << Fim da inclusão
ENDFORM.
FORM trata_detitem.
v_contador = 0.
IF v_status_s NE '0'.
LOOP AT itab_zycit003 WHERE mark EQ 'X'.
v_ip = sy-tabix.
v_contador = v_contador + 1.
ENDLOOP.
ELSE.
LOOP AT itab_zycit003 WHERE mark EQ 'X'.
v_contador = v_contador + 1.
ENDLOOP.
ENDIF.
IF v_contador NE 1.
MESSAGE s015 WITH text-062.
ELSE.
READ TABLE itab_zycit003 WITH KEY mark = 'X'.
MOVE-CORRESPONDING itab_zycit003 TO /pws/zycie003.
v_centro = ' '.
v_saldo = itab_zycit003-slqtde.
* >> Início da exclusão: FORM TRATA_DETITEM
if /pws/zycie001-regime eq '14'.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_DETITEM
if /pws/zycie001-regime eq '14' or /pws/zycie001-regime eq '16'.
* << Fim da inclusão
v_totemb = /pws/zycie003-menge.
else.
READ TABLE itab_komv WITH KEY ebeln = /pws/zycie003-ebeln
kposn = /pws/zycie003-ebelp
kschl = 'Z0X1'.
IF sy-subrc EQ 0.
IF itab_komv-kpein NE 0.
v_totemb = itab_komv-kbetr / itab_komv-kpein
* /pws/zycie003-qtd_iten.
ENDIF.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001F03
...
wa_cols-screen-input = '0'.
ELSE.
wa_cols-screen-input = '1'.
ENDIF.
ENDIF.
MODIFY tc_ped-cols FROM wa_cols.
ENDLOOP.
ENDIF.
ENDFORM.
FORM selecionar_da.
* >> Início da inclusão: FORM SELECIONAR_DA
if /pws/zycie001-regime ne '14'.
* << Fim da inclusão
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs
* >> Início da inclusão: FORM SELECIONAR_DA
/pws/zycit442~dtdesemb /pws/zycit443~ebeln
/pws/zycit443~ebelp /pws/zycit443~matnr /pws/zycit443~qtd_iten
/pws/zycit443~qtd_iten
FROM ( /pws/zycit442
INNER JOIN /pws/zycit443 ON
/pws/zycit442~nrseqda = /pws/zycit443~nrseqda )
INTO corresponding fields of table itab_da
WHERE /pws/zycit442~bukrs EQ pa_buk
AND /pws/zycit442~nrseqda IN so_nrseq
AND /pws/zycit442~nrdi IN so_nrda
AND /pws/zycit443~ebeln IN so_beln
AND /pws/zycit443~ebelp IN so_belp
AND /pws/zycit443~matnr IN so_matn.
loop at itab_da.
select single qtd_iten from /pws/zycit443 into itab_da-qtd_LOTE
where nrseqda = itab_da-nrseqda and
ebeln = itab_da-ebeln and
ebelp = itab_da-ebelp.
modify itab_da.
endloop.
MOVE ITAB_DA[] TO ITAB_DA_AUX[].
else.
SELECT /pws/zycit442~nrseqda /pws/zycit442~nrdi /pws/zycit442~bukrs
* << Fim da inclusão
/pws/zycit442~dtdesemb /pws/zycit460~lifnr /pws/zycit443~ebeln
/pws/zycit443~ebelp /pws/zycit443~matnr /pws/zycit463~lote_forn
/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
/pws/zycit442~nrseqda = /pws/zycit443~nrseqda
INNER JOIN /pws/zycit463 ON
/pws/zycit463~nrseqda = /pws/zycit443~nrseqda )
INTO TABLE itab_da
WHERE /pws/zycit442~bukrs EQ pa_buk
AND /pws/zycit460~lifnr IN so_lifn
AND /pws/zycit442~nrseqda IN so_nrseq
AND /pws/zycit442~nrdi IN so_nrda
AND /pws/zycit443~ebeln IN so_beln
AND /pws/zycit443~ebelp IN so_belp
AND /pws/zycit443~matnr IN so_matn.
* >> Início da inclusão: FORM SELECIONAR_DA
endif.
* << Fim da inclusão
IF NOT itab_da[] IS INITIAL.
MOVE ITAB_DA[] TO ITAB_DA_AUX[].
* >> Início da inclusão: FORM SELECIONAR_DA
if /pws/zycie001-regime eq '14'.
* << Fim da inclusão
loop at itab_da.
if itab_da-qtd_lote is initial.
delete itab_da.
elseif itab_da-qtd_nac eq itab_da-qtd_lote and
not itab_da-qtd_nac is initial .
delete itab_da .
else.
if not itab_da-qtd_nac is initial.
itab_da-qtd_lote = itab_da-qtd_lote - itab_da-qtd_nac.
clear itab_da-qtd_nac.
modify itab_da.
endif.
endif.
endloop.
* >> Início da inclusão: FORM SELECIONAR_DA
endif.
* << Fim da inclusão
DESCRIBE TABLE itab_da LINES v_line.
* >> Início da exclusão: FORM SELECIONAR_DA
IF v_line GT '1'.
* << Fim da exclusão
CALL SCREEN '0003'.
* >> Início da exclusão: FORM SELECIONAR_DA
ELSE.
PERFORM selecionar_itens_da.
ENDIF.
* << Fim da exclusão
ELSE.
MESSAGE s015 WITH text-259.
ENDIF.
ENDFORM.
FORM trata_delp.
CASE ts_embar-activetab.
WHEN 'FC_PED' .
LOOP AT itab_zycit003 WHERE mark = 'X'.
IF itab_zycit003-nrseqli IS INITIAL AND
itab_zycit003-nrseqlsi IS INITIAL.
...
...
ELSEIF /pws/zycie001-tpdecl EQ 'DI'.
IF /pws/zycie001-regime EQ '05'.
screen-invisible = '0'.
ELSE.
screen-invisible = '1'.
ENDIF.
ELSE.
screen-invisible = '1'.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM TRATA_SCREEN_0101
IF /pws/zycie001-regime EQ '14'.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_SCREEN_0101
IF /pws/zycie001-regime EQ '14' or /pws/zycie001-regime EQ '16'.
* << Fim da inclusão
IF screen-group2 EQ 'DA'.
screen-invisible = '0'.
ENDIF.
IF screen-group2 EQ 'PED'.
screen-invisible = '1'.
ENDIF.
ELSE.
IF screen-group2 EQ 'DA'.
screen-invisible = '1'.
ENDIF.
...
...
SELECT SINGLE * FROM /pws/zycit094
WHERE nrseq = /pws/zycie001-nrseq.
IF sy-subrc = 0 AND NOT /pws/zycie001-nrseq IS INITIAL.
screen-input = 0.
MODIFY SCREEN.
ELSE.
screen-input = 1.
MODIFY SCREEN.
ENDIF.
ENDIF.
* >> Início da exclusão: FORM TRATA_SCREEN_0101
IF /pws/zycie001-regime EQ '14'.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_SCREEN_0101
IF /pws/zycie001-regime EQ '14' or /pws/zycie001-regime EQ '16'.
* << Fim da inclusão
IF screen-group2 EQ 'DA'.
screen-invisible = '0'.
ENDIF.
IF screen-group2 EQ 'PED'.
screen-invisible = '1'.
ENDIF.
ELSE.
IF screen-group2 EQ 'DA'.
screen-invisible = '1'.
ENDIF.
...
...
PERFORM trata_obrig4.
ENDLOOP.
ENDFORM.
FORM trata_obrig4.
IF screen-name EQ '/PWS/ZYCIE001-BUKRS' OR
screen-name EQ '/PWS/ZYCIE001-J_1BBRANCH' OR
screen-name EQ '/PWS/ZYCIE001-MODALIDADE' OR
screen-name EQ '/PWS/ZYCIE001-TPDECL' OR
screen-name EQ '/PWS/ZYCIE001-REGIME' OR
screen-name EQ '/PWS/ZYCIE001-MEIOEMBA'.
* >> Início da exclusão: FORM TRATA_OBRIG4
IF /pws/zycie001-regime EQ '14'.
* << Fim da exclusão
* >> Início da inclusão: FORM TRATA_OBRIG4
IF /pws/zycie001-regime EQ '14' or /pws/zycie001-regime EQ '16'.
* << Fim da inclusão
screen-required = '0'.
MODIFY SCREEN.
ELSE.
screen-required = '1'.
MODIFY SCREEN.
ENDIF.
ENDIF.
ENDFORM.
FORM verifica_itens_da.
DATA: v_ebelp LIKE konv-kposn,
...
...
MOVE itab_zycit003[] TO itab_zycit003_aux[].
ENDFORM.
FORM selecionar_itens_da.
DATA: itab_werks LIKE itab_zycit003 OCCURS 0 WITH HEADER LINE,
itab_t001w LIKE t001w OCCURS 0 WITH HEADER LINE.
clear : /pws/zycie001-netpr.
if v_line gt '1'.
delete itab_da where qtd_nac is initial.
endif.
read table itab_da index 1.
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
IF NOT itab_da[] IS INITIAL and /pws/zycie001-regime eq '14'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
IF NOT itab_da[] IS INITIAL and ( /pws/zycie001-regime eq '14' or
/pws/zycie001-regime eq '16' ).
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit442
WHERE nrseqda EQ itab_da-nrseqda
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
and codreg eq '02'.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
and ( codreg eq '02' or
codreg = '04' ).
* << Fim da inclusão
IF /pws/zycit442-statusfin NE space.
...
...
endloop.
LOOP AT itab_zycit443 .
v_tabix = sy-tabix.
READ TABLE itab_nac WITH KEY ebeln = itab_zycit443-ebeln
ebelp = itab_zycit443-ebelp.
IF sy-subrc EQ 0.
itab_zycit443-qtd_iten = itab_nac-qtd_nac.
MODIFY itab_zycit443 INDEX v_tabix.
ENDIF.
ENDLOOP.
* >> Início da exclusão: FORM SELECIONAR_ITENS_DA
clear itab_nac.
refresh itab_nac.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
IF /PWS/ZYCIE001-REGIME NE '16'.
* << Fim da inclusão
PERFORM calcula_saldo_da.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
ENDIF.
* << Fim da inclusão
LOOP AT itab_zycit443.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
read table itab_nac with key ebeln = itab_zycit443-ebeln
ebelp = itab_zycit443-ebelp.
if sy-subrc = 0.
* << Fim da inclusão
MOVE:
itab_zycit443-advalicms TO itab_zycit003-advalicms ,
itab_zycit443-advalii TO itab_zycit003-advalii ,
itab_zycit443-advalipi TO itab_zycit003-advalipi,
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 ,
itab_zycit443-ebelp TO itab_zycit003-ebelp ,
...
...
IF NOT ITAB_ZYCIT443-QTD_DA IS INITIAL.
itab_zycit003-ntgew = ( itab_zycit443-ntgew /
itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.
itab_zycit003-v_fob = ( itab_zycit443-netpr /
itab_zycit443-qtd_da ) * itab_zycit003-qtd_iten.
ENDIF.
itab_zycit003-sld_da = itab_zycit443-QTD_SLD =
itab_zycit443-qtd_da - itab_zycit443-qtd_util -
itab_zycit443-qtd_iten.
APPEND itab_zycit003.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
endif.
* << Fim da inclusão
ENDLOOP.
* >> Início da inclusão: FORM SELECIONAR_ITENS_DA
clear itab_nac.
refresh itab_nac.
* << Fim da inclusão
move itab_da[] to itab_da_aux[].
CLEAR itab_da. REFRESH itab_da.
READ TABLE itab_zycit003 INDEX 1 .
MOVE: itab_zycit003-lifnr TO v_lifnr,
itab_zycit003-waers TO v_waers,
...
...
endif.
ENDLOOP.
itab_zycit443-qtd_util = v_qtdutil_da.
MODIFY itab_zycit443 INDEX v_tabix.
ENDLOOP.
ENDFORM.
FORM carrega_itab_003.
MODIFY itab_da INDEX tc_selda-current_line.
ENDFORM.
FORM trata_screen_0003.
* >> Início da inclusão: FORM TRATA_SCREEN_0003
describe table itab_da lines tc_selda-lines.
* << Fim da inclusão
LOOP AT tc_selda-cols INTO wa_cols.
IF v_status_s = '0'.
wa_cols-screen-input = '0'.
ENDIF.
MODIFY tc_selda-cols FROM wa_cols.
ENDLOOP.
ENDFORM.
form salva_dados_da.
loop at itab_zycit003_del.
delete itab_zycit455 where nrseq = /pws/zycie001-nrseq
...
...
SELECT SINGLE eindt
FROM eket
INTO itab_zycit003_aux-dtremessa
WHERE ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp.
PERFORM verif_dtproventrega.
MODIFY itab_zycit003.
CLEAR itab_zycit003.
ENDLOOP.
endform.
* >> Início da inclusão:
form busca_sequencial_bl.
DATA:
v_nrseqce LIKE /pws/zycit093-nrseqce,
v_nrseq_ant LIKE /pws/zycit093-nrseqce,
v_count(7) TYPE n,
v_ano(4).
v_nrseq_ant = /pws/zycie093-nrseqce.
CONCATENATE '%' 'I' sy-datum+2(2) INTO v_ano.
SELECT MAX( nrseqce ) INTO (v_nrseqce) FROM /pws/zycit093
WHERE nrseqce LIKE v_ano.
v_count = v_nrseqce+0(7) + 1.
CONCATENATE v_count 'I' sy-datum+2(2) INTO /pws/zycie093-nrseqce.
endform.
form busca_sequencial_fat.
DATA:
v_nrseq LIKE /pws/zycit001-nrseq,
v_count(8) TYPE n.
SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycbt119.
v_count = v_nrseq+0(8) + 1.
CONCATENATE v_count sy-datum+2(2) INTO /pws/zycbt119-nrseq.
endform.
form busca_sequencial_fat2.
DATA:
v_nrseq LIKE /pws/zycit006-nrseq,
v_nrseq_ant LIKE /pws/zycit006-nrseq,
v_count(7) TYPE n,
v_ano1(4).
CONCATENATE '%' 'I' sy-datum+2(2) INTO v_ano1.
SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycit006
WHERE nrseq LIKE v_ano1.
v_count = v_nrseq+0(7) + 1.
CONCATENATE v_count 'I' sy-datum+2(2) INTO /pws/zycit006-nrseq.
endform.
* << Fim da inclusão
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001I01
...
v_netpr = ( itab_zycit003-netpr * itab_zycit003-qtd_iten *
v_taxa ).
PERFORM tratar_decimais USING itab_zycit003-waers
CHANGING v_netpr.
/pws/zycie001-netpr = /pws/zycie001-netpr + v_netpr.
ENDLOOP.
ENDCASE.
ENDMODULE.
MODULE atualizar_itens INPUT.
DATA:v_ver_index LIKE sy-tabix.
* >> Início da exclusão: MODULE ATUALIZAR_ITENS
IF /pws/zycie001-regime NE '14'.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZAR_ITENS
IF /pws/zycie001-regime NE '14' and /pws/zycie001-regime NE '16'.
* << Fim da inclusão
PERFORM atualiza_itens.
ELSE.
PERFORM atualiza_itens_da.
ENDIF.
IF v_mexit = 'X'.
EXIT.
ENDIF.
* >> Início da exclusão: MODULE ATUALIZAR_ITENS
IF /pws/zycie001-regime NE '14'.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZAR_ITENS
IF /pws/zycie001-regime NE '14' and /pws/zycie001-regime NE '16'.
* << Fim da inclusão
PERFORM verifica_itens.
ELSE.
PERFORM verifica_itens_da.
ENDIF.
ENDMODULE.
MODULE verifica_peso INPUT.
ENDMODULE.
MODULE atualiza_itens INPUT.
IF NOT itab_zycit003[] IS INITIAL.
SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263
FOR ALL ENTRIES IN itab_zycit003 WHERE
nrseq = itab_zycit003-nrseq AND
ebeln = itab_zycit003-ebeln AND
ebelp = itab_zycit003-ebelp AND
eliminado = space.
ENDIF.
* >> Início da exclusão: MODULE ATUALIZA_ITENS
IF /pws/zycie001-regime NE '14'.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITENS
IF /pws/zycie001-regime NE '14' and /pws/zycie001-regime NE '16'.
* << Fim da inclusão
PERFORM verifica_itens.
ELSE.
PERFORM verifica_itens_da.
ENDIF.
IF /pws/zycie003-qtd_iten > /pws/zycie003-menge.
MESSAGE w061 WITH text-004 itab_zycit003-ebelp
text-005 itab_zycit003-ebeln.
v_mexit = 'X'.
EXIT.
ELSE.
LOOP AT itab_zycit003.
v_indice = sy-tabix.
* >> Início da exclusão: MODULE ATUALIZA_ITENS
IF /pws/zycie001-regime NE '14'.
* << Fim da exclusão
* >> Início da inclusão: MODULE ATUALIZA_ITENS
IF /pws/zycie001-regime NE '14' and /pws/zycie001-regime NE '16'.
* << Fim da inclusão
PERFORM atualiza_itens.
ELSE.
PERFORM atualiza_itens_da.
ENDIF.
PERFORM atualiza_serv.
MODIFY itab_zycit003 INDEX v_indice.
ENDLOOP.
ENDIF.
ENDMODULE.
MODULE user_command_0400 INPUT.
...
...
ENDMODULE.
module USER_COMMAND input.
if sy-dynnr eq '0003'.
perform user_command_0003.
endif.
endmodule.
module carrega_itab input.
if sy-dynnr eq '0003'.
perform carrega_itab_003.
elseif sy-dynnr eq '0111'.
* >> Início da exclusão: MODULE CARREGA_ITAB
if /pws/zycie001-regime eq '14'.
* << Fim da exclusão
* >> Início da inclusão: MODULE CARREGA_ITAB
if /pws/zycie001-regime eq '14' or /pws/zycie001-regime eq '16'.
* << Fim da inclusão
perform carrega_itab_0111.
endif.
endif.
endmodule.
module qtd_lote input.
data: v_dif.
if itab_da-qtd_nac gt itab_da-qtd_lote.
message e015 with text-258.
endif.
CLEAR: v_sld.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001O01
...
MODULE carrega_zycie255 OUTPUT.
READ TABLE it_zycit119 WITH KEY status = it_zycit255-status.
CLEAR v_descst.
MOVE: it_zycit255-data TO /pws/zycie255-data,
it_zycit255-hora TO /pws/zycie255-hora,
it_zycit255-usuario TO /pws/zycie255-usuario,
it_zycit255-status TO /pws/zycie255-status,
it_zycit119-descricao TO v_descst.
ENDMODULE.
MODULE carrega_instrucao OUTPUT.
* >> Início da exclusão: MODULE CARREGA_INSTRUCAO
if not /pws/zycie001-regime eq '14'.
* << Fim da exclusão
* >> Início da inclusão: MODULE CARREGA_INSTRUCAO
if not /pws/zycie001-regime eq '14' and /pws/zycie001-regime ne '16'.
* << Fim da inclusão
perform carrega_instrucao.
endif.
ENDMODULE.
MODULE carrega_forn_instrucao OUTPUT.
IF sy-tcode = '/PWS/ZYCI001_C'.
READ TABLE itab_zycit010 INDEX 1.
IF sy-subrc = 0.
READ TABLE itab_zycit125 WITH KEY nrseq = /pws/zycie001-nrseq
lifnr = itab_zycit010-agente
tipo = 'AG'.
...
...
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa).
ENDIF.
ENDIF.
ENDMODULE.
module carrega_estrutura output.
if sy-dynnr eq '0003'.
perform carrega_estrutura_0003.
elseif sy-dynnr eq '0111' .
* >> Início da exclusão: MODULE CARREGA_ESTRUTURA
if /pws/zycie001-regime eq '14'.
* << Fim da exclusão
* >> Início da inclusão: MODULE CARREGA_ESTRUTURA
if /pws/zycie001-regime eq '14' or /pws/zycie001-regime eq '16'.
* << Fim da inclusão
perform carrega_estrutura.
DESCRIBE TABLE itab_zycit003 LINES v_line.
tc_da-lines = v_line.
endif.
endif.
endmodule.
module STATUS_0003 output.
SET PF-STATUS '0003'.
endmodule.
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI001X01
tables:
/pws/zycit001,
/pws/zycie001,
/pws/zycit003,
/pws/zycie003,
/pws/zyglt217,
/pws/zycit442,
/pws/zycit443,
/pws/zycit455,
* >> Início da exclusão:
/pws/zycit460.
* << Fim da exclusão
* >> Início da inclusão:
/pws/zycit460,
/pws/zycit263,
/pws/zycbt119.
* << Fim da inclusão
data: begin of common part a.
DATA: BEGIN OF itab_zycit003 OCCURS 0.
INCLUDE STRUCTURE /pws/zycie003.
DATA: slqtde LIKE /pws/zycie013-slqtde,
uebto LIKE ekpo-uebto,
uebtk LIKE ekpo-uebtk,
noinitial,
mark,
idnlf LIKE mepo1319-idnlf,
invoiced LIKE /pws/zycie263-qtd_iten,
...
...
DATA: BEGIN OF itab_komv OCCURS 0.
INCLUDE STRUCTURE komv.
DATA: ebeln LIKE ekko-ebeln.
DATA: END OF itab_komv.
DATA: BEGIN OF itab_komp OCCURS 0.
INCLUDE STRUCTURE konp.
DATA: END OF itab_komp.
DATA: BEGIN OF itab_a016 OCCURS 0.
INCLUDE STRUCTURE a016.
DATA: END OF itab_a016.
* >> Início da inclusão:
data: wa_zycit263 like /pws/zycit263.
* << Fim da inclusão
DATA: BEGIN OF itab_konp OCCURS 0.
INCLUDE STRUCTURE konp.
DATA: ebeln LIKE ekpo-ebeln,
ebelp LIKE ekpo-ebelp.
DATA: END OF itab_konp.
DATA: BEGIN OF itab_zycit030 OCCURS 0.
INCLUDE STRUCTURE /pws/zycit030.
DATA: END OF itab_zycit030.
data: begin of itab_zycit443_saldo occurs 0.
include structure /pws/zycit443.
data: end of itab_zycit443_saldo.
data: begin of itab_zycit455 occurs 0.
include structure /pws/zycit455.
data: end of itab_zycit455.
* >> Início da inclusão:
data: begin of itab_zycit455_aux occurs 0.
include structure /pws/zycit455.
data: end of itab_zycit455_aux.
data: begin of itab_zycit443_aux2 occurs 0.
include structure /pws/zycit443.
data: end of itab_zycit443_aux2.
* << Fim da inclusão
data: v_qtdutil_da like /pws/zycit443-qtd_da ,
v_sld like /pws/zycit443-qtd_da ,
v_nrseqda LIKE /pws/zycie442-nrseqda ,
v_qtd_sld like /pws/zycit443-qtd_iten.
DATA: BEGIN OF itab_da OCCURS 0,
nrseqda LIKE /pws/zycie442-nrseqda ,
nrdi LIKE /pws/zycie442-nrdi ,
burks LIKE /pws/zycie442-bukrs ,
dtdesemb LIKE /pws/zycie442-dtdesemb ,
agente LIKE /pws/zycie460-lifnr ,
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI016F01
...
IF sy-subrc NE 0.
PERFORM contabiliza_impostos.
ENDIF.
ENDIF.
CLEAR v_modo_bi.
* >> Início da inclusão: FORM FILL_DATA_J1B1
REFRESH itab_zyglt100.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI016'
'DNF009'.
CLEAR itab_zyglt100 .
READ TABLE itab_zyglt100 WITH KEY
zexit = 'DNF009' BINARY SEARCH.
IF sy-subrc EQ 0.
IF NOT itab_zyglt100-zexit_ativa IS INITIAL.
PERFORM (itab_zyglt100-formulario) IN PROGRAM
(itab_zyglt100-programa) IF FOUND .
ENDIF.
ENDIF.
* << Fim da inclusão
ENDFORM.
FORM fill_data_j1b1_r.
DATA: v_tpnf LIKE /pws/zycit044-tpnf,
wa_zycit042_d LIKE /pws/zycit042,
wa_zycit044 LIKE /pws/zycit044.
...