CE PLUS - Nota 012813

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 22/02/2013 11:58:04

Data/Hora Última Alteração: 22/02/2013 11:58:04

Descrição da Nota: NA MENSAGEM DA NF JUNTAR PEDIDOS E ITENS PARA O MESMO ATO

Sintoma

Quando os pedidos e itens forem do mesmo ato concessório favor ajustar para que leve pedido tal do

item tal ao tal/ nº ato concessório. Isto quando for do mesmo pedido e ato.

 

 

Solução

Desenvolver conforme especificação.

 

Versões Tratadas

9.0

Informações Complementares

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

Nota Número 12813 Data: 21/02/2013 Hora: 15:41:32

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

 

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

Nota Número              : 12813

Categoria                : Melhoria

Prioridade               : Baixa

Versão PW.CE             : 9.0

Pacote                   : 00003

Agrupamento              : 00148

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

Referência às notas relacionadas:

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

 

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

NA MENSAGEM DA NF JUNTAR PEDIDOS E ITENS PARA O MESMO ATO

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

Palavras Chave:

NOTA FISCAL - ATO CONCESSÓRIO - JUNTAR PEDIDO E ITEM

DESENVOLVIMENTO ADICIONAL

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

Objetos da nota:

REPS /PWS/MZYCI016F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

FORM mensagens_nf.

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

  DATA: lv_reg     TYPE /pws/zycit078-reg_drawback,

        lv_ebeln   TYPE /pws/zycit003-ebeln,

        lv_inicial TYPE /pws/zycit003-ebelp,

        lv_final   TYPE /pws/zycit003-ebelp.

  DATA: BEGIN OF lt_ato OCCURS 0,

          ebeln        TYPE /pws/zycit003-ebeln,

          ebelp        TYPE /pws/zycit003-ebelp,

          reg_drawback TYPE /pws/zycit078-reg_drawback,

        END OF lt_ato.

* << Fim da inclusão

...

 

