CE PLUS - Nota 012695

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 29/11/2012 00:00:00

Data/Hora Última Alteração: 16/04/2014 09:01:10

Descrição da Nota: QUEBRA DE RATEIO POR ADIÇÕES USANDO QUANTIDADE PARCIAL DOS ITENS

Sintoma

Quebra de rateio por adições usando quantidade parcial dos itens

 

 

Solução

Criar tabela e lógica para rateio por itens.

 

Versões Tratadas

9.0


Pré-Requisitos

Produto:

Nota

Descrição

AO DAR ERRO, NÃO EXIBE MENSAGEM COMPLETA - AGRUPAMENTO - PRESTAÇÃO

ERRO AO RATEAR VALORES PARA MIRO

CRIADO O TRATAMENTO PARA RATEIO POR AGRUPAMENTOS

ERRO NO RATEIO DE DESPESA NÃO POSSUEM AGRUPAMENTO NA ANA

Informações Complementares

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

Nota Número 12695 Data: 29/11/2012 Hora: 16:08:04

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

 

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

Nota Número              : 12695

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 9.0

Pacote                   : 00002

Agrupamento              : 00138

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

Referência às notas relacionadas:

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

 

12520  - 00001 - 9.0    - 00001  - CRIADO O TRATAMENTO PARA RATEIO POR AGRUPAMENTOS

12569  - 00002 - 9.0    - 00002  - ERRO AO RATEAR VALORES PARA MIRO

12599  - 00003 - 9.0    - 00002  - ERRO NO RATEIO DE DESPESA NÃO POSSUEM AGRUPAMENTO NA ANA

12626  - 00004 - 9.0    - 00002  - AO DAR ERRO, NÃO EXIBE MENSAGEM COMPLETA - AGRUPAMENTO - PRESTAÇÃ

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

QUEBRA DE RATEIO POR ADIÇÕES USANDO QUANTIDADE PARCIAL DOS ITENS

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

Palavras Chave:

RATEIO - ADIÇÕES - ANA - ITENS - AGRUPAMENTO

 

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

Objetos da nota:

TABL /PWS/ZYCIT533

TABL /PWS/ZYCIE533

FUNC /PWS/ZYCI_RATEIO_CUSTO

FUNC /PWS/ZYCI_CALCULA_DESPESAS_DI

CUAD /PWS/SAPMZYCI085

DYNP /PWS/SAPMZYCI085                        0100

DYNP /PWS/SAPMZYCI085                        0103

REPS /PWS/MZYCI003I01

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI001F02

REPS /PWS/MZYCI003O01

REPS /PWS/MZYCI003F03

REPS /PWS/MZYCI085X01

REPS /PWS/MZYCI085TOP

REPS /PWS/MZYCI085O01

REPS /PWS/MZYCI085I01

REPS /PWS/MZYCI085F01

REPS /PWS/MZYCI059F01

REPS /PWS/MZYCI003X01

REPT /PWS/SAPMZYCI001

REPT /PWS/SAPMZYCI085

REPT /PWS/SAPMZYCI003

 

 

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

Modificações efetuadas em TABL /PWS/ZYCIT533

 

*Criar a tabela /PWS/ZYCIT533

 

DESCRIÇÃO BREVE: CI - Itens do Pedido do Agrupamento

CARACTERÍSTICAS

 

CATEGORIA DA TABELA: Tabela transparente

CLASSE DE ENTREGA:   A Tabela de aplicação (dados mestre e de movimento)

(X) - ATUALIZAÇÃO DE TABELAS PERMITIDA

 

CAMPOS NOVOS

 

CAMPOS:         TP. CAMPO       CH: INI:

MANDT         MANDT     X   X

NRSEQ         /PWS/ZYCIL001    X   X

EBELN         EBELN     X   X

EBELP         EBELP     X   X

AGRUPAMENTO  CHAR20     X   X

MATERIAL  MATNR

DESCR         MAKTX

QTD_AGRUP  /PWS/ZYCIL193

 

 

OPÇÕES TÉCNICAS

 

TIPO DE DADOS:    APPL0   Dados mestre, tabelas transparent

CATEGOR. TAMANHO: 0       Registros dados esperados: 0 Até 5300.

 

 

(X) - AR. BUFFER NÃO PERMITIDO

 

 

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

Modificações efetuadas em TABL /PWS/ZYCIE533

 

*Criar a estrutura /PWS/ZYCIE533

 

DESCRIÇÃO BREVE: CI - Itens do Pedido do Agrupamento

 

COMPONENTES NOVOS

COMPONENTE:     TP. COMP:      TAB.REF.:       CPO.REF.:    AJUD. PESQU.

 

.INCLUDE        /PWS/ZYCIT533

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO

 

...

                          t_itens-vlfob = itab_zycit100a-vlfob  .

                          t_itens-vlfre = itab_zycit100a-vlfre  .

                          t_itens-vlseg = itab_zycit100a-vlseg  .

                        ENDIF.

                        APPEND t_itens.

                      ENDIF.

                      t_zycit049-tpdesp  = itab_despesa-tpdesp.

                      t_zycit049-vldp    = itab_despesa-netpr .

                      t_zycit049-waers  = itab_despesa-waers .

                      APPEND t_zycit049 .

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                      IF wa_zycie085 IS INITIAL.

                        wa_zycie085 = /pws/zycie085.

                      ENDIF.

* << Fim da inclusão

                      CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'

                           EXPORTING

                                nrseq         = /pws/zycie001-nrseq

                                /pws/zycie085 = wa_zycie085

                           TABLES

                                t_zycit049    = t_zycit049

                                t_itens       = t_itens

                          CHANGING

                               v_agrup       = v_rateio.

                      IF v_rateio = 'X' .

...

 

...

                            t_itens-vlfob = itab_zycit100a-vlfob  .

                            t_itens-vlfre = itab_zycit100a-vlfre  .

                            t_itens-vlseg = itab_zycit100a-vlseg  .

                          ENDIF.

                          APPEND t_itens.

                        ENDIF.

                        t_zycit049-tpdesp  = itab_despesa-tpdesp.

                        t_zycit049-vldp    = itab_despesa-netpr .

                        t_zycit049-waers  = itab_despesa-waers .

                        APPEND t_zycit049 .

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                        IF wa_zycie085 IS INITIAL.

                          wa_zycie085 = /pws/zycie085.

                        ENDIF.

* << Fim da inclusão

                        CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'

                             EXPORTING

                                  nrseq         = /pws/zycie001-nrseq

                                  /pws/zycie085 = wa_zycie085

                             TABLES

                                  t_zycit049    = t_zycit049

                                  t_itens       = t_itens

                             CHANGING

                                  v_agrup       = v_rateio.

                        IF v_rateio = 'X' .

...

 

...

            ENDIF.

            IF NOT itab_zycit036-vlreal IS INITIAL.

              IF v_waers IS INITIAL.

                itab_zycit036-waers_real = /pws/zycbt007-waersb.

              ELSE.

                itab_zycit036-waers_real = v_waers.

              ENDIF.

            ENDIF.

          ELSE.

            IF v_di = 'AL' AND v_agrup = 'X' .

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              READ TABLE itab_zycit100a WITH KEY

                        ebeln = itab_zycit003-ebeln

                        ebelp = itab_zycit003-ebelp.

              IF sy-subrc EQ 0.

                IF /pws/zycie085 IS INITIAL.

                  SELECT SINGLE * FROM /pws/zycit085

                  INTO wa_zycie085

                  WHERE nrseqdi EQ itab_zycit100a-nrseqdi.

                ENDIF.

* << Fim da exclusão

                t_itens-nrseqdi = itab_zycit003-nrseq.

                t_itens-ebeln = itab_zycit003-ebeln  .

                t_itens-ebelp = itab_zycit003-ebelp  .

                APPEND t_itens.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              ENDIF.

              t_zycit049-tpdesp  = 'FRETEI'.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              t_zycit049-codigo  = 'FRETEI'.

* << Fim da inclusão

              t_zycit049-vldp    = v_total .

              IF v_waers IS INITIAL.

                t_zycit049-waers = /pws/zycbt007-waersb.

              ELSE.

                t_zycit049-waers = v_waers.

              ENDIF.

              APPEND t_zycit049 .

              CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'

                   EXPORTING

                        nrseq         = /pws/zycie001-nrseq

                        /pws/zycie085 = wa_zycie085

                   TABLES

                        t_zycit049    = t_zycit049

                        t_itens       = t_itens

                   CHANGING

                        v_agrup       = v_rateio.

              IF v_rateio = 'X' .

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                itab_zycit036_aux-vlreal     = t_itens-vldp.

                itab_zycit036_aux-waers_real = t_itens-waers.

                APPEND itab_zycit036_aux.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                MOVE: 'FRETEI' TO itab_zycit036-codigo.

                CALL METHOD /pws/cl_zyci_trata_moedas=>retorna_decimais

                EXPORTING

                  waers  = t_zycit049-waers

                CHANGING

                  value  = t_itens-vldp  .

                itab_zycit036-vlreal     = t_itens-vldp.

                itab_zycit036-waers_real = t_zycit049-waers.

                APPEND itab_zycit036.

                v_tot_desp =

                v_tot_desp + itab_zycit036-vlreal.

* << Fim da inclusão

                CLEAR: t_itens, t_zycit049.

                REFRESH: t_itens, t_zycit049.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                v_tot_desp =

                v_tot_desp + itab_zycit036_aux-vlreal.

* << Fim da exclusão

                CONTINUE.

              ENDIF.

            ENDIF.

            MOVE: 'FRETEI'     TO itab_zycit036-codigo.

...

 

...

              MOVE: 'SEGURO'      TO itab_zycit036-codigo.

              itab_zycit036-vlreal = v_total.

            ENDIF.

            IF v_waers IS INITIAL.

              itab_zycit036-waers_real = /pws/zycbt007-waersb.

            ELSE.

              itab_zycit036-waers_real = v_waers.

            ENDIF.

          ELSE.

            IF v_di = 'AL' AND v_agrup = 'X' .

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              READ TABLE itab_zycit100a WITH KEY

                        ebeln = itab_zycit003-ebeln

                        ebelp = itab_zycit003-ebelp.

              IF sy-subrc EQ 0.

                IF /pws/zycie085 IS INITIAL.

                  SELECT SINGLE * FROM /pws/zycit085

                  INTO wa_zycie085

                  WHERE nrseqdi EQ itab_zycit100a-nrseqdi.

                ENDIF.

