CE PLUS - Nota 003511

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DA

Data/Hora da Publicação: 20/04/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 14:40:41

Descrição da Nota: DECLARAÇÃO DE ADMISSÃO - MATERIAIS DIFERENTES

Sintoma

Na DA não permitia gravar materiais diferentes.

Permitir que vincule itens de materiais diferentese faça o rateio entre os itens e leve para o

embarque de nacionalização rateado.

 

 

Solução

Gravar despesas por pedido e item e fazendo rateio dos valores.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

MATERIAIS DIFERENTES NA DA

PRESTAÇÃO DE CONTAS - ENTREPOSTO ADUANEIRO

DA APOS ATUALIZAR NÃO DEVE DEIXAR FAZER DC, PC E AD

Informações Complementares

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

Nota Número 03511 Data: 20/04/2007 Hora: 10:07:51

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

 

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

Nota Número              : 03511

Categoria                : Melhoria

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00001

Agrupamento              : 00162

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

Referência às notas relacionadas:

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

 

03150  - 00002 - 6.0    - 00026  - PRESTAÇÃO DE CONTAS - ENTREPOSTO ADUANEIRO

03257  - 00001 - 6.0    - 00026  - DA APOS ATUALIZAR NÃO DEVE DEIXAR FAZER DC, PC E AD

03361  - 00003 - 7.0    - 00001  - MATERIAIS DIFERENTES NA DA

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

DECLARAÇÃO DE ADMISSÃO - MATERIAIS DIFERENTES

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

Palavras Chave:

PEDIDO; ITEM; RATEIO

 

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

Objetos da nota:

REPS /PWS/MZYCI001F03

REPS /PWS/MZYCI001X01

REPS /PWS/MZYCI070F05

REPS /PWS/MZYCI070TOP

REPS /PWS/MZYCI072F01

REPS /PWS/MZYCI072TOP

REPS /PWS/MZYCI072X01

REPS /PWS/MZYCI075F01

REPS /PWS/MZYCI075F02

REPS /PWS/MZYCI075TOP

REPS /PWS/MZYCI075X01

REPS /PWS/MZYCI076F01

REPS /PWS/MZYCI076TOP

REPS /PWS/MZYCI076X01

REPT /PWS/SAPMZYCI070

REPT /PWS/SAPMZYCI072

REPT /PWS/SAPMZYCI075

TABD /PWS/ZYCIE461

TABD /PWS/ZYCIE466

TABD /PWS/ZYCIT443

TABD /PWS/ZYCIT461

TABD /PWS/ZYCIT466

 

 

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIE461

 

Inclusão dos campos-chave: EBELN Pedido e EBELP Item

 

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

 

     MANDT      MANDT                      CLNT     3

     NRSEQDA    /PWS/ZYCIL831              CHAR    10

     TPDESP     /PWS/ZYCIL036              CHAR     3

     NRADTO     /PWS/ZYCIL027              CHAR    10

     EBELN      EBELN                      CHAR    10

     EBELP      EBELP                      NUMC     5

     EMBARCA    /PWS/ZYCIL008              CHAR    15

     DESCR      /PWS/ZYCIL037              CHAR    35

     WERKS      WERKS_D                    CHAR     4

 

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIE466

 

 

Inclusão dos campos-chave: EBELN Pedido e EBELP Item

 

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

 

     MANDT      MANDT                      CLNT     3

     NRSEQ      /PWS/ZYCIL831              CHAR    10

     NRADTO     /PWS/ZYCIL027              CHAR    10

     TPDESP     /PWS/ZYCIL036              CHAR     3

     EBELN      EBELN                      CHAR    10

     EBELP      EBELP                      NUMC     5

     EMBARCA    /PWS/ZYCIL008              CHAR    15

     DESCR      /PWS/ZYCIL037              CHAR    35

     WAERS      WAERS                      CUKY     5

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIT443

 

 

Inclusão dos campos abaixo do EBELP_ORI

 

     Nome de campo    Chv Elem.dados    Tab.verif.    N CtDt Comp.

 

 

     CONDMERC             /PWS/ZYCIL202                 CHAR     1

     WERKS                WERKS_D                       CHAR     4

     MATNR                MATNR                         CHAR    18

     EBELP_ORI            EBELP                         NUMC     5

     CODREGTRIPISCOFI     /PWS/ZYCEL265                 CHAR     1

     CODFUNLEGPISCOFI     /PWS/ZYCIL203                 CHAR     2

     REDPISCOFI           LOHN_B                        CHAR     1

     CODREDPISCOFI        /PWS/ZYCIL203                 CHAR     2

     PERCREDUZPC          J_1BTXRATE                    DEC      6

     UM_PIS               MEINS                         UNIT     3

     UM_COFINS            MEINS                         UNIT     3

     QTDUM_PIS            NUM08                         NUMC     8

     QTDUM_COFINS         NUM08                         NUMC     8

     PIS_CALC             /PWS/ZYCIL307                 CURR    16

     PIS_DEV              /PWS/ZYCIL307                 CURR    16

     COFI_CALC            /PWS/ZYCIL307                 CURR    16

     COFI_DEV             /PWS/ZYCIL307                 CURR    16

     CODREGTRIICMS        /PWS/ZYCEL265                 CHAR     1

     CODFUNLEGICMS        /PWS/ZYCIL203                 CHAR     2

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIT461

 

 

Inclusão dos campos-chave: EBELN Pedido e EBELP Item

 

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

 

     MANDT          MANDT                      CLNT     3

     NRSEQDA        /PWS/ZYCIL831              CHAR    10

     TPDESP         /PWS/ZYCIL036              CHAR     3

     NRADTO         /PWS/ZYCIL027              CHAR    10

     EBELN          EBELN                      CHAR    10

     EBELP          EBELP                      NUMC     5

     EMBARCA        /PWS/ZYCIL008              CHAR    15

     DESCR          /PWS/ZYCIL037              CHAR    35

     WERKS          WERKS_D                    CHAR     4

 

 

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

Modificações efetuadas em TABD /PWS/ZYCIT466

 

 

Inclusão dos campos-chave: EBELN Pedido e EBELP Item

 

 

     Nome campo Chv Elem.dados    Tab.verif. N CtDt Comp. Gr

 

     MANDT          MANDT                      CLNT     3

     NRSEQ          /PWS/ZYCIL831              CHAR    10

     NRADTO         /PWS/ZYCIL027              CHAR    10

     TPDESP         /PWS/ZYCIL036              CHAR     3

     EBELN          EBELN                      CHAR    10

     EBELP          EBELP                      NUMC     5

     EMBARCA        /PWS/ZYCIL008              CHAR    15

     DESCR          /PWS/ZYCIL037              CHAR    35

     WAERS          WAERS                      CUKY     5

 

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

Modificações efetuadas em REPS /PWS/MZYCI001F03

 

...

  LOOP AT itab_zycit466.

    READ TABLE itab_zycit466_aux WITH KEY

                       tpdesp = itab_zycit466-tpdesp.

    IF sy-subrc NE 0.

      MOVE itab_zycit466 TO itab_zycit466_aux.

      APPEND itab_zycit466_aux.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_zycit003.

    DESCRIBE TABLE itab_zycit459 LINES v_line.

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

    LOOP AT itab_zycit461 .

* << Fim da exclusão

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

    LOOP AT itab_zycit461 WHERE ebeln EQ itab_zycit003-ebeln

                          AND   ebelp EQ itab_zycit003-ebelp.

* << Fim da inclusão

      CLEAR v_qtdutil_da.

      READ TABLE itab_zycit459 WITH KEY nrseqda = itab_zycit461-nrseqda

                                        nrpres  = itab_zycit461-nradto.

      READ TABLE itab_zycit019 WITH KEY tpdesp = itab_zycit461-tpdesp.

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit461_aux

                           WITH KEY nrseqda = itab_zycit461-nrseqda

                                    tpdesp  = itab_zycit461-tpdesp

                                    nradto  = itab_zycit461-nradto .

        IF sy-subrc NE 0.

...

 

...

              /pws/zycbt007-waersb   TO itab_zycit036_aux-waers_mov,

              itab_zycit461-nradto   TO itab_zycit036_aux-nrseqori  .

        itab_zycit036_aux-vlreal = itab_zycit036_aux-vlmov =

        itab_zycit003-qtd_iten *   itab_zycit461-netpr_da.

        IF NOT itab_zycit036_aux-vlreal LT 0.

          APPEND itab_zycit036_aux.

        ENDIF.

      ENDIF.

    ENDLOOP.

    DESCRIBE TABLE itab_zycit465 LINES v_line.

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

    LOOP AT itab_zycit466 .

* << Fim da exclusão

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

    LOOP AT itab_zycit466 WHERE ebeln EQ itab_zycit003-ebeln

                          AND   ebelp EQ itab_zycit003-ebelp.

* << Fim da inclusão

      CLEAR v_qtdutil_da.

      READ TABLE itab_zycit019 WITH KEY tpdesp = itab_zycit466-tpdesp.

      IF sy-subrc EQ 0.

        LOOP AT itab_zycit003_saldo

                  WHERE ebeln EQ itab_zycit003-ebeln

                 AND ebelp EQ itab_zycit003-ebelp.

          READ TABLE itab_zycit036_aux WITH KEY

                     ebeln  = itab_zycit003_saldo-ebeln

                     ebelp  = itab_zycit003_saldo-ebelp

                     nrseq  = itab_zycit003_saldo-nrseq.

...

 

...

FORM f-02_pcd.

  CLEAR: v_registro, v_tipo_1.

  CLEAR  : itab_zycit026, itab_zycit027.

  REFRESH: itab_zycit026, itab_zycit027.

  v_tipo_1 = 'PCD'.

  PERFORM busca_reg USING v_tipo_1

                          v_registro.

  IF v_registro EQ 'X'.

    EXIT.

  ENDIF.

* >> Início da inclusão: FORM F-02_PCD

  LOOP AT itab_zycit461.

    MOVE-CORRESPONDING itab_zycit461 TO itab_zycit461_tot.

    itab_zycit461_tot-nrseq = itab_zycit461-nrseqda.

    COLLECT itab_zycit461_tot.

  ENDLOOP.

* << Fim da inclusão

  PERFORM trata_prest USING 'PCD'.

  CLEAR: v_nrseqori.

  LOOP AT it_zycit036.

    LOOP AT itab_zycit036_aux WHERE nrseqori EQ it_zycit036-nrseqori

                                AND nrseq    EQ /pws/zycie001-nrseq.

      CLEAR: v_codeven, v_qtdutil_da, itab_zycit026, itab_zycit027.

      it_zycbe033-mandt  = sy-mandt.

      it_zycbe033-tcode  = text-299.

      it_zycbe033-tabela = text-300.

      READ TABLE itab_zycit019 WITH KEY

                                codigo = itab_zycit036_aux-codigo.

      READ TABLE itab_zycit459 WITH KEY

                                nrpres = itab_zycit036_aux-nrseqori.

* >> Início da exclusão: FORM F-02_PCD

      READ TABLE itab_zycit461 WITH KEY

* << Fim da exclusão

* >> Início da inclusão: FORM F-02_PCD

      READ TABLE itab_zycit461_tot WITH KEY

* << Fim da inclusão

                                nradto  = itab_zycit036_aux-nrseqori

                                tpdesp  = itab_zycit019-tpdesp.

      it_zycbe033-bldat = itab_zycit459-dtacerto.

      it_zycbe033-budat = sy-datlo.

      it_zycbe033-bukrs = /pws/zycie001-bukrs.

      it_zycbe033-xblnr = itab_zycit459-refpres.

      v_codeven = text-301.

      it_zycbe033-cpochv  = itab_zycit459-nrseqda.

      CLEAR it_ekpo_aux1.

      READ TABLE it_ekpo_aux1 WITH KEY ebelp = itab_zycit036_aux-ebelp

...

 

...

      IF itab_zycit003-gsber IS INITIAL.

        SELECT SINGLE gsber FROM ekkn

          INTO itab_zycit003-gsber

          WHERE ebeln EQ itab_zycit036_aux-ebeln

            AND ebelp EQ itab_zycit036_aux-ebelp.

      ENDIF.

      it_zycbe033-c_gsber = itab_zycit003-gsber.

      it_zycbe033-d_gsber = itab_zycit003-gsber.

      COLLECT it_zycbe033.

      MOVE-CORRESPONDING itab_zycit459 TO itab_zycit026.

* >> Início da exclusão: FORM F-02_PCD

      MOVE-CORRESPONDING itab_zycit461 TO itab_zycit027.

* << Fim da exclusão

* >> Início da inclusão: FORM F-02_PCD

      MOVE-CORRESPONDING itab_zycit461_tot TO itab_zycit027.

* << Fim da inclusão

      itab_zycit026-nrseqori  = itab_zycit036_aux-nrseqori.

      itab_zycit026-nrseq     = itab_zycit036_aux-nrseq.

      itab_zycit027-nrseq     = itab_zycit036_aux-nrseq.

      itab_zycit027-vldp      = itab_zycit036_aux-vlreal.

      LOOP AT itab_zycit003_saldo

        WHERE ebeln EQ itab_zycit036_aux-ebeln

          AND ebelp EQ itab_zycit036_aux-ebelp.

        IF itab_zycit036_aux-dtuserc LE itab_zycit461-dtlanc .

          IF itab_zycit036_aux-hruserc LT itab_zycit461-hr_docfat.

            v_qtdutil_da = v_qtdutil_da +

...

 

...

  ENDLOOP.

ENDFORM.

FORM f-02_dcd.

  CLEAR: v_registro, v_tipo_1.

  v_tipo_1 = 'DCD'.

  PERFORM busca_reg USING v_tipo_1

                          v_registro.

  IF v_registro EQ 'X'.

    EXIT.

  ENDIF.

* >> Início da inclusão: FORM F-02_DCD

  LOOP AT itab_zycit466.

    MOVE-CORRESPONDING itab_zycit466 TO itab_zycit466_tot.

    COLLECT itab_zycit466_tot.

  ENDLOOP.

