CE PLUS - Nota 007060

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.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

CODE INSPECTOR

ENTRADA DE NOTAS NOS ATOS CONCESSÓRIOS DO 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

...