* << Fim da exclusão

                t_itens-nrseqdi = itab_zycit003-nrseq.

                t_itens-ebeln = itab_zycit003-ebeln  .

                t_itens-ebelp = itab_zycit003-ebelp  .

                APPEND t_itens.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              ENDIF.

              t_zycit049-tpdesp  = 'SEGURO'.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

              t_zycit049-codigo  = 'SEGURO'.

* << Fim da inclusão

              t_zycit049-vldp    = v_total .

              IF v_waers IS INITIAL.

                t_zycit049-waers = /pws/zycbt007-waersb.

              ELSE.

                t_zycit049-waers = v_waers.

              ENDIF.

              APPEND t_zycit049 .

              CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'

                   EXPORTING

                        nrseq         = /pws/zycie001-nrseq

                        /pws/zycie085 = wa_zycie085

                   TABLES

                        t_zycit049    = t_zycit049

                        t_itens       = t_itens

                   CHANGING

                        v_agrup       = v_rateio.

              IF v_rateio = 'X' .

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                itab_zycit036_aux-vlreal     = t_itens-vldp.

                itab_zycit036_aux-waers_real = t_itens-waers.

                APPEND itab_zycit036_aux.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                MOVE: 'SEGURO'   TO itab_zycit036-codigo.

                CALL METHOD /pws/cl_zyci_trata_moedas=>retorna_decimais

                EXPORTING

                  waers  = t_zycit049-waers

                CHANGING

                  value  = t_itens-vldp.

                itab_zycit036-vlreal     = t_itens-vldp.

                itab_zycit036-waers_real = t_zycit049-waers.

                APPEND itab_zycit036.

                v_tot_desp =

                v_tot_desp + itab_zycit036-vlreal.

* << Fim da inclusão

                CLEAR: t_itens, t_zycit049.

                REFRESH: t_itens, t_zycit049.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO

                v_tot_desp =

                v_tot_desp + itab_zycit036_aux-vlreal.

* << Fim da exclusão

                CONTINUE.

              ENDIF.

            ENDIF.

            MOVE: 'SEGURO'             TO itab_zycit036-codigo.

...

 

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_CALCULA_DESPESAS_DI

 

FUNCTION /pws/zyci_calcula_despesas_di.

  TABLES /pws/zycie006 .

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

  DATA: itab_zycit533 TYPE STANDARD TABLE OF /pws/zycit533

  WITH HEADER LINE,

   itab_zycit533_aux TYPE STANDARD TABLE OF /pws/zycit533

  WITH HEADER LINE.

  DATA: v_desp_aux  TYPE /pws/zycie085-vlfob.

  CLEAR: itab_zycit533.

  REFRESH: itab_zycit533.

* << Fim da inclusão

 

...

 

...

        v_prog    TYPE /pws/zycit036-origem ,

        v_parametro TYPE /pws/zycit003-descr,

        v_bukrs   TYPE t001-bukrs.

  CLEAR: v_decim1, v_decim2, v_totplan,  v_totreal, v_tntgew .

  CLEAR: itab_zycit039, itab_zycit020, itab_zycit019, /pws/zycie006.

  REFRESH: itab_zycit039, itab_zycit020, itab_zycit019.

  IMPORT v_parametro FROM MEMORY ID 'PARAM' .

  IMPORT /pws/zycie006  FROM MEMORY ID '006' .

  v_agrup = 'X' .

  IF v_parametro(2) EQ '04' OR

* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

     v_parametro(2) EQ 'M' .

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

     v_parametro(2) EQ 'M'  OR

     v_parametro(2) EQ '02' OR

     v_parametro(2) EQ '03' .

* << Fim da inclusão

    v_bukrs = /pws/zycie006-bukrs.

  ELSE.

    v_bukrs = /pws/zycie085-bukrs .

  ENDIF.

  SELECT SINGLE land1 FROM t001 INTO v_land1

            WHERE bukrs EQ v_bukrs.

  SELECT SINGLE * FROM /pws/zycbt007

         INTO wa_zycbt007

         WHERE bukrs EQ v_bukrs.

  READ TABLE t_zycit049 INDEX 1 .

...

 

...

    INTO TABLE itab_zycit529

    FOR ALL ENTRIES IN t_itens

    WHERE nrseq = t_itens-nrseqdi

    AND   ebeln = t_itens-ebeln

    AND   ebelp = t_itens-ebelp.

    IF NOT itab_zycit529[] IS INITIAL.

      SELECT * FROM /pws/zycit530

      INTO TABLE itab_zycit530

      FOR ALL ENTRIES IN itab_zycit529

      WHERE nrseq EQ itab_zycit529-nrseq

* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

      AND container EQ itab_zycit529-agrupamento .

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

      AND container EQ itab_zycit529-agrupamento

      and vldp    ne space.

      LOOP AT itab_zycit003.

        v_totplan = v_totplan +

          (   itab_zycit003-qtd_iten * itab_zycit003-netpr ).

        v_totreal = v_totreal +

          (   itab_zycit003-qtd_iten * itab_zycit003-vlreal ).

        IF NOT itab_zycit003-qtd_itend IS INITIAL.

          v_tntgew = v_tntgew + itab_zycit003-ntgewd.

        ELSE.

          v_tntgew = v_tntgew + itab_zycit003-ntgew.

        ENDIF.

      ENDLOOP.

      READ TABLE itab_zycit003 WITH KEY

         nrseq = t_itens-nrseqdi

         ebeln = t_itens-ebeln

         ebelp = t_itens-ebelp.

* << Fim da inclusão

      LOOP AT itab_zycit530.

        CLEAR: itab_zycit019.

        READ TABLE itab_zycit019 WITH KEY

                                 codigo = itab_zycit530-codigo.

        READ TABLE t_zycit049 WITH KEY

                                  tpdesp = itab_zycit019-tpdesp.

        IF sy-subrc NE 0 OR t_zycit049-vldp IS INITIAL.

          DELETE itab_zycit530.

        ENDIF.

      ENDLOOP.

...

 

...

          INTO TABLE itab_zycit003

          FOR ALL ENTRIES IN itab_zycit529_aux

          WHERE nrseq EQ itab_zycit529_aux-nrseq

          AND   ebeln EQ itab_zycit529_aux-ebeln

          AND   ebelp EQ itab_zycit529_aux-ebelp .

        ENDIF.

      ELSE.

        CLEAR v_agrup.

      ENDIF.

    ELSE.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

      CLEAR v_agrup.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

      SELECT * FROM /pws/zycit533

      INTO TABLE itab_zycit533

      FOR ALL ENTRIES IN t_itens

      WHERE nrseq = t_itens-nrseqdi

      AND   ebeln = t_itens-ebeln

      AND   ebelp = t_itens-ebelp.

      IF sy-subrc EQ 0.

        SELECT * FROM /pws/zycit530

         INTO TABLE itab_zycit530

         FOR ALL ENTRIES IN itab_zycit533

         WHERE nrseq EQ itab_zycit533-nrseq

         AND container EQ itab_zycit533-agrupamento .

        IF v_parametro(2) EQ '02'.

          DELETE itab_zycit530 WHERE codigo NE 'FRETEI'.

        ELSEIF v_parametro(2) EQ '03'.

          DELETE itab_zycit530 WHERE codigo NE 'SEGURO'.

        ENDIF.

        LOOP AT itab_zycit530.

          CLEAR: itab_zycit019.

          READ TABLE itab_zycit019 WITH KEY

                                   codigo = itab_zycit530-codigo.

          READ TABLE t_zycit049 WITH KEY

                                    tpdesp = itab_zycit019-tpdesp.

          IF sy-subrc NE 0 OR t_zycit049-vldp IS INITIAL.

            DELETE itab_zycit530.

          ENDIF.

        ENDLOOP.

        IF NOT itab_zycit530[] IS INITIAL.

          SELECT * FROM /pws/zycit003

          INTO TABLE itab_zycit003

          WHERE nrseq EQ t_itens-nrseqdi.

* << Fim da inclusão

    ENDIF.

  ELSE.

    CLEAR v_agrup.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

        EXIT.

      ENDIF.

* << Fim da inclusão

  ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

  LOOP AT itab_zycit003.

    v_totplan = v_totplan +

      (   itab_zycit003-qtd_iten * itab_zycit003-netpr ).

    v_totreal = v_totreal +

      (   itab_zycit003-qtd_iten * itab_zycit003-vlreal ).

    IF NOT itab_zycit003-qtd_itend IS INITIAL.

      v_tntgew = v_tntgew + itab_zycit003-ntgewd.

* << Fim da exclusão

    ELSE.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

      v_tntgew = v_tntgew + itab_zycit003-ntgew.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

    CLEAR v_agrup.

* << Fim da inclusão

    ENDIF.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

  ENDLOOP.

  READ TABLE itab_zycit003 WITH KEY

     nrseq = t_itens-nrseqdi

     ebeln = t_itens-ebeln

     ebelp = t_itens-ebelp.

* << Fim da exclusão

  IMPORT v_prog FROM MEMORY ID 'PROG' .

  LOOP AT t_zycit049 WHERE NOT vldp IS initial.

    CLEAR: itab_zycit039, itab_zycit020, itab_zycit019.

    IF t_zycit049-codigo IS INITIAL.

      READ TABLE itab_zycit019 WITH KEY

                                tpdesp = t_zycit049-tpdesp.

      READ TABLE itab_zycit020 WITH KEY

                               codigo = itab_zycit019-codigo.

      READ TABLE itab_zycit039 WITH KEY

                               codigo = itab_zycit020-codigo.

...

 

...

    ENDIF.

    IF NOT itab_zycit039 IS INITIAL.

      CLEAR v_desp.

      READ TABLE itab_zycit529 WITH KEY

        ebeln = t_itens-ebeln

        ebelp = t_itens-ebelp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit530 WITH KEY

        container = itab_zycit529-agrupamento

        codigo = t_zycit049-codigo.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

        IF sy-subrc EQ 0.

