CE PLUS - Nota 000968

Módulo: DRAWBACK

Funcionalidade: Apropriação

Data/Hora da Publicação: 02/03/2006 00:00:00

Data/Hora Última Alteração: 17/02/2011 13:00:22

Descrição da Nota: TOLERANCIA DE DIAS ENTRE VENCIMENTO DO ATO E EMBARQUE DE EXPORTAÇÃO

Sintoma

O programa de aproprição não verifica a data de vencimento do ato

concessório e a data de previsão de embarque do embarque de exportação.

 

 

Solução

Criar parametro na tabela /pws/zycit321 referente a tolerância de dias

entre o vencimento do ato e a data de previsão de embarque, e ajustar os

programas de apropriação para efetuar este tratamento.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

PARAMETRO UF DE ENTRADA

Informações Complementares

----------------------------------------------------------------------------------------------------

Nota Número 00968 Data: 02/03/2006 Hora: 08:41:18

----------------------------------------------------------------------------------------------------

 

----------------------------------------------------------------------------------------------------

Nota Número              : 00968

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00022

Agrupamento              : 00102

----------------------------------------------------------------------------------------------------

Referência às notas relacionadas:

Número - Ordem - Versão - Pacote - Descrição Breve

 

00948  - 00001 - 6.0    - 00022  - PARAMETRO UF DE ENTRADA

----------------------------------------------------------------------------------------------------

TOLERANCIA DE DIAS ENTRE VENCIMENTO DO ATO E EMBARQUE DE EXPORTAÇÃO

----------------------------------------------------------------------------------------------------

Palavras Chave:

TOLERANCIA - DIAS - VENCIMENTO - ATO - APROPRIAÇÃO

/PWS/ZYCIR070 - /PWS/ZYCIR115 - /PWS/ZYCIR217

----------------------------------------------------------------------------------------------------

Objetos da nota:

DTEL /PWS/ZYCIL835

REPS /PWS/ZYCIR070

REPS /PWS/ZYCIR070F01

REPS /PWS/ZYCIR115

REPS /PWS/ZYCIR115F01

REPS /PWS/ZYCIR217

REPS /PWS/ZYCIR217F01

REPT /PWS/ZYCIR070

REPT /PWS/ZYCIR115

REPT /PWS/ZYCIR217

TABD /PWS/ZYCIT321

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em DTEL /PWS/ZYCIL835

 

Criar:

Elemento de dados:  /PWS/ZYCIL835

Descrição breve:    GL - n° dias de tolerancia para vencimento

Dominio: DEC4

Ctg.dados: DEC

Comprimento: 4

Textos:

                  Comprim Denominador de campo

Breve             10      n° ant/ven

Médio             17      n° dias Ant/Venc.

longa             37      n° dias de tolerancia para ven

Título            37      n° dias de tolerancia para ven

 

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR070

 

...

DATA: BEGIN OF it_zycet002 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: qtdbx   LIKE /pws/zycet002-fkimg,

      mexp(1) TYPE c                  .

DATA: END OF it_zycet002.

* >> Início da inclusão:

DATA: BEGIN OF it_zycet001 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet001.

DATA: END OF it_zycet001.

* << Fim da inclusão

DATA: BEGIN OF itab_zycit246 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit246.

DATA: END OF itab_zycit246.

DATA: BEGIN OF it_zycet002_grp OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR070F01

 

...

        PERFORM appropriate_current_record.

      ENDLOOP.

    ENDIF.

  ELSE.

    IF NOT it_zycet002[] IS INITIAL.

* >> Início da exclusão: FORM RUN_APPROPRIATION_EXPORTATION

      CLEAR it_zycit281. REFRESH it_zycit281.

* << Fim da exclusão

* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION

      CLEAR it_zycet001. REFRESH it_zycet001.

      SELECT * FROM /pws/zycet001 INTO TABLE it_zycet001

          FOR ALL ENTRIES IN it_zycet002

          WHERE nrseq EQ it_zycet002-nrseq.

      CLEAR it_zycit281.

      REFRESH it_zycit281.