...

    ENDLOOP.

    SELECT SINGLE * FROM /pws/zycit479

      WHERE tpnf EQ itab_zycit042_mark-tpnf.

    IF sy-subrc EQ 0.

      it_zycee006-msg = /pws/zycit479-text1.

      APPEND it_zycee006.

      it_zycee006-msg = /pws/zycit479-text2.

      APPEND it_zycee006.

    ENDIF.

  ENDIF.

 

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

  IF NOT itab_zycit003_mark[] IS INITIAL.

    CLEAR: itab_zycit078, itab_zycit078[], lt_ato[], lt_ato.

    SELECT * FROM /pws/zycit078

      INTO TABLE itab_zycit078

        FOR ALL ENTRIES IN itab_zycit003_mark

          WHERE nrseqli = itab_zycit003_mark-nrseqli

             AND ( tpli = 'N' OR tpli = 'S' ).

    LOOP AT itab_zycit003_mark.

      CLEAR: lt_ato, itab_zycit078.

      READ TABLE itab_zycit078 WITH KEY

                                  nrseqli = itab_zycit003_mark-nrseqli.

      lt_ato-ebeln = itab_zycit003_mark-ebeln.

      lt_ato-ebelp = itab_zycit003_mark-ebelp.

      lt_ato-reg_drawback = itab_zycit078-reg_drawback.

      APPEND lt_ato.

    ENDLOOP.

    SORT lt_ato.

    CLEAR: lv_reg, lv_ebeln, lv_inicial.

    LOOP AT lt_ato.

      IF sy-tabix EQ 1.

        lv_reg     = lt_ato-reg_drawback.

        lv_ebeln   = lt_ato-ebeln.

        lv_inicial = lt_ato-ebelp.

        lv_final   = lt_ato-ebelp.

      ELSEIF lv_reg IS INITIAL AND

             lv_reg NE lt_ato-reg_drawback.

        lv_reg     = lt_ato-reg_drawback.

        lv_ebeln   = lt_ato-ebeln.

        lv_inicial = lt_ato-ebelp.

        lv_final   = lt_ato-ebelp.

      ELSE.

        IF lv_reg   NE lt_ato-reg_drawback OR

           lv_ebeln NE lt_ato-ebeln.

          IF lv_inicial EQ lv_final.

            it_zycee006-msg = 'Pedido'.

            CONCATENATE it_zycee006-msg lv_ebeln INTO it_zycee006-msg

              SEPARATED BY '-' .

            CONCATENATE it_zycee006-msg 'Item' INTO it_zycee006-msg

              SEPARATED BY space .

            CONCATENATE it_zycee006-msg lv_inicial INTO it_zycee006-msg

            SEPARATED BY '-'.

            CONCATENATE it_zycee006-msg 'Nº Ato Concessório' INTO

              it_zycee006-msg SEPARATED BY ' / '.

            CONCATENATE it_zycee006-msg lv_reg INTO it_zycee006-msg

            SEPARATED BY '-' .

          ELSE.

            it_zycee006-msg = 'Pedido'.

            CONCATENATE it_zycee006-msg lv_ebeln INTO it_zycee006-msg

              SEPARATED BY '-' .

            CONCATENATE it_zycee006-msg 'Item' INTO it_zycee006-msg

              SEPARATED BY space .

            CONCATENATE it_zycee006-msg lv_inicial INTO it_zycee006-msg

            SEPARATED BY '-'.

            CONCATENATE it_zycee006-msg lv_final INTO it_zycee006-msg

            SEPARATED BY '-'.

            CONCATENATE it_zycee006-msg 'Nº Ato Concessório' INTO

              it_zycee006-msg SEPARATED BY ' / '.

            CONCATENATE it_zycee006-msg lv_reg INTO it_zycee006-msg

            SEPARATED BY '-' .

          ENDIF.

          v_ind = v_ind + 1.

          it_zycee006-indice = v_ind.

          APPEND it_zycee006.

          lv_reg     = lt_ato-reg_drawback.

          lv_ebeln   = lt_ato-ebeln.

          lv_inicial = lt_ato-ebelp.

          lv_final   = lt_ato-ebelp.

        ELSE.

          lv_final   = lt_ato-ebelp.

        ENDIF.

      ENDIF.

    ENDLOOP.

    IF sy-subrc EQ 0 AND NOT lv_reg IS INITIAL.

      IF lv_inicial EQ lv_final.

        it_zycee006-msg = 'Pedido'.

        CONCATENATE it_zycee006-msg lv_ebeln INTO it_zycee006-msg

          SEPARATED BY '-' .

        CONCATENATE it_zycee006-msg 'Item' INTO it_zycee006-msg

          SEPARATED BY space .

        CONCATENATE it_zycee006-msg lv_inicial INTO it_zycee006-msg

        SEPARATED BY '-'.

        CONCATENATE it_zycee006-msg 'Nº Ato Concessório' INTO

          it_zycee006-msg SEPARATED BY ' / '.

        CONCATENATE it_zycee006-msg lv_reg INTO it_zycee006-msg

        SEPARATED BY '-' .

      ELSE.

        it_zycee006-msg = 'Pedido'.

        CONCATENATE it_zycee006-msg lv_ebeln INTO it_zycee006-msg

          SEPARATED BY '-' .

        CONCATENATE it_zycee006-msg 'Item' INTO it_zycee006-msg

          SEPARATED BY space .

        CONCATENATE it_zycee006-msg lv_inicial INTO it_zycee006-msg

        SEPARATED BY '-'.

        CONCATENATE it_zycee006-msg lv_final INTO it_zycee006-msg

        SEPARATED BY '-'.

        CONCATENATE it_zycee006-msg 'Nº Ato Concessório' INTO

          it_zycee006-msg SEPARATED BY ' / '.

        CONCATENATE it_zycee006-msg lv_reg INTO it_zycee006-msg

        SEPARATED BY '-' .

      ENDIF.

      v_ind = v_ind + 1.

      it_zycee006-indice = v_ind.

      APPEND it_zycee006.

    ENDIF.

  ENDIF.