* << Fim da exclusão

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

        IF NOT itab_zycit530 IS INITIAL .

* << Fim da inclusão

          IF v_parametro(2) EQ '04'.

            IF itab_zycit530-waers NE wa_zycbt007-waersb.

              CALL METHOD /pws/cl_zyci_trata_moedas=>trata_decimais

                EXPORTING

                  waers  = itab_zycit530-waers

                CHANGING

                  value  = itab_zycit530-vldp  .

              CALL METHOD /pws/cl_zyci_trata_moedas=>busca_taxa_dia

                EXPORTING

                  /pws/zycie006 = /pws/zycie006

                CHANGING

                  valor         = itab_zycit530-vldp   .

            ENDIF.

          ENDIF.

          t_zycit049-vlreal = itab_zycit530-vldp.

        ELSE.

          EXIT.

* >> Início da exclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

        ENDIF.

* << Fim da exclusão

      ENDIF.

      IF itab_zycit039-divabs EQ 'X'.

        IF NOT v_line IS INITIAL.

          v_desp = ( 1 / v_line ) * t_zycit049-vlreal.

        ENDIF.

      ELSEIF itab_zycit039-peso EQ 'X'.

        IF NOT v_tntgew IS INITIAL.

          IF NOT itab_zycit003-qtd_itend IS INITIAL.

            v_desp = ( itab_zycit003-ntgewd / v_tntgew ) *

               t_zycit049-vlreal.

...

 

...

          ENDIF.

        ELSE.

          IF NOT v_totreal IS INITIAL.

            READ TABLE itab_zycit003 WITH KEY

                        nrseq = t_itens-nrseqdi

                        ebeln = t_itens-ebeln

                        ebelp = t_itens-ebelp.

            IF sy-subrc EQ 0.

              v_desp =  ( ( itab_zycit003-vlreal *

              itab_zycit003-qtd_iten ) /

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

                v_totreal  ) * t_zycit049-vlreal.

              ENDIF.

            ENDIF.

          ENDIF.

        ENDIF.

        t_zycit049-vldp_aux = t_zycit049-vldp_aux + v_desp .

      ELSE.

        CLEAR v_desp.

        LOOP AT itab_zycit533

                   WHERE ebeln = t_itens-ebeln

                   AND   ebelp = t_itens-ebelp.

          CLEAR:  v_desp_aux.

          LOOP AT itab_zycit530

          WHERE container = itab_zycit533-agrupamento.

            CHECK NOT itab_zycit530-vldp IS INITIAL.

            IF v_parametro(2) EQ '04'.

              IF itab_zycit530-waers NE wa_zycbt007-waersb.

                CALL METHOD /pws/cl_zyci_trata_moedas=>trata_decimais

                  EXPORTING

                    waers  = itab_zycit530-waers

                  CHANGING

                    value  = itab_zycit530-vldp  .

                CALL METHOD /pws/cl_zyci_trata_moedas=>busca_taxa_dia

                  EXPORTING

                    /pws/zycie006 = /pws/zycie006

                  CHANGING

                    valor         = itab_zycit530-vldp   .

              ENDIF.

            ENDIF.

            t_zycit049-vlreal = itab_zycit530-vldp.

            SELECT * FROM /pws/zycit533

            INTO TABLE itab_zycit533_aux

            WHERE agrupamento EQ itab_zycit533-agrupamento

            AND   nrseq       EQ itab_zycit533-nrseq.

            IF sy-subrc EQ 0.

              DESCRIBE TABLE itab_zycit533_aux LINES v_line.

            ENDIF.

            CLEAR : v_totplan , v_totreal, v_tntgew.

            LOOP AT itab_zycit533_aux.

              LOOP AT itab_zycit003

              WHERE ebeln = itab_zycit533_aux-ebeln

              AND   ebelp = itab_zycit533_aux-ebelp.

                v_totplan = v_totplan +

                  ( itab_zycit533_aux-qtd_agrup * itab_zycit003-netpr ).

                v_totreal = v_totreal +

                 ( itab_zycit533_aux-qtd_agrup * itab_zycit003-vlreal ).

                IF NOT itab_zycit003-qtd_itend IS INITIAL.

                  v_tntgew = v_tntgew +

                  ( ( itab_zycit003-ntgewd / itab_zycit003-qtd_itend ) *

                      itab_zycit533_aux-qtd_agrup ).

                ELSE.

                  v_tntgew = v_tntgew +

                  ( ( itab_zycit003-ntgew / itab_zycit003-qtd_iten ) *

                    itab_zycit533_aux-qtd_agrup ) .

                ENDIF.

              ENDLOOP.

            ENDLOOP.

            IF itab_zycit039-divabs EQ 'X'.

              IF NOT v_line IS INITIAL.

                v_desp_aux =  ( 1 / v_line ) * t_zycit049-vlreal.

              ENDIF.

            ELSEIF itab_zycit039-peso EQ 'X'.

              READ TABLE itab_zycit003 WITH KEY

                          nrseq = t_itens-nrseqdi

                          ebeln = t_itens-ebeln

                          ebelp = t_itens-ebelp.

              IF sy-subrc EQ 0.

                READ TABLE itab_zycit533_aux WITH KEY

                    ebeln = t_itens-ebeln

                    ebelp = t_itens-ebelp.

                IF sy-subrc EQ 0.

                  IF NOT v_tntgew IS INITIAL.

                    IF NOT itab_zycit003-qtd_itend IS INITIAL.

                      v_desp_aux =

         ( ( ( ( itab_zycit003-ntgewd / itab_zycit003-qtd_itend ) *

                          itab_zycit533_aux-qtd_agrup ) )

                          / v_tntgew ) * t_zycit049-vlreal.

                    ELSE.

                      v_desp_aux =

         ( ( ( ( itab_zycit003-ntgew / itab_zycit003-qtd_iten ) *

                          itab_zycit533_aux-qtd_agrup ) )

                          / v_tntgew ) * t_zycit049-vlreal.

                    ENDIF.

                  ENDIF.

                ENDIF.

              ENDIF.

            ELSEIF itab_zycit039-proporplan EQ 'X'.

              IF NOT v_totplan IS INITIAL.

                READ TABLE itab_zycit003 WITH KEY

                            nrseq = t_itens-nrseqdi

                            ebeln = t_itens-ebeln

                            ebelp = t_itens-ebelp.

                IF sy-subrc EQ 0.

                  v_desp_aux = ( ( itab_zycit003-netpr *

                  itab_zycit533-qtd_agrup )  /

                  v_totplan  ) * t_zycit049-vlreal.

                ENDIF.

              ENDIF.

            ELSE.

              IF v_prog NE 'FAT' .

                IF itab_zycit020-baseicms EQ 'X' .

                  IF  wa_zycit062-bs_rat_icms EQ 'CIF' .

                    PERFORM taxa_converte(/pws/sapmzyci023)

                    USING /pws/zycie085-waersfob

                          /pws/zycie085-dttax

                          v_land1

                          CHANGING v_taxa.

                    IF NOT v_taxa IS INITIAL.

                      v_vfre = t_itens-vlfre / v_taxa.

                      v_vseg = t_itens-vlseg / v_taxa.

                    ENDIF.

                    v_vlfobr = t_itens-vlfob.

                    v_tseg = /pws/zycie085-vlseg .

                    IF /pws/zycie085-ukursfre NE /pws/zycie085-ukursfob.

                      PERFORM taxa_converte(/pws/sapmzyci023)

                                  USING  /pws/zycie085-waersfre

                                         /pws/zycie085-dttax

                                         v_land1

                                  CHANGING  v_taxa.

                      v_tfre = /pws/zycie085-vlfre * v_taxa.

                      PERFORM taxa_converte(/pws/sapmzyci023)

                                  USING  /pws/zycie085-waersfob

                                         /pws/zycie085-dttax

                                         v_land1

                                  CHANGING  v_taxa.

                      IF NOT v_taxa IS INITIAL.

                        v_tfre = v_tfre / v_taxa.

                      ENDIF.

                    ELSE.

                      v_tfre = /pws/zycie085-vlfre.

                    ENDIF.

                    v_vtot = /pws/zycie085-vlfob + v_tfre  + v_tseg.

                    IF NOT v_vtot IS INITIAL.

                      v_desp_aux = t_zycit049-vlreal *

                      ( ( v_vlfobr +  v_vfre + v_vseg )  /  v_vtot  ).

                    ENDIF.

                    IF NOT v_totreal IS INITIAL.

                      READ TABLE itab_zycit003 WITH KEY

                                  nrseq = t_itens-nrseqdi

                                  ebeln = t_itens-ebeln

                                  ebelp = t_itens-ebelp.

                      IF sy-subrc EQ 0.

                        v_desp_aux = ( ( itab_zycit003-vlreal *

                        itab_zycit533-qtd_agrup ) /

                        v_totplan  ) * t_zycit049-vlreal.

                      ENDIF.

                    ENDIF.

                  ELSE.

                    IF NOT v_totreal IS INITIAL.

                      READ TABLE itab_zycit003 WITH KEY

                                  nrseq = t_itens-nrseqdi

                                  ebeln = t_itens-ebeln

                                  ebelp = t_itens-ebelp.

                      IF sy-subrc EQ 0.

                        v_desp_aux =   ( ( itab_zycit003-vlreal *

                        itab_zycit533-qtd_agrup ) /

                        v_totplan  ) * t_zycit049-vlreal.

                      ENDIF.

                    ENDIF.

                  ENDIF.

                ELSE.

                  IF NOT v_totreal IS INITIAL.

                    READ TABLE itab_zycit003 WITH KEY

                                nrseq = t_itens-nrseqdi

                                ebeln = t_itens-ebeln

                                ebelp = t_itens-ebelp.

                    IF sy-subrc EQ 0.

                      v_desp_aux =   ( ( itab_zycit003-vlreal *

                      itab_zycit533-qtd_agrup ) /

                      v_totreal  ) * t_zycit049-vlreal.

                    ENDIF.

                  ENDIF.

                ENDIF.

              ELSE.

                IF NOT v_totreal IS INITIAL.

                  READ TABLE itab_zycit003 WITH KEY

                              nrseq = t_itens-nrseqdi

                              ebeln = t_itens-ebeln

                              ebelp = t_itens-ebelp.

                  IF sy-subrc EQ 0.

                    v_desp_aux =  ( ( itab_zycit003-vlreal *

                    itab_zycit533-qtd_agrup ) /

* << Fim da inclusão

              v_totreal  ) * t_zycit049-vlreal.

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

          ENDLOOP.

          v_desp = v_desp + v_desp_aux.

        ENDLOOP.