* << Fim da inclusão

  CLEAR: v_nrseqori.

  CLEAR:   it_zycbe033, itab_zycbt032, it_zycbe033_aux.

  REFRESH: it_zycbe033, itab_zycbt032, it_zycbe033_aux.

  LOOP AT itab_zycit036_aux WHERE origem EQ 'DCD'

                              AND nrseq  EQ /pws/zycie001-nrseq.

    CLEAR: v_codeven.

    READ TABLE itab_zycit019 WITH KEY codigo = itab_zycit036_aux-codigo.

* >> Início da exclusão: FORM F-02_DCD

    READ TABLE itab_zycit466 WITH KEY

* << Fim da exclusão

* >> Início da inclusão: FORM F-02_DCD

    READ TABLE itab_zycit466_tot WITH KEY

* << Fim da inclusão

                               tpdesp = itab_zycit019-tpdesp

                               nradto = itab_zycit036_aux-nrseqori.

    READ TABLE itab_zycit465 WITH KEY

                                nrseq = itab_zycit466-nrseq

                               nradto = itab_zycit466-nradto.

    it_zycbe033-mandt  = sy-mandt              .

    it_zycbe033-tcode  = text-299              .

    it_zycbe033-tabela = text-306              .

    it_zycbe033-bldat  = itab_zycit465-dtincl  .

    it_zycbe033-budat  = sy-datlo.

...

 

...

    ENDIF.

    READ TABLE itab_zycit003 WITH KEY nrseq = /pws/zycie001-nrseq

                                    ebeln = itab_zycit036_aux-ebeln

                                    ebelp = itab_zycit036_aux-ebelp.

    it_zycbe033-c_gsber = itab_zycit003-gsber.

    it_zycbe033-d_gsber = itab_zycit003-gsber.

    it_zycbe033_aux = it_zycbe033.

    it_zycbe033_aux-belnr_f02 = itab_zycit466-belnr_f02.

    COLLECT it_zycbe033_aux.

    MOVE-CORRESPONDING itab_zycit465 TO it_zycit008.

* >> Início da exclusão: FORM F-02_DCD

    MOVE-CORRESPONDING itab_zycit466 TO itab_zycit016.

* << Fim da exclusão

* >> Início da inclusão: FORM F-02_DCD

    MOVE-CORRESPONDING itab_zycit466_tot TO itab_zycit016.

* << Fim da inclusão

    MOVE itab_zycit036_aux-nrseqori TO it_zycit008-nrseqori.

    IF v_nrseqori NE itab_zycit036_aux-nrseqori.

      CLEAR: v_nradto, v_nrseqori,v_value.

      SELECT MAX( nradto ) FROM /pws/zycit008

             INTO v_nradto.

      v_value = v_nradto + 1.

      v_nrseqori = itab_zycit036_aux-nrseqori.

    ENDIF.

    it_zycit008-nradto   = v_value.

    it_zycit008-nrseq    =  itab_zycit036_aux-nrseq.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI001X01

 

...

DATA: END OF itab_zycit461.

DATA: BEGIN OF itab_zycit466 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit466.

DATA: END OF itab_zycit466.

DATA: itab_zycit036_aux LIKE /pws/zycit036 OCCURS 0 WITH HEADER LINE,

      itab_zycit459 LIKE /pws/zycit459 OCCURS 0 WITH HEADER LINE,

      itab_zycit465 LIKE /pws/zycit465 OCCURS 0 WITH HEADER LINE,

      itab_zycit019 LIKE /pws/zycit019 OCCURS 0 WITH HEADER LINE,

      itab_zycit461_aux LIKE itab_zycit461 OCCURS 0 WITH HEADER LINE,

      itab_zycit466_aux LIKE itab_zycit466 OCCURS 0 WITH HEADER LINE.

* >> Início da inclusão:

DATA: itab_zycit461_tot LIKE /pws/zycit027 OCCURS 0 WITH HEADER LINE.

DATA: itab_zycit466_tot LIKE /pws/zycit016 OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

DATA: BEGIN OF it_zycit036 OCCURS 0.

DATA:   nrseq    LIKE /pws/zycit036-nrseq,

        origem   LIKE /pws/zycit036-origem,

        nrseqori LIKE /pws/zycit036-nrseqori.

DATA: END OF it_zycit036.

DATA:  v_vldp      LIKE /pws/zycit461-vldp    ,

       v_netpc_nac LIKE /pws/zycit036-netpr   ,

       v_netdc_nac LIKE /pws/zycit036-netpr   ,

       v_vldpd     LIKE /pws/zycit466-vldp    ,

       v_forn(15)  TYPE c                     ,

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI070F05

 

...

           INTO  /pws/zycit465-nradto

           FROM  /pws/zycit465

           WHERE nrseq EQ v_nrseqda

           AND   tpgto EQ 'D'.

    IF /pws/zycit459-nrpres IS INITIAL AND

       /pws/zycit465-nradto IS INITIAL.

      MESSAGE i015 WITH text-529.

      CLEAR sy-ucomm.

      EXIT.

    ENDIF.

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

    SELECT *

           INTO  TABLE itab_zycit036

           FROM  /pws/zycit036

           FOR ALL ENTRIES IN itab_it

           WHERE ebeln    EQ itab_it-ebeln

           AND   ebelp    EQ itab_it-ebelp

           AND   origem   EQ 'PCD'

           AND   nrseqori EQ /pws/zycit459-nrpres.

* << Fim da exclusão

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

    IF okcode EQ 'PREST'.

* << Fim da inclusão

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

    IF sy-subrc IS INITIAL.

* << Fim da exclusão

      MESSAGE i015 WITH text-529.

      CLEAR sy-ucomm.

      EXIT.

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

    ENDIF.

* << Fim da inclusão

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

    ELSE.

      SELECT *

             INTO  TABLE itab_zycit036

             FROM  /pws/zycit036

             FOR ALL ENTRIES IN itab_it

             WHERE ebeln    EQ itab_it-ebeln

             AND   ebelp    EQ itab_it-ebelp

             AND   origem   EQ 'DCD'

             AND   nrseqori EQ /pws/zycit465-nradto.

* << Fim da exclusão

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

    IF okcode EQ 'DEBIT'.

* << Fim da inclusão

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

      IF sy-subrc IS INITIAL.

        MESSAGE i015 WITH text-529.

* << Fim da exclusão

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

      MESSAGE i015 WITH text-534.

* << Fim da inclusão

        CLEAR sy-ucomm.

        EXIT.

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

      ENDIF.

* << Fim da exclusão

    ENDIF.

  ENDIF.

  SET PARAMETER ID 'LIF' FIELD v_despach.

  SET PARAMETER ID '/PWS/ZYCIP003' FIELD v_despach.

  SET PARAMETER ID '/PWS/ZYCIP442' FIELD v_nrseqda.

...

 

...

    LOOP AT itab_lote_aux WHERE qtd_lote_dif > 0.

      MOVE itab_lote_aux TO itab_lote.

      itab_lote-qtd_lote = itab_lote_aux-qtd_lote_dif.

      CLEAR itab_lote-qtd_nac.

      itab_lote-ebelp = v_item.

      APPEND itab_lote.

      MOVE itab_lote TO itab_zycit463.

      APPEND itab_zycit463.

    ENDLOOP.

    PERFORM save_data.

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

    PERFORM atualiza_pcd_dcd.

* << Fim da inclusão

    MESSAGE i086 WITH itab_it-ebeln.

    LEAVE TO SCREEN 0.

  ENDIF.

ENDFORM.

FORM limpa_bapi.

  CLEAR: bapimepoheader,

         bapimepoheaderx,

         itab_bapimepoitem,

         itab_bapimepoitemx,

         itab_bapimeposchedule,

...

 

...

                          itab_bapiret2-message_v3.

      ELSE.

        MESSAGE i013 WITH itab_bapiret2-message+0(50)

                          itab_bapiret2-message+50(50).

      ENDIF.

    ENDLOOP.

  ELSE.

    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'

         EXPORTING

              wait = 'X'.

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

    itab_it-qtd_da = itab_it-qtd_da - v_qtd_it.

    MODIFY itab_it TRANSPORTING qtd_da WHERE mark = 'X'.

    IF itab_it-qtd_da IS INITIAL.

      DELETE itab_it WHERE mark = 'X'.

    ENDIF.

* << Fim da exclusão

    LOOP AT itab_lote.

      v_tabix = sy-tabix.

      READ TABLE itab_lote_aux WITH KEY

         ebeln = itab_lote-ebeln

         ebelp = itab_lote-ebelp

         lote_forn = itab_lote-lote_forn.

      IF sy-subrc = 0.

        itab_lote-qtd_lote

          = itab_lote_aux-qtd_lote - itab_lote_aux-qtd_lote_dif.

        MODIFY itab_lote.

...

 

...

      READ TABLE itab_zycit463 WITH KEY

         ebeln = itab_lote-ebeln

         ebelp = itab_lote-ebelp

         nrseqlote = itab_lote-nrseqlote.

      IF sy-subrc = 0.

        v_tabix = sy-tabix.

        itab_zycit463-qtd_lote = itab_lote-qtd_lote.

        MODIFY itab_zycit463 INDEX v_tabix.

      ENDIF.

    ENDLOOP.

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

    PERFORM estorna_pcd.

    PERFORM estorna_dcd.

    READ TABLE itab_it WITH KEY mark = 'X'.

    itab_it-qtd_da = itab_it-qtd_da - v_qtd_it.

    MODIFY itab_it TRANSPORTING qtd_da WHERE mark = 'X'.

    IF itab_it-qtd_da IS INITIAL.

      DELETE itab_it WHERE mark = 'X'.

    ENDIF.

* << Fim da inclusão

    READ TABLE itab_it WITH KEY ebelp = itab_it-ebelp_ori.

    itab_it-qtd_da = itab_it-qtd_da + v_qtd_it.

    MODIFY  itab_it INDEX sy-tabix.

    PERFORM save_data.

    MESSAGE i086 WITH itab_it-ebeln.

    LEAVE TO SCREEN 0.

  ENDIF.

ENDFORM.