* << Fim da inclusão

 

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

  LOOP AT itab_zycit003_mark.

    IF NOT itab_zycit003_mark-nrseqd IS INITIAL.

      SELECT SINGLE * FROM /pws/zycit078

       WHERE nrseqli = itab_zycit003_mark-nrseqli

         AND ( tpli = 'N' OR tpli = 'S' ).

      IF sy-subrc EQ 0.

        it_zycee006-msg = 'Pedido'.                         "#EC NOTEXT

        CONCATENATE it_zycee006-msg itab_zycit003_mark-ebeln

        INTO it_zycee006-msg

        SEPARATED BY '-' .

        CONCATENATE it_zycee006-msg 'Item'                  "#EC NOTEXT

         INTO it_zycee006-msg

         SEPARATED BY space .

        CONCATENATE it_zycee006-msg itab_zycit003_mark-ebelp

        INTO it_zycee006-msg

        SEPARATED BY '-'.

        CONCATENATE it_zycee006-msg 'Nº Ato Concessório'    "#EC NOTEXT

         INTO it_zycee006-msg

         SEPARATED BY ' /  ' . "space.

        CONCATENATE it_zycee006-msg /pws/zycit078-reg_drawback

        INTO it_zycee006-msg

        SEPARATED BY '-' .

        v_ind = v_ind + 1.

        it_zycee006-indice = v_ind.

        APPEND it_zycee006.

      ENDIF.

    ENDIF.

  ENDLOOP.

* << Fim da exclusão

 

  CLEAR itab_zycit042_mark[].

  REFRESH itab_zycit042_mark[].

 

ENDFORM.                    " MENSAGENS_NF

...

 

 

 

...

FORM mensagens_nf_r.

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

  DATA: lv_reg     TYPE /pws/zycit078-reg_drawback,

        lv_ebeln   TYPE /pws/zycit003-ebeln,

        lv_inicial TYPE /pws/zycit003-ebelp,

        lv_final   TYPE /pws/zycit003-ebelp.

  DATA: BEGIN OF lt_ato OCCURS 0,

          ebeln        TYPE /pws/zycit003-ebeln,

          ebelp        TYPE /pws/zycit003-ebelp,

          reg_drawback TYPE /pws/zycit078-reg_drawback,

        END OF lt_ato.

* << Fim da inclusão

...

 

 