* << Fim da inclusão

      t_zycit049-vldp_aux = t_zycit049-vldp_aux + v_desp .

* >> Início da inclusão: FUNCTION /PWS/ZYCI_CALCULA_DESPESAS_DI

      ENDIF.

* << Fim da inclusão

      MODIFY t_zycit049.

      t_ivdesp = t_ivdesp + v_desp.

    ENDIF.

  ENDLOOP.

  t_itens-vldp = t_ivdesp.

ENDFUNCTION.

 

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

Modificações efetuadas em CUAD /PWS/SAPMZYCI085

 

*Criar

STATUS: 0103

 

ATRIBUTOS DE STATUS

TEXTO BREVE: Itens do Agrupamento

 

CATEGORIA DE STATUS

(X) - STATUS DIÁLOGO

(_) - CAIXA DE DIÁLOGO

(_) - MENU DE CONTEXTO

 

 

*Criar as teclas de função na Barra ferramentas

 

Código de função    ENTE                BACK       LEAVE

 

Texto de função     Selecionar          Voltar     Encerrar

 

 

*Informar teclas de função de livre definição

 

*Tecla F5

Código de função        PRIM

Modificação             Original

   Texto de função      Primeiro

   Nome de ícone        ICON_TOTAL_LEFT

   Texto informativo    Primeiro

   Modificação          Original

 

 

*Tecla F6

Código de função        ANTE

Modificação             Original

   Texto de função      Anterior

   Nome de ícone        ICON_COLUMN_LEFT

   Texto informativo    Anterior

   Modificação          Original

 

*Tecla F7

Código de função        PROX

Modificação             Original

   Texto de função      Próximo

   Nome de ícone        ICON_COLUMN_RIGHT

   Texto informativo    Próximo

   Modificação          Original

 

*Tecla F8

Código de função        ULTI

Modificação             Original

   Texto de função      Último

   Nome de ícone        ICON_TOTAL_RIGHT

   Texto informativo    Último

   Modificação          Original

 

*Informar botões na barra de botões

 

 Itens  1-  7             PRIM       ANTE       PROX       ULTI

 

 

 

*Modificar

STATUS: 0101

 

*Informar botões na barra de botões

 

 Itens  1-  7             PRIM       ANTE       PROX       ULTI

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCI085                        0100

Modificações efetuadas em DYNP /PWS/SAPMZYCI085                        0103

 

O Download das telas encontra-se disponível no link abaixo

 

http://produtos.sondait.com.br/home/PW.CE/Notas/

 

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

Modificações efetuadas em REPS /PWS/MZYCI003I01

 

...

 

      WHEN 'SAVE'.

* >> Início da inclusão: MODULE USER_COMMAND_0100

        IF /pws/zycie006-tpfatura EQ '02' OR

           /pws/zycie006-tpfatura EQ '03' .

          CALL METHOD /pws/cl_zyci_agrupamento=>existe_agrup

            EXPORTING

              bukrs       = /pws/zycie006-bukrs

            RECEIVING

              agrupamento = v_agrupamento   .

          IF v_agrupamento EQ 'X' .

            PERFORM verifica_agrupamento.

            IF v_msg = 'X' .

              EXIT.

            ENDIF.

          ENDIF.

        ENDIF.

* << Fim da inclusão

        IF /pws/zycit000-land1 EQ 'BR' OR

           /pws/zycit000-land1 EQ 'PE'.

          LOOP AT itab_zycit003 WHERE paisfab EQ space.

            EXIT.

          ENDLOOP.

          IF /pws/zycie006-tpfatura = '01' AND

             /pws/zycie006-fabricante = '3' AND

             sy-subrc EQ 0.

            MESSAGE e015 WITH text-208.

          ENDIF.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

FORM multiplos_lancamentos.

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

  DATA: itab_zycit533 TYPE STANDARD TABLE OF /pws/zycit533

    WITH HEADER LINE.

* << Fim da inclusão

  TABLES /pws/zycie085.

  DATA: itab_zycit529 TYPE STANDARD TABLE OF /pws/zycit529

    WITH HEADER LINE,

      itab_zycit530 TYPE STANDARD TABLE OF /pws/zycit530

    WITH HEADER LINE,

      t_zycit049 TYPE STANDARD TABLE OF

               /pws/zycie049b WITH HEADER LINE,

      t_itens    TYPE STANDARD TABLE OF

               /pws/zycie100b WITH HEADER LINE.

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

  DATA: v_prog TYPE /pws/zycit036-origem VALUE 'FAT'.

* << Fim da exclusão

 

...

 

...

            FOR ALL ENTRIES IN t_itens

            WHERE nrseq = t_itens-nrseqdi

            AND   ebeln = t_itens-ebeln

            AND   ebelp = t_itens-ebelp.

            IF NOT itab_zycit529[] IS INITIAL.

              SELECT * FROM /pws/zycit530

              INTO TABLE itab_zycit530

              FOR ALL ENTRIES IN itab_zycit529

              WHERE nrseq EQ itab_zycit529-nrseq

              AND container EQ itab_zycit529-agrupamento .

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

            ELSE.

              SELECT * FROM /pws/zycit533

               INTO TABLE itab_zycit533

               FOR ALL ENTRIES IN t_itens

               WHERE nrseq = t_itens-nrseqdi

               AND   ebeln = t_itens-ebeln

               AND   ebelp = t_itens-ebelp.

              IF NOT itab_zycit533[] IS INITIAL.

                SELECT * FROM /pws/zycit530

                INTO TABLE itab_zycit530

                FOR ALL ENTRIES IN itab_zycit533

                WHERE nrseq EQ itab_zycit533-nrseq

                AND container EQ itab_zycit533-agrupamento .

              ENDIF.

* << Fim da inclusão

            ENDIF.

          ENDIF.

          EXPORT v_prog TO MEMORY ID 'PROG' .

          v_parametro = 'M'.

          EXPORT v_parametro TO MEMORY ID 'PARAM' .

          CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'

               EXPORTING

                    nrseq         = t_itens-nrseqdi

                    /pws/zycie085 = /pws/zycie085

               TABLES

...

 

...

        READ TABLE itab_zycit019 WITH KEY

                       tpdesp = itab_zycit047-tpdesp.

        IF sy-subrc EQ 0.

          READ TABLE itab_zycit529 WITH KEY

            ebeln = t_itens-ebeln

            ebelp = t_itens-ebelp.

          IF sy-subrc EQ 0.

            READ TABLE itab_zycit530 WITH KEY

            container = itab_zycit529-agrupamento

            codigo = itab_zycit019-codigo.

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

          ELSE.

            READ TABLE itab_zycit533 WITH KEY

               ebeln = t_itens-ebeln

               ebelp = t_itens-ebelp.

            IF sy-subrc EQ 0 .

              READ TABLE itab_zycit530 WITH KEY

              container = itab_zycit533-agrupamento

              codigo = itab_zycit019-codigo.

            ENDIF.

* << Fim da inclusão

          ENDIF.

        ENDIF.

        IF itab_zycit530 IS INITIAL .

          itab_zycbt035_aux-wrbtr = /pws/zycie006-vltotal *

                                      ( itab_zycit003-ntgew / v_tpeso ).

        ELSE.

          v_desp_aux = t_zycit049-vldp_aux.

        ENDIF.

        v_valor_frete = v_valor_frete +  itab_zycbt035_aux-wrbtr.

      ENDIF.

...

 

...

            FOR ALL ENTRIES IN t_itens

            WHERE nrseq = t_itens-nrseqdi

            AND   ebeln = t_itens-ebeln

            AND   ebelp = t_itens-ebelp.

            IF NOT itab_zycit529[] IS INITIAL.

              SELECT * FROM /pws/zycit530

              INTO TABLE itab_zycit530

              FOR ALL ENTRIES IN itab_zycit529

              WHERE nrseq EQ itab_zycit529-nrseq

              AND container EQ itab_zycit529-agrupamento .

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

            ELSE.

              SELECT * FROM /pws/zycit530

              INTO TABLE itab_zycit530

              FOR ALL ENTRIES IN itab_zycit533

              WHERE nrseq EQ itab_zycit533-nrseq

              AND container EQ itab_zycit533-agrupamento .

* << Fim da inclusão

            ENDIF.

          ENDIF.

          EXPORT v_prog TO MEMORY ID 'PROG' .

          v_parametro = 'M'.

          EXPORT v_parametro TO MEMORY ID 'PARAM' .

          CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'

               EXPORTING

                    nrseq         = t_itens-nrseqdi

                    /pws/zycie085 = /pws/zycie085

               TABLES

...

 

...

        ENDIF.

        READ TABLE itab_zycit019 WITH KEY

                       tpdesp = itab_zycit047-tpdesp.

        IF sy-subrc EQ 0.

          READ TABLE itab_zycit529 WITH KEY

            ebeln = t_itens-ebeln

            ebelp = t_itens-ebelp.

          IF sy-subrc EQ 0.

            READ TABLE itab_zycit530 WITH KEY

            container = itab_zycit529-agrupamento

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

            codigo = itab_zycit019-codigo.

          ELSE.

            READ TABLE itab_zycit533 WITH KEY

               ebeln = t_itens-ebeln

               ebelp = t_itens-ebelp.

            IF sy-subrc EQ 0 .

              READ TABLE itab_zycit530 WITH KEY

              container = itab_zycit533-agrupamento

* << Fim da inclusão

            codigo = itab_zycit019-codigo.

          ENDIF.

        ENDIF.

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

        ENDIF.