FORM atualiza_qtd_po.

  IF ( NOT itab_zycit001-regime EQ '04' AND

...

 

...

 

* >> Início da inclusão:

FORM atualiza_pcd_dcd.

  CLEAR: itab_zycit461, itab_zycit461_aux.

  FREE:  itab_zycit461, itab_zycit461_aux.

  IF NOT itab_it[] IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit461

           FROM  /pws/zycit461

           FOR ALL ENTRIES IN itab_it

           WHERE nrseqda EQ itab_it-nrseqda

           AND   ebeln   EQ itab_it-ebeln

           AND   ebelp   EQ itab_it-ebelp.

  ENDIF.

  IF NOT itab_zycit461[] IS INITIAL.

    LOOP AT itab_zycit461.

      itab_zycit461_aux = itab_zycit461.

      CLEAR v_vldp.

      LOOP AT itab_it WHERE nrseqda   EQ itab_zycit461-nrseqda

                      AND   ebeln     EQ itab_zycit461-ebeln

                      AND   ebelp_ori EQ itab_zycit461-ebelp.

      ENDLOOP.

      IF sy-subrc IS INITIAL.

        CLEAR itab_lote_aux.

        READ TABLE itab_lote_aux WITH KEY

                                 nrseqda = itab_zycit461-nrseqda

                                 ebeln   = itab_zycit461-ebeln

                                 ebelp   = itab_zycit461-ebelp.

        IF sy-subrc IS INITIAL.

          v_vldp = ( itab_zycit461-vldp / itab_lote_aux-qtd_lote

                     * v_qtd_it ).

          itab_zycit461_aux-ebelp = itab_it-ebelp.

          itab_zycit461_aux-vldp  = itab_zycit461_aux-vldpiva = v_vldp.

          APPEND itab_zycit461_aux.

          itab_zycit461_aux-ebelp = itab_zycit461-ebelp.

          itab_zycit461_aux-vldp  = itab_zycit461_aux-vldpiva =

                                    itab_zycit461-vldp - v_vldp.

        ENDIF.

      ENDIF.

      APPEND itab_zycit461_aux.

    ENDLOOP.

    SORT itab_zycit461_aux BY nrseqda tpdesp nradto ebeln ebelp.

    MODIFY /pws/zycit461 FROM TABLE itab_zycit461_aux.

  ENDIF.

  CLEAR: itab_zycit466, itab_zycit466_aux.

  FREE:  itab_zycit466, itab_zycit466_aux.

  IF NOT itab_it[] IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit466

           FROM  /pws/zycit466

           FOR ALL ENTRIES IN itab_it

           WHERE nrseq EQ itab_it-nrseqda

           AND   ebeln EQ itab_it-ebeln

           AND   ebelp EQ itab_it-ebelp.

  ENDIF.

  CHECK NOT itab_zycit466[] IS INITIAL.

  LOOP AT itab_zycit466.

    itab_zycit466_aux = itab_zycit466.

    CLEAR v_vldp.

    LOOP AT itab_it WHERE nrseqda   EQ itab_zycit466-nrseq

                    AND   ebeln     EQ itab_zycit466-ebeln

                    AND   ebelp_ori EQ itab_zycit466-ebelp.

    ENDLOOP.

    IF sy-subrc IS INITIAL.

      CLEAR itab_lote_aux.

      READ TABLE itab_lote_aux WITH KEY

                               nrseqda = itab_zycit466-nrseq

                               ebeln   = itab_zycit466-ebeln

                               ebelp   = itab_zycit466-ebelp.

      IF sy-subrc IS INITIAL.

        v_vldp = ( itab_zycit466-vldp / itab_lote_aux-qtd_lote

                   * v_qtd_it ).

        itab_zycit466_aux-ebelp = itab_it-ebelp.

        itab_zycit466_aux-vldp  = v_vldp.

        APPEND itab_zycit466_aux.

        itab_zycit466_aux-ebelp = itab_zycit466-ebelp.

        itab_zycit466_aux-vldp  = itab_zycit466-vldp - v_vldp.

      ENDIF.

    ENDIF.

    APPEND itab_zycit466_aux.

  ENDLOOP.

  SORT itab_zycit466_aux BY nrseq tpdesp nradto ebeln ebelp.

  MODIFY /pws/zycit466 FROM TABLE itab_zycit466_aux.

ENDFORM.

FORM estorna_pcd.

  CLEAR: itab_zycit461, itab_zycit461_aux.

  FREE:  itab_zycit461, itab_zycit461_aux.

  IF NOT itab_zycit443[] IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit461

           FROM  /pws/zycit461

           FOR ALL ENTRIES IN itab_zycit443

           WHERE nrseqda EQ itab_zycit443-nrseqda

           AND   ebeln   EQ itab_zycit443-ebeln.

  ENDIF.

  CHECK NOT itab_zycit461[] IS INITIAL.

  LOOP AT itab_zycit461.

    v_index = sy-tabix.

    CLEAR itab_it.

    READ TABLE itab_it WITH KEY

                       nrseqda   = itab_zycit461-nrseqda

                       ebeln     = itab_zycit461-ebeln

                       ebelp_ori = itab_zycit461-ebelp

                       mark      = 'X'.

    IF sy-subrc IS INITIAL.

      READ TABLE itab_zycit461 WITH KEY

                       nrseqda = itab_it-nrseqda

                       tpdesp  = itab_zycit461-tpdesp

                       ebeln   = itab_it-ebeln

                       ebelp   = itab_it-ebelp

                       INTO    itab_zycit461_aux.

      IF sy-subrc IS INITIAL.

        IF itab_bapimepoitemx-delete_ind = 'X'.

          itab_zycit461-vldp  = itab_zycit461-vldp +

                                itab_zycit461_aux-vldp.

          MODIFY itab_zycit461 INDEX v_index.

          DELETE itab_zycit461

                 WHERE nrseqda EQ itab_zycit461_aux-nrseqda

                 AND   tpdesp  EQ itab_zycit461_aux-tpdesp

                 AND   ebeln   EQ itab_zycit461_aux-ebeln

                 AND   ebelp   EQ itab_zycit461_aux-ebelp.

        ELSE.

          v_vldp = ( itab_zycit461_aux-vldp / itab_it-qtd_da

                     * v_qtd_it ).

          itab_zycit461-vldp = itab_zycit461-vldpiva =

                               itab_zycit461-vldp + v_vldp.

          MODIFY itab_zycit461 INDEX v_index.

          itab_zycit461-vldp = itab_zycit461-vldpiva =

                               itab_zycit461_aux-vldp - v_vldp.

          MODIFY itab_zycit461 TRANSPORTING  vldp

                                             vldpiva

                 WHERE nrseqda EQ itab_zycit461_aux-nrseqda

                 AND   tpdesp  EQ itab_zycit461_aux-tpdesp

                 AND   ebeln   EQ itab_zycit461_aux-ebeln

                 AND   ebelp   EQ itab_zycit461_aux-ebelp.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

  MODIFY /pws/zycit461 FROM TABLE itab_zycit461.

  IF itab_bapimepoitemx-delete_ind = 'X'.

    DELETE FROM /pws/zycit461

           WHERE nrseqda EQ itab_zycit461_aux-nrseqda

           AND   ebeln   EQ itab_zycit461_aux-ebeln

           AND   ebelp   EQ itab_zycit461_aux-ebelp.

  ENDIF.

ENDFORM.

FORM estorna_dcd.

  CLEAR: itab_zycit466, itab_zycit466_aux.

  FREE:  itab_zycit466, itab_zycit466_aux.

  IF NOT itab_zycit443[] IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit466

           FROM  /pws/zycit466

           FOR ALL ENTRIES IN itab_zycit443

           WHERE nrseq EQ itab_zycit443-nrseqda

           AND   ebeln EQ itab_zycit443-ebeln.

  ENDIF.

  CHECK NOT itab_zycit466[] IS INITIAL.

  LOOP AT itab_zycit466.

    v_index = sy-tabix.

    CLEAR itab_it.

    READ TABLE itab_it WITH KEY

                       nrseqda   = itab_zycit466-nrseq

                       ebeln     = itab_zycit466-ebeln

                       ebelp_ori = itab_zycit466-ebelp

                       mark      = 'X'.

    IF sy-subrc IS INITIAL.

      READ TABLE itab_zycit466 WITH KEY

                       nrseq   = itab_it-nrseqda

                       tpdesp  = itab_zycit466-tpdesp

                       ebeln   = itab_it-ebeln

                       ebelp   = itab_it-ebelp

                       INTO    itab_zycit466_aux.

      IF sy-subrc IS INITIAL.

        IF itab_bapimepoitemx-delete_ind = 'X'.

          itab_zycit466-vldp  = itab_zycit466-vldp +

                                itab_zycit466_aux-vldp.

          MODIFY itab_zycit466 INDEX v_index.

          DELETE itab_zycit466

                 WHERE nrseq  EQ itab_zycit466_aux-nrseq

                 AND   tpdesp EQ itab_zycit466_aux-tpdesp

                 AND   ebeln  EQ itab_zycit466_aux-ebeln

                 AND   ebelp  EQ itab_zycit466_aux-ebelp.

        ELSE.

          v_vldp = ( itab_zycit466_aux-vldp / itab_it-qtd_da

                     * v_qtd_it ).

          itab_zycit466-vldp = itab_zycit466-vldp + v_vldp.

          MODIFY itab_zycit466 INDEX v_index.

          itab_zycit466-vldp = itab_zycit466_aux-vldp - v_vldp.

          MODIFY itab_zycit466 TRANSPORTING  vldp

                 WHERE nrseq   EQ itab_zycit466_aux-nrseq

                 AND   tpdesp  EQ itab_zycit466_aux-tpdesp

                 AND   ebeln   EQ itab_zycit466_aux-ebeln

                 AND   ebelp   EQ itab_zycit466_aux-ebelp.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDLOOP.

  MODIFY /pws/zycit466 FROM TABLE itab_zycit466.

  IF itab_bapimepoitemx-delete_ind = 'X'.

    DELETE FROM /pws/zycit466

           WHERE nrseq  EQ itab_zycit466_aux-nrseq

           AND   ebeln  EQ itab_zycit466_aux-ebeln

           AND   ebelp  EQ itab_zycit466_aux-ebelp.

  ENDIF.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI070TOP

 

...

  /pws/zycie014,

  /pws/zycie006,

  /pws/zycit006,

  t005t,

  t001,

  t604f,

  lfa1, lfbk,

  dd07t,

  t615,

  /pws/zycit031,

* >> Início da inclusão:

  /pws/zycit019,

  /pws/zycit020,

* << Fim da inclusão

  /pws/zycit104,

  /pws/zycet138,

  /pws/zycit174,

  /pws/zycit257,

  /pws/zycbt007,

  ekpo, ekko,

  tcurx,

  t615t,

  j_1bbranch,

  adrc,

...

 

...

DATA: END OF itab_zycit466.

DATA: BEGIN OF itab_zyglt100 OCCURS 10.

        INCLUDE STRUCTURE /pws/zyglt100.

DATA: END OF itab_zyglt100.

DATA: BEGIN OF itab_itc OCCURS 0,

         nrseq       LIKE /pws/zycie003-nrseq,

         ebeln       LIKE /pws/zycie003-ebeln,

         ebelp       LIKE /pws/zycie003-ebelp,

         mark,

      END OF itab_itc.

* >> Início da inclusão:

DATA: BEGIN OF itab_zycit461 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit461.

DATA: END   OF itab_zycit461.

DATA: BEGIN OF itab_zycit461_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit461.

DATA: END   OF itab_zycit461_aux.

DATA: BEGIN OF itab_zycit466_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit466.

DATA: END   OF itab_zycit466_aux.

* << Fim da inclusão

DATA: BEGIN OF it_status OCCURS 0,

        fcode LIKE rsmpe-func,

      END OF it_status.

DATA: BEGIN OF it_words OCCURS 0,

        word(50),

      END OF it_words.

DATA: itab_ita       LIKE itab_it       OCCURS 0 WITH HEADER LINE,

      itab_zycit049a LIKE itab_zycit049 OCCURS 0 WITH HEADER LINE,

      itab_zycit049b LIKE itab_zycit049 OCCURS 0 WITH HEADER LINE,

      itab_zycit049c LIKE itab_zycit049 OCCURS 0 WITH HEADER LINE,

...

 

...

        v_required,

        v_qtd_it LIKE /pws/zycit443-qtd_iten,

        v_centro LIKE /pws/zycit003-werks,

        v_salvo.

DATA:

  v_cpochv(80),

  v_descricao(50),

  v_tot_da          LIKE /pws/zycie003-qtd_iten,

  v_qtd_nac         LIKE /pws/zycit467-qtd_nac,

  v_sdo_da          LIKE /pws/zycit467-qtd_nac.

* >> Início da inclusão:

DATA:

      v_index        LIKE sy-tabix,

      v_vldp         LIKE /pws/zycit461-vldp.

* << Fim da inclusão

DATA: progname      TYPE sy-repid,

      dynnum        TYPE sy-dynnr,

      dynpro_values TYPE TABLE OF dynpread,

      field_value   LIKE LINE OF dynpro_values,

      mod_tab       TYPE TABLE OF /pws/zycit025.

DATA: BEGIN OF itab_divisao OCCURS 0,

        ebeln LIKE ekko-ebeln,

        ebelp LIKE ekpo-ebelp,

        gsber LIKE ekkn-gsber,

      END OF itab_divisao.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI072F01

 

...

        it_zycit466_aux-nrseq   = it_zycit466-nrseq.

        it_zycit466_aux-nradto  = it_zycit466-nradto.

        it_zycit466_aux-tpdesp  = it_zycit466-tpdesp.

        it_zycit466_aux-descr   = it_zycit466-descr.

        it_zycit466_aux-embarca = it_zycit466-embarca.

        it_zycit466_aux-vldp    = itab_zycit049-vldp.

        it_zycit466_aux-statusp = it_zycit466-statusp.

        APPEND it_zycit466_aux.

      ENDIF.

    ELSE.

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

      it_zycit466_aux-nrseq   = it_zycit466-nrseq.

* << Fim da exclusão

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

      it_zycit466_aux-nrseq   = itab_zycit049-nrseq.

* << Fim da inclusão

      it_zycit466_aux-nradto  = it_zycit466-nradto.

      it_zycit466_aux-tpdesp  = itab_zycit049-tpdesp.

      it_zycit466_aux-descr   = itab_zycit049-descr.

      it_zycit466_aux-statusp = ' '.

      it_zycit466_aux-embarca = ' '.

      it_zycit466_aux-vldp    = itab_zycit049-vldp.

      APPEND it_zycit466_aux.

    ENDIF.

  ENDLOOP.

  IF /pws/zycie465-dtincl EQ '        ' OR

...

 

...

  IF v_lib NE 'X' AND v_estrat NE 'X'.

    MESSAGE i015 WITH text-088.

    EXIT.

  ENDIF.

  LOOP AT it_zycit466_aux WHERE NOT vldp IS initial.

  ENDLOOP.

  IF sy-subrc NE 0.

    MESSAGE e015 WITH text-089.

    EXIT.

  ENDIF.

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

  PERFORM rateio_despesa_por_item.

* << Fim da inclusão

  IF v_salvo NE 'X'.

    MOVE: v_codmod  TO  /pws/zycie465-codmod,

         'D'       TO  /pws/zycie465-tpgto,

         'I'       TO  /pws/zycie465-status.

    INSERT INTO /pws/zycit465 VALUES /pws/zycie465.

    WHILE sy-subrc NE 0.

      PERFORM busca_nradto.

      INSERT INTO /pws/zycit465 VALUES /pws/zycie465.

      v_existe = 'S'.

    ENDWHILE.

...

 

...

      MESSAGE i061 WITH text-019

                        text-020 /pws/zycie465-nradto.

    ENDIF.

  ELSE.

    MOVE: v_codmod  TO  /pws/zycie465-codmod,

         'D'       TO  /pws/zycie465-tpgto,

         'I'       TO  /pws/zycie465-status.

    MODIFY /pws/zycit465 FROM /pws/zycie465.

  ENDIF.

  v_salvo = 'X'.

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

  LOOP AT it_zycit466_aux.

    READ TABLE it_tab_aux WITH KEY nrseq  = it_zycit466_aux-nrseq

                                   nradto = it_zycit466_aux-nradto.

    IF NOT it_zycit466_aux-vldp IS INITIAL.

      MOVE: it_tab_aux-nrseq        TO /pws/zycie466-nrseq,

            /pws/zycie465-nradto       TO /pws/zycie466-nradto,

            it_tab_aux-embarca      TO /pws/zycie466-embarca,

            it_tab_aux-waers        TO /pws/zycie466-waers,

            it_zycit466_aux-tpdesp  TO /pws/zycie466-tpdesp,

            it_zycit466_aux-vldp    TO /pws/zycie466-vldp.

      IF it_zycit466_aux-statusp EQ ' '.

* << Fim da exclusão

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

  LOOP AT it_zycit466_itens.

    READ TABLE it_tab_aux WITH KEY nrseq  = it_zycit466_itens-nrseq

                                   marc   = 'X'.

    IF NOT it_zycit466_itens-vldp IS INITIAL.

      MOVE: it_tab_aux-nrseq          TO /pws/zycie466-nrseq,

            /pws/zycie465-nradto      TO /pws/zycie466-nradto,

            it_zycit466_itens-ebeln   TO /pws/zycie466-ebeln,

            it_zycit466_itens-ebelp   TO /pws/zycie466-ebelp,

            it_tab_aux-embarca        TO /pws/zycie466-embarca,

            it_tab_aux-waers          TO /pws/zycie466-waers,

            it_zycit466_itens-tpdesp  TO /pws/zycie466-tpdesp,

            it_zycit466_itens-vldp    TO /pws/zycie466-vldp.

      IF it_zycit466_itens-statusp EQ ' '.

* << Fim da inclusão

        MOVE 'I'  TO /pws/zycie466-statusp.

      ELSE.

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

        MOVE it_zycit466_aux-statusp TO /pws/zycie466-statusp.

* << Fim da exclusão

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

        MOVE it_zycit466_itens-statusp TO /pws/zycie466-statusp.

* << Fim da inclusão

      ENDIF.

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

      MOVE: it_zycit466_aux-descr   TO /pws/zycie466-descr.

* << Fim da exclusão

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

      MOVE: it_zycit466_itens-descr   TO /pws/zycie466-descr.

* << Fim da inclusão

      IF NOT /pws/zycie466-statusp = 'C'.

        MODIFY /pws/zycit466 FROM /pws/zycie466.

      ENDIF.

    ELSEIF NOT it_tab_aux-nrseq IS INITIAL.

      DELETE FROM /pws/zycit466 CLIENT SPECIFIED

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

                           WHERE nrseq  = it_zycit466_aux-nrseq

                             AND nradto = it_zycit466_aux-nradto

                             AND tpdesp = it_zycit466_aux-tpdesp.

* << Fim da exclusão

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

                           WHERE nrseq  = it_zycit466_itens-nrseq

                             AND nradto = it_zycit466_itens-nradto

                             AND tpdesp = it_zycit466_itens-tpdesp

                             AND ebeln  = it_zycit466_itens-ebeln

                             AND ebelp  = it_zycit466_itens-ebelp.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  MOVE: v_codmod  TO  /pws/zycie465-codmod,

        'D'       TO  /pws/zycie465-tpgto,

        'I'       TO  /pws/zycie465-status.

  MODIFY /pws/zycit465 FROM /pws/zycie465.

  v_status = 0.

  IF sy-subrc EQ 0.

    MESSAGE s015 WITH text-006.

    MESSAGE s017 WITH /pws/zycie465-nradto.

...

 

...

ENDFORM.

FORM criar_documento.

  DATA: v_cont TYPE i.

  v_status = '1'.

  CLEAR v_salvo.

  LOOP AT it_tab_aux WHERE marc = 'X'.

    ADD 1 TO v_cont .

  ENDLOOP.

  IF v_cont > 1.

    MESSAGE s015 WITH text-014 text-015.

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

    EXIT.

  ENDIF.

  PERFORM verifica_saldo_da.

  IF v_sdo_da IS INITIAL.

    MESSAGE i015 WITH text-105.

    CLEAR sy-ucomm.

* << Fim da inclusão

    EXIT.

  ENDIF.

  CLEAR v_nradto.

  READ TABLE it_tab_aux WITH KEY marc = 'X'.

  IF sy-subrc EQ 0 AND NOT it_tab_aux-nrseq IS INITIAL.

    IF NOT it_tab_aux-dtincl IS INITIAL AND

                          NOT it_tab_aux-vlmi IS INITIAL AND

                          NOT it_tab_aux-dtvencto IS INITIAL.

      SELECT MAX( nradto ) FROM /pws/zycit465

             INTO v_nradto.

...

 

...

       TABLES

            itab_zyglt100           = itab_zyglt100

       EXCEPTIONS

            i_codmod_nao_encontrado = 1

            i_func_nao_encontrado   = 2

            i_zexit_nao_encontrado  = 3

            OTHERS                  = 4.

  IF sy-subrc <> 0.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

FORM rateio_despesa_por_item.

  PERFORM carrega_adicoes.

  CLEAR   it_zycit466.

  REFRESH it_zycit466.

  it_zycit466[] = it_zycit466_aux[].

  DELETE it_zycit466 WHERE vldp IS initial.

  SELECT *

         INTO  TABLE itab_zycit455

         FROM  /pws/zycit455

         WHERE nrseqda EQ /pws/zycie465-nrseq

         AND   nrseq   NE space.

  IF NOT itab_zycit455[] IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit003

           FROM  /pws/zycit003

           FOR ALL ENTRIES IN itab_zycit455

           WHERE nrseq EQ itab_zycit455-nrseq.

  ENDIF.

  CLEAR: v_qtd_nac,

         v_sld_nac,

         v_tpeso,

         v_sld_peso.

  LOOP AT itab_zycit443.

    v_index = sy-tabix.

    LOOP AT itab_zycit003 WHERE ebeln EQ itab_zycit443-ebeln

                          AND   ebelp EQ itab_zycit443-ebelp.

      v_qtd_nac = v_qtd_nac + itab_zycit003-qtd_iten.

      v_tpeso   = v_tpeso   + itab_zycit003-ntgew.

    ENDLOOP.

    IF sy-subrc IS INITIAL.

      v_sld_nac  = itab_zycit443-qtd_da - v_qtd_nac.

      v_sld_peso = itab_zycit443-ntgew    - v_tpeso.

      IF v_sld_nac IS INITIAL.

        DELETE itab_zycit443 INDEX v_index.

      ELSE.

        itab_zycit443-qtd_da = v_sld_nac.

        itab_zycit443-ntgew    = v_sld_peso.

        MODIFY itab_zycit443 INDEX v_index.

      ENDIF.

    ENDIF.

    CLEAR: v_qtd_nac,

           v_sld_nac,

           v_tpeso,

           v_sld_peso.

  ENDLOOP.

  DESCRIBE TABLE itab_zycit443 LINES v_linha.

  SELECT * FROM /pws/zycit039

         INTO TABLE itab_zycit039

         WHERE codmod EQ 'D' AND

               land1  EQ t001-land1.

  SELECT SINGLE * FROM /pws/zycit062

       WHERE regio = adrc-region.

  CLEAR: v_tot,

         v_tpeso.

  LOOP AT itab_zycit443.

    v_tot = v_tot +

            ( itab_zycit443-netpr * itab_zycit443-qtd_da ).

    v_tpeso = v_tpeso + itab_zycit443-ntgew.

  ENDLOOP.

  CLEAR   it_zycit466_itens.

  REFRESH it_zycit466_itens.

  LOOP AT it_zycit466.

    CLEAR: v_tot_desp,

           v_vldp.

    SELECT SINGLE *  FROM /pws/zycit019

      WHERE tpdesp EQ it_zycit466-tpdesp AND

            land1  EQ t001-land1.

    READ TABLE it_tab_aux WITH KEY nrseq  = it_zycit466-nrseq

                                   marc = 'X'.

    IF sy-subrc NE 0.

      READ TABLE it_tab_aux WITH KEY nrseq  = it_zycit466-nrseq

                                     marc = 'D'.

    ENDIF.

    LOOP AT itab_zycit443.

      v_index = sy-tabix.

      CLEAR itab_zycit039.

      READ TABLE itab_zycit039 WITH KEY

                               codigo = /pws/zycit019-codigo.

      IF v_index EQ v_linha.

        CLEAR it_zycit466_aux.

        READ TABLE it_zycit466_aux WITH KEY

                                   nrseq  = it_zycit466-nrseq

                                   tpdesp = it_zycit466-tpdesp.

        v_vldp = it_zycit466_aux-vldp - v_tot_desp.

      ELSE.

        IF NOT /pws/zycit000-flag_txsisc IS INITIAL AND

               /pws/zycit000-cod_sisc    EQ it_zycit466-tpdesp.

          CLEAR itab_zycit443_ad.

          READ TABLE itab_zycit443_ad WITH KEY

                                      ebeln = itab_zycit443-ebeln

                                      ebelp = itab_zycit443-ebelp.

          IF sy-subrc IS INITIAL.

            v_vldp = itab_zycit443_ad-vl_sisco.

          ENDIF.

        ELSE.

          IF itab_zycit039-divabs EQ 'X'.

            IF NOT v_linha IS INITIAL.

              v_vldp = it_zycit466-vldp / v_linha.

            ENDIF.

          ELSEIF itab_zycit039-peso EQ 'X'.

            IF NOT v_tpeso IS INITIAL.

              v_vldp = it_zycit466-vldp *

                       ( itab_zycit443-ntgew / v_tpeso ).

            ENDIF.

          ELSEIF itab_zycit039-proporplan EQ 'X'.

            IF NOT v_tot IS INITIAL.

              v_vldp = ( ( itab_zycit443-netpr *

                           itab_zycit443-qtd_iten ) /

                           v_tot ) *

                           it_zycit466-vldp.

            ENDIF.

          ELSE.

            CLEAR /pws/zycit020.

            SELECT SINGLE * FROM /pws/zycit020 WHERE

              regio = adrc-region AND

              codigo = /pws/zycit019-codigo AND

              baseicms EQ 'X'  AND

              land1 EQ t001-land1.

            IF sy-subrc NE 0.

              SELECT SINGLE * FROM /pws/zycit020 WHERE

                regio = space AND

                codigo = /pws/zycit019-codigo AND

                baseicms EQ 'X'  AND

                land1 EQ t001-land1.

            ENDIF.

            IF /pws/zycit020-baseicms EQ 'X'.

              IF /pws/zycit062-bs_rat_icms EQ 'CIF' .

                DATA: v_vfre LIKE /pws/zycie085-vlfre,

                      v_tfre LIKE /pws/zycie085-vlfre,

                      v_vseg LIKE /pws/zycie085-vlseg,

                      v_vfob LIKE /pws/zycie085-vlfob,

                      v_vtot LIKE /pws/zycie085-vlfob,

                      v_tseg LIKE /pws/zycie006-vlseg.

                CLEAR itab_zycit443_ad.

                READ TABLE itab_zycit443_ad WITH KEY

                                            ebeln = itab_zycit443-ebeln

                                        ebelp = itab_zycit443-ebelp.

                IF sy-subrc EQ 0.

                  PERFORM taxa_converte USING  /pws/zycie442-waersfob

                                               /pws/zycie442-dttax

                                               t001-land1

                                        CHANGING  v_taxa.

                  IF NOT v_taxa IS INITIAL.

                    v_vfre = itab_zycit443_ad-vlfre / v_taxa.

                    v_vseg = itab_zycit443_ad-vlseg / v_taxa.

                  ENDIF.

                  v_vfob = itab_zycit443_ad-vlfob.

                  v_tseg = itab_zycit443_ad-vlseg.

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

                    PERFORM taxa_converte USING

                            /pws/zycie442-waersfre

                                  /pws/zycie442-dttax

                                  t001-land1

                           CHANGING  v_taxa.

                    v_tfre = /pws/zycie442-vlfre * v_taxa.

                    PERFORM taxa_converte USING

                            /pws/zycie442-waersfob

                                  /pws/zycie442-dttax

                                  t001-land1

                           CHANGING  v_taxa.

                    IF NOT v_taxa IS INITIAL.

                      v_tfre = v_tfre / v_taxa.

                    ENDIF.

                  ELSE.

                    v_tfre = /pws/zycie442-vlfre.

                  ENDIF.

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

                  IF NOT v_vtot IS INITIAL.

                    v_vldp =  itab_zycit443-netpr *

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

                  ENDIF.

                ENDIF.

              ELSE.

                IF NOT v_tot IS INITIAL.

                  v_vldp =  it_zycit466-vldp *

                            ( (  itab_zycit443-netpr *

                                 itab_zycit443-qtd_da ) / v_tot ).

                ENDIF.

              ENDIF.

            ELSE.

              v_vldp =  it_zycit466-vldp *

                        ( (  itab_zycit443-netpr *

                             itab_zycit443-qtd_da ) / v_tot ).

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.

      it_zycit466_itens       = it_zycit466.

      it_zycit466_itens-ebeln = itab_zycit443-ebeln.

      it_zycit466_itens-ebelp = itab_zycit443-ebelp.

      it_zycit466_itens-vldp  = v_vldp.

      APPEND it_zycit466_itens.

      CLEAR  it_zycit466_itens.

      v_tot_desp = v_tot_desp + v_vldp.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM taxa_converte USING    p_waers

                            p_data

                            p_land1

                   CHANGING p_taxa.

  CLEAR: p_taxa.

  DATA:    v_moeda LIKE tcurc-/pws/codmo.

  SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

         waers = p_waers.

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM /pws/zycit174 INTO /pws/zycit174 WHERE

           codconver = v_moeda    AND

           vigen_inicio <= p_data AND

           vigen_fim    >= p_data AND

           land1 = p_land1.

    IF sy-subrc EQ 0.

      p_taxa = /pws/zycit174-txconver.

    ELSE.

      p_taxa = '1'.

    ENDIF.

  ENDIF.

ENDFORM.

FORM carrega_adicoes.

  LOOP AT it_zycit466_aux

       WHERE ( tpdesp = '001' OR

               tpdesp = '002' OR

               tpdesp = '003' OR

               tpdesp = /pws/zycit000-cod_sisc OR

               tpdesp = /pws/zycit000-cod_pis  OR

               tpdesp = /pws/zycit000-cod_cofins ) AND

               vldp   > 0.

  ENDLOOP.

  IF sy-subrc IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit443_ad

           FROM  /pws/zycit443

           WHERE nrseqda EQ /pws/zycie465-nrseq.

    IF NOT sy-subrc IS INITIAL.

      MESSAGE e015 WITH text-083 text-084.

    ELSE.

      CLEAR: v_tot_ii,

             v_tot_ipi,

             v_tot_icms,

             v_tot_pis,

             v_tot_cofins.

      LOOP AT itab_zycit443_ad.

        v_tot_ii     = itab_zycit443_ad-vlii     + v_tot_ii.

        v_tot_ipi    = itab_zycit443_ad-vlipi    + v_tot_ipi.

        v_tot_icms   = itab_zycit443_ad-vlicms   + v_tot_icms.

        v_tot_pis    = itab_zycit443_ad-vlpis    + v_tot_pis.

        v_tot_cofins = itab_zycit443_ad-vlcofins + v_tot_cofins.

      ENDLOOP.

      IF NOT itab_zycit443_ad[] IS INITIAL.

        SELECT * FROM /pws/zycit451 INTO TABLE itab_zycit451

               FOR ALL ENTRIES IN itab_zycit443_ad

               WHERE nrseqda = itab_zycit443_ad-nrseqda.

      ENDIF.

      LOOP AT itab_zycit451.

        LOOP AT itab_zycit443_ad WHERE adicao EQ itab_zycit451-adicao.

          itab_zycit451-nr_itens = itab_zycit451-nr_itens + 1.

        ENDLOOP.

        MODIFY itab_zycit451.

      ENDLOOP.

      READ TABLE it_zycit466_aux WITH KEY

                                 tpdesp = /pws/zycit000-cod_sisc.

      IF sy-subrc EQ 0 AND it_zycit466_aux-vldp GT 0.

        DESCRIBE TABLE itab_zycit451 LINES v_line.

        v_sisco1 = ( it_zycit466_aux-vldp -

                     /pws/zycit000-txsis_fix ) / v_line.

        v_sisco2 = /pws/zycit000-txsis_fix / v_line.

        v_sisco3 = v_sisco1 + v_sisco2.

        LOOP AT itab_zycit451.

          CLEAR: v_lines,

                 v_sisco_tot.

          v_sisco_item = v_sisco3 / itab_zycit451-nr_itens.

          LOOP AT itab_zycit443_ad WHERE adicao EQ itab_zycit451-adicao.

            v_lines = v_lines + 1.

            IF v_lines EQ itab_zycit451-nr_itens.

              itab_zycit443_ad-vl_sisco = v_sisco3 - v_sisco_tot.

            ELSE.

              itab_zycit443_ad-vl_sisco = v_sisco_item.

              v_sisco_tot = v_sisco_tot + v_sisco_item.

            ENDIF.

            MODIFY itab_zycit443_ad.

          ENDLOOP.

        ENDLOOP.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

FORM verifica_saldo_da.

  CLEAR it_tab_aux.

  READ TABLE it_tab_aux WITH KEY marc = 'X'.

  CLEAR itab_zycit443.

  FREE  itab_zycit443.

  SELECT *

         INTO  TABLE itab_zycit443

         FROM  /pws/zycit443

         WHERE nrseqda EQ it_tab_aux-nrseq.

  CLEAR itab_zycit467_aux.

  FREE  itab_zycit467_aux.

  IF NOT itab_zycit443[] IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit467_aux

           FROM  /pws/zycit467

           FOR ALL ENTRIES IN itab_zycit443

           WHERE ebeln EQ itab_zycit443-ebeln

           AND   ebelp EQ itab_zycit443-ebelp.

  ENDIF.

  CLEAR: v_qtd_nac,

         v_tot_da,

         v_sdo_da.

  LOOP AT itab_zycit443.

    v_tot_da = v_tot_da + itab_zycit443-qtd_iten.

  ENDLOOP.

  LOOP AT itab_zycit467_aux.

    v_qtd_nac = v_qtd_nac + itab_zycit467_aux-qtd_nac.

  ENDLOOP.

  v_sdo_da = v_tot_da - v_qtd_nac.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI072TOP

 

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

INCLUDE:

  /pws/mzyci072oo,

  /pws/mzyci072x01.

TABLES:

          /pws/zycit019,

          /pws/zycit046,

          lfa1,

* >> Início da inclusão:

          /pws/zycit020,

          /pws/zycit062,

          /pws/zycit174,

* << Fim da inclusão

          /pws/zycit100,

          /pws/zyglt340,

          /pws/zyglt343,

          /pws/zycit246,

          /pws/zycit244,

          j_1bbranch,

          adrc,

          t001,

          /pws/zycit363,

          /pws/zycit417.

...

 

...

        prctr      LIKE ekkn-prctr,

        werks   LIKE   /pws/zycit443-werks,

      END OF it_relat.

DATA: BEGIN OF itab_zycit116 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit116.

DATA nr_itens TYPE i.

DATA: END OF itab_zycit116.

DATA: BEGIN OF itab_zyglt100 OCCURS 10.

        INCLUDE STRUCTURE /pws/zyglt100.

DATA: END OF itab_zyglt100.

* >> Início da inclusão:

DATA: itab_zycit455     LIKE /pws/zycit455   OCCURS 0 WITH HEADER LINE,

      itab_zycit003     TYPE /pws/zycit003   OCCURS 0 WITH HEADER LINE,

      it_zycit466_itens LIKE it_zycit466_aux OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF itab_zycit443_ad OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit443.

DATA vl_sisco LIKE /pws/zycit049-vldp.

DATA: END OF itab_zycit443_ad.

DATA: BEGIN OF itab_zycit451 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit451.

DATA nr_itens TYPE i.

DATA: END OF itab_zycit451.

DATA: BEGIN OF itab_zycit467_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit467.

DATA: END   OF itab_zycit467_aux.

DATA:

      v_linha        TYPE sy-tabix,

      v_line         LIKE sy-tabix,

      v_lines        LIKE sy-tabix,

      v_index        LIKE sy-tabix,

      v_tpeso        LIKE /pws/zycit443-ntgew,

      v_sld_peso     LIKE /pws/zycit443-ntgew,

      v_tot          LIKE /pws/zycit443-netpr,

      v_qtd_nac      LIKE /pws/zycit003-qtd_iten,

      v_tot_da       LIKE /pws/zycit003-qtd_iten,

      v_sdo_da       LIKE /pws/zycit467-qtd_nac,

      v_sld_nac      LIKE /pws/zycit003-qtd_iten,

      v_taxa         LIKE t059z-qsatz,

      v_tot_ii       LIKE /pws/zycit443-vlii,

      v_tot_ipi      LIKE /pws/zycit443-vlipi,

      v_tot_icms     LIKE /pws/zycit443-vlicms,

      v_tot_pis      LIKE /pws/zycit443-vlpis,

      v_tot_cofins   LIKE /pws/zycit443-vlcofins,

      v_sisco1       LIKE /pws/zycit049-vldp,

      v_sisco2       LIKE /pws/zycit049-vldp,

      v_sisco3       LIKE /pws/zycit049-vldp,

      v_sisco_item   LIKE /pws/zycit049-vldp,

      v_sisco_tot    LIKE /pws/zycit049-vldp.

* << Fim da inclusão

DATA:  BEGIN OF  wa_descdesp,

        lifnr    LIKE lfa1-lifnr,

        name1    LIKE lfa1-name1,

       END  OF   wa_descdesp.

DATA: BEGIN OF it_code OCCURS 10,

        fcode LIKE rsmpe-func,

      END OF it_code.

DATA: ok_code     LIKE  sy-ucomm,

      wa_cols     TYPE cxtab_column,

      v_campo(20),

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI072X01

 

...

DATA: waers     LIKE  /pws/zycit442-waers,

      marc.

DATA: END OF  it_tab_aux.

DATA: it_zycit466  LIKE /pws/zycit466 OCCURS 0 WITH HEADER LINE.

DATA: BEGIN OF it_zycit466_aux OCCURS 0.

        INCLUDE STRUCTURE it_zycit466.

DATA:   mark.

DATA: END OF it_zycit466_aux.

DATA: e_subrc VALUE '0' ,

      v_vldp  LIKE /pws/zyglt342-valorinc.

* >> Início da inclusão:

DATA:

  v_tot_desp   LIKE /pws/zycit466-vldp.

* << Fim da inclusão

DATA: END OF COMMON PART.

 

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

Modificações efetuadas em REPS /PWS/MZYCI075F01

 

...

          APPEND it_zycit461_aux.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDIF.

  IF /pws/zycie459-dtacerto IS INITIAL    OR

     /pws/zycie459-dtacerto EQ '        ' OR

     /pws/zycie459-dtacerto EQ '00000000'.

    /pws/zycie459-dtacerto = sy-datum .

  ENDIF.

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

  IF /pws/zycie459-nrpres IS INITIAL.

    LOOP AT it_zycit461_aux.

      v_line = sy-tabix.

      CLEAR it_zycit461.

      READ TABLE it_zycit461 WITH KEY

                             tpdesp = it_zycit461_aux-tpdesp.

      IF sy-subrc IS INITIAL.

        it_zycit461_aux-vldp    = it_zycit461-vldp.

        it_zycit461_aux-vldpiva = it_zycit461-vldpiva.

        MODIFY it_zycit461_aux INDEX v_line.

      ENDIF.

    ENDLOOP.

  ELSE.

    CLEAR: v_tot_vldp,

           v_tot_vldpiva.

    LOOP AT it_zycit461_aux.

      v_line = sy-tabix.

      CLEAR: v_tot_vldp,

             v_tot_vldpiva.

      LOOP AT it_zycit461 WHERE tpdesp EQ it_zycit461_aux-tpdesp.

        v_tot_vldp    = v_tot_vldp    + it_zycit461-vldp.

        v_tot_vldpiva = v_tot_vldpiva + it_zycit461-vldpiva.

      ENDLOOP.

      IF sy-subrc IS INITIAL.

        it_zycit461_aux-vldp    = v_tot_vldp.

        it_zycit461_aux-vldpiva = v_tot_vldpiva.

        MODIFY it_zycit461_aux INDEX v_line.

        CLEAR: v_tot_vldp,

               v_tot_vldpiva.

      ENDIF.

    ENDLOOP.

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM select_tables.

  SELECT SINGLE * FROM  /pws/zycit459

           INTO  /pws/zycie459

           WHERE nrseqda  EQ it_tab_aux-nrseqda

             AND nradto EQ it_tab_aux-nradto

             AND nrpres EQ it_tab_aux-nrpres.

  SELECT SINGLE * FROM j_1bbranch

    WHERE bukrs = /pws/zycie459-bukrs

     AND branch = /pws/zycie459-j_1bbranch.

...

 

...

  LOOP AT it_zycit461_aux.

    MOVE: it_zycit461_aux-tpdesp  TO  /pws/zycie461-tpdesp,

          it_zycit461_aux-descr   TO  /pws/zycie461-descr.

    IF it_zycit461_aux-vldp >= 0.

      IF t001-land1 EQ 'AR'.

        v_vldp = v_vldp + it_zycit461_aux-vldpiva.

      ELSE.

        v_vldp = v_vldp + it_zycit461_aux-vldp.

      ENDIF.

    ENDIF.

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

    MODIFY it_zycit461_aux.

* << Fim da exclusão

  ENDLOOP.

  MOVE: v_vldp TO /pws/zycie459-totdep.

  IF t001-land1 NE 'AR'.

    IF /pws/zycie459-docfat IS INITIAL.

      v_total_dep = /pws/zycie459-totdep.

      LOOP AT itab_imposto.

        IF itab_imposto-vl_imposto > 0.

          v_total_dep = v_total_dep -  itab_imposto-vl_imposto.

        ELSE.

          v_total_dep = v_total_dep +  itab_imposto-vl_imposto.

...

 

...

  CLEAR t_contas.

  REFRESH t_contas.

  PERFORM determina_contas.

  SORT t_contas.

  DELETE ADJACENT DUPLICATES FROM t_contas.

  IF /pws/zycie459-forndes EQ 'X'.

    CLEAR /pws/zycie459-zlsch.

  ENDIF.

ENDFORM.

FORM salva_dados.

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

  DATA: v_nrpres  LIKE /pws/zycit459-nrpres,

        v_save.

* << Fim da exclusão

  CLEAR: v_neg.

  SORT it_zycit461_aux BY nrseqda nradto tpdesp.

  LOOP AT it_zycit461_aux WHERE vldp < 0.

    MESSAGE e015 WITH text-054 text-081.

    CLEAR ok_code.

  ENDLOOP.

  IF /pws/zycie459-totdep IS INITIAL AND /pws/zycie459-vlmi IS INITIAL.

    MESSAGE e015 WITH text-054.

    CLEAR ok_code.

  ENDIF.

...

 

...

    MESSAGE i015 WITH text-033 text-035.

    CLEAR ok_code.

    v_status = 1.

    EXIT.

  ENDIF.

  PERFORM salva_estrategia.

  IF v_estrat = 'X' AND v_lib NE 'X'.

    MESSAGE i015 WITH text-088.

    EXIT.

  ENDIF.

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

  LOOP AT it_zycit461_aux.

    READ TABLE it_tab_aux WITH KEY nrseqda  = it_zycit461_aux-nrseqda

                                     marc = 'X'.

    IF sy-subrc NE 0.

      READ TABLE it_tab_aux WITH KEY nrseqda  = it_zycit461_aux-nrseqda

                                       marc = 'D'.

    ENDIF.

    CLEAR: itab_zycit459, v_totdep, v_vldf, v_nrpres, v_value.

    IF /pws/zycie459-nrpres IS INITIAL.

      SELECT MAX( nrpres ) FROM /pws/zycit459 INTO v_nrpres.

      v_value =  v_nrpres + 1.

    ELSE.

      v_value = /pws/zycie459-nrpres.

    ENDIF.

    SELECT SINGLE * FROM /pws/zycit461

           WHERE nrseqda  = it_zycit461_aux-nrseqda

             AND nradto = v_value

             AND tpdesp = it_zycit461_aux-tpdesp.

    IF NOT it_zycit461_aux-vldp IS INITIAL

        OR sy-subrc EQ 0

        AND it_zycit461_aux-vldp >= 0.

* << Fim da exclusão

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

  PERFORM rateio_despesa_por_item.

* << Fim da inclusão

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

      MOVE: it_tab_aux-nrseqda      TO /pws/zycie461-nrseqda,

            v_value                 TO /pws/zycie461-nradto,

            it_tab_aux-embarca      TO /pws/zycie461-embarca,

            it_tab_aux-waers        TO /pws/zycie461-waers,

            it_zycit461_aux-tpdesp  TO /pws/zycie461-tpdesp,

            it_zycit461_aux-vldp    TO /pws/zycie461-vldp,

            it_zycit461_aux-iva     TO /pws/zycie461-iva,

            it_zycit461_aux-vldpiva TO /pws/zycie461-vldpiva,

            it_zycit461_aux-descr  TO /pws/zycie461-descr.

      MODIFY /pws/zycit461 FROM /pws/zycie461.

    ELSE.

      UPDATE /pws/zycit461 SET embarca  = it_tab_aux-embarca

                          waers    = it_tab_aux-waers

                          vldp     = it_zycit461_aux-vldp

                          descr    = it_zycit461_aux-descr

                          iva      = it_zycit461_aux-iva

                          vldpiva  = it_zycit461_aux-vldpiva

                    WHERE nrseqda  = it_tab_aux-nrseqda AND

                          tpdesp   = it_zycit461_aux-tpdesp AND

                          nradto   = it_tab_aux-nradto.

    ENDIF.

    IF it_zycit461_aux-vldp < 0.

      MOVE: 1 TO v_neg.

    ENDIF.

  ENDLOOP.

* << Fim da exclusão

  CLEAR: itab_zycit459, v_totdep, v_vldf, v_value, v_nrpres .

  MOVE: /pws/zycie459-vlmi   TO v_vlmi_tot, /pws/zycie459-totdep TO

 v_totdep_tot.

  LOOP AT itab_zycit459 WHERE nrseqda = /pws/zycie459-nrseqda

                        AND ( marc  = 'X' OR marc = 'D' ).

    IF /pws/zycie459-nrpres IS INITIAL.

      SELECT MAX( nrpres ) FROM /pws/zycit459 INTO v_nrpres.

      v_value =  v_nrpres + 1.

    ELSE.

      v_value = /pws/zycie459-nrpres.

...

 

...

  IF v_param_rateio IS INITIAL.

    PERFORM visualiza_rateio.

  ELSE.

    MESSAGE i013 WITH text-090.

  ENDIF.

  DESCRIBE TABLE it_item LINES v_lines.

  LOOP AT it_zycit461_aux.

    LOOP AT it_item.

      CLEAR v_vldp_rat.

      READ TABLE it_zycit443 WITH KEY

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

                         nrseq = it_item-nrseq

* << Fim da exclusão

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

                         nrseqda = it_item-nrseq

* << Fim da inclusão

                         ebeln = it_item-ebeln

                         ebelp = it_item-ebelp.

      CLEAR it_lanca.

      v_index = sy-tabix.

      READ TABLE it_item_aux2 WITH KEY nrseq = /pws/zycie459-nrseqda.

      IF sy-subrc EQ 0.

        it_lanca-nrseq  = it_item-nrseq .

        it_lanca-gsber  = it_item-gsber .

        it_lanca-matuse = it_item-matuse.

        it_lanca-vlitem = it_item-vlitem.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI075F02

 

...

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'

         EXPORTING

              input  = v_belnr

         IMPORTING

              output = v_belnr2

         EXCEPTIONS

              OTHERS = 1.

  ENDIF.

ENDFORM.

FORM cria_prestacao.

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

  PERFORM verifica_saldo_da.

  IF v_sdo_da IS INITIAL.

    MESSAGE i015 WITH text-111.

    CLEAR ok_code.

    EXIT.

  ENDIF.

* << Fim da inclusão

  CLEAR ok_code.

  DATA: v_embant LIKE itab_zycit459-nrseqda,

        v_privez VALUE 'S'.

  LOOP AT itab_zycit459 WHERE marc = 'X'.

    IF NOT itab_zycit459-nrpres IS INITIAL.

      MESSAGE s061 WITH text-049 itab_zycit459-nradto text-050.

      LEAVE TO SCREEN 200.

    ENDIF.

    IF v_privez = 'S'.

      v_embant = itab_zycit459-nrseqda.

...

 

...

         FROM lfa1

         WHERE lifnr  = /pws/zycie459-despach.

  IF sy-tcode EQ '/PWS/ZYCI071_L' OR sy-tcode EQ '/PWS/ZYCI071_A'.

    SELECT SINGLE name1

       INTO v_desc_forn

       FROM lfa1

       WHERE lifnr  = /pws/zycie459-despach.

  ENDIF.

ENDFORM.

FORM verifica_qtd_da.

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

  DATA: v_qtd_nac TYPE /pws/zycit003-qtd_iten,

        v_qtd_desp TYPE /pws/zycit003-qtd_iten.

* << Fim da exclusão

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

  DATA: v_qtd_nac  TYPE /pws/zycit461-netpr_da,

        v_qtd_desp TYPE /pws/zycit461-netpr_da.

* << Fim da inclusão

  CLEAR : itab_zycit443[],

          itab_zycit455[],

          itab_zycit003[],

          itab_zycit036[],

          v_qtd_da.

  REFRESH : itab_zycit443[],

            itab_zycit455[],

            itab_zycit003[],

            itab_zycit036[].

  SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443

  WHERE nrseqda = /pws/zycie459-nrseqda.

  SELECT * FROM /pws/zycit455 INTO TABLE itab_zycit455

  WHERE nrseqda = /pws/zycie459-nrseqda

  AND  nrseq NE space.

  IF NOT itab_zycit455[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

      FOR ALL ENTRIES IN itab_zycit455

      WHERE nrseq EQ itab_zycit455-nrseq.

  ENDIF.

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

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036

    FOR ALL ENTRIES IN itab_zycit003

    WHERE nrseq EQ itab_zycit003-nrseq.

* << Fim da exclusão

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

  LOOP AT itab_zycit443.

    READ TABLE it_zycit461 WITH KEY

                           nrseqda = itab_zycit443-nrseqda

                           ebeln   = itab_zycit443-ebeln

                           ebelp   = itab_zycit443-ebelp.

    IF NOT sy-subrc IS INITIAL.

      it_zycit461-ebeln = itab_zycit443-ebeln.

      it_zycit461-ebelp = itab_zycit443-ebelp.

      APPEND it_zycit461.

* << Fim da inclusão

  ENDIF.

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

  LOOP AT itab_zycit443.

* << Fim da exclusão

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

  ENDLOOP.

  LOOP AT it_zycit461 .

    v_index = sy-tabix.

    CLEAR: v_qtd_nac,

           v_qtd_da.

    LOOP AT itab_zycit443 WHERE ebeln EQ it_zycit461-ebeln

                          AND   ebelp EQ it_zycit461-ebelp.

* << Fim da inclusão

    v_qtd_da = v_qtd_da + itab_zycit443-qtd_da.

  ENDLOOP.

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

  LOOP AT itab_zycit003.

    READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit003-nrseq

                                    ebeln = itab_zycit003-ebeln

                                    ebelp = itab_zycit003-ebelp.

    IF sy-subrc EQ 0.

* << Fim da exclusão

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

    LOOP AT itab_zycit003 WHERE ebeln EQ it_zycit461-ebeln

                          AND   ebelp EQ it_zycit461-ebelp.

* << Fim da inclusão

      v_qtd_nac = v_qtd_nac + itab_zycit003-qtd_iten .

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

    ENDIF.

* << Fim da exclusão

  ENDLOOP.

  IF NOT v_qtd_da IS INITIAL.

    IF v_qtd_da GT v_qtd_nac.

      v_qtd_desp = v_qtd_nac / ( v_qtd_da - v_qtd_nac ).

    ELSE.

      clear v_qtd_desp.

    ENDIF.

  ENDIF.

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

  LOOP AT it_zycit461 .

* << Fim da exclusão

    IF NOT v_qtd_desp IS INITIAL.

      it_zycit461-netpr_da =   it_zycit461-vldp *  v_qtd_desp .

    ELSE.

      IF NOT v_qtd_da IS INITIAL.

        it_zycit461-netpr_da =   it_zycit461-vldp /  v_qtd_da .

      ENDIF.

    ENDIF.

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

    MODIFY it_zycit461.

* << Fim da exclusão

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

    MODIFY it_zycit461 INDEX v_index.

* << Fim da inclusão

  ENDLOOP.

  MODIFY /pws/zycit461 FROM TABLE it_zycit461.

ENDFORM.

* >> Início da inclusão:

FORM rateio_despesa_por_item.

  PERFORM verifica_itens.

  READ TABLE it_zycit461_aux INDEX 1.

  CLEAR itab_zycit443.

  FREE  itab_zycit443.

  SELECT *

         INTO  TABLE itab_zycit443

         FROM  /pws/zycit443

         WHERE nrseqda EQ it_zycit461_aux-nrseqda.

  CLEAR   it_zycit461.

  REFRESH it_zycit461.

  it_zycit461[] = it_zycit461_aux[].

  DELETE it_zycit461 WHERE vldp IS initial.

  SELECT *

         INTO  TABLE itab_zycit455

         FROM  /pws/zycit455

         WHERE nrseqda EQ /pws/zycie459-nrseqda

         AND   nrseq   NE space.

  IF NOT itab_zycit455[] IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit003

           FROM  /pws/zycit003

           FOR ALL ENTRIES IN itab_zycit455

           WHERE nrseq EQ itab_zycit455-nrseq.

  ENDIF.

  CLEAR: v_qtd_nac,

         v_sld_nac,

         v_tpeso,

         v_sld_peso.

  LOOP AT itab_zycit443.

    v_index = sy-tabix.

    LOOP AT itab_zycit003 WHERE ebeln EQ itab_zycit443-ebeln

                          AND   ebelp EQ itab_zycit443-ebelp.

      v_qtd_nac    = v_qtd_nac    + itab_zycit003-qtd_iten.

      v_tpeso      = v_tpeso      + itab_zycit003-ntgew.

    ENDLOOP.

    IF sy-subrc IS INITIAL.

      v_sld_nac  = itab_zycit443-qtd_da - v_qtd_nac.

      v_sld_peso = itab_zycit443-ntgew  - v_tpeso.

      IF v_sld_nac IS INITIAL.

        DELETE itab_zycit443 INDEX v_index.

      ELSE.

        itab_zycit443-qtd_da = v_sld_nac.

        itab_zycit443-ntgew  = v_sld_peso.

        MODIFY itab_zycit443 INDEX v_index.

      ENDIF.

    ENDIF.

    CLEAR: v_qtd_nac,

           v_sld_nac,

           v_tpeso,

           v_sld_peso.

  ENDLOOP.

  DESCRIBE TABLE itab_zycit443 LINES v_linha.

  SELECT * FROM /pws/zycit039

         INTO TABLE itab_zycit039

         WHERE codmod EQ 'D' AND

               land1  EQ t001-land1.

  SELECT SINGLE * FROM /pws/zycit062

       WHERE regio = adrc-region.

  CLEAR: v_tot,

         v_tpeso.

  LOOP AT itab_zycit443.

    v_tot = v_tot +

            ( itab_zycit443-netpr * itab_zycit443-qtd_da ).

    v_tpeso = v_tpeso + itab_zycit443-ntgew.

  ENDLOOP.

  LOOP AT it_zycit461.

    CLEAR: v_tot_desp,

           v_vldp.

    SELECT SINGLE land1 FROM t001 INTO t001-land1

              WHERE bukrs EQ /pws/zycbt007-bukrs.

    SELECT SINGLE *  FROM /pws/zycit019

      WHERE tpdesp EQ it_zycit461-tpdesp AND

            land1  EQ t001-land1.

    READ TABLE it_tab_aux WITH KEY nrseqda  = it_zycit461-nrseqda

                                     marc = 'X'.

    IF sy-subrc NE 0.

      READ TABLE it_tab_aux WITH KEY nrseqda  = it_zycit461-nrseqda

                                       marc = 'D'.

    ENDIF.

    CLEAR: itab_zycit459, v_totdep, v_vldf, v_nrpres, v_value.

    IF /pws/zycie459-nrpres IS INITIAL.

      SELECT MAX( nrpres ) FROM /pws/zycit459 INTO v_nrpres.

      v_value =  v_nrpres + 1.

    ELSE.

      v_value = /pws/zycie459-nrpres.

    ENDIF.

    LOOP AT itab_zycit443.

      v_index = sy-tabix.

      CLEAR itab_zycit039.

      READ TABLE itab_zycit039 WITH KEY

                               codigo = /pws/zycit019-codigo.

      IF v_index EQ v_linha.

        CLEAR it_zycit461_aux.

        READ TABLE it_zycit461_aux WITH KEY

                                   nrseqda = it_zycit461-nrseqda

                                   tpdesp  = it_zycit461-tpdesp.

        v_vldp = it_zycit461_aux-vldp - v_tot_desp.

      ELSE.

        IF NOT /pws/zycit000-flag_txsisc IS INITIAL AND

               /pws/zycit000-cod_sisc    EQ it_zycit461-tpdesp.

          CLEAR itab_zycit443_ad.

          READ TABLE itab_zycit443_ad WITH KEY

                                      ebeln = itab_zycit443-ebeln

                                      ebelp = itab_zycit443-ebelp.

          IF sy-subrc IS INITIAL.

            v_vldp = itab_zycit443_ad-vl_sisco.

          ENDIF.

        ELSE.

          IF itab_zycit039-divabs EQ 'X'.

            IF NOT v_linha IS INITIAL.

              v_vldp = it_zycit461-vldp / v_linha.

            ENDIF.

          ELSEIF itab_zycit039-peso EQ 'X'.

            IF NOT v_tpeso IS INITIAL.

              v_vldp = it_zycit461-vldp *

                       ( itab_zycit443-ntgew / v_tpeso ).

            ENDIF.

          ELSEIF itab_zycit039-proporplan EQ 'X'.

            IF NOT v_tot IS INITIAL.

              v_vldp = ( ( itab_zycit443-netpr *

                           itab_zycit443-qtd_da ) /

                           v_tot ) *

                           it_zycit461-vldp.

            ENDIF.

          ELSE.

            CLEAR /pws/zycit020.

            SELECT SINGLE * FROM /pws/zycit020 WHERE

              regio = adrc-region AND

              codigo = /pws/zycit019-codigo AND

              baseicms EQ 'X'  AND

              land1 EQ t001-land1.

            IF sy-subrc NE 0.

              SELECT SINGLE * FROM /pws/zycit020 WHERE

                regio = space AND

                codigo = /pws/zycit019-codigo AND

                baseicms EQ 'X'  AND

                land1 EQ t001-land1.

            ENDIF.

            IF /pws/zycit020-baseicms EQ 'X'.

              IF /pws/zycit062-bs_rat_icms EQ 'CIF' .

                DATA: v_vfre LIKE /pws/zycie085-vlfre,

                      v_tfre LIKE /pws/zycie085-vlfre,

                      v_vseg LIKE /pws/zycie085-vlseg,

                      v_vfob LIKE /pws/zycie085-vlfob,

                      v_vtot LIKE /pws/zycie085-vlfob,

                      v_tseg LIKE /pws/zycie006-vlseg.

                CLEAR itab_zycit443_ad.

                READ TABLE itab_zycit443_ad WITH KEY

                                            ebeln = itab_zycit443-ebeln

                                            ebelp = itab_zycit443-ebelp.

                IF sy-subrc EQ 0.

                  PERFORM taxa_converte USING  /pws/zycie442-waersfob

                                                  /pws/zycie442-dttax

                                                           t001-land1

                                                     CHANGING  v_taxa.

                  IF NOT v_taxa IS INITIAL.

                    v_vfre = itab_zycit443_ad-vlfre / v_taxa.

                    v_vseg = itab_zycit443_ad-vlseg / v_taxa.

                  ENDIF.

                  v_vfob = itab_zycit443_ad-vlfob.

                  v_tseg = itab_zycit443_ad-vlseg.

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

                    PERFORM taxa_converte USING

                            /pws/zycie442-waersfre

                                  /pws/zycie442-dttax

                                  t001-land1

                           CHANGING  v_taxa.

                    v_tfre = /pws/zycie442-vlfre * v_taxa.

                    PERFORM taxa_converte USING

                            /pws/zycie442-waersfob

                                  /pws/zycie442-dttax

                                  t001-land1

                           CHANGING  v_taxa.

                    IF NOT v_taxa IS INITIAL.

                      v_tfre = v_tfre / v_taxa.

                    ENDIF.

                  ELSE.

                    v_tfre = /pws/zycie442-vlfre.

                  ENDIF.

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

                  IF NOT v_vtot IS INITIAL.

                    v_vldp =  itab_zycit443-netpr *

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

                  ENDIF.

                ENDIF.

              ELSE.

                IF NOT v_tot IS INITIAL.

                  v_vldp =  it_zycit461-vldp *

                            ( (  itab_zycit443-netpr *

                                 itab_zycit443-qtd_da ) / v_tot ).

                ENDIF.

              ENDIF.

            ELSE.

              v_vldp =  it_zycit461-vldp *

                        ( (  itab_zycit443-netpr *

                             itab_zycit443-qtd_da ) / v_tot ).

            ENDIF.

          ENDIF.

        ENDIF.

      ENDIF.

      MOVE:

            it_tab_aux-nrseqda      TO /pws/zycie461-nrseqda,

            v_value                 TO /pws/zycie461-nradto,

            itab_zycit443-ebeln     TO /pws/zycie461-ebeln,

            itab_zycit443-ebelp     TO /pws/zycie461-ebelp,

            it_tab_aux-embarca      TO /pws/zycie461-embarca,

            it_tab_aux-waers        TO /pws/zycie461-waers,

            it_zycit461-tpdesp      TO /pws/zycie461-tpdesp,

            it_zycit461-descr       TO /pws/zycie461-descr,

            v_vldp                  TO /pws/zycie461-vldp,

            it_zycit461-iva         TO /pws/zycie461-iva,

            v_vldp                  TO /pws/zycie461-vldpiva.

      MODIFY /pws/zycit461 FROM /pws/zycie461.

      v_tot_desp = v_tot_desp + v_vldp.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM taxa_converte USING    p_waers

                            p_data

                            p_land1

                   CHANGING p_taxa.

  CLEAR: p_taxa.

  DATA:    v_moeda LIKE tcurc-/pws/codmo.

  SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

         waers = p_waers.

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM /pws/zycit174 INTO /pws/zycit174 WHERE

           codconver = v_moeda    AND

           vigen_inicio <= p_data AND

           vigen_fim    >= p_data AND

           land1 = p_land1.

    IF sy-subrc EQ 0.

      p_taxa = /pws/zycit174-txconver.

    ELSE.

      p_taxa = '1'.

    ENDIF.

  ENDIF.

ENDFORM.

FORM verifica_saldo_da.

  CLEAR itab_zycit459.

  READ TABLE itab_zycit459 WITH KEY marc = 'X'.

  CLEAR itab_zycit443.

  FREE  itab_zycit443.

  SELECT *

         INTO  TABLE itab_zycit443

         FROM  /pws/zycit443

         WHERE nrseqda EQ itab_zycit459-nrseqda.

  CLEAR itab_zycit467_aux.

  FREE  itab_zycit467_aux.

  IF NOT itab_zycit443[] IS INITIAL.

    SELECT *

           INTO  TABLE itab_zycit467_aux

           FROM  /pws/zycit467

           FOR ALL ENTRIES IN itab_zycit443

           WHERE ebeln EQ itab_zycit443-ebeln

           AND   ebelp EQ itab_zycit443-ebelp.

  ENDIF.

  CLEAR: v_qtd_nac,

         v_tot_da,

         v_sdo_da.

  LOOP AT itab_zycit443.

    v_tot_da = v_tot_da + itab_zycit443-qtd_iten.

  ENDLOOP.

  LOOP AT itab_zycit467_aux.

    v_qtd_nac = v_qtd_nac + itab_zycit467_aux-qtd_nac.

  ENDLOOP.

  v_sdo_da = v_tot_da - v_qtd_nac.

ENDFORM.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCI075TOP

 

...

          bsik,

          t059z,

          t059p,

          t059minmax,

          t001,

          t030,

          t035,

          icons,

          /pws/zycbt039,

          /pws/zycit000,

* >> Início da inclusão:

          /pws/zycit020,

          /pws/zycit062,

          /pws/zycit174,

* << Fim da inclusão

          j_1bbranch,

          adrc,

          /pws/zycit212,

          /pws/zycit224,

          /pws/zycit270,

          /pws/zycit363,

          rm06b,

          t16fe,

          /pws/zyglt340,

          /pws/zycbt011.

...

 

...

DATA: END OF itab_atrib.

DATA: it_bdc LIKE bdcdata OCCURS 0 WITH HEADER LINE,

      it_msg TYPE msg_struc OCCURS 10 WITH HEADER LINE.

DATA: BEGIN OF itab_zycit263 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit263.

DATA: END OF itab_zycit263.

DATA: wa_zycit363 LIKE /pws/zycit363.

DATA: BEGIN OF itab_doc OCCURS 0,

        belnr LIKE /pws/zycie459-docfat,

END OF itab_doc.

* >> Início da inclusão:

DATA: BEGIN OF itab_zycit467_aux OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit467.

DATA: END   OF itab_zycit467_aux.

* << Fim da inclusão

DATA: wa_zyglt340_aux LIKE /pws/zyglt340.

DATA:

      wa_cols        TYPE cxtab_column,

      v_campo(20),

      v_campo1(50),

      v_valor(20),

      v_codmod(1),

      v_descricao(50),

      v_value(10) TYPE n,

      v_status(1),

...

 

...

      v_flagps(1),

      v_flagcs(1),

      v_flagcf(1),

      v_teste(1),

      v_ano          LIKE bkpf-gjahr,

      v_import(18),

      v_cgc_imp      LIKE j_1bwfield-cgc_number,

      v_desc_imp     LIKE j_1bbranch-name      ,

      v_cnpj_imp(18),

      v_tot_vldp     LIKE /pws/zycit036-vlreal,

* >> Início da inclusão:

      v_tot_vldpiva  LIKE /pws/zycit036-vlreal,

      v_nrpres       LIKE /pws/zycit459-nrpres,

      v_save,

      v_linha        TYPE sy-tabix,

      v_index        LIKE sy-tabix,

      v_tpeso        LIKE /pws/zycit443-ntgew,

      v_sld_peso     LIKE /pws/zycit443-ntgew,

      v_tot          LIKE /pws/zycit443-netpr,

      v_qtd_nac      LIKE /pws/zycit003-qtd_iten,

      v_tot_da       LIKE /pws/zycit003-qtd_iten,

      v_sdo_da       LIKE /pws/zycit467-qtd_nac,

      v_sld_nac      LIKE /pws/zycit003-qtd_iten,

* << Fim da inclusão

      v_subrc ,

      vsubrc type sy-subrc,

      v_sort(30),

      v_plan         LIKE /pws/zycit443-netpr,

      v_sort2(30),

      v_nivel_tsr_desc LIKE t036t-ktext,

      v_catir(2),

      v_catin(2),

      v_catip(2),

      v_catcs(2),

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI075X01

 

...

      v_estrat,

      v_totdep          like /pws/zyglt342-valorinc,

      v_lib,

      v_frgzu like /pws/zycIT459-frgzu,

     v_select(5),

    v_tcode like sy-tcode.

data: begin of it_code occurs 10,

        fcode like rsmpe-func,

      end of it_code.

Data: v_vldp   like  /pws/zycIT461-vldp.

* >> Início da inclusão:

DATA:

  v_tot_desp LIKE /pws/zycit461-vldp.

* << Fim da inclusão

* >> Início da exclusão:

  data: v_qtd_da type /pws/zycit443-qtd_da.

* << Fim da exclusão

* >> Início da inclusão:

DATA: v_qtd_da TYPE /pws/zycit461-netpr_da.

* << Fim da inclusão

data: itab_zycit443 type /pws/zycit443 occurs 0 with header line,

      itab_zycit455 type /pws/zycit455 occurs 0 with header line,

      itab_zycit003 type /pws/zycit003 occurs 0 with header line.

data: end of common part a.

 

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

Modificações efetuadas em REPS /PWS/MZYCI076F01

 

...

          it_tbcontrol-agrup   =  it_zycit046-lanctoa.

        ELSEIF NOT it_zycit466-banco IS INITIAL AND

                   it_zycit466-lanctoa IS INITIAL.

          it_tbcontrol-banco   =  it_zycit466-banco.

          it_tbcontrol-agrup   =  it_zycit466-lanctoa.

        ELSEIF NOT it_zycit466-banco IS INITIAL AND

               NOT it_zycit466-lanctoa IS INITIAL.

          it_tbcontrol-banco   =  it_zycit466-banco.

          it_tbcontrol-agrup   =  it_zycit466-lanctoa.

        ENDIF.

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

        APPEND it_tbcontrol.

* << Fim da exclusão

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

        COLLECT it_tbcontrol.

* << Fim da inclusão

      ENDIF.

    ENDLOOP.

  ENDLOOP.

ENDFORM.

FORM aprova_adiantamento.

  CLEAR: v_visualiza.

  SELECT SINGLE land1

    FROM t001

    INTO t001-land1

    WHERE bukrs EQ /pws/zycie465-bukrs.

...

 

...

ENDFORM.

FORM calcula_despesa.

  DESCRIBE TABLE it_despesa LINES v_lines.

  IF v_lines NE n_tabix.

    it_despesa-vltot = it_despesa-porcent * it_contabil-vldp.

  ELSE.

    it_despesa-vltot = it_despesa-porcent * it_contabil-vldp.

  ENDIF.

ENDFORM.

FORM preenche_partida_multipla.

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

  IF it_relat_aux-agrup = 'X'.

    LOOP AT it_tbcontrol WHERE mark EQ 'X'.

      v_vltot = v_vltot + it_tbcontrol-vldp.

    ENDLOOP.

  ENDIF.

* << Fim da inclusão

  LOOP AT it_relat_aux WHERE banco  = it_cabec-banco

                         AND agrup  = it_cabec-agrup

                         AND tpdesp = it_cabec-tpdesp

                         AND dtdeb  = it_cabec-dtdeb.

    it_zycbe035-mandt   = sy-mandt.

    it_zycbe035-tcode   = text-008.

    it_zycbe035-tabela  = text-009.

    it_zycbe035-cpaux   = v_cont.

    CONCATENATE /pws/zycie465-nrseq /pws/zycie465-nradto v_cont

   it_relat_aux-tpdesp

                                                           INTO v_campo.

    it_zycbe035-cpochv  = v_campo.

    it_zycbe035-bschl   = text-014.

    it_zycbe035-d_newko = it_relat_aux-credito.

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

    it_zycbe035-wrbtr   = it_relat_aux-vltot.

* << Fim da exclusão

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

    CLEAR it_tbcontrol.

    IF it_relat_aux-agrup IS INITIAL.

      READ TABLE it_tbcontrol WITH KEY

                              nrseq  = it_relat_aux-nrseq

                              tpdesp = it_cabec-tpdesp

                              dtdeb  = it_relat_aux-dtdeb

                              banco  = it_relat_aux-banco.

      it_zycbe035-wrbtr   = it_tbcontrol-vldp.

    ELSE.

      it_zycbe035-wrbtr   = v_vltot.

    ENDIF.

* << Fim da inclusão

    READ TABLE it_relat WITH KEY nrseq = it_relat_aux-nrseq.

    PERFORM verify_null_field USING it_relat-dtdeb

                                   'VALUT'

                                   text-020.

    it_zycbe035-d_valut = it_relat_aux-dtdeb.

    READ TABLE it_zycit443 WITH KEY nrseqda = it_relat-nrseq.

    IF sy-subrc EQ 0.

      it_zycbe035-d_gsber = it_zycit443-gsber.

      IF /pws/zycit000-clucro_ia = 'X'.

        READ TABLE it_ekpo WITH KEY ebeln = it_zycit443-ebeln

...

 

...

      CLEAR it_zycbe035.

      it_zycbe035-mandt   = sy-mandt.

      it_zycbe035-tcode   = text-008.

      it_zycbe035-tabela  = text-009.

      it_zycbe035-cpaux   = v_cont.

      CONCATENATE /pws/zycie465-nrseq /pws/zycie465-nradto v_cont

                                 it_relat_aux-tpdesp INTO v_campo.

      it_zycbe035-cpochv  = v_campo.

      it_zycbe035-bschl   = text-015.

      it_zycbe035-d_newko = it_relat-saknr1.

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

      IF it_relat_aux-agrup IS INITIAL.

* << Fim da inclusão

      it_zycbe035-wrbtr   = it_relat-vltot.

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

      ELSE.

        it_zycbe035-wrbtr   = v_vltot.

      ENDIF.

* << Fim da inclusão

      it_zycbe035-d_gsber = it_relat-gsber.

      IF /pws/zycit000-clucro_ia = 'X'.

        READ TABLE it_ekpo WITH KEY ebeln = it_zycit443-ebeln

                                    ebelp = it_zycit443-ebelp.

...

 

...

                                      ebelp = it_zycit443-ebelp.

        PERFORM verifica_centro_l.

        CLEAR  it_zycbe035-c_prctr.

        it_zycbe035-d_prctr = it_relat-prctr.

      ENDIF.

      MOVE v_cont TO it_relat-contador.

      MODIFY it_relat TRANSPORTING contador.

      IF t001-land1 EQ 'BR'.

        it_zycbe035-brnch   = /pws/zycie465-j_1bbranch.

      ENDIF.

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

      COLLECT it_zycbe035.

* << Fim da exclusão

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

      APPEND it_zycbe035.

* << Fim da inclusão

    ENDLOOP.

  ENDIF.

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

  SORT it_zycbe035 BY mandt tcode tabela cpochv bschl.

  DELETE ADJACENT DUPLICATES FROM it_zycbe035

                  COMPARING  bschl.

* << Fim da inclusão

ENDFORM.

FORM message_import.

  DATA: v_tabix  LIKE sy-tabix,

...

 

...

    v_atrib = it_zycbt012-zuonr.

    COLLECT it_conta_aux.

  ENDLOOP.

ENDFORM.

FORM grava_dados.

  DATA:

    v_total LIKE /pws/zycit465-vlmi.

  UPDATE /pws/zycit466 SET lanctoa  =  it_tbcontrol-agrup

                      banco    =  it_tbcontrol-banco

                      dtvencto =  it_tbcontrol-dtdeb

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

                      vldp     =  it_tbcontrol-vldp

* << Fim da exclusão

                  WHERE nrseq  =  it_tbcontrol-nrseq

                    AND nradto =  it_tbcontrol-nradto

                    AND tpdesp =  it_tbcontrol-tpdesp.

  LOOP AT it_tbcontrol.

    v_total = v_total + it_tbcontrol-vldp.

  ENDLOOP.

  UPDATE /pws/zycit465 SET vlmi = v_total

                  WHERE nrseq  =  it_tbcontrol-nrseq

                    AND nradto =  it_tbcontrol-nradto.

ENDFORM.

...

 

...

           it_zycit270.

ENDFORM.

FORM verifica_itens_embarque.

  DATA: v_desp_acum LIKE /pws/zycit036-vlreal,

        v_desp_dif  LIKE /pws/zycit036-vlreal,

        v_programa  LIKE /pws/zycit036-origem VALUE 'DCD'.

  DATA: v_ant LIKE /pws/zycit466-tpdesp,

        v_vldp LIKE /pws/zycit466-vldp.

  SELECT SINGLE * FROM t001 WHERE bukrs = /pws/zycie465-bukrs.

  SELECT SINGLE * FROM /pws/zycit000 WHERE land1 EQ t001-land1.

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

  CLEAR v_gsber.

  LOOP AT it_zycit443 WHERE NOT gsber IS initial.

  ENDLOOP.

  IF sy-subrc IS INITIAL.

    v_gsber = it_zycit443-gsber.

  ENDIF.

* << Fim da inclusão

  FREE it_item.

  LOOP AT it_zycit443 WHERE nrseqda = /pws/zycie465-nrseq.

    READ TABLE it_ekpo WITH KEY ebeln = it_zycit443-ebeln

                                ebelp = it_zycit443-ebelp.

    it_item-nrseq   = it_zycit443-nrseqda.

    it_item-ebeln   = it_zycit443-ebeln.

    it_item-ebelp   = it_zycit443-ebelp.

    it_item-netpr   = it_zycit443-netpr.

    it_item-qtditem = it_zycit443-qtd_iten.

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

    IF NOT it_zycit443-gsber IS INITIAL.

* << Fim da inclusão

    it_item-gsber   = it_zycit443-gsber.

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

    ELSE.

      it_item-gsber   = v_gsber.

    ENDIF.

* << Fim da inclusão

    it_item-matuse  = it_ekpo-j_1bmatuse.

    it_item-werks   = it_zycit443-werks.

    it_item-vlitem = it_item-netpr * it_item-qtditem.

    READ TABLE itab_ekkn WITH KEY ebeln = it_zycit443-ebeln

...

 

...

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

FORM  preenche_transacoes.

  DATA:

        v_first(1)  TYPE c,

        v_desp_1 LIKE /pws/zycit019-tpdesp,

        v_descr     LIKE /pws/zycbe033-xblnr.

  DATA: it_cabec_aux2 LIKE it_cabec OCCURS 0 WITH HEADER LINE.

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

  SORT it_relat_aux BY nrseq

                       credito

                       tpdesp

                       banco

                       dtdeb.

  DELETE ADJACENT DUPLICATES FROM it_relat_aux

                             COMPARING nrseq

                                       credito

                                       tpdesp

                                       banco

                                       dtdeb.

* << Fim da inclusão

  CLEAR: it_relat_aux, it_relat, v_cont.

  LOOP AT it_relat_aux.

    MOVE: it_relat_aux-nrseq  TO  it_cabec-nrseq,

          it_relat_aux-banco  TO  it_cabec-banco,

          it_relat_aux-agrup  TO  it_cabec-agrup,

          it_relat_aux-dtdeb  TO  it_cabec-dtdeb,

          it_relat_aux-tpdesp TO  it_cabec-tpdesp.

    APPEND it_cabec.

  ENDLOOP.

  it_cabec_aux2[] = it_cabec[].

...

 

...

            i_zexit                 = p_exit

       TABLES

            itab_zyglt100           = itab_zyglt100

       EXCEPTIONS

            i_codmod_nao_encontrado = 1

            i_func_nao_encontrado   = 2

            i_zexit_nao_encontrado  = 3

            OTHERS                  = 4.

ENDFORM.

FORM verifica_qtd_da.

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

  DATA: v_qtd_nac TYPE /pws/zycit003-qtd_iten,

        v_qtd_desp TYPE /pws/zycit003-qtd_iten.

* << Fim da exclusão

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

  DATA: v_qtd_nac  TYPE /pws/zycit466-netpr_da,

        v_qtd_desp TYPE /pws/zycit466-netpr_da.

* << Fim da inclusão

  CLEAR : itab_zycit443[],

          itab_zycit455[],

          itab_zycit003[],

          itab_zycit036[],

          v_qtd_da.

  REFRESH : itab_zycit443[],

            itab_zycit455[],

            itab_zycit003[],

            itab_zycit036[].

  SELECT * FROM /pws/zycit443 INTO TABLE itab_zycit443

  WHERE nrseqda = /pws/zycie465-nrseq.

  SELECT * FROM /pws/zycit455 INTO TABLE itab_zycit455

  WHERE nrseqda = /pws/zycie465-nrseq.

  IF NOT itab_zycit455[] IS INITIAL.

    SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

      FOR ALL ENTRIES IN itab_zycit455

      WHERE nrseq EQ itab_zycit455-nrseq.

  ENDIF.

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

  IF NOT itab_zycit003[] IS INITIAL.

    SELECT * FROM /pws/zycit036 INTO TABLE itab_zycit036

    FOR ALL ENTRIES IN itab_zycit003

    WHERE nrseq EQ itab_zycit003-nrseq.

* << Fim da exclusão

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

  LOOP AT itab_zycit443.

    READ TABLE it_zycit466 WITH KEY

                           nrseq = itab_zycit443-nrseqda

                           ebeln = itab_zycit443-ebeln

                           ebelp = itab_zycit443-ebelp.

    IF NOT sy-subrc IS INITIAL.

      it_zycit466-ebeln = itab_zycit443-ebeln.

      it_zycit466-ebelp = itab_zycit443-ebelp.

      APPEND it_zycit466.

* << Fim da inclusão

  ENDIF.

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

  ENDLOOP.

* << Fim da inclusão

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

  LOOP AT itab_zycit443.

* << Fim da exclusão

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

  LOOP AT it_zycit466 .

    v_lines = sy-tabix.

    CLEAR: v_qtd_nac,

           v_qtd_da.

    LOOP AT itab_zycit443 WHERE ebeln EQ it_zycit466-ebeln

                          AND   ebelp EQ it_zycit466-ebelp.

* << Fim da inclusão

    v_qtd_da = v_qtd_da + itab_zycit443-qtd_da.

  ENDLOOP.

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

  LOOP AT itab_zycit003.

    READ TABLE itab_zycit036 WITH KEY nrseq = itab_zycit003-nrseq

                                    ebeln = itab_zycit003-ebeln

                                    ebelp = itab_zycit003-ebelp.

    IF sy-subrc EQ 0.

* << Fim da exclusão

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

    LOOP AT itab_zycit003 WHERE ebeln EQ it_zycit466-ebeln

                          AND   ebelp EQ it_zycit466-ebelp.

* << Fim da inclusão

      v_qtd_nac = v_qtd_nac + itab_zycit003-qtd_iten .

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

    ENDIF.

* << Fim da exclusão

  ENDLOOP.

  IF NOT v_qtd_da IS INITIAL.

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

      IF v_qtd_da GT v_qtd_nac.

* << Fim da inclusão

    v_qtd_desp = v_qtd_nac / ( v_qtd_da - v_qtd_nac ).

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

      ELSE.

        CLEAR v_qtd_desp.

      ENDIF.

* << Fim da inclusão

  ENDIF.

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

  LOOP AT it_zycit466 .

* << Fim da exclusão

    IF NOT it_zycit466-belnr_f02 IS INITIAL .

      IF NOT v_qtd_desp IS INITIAL.

        it_zycit466-netpr_da =   it_zycit466-vldp * v_qtd_desp.

      ELSE.

        IF NOT v_qtd_da IS INITIAL.

          it_zycit466-netpr_da =   it_zycit466-vldp / v_qtd_da.

        ENDIF.

      ENDIF.

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

      MODIFY it_zycit466.

* << Fim da exclusão

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

      MODIFY it_zycit466 INDEX v_lines.

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  MODIFY /pws/zycit466 FROM TABLE it_zycit466.

ENDFORM.

 

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

Modificações efetuadas em REPS /PWS/MZYCI076TOP

 

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

* >> Início da inclusão:

DATA  v_index.

* << Fim da inclusão

INCLUDE : /pws/mzyci076oo,

          /pws/mzyci076x01.

DATA:  gv_subscreen_0050   TYPE sy-dynnr VALUE '0051',

       gv_subscreen_0100_1 TYPE sy-dynnr,

       gv_subscreen_0300_2 TYPE sy-dynnr.

CONSTANTS: BEGIN OF gc_subscreen,

             prog     TYPE sy-dynnr VALUE '0300',

             help     TYPE sy-dynnr VALUE '0053',

           END OF gc_subscreen.

DATA:  gv_html_help TYPE REF TO cl_gui_html_viewer.

...

 

...

      v_tot_cofins   LIKE /pws/zycit443-vlcofins        ,

      vl_imp         TYPE p DECIMALS 4,

      v_total        TYPE p DECIMALS 2,

      v_line         LIKE sy-tabix               ,

      v_sort(30),

      v_sort2(30),

      v_resposta     TYPE c,

      v_erro         TYPE c,

      v_visualiza    TYPE c,

      v_banco        LIKE /pws/zycit466-banco,

* >> Início da inclusão:

      v_gsber        LIKE /pws/zycit443-gsber,

* << Fim da inclusão

      wa_cols     TYPE cxtab_column,

      v_lancto_desp,

      v_matuse    LIKE /pws/zycbe035-matuse,

      v_tot_vldp   LIKE /pws/zycit036-vlreal,

      v_valor_real LIKE /pws/zycit036-vlreal,

      v_tot LIKE /pws/zycie443-netpr,

      v_tot_real LIKE /pws/zycit443-vlreal,

      v_land1     LIKE t001-land1.

 

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

Modificações efetuadas em REPS /PWS/MZYCI076X01

 

...

DATA:   v_sgtxt LIKE bseg-sgtxt,

        v_ktosl        LIKE /pws/zyglt321-ktosl,

        v_zuonr    LIKE bseg-zuonr,

        v_xblnr    LIKE bkpf-xblnr,

        v_bktxt    LIKE bkpf-bktxt,

        v_codeven LIKE  /pws/zyglt321-codeven,

        e_subrc   VALUE '0'.

DATA: v_lib TYPE c,

      v_totdep LIKE /pws/zyglt342-valorinc,

      v_frgzu LIKE /pws/zycie008-frgzu.

* >> Início da exclusão:

  data: v_qtd_da type /pws/zycit443-qtd_da.

* << Fim da exclusão

* >> Início da inclusão:

  data: v_qtd_da type /pws/zycit466-netpr_da.

* << Fim da inclusão

DATA : itab_zycit455 TYPE /pws/zycit455 OCCURS 0 WITH HEADER LINE,

     itab_zycit003 TYPE /pws/zycit003 OCCURS 0 WITH HEADER LINE.

DATA: END OF COMMON PART a.

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI070

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 534

 

Texto: (45 caracteres)

"Não permitido solicitar DC - DA nacionalizada"

 

Comprimento máximo: 45

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI072

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 105

 

Texto: (45 caracteres)

"Não permitido solicitar DC - DA nacionalizada"

 

Comprimento máximo: 45

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI075

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 111

 

Texto: (45 caracteres)

"Não permitido solicitar PC - DA nacionalizada"

 

Comprimento máximo: 45