* << Fim da inclusão

      SELECT * FROM /pws/zycit281 INTO TABLE it_zycit281

             FOR ALL ENTRIES IN it_zycet002

             WHERE matnr EQ it_zycet002-matnr.

      CLEAR it_zycit247. REFRESH it_zycit247.

      SELECT * FROM /pws/zycit247 INTO TABLE it_zycit247

...

 

...

  ENDIF.

  FREE MEMORY ID idmemory2.

ENDFORM.

FORM appropriate_current_record.

  DATA: v_apmat(1) TYPE c              ,

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

        v_diasv TYPE /pws/zycit321-dia_ant ,

* << Fim da inclusão

        v_qtdaprop LIKE /pws/zycet002-fkimg ,

        v_qtdbase  LIKE itab_stko-bmeng,

        v_error(1) TYPE c              .

  v_apmat = 'N'.

  SORT it_zycit247 BY nrseqd.

...

 

...

      IF v_error EQ 'S'.

        CONTINUE.

      ENDIF.

    ENDLOOP.

  ELSE.

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

    CLEAR: it_zycet001.

    READ TABLE it_zycet001 WITH KEY nrseq = it_zycet002-nrseq.

    IF it_zycet001-dtprev IS INITIAL.

      CLEAR: v_errolog, it_log_erro.

      CONCATENATE text-075 it_zycet002-nrseq text-077

                                      INTO v_errolog SEPARATED BY space.

      MOVE v_errolog TO it_log_erro.

      APPEND it_log_erro.

      EXIT.

    ENDIF.

* << Fim da inclusão

    LOOP AT it_zycit247 WHERE codmat   EQ it_zycet002-matnr

                          AND esgotado EQ ' '

                          AND werks EQ it_zycet002-werks.

      READ TABLE itab_stko WITH KEY stlnr = it_zycit247-stlnr

                                    stlal = it_zycit247-stlal.

...

 

...

      CLEAR it_zycit244.

      READ TABLE it_zycit244 WITH KEY nrseqd = it_zycit247-nrseqd.

      IF sy-subrc NE 0.

        CONTINUE.

      ENDIF.

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

      IF it_zycit244-vcto_vg IS INITIAL.

        CLEAR: v_errolog, it_log_erro.

        CONCATENATE text-031 it_zycit244-nrseqd text-076

                                      INTO v_errolog SEPARATED BY space.

        MOVE v_errolog TO it_log_erro.

        APPEND it_log_erro.

        CONTINUE.

      ENDIF.

      v_diasv = it_zycit244-vcto_vg - it_zycet001-dtprev.

      IF v_diasv < /pws/zycit321-dia_ant.

        CONTINUE.

      ENDIF.

* << Fim da inclusão

      IF v_qtdaprop >= it_zycet002-fkimg.

        EXIT.

      ENDIF.

      v_apmat = 'S'.

      v_error = 'N'.

...

 

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR115

 

...

DATA: BEGIN OF it_zycet002 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: qtdbx   LIKE /pws/zycet002-fkimg,

      mexp(1) TYPE c             .

DATA: END OF it_zycet002.

* >> Início da inclusão:

DATA: BEGIN OF it_zycet001 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet001.

DATA: END OF it_zycet001.

* << Fim da inclusão

DATA: BEGIN OF it_zycet002_desa OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: qtdapr  LIKE /pws/zycit283-qtd_apr,

      mexp(1) TYPE c.

DATA: END OF it_zycet002_desa.

...

 

...

      v_linha          TYPE i                          ,

      c_pct_dec        TYPE p DECIMALS 2               ,

      v_pos            TYPE i                          ,

      v_perc(10)                                       ,

      v_idx            LIKE sy-tabix                   ,

* >> Início da inclusão:

      v_diasv          TYPE /pws/zycit321-dia_ant      ,