* << Fim da inclusão

        IF itab_zycit530 IS INITIAL .

          IF /pws/zycit031-inco1_ci = 'FOB'.

            itab_zycbt035_aux-wrbtr = /pws/zycie006-vltotal *

                    ( itab_frete-total +

...

 

...

              FOR ALL ENTRIES IN t_itens

              WHERE nrseq = t_itens-nrseqdi

              AND   ebeln = t_itens-ebeln

              AND   ebelp = t_itens-ebelp.

              IF NOT itab_zycit529[] IS INITIAL.

                SELECT * FROM /pws/zycit530

                INTO TABLE itab_zycit530

                FOR ALL ENTRIES IN itab_zycit529

                WHERE nrseq EQ itab_zycit529-nrseq

                AND container EQ itab_zycit529-agrupamento .

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

              ELSE.

                SELECT * FROM /pws/zycit530

                INTO TABLE itab_zycit530

                FOR ALL ENTRIES IN itab_zycit533

                WHERE nrseq EQ itab_zycit533-nrseq

                AND container EQ itab_zycit533-agrupamento .

* << Fim da inclusão

              ENDIF.

            ENDIF.

            EXPORT v_prog TO MEMORY ID 'PROG' .

            v_parametro = 'M'.

            EXPORT v_parametro TO MEMORY ID 'PARAM' .

            CALL FUNCTION '/PWS/ZYCI_CALCULA_DESPESAS_DI'

                 EXPORTING

                      nrseq         = t_itens-nrseqdi

                      /pws/zycie085 = /pws/zycie085

                 TABLES

...

 

...

          ENDIF.

          READ TABLE itab_zycit019 WITH KEY

                         tpdesp = itab_zycit047-tpdesp.

          IF sy-subrc EQ 0.

            READ TABLE itab_zycit529 WITH KEY

              ebeln = t_itens-ebeln

              ebelp = t_itens-ebelp.

            IF sy-subrc EQ 0.

              READ TABLE itab_zycit530 WITH KEY

              container = itab_zycit529-agrupamento

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

              codigo = itab_zycit019-codigo.

            ELSE.

              READ TABLE itab_zycit533 WITH KEY

                 ebeln = t_itens-ebeln

                 ebelp = t_itens-ebelp.

              IF sy-subrc EQ 0 .

                READ TABLE itab_zycit530 WITH KEY

                container = itab_zycit533-agrupamento

* << Fim da inclusão

              codigo = itab_zycit019-codigo.

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

              ENDIF.

* << Fim da inclusão

            ENDIF.

          ENDIF.

          IF itab_zycit530 IS INITIAL .

            READ TABLE itab_zycit019 WITH KEY

                           tpdesp = itab_zycit047-tpdesp.

            IF sy-subrc EQ 0.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

 

  DATA: v_zeile TYPE mesg-zeile,

        v_text1(50) TYPE c,

        v_vldp TYPE /pws/zycit049-vldp.

  CLEAR: v_msg.

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

  CALL FUNCTION 'MESSAGES_INITIALIZE'.

  IF /pws/zycie006-tpfatura EQ '04' .

* << Fim da inclusão

  SELECT * FROM /pws/zycit019 INTO TABLE itab_zycit019

       FOR ALL ENTRIES IN itab_zycit047

        WHERE tpdesp = itab_zycit047-tpdesp

         AND  land1 = v_land1.

  SELECT * FROM /pws/zycit530

  INTO TABLE itab_zycit530

  WHERE nrseq EQ /pws/zycie001-nrseq

  AND   vldp  NE space.

  LOOP AT itab_zycit047 WHERE vldp NE space.

    READ TABLE itab_zycit019 WITH KEY tpdesp = itab_zycit047-tpdesp.

...

 

...

        ELSE.

          IF itab_zycit530-waers NE itab_zycit047-waers.

            MOVE : itab_zycit530-codigo TO itab_erro-codigo,

                   'W' TO itab_erro-erro_w.

            APPEND itab_erro.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

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

  CALL FUNCTION 'MESSAGES_INITIALIZE'.

* << Fim da exclusão

  CLEAR v_zeile.

  LOOP AT itab_erro.

    v_zeile = v_zeile + 1.

    CLEAR: v_text1.

    IF ( NOT itab_erro-erro_v IS INITIAL AND

         NOT itab_erro-erro_w IS INITIAL ).

      CONCATENATE itab_erro-codigo

          text-224 INTO v_text1 SEPARATED BY space.

    ELSEIF NOT itab_erro-erro_v IS INITIAL.

      CONCATENATE text-225 itab_erro-codigo

...

 

...

 

  IF NOT itab_erro[] IS INITIAL.

    CALL FUNCTION 'MESSAGES_SHOW'

         EXPORTING

              object          = '/PWS/SAPMZYCI003'

              i_amodal_window = ' '.

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

      v_msg = 'X'.

    ENDIF.

  ELSEIF ( /pws/zycie006-tpfatura EQ '02'  OR

           /pws/zycie006-tpfatura EQ '03'  ) .

    READ TABLE itab_zycit003 INDEX 1 .

    SELECT SINGLE * FROM /pws/zycit100

             WHERE nrseq EQ itab_zycit003-nrseq.

    IF sy-subrc NE 0.

      IF /pws/zycie006-tpfatura EQ '02'  .

        SELECT * FROM /pws/zycit530

          INTO TABLE itab_zycit530

          WHERE nrseq EQ /pws/zycie001-nrseq

          AND   vldp  NE space

          AND   codigo EQ 'FRETEI' .

        IF sy-subrc EQ 0.

          CALL FUNCTION 'MESSAGE_STORE'

               EXPORTING

                    arbgb = '/PWS/ZYCIM'

                    msgty = 'E'

                    msgv1 = text-229

                    msgv2 = text-230

                    txtnr = '015'

                    zeile = '01'.

          v_msg = 'X' .

        ENDIF.

      ELSEIF /pws/zycie006-tpfatura EQ '03'.

        SELECT * FROM /pws/zycit530

          INTO TABLE itab_zycit530

          WHERE nrseq EQ /pws/zycie001-nrseq

          AND   vldp  NE space

          AND   codigo EQ 'SEGURO' .

        IF sy-subrc EQ 0.

          CALL FUNCTION 'MESSAGE_STORE'

               EXPORTING

                    arbgb = '/PWS/ZYCIM'

                    msgty = 'E'

                    msgv1 = text-229

                    msgv2 = text-231

                    txtnr = '015'

                    zeile = '01'.

* << Fim da inclusão

    v_msg = 'X'.

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

        ENDIF.

      ENDIF.

    ENDIF.

    IF v_msg = 'X'.

      CALL FUNCTION 'MESSAGES_SHOW'

           EXPORTING

                object          = '/PWS/SAPMZYCI003'

                i_amodal_window = ' '.

      EXIT.

    ENDIF.

* << Fim da inclusão

  ENDIF.

ENDFORM.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F02

 

...

    ELSE.

      SELECT SINGLE * FROM /pws/zycit093

       WHERE nrseqce = /pws/zycit094-nrseqce.

      IF sy-subrc EQ 0.

        MOVE-CORRESPONDING /pws/zycit093 TO wa_zycie085.

        MOVE: /pws/zycit093-nrseqce TO wa_zycie085-nrbl,

              /pws/zycie001-embarca TO wa_zycie085-identify.

        EXPORT wa_zycie085 TO MEMORY ID rimc4.

        IF /pws/zycie001-tpdecl EQ 'DI'.

          IF sy-tcode NE '/PWS/ZYCI001_E'.

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

            PERFORM qtde_agrupamento changing v_consist.

            if v_consist eq 'X' .

               message i015 with text-539.

               clear v_consist.

               exit.

            endif.

* << Fim da inclusão

            PERFORM valida_trans USING '/PWS/ZYCI059_C' ''.

          ELSE.

            MESSAGE e015 WITH text-166.

          ENDIF.

        ELSE.

          IF sy-tcode NE '/PWS/ZYCI001_E'.

            PERFORM valida_trans USING '/PWS/ZYCI059_I' ''.

          ELSE.

            MESSAGE e015 WITH text-166.

          ENDIF.

...

 

...

 

* >> Início da inclusão:

FORM qtde_agrupamento changing v_consist.

  DATA: itab_zycit533 TYPE STANDARD TABLE OF

   /pws/zycit533 WITH HEADER LINE.

  DATA: v_qtd_agrup TYPE /pws/zycit003-qtd_iten.

  clear v_consist.

  SELECT SINGLE * FROM /pws/zycit527

  WHERE nrseq EQ /pws/zycie001-nrseq.

  IF sy-subrc EQ 0.

    SELECT * FROM /pws/zycit533

    INTO TABLE itab_zycit533

    WHERE nrseq EQ /pws/zycie001-nrseq.

    LOOP AT itab_zycit003.

      clear v_qtd_agrup.

      LOOP AT itab_zycit533 WHERE

      ebeln EQ itab_zycit003-ebeln AND

      ebelp EQ itab_zycit003-ebelp.

        v_qtd_agrup = v_qtd_agrup + itab_zycit533-qtd_agrup.

      ENDLOOP.

      IF v_qtd_agrup NE itab_zycit003-qtd_iten.

         v_consist = 'X' .

         exit.

      ENDIF .

    ENDLOOP.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI003O01

 

...

    /pws/zycie006-dtlanc = sy-datlo.

  ENDIF.

  v_tpfabr = /pws/zycie006-fabricante.

  IF NOT /pws/zycie094-nrseqce IS INITIAL.

    SELECT SINGLE * FROM /pws/zycit085

         WHERE nrbl EQ /pws/zycie094-nrseqce.

    IF sy-subrc EQ 0.

      v_di = 'X'.

    ENDIF.

  ENDIF.

* >> Início da exclusão: MODULE LOAD_DATA

  IF /pws/zycie006-tpfatura EQ '04'.

* << Fim da exclusão

* >> Início da inclusão: MODULE LOAD_DATA

  IF ( /pws/zycie006-tpfatura EQ '04' OR

       /pws/zycie006-tpfatura EQ '02' OR

       /pws/zycie006-tpfatura EQ '03' ).

* << Fim da inclusão

    CALL METHOD /pws/cl_zyci_agrupamento=>existe_agrup

      EXPORTING

        bukrs       = /pws/zycie006-bukrs

      RECEIVING

        agrupamento = v_agrupamento   .

    IF v_agrupamento EQ 'X' .

      v_di = 'AL' .

      EXPORT v_di TO MEMORY ID 'V_DI'.

      CLEAR v_di.

* >> Início da inclusão: MODULE LOAD_DATA

      EXPORT v_prog TO MEMORY ID 'PROG' .

* << Fim da inclusão

    ENDIF.

  ENDIF.

ENDMODULE.

...

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI085X01

 

TABLES:

...

* >> Início da exclusão:

      /pws/zycit530.

* << Fim da exclusão

* >> Início da inclusão:

      /pws/zycit530,

      /pws/zycie533,

      /pws/zycit533.

* << Fim da inclusão

DATA: BEGIN OF COMMON PART a.

* >> Início da inclusão:

DATA: BEGIN OF itab_itens OCCURS 0 .

        include structure /pws/zycit533.

data:  saldo type /pws/zycit003-qtd_iten.

DATA: END   OF itab_itens.

DATA: itab_zycit533 TYPE STANDARD TABLE OF /pws/zycit533

                                              WITH HEADER LINE,

      itab_zycit533_save TYPE STANDARD TABLE OF /pws/zycit533

                                              WITH HEADER LINE.

DATA: BEGIN OF itab_zycit533_sv OCCURS 0 .

        INCLUDE STRUCTURE /pws/zycit533.

DATA: END   OF itab_zycit533_sv.

data: v_idx type sy-tabix.

* << Fim da inclusão

...

 

...

 

DATA: BEGIN OF itab_zycit003 OCCURS 0 .

DATA: ebeln TYPE /pws/zycit003-ebeln,

      ebelp TYPE /pws/zycit003-ebelp,

* >> Início da inclusão:

      qtd_iten TYPE /pws/zycit003-qtd_iten,

* << Fim da inclusão

      matnr TYPE /pws/zycit003-matnr,

      descr TYPE /pws/zycit003-descr.

DATA: END   OF itab_zycit003.

 

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI085TOP

 

PROGRAM  /pws/sapmzyci085 MESSAGE-ID /pws/zycim.

INCLUDE /pws/mzyci085x01.

CONTROLS:

     tc_agrup TYPE TABLEVIEW USING SCREEN 0100,

* >> Início da exclusão:

     tc_itens TYPE TABLEVIEW USING SCREEN 0100,

* << Fim da exclusão

* >> Início da inclusão:

     tc_itens TYPE TABLEVIEW USING SCREEN 0103,

* << Fim da inclusão

     tc_desp  TYPE TABLEVIEW USING SCREEN 0101,

     tc_repl  TYPE TABLEVIEW USING SCREEN 0102.

DATA:  okcode TYPE sy-ucomm ,

       wa_cols TYPE cxtab_column.

 

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

Modificações efetuadas em REPS /PWS/MZYCI085O01

 

...

MODULE status OUTPUT.

  CASE sy-dynnr.

    WHEN '0001'.

      PERFORM status_0001 .

    WHEN '0100'.

      PERFORM status_0100.

    WHEN '0101' .

      PERFORM status_0101.

    WHEN '0102'.

      PERFORM status_0102.

* >> Início da inclusão: MODULE STATUS

    WHEN '0103'.

      PERFORM status_0103.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

...

 

MODULE preenche_itens OUTPUT.

* >> Início da exclusão: MODULE PREENCHE_ITENS

  MOVE-CORRESPONDING itab_zycit529 TO /pws/zycie529 .

* << Fim da exclusão

* >> Início da inclusão: MODULE PREENCHE_ITENS

  MOVE-CORRESPONDING itab_itens TO /pws/zycie533 .

* << Fim da inclusão

ENDMODULE.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI085I01

 

 

    WHEN '0102'.

      PERFORM trata_tela_0102.

* >> Início da inclusão: MODULE USER_COMMAND

    WHEN '0103'.

      PERFORM trata_tela_0103.

* << Fim da inclusão

  ENDCASE.

ENDMODULE.

...

 

...

 

MODULE atualiza_itens INPUT.

* >> Início da exclusão: MODULE ATUALIZA_ITENS

  MOVE-CORRESPONDING /pws/zycie529 TO itab_zycit529 .

  itab_zycit529-mandt     = sy-mandt.

  itab_zycit529-nrseq     = /pws/zycie001-nrseq.

  MODIFY itab_zycit529 INDEX tc_itens-current_line.

  IF sy-subrc NE 0.

    APPEND itab_zycit529.

  ENDIF.

* << Fim da exclusão

* >> Início da inclusão: MODULE ATUALIZA_ITENS

  MOVE-CORRESPONDING /pws/zycie533 TO itab_itens .

  itab_itens-mandt     = sy-mandt.

  itab_itens-nrseq     = /pws/zycie001-nrseq.

  itab_itens-agrupamento = wa_zycie528-container.

  MODIFY itab_itens INDEX tc_itens-current_line.

* << Fim da inclusão

ENDMODULE.

 

...

 

...

 

* >> Início da inclusão:

MODULE verifica_qtd INPUT.

  PERFORM calcula_saldo.

  IF itab_itens-saldo LT 0.

    CLEAR /pws/zycie533-qtd_agrup.

    MESSAGE i015 WITH text-019 .

    PERFORM calcula_saldo.

  ENDIF.

ENDMODULE.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI085F01

 

...

    SELECT /pws/zycit526~mandt /pws/zycit526~land

    /pws/zycit526~codigo /pws/zycit526t~descricao

    INTO TABLE itab_despesas

    FROM /pws/zycit526

    INNER JOIN /pws/zycit526t

    ON ( /pws/zycit526~land   EQ /pws/zycit526t~land

    AND  /pws/zycit526~codigo EQ /pws/zycit526t~codigo )

    WHERE /pws/zycit526~land EQ v_land1

    AND   /pws/zycit526t~spras EQ sy-langu .

  ENDIF.

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

  SELECT ebeln ebelp qtd_iten matnr descr FROM /pws/zycit003

  INTO TABLE itab_zycit003

  WHERE nrseq EQ /pws/zycie001-nrseq.

* << Fim da inclusão

  IF sy-tcode EQ '/PWS/ZYCI085_C'.

    /pws/zycie527-mandt   = sy-mandt.

    /pws/zycie527-nrseq   = /pws/zycie001-nrseq.

    /pws/zycie527-embarca = /pws/zycie001-embarca.

    /pws/zycie527-bukrs   = /pws/zycie001-bukrs  .

    /pws/zycie527-j_1bbranch = /pws/zycie001-j_1bbranch.

    /pws/zycie527-netpr   = /pws/zycie001-netpr.

    /pws/zycie527-waers   = /pws/zycie001-waers.

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

    SELECT ebeln ebelp matnr descr FROM /pws/zycit003

    INTO TABLE itab_zycit003

    WHERE nrseq EQ /pws/zycie001-nrseq.

    IF sy-subrc EQ 0.

      LOOP AT itab_zycit003.

        MOVE-CORRESPONDING itab_zycit003 TO itab_zycit529.

        itab_zycit529-mandt = sy-mandt.

        itab_zycit529-nrseq = /pws/zycie001-nrseq.

        itab_zycit529-material = itab_zycit003-matnr.

        APPEND itab_zycit529.

      ENDLOOP.

    ENDIF.

* << Fim da exclusão

  ELSE.

    SELECT SINGLE * FROM /pws/zycit527

    INTO /pws/zycie527

    WHERE nrseq EQ /pws/zycie001-nrseq.

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

    /pws/zycie527-netpr   = /pws/zycie001-netpr.

    /pws/zycie527-waers   = /pws/zycie001-waers.

    IF sy-subrc EQ 0.

* << Fim da inclusão

    SELECT * FROM /pws/zycit528

    INTO TABLE itab_zycit528

    WHERE nrseq EQ /pws/zycie001-nrseq.

    SELECT * FROM /pws/zycit529

    INTO TABLE itab_zycit529

    WHERE nrseq EQ /pws/zycie001-nrseq.

    SELECT * FROM /pws/zycit530

    INTO TABLE itab_zycit530

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

      WHERE nrseq EQ /pws/zycie001-nrseq.

      SELECT * FROM /pws/zycit533

      INTO TABLE itab_zycit533

* << Fim da inclusão

    WHERE nrseq EQ /pws/zycie001-nrseq.

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

    ELSE.

      MESSAGE w015 WITH text-010.

      EXIT.

* << Fim da inclusão

  ENDIF.

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

  ENDIF.

* << Fim da inclusão

  wa_zycie527_sv     =  /pws/zycie527.

  itab_zycit528_sv[] = itab_zycit528[].

  itab_zycit529_sv[] = itab_zycit529[].

  itab_zycit530_sv[] = itab_zycit530[].

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

  itab_zycit533_sv[] = itab_zycit533[].

* << Fim da inclusão

  CALL SCREEN '0100' .

ENDFORM.

 

...

 

...

 

FORM status_0101.

  SET TITLEBAR  '0101'.

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

  DESCRIBE TABLE itab_desp LINES v_line.

  IF v_line EQ '1'.

    itab_botoes-fcode = 'PRIM'.

    APPEND itab_botoes.

    itab_botoes-fcode = 'ANTE'.

    APPEND itab_botoes.

    itab_botoes-fcode = 'PROX'.

    APPEND itab_botoes.

    itab_botoes-fcode = 'ULTI'.

    APPEND itab_botoes.

    SET PF-STATUS '0101'  EXCLUDING itab_botoes .

  ELSE.

* << Fim da inclusão

  SET PF-STATUS '0101'.

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

  ENDIF.

* << Fim da inclusão

ENDFORM.

 

...

 

...

 

    WHEN 'DESP'.

      READ TABLE itab_zycit528 WITH KEY marc = 'X' .

      IF sy-subrc EQ 0 .

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

        v_idx = sy-tabix.

* << Fim da inclusão

        MOVE itab_zycit528 TO wa_zycie528 .

        PERFORM trata_despesas.

        CALL SCREEN '0101' .

      ELSE.

        MESSAGE s015 WITH text-003.

      ENDIF.

    WHEN 'REPL'.

      PERFORM trata_replicacao.

    WHEN 'SAVE'.

      PERFORM salva_dados.

...

 

...

      PERFORM log_trilha USING SY-REPID

                                /pws/zycie527-nrseq

                                ' ' .

    WHEN 'BACK'.

      PERFORM verifica_alteracoes.

      LEAVE TO SCREEN 0.

    WHEN 'LEAVE'.

      PERFORM verifica_alteracoes.

      PERFORM limpa_tabelas.

      LEAVE PROGRAM.

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

    WHEN 'ITENS'.

      READ TABLE itab_zycit528 WITH KEY marc = 'X' .

      IF sy-subrc EQ 0 .

        v_idx = sy-tabix.

        MOVE itab_zycit528 TO wa_zycie528 .

        PERFORM move_itens.

        CALL SCREEN '0103'.

      ELSE.

        MESSAGE s015 WITH text-003.

        EXIT.

      ENDIF.

* << Fim da inclusão

  ENDCASE.

  CLEAR okcode.

ENDFORM.

FORM trata_tela_0101.

  CASE sy-ucomm.

    WHEN 'BACK'.

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

      LOOP AT itab_desp.

        READ TABLE itab_zycit530 WITH KEY

         container = itab_desp-container

         codigo    = itab_desp-codigo .

        IF sy-subrc EQ 0.

          itab_zycit530-vldp  = itab_desp-vldp.

          itab_zycit530-waers = itab_desp-waers.

          MODIFY itab_zycit530 TRANSPORTING vldp waers

          WHERE  container EQ itab_desp-container

          AND    codigo    EQ itab_desp-codigo .

        ELSE.

          itab_zycit530-mandt      = sy-mandt.

          itab_zycit530-nrseq      = /pws/zycie001-nrseq.

          itab_zycit530-container  = itab_desp-container.

          itab_zycit530-codigo     = itab_desp-codigo.

          itab_zycit530-vldp       = itab_desp-vldp  .

          itab_zycit530-waers      = itab_desp-waers .

          APPEND itab_zycit530.

        ENDIF.

      ENDLOOP.

      CLEAR   itab_desp.

      REFRESH itab_desp.

* << Fim da exclusão

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

      PERFORM salva_desp.

* << Fim da inclusão

      LEAVE TO SCREEN 0.

    WHEN 'LEAVE'.

      LEAVE PROGRAM.

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

    WHEN 'PRIM'.

      PERFORM salva_desp.

      v_idx = 1 .

      READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.

      IF sy-subrc EQ 0.

        PERFORM trata_despesas.

      ENDIF.

    WHEN 'ANTE'.

      PERFORM salva_desp.

      IF v_idx > '1'.

        v_idx = v_idx - 1 .

        READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.

        IF sy-subrc EQ 0.

          PERFORM trata_despesas.

        ENDIF.

      ENDIF.

    WHEN 'PROX'.

      PERFORM salva_desp.

      DESCRIBE TABLE itab_zycit528 LINES v_line.

      IF v_idx < v_line.

        v_idx = v_idx + 1 .

        READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.

        IF sy-subrc EQ 0.

          PERFORM trata_despesas.

        ENDIF.

      ENDIF.

    WHEN 'ULTI'.

      PERFORM salva_desp.

      DESCRIBE TABLE itab_zycit528 LINES v_idx.

      READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.

      IF sy-subrc EQ 0.

        PERFORM trata_despesas.

      ENDIF.

* << Fim da inclusão

  ENDCASE.

ENDFORM.

FORM trata_despesas.

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

  CLEAR   itab_desp.

  REFRESH itab_desp.

* << Fim da inclusão

 

...

 

...

 

FORM limpa_tabelas.

  CLEAR : itab_desp, itab_despesas, itab_zycit003, itab_repl,

          itab_zycit528, itab_zycit529, itab_zycit530,

          itab_zycit528_sv, itab_zycit529_sv, itab_zycit530_sv,

          wa_zycie001, wa_zycie528, wa_zycie527_sv.

  REFRESH: itab_desp, itab_despesas, itab_zycit003, itab_repl,

          itab_zycit528, itab_zycit529, itab_zycit530,

          itab_zycit528_sv, itab_zycit529_sv, itab_zycit530_sv.

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

  CLEAR : itab_zycit533.

  REFRESH : itab_zycit533.

* << Fim da inclusão

ENDFORM.

 

...

 

...

 

FORM salva_dados.

  DATA: wa_zycit527_save TYPE /pws/zycit527 ,

        v_table(13) TYPE c.

  DATA:

    itab_zycit528s TYPE STANDARD TABLE OF /pws/zycit528

                                          WITH HEADER LINE,

    itab_zycit529s TYPE STANDARD TABLE OF /pws/zycit529

                                          WITH HEADER LINE,

    itab_zycit530s TYPE STANDARD TABLE OF /pws/zycit530

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

                                          WITH HEADER LINE,

    itab_zycit533s TYPE STANDARD TABLE OF /pws/zycit533

* << Fim da inclusão

                                          WITH HEADER LINE.

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

  PERFORM consiste_dados.

* << Fim da exclusão

  IF v_erro = 'X' .

    EXIT.

  ENDIF.

  DEFINE m_log.

    if sy-subrc eq 0.

      perform carrega_log using v_table 'U'

...

 

...

  END-OF-DEFINITION.

  IF sy-tcode EQ '/PWS/ZYCI085_A' .

    SELECT * FROM /pws/zycit528

    INTO TABLE itab_zycit528_save

    WHERE nrseq = /pws/zycie001-nrseq.

    SELECT * FROM /pws/zycit529

    INTO TABLE itab_zycit529_save

    WHERE nrseq = /pws/zycie001-nrseq.

    SELECT * FROM /pws/zycit530

    INTO TABLE itab_zycit530_save

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

    WHERE nrseq = /pws/zycie001-nrseq.

    SELECT * FROM /pws/zycit533

    INTO TABLE itab_zycit533_save

* << Fim da inclusão

    WHERE nrseq = /pws/zycie001-nrseq.

  ENDIF.

  /pws/zycit527 = /pws/zycie527.

  v_table = '/PWS/ZYCIT527'.

  SELECT SINGLE * FROM /pws/zycit527

  INTO wa_zycit527_save

  WHERE nrseq = /pws/zycie001-nrseq.

  m_log.

  MODIFY /pws/zycit527 FROM /pws/zycie527.

  v_table = '/PWS/ZYCIT528' .

...

 

...

  ENDLOOP.

  LOOP AT itab_zycit530_save.

    /pws/zycit530 = itab_zycit530_save.

    m_log_d.

    DELETE FROM /pws/zycit530

       WHERE nrseq     EQ itab_zycit530_save-nrseq

       AND   container EQ itab_zycit530_save-container

       AND   codigo    EQ itab_zycit530_save-codigo.

  ENDLOOP.

  MODIFY /pws/zycit530 FROM TABLE itab_zycit530.

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

  v_table = '/PWS/ZYCIT533' .

  LOOP AT itab_zycit533.

    itab_zycit533s = itab_zycit533.

    READ TABLE itab_zycit533_save WITH KEY

       nrseq     = itab_zycit533-nrseq

       ebeln     = itab_zycit533-ebeln

       ebelp     = itab_zycit533-ebelp

       agrupamento = itab_zycit533-agrupamento.

    IF sy-subrc NE 0 OR

       itab_zycit533_save NE itab_zycit533s.

      /pws/zycit533 = itab_zycit533.

      m_log.

      APPEND itab_zycit533s.

    ENDIF.

    DELETE itab_zycit533_save

       WHERE nrseq     = itab_zycit533-nrseq

       AND   ebeln     = itab_zycit533-ebeln

       AND   ebelp     = itab_zycit533-ebelp

       AND   agrupamento = itab_zycit533-agrupamento.

  ENDLOOP.

  LOOP AT itab_zycit533_save.

    /pws/zycit533 = itab_zycit533_save.

    m_log_d.

    DELETE FROM /pws/zycit533

       WHERE nrseq     = itab_zycit533-nrseq

       AND   ebeln     = itab_zycit533-ebeln

       AND   ebelp     = itab_zycit533-ebelp

       AND   agrupamento = itab_zycit533-agrupamento.

  ENDLOOP.

  MODIFY /pws/zycit533 FROM TABLE itab_zycit533.

* << Fim da inclusão

  COMMIT WORK.

  MESSAGE i017 WITH text-005.

  wa_zycie527_sv     =  /pws/zycie527.

  itab_zycit528_sv[] = itab_zycit528[].

  itab_zycit529_sv[] = itab_zycit529[].

  itab_zycit530_sv[] = itab_zycit530[].

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

  itab_zycit533_sv[] = itab_zycit533[].

* << Fim da inclusão

ENDFORM.

...

 

...

                sy-tcode '/PWS/SAPMZYCI085' /pws/zycit529-nrseq.

      ENDLOOP.

      LOOP AT itab_zycit530_save.

        MOVE-CORRESPONDING itab_zycit530_save TO /pws/zycit530.

        PERFORM carrega_log USING '/PWS/ZYCIT530' 'D'

                sy-tcode  '/PWS/SAPMZYCI085' /pws/zycit530-nrseq.

      ENDLOOP.

      DELETE FROM /pws/zycit528 WHERE nrseq = /pws/zycie001-nrseq.

      DELETE FROM /pws/zycit529 WHERE nrseq = /pws/zycie001-nrseq.

      DELETE FROM /pws/zycit530 WHERE nrseq = /pws/zycie001-nrseq.

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

      SELECT * FROM /pws/zycit533 INTO TABLE itab_zycit533_save

      WHERE nrseq = /pws/zycie527-nrseq.

      LOOP AT itab_zycit530_save.

        MOVE-CORRESPONDING itab_zycit530_save TO /pws/zycit530.

        PERFORM carrega_log USING '/PWS/ZYCIT530' 'D'

                sy-tcode  '/PWS/SAPMZYCI085' /pws/zycit530-nrseq.

      ENDLOOP.

      DELETE FROM /pws/zycit533 WHERE nrseq = /pws/zycie001-nrseq.

* << Fim da inclusão

    ENDIF.

    COMMIT WORK.

    LEAVE PROGRAM.

  ENDIF.

ENDFORM.

 

...

 

...

 

* >> Início da inclusão:

FORM status_0103.

  DESCRIBE TABLE itab_zycit528 LINES v_line.

  SET TITLEBAR  '0103'.

  IF v_line EQ '1' .

    itab_botoes-fcode = 'PRIM'.

    APPEND itab_botoes.

    itab_botoes-fcode = 'ANTE'.

    APPEND itab_botoes.

    itab_botoes-fcode = 'PROX'.

    APPEND itab_botoes.

    itab_botoes-fcode = 'ULTI'.

    APPEND itab_botoes.

    SET PF-STATUS '0103' EXCLUDING itab_botoes .

  ELSE.

    SET PF-STATUS '0103' .

  ENDIF.

ENDFORM.

FORM trata_tela_0103.

  CASE sy-ucomm.

    WHEN 'BACK'.

      PERFORM save_data_item.

      DELETE itab_zycit533 WHERE qtd_agrup IS initial .

      CLEAR   itab_itens.

      REFRESH itab_itens.

      LEAVE TO SCREEN 0.

    WHEN 'LEAVE'.

      LEAVE TO SCREEN 0.

    WHEN 'PRIM'.

      PERFORM save_data_item.

      v_idx = 1 .

      READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.

      IF sy-subrc EQ 0.

        PERFORM move_itens.

      ENDIF.

    WHEN 'ANTE'.

      PERFORM save_data_item.

      IF v_idx > '1'.

        v_idx = v_idx - 1 .

        READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.

        IF sy-subrc EQ 0.

          PERFORM move_itens.

        ENDIF.

      ENDIF.

    WHEN 'PROX'.

      PERFORM save_data_item.

      DESCRIBE TABLE itab_zycit528 LINES v_line.

      IF v_idx < v_line.

        v_idx = v_idx + 1 .

        READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.

        IF sy-subrc EQ 0.

          PERFORM move_itens.

        ENDIF.

      ENDIF.

    WHEN 'ULTI'.

      PERFORM save_data_item.

      DESCRIBE TABLE itab_zycit528 LINES v_idx.

      READ TABLE itab_zycit528 INTO wa_zycie528 INDEX v_idx.

      IF sy-subrc EQ 0.

        PERFORM move_itens.

      ENDIF.

  ENDCASE.

ENDFORM.

FORM calcula_saldo.

  READ TABLE itab_zycit003 WITH KEY

        ebeln = itab_itens-ebeln

        ebelp = itab_itens-ebelp .

  IF sy-subrc EQ 0.

    itab_itens-saldo = itab_zycit003-qtd_iten - /pws/zycie533-qtd_agrup.

  ENDIF.

  LOOP AT itab_zycit533 WHERE ebeln EQ itab_itens-ebeln

                        AND   ebelp EQ itab_itens-ebelp

                        AND   agrupamento NE itab_itens-agrupamento.

    itab_itens-saldo = itab_itens-saldo - itab_zycit533-qtd_agrup.

  ENDLOOP.

ENDFORM.

FORM save_data_item.

  LOOP AT itab_itens.

    READ TABLE itab_zycit533 WITH KEY

    nrseq = itab_itens-nrseq

    ebeln = itab_itens-ebeln

    ebelp = itab_itens-ebelp

    agrupamento = wa_zycie528-container.

    IF sy-subrc EQ 0.

      itab_zycit533-qtd_agrup  = itab_itens-qtd_agrup.

      MODIFY itab_zycit533 TRANSPORTING qtd_agrup

        WHERE  nrseq = itab_itens-nrseq

        AND    ebeln = itab_itens-ebeln

        AND    ebelp = itab_itens-ebelp

        AND    agrupamento = wa_zycie528-container.

    ELSE.

      IF NOT itab_itens-qtd_agrup IS INITIAL.

        MOVE-CORRESPONDING itab_itens TO itab_zycit533.

        APPEND itab_zycit533.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM move_itens.

  DATA: v_saldo TYPE /pws/zycit003-qtd_iten.

  DATA: itab_zycit533_aux TYPE

         STANDARD TABLE OF /pws/zycit533 WITH HEADER LINE.

  MOVE itab_zycit533[] TO itab_zycit533_aux[] .

  CLEAR itab_itens.

  REFRESH itab_itens.

  LOOP AT itab_zycit003 .

    clear itab_itens.

    CLEAR: v_saldo.

    v_saldo = itab_zycit003-qtd_iten.

    LOOP AT itab_zycit533_aux

             WHERE ebeln EQ itab_zycit003-ebeln

             AND   ebelp EQ itab_zycit003-ebelp.

      v_saldo = v_saldo - itab_zycit533_aux-qtd_agrup.

    ENDLOOP.

    itab_itens-saldo = v_saldo.

    READ TABLE itab_zycit533

           WITH KEY ebeln = itab_zycit003-ebeln

                    ebelp = itab_zycit003-ebelp

                    agrupamento = wa_zycie528-container.

    IF sy-subrc EQ 0.

      MOVE-CORRESPONDING itab_zycit533 TO itab_itens .

    ELSE.

      MOVE-CORRESPONDING itab_zycit003 TO itab_itens .

      itab_itens-mandt    = sy-mandt.

      itab_itens-nrseq    = /pws/zycie001-nrseq.

      itab_itens-material = itab_zycit003-matnr.

      itab_itens-agrupamento = wa_zycie528-container.

    ENDIF.

    APPEND itab_itens.

  ENDLOOP.

ENDFORM.

FORM salva_desp.

  LOOP AT itab_desp.

    READ TABLE itab_zycit530 WITH KEY

     container = itab_desp-container

     codigo    = itab_desp-codigo .

    IF sy-subrc EQ 0.

      itab_zycit530-vldp  = itab_desp-vldp.

      itab_zycit530-waers = itab_desp-waers.

      MODIFY itab_zycit530 TRANSPORTING vldp waers

      WHERE  container EQ itab_desp-container

      AND    codigo    EQ itab_desp-codigo .

    ELSE.

      itab_zycit530-mandt      = sy-mandt.

      itab_zycit530-nrseq      = /pws/zycie001-nrseq.

      itab_zycit530-container  = itab_desp-container.

      itab_zycit530-codigo     = itab_desp-codigo.

      itab_zycit530-vldp       = itab_desp-vldp  .

      itab_zycit530-waers      = itab_desp-waers .

      APPEND itab_zycit530.

    ENDIF.

  ENDLOOP.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI059F01

 

...

  DATA: END OF itab_erro.

  DATA: v_zeile TYPE mesg-zeile,

        v_text1(50) TYPE c,

        v_vldp TYPE /pws/zycit049-vldp.

  CLEAR: v_msg.

  SELECT * FROM /pws/zycit530

  INTO TABLE itab_zycit530

  WHERE nrseq EQ /pws/zycie001-nrseq

  AND   vldp  NE space.

  LOOP AT itab_zycit049 WHERE vldp NE space.

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

    read table itab_zycit019 with key tpdesp = itab_zycit049-tpdesp.

* << Fim da inclusão

    CLEAR v_vldp.

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

    LOOP AT itab_zycit530 WHERE codigo = itab_zycit049-codigo.

* << Fim da exclusão

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

    LOOP AT itab_zycit530 WHERE codigo = itab_zycit019-codigo.

* << Fim da inclusão

      v_vldp = itab_zycit530-vldp + v_vldp.

    ENDLOOP .

    IF sy-subrc EQ 0.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003X01

 

...

 

* >> Início da inclusão:

  DATA: v_prog TYPE /pws/zycit036-origem VALUE 'FAT'.

* << Fim da inclusão

DATA: END OF COMMON PART.

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI001

 

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 539

 

Texto: (30 caracteres)

"There are items without group."

 

Comprimento máximo: 35

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 539

 

Texto: (30 caracteres)

"Existem itens sem agrupamento."

 

Comprimento máximo: 35

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 539

 

Texto: (31 caracteres)

"No hay elementos de agrupación."

 

Comprimento máximo: 35

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI085

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 019

 

Texto: (37 caracteres)

"Amount exceeds the available balance."

 

Comprimento máximo: 40

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 019

 

Texto: (35 caracteres)

"Quantidade excede saldo disponível."

 

Comprimento máximo: 40

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 019

 

Texto: (33 caracteres)

"Monto excede el saldo disponible."

 

Comprimento máximo: 35

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI003

 

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

Modificado símbolo de texto:

 

Idioma: ES

 

Símbolo: 225

 

Texto: (8 caracteres)

"El gasto"

 

Comprimento máximo: 15

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 229

 

Texto: (36 caracteres)

"The DI isn't created after Grouping."

 

Comprimento máximo: 45

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 229

 

Texto: (45 caracteres)

"A DI ainda não foi criada após o agrupamento."

 

Comprimento máximo: 45

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 229

 

Texto: (45 caracteres)

"DI no ha sido creado después de la agrupacion"

 

Comprimento máximo: 45

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 230

 

Texto: (39 caracteres)

"The Freight invoice can't be generated."

 

Comprimento máximo: 40

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 230

 

Texto: (40 caracteres)

"A Fatura de Frete não poderá ser gerada."

 

Comprimento máximo: 40

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 230

 

Texto: (40 caracteres)

"La Factura de Flete no se puede generar."

 

Comprimento máximo: 40

 

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

Incluído símbolo de texto:

 

Idioma: EN

 

Símbolo: 231

 

Texto: (41 caracteres)

"The Assurance invoice can't be generated."

 

Comprimento máximo: 41

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 231

 

Texto: (41 caracteres)

"A Fatura de Seguro não poderá ser gerada."

 

Comprimento máximo: 41

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 231

 

Texto: (41 caracteres)

"La Factura de Seguro no se puede generar."

 

Comprimento máximo: 41