...

      CLEAR v_dif.

      v_cont = v_cont + 1.

      it_zycee006-indice = v_cont.

      APPEND it_zycee006.

    ENDIF.

  ENDIF.

  SELECT * FROM /pws/zycit078

  INTO TABLE itab_zycit078

  FOR ALL ENTRIES IN itab_zycit003

   WHERE nrseqli = itab_zycit003-nrseqli.

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

  CLEAR: lt_ato[], lt_ato.

  LOOP AT itab_zycit003.

    CLEAR: lt_ato, itab_zycit078.

    READ TABLE itab_zycit078 WITH KEY

                                nrseqli = itab_zycit003-nrseqli.

    lt_ato-ebeln = itab_zycit003-ebeln.

    lt_ato-ebelp = itab_zycit003-ebelp.

    lt_ato-reg_drawback = itab_zycit078-reg_drawback.

    APPEND lt_ato.

  ENDLOOP.

  SORT lt_ato.

  CLEAR: lv_reg, lv_ebeln, lv_inicial.

  LOOP AT lt_ato.

    IF sy-tabix EQ 1.

      lv_reg     = lt_ato-reg_drawback.

      lv_ebeln   = lt_ato-ebeln.

      lv_inicial = lt_ato-ebelp.

      lv_final   = lt_ato-ebelp.

    ELSEIF lv_reg IS INITIAL AND

           lv_reg NE lt_ato-reg_drawback.

      lv_reg     = lt_ato-reg_drawback.

      lv_ebeln   = lt_ato-ebeln.

      lv_inicial = lt_ato-ebelp.

      lv_final   = lt_ato-ebelp.

    ELSE.

      IF lv_reg   NE lt_ato-reg_drawback OR

         lv_ebeln NE lt_ato-ebeln.

        IF lv_inicial EQ lv_final.

          it_zycee006-msg = 'Pedido'.

          CONCATENATE it_zycee006-msg lv_ebeln INTO it_zycee006-msg

            SEPARATED BY '-' .

          CONCATENATE it_zycee006-msg 'Item' INTO it_zycee006-msg

            SEPARATED BY space .

          CONCATENATE it_zycee006-msg lv_inicial INTO it_zycee006-msg

          SEPARATED BY '-'.

          CONCATENATE it_zycee006-msg 'Nº Ato Concessório' INTO

            it_zycee006-msg SEPARATED BY ' / '.

          CONCATENATE it_zycee006-msg lv_reg INTO it_zycee006-msg

          SEPARATED BY '-' .

        ELSE.

          it_zycee006-msg = 'Pedido'.

          CONCATENATE it_zycee006-msg lv_ebeln INTO it_zycee006-msg

            SEPARATED BY '-' .

          CONCATENATE it_zycee006-msg 'Item' INTO it_zycee006-msg

            SEPARATED BY space .

          CONCATENATE it_zycee006-msg lv_inicial INTO it_zycee006-msg

          SEPARATED BY '-'.

          CONCATENATE it_zycee006-msg lv_final INTO it_zycee006-msg

          SEPARATED BY '-'.

          CONCATENATE it_zycee006-msg 'Nº Ato Concessório' INTO

            it_zycee006-msg SEPARATED BY ' / '.

          CONCATENATE it_zycee006-msg lv_reg INTO it_zycee006-msg

          SEPARATED BY '-' .

        ENDIF.

        v_cont = v_cont + 1.

        it_zycee006-indice = v_cont.

        APPEND it_zycee006.

        lv_reg     = lt_ato-reg_drawback.

        lv_ebeln   = lt_ato-ebeln.

        lv_inicial = lt_ato-ebelp.

        lv_final   = lt_ato-ebelp.

      ELSE.

        lv_final   = lt_ato-ebelp.

      ENDIF.

    ENDIF.

  ENDLOOP.

  IF sy-subrc EQ 0 AND NOT lv_reg IS INITIAL.

    IF lv_inicial EQ lv_final.

      it_zycee006-msg = 'Pedido'.

      CONCATENATE it_zycee006-msg lv_ebeln INTO it_zycee006-msg

        SEPARATED BY '-' .

      CONCATENATE it_zycee006-msg 'Item' INTO it_zycee006-msg

        SEPARATED BY space .

      CONCATENATE it_zycee006-msg lv_inicial INTO it_zycee006-msg

      SEPARATED BY '-'.

      CONCATENATE it_zycee006-msg 'Nº Ato Concessório' INTO

        it_zycee006-msg SEPARATED BY ' / '.

      CONCATENATE it_zycee006-msg lv_reg INTO it_zycee006-msg

      SEPARATED BY '-' .

    ELSE.

      it_zycee006-msg = 'Pedido'.

      CONCATENATE it_zycee006-msg lv_ebeln INTO it_zycee006-msg

        SEPARATED BY '-' .

      CONCATENATE it_zycee006-msg 'Item' INTO it_zycee006-msg

        SEPARATED BY space .

      CONCATENATE it_zycee006-msg lv_inicial INTO it_zycee006-msg

      SEPARATED BY '-'.

      CONCATENATE it_zycee006-msg lv_final INTO it_zycee006-msg

      SEPARATED BY '-'.

      CONCATENATE it_zycee006-msg 'Nº Ato Concessório' INTO

        it_zycee006-msg SEPARATED BY ' / '.

      CONCATENATE it_zycee006-msg lv_reg INTO it_zycee006-msg

      SEPARATED BY '-' .

    ENDIF.

    v_cont = v_cont + 1.

    it_zycee006-indice = v_cont.

    APPEND it_zycee006.

  ENDIF.

* << Fim da inclusão

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

  LOOP AT itab_zycit003.

    READ TABLE itab_zycit078

    WITH KEY nrseqli =  itab_zycit003-nrseqli.

    IF sy-subrc EQ 0.

      it_zycee006-msg = 'Pedido'.                           "#EC NOTEXT

      CONCATENATE it_zycee006-msg itab_zycit003-ebeln

      INTO it_zycee006-msg

      SEPARATED BY '-' .

      CONCATENATE it_zycee006-msg 'Item'                    "#EC NOTEXT

       INTO it_zycee006-msg

       SEPARATED BY space .

      CONCATENATE it_zycee006-msg itab_zycit003-ebelp

      INTO it_zycee006-msg

      SEPARATED BY '-'.

      CONCATENATE it_zycee006-msg 'Nº Ato Concessório'      "#EC NOTEXT

       INTO it_zycee006-msg

       SEPARATED BY ' /  ' . "space.

      CONCATENATE it_zycee006-msg itab_zycit078-reg_drawback

      INTO it_zycee006-msg

      SEPARATED BY '-' .

      v_cont = v_cont + 1.

      it_zycee006-indice = v_cont.

      APPEND it_zycee006.

    ENDIF.

  ENDLOOP.

* << Fim da exclusão

...