* << Fim da inclusão

      v_indic1         LIKE icon-id                    ,

      v_indic2         LIKE icon-id                    ,

      v_amarrado       LIKE icon-id                    ,

      v_indicatu       LIKE sy-tabix                   ,

      v_saldo_mat      TYPE p DECIMALS 3               ,

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR115F01

 

...

  SORT it_zycit279   BY nrseq ebeln ebelp docnum matnr.

  SORT it_zycit279_f BY nrseq ebeln ebelp docnum matnr.

  it_zycit245_f2[] = it_zycit245_f[].

  it_zycit247_f2[] = it_zycit247_f[].

  it_zycit279_f2[] = it_zycit279_f[].

* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION

  IF NOT it_zycet002[] IS INITIAL.

    CLEAR it_zycet001. REFRESH it_zycet001.

    SELECT * FROM /pws/zycet001 INTO TABLE it_zycet001

        FOR ALL ENTRIES IN it_zycet002

        WHERE nrseq EQ it_zycet002-nrseq.

  ENDIF.

* << Fim da inclusão

  LOOP AT it_zycet002.

    IF t001-bukrs NE it_zycet002-bukrs.

      SELECT SINGLE * FROM t001 WHERE bukrs EQ it_zycet002-bukrs.

    ENDIF.

    READ TABLE it_zycit281 WITH KEY matnr = it_zycet002-matnr

...

 

...

  v_apmat  = 'N'.

  v_qtdmat = it_zycet002-fkimg.

  v_quebra = 1.

  v_exapr = 'N'.

  REFRESH itab_fornec.

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

  CLEAR: it_zycet001.

  READ TABLE it_zycet001 WITH KEY nrseq = it_zycet002-nrseq.

  IF it_zycet001-dtprev IS INITIAL.

    CLEAR: v_errolog, it_log_erro.

    CONCATENATE text-075 it_zycet002-nrseq text-077

                                    INTO v_errolog SEPARATED BY space.

    MOVE v_errolog TO it_log_erro.

    APPEND it_log_erro.

    EXIT.

  ENDIF.

* << Fim da inclusão

  LOOP AT it_zycit245_g .

    CLEAR it_zycit244_g.

    v_qtdmat = it_zycet002-fkimg.

    READ TABLE it_zycit244_g WITH KEY nrseqd = it_zycit245_g-nrseqd.

    IF sy-subrc NE 0.

      CONTINUE.

    ENDIF.

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

    IF it_zycit244_g-vcto_vg IS INITIAL.

      CLEAR: v_errolog, it_log_erro.

      CONCATENATE text-031 it_zycit244_g-nrseqd text-076

                                    INTO v_errolog SEPARATED BY space.

      MOVE v_errolog TO it_log_erro.

      APPEND it_log_erro.

      CONTINUE.

    ENDIF.

    v_diasv = it_zycit244_g-vcto_vg - it_zycet001-dtprev.

    IF v_diasv < /pws/zycit321-dia_ant.

      CONTINUE.

    ENDIF.

* << Fim da inclusão

    SELECT SINGLE * FROM /pws/zycit243

          WHERE nrseqd EQ it_zycit245_g-nrseqd

            AND werks  EQ it_zycet002-werks.

    IF sy-subrc NE 0 AND it_zycit244_g-werks NE it_zycet002-werks.

      CONTINUE.

...

 

...

      CLEAR it_zycit244_f.

      READ TABLE it_zycit244_f WITH KEY nrseqd = it_zycit245_f-nrseqd.

      IF sy-subrc NE 0.

        CONTINUE.

      ENDIF.

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

      IF it_zycit244_f-vcto_vg IS INITIAL.

        CLEAR: v_errolog, it_log_erro.

        CONCATENATE text-031 it_zycit244_f-nrseqd text-076

                                      INTO v_errolog SEPARATED BY space.

        MOVE v_errolog TO it_log_erro.

        APPEND it_log_erro.

        CONTINUE.

      ENDIF.

      v_diasv = it_zycit244_f-vcto_vg - it_zycet001-dtprev.

      IF v_diasv < /pws/zycit321-dia_ant.

        CONTINUE.

      ENDIF.

