Módulo: DOC. IMPORTAÇÃO
Funcionalidade: LI
Data/Hora da Publicação: 23/12/2009 00:00:00
Data/Hora Última Alteração: 20/06/2011 12:00:39
Descrição da Nota: IMPLEMENTAÇÃO DRAWBACK TIPO EMBARCAÇÃO
Sintoma
Implementação Drawback tipo embarcação
Solução
Implementação Drawback tipo embarcação
8.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 09619 Data: 23/12/2009 Hora: 15:20:56
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 09619
Categoria : Melhoria
Prioridade : Baixa
Versão PW.CE : 8.0
Pacote : 00002
Agrupamento : 00001
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
04896 - 00001 - 7.0 - 00003 - O PREÇO UNITÁRIO DA LI ESTÁ SENDO O FOB MESMO COM INCOTERM DIFERE
07396 - 00002 - 7.0 - 00007 - NA LI AO SAIR ESTA NÃO ESTA GRAVANDO A EMPRESA E O IMPORTADOR
09297 - 00003 - 8.0 - 00001 - NÃO ESTÁ PREENCHENDO A QUANTIDADE NAS INFORMAÇÕES DE DRAWBACK
09618 - 00004 - 8.0 - 00002 - IMPLEMENTAÇÃO DRAWBACK TIPO EMBARCAÇÃO
----------------------------------------------------------------------------------------------------
IMPLEMENTAÇÃO DRAWBACK TIPO EMBARCAÇÃO
----------------------------------------------------------------------------------------------------
Palavras Chave:
LI - DRAWBACK - TIPO - EMBARCAÇÃO - VINCULAR - ATO - CONCESSÓRIO
/PWS/SAPMZYCI020
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI020F01
REPS /PWS/MZYCI020F02
REPS /PWS/MZYCI020O01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F01
...
WHERE nrseqd EQ /pws/zycie078-nrseqd.
ENDIF.
LOOP AT it_zycit079.
v_tabix = sy-tabix.
IF /pws/zycie078-drawback EQ '1'.
READ TABLE itab_itens_aux WITH KEY ebeln = it_zycit079-ebeln
ebelp = it_zycit079-ebelp.
IF sy-subrc EQ 0.
READ TABLE it_zycit245 WITH KEY nrseqd = /pws/zycie078-nrseqd.
IF sy-subrc EQ 0.
* >> Início da exclusão: FORM VERIFICA_SALDO_DRAWBACK
IF /pws/zycie078-tipodb = 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM VERIFICA_SALDO_DRAWBACK
IF /pws/zycie078-tipodb CA 'GD'.
* << Fim da inclusão
it_zycit245-sdocomp_t = it_zycit245-netpr_t -
/pws/zycie078-vltot.
IF v_salvo_drawback IS INITIAL.
it_zycit245-vinculado = it_zycit245-vinculado +
/pws/zycie078-qtdest.
it_zycit245-vlvinc = it_zycit245-vlvinc +
v_vlfobli.
ENDIF.
MODIFY it_zycit245 TRANSPORTING sdocomp_t vinculado vlvinc
WHERE nrseqd = /pws/zycie078-nrseqd.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020F02
...
AND ddlanguage = sy-langu(1).
SELECT SINGLE * FROM /pws/zycit321.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ /pws/zycie078-bukrs.
IF sy-subrc NE 0.
SELECT SINGLE * FROM /pws/zycbt007
WHERE bukrs EQ space.
ENDIF.
SELECT * FROM /pws/zycit244 INTO TABLE it_zycit244
WHERE status EQ 'D'
* >> Início da exclusão: FORM VINCULAR_ATOC
AND ( tipo EQ 'C' OR tipo EQ 'G' OR tipo EQ 'N' )
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULAR_ATOC
AND tipo IN ('C','G','N','E','D')
* << Fim da inclusão
AND vcto_vg >= sy-datlo. "#EC CI_NOFIELD
SELECT * FROM /pws/zycit245 INTO TABLE it_zycit245
FOR ALL ENTRIES IN it_zycit244
WHERE nrseqd EQ it_zycit244-nrseqd
AND nritem < 90000. "#EC PORTABLE
IF /pws/zycit321-c_comum NE 'X'.
SELECT * FROM /pws/zycit433
INTO TABLE itab_zycit433 "#EC CI_NOFIELD
WHERE dtde <= sy-datlo
AND dtate >= sy-datlo.
...
...
/pws/zycie079-qtd_iten = /pws/zycie078-qtdest .
/pws/zycit245-netpr_t = /pws/zycit245-netpr_t +
itab_zycit079-netpr.
/pws/zycit245-waers = /pws/zycbt007-waersa.
/pws/zycie079-meins = itab_zycit079-meins.
ENDLOOP.
LOOP AT it_zycit245.
CLEAR: itab_atos.
READ TABLE it_zycit244 WITH KEY nrseqd = it_zycit245-nrseqd.
IF /pws/zycit321-c_comum NE 'X' AND
* >> Início da exclusão: FORM VINCULAR_ATOC
it_zycit244-tipo NE 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULAR_ATOC
it_zycit244-tipo NA 'GD'.
* << Fim da inclusão
IF it_zycit245-codcomp IS INITIAL.
CONTINUE.
ENDIF.
IF it_zycit245-grupo EQ space.
READ TABLE itab_zycit433 WITH KEY matnr = it_zycit245-codcomp.
IF sy-subrc EQ 0.
it_zycit245-grupo = itab_zycit433-grupo.
MODIFY it_zycit245 TRANSPORTING grupo
WHERE codcomp EQ it_zycit245-codcomp.
ENDIF.
...
...
LOOP AT itab_zycit433 WHERE grupo EQ it_zycit245-grupo.
DELETE it_zycit245 WHERE
codcomp EQ itab_zycit433-matnr.
ENDLOOP.
ENDIF.
CONTINUE.
ENDIF.
ENDIF.
ENDIF.
IF /pws/zycit321-c_comum EQ 'X' AND
* >> Início da exclusão: FORM VINCULAR_ATOC
it_zycit244-tipo NE 'G' AND
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULAR_ATOC
it_zycit244-tipo NA 'GD' AND
* << Fim da inclusão
it_zycit245-j_1bnbm NE /pws/zycie078-steuc1.
DELETE it_zycit245.
CONTINUE.
ENDIF.
itab_atos-nrseqd = it_zycit245-nrseqd .
itab_atos-nritem = it_zycit245-nritem .
itab_atos-nratoc = it_zycit244-nratoc .
itab_atos-matnr = it_zycit245-codcomp .
itab_atos-grupo = it_zycit245-grupo .
itab_atos-j_1bnbm = it_zycit245-j_1bnbm .
itab_atos-tipo = it_zycit244-tipo .
itab_atos-modalidade = it_zycit244-modalidade.
itab_atos-data = it_zycit244-dtatoc .
itab_atos-vlfob = it_zycit245-netpr_t - it_zycit245-vlvinc.
itab_atos-qtd_tot =
it_zycit245-qtd_ncm - it_zycit245-vinculado.
* >> Início da exclusão: FORM VINCULAR_ATOC
IF itab_atos-vlfob <= 0 AND it_zycit244-tipo EQ 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULAR_ATOC
IF itab_atos-vlfob <= 0 AND it_zycit244-tipo CA 'GD'.
* << Fim da inclusão
CONTINUE.
ENDIF.
* >> Início da exclusão: FORM VINCULAR_ATOC
IF itab_atos-qtd_tot <= 0 AND it_zycit244-tipo NE 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULAR_ATOC
IF itab_atos-qtd_tot <= 0 AND it_zycit244-tipo NA 'GD'.
* << Fim da inclusão
CONTINUE.
ENDIF.
...
...
CLEAR: itab_atos-qtd_tot.
ENDIF.
IF itab_atos-vlfob < 0.
CLEAR: itab_atos-vlfob.
ENDIF.
APPEND itab_atos.
ENDLOOP.
LOOP AT itab_atos.
CLEAR: it_zycit245.
IF /pws/zycit321-c_comum NE 'X' AND
* >> Início da exclusão: FORM VINCULAR_ATOC
itab_atos-tipo NE 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULAR_ATOC
itab_atos-tipo NA 'GD'.
* << Fim da inclusão
IF itab_atos-grupo NE space.
LOOP AT itab_zycit433 WHERE grupo EQ itab_atos-grupo.
v_dele = 'X'.
LOOP AT it_ekpo WHERE matnr EQ itab_zycit433-matnr.
READ TABLE itab_zycit079 WITH KEY ebeln = it_ekpo-ebeln
ebelp = it_ekpo-ebelp.
it_zycit245-qtd_ncm = it_zycit245-qtd_ncm +
itab_zycit079-qtd_iten.
it_zycit245-netpr_t = it_zycit245-netpr_t +
itab_zycit079-netpr .
...
...
it_zycit245-qtd_ncm = it_zycit245-qtd_ncm +
itab_zycit079-qtd_iten.
it_zycit245-netpr_t = it_zycit245-netpr_t +
itab_zycit079-netpr .
ENDLOOP.
ENDIF.
IF itab_atos-vlfob < it_zycit245-netpr_t.
itab_atos-status = 'E'.
ENDIF.
IF itab_atos-qtd_tot < it_zycit245-qtd_ncm AND
* >> Início da exclusão: FORM VINCULAR_ATOC
itab_atos-tipo NE 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULAR_ATOC
itab_atos-tipo NA 'GD'.
* << Fim da inclusão
itab_atos-status = 'E'.
ENDIF.
IF itab_atos-status EQ 'E'.
MODIFY itab_atos TRANSPORTING status
WHERE nrseqd EQ itab_atos-nrseqd.
itab_atos2-status = itab_atos-status.
MODIFY itab_atos2 TRANSPORTING status
WHERE nrseqd EQ itab_atos-nrseqd.
ENDIF.
CLEAR: itab_atos2.
...
...
CONTINUE.
WHEN 2.
MESSAGE a015 WITH text-153.
.
ENDCASE.
IF itab_atos2-status EQ 'E'.
PERFORM call_icon USING text-451
text-453
CHANGING itab_atos2-icon.
ELSEIF /pws/zycit321-c_comum NE 'X' AND
* >> Início da exclusão: FORM VINCULAR_ATOC
itab_atos2-tipo NE 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM VINCULAR_ATOC
itab_atos2-tipo NA 'GD'.
* << Fim da inclusão
LOOP AT it_ekpo.
READ TABLE itab_atos WITH KEY
nrseqd = itab_atos2-nrseqd
matnr = it_ekpo-matnr.
IF sy-subrc NE 0.
v_dele = 'X'.
CLEAR itab_zycit433.
READ TABLE itab_zycit433 WITH KEY matnr = it_ekpo-matnr.
IF sy-subrc EQ 0.
READ TABLE itab_atos WITH KEY
...
...
WHEN 'BACK'.
LEAVE TO SCREEN 100.
WHEN 'VINCULA'.
READ TABLE itab_atos2 WITH KEY marc = 'X'.
IF sy-subrc NE 0 OR itab_atos2-status EQ 'E'.
MESSAGE i015 WITH text-457.
EXIT.
ENDIF.
READ TABLE it_zycit244 WITH KEY nrseqd = itab_atos2-nrseqd.
IF /pws/zycit321-c_comum NE 'X' AND
* >> Início da exclusão: FORM USER_COMMAND_0810
itab_atos2-tipo NE 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM USER_COMMAND_0810
itab_atos2-tipo NA 'GD'.
* << Fim da inclusão
LOOP AT itab_atos WHERE nrseqd EQ itab_atos2-nrseqd.
IF itab_atos-grupo NE space.
LOOP AT itab_zycit433 WHERE grupo EQ itab_atos-grupo.
LOOP AT it_ekpo WHERE matnr EQ itab_zycit433-matnr.
READ TABLE it_zycit079 WITH KEY
ebeln = it_ekpo-ebeln
ebelp = it_ekpo-ebelp.
MOVE:
itab_atos-nritem+2 TO it_zycit079-item_drawback,
itab_atos-nritem TO it_zycit079-nritem_db.
...
...
it_zycit172-digito TO /pws/zycie078-digito.
IF itab_atos2-modalidade = 'I'.
/pws/zycie078-codregtri = '2'.
ELSE.
/pws/zycie078-codregtri = '5'.
ENDIF.
IF NOT /pws/zycie078-tipodb IS INITIAL.
IF /pws/zycie078-modalidade EQ 'I'.
/pws/zycie078-drawback = '3'.
ELSE.
* >> Início da exclusão: FORM USER_COMMAND_0810
IF /pws/zycie078-tipodb = 'G'.
* << Fim da exclusão
* >> Início da inclusão: FORM USER_COMMAND_0810
IF /pws/zycie078-tipodb CA 'GD'.
* << Fim da inclusão
/pws/zycie078-drawback = '1'.
ELSE.
/pws/zycie078-drawback = '2'.
ENDIF.
ENDIF.
ENDIF.
LOOP AT itab_atos2 WHERE nrseqd NE /pws/zycit078-nrseqd.
CALL FUNCTION '/PWS/ZYCI_DEQUEUE_ZYCIT244'
EXPORTING
nrseqd = itab_atos2-nrseqd.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI020O01
...
MODULE load_item OUTPUT.
v_total = /pws/zycie079a-qtd_iten * /pws/zycie079a-netpr.
* >> Início da exclusão: MODULE LOAD_ITEM
DATA: v_steu LIKE it_zycit079-steuc1."#EC NEEDED
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_ITEM
DATA: v_steu LIKE it_zycit079-steuc1. "#EC NEEDED
* << Fim da inclusão
v_steu = it_zycit079-steuc1 .
REPLACE '.' WITH '0' INTO v_steu.
IF sy-subrc EQ 0.
CONCATENATE it_zycit079-steuc1(4) it_zycit079-steuc1+5(2)
it_zycit079-steuc1+8(2) INTO /pws/zycie079a-ncm.
ELSE.
/pws/zycie079a-ncm = it_zycit079-steuc1.
ENDIF.
IF v_txtki IS INITIAL.
CONCATENATE /pws/zycie079a-nrseqli /pws/zycie079a-ebeln
...
...
MODULE load_cabec_110 OUTPUT.
IF /pws/zycie078-modalidade EQ 'I'.
/pws/zycie078-drawback = '3'.
ELSE.
* >> Início da exclusão: MODULE LOAD_CABEC_110
IF /pws/zycie078-tipodb EQ 'G'.
* << Fim da exclusão
* >> Início da inclusão: MODULE LOAD_CABEC_110
IF /pws/zycie078-tipodb CA 'GD'.
* << Fim da inclusão
/pws/zycie078-drawback = '1'.
ELSEIF /pws/zycie078-tipodb IS INITIAL.
/pws/zycie078-drawback = '3'.
ELSE.
/pws/zycie078-drawback = '2'.
ENDIF.
ENDIF.
IF v_tcode = '/PWS/ZYCI020_C'.
wa_zycit078-drawback = /pws/zycie078-drawback.
ENDIF.
...
...
MODULE status_0810 OUTPUT.
SET PF-STATUS '0810'.
SET TITLEBAR '0810'.
* >> Início da exclusão: MODULE STATUS_0810
LOOP AT it_vinculato WHERE tipo NE 'G'.
* << Fim da exclusão
* >> Início da inclusão: MODULE STATUS_0810
LOOP AT it_vinculato WHERE tipo NA 'GD'.
* << Fim da inclusão
EXIT.
ENDLOOP.
IF sy-subrc NE 0.
LOOP AT SCREEN.
IF screen-name EQ '/PWS/ZYCIE079-SLQTDE' OR
screen-name EQ '/PWS/ZYCIE079-MEINS' OR
screen-name EQ '/PWS/ZYCIE079-DESC_COMPLEM' .
screen-invisible = 1.
MODIFY SCREEN.
ENDIF.
...