Módulo: DRAWBACK
Funcionalidade: Entrada de NF Mercado Interno
Data/Hora da Publicação: 07/05/2013 11:17:12
Data/Hora Última Alteração: 07/05/2013 11:17:12
Descrição da Nota: ENTRADA DE NOTAS NOS ATOS CONCESSÓRIOS DO TIPO SUSPENSÃO
Sintoma
Nova funcionalidade no programa de entrada de NF's no mercado interno, ato concessório tipo
suspensão.
Solução
Nova funcionalidade no programa de entrada de NF's no mercado interno, ato concessório tipo
suspensão.
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 07060 Data: 31/07/2008 Hora: 14:30:31
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 07060
Categoria : Melhoria
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00006
Agrupamento : 00059
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
07047 - 00002 - 7.0 - 00006 - CODE INSPECTOR
07001 - 00001 - 7.0 - 00006 - ENTRADA DE NOTAS NOS ATOS CONCESSÓRIOS DO TIPO SUSPENSÃO
----------------------------------------------------------------------------------------------------
ENTRADA DE NOTAS NOS ATOS CONCESSÓRIOS DO TIPO SUSPENSÃO
----------------------------------------------------------------------------------------------------
Palavras Chave:
ENTRADA DE NOTAS ATO CONCESSÓRIO SUSPENSÃO VERDE AMARELO
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI052F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI052F01
...
IF NOT itab_zycit330[] IS INITIAL.
SELECT ebeln ebelp matnr FROM ekpo INTO TABLE itab_ekpo
FOR ALL ENTRIES IN itab_zycit330
WHERE ebeln = itab_zycit330-ebeln AND
ebelp = itab_zycit330-ebelp.
SELECT * FROM j_1bnflin INTO TABLE itab_j_1bnflin
WHERE docnum EQ /pws/zycie329-docnum.
REFRESH itab_zycit245.
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245
FOR ALL ENTRIES IN itab_zycit330
* >> Início da exclusão: FORM SALVAR_DADOS
WHERE nrseqd EQ itab_zycit330-nrseqd.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVAR_DADOS
WHERE nrseqd EQ itab_zycit330-nrseqd
AND nritem EQ itab_zycit330-nritem.
* << Fim da inclusão
ENDIF.
IF v_tcode EQ '/PWS/ZYCI052_C'.
REFRESH: itab_zycit279.
LOOP AT itab_zycit330.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit330-ebeln
ebelp = itab_zycit330-ebelp.
IF sy-subrc EQ 0.
MOVE itab_ekpo-matnr TO /pws/zycit279-matnr.
ENDIF.
READ TABLE itab_j_1bnflin WITH KEY
...
...
itab_zycit330-netpr TO /pws/zycit279-netpr ,
itab_zycit329-nfnum TO /pws/zycit279-nfnum ,
itab_zycit329-series TO /pws/zycit279-serie ,
itab_zycit329-docdat TO /pws/zycit279-dtnf ,
itab_zycit330-buzei TO /pws/zycit279-itmnum .
MOVE: j_1bnfdoc-waerk TO /pws/zycit279-i_waerscifmi .
/pws/zycit279-i_txmoeda = itab_j_1bnflin-netwr /
/pws/zycit279-vltot.
/pws/zycit279-valor = itab_j_1bnflin-netwr /
/pws/zycit279-menge.
* >> Início da inclusão: FORM SALVAR_DADOS
/pws/zycit279-vlfrete = itab_j_1bnflin-netfre.
/pws/zycit279-vlseg = itab_j_1bnflin-netins.
* << Fim da inclusão
/pws/zycit279-um_base = /pws/zycit279-meins.
PERFORM converte_um_base USING /pws/zycit279-matnr
CHANGING /pws/zycit279-um_base
/pws/zycit279-qtd_iten.
DELETE FROM /pws/zycit279 WHERE docnum EQ itab_zycit330-docnum
AND buzei EQ itab_zycit330-buzei."#EC CI_NOFIRST
MODIFY /pws/zycit279 FROM /pws/zycit279.
APPEND /pws/zycit279 TO itab_zycit279.
CLEAR: itab_zycit330_des.
READ TABLE itab_zycit330_des WITH KEY
...
...
IF sy-subrc EQ 0.
itab_zycit245-vlvinc = itab_zycit245_des-vlvinc.
itab_zycit245-vinculado = itab_zycit245_des-vinculado.
MODIFY itab_zycit245 TRANSPORTING vlvinc vinculado
WHERE nrseqd EQ itab_zycit245_des-nrseqd
AND nritem EQ itab_zycit245_des-nritem.
ENDIF.
ENDIF.
ENDIF.
CLEAR: itab_zycit245.
* >> Início da exclusão: FORM SALVAR_DADOS
IF /pws/zycit321-apr_imp IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVAR_DADOS
IF /pws/zycit321-apr_imp IS INITIAL OR itab_zycit244-tipo EQ 'F'.
* << Fim da inclusão
READ TABLE itab_zycit245 WITH KEY
nrseqd = itab_zycit330-nrseqd
nritem = itab_zycit330-nritem.
ELSE.
READ TABLE itab_zycit245 WITH KEY
nrseqd = itab_zycit330-nrseqd.
ENDIF.
IF sy-subrc EQ 0.
itab_zycit245-vlvinc = itab_zycit245-vlvinc +
/pws/zycit279-vltot.
* >> Início da exclusão: FORM SALVAR_DADOS
IF /pws/zycit321-apr_imp IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FORM SALVAR_DADOS
IF /pws/zycit321-apr_imp IS INITIAL OR itab_zycit244-tipo EQ 'F'.
* << Fim da inclusão
itab_zycit245-vinculado = itab_zycit245-vinculado +
itab_zycit330-menge.
ENDIF.
UPDATE /pws/zycit245
SET vlvinc = itab_zycit245-vlvinc
vinculado = itab_zycit245-vinculado
WHERE nrseqd EQ itab_zycit245-nrseqd
AND nritem EQ itab_zycit245-nritem.
MODIFY itab_zycit245 TRANSPORTING vlvinc vinculado
WHERE nrseqd EQ itab_zycit245-nrseqd
...
...
AND refitm EQ itab_zycit330-buzei.
itab_zycit330-buzei = j_1bnflin-itmnum.
AUTHORITY-CHECK OBJECT 'C_PPBD'
ID 'AKTTYP' FIELD 'V'
ID 'WERKS' FIELD j_1bnflin-werks.
IF sy-subrc NE 0.
MESSAGE i015 WITH text-289 j_1bnflin-werks.
LEAVE TO TRANSACTION sy-tcode.
ENDIF.
itab_zycit330-netwr = j_1bnflin-netwr.
* >> Início da exclusão: FORM CARREGA_DADOS
IF /pws/zycie329-tipo EQ space.
PERFORM converter_moeda USING itab_zycit330-netwr
itab_zycit330-waerk
'USD'
itab_zycit329-docdat
CHANGING itab_zycit330-netwr.
itab_zycit330-waerk = 'USD'.
ENDIF.
* << Fim da exclusão
IF /pws/zycie329-cicms IS INITIAL.
itab_zycit330-netpr = itab_zycit330-netwr / j_1bnflin-menge.
ELSE.
SELECT SINGLE j_1bnfstx~taxval
FROM ( j_1bnfstx INNER JOIN j_1baj
ON j_1bnfstx~taxtyp = j_1baj~taxtyp )
INTO v_othbas "#EC CI_BUFFJOIN
WHERE j_1bnfstx~docnum EQ j_1bnflin-docnum
AND j_1bnfstx~itmnum EQ j_1bnflin-itmnum
AND j_1baj~taxgrp EQ 'ICMS'.
...
...
CLEAR: ekko, j_1bnflin.
REFRESH: itab_zycit245, itab_zycit279_aux, itab_zycit244, itab_vinc.
SELECT SINGLE * FROM ekko
WHERE ebeln EQ itab_zycit330-ebeln.
SELECT SINGLE * FROM j_1bnflin
WHERE docnum EQ itab_zycit330-docnum
AND itmnum EQ itab_zycit330-buzei .
IF sy-subrc EQ 0.
IF /pws/zycit321-apr_imp EQ 'X'.
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245
* >> Início da exclusão: FORM VINCULA_ATO_SUSP
WHERE tipo EQ 'G'. "#EC CI_NOFIELD
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULA_ATO_SUSP
WHERE tipo EQ 'G' "#EC CI_NOFIRST
AND nritem > 90000. "#EC PORTABLE
* << Fim da inclusão
ELSE.
IF /pws/zycit321-c_comum EQ 'X'.
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245
* >> Início da exclusão: FORM VINCULA_ATO_SUSP
WHERE tipo NE 'F' "#EC CI_NOFIELD
AND j_1bnbm EQ itab_zycit330-ncm.
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULA_ATO_SUSP
WHERE tipo NE 'F' "#EC CI_NOFIRST
AND j_1bnbm EQ itab_zycit330-ncm
AND nritem > 90000. "#EC PORTABLE
* << Fim da inclusão
ELSE.
SELECT * FROM /pws/zycit245 INTO TABLE itab_zycit245
* >> Início da exclusão: FORM VINCULA_ATO_SUSP
WHERE tipo NE 'F' "#EC CI_NOFIELD
AND codcomp EQ itab_zycit330-codcomp.
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULA_ATO_SUSP
WHERE tipo NE 'F' "#EC CI_NOFIRST
AND codcomp EQ itab_zycit330-codcomp
AND nritem > 90000. "#EC PORTABLE
* << Fim da inclusão
SELECT SINGLE * FROM /pws/zycit433
WHERE matnr EQ itab_zycit330-codcomp
AND dtde =< sy-datum
AND dtate => sy-datum.
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit433 INTO TABLE itab_zycit433
WHERE grupo EQ /pws/zycit433-grupo
AND nritem EQ /pws/zycit433-nritem. "#EC CI_NOFIRST
IF sy-subrc EQ 0.
SELECT * FROM /pws/zycit245
APPENDING TABLE itab_zycit245
FOR ALL ENTRIES IN itab_zycit433
* >> Início da exclusão: FORM VINCULA_ATO_SUSP
WHERE codcomp EQ itab_zycit433-matnr. "#EC CI_NOFIELD
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULA_ATO_SUSP
WHERE codcomp EQ itab_zycit433-matnr "#EC CI_NOFIRST
AND nritem > 90000. "#EC PORTABLE
* << Fim da inclusão
SORT itab_zycit245 BY nrseqd nritem.
DELETE ADJACENT DUPLICATES FROM itab_zycit245 COMPARING
nrseqd nritem.
ENDIF.
ENDIF.
ENDIF.
ENDIF.
IF NOT itab_zycit245[] IS INITIAL.
SELECT * FROM /pws/zycit244 INTO TABLE itab_zycit244
FOR ALL ENTRIES IN itab_zycit245
...