* << Fim da inclusão

      READ TABLE itab_fornec WITH KEY lifnr = it_zycit244_f-lifnr.

      IF sy-subrc EQ 0 .

        IF itab_fornec-nrseqd NE it_zycit244_f-nrseqd.

          CONTINUE.

        ENDIF.

...

 

...

      LOOP AT it_zycit245_f WHERE j_1bnbm  EQ it_apropriar_fmi-ncm.

        CLEAR it_zycit244_f.

        READ TABLE it_zycit244_f WITH KEY

                                        nrseqd = it_zycit245_f-nrseqd.

        IF sy-subrc NE 0.

* >> Início da inclusão: FORM APPROPRIATE_TG

          CONTINUE.

        ENDIF.

        IF it_zycit244_f-vcto_vg IS INITIAL.

          CLEAR: v_errolog, it_log_erro.

          CONCATENATE text-031 it_zycit244_f-nrseqd text-076

                                      INTO v_errolog SEPARATED BY space.

          MOVE v_errolog TO it_log_erro.

          APPEND it_log_erro.

* << Fim da inclusão

          CONTINUE.

        ENDIF.

* >> Início da inclusão: FORM APPROPRIATE_TG

        v_diasv = it_zycit244_f-vcto_vg - it_zycet001-dtprev.

        IF v_diasv < /pws/zycit321-dia_ant.

          CONTINUE.

        ENDIF.

* << Fim da inclusão

        READ TABLE itab_fornec WITH KEY lifnr = it_zycit244_f-lifnr.

        IF sy-subrc EQ 0 .

          IF itab_fornec-nrseqd NE it_zycit244_f-nrseqd.

            CONTINUE.

          ENDIF.

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR217

 

...

DATA: BEGIN OF it_zycet002 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: qtdbx   LIKE /pws/zycet002-fkimg,

      mexp(1) TYPE c             .

DATA: END OF it_zycet002.

* >> Início da inclusão:

DATA: BEGIN OF it_zycet001 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet001.

DATA: END OF it_zycet001.

* << Fim da inclusão

DATA: BEGIN OF it_zycet002_grp OCCURS 0.

        INCLUDE STRUCTURE /pws/zycet002.

DATA: qtdbx   LIKE /pws/zycet002-fkimg,

      mexp(1) TYPE c             ,

      grp     LIKE mvke-mvgr1   .

...

 

...

      v_indicatu       LIKE sy-tabix                   ,

      v_dtnf       LIKE sy-datum              ,

      v_dias           TYPE i                          ,

      v_dtforn         LIKE sy-datum                   ,

      v_mdias                                 ,

* >> Início da inclusão:

      v_conv                                           ,

* << Fim da inclusão

      v_exapr                                          ,

      v_aprov(1)       TYPE c VALUE 'N'                ,

      v_index          TYPE sy-tabix                   ,

      v_errolog(135)   TYPE c                          ,

      v_qtdbx          LIKE /pws/zycet002-fkimg        ,

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPS /PWS/ZYCIR217F01

 

...

    IF   /pws/zycit321-ltopc NE '1'.

      MESSAGE e015 WITH text-035.

      LEAVE PROGRAM.

    ENDIF.

    IF NOT it_zycet002[] IS INITIAL.

* >> Início da inclusão: FORM RUN_APPROPRIATION_EXPORTATION

      CLEAR it_zycet001. REFRESH it_zycet001.

      SELECT * FROM /pws/zycet001 INTO TABLE it_zycet001

          FOR ALL ENTRIES IN it_zycet002

          WHERE nrseq EQ it_zycet002-nrseq.

* << Fim da inclusão

      CLEAR it_agrup. REFRESH it_agrup.

      SELECT * FROM mvke INTO TABLE it_agrup

          FOR ALL ENTRIES IN it_zycet002

          WHERE matnr EQ it_zycet002-matnr

            AND vkorg EQ it_zycet002-vkorg_auft

...

 

...

  ENDIF.

  FREE MEMORY ID idmemory2.

ENDFORM.

FORM appropriate_current_record.

  DATA: v_apmat(1) TYPE c              ,

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

        v_diasv TYPE /pws/zycit321-dia_ant,

* << Fim da inclusão

        v_qtdaprop LIKE /pws/zycet002-fkimg ,

        v_qtdbase  LIKE itab_stko-bmeng,

        v_error(1) TYPE c              .

  v_apmat = 'N'.

  CLEAR: v_conv.

  IF v_tptrans EQ 'N'.

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

    CLEAR: it_zycet001.

    READ TABLE it_zycet001 WITH KEY nrseq = it_zycet002-nrseq.

    IF it_zycet001-dtprev IS INITIAL.

      CLEAR: v_errolog, it_log_erro.

      CONCATENATE text-075 it_zycet002-nrseq text-077

                                      INTO v_errolog SEPARATED BY space.

      MOVE v_errolog TO it_log_erro.

      APPEND it_log_erro.

      EXIT.

    ENDIF.

* << Fim da inclusão

    LOOP AT it_zycit247 WHERE agrup    EQ it_zycet002_grp-grp

                          AND j_1bnbm  EQ it_zycet002_grp-steuc

                          AND esgotado EQ ' '.

      CLEAR it_zycit244.

      READ TABLE it_zycit244 WITH KEY nrseqd = it_zycit247-nrseqd.

* >> Início da exclusão: FORM APPROPRIATE_CURRENT_RECORD

      IF v_qtdaprop >= it_zycet002-fkimg.

* << Fim da exclusão

* >> Início da inclusão: FORM APPROPRIATE_CURRENT_RECORD

      IF it_zycit244-vcto_vg IS INITIAL.

        CLEAR: v_errolog, it_log_erro.

        CONCATENATE text-031 it_zycit244-nrseqd text-076

                                      INTO v_errolog SEPARATED BY space.

        MOVE v_errolog TO it_log_erro.

        APPEND it_log_erro.

        CONTINUE.

      ENDIF.

      v_diasv = it_zycit244-vcto_vg - it_zycet001-dtprev.

      IF v_diasv < /pws/zycit321-dia_ant.

        CONTINUE.

      ENDIF.

      IF v_qtdaprop >= it_zycet002-fkimg .

* << Fim da inclusão

        EXIT.

      ENDIF.

      CLEAR it_zycit422. REFRESH it_zycit422.

      SELECT * FROM /pws/zycit422 INTO TABLE it_zycit422

          WHERE agrup EQ it_zycet002_grp-grp

...

 

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/ZYCIR070

 

Criar os textos:

 

075 Embarque

076 não possui a data de vencimento vingente preenchida.

077 não possui data de previsão de embarque.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/ZYCIR115

 

Criar os textos:

 

075 Embarque

076 não possui a data de vencimento vingente preenchida.

077 não possui data de previsão de embarque.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em REPT /PWS/ZYCIR217

 

Criar os textos:

 

075 Embarque

076 não possui a data de vencimento vingente preenchida.

077 não possui data de previsão de embarque.

 

----------------------------------------------------------------------------------------------------

Modificações efetuadas em TABD /PWS/ZYCIT321

 

     Nome campo  |Chv |Elem.dados     |Tab.verif. |N |CtDt |Comp. |Grupo

...

     UFENT       |    |/PWS/ZYCIL834  |T005S      |  |CHAR |    3 |

* >> Início da inclusão:

     DIA_ANT     |    |/PWS/ZYCIL835  |           |  |DEC  |    4 |

* >> Fim da inclusão: