CE PLUS - Nota 003047

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: DI

Data/Hora da Publicação: 07/02/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 13:39:55

Descrição da Nota: ESTA NOTA CRIA A FUNÇÃO DE RECLASSIFICAÇÃO DE IA

Sintoma

é preciso fazer a variação cambial no recebimento, caso não seja feito na DI, qualquer alteração

teria que ser feita em mais de um programa.

modificação na variação cambial da DI e no recebimento.

 

 

Solução

Criada uma função para se usada no recebimento e na DI.

 

Versões Tratadas

6.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTE PARA NÃO RECLASSIFICAR IA NA DI PARA EMBARQUES A GRANEL.

Informações Complementares

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

Nota Número 03047 Data: 07/02/2007 Hora: 10:52:49

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

 

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

Nota Número              : 03047

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00026

Agrupamento              : 00151

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

Referência às notas relacionadas:

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

 

02778  - 00001 - 6.0    - 00026  - AJUSTE PARA NÃO RECLASSIFICAR IA NA DI PARA EMBARQUES A GRANEL.

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

ESTA NOTA CRIA A FUNÇÃO DE RECLASSIFICAÇÃO DE IA

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

Palavras Chave:

IA - DI - RECEBIMENTO - FUNÇÃO

 

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

Objetos da nota:

FUNC /PWS/ZYCI_RECLASSIFICACAO_IA

REPS /PWS/LZYCIGF2F01

REPS /PWS/LZYCIGF2TOP

REPS /PWS/LZYCIGF2UXX

REPS /PWS/MZYCI023F01

REPS /PWS/MZYCI023F04

 

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

MODIFICAR MÓDULO DE FUNÇÃO: /PWS/ZYCI_RECLASSIFICACAO_IA

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/ZYCIGF2

TEXTO BREVE: Reclassificação de IA p/ DI e Recebimento

 

TIPO DE EXECUÇÃO:

(X) - MÓDULO DE FUNÇÃO NORMAL

     (X) - INÍCIO IMEDIATO

 

 

IMPORTAÇÃO:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  VL. PROPOSTO OPCIONAL TRANSF. TEXT

I_ZYCIT001 TYPE /PWS/ZYCIT001                 X                CI - Embarque de Importação

V_MODO       TYPE /PWS/ZYCBT039-MODO                           Campo de texto do comprimento 1

I_PROGRAMA TYPE CHAR3                                         Campo de 3 bytes de comprimento

 

 

EXPORTAÇÃO:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA   TRANSF.  TEXTO BREVE

 

E_BELNR_F_05 TYPE BELNR                     Atribuição nºs item doc.material - doc.compra

E_BELNR_F_51 TYPE BELNR                     Atribuição nºs item doc.material - doc.compra

 

 

TABELAS:

NOME PARAM.   ATRIB. TIPO REFERÊNCIA  OPCIONAL TEXTO BREVE

 

T_ZYCIT100 LIKE /PWS/ZYCIT100    X        CI - Itens da DSI

T_ZYCIT003 LIKE /PWS/ZYCIT003    X        CI - Itens Pedidos por Embarque

T_ZYCBT032 LIKE /PWS/ZYCBT032    X        GL -  Log de Execução de Transações.

ITAB_VARIACAO LIKE /PWS/ZYCIT085    X        CI - DI 2

 

EXCEÇÕES:

EXCEÇÃO                    TEXTO BREVE

TABLE_INITIAL             Tabela de cabeçalho do embarque vazia

EXISTE_RECEBIMENTO      Se o reclassificação de ia for na DI e já houver recebimento não faz IA

FLAG_RECLASSIFICACAO      Se na tabela IT000 não estiver flegado, não faz variação

DADOS_DI_INICIAL      Se adata ou o numero da di for inicial, não faz variação

 

 

Modificações efetuadas em FUNC /PWS/ZYCI_RECLASSIFICACAO_IA

****************************************************************************************************

******Criada a função de reclassificação de IA *****************************************************

****************************************************************************************************

 

 

FUNCTION /pws/zyci_reclassificacao_ia.

*"----------------------------------------------------------------------

*"*"Interface local:

*"  IMPORTING

*"     REFERENCE(I_ZYCIT001) TYPE  /PWS/ZYCIT001

*"     REFERENCE(V_MODO) TYPE  /PWS/ZYCBT039-MODO OPTIONAL

*"     REFERENCE(I_PROGRAMA) TYPE  CHAR3

*"  EXPORTING

*"     REFERENCE(E_BELNR_F_05) TYPE  BELNR

*"     REFERENCE(E_BELNR_F_51) TYPE  BELNR

*"  TABLES

*"      T_ZYCIT100 STRUCTURE  /PWS/ZYCIT100 OPTIONAL

*"      T_ZYCIT003 STRUCTURE  /PWS/ZYCIT003 OPTIONAL

*"      T_ZYCBT032 STRUCTURE  /PWS/ZYCBT032 OPTIONAL

*"      ITAB_VARIACAO STRUCTURE  /PWS/ZYCIT085 OPTIONAL

*"  EXCEPTIONS

*"      TABLE_INITIAL

*"      EXISTE_RECEBIMENTO

*"      FLAG_RECLASSIFICACAO

*"      DADOS_DI_INICIAL

*"----------------------------------------------------------------------

 

*"      DADOS_DI_INICIAL

*"----------------------------------------------------------------------

 

  TABLES: /pws/zycit041,

          /pws/zycit042.

  DATA: BEGIN OF itab_matuse OCCURS 0    ,

          ebeln      TYPE ekpo-ebeln     ,

          ebelp      TYPE ekpo-ebelp     ,

          matnr      TYPE ekpo-matnr     ,

          bwtar      TYPE ekpo-bwtar     ,

          j_1bmatuse TYPE ekpo-j_1bmatuse,

          knttp      TYPE ekpo-knttp     ,

          werks      TYPE t001w-werks    ,

          bwkey      TYPE mbew-bwkey     ,

        END OF itab_matuse               .

 

  DATA: BEGIN OF itab_bsis_aux1 OCCURS 10,

          hkont    TYPE bsis-hkont       ,

          dmbtr    TYPE bsis-dmbtr       ,

          wrbtr    TYPE bsis-wrbtr       ,

          belnr    TYPE bsis-belnr       ,

          buzei    TYPE bsis-buzei       ,

          tpfatura TYPE /pws/zycit006-tpfatura,

        END OF itab_bsis_aux1.

 

  DATA: BEGIN OF itab_zycit132 OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit132.

  DATA: END OF itab_zycit132.

 

  DATA:

      itab_zycit094    TYPE /pws/zycie094    OCCURS 0 WITH HEADER LINE,

      itab_zycit006    TYPE /pws/zycit006    OCCURS 0 WITH HEADER LINE,

      itab_matuse_aux3 LIKE itab_matuse_aux  OCCURS 0 WITH HEADER LINE,

      itab_zycit263    TYPE /pws/zycit263    OCCURS 0 WITH HEADER LINE,

      v_gjahr          TYPE bsis-gjahr,

      v_tntgew         TYPE /pws/zycie003-ntgew,

      v_rec_ia         TYPE i.

 

*------------------- Se houver recebimento não pode fazer IA na DI

  SELECT SINGLE * FROM /pws/zycit042

     WHERE nrseq EQ i_zycit001-nrseq.

 

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM /pws/zycit041 INTO /pws/zycit041

       WHERE nrseq EQ /pws/zycit042-nrseqnf AND

       ( belnr_mr1m  NE space OR

         mblnr_mb01  NE space OR

         belnr_f_51  NE space OR

         belnr_f_02  NE space OR

         belnrf02fre NE space    ).

  ENDIF.

  IF sy-subrc EQ 0 AND i_programa EQ 'DI'.

    RAISE existe_recebimento.

  ENDIF.

 

 

*-------------------Seleção de Parametros

  SELECT SINGLE *

    FROM t001

    WHERE bukrs EQ i_zycit001-bukrs.

 

  SELECT SINGLE *

    FROM /pws/zycit000

    WHERE land1 EQ t001-land1.

 

  IF /pws/zycit000-flag_reclass IS INITIAL.

    RAISE flag_reclassificacao.

  ENDIF.

 

  SELECT SINGLE *

    FROM /pws/zycbt007

    WHERE bukrs EQ i_zycit001-bukrs.

 

*-------------------Seleção de Dados

* Itens do embarque

  IF t_zycit003[] IS INITIAL AND NOT i_zycit001-nrseq IS INITIAL.

    SELECT *

      FROM /pws/zycit003

      INTO TABLE t_zycit003

      WHERE nrseq EQ i_zycit001-nrseq.

  ENDIF.

 

* Itens da DI

  IF t_zycit100[] IS INITIAL AND NOT i_zycit001-nrseq IS INITIAL.

    SELECT *

      FROM /pws/zycit100

      INTO TABLE t_zycit100

      WHERE nrseq EQ i_zycit001-nrseq.

  ENDIF.

 

  READ TABLE t_zycit100 INDEX 1.

* DI cabeçalho

  SELECT SINGLE *

    FROM /pws/zycit085

    INTO /pws/zycie085

    WHERE nrseqdi EQ t_zycit100-nrseqdi.

  IF /pws/zycie085-nrdi IS INITIAL OR /pws/zycie085-dtreg IS INITIAL.

    RAISE dados_di_inicial.

  ENDIF.

 

* BL

  IF NOT t_zycit003[] IS INITIAL.

    SELECT *

      FROM /pws/zycit094

      INTO TABLE itab_zycit094

      FOR ALL ENTRIES IN t_zycit003

      WHERE nrseq = t_zycit003-nrseq.

  ENDIF.

 

  READ TABLE itab_zycit094 INDEX 1.

* Seleciona fatura(cabeçalho)

  SELECT *

    FROM /pws/zycit006

    INTO TABLE itab_zycit006

    WHERE nrseqce   EQ itab_zycit094-nrseqce

      AND tpfatura  NE '11'

      AND eliminado EQ space.

 

* Dados do BL

  SELECT SINGLE *

      FROM /pws/zycit093

      WHERE nrseqce   EQ itab_zycit094-nrseqce.

 

*-------------------Raise table_initial

  IF itab_zycit006[] IS INITIAL OR

     itab_zycit094[] IS INITIAL OR

     t_zycit100[] IS INITIAL    OR

     t_zycit003[] IS INITIAL.

    RAISE table_initial.

  ENDIF.

 

 

* Caso exista faturas parceladas os registro são gravado na tabela IT132

*  Essa rotina "joga" os registros para o table IT006

* Verificando Faturas Parceladas

  REFRESH itab_zycit132. CLEAR itab_zycit132.

  LOOP AT itab_zycit006 WHERE belnr_p IS initial AND

                              tpfatura = '01'.

    SELECT *

      FROM /pws/zycit132

      APPENDING TABLE itab_zycit132

      WHERE nrseq     = itab_zycit006-nrseq AND

            eliminado = space.

  ENDLOOP.

  LOOP AT itab_zycit132.

    READ TABLE itab_zycit006 WITH KEY nrseq = itab_zycit132-nrseq.

    IF sy-subrc = 0.

      MOVE: itab_zycit132-belnr_p   TO itab_zycit006-belnr_p,

            itab_zycit132-dt_belnrp TO itab_zycit006-dt_belnrp.

      APPEND itab_zycit006.

    ENDIF.

  ENDLOOP.

 

* Deleta registros com o numero do documento em branco,

*  caso não estaja contabilzado não faz variação

  LOOP AT itab_zycit006 WHERE belnr_p IS initial.

    DELETE itab_zycit006.

  ENDLOOP.

  SORT itab_zycit006 BY belnr_p.

 

 

* Itens do pedido de compra

  CLEAR: itab_matuse.

  REFRESH: itab_matuse.

  IF NOT t_zycit003[] IS INITIAL.

    SELECT ebeln ebelp matnr bwtar j_1bmatuse knttp werks

           FROM ekpo INTO TABLE itab_matuse

           FOR ALL ENTRIES IN t_zycit003

           WHERE ebeln = t_zycit003-ebeln

             AND ebelp = t_zycit003-ebelp.

  ENDIF.

 

* Verificação dos matuse e suas respectivas contas.

  LOOP AT itab_matuse.

 

    READ TABLE t_zycit003 WITH KEY ebeln = itab_matuse-ebeln

                                   ebelp = itab_matuse-ebelp.

 

*   Busca o número da conta específica, passando a chave de

*   operação a ela relacionada.

    CLEAR itab_cta. REFRESH itab_cta.

 

    CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

         EXPORTING

              bukrs           = i_zycit001-bukrs

              ktosl           = 'IPA'

              werks           = t_zycit003-werks

              bklas           = space

              codaux1         = itab_matuse-j_1bmatuse

              codaux2         = space

              codaux3         = space

         TABLES

              account         = itab_cta

         EXCEPTIONS

              key_not_found   = 1  " Chave não encontrada

              rules_not_found = 2  " Regras não parametrizadas

              OTHERS          = 3. " Outros erros

 

    READ TABLE itab_cta INDEX 1.

    READ TABLE itab_matuse_aux

                          WITH KEY hkont      = itab_cta-konth

                                  j_1bmatuse = itab_matuse-j_1bmatuse.

    IF sy-subrc NE 0.

      MOVE: itab_matuse-j_1bmatuse TO itab_matuse_aux-j_1bmatuse,

            itab_cta-konth         TO itab_matuse_aux-hkont .

      APPEND itab_matuse_aux.

      CLEAR itab_matuse_aux.

    ENDIF.

  ENDLOOP.

 

 

*--------seleciona a tabela BSIS, que é a tabela de documentos p/

*-----------fazer a variação(com esses documentos).

  MOVE itab_matuse_aux[] TO itab_matuse_aux3[].

  SORT itab_matuse_aux3 BY hkont.

  DELETE ADJACENT DUPLICATES FROM itab_matuse_aux3 COMPARING hkont.

  LOOP AT itab_zycit006.

    IF NOT itab_matuse_aux3[] IS INITIAL.

      LOOP AT itab_matuse_aux3.

        UNPACK itab_zycit006-belnr_p TO itab_zycit006-belnr_p.

        CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

             EXPORTING

                  v_bukrs = i_zycit001-bukrs

                  v_date  = itab_zycit006-dt_belnrp

             IMPORTING

                  v_year  = v_gjahr.

        IF sy-subrc  NE  0.

          v_gjahr = itab_zycit006-dtlanc+0(4).

        ENDIF.

        SELECT hkont dmbtr wrbtr belnr buzei

          FROM bsis

          INTO TABLE itab_bsis_aux1

          WHERE bukrs   EQ /pws/zycie085-bukrs

            AND hkont   EQ itab_matuse_aux3-hkont

            AND gjahr   EQ v_gjahr

            AND belnr   EQ itab_zycit006-belnr_p.

        LOOP AT itab_bsis_aux1.

          MOVE: itab_bsis_aux1-hkont TO itab_bsis-hkont,

                itab_bsis_aux1-buzei TO itab_bsis-buzei,

                itab_bsis_aux1-belnr TO itab_bsis-belnr.

          itab_bsis-dmbtr = itab_bsis-dmbtr + itab_bsis_aux1-dmbtr.

          itab_bsis-wrbtr = itab_bsis-wrbtr + itab_bsis_aux1-wrbtr.

        ENDLOOP.

        IF sy-subrc = 0.

          MOVE itab_zycit006-tpfatura TO itab_bsis-tpfatura.

          APPEND itab_bsis.

          CLEAR itab_bsis.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

 

* Caso não esteja flegado na IT00 não faz a provisão

  IF NOT /pws/zycit000-provfre IS INITIAL.

    DELETE itab_bsis WHERE tpfatura = '02'.

  ENDIF.

  IF NOT /pws/zycit000-provseg IS INITIAL.

    DELETE itab_bsis WHERE tpfatura = '03'.

  ENDIF.

 

 

  MOVE itab_matuse_aux[] TO itab_matuse_aux2[].

  LOOP AT itab_bsis.

    MOVE: itab_bsis-hkont TO itab_bsis_aux-hkont      ,

          itab_bsis-wrbtr TO itab_bsis_aux-wrbtr      ,

          itab_bsis-dmbtr TO itab_bsis_aux-dmbtr      ,

          itab_bsis-tpfatura TO itab_bsis_aux-tpfatura.

    COLLECT itab_bsis_aux.

  ENDLOOP.

 

 

  LOOP AT itab_matuse.

 

    READ TABLE t_zycit003 WITH KEY ebeln = itab_matuse-ebeln

                                   ebelp = itab_matuse-ebelp.

 

    READ TABLE itab_zycit094 WITH KEY nrseq = t_zycit003-nrseq.

 

    READ TABLE itab_zycit006 WITH KEY nrseqce = itab_zycit094-nrseqce.

 

    READ TABLE itab_matuse_aux

                         WITH KEY j_1bmatuse = itab_matuse-j_1bmatuse.

 

    IF sy-subrc NE 0.

      MOVE: itab_matuse-j_1bmatuse TO itab_matuse_aux-j_1bmatuse.

*      MOVE: itab_matuse-knttp      TO itab_matuse_aux-knttp.

 

*     Busca o número da conta específica, passando a chave de

*     operação a ela relacionada.

      CLEAR itab_cta. REFRESH itab_cta.

 

      CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

           EXPORTING

                bukrs           = i_zycit001-bukrs

                ktosl           = 'VCI'

                werks           = t_zycit003-werks

                bklas           = space

                codaux1         = itab_matuse_aux-hkont

                codaux2         = itab_zycit006-tpfatura

                codaux3         = space

           TABLES

                account         = itab_cta

           EXCEPTIONS

                key_not_found   = 1  " Chave não encontrada

                rules_not_found = 2  " Regras não parametrizadas

                OTHERS          = 3. " Outros erros

      READ TABLE itab_cta INDEX 1.

      IF itab_cta-konts IS INITIAL.

*       Busca o número da conta específica, passando a chave de

*       operação a ela relacionada.

        CLEAR itab_cta. REFRESH itab_cta.

 

        CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

             EXPORTING

                  bukrs           = i_zycit001-bukrs

                  ktosl           = 'VCI'

                  werks           = t_zycit003-werks

                  bklas           = space

                  codaux1         = itab_matuse_aux-hkont

                  codaux2         = space

                  codaux3         = space

             TABLES

                  account         = itab_cta

             EXCEPTIONS

                  key_not_found   = 1  " Chave não encontrada

                  rules_not_found = 2  " Regras não parametrizadas

                  OTHERS          = 3. " Outros erros

      ENDIF.

 

 

      APPEND itab_matuse_aux.

      CLEAR itab_matuse_aux.

    ENDIF.

  ENDLOOP.

 

 

  CLEAR v_tntgew.

  LOOP AT t_zycit003.

    v_tntgew = v_tntgew + t_zycit003-ntgew.

  ENDLOOP.

 

 

  IF itab_zycit263[] IS INITIAL AND NOT itab_zycit006[] IS INITIAL.

    SELECT *

      FROM /pws/zycit263

      INTO TABLE itab_zycit263

      FOR ALL ENTRIES IN itab_zycit006

      WHERE nrseq_pgfat EQ itab_zycit006-nrseq_pgfat.

  ENDIF.

 

 

 

  LOOP AT t_zycit100.

 

    READ TABLE itab_zycit263 WITH KEY ebeln = t_zycit100-ebeln

                                      ebelp = t_zycit100-ebelp.

    CLEAR itab_zycit006.

    READ TABLE itab_zycit006

                  WITH KEY nrseq_pgfat = itab_zycit263-nrseq_pgfat.

    CHECK NOT itab_zycit006-belnr_p IS INITIAL.

 

    CLEAR: itab_matuse, itab_matuse_aux.

    READ TABLE itab_matuse WITH KEY ebeln = t_zycit100-ebeln

                                      ebelp = t_zycit100-ebelp.

    READ TABLE itab_matuse_aux WITH KEY

                  j_1bmatuse = itab_matuse-j_1bmatuse.

 

    MOVE: itab_matuse_aux-hkont TO itab_di-hkont,

          t_zycit100-vlseg   TO itab_di-vlseg,

          t_zycit100-vlfre   TO itab_di-vlfre.

 

 

    itab_di-vlfob = t_zycit100-dttaxbem * t_zycit100-vlfob.

 

    IF NOT /pws/zycit093-ternacion IS INITIAL.

      READ TABLE t_zycit003 WITH KEY

               nrseq = t_zycit100-nrseq

               ebeln = t_zycit100-ebeln

               ebelp = t_zycit100-ebelp .

      IF NOT v_tntgew IS INITIAL.

        itab_di-vlfren =  ( ( t_zycit003-ntgew / v_tntgew ) *

           /pws/zycit093-ternacion ) * /pws/zycie085-ukursfre .

      ENDIF.

    ENDIF.

    itab_di-vldi = itab_di-vlfob + itab_di-vlseg +

          itab_di-vlfre + itab_di-vlfren.

    COLLECT itab_di.

    CLEAR   itab_di.

  ENDLOOP.

 

 

 

  CLEAR: v_rec_ia, v_rec_ia_1.

  LOOP AT itab_matuse_aux2.

* Verifica se já existe doctos compensados.

    READ TABLE itab_bsis_aux WITH KEY hkont = itab_matuse_aux2-hkont.

    IF sy-subrc NE 0.

      CONTINUE.

    ENDIF.

    IF itab_matuse_aux2-j_1bmatuse = 0.

      IF /pws/zycie085-belnr_0 IS INITIAL OR

         /pws/zycie085-flag_reclass IS INITIAL.

        IF /pws/zycie085-belnr_0_f05 IS INITIAL.

          v_rec_ia = v_rec_ia + 1.

          PERFORM fill_date_f_05_variacao TABLES t_zycbt032

                                                 t_zycit003

                                          USING  /pws/zycbt007

                                                 i_zycit001

                                                 v_modo.

          IF NOT v_belnrf05 IS INITIAL.  "Documento da F05

            PERFORM fill_date_f_51_variacao TABLES t_zycbt032

                                                   t_zycit003

                                                   itab_zycit006

                                            USING  /pws/zycbt007

                                                   i_zycit001

                                                   v_modo.

          ELSE.

*            MESSAGE i015 WITH text-218.

          ENDIF.

        ENDIF.

      ENDIF.

 

    ELSEIF itab_matuse_aux2-j_1bmatuse = 1.

      IF /pws/zycie085-belnr_1 IS INITIAL OR

         /pws/zycie085-flag_reclass IS INITIAL.

        IF /pws/zycie085-belnr_1_f05 IS INITIAL.

          v_rec_ia = v_rec_ia + 1.

          PERFORM fill_date_f_05_variacao TABLES t_zycbt032

                                                 t_zycit003

                                          USING  /pws/zycbt007

                                                 i_zycit001

                                                 v_modo.

          IF NOT v_belnrf05 IS INITIAL.    "Documento da F05

            PERFORM fill_date_f_51_variacao TABLES t_zycbt032

                                                   t_zycit003

                                                   itab_zycit006

                                            USING  /pws/zycbt007

                                                   i_zycit001

                                                   v_modo.

          ELSE.

*            MESSAGE i015 WITH text-218.

          ENDIF.

        ENDIF.

      ENDIF.

 

    ELSEIF itab_matuse_aux2-j_1bmatuse = 2.

      IF /pws/zycie085-belnr_2 IS INITIAL OR

         /pws/zycie085-flag_reclass IS INITIAL.

        IF /pws/zycie085-belnr_2_f05 IS INITIAL.

          v_rec_ia = v_rec_ia + 1.

          PERFORM fill_date_f_05_variacao TABLES t_zycbt032

                                                 t_zycit003

                                          USING  /pws/zycbt007

                                                 i_zycit001

                                                 v_modo.

          IF NOT v_belnrf05 IS INITIAL.    "Documento da F05

            PERFORM fill_date_f_51_variacao TABLES t_zycbt032

                                                   t_zycit003

                                                   itab_zycit006

                                            USING  /pws/zycbt007

                                                   i_zycit001

                                                   v_modo.

          ELSE.

*            MESSAGE i015 WITH text-218.

          ENDIF.

        ENDIF.

      ENDIF.

 

    ELSEIF itab_matuse_aux2-j_1bmatuse = 3.

      IF /pws/zycie085-belnr_3 IS INITIAL OR

         /pws/zycie085-flag_reclass IS INITIAL.

        IF /pws/zycie085-belnr_3_f05 IS INITIAL.

          v_rec_ia = v_rec_ia + 1.

          PERFORM fill_date_f_05_variacao TABLES t_zycbt032

                                                 t_zycit003

                                          USING  /pws/zycbt007

                                                 i_zycit001

                                                 v_modo.

          IF NOT v_belnrf05 IS INITIAL.    "Documento da F05

            PERFORM fill_date_f_51_variacao TABLES t_zycbt032

                                                   t_zycit003

                                                   itab_zycit006

                                            USING  /pws/zycbt007

                                                   i_zycit001

                                                   v_modo.

          ELSE.

*            MESSAGE i015 WITH text-218.

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

 

  ENDLOOP.

 

 

  itab_variacao-belnr_0 = /pws/zycie085-belnr_0.

  itab_variacao-belnr_1 = /pws/zycie085-belnr_1.

  itab_variacao-belnr_2 = /pws/zycie085-belnr_2.

  itab_variacao-belnr_3 = /pws/zycie085-belnr_3.

  itab_variacao-budat_0 = /pws/zycie085-budat_0.

  itab_variacao-budat_1 = /pws/zycie085-budat_1.

  itab_variacao-budat_2 = /pws/zycie085-budat_2.

  itab_variacao-budat_3 = /pws/zycie085-budat_3.

  itab_variacao-belnr_0_f05 = /pws/zycie085-belnr_0_f05.

  itab_variacao-belnr_1_f05 = /pws/zycie085-belnr_1_f05.

  itab_variacao-belnr_2_f05 = /pws/zycie085-belnr_2_f05.

  itab_variacao-belnr_3_f05 = /pws/zycie085-belnr_3_f05.

 

  append itab_variacao.

 

 

* verificando se todos os lançamentos foram feitos com exito.

  IF NOT v_rec_ia IS INITIAL AND v_rec_ia = v_rec_ia_1.

    UPDATE /pws/zycit085 SET  flag_reclass = 'X'

                 WHERE nrseqdi = /pws/zycie085-nrseqdi.

  ENDIF.

 

 

 

ENDFUNCTION.

 

 

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

Modificações efetuadas em REPS /PWS/LZYCIGF2F01

 

*Criado o trecho abaixo:

FORM fill_date_f_05_variacao TABLES p_zycbt032 STRUCTURE /pws/zycbt032

                                    p_zycit003 STRUCTURE /pws/zycit003

                             USING  p_zycbt007 STRUCTURE /pws/zycbt007

                                    p_zycit001 STRUCTURE /pws/zycit001

                                    v_modo.

  DATA: itab_zycbe033  LIKE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,

        itab_zycbt011  TYPE /pws/zycbt011 OCCURS 10 WITH HEADER LINE,

        v_sgtxt        LIKE bseg-sgtxt,

        v_zuonr        LIKE bseg-zuonr,

        v_xblnr        LIKE bkpf-xblnr,

        v_bktxt        LIKE bkpf-bktxt.

 

 

  SELECT *

    FROM /pws/zycbt011

    INTO TABLE itab_zycbt011

    WHERE codmod  = 'D'.

  READ TABLE itab_zycbt011 WITH KEY codeven = '001VM'.

 

* Mandante

  itab_zycbe033-mandt   = sy-mandt.

* Código da transação

  itab_zycbe033-tcode   = 'F-05'.

* Nome da Tabela de Fatura

  itab_zycbe033-tabela  = '/PWS/ZYCIT044'.

* Campo chave da tabela de Financ.

  itab_zycbe033-cpochv  = /pws/zycie085-nrseqdi.

** Data do lançamento

  itab_zycbe033-bldat   = sy-datlo.

  itab_zycbe033-d_valut = sy-datlo.

* Data do lançamento

  itab_zycbe033-budat   = sy-datlo.

* Texto cabeçalho

  itab_zycbe033-bktxt   = p_zycbt007-bktxt.

* Conta do razão para a busca das partidas

  itab_zycbe033-d_newko = itab_matuse_aux2-hkont.

* Tipo de Conta

  itab_zycbe033-agkoa   = 'S'. "contas do razão

 

 

 

 

 

* Divisão

  READ TABLE p_zycit003 INDEX 1.

  itab_zycbe033-d_gsber = p_zycit003-gsber.

  itab_zycbe033-c_gsber = p_zycit003-gsber.

 

* Empresa

*  PERFORM verify_null_field USING i_zycit001-bukrs

*                                  'BUKRS'

*                                  text-157.

  itab_zycbe033-bukrs  = p_zycit001-bukrs.

 

* Moeda

*  PERFORM verify_null_field USING wa_zycbt007-waersb

*                                  'WAERS'

*                                  text-158.

  itab_zycbe033-waers  = p_zycbt007-waersb.

*

** Tipo de documento

*  PERFORM verify_null_field USING wa_zycbt011-blart

*                                  'BLART'

*                                  text-159.

  itab_zycbe033-blart  = itab_zycbt011-blart.

 

 

 

* Cabeçalho - Textos

 

  CLEAR: v_xblnr, v_zuonr, v_sgtxt, v_bktxt.

*  READ TABLE itab_zycit100 WITH KEY nrseqdi = /pws/zycie085-nrseqdi.

  CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

      EXPORTING

       v_nrseq         = p_zycit001-nrseq

*       v_nrfat         = /pws/zycie006-nrfat

*        V_EBELP         =

*        V_EBELN         =

        v_codeven       = '001VM'

*        V_KTOSL         =

*        V_NFSERV        =

*        V_NRPARC        =

   IMPORTING

       v_xblnr         = v_xblnr

       v_zuonr         = v_zuonr

       v_sgtxt         = v_sgtxt

       v_bktxt         = v_bktxt

              .

  itab_zycbe033-d_zuonr = itab_zycbe033-c_zuonr = v_zuonr.

  itab_zycbe033-d_sgtxt = itab_zycbe033-c_sgtxt = v_sgtxt.

  itab_zycbe033-xblnr   = v_xblnr.

  itab_zycbe033-bktxt   = v_bktxt.

  APPEND itab_zycbe033.

  PERFORM lanctos_variacao  TABLES itab_zycbt011

                            USING  p_zycbt007

                                   p_zycit001

                                   itab_zycbe033.

 

  LOOP AT itab_contas.

    CLEAR: v_xblnr, v_zuonr, v_sgtxt, v_bktxt.

 

    CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

    EXPORTING

      v_nrseq         = p_zycit001-nrseq

*      v_nrfat         = /pws/zycie006-nrfat

*     V_EBELP         =

*     V_EBELN         =

      v_codeven       = '001VM'

      v_ktosl         = 'VCI'

*     V_NFSERV        =

*     V_NRPARC        =

*     V_DESCR1        =

    IMPORTING

      v_xblnr         = v_xblnr

      v_zuonr         = v_zuonr

      v_sgtxt         = v_sgtxt

      v_bktxt         = v_bktxt

    .

 

    itab_contas-d_sgtxt = itab_contas-c_sgtxt = v_sgtxt.

    itab_contas-d_zuonr = itab_contas-c_zuonr = v_zuonr.

    itab_contas-d_xblnr = itab_contas-c_xblnr = v_xblnr.

 

* Lança Divisão

*    itab_contas-d_gsber = itab_contas-c_gsber = /pws/zycie003-gsber.

 

    MODIFY itab_contas.

  ENDLOOP.

 

* Exit usada na variação da DI, tazida para o função

  e_subrc = '0' .

*  e_contab = 'F05'.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI023'

                              'DI005'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'DI005' BINARY SEARCH.

  IF sy-subrc EQ 0.

    "Verifica se a Exit está ativa.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

      IF e_subrc = '8'.

        EXIT.

      ENDIF.

    ENDIF.

  ENDIF.

 

  IF e_subrc = '0'.

 

    IF NOT v_erro_f05 EQ 'S'. "caso não haja variação

      CALL FUNCTION '/PWS/ZYCI_TRANSACAO_F_05'

           EXPORTING

                v_modo          = v_modo

           TABLES

                t_dados         = itab_zycbe033

                t_contas        = itab_contas

                t_zycbt032      = p_zycbt032

           EXCEPTIONS

                campo_em_branco = 1

                periodo_fechado = 2

                OTHERS          = 3.

 

      IF sy-subrc EQ 0.

 

        READ TABLE p_zycbt032 WITH KEY tcode  = 'F-05'

                                          tabela = '/PWS/ZYCIT044'

                                         cpochv = /pws/zycie085-nrseqdi

                                          tpmsg  = 'S'.

        IF sy-subrc = 0.

*          MESSAGE i015 WITH text-216 itab_zycbt032-belnr

*                            text-217 /pws/zycie085-bukrs.

 

          CLEAR: v_belnrf05.

          LOOP AT itab_matuse_aux WHERE

                           hkont = itab_matuse_aux2-hkont.

            IF itab_matuse_aux-j_1bmatuse = 0.

              /pws/zycie085-belnr_0_f05 = p_zycbt032-belnr.

              v_belnrf05 = /pws/zycie085-belnr_0_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 1.

              /pws/zycie085-belnr_1_f05 = p_zycbt032-belnr.

              v_belnrf05 = /pws/zycie085-belnr_1_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 2.

              /pws/zycie085-belnr_2_f05 = p_zycbt032-belnr.

              v_belnrf05 = /pws/zycie085-belnr_2_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 3.

              /pws/zycie085-belnr_3_f05 = p_zycbt032-belnr.

              v_belnrf05 = /pws/zycie085-belnr_3_f05.

            ENDIF.

          ENDLOOP.

      UPDATE /pws/zycit085 SET  belnr_0_f05 = /pws/zycie085-belnr_0_f05

                                belnr_1_f05 = /pws/zycie085-belnr_1_f05

                                belnr_2_f05 = /pws/zycie085-belnr_2_f05

                                belnr_3_f05 = /pws/zycie085-belnr_3_f05

                                  WHERE nrseqdi = /pws/zycie085-nrseqdi.

          COMMIT WORK.

 

        ELSE.

          LOOP AT p_zycbt032.

*            MESSAGE i104 WITH itab_zycbt032-msg+0(50)

*                              itab_zycbt032-msg+50(50).

          ENDLOOP.

        ENDIF.

      ELSE.

        LOOP AT p_zycbt032.

*          MESSAGE i104 WITH itab_zycbt032-msg+0(50)

*                            itab_zycbt032-msg+50(50).

        ENDLOOP.

      ENDIF.

    ENDIF.

 

  ENDIF.

ENDFORM.                    " fill_date_f_05_variacao

*&---------------------------------------------------------------------*

*&      Form  lanctos_variacao

*&---------------------------------------------------------------------*

FORM lanctos_variacao TABLES itab_zycbt011 STRUCTURE /pws/zycbt011

                      USING  p_zycbt007 STRUCTURE /pws/zycbt007

                             p_zycit001 STRUCTURE /pws/zycit001

                             itab_zycbe033 STRUCTURE /pws/zycbe033.

 

  DATA: itab_zycbt012  TYPE /pws/zycbt012 OCCURS 10 WITH HEADER LINE,

        v_soma         TYPE /pws/zycit085-vlfob,

        vl_variacao    TYPE /pws/zycit085-vlfob.

 

  SELECT * FROM /pws/zycbt012 INTO TABLE itab_zycbt012

                WHERE codmod  = 'D'.

 

  SELECT SINGLE *

    FROM /pws/zycit031

    WHERE codmod EQ 'D'

      AND inco1  EQ p_zycit001-inco1

      AND land1  EQ t001-land1.

 

 

 

 

 

 

  LOOP AT itab_bsis_aux WHERE hkont = itab_matuse_aux2-hkont.

    READ TABLE itab_di WITH KEY hkont = itab_matuse_aux2-hkont.

    IF itab_bsis_aux-tpfatura = '01'.

      READ TABLE itab_zycbt011 WITH KEY codeven = '001VM'.

      READ TABLE itab_zycbt012 WITH KEY

                        codeven = '001VM'

                        codaux  = itab_matuse_aux2-j_1bmatuse.

*     Lançamentos de variação

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

        vl_variacao = itab_di-vlfob - itab_bsis_aux-dmbtr.

        IF itab_zycbe033-tcode = 'F-51'

           AND NOT v_belnrf05 IS INITIAL.

          PERFORM: move_lanctos USING itab_di-vlfob

                                      vl_variacao.

        ELSEIF itab_zycbe033-tcode = 'F-51'.

          PERFORM move_lanctos USING itab_di-vlfob

                                     vl_variacao.

        ELSEIF itab_zycbe033-tcode = 'F-05'.

*          IF vl_variacao > '0.03'.

           if not vl_variacao is initial.

            PERFORM move_lanctos_f05 USING vl_variacao.

          ELSE.

            v_erro_f05 = 'S'.

          ENDIF.

        ENDIF.

      ELSEIF /pws/zycit031-inco1_ci = 'C&F'.

 

        vl_variacao = itab_di-vlfob + itab_di-vlfre + itab_di-vlfren -

                      itab_bsis_aux-dmbtr.

 

        v_soma = itab_di-vlfob + itab_di-vlfre + itab_di-vlfren .

        IF itab_zycbe033-tcode = 'F-51'

           AND NOT v_belnrf05 IS INITIAL.

          PERFORM: move_lanctos USING v_soma

                                      vl_variacao.

        ELSEIF itab_zycbe033-tcode = 'F-51'.

          PERFORM move_lanctos USING v_soma

                                     vl_variacao.

        ELSEIF itab_zycbe033-tcode = 'F-05'.

          IF vl_variacao > '0.03'.

            PERFORM move_lanctos_f05 USING vl_variacao.

          ELSE.

            v_erro_f05 = 'S'.

          ENDIF.

        ENDIF.

      ELSEIF /pws/zycit031-inco1_ci = 'CIF'.

        vl_variacao = itab_di-vlfob + itab_di-vlfre + itab_di-vlfren +

                      itab_di-vlseg - itab_bsis_aux-dmbtr.

 

        IF itab_zycbe033-tcode = 'F-51'

           AND NOT v_belnrf05 IS INITIAL.

          PERFORM: move_lanctos USING itab_di-vldi

                                      vl_variacao.

        ELSEIF itab_zycbe033-tcode = 'F-51'.

          PERFORM move_lanctos USING itab_di-vldi

                                     vl_variacao.

        ELSEIF itab_zycbe033-tcode = 'F-05'.

          IF vl_variacao > '0.03'.

            PERFORM move_lanctos_f05 USING vl_variacao.

          ELSE.

            v_erro_f05 = 'S'.

          ENDIF.

        ENDIF.

 

      ENDIF.

    ELSEIF itab_bsis_aux-tpfatura = '02'

      AND NOT itab_di-vlfre IS INITIAL.

      IF NOT /pws/zycit000-provfre IS INITIAL.

        CONTINUE.

      ENDIF.

 

      READ TABLE itab_zycbt011 WITH KEY codeven = '001VF'.

      READ TABLE itab_zycbt012 WITH KEY

                        codaux  = itab_matuse_aux2-j_1bmatuse

                        codeven = '001VF'.

 

*     Valor da variação

      vl_variacao = itab_di-vlfre - itab_bsis_aux-dmbtr.

 

      IF itab_zycbe033-tcode = 'F-51'.

        PERFORM move_lanctos USING itab_di-vlfre

                                   vl_variacao.

      ELSEIF itab_zycbe033-tcode = 'F-05'.

        IF vl_variacao > '0.03'.

          PERFORM move_lanctos_f05 USING vl_variacao.

        ELSE.

          v_erro_f05 = 'S'.

        ENDIF.

      ENDIF.

 

    ELSEIF itab_bsis_aux-tpfatura = '03'

      AND NOT itab_di-vlfre IS INITIAL.

      IF NOT /pws/zycit000-provseg IS INITIAL.

        CONTINUE.

      ENDIF.

 

      READ TABLE itab_zycbt011 WITH KEY codeven = '001VS'.

      READ TABLE itab_zycbt012 WITH KEY

                        codaux  = itab_matuse_aux2-j_1bmatuse

                        codeven = '001VS'.

* Valor da variação

      vl_variacao = itab_di-vlseg - itab_bsis_aux-dmbtr.

      IF itab_zycbe033-tcode = 'F-51'.

        PERFORM move_lanctos USING itab_di-vlfre

                                   vl_variacao.

      ELSEIF itab_zycbe033-tcode = 'F-05'.

        IF vl_variacao > '0.03'.

          PERFORM move_lanctos_f05 USING vl_variacao.

        ELSE.

          v_erro_f05 = 'S'.

        ENDIF.

      ENDIF.

 

    ENDIF.

  ENDLOOP.

ENDFORM.                    " lanctos_variacao

 

*&---------------------------------------------------------------------*

*&      Form  move_lanctos

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*      -->P_ITAB_DI_VLFOB  text

*----------------------------------------------------------------------*

FORM move_lanctos USING    p_valor

                           vl_variacao.

 

  DATA: v_conta          TYPE hkont,

        vl_variacao_aux  TYPE p DECIMALS 2,

        v_valor_variacao TYPE p DECIMALS 2,

        v_diferenca      TYPE p DECIMALS 2.

 

  MOVE vl_variacao TO vl_variacao_aux.

 

  IF vl_variacao_aux < 0.

    v_valor_variacao = itab_bsis_aux-dmbtr - ABS( vl_variacao_aux ).

  ELSE.

    v_valor_variacao = itab_bsis_aux-dmbtr + ABS( vl_variacao_aux ).

  ENDIF.

 

  v_diferenca = v_valor_variacao - p_valor.

 

 

  IF ( v_diferenca < 1

   AND v_diferenca > -1

   AND v_diferenca NE 0 ).

    p_valor = v_valor_variacao.

  ENDIF.

 

* Valor da variação

  itab_contas-tcode  = 'F-51'.

 

 

  itab_contas-mandt  = sy-mandt.

  itab_contas-tabela = '/PWS/ZYCIT044'.

  IF v_belnrf05 IS INITIAL.

*     Retira zeros à esquerda

    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

         EXPORTING

*                input  = itab_matuse_aux-hkont

              input  = itab_matuse_aux2-hkont

         IMPORTING

              output = v_conta.

 

*     Busca o número da conta específica, passando a chave de

*     operação a ela relacionada.

    CLEAR itab_cta. REFRESH itab_cta.

 

    CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

         EXPORTING

              bukrs           = /pws/zycie085-bukrs

              ktosl           = 'VCI'

              werks           = space

              bklas           = space

              codaux1         = v_conta

              codaux2         = itab_bsis_aux-tpfatura

              codaux3         = space

         TABLES

              account         = itab_cta  " Retorno das contas

         EXCEPTIONS

              key_not_found   = 1  " Chave não encontrada

              rules_not_found = 2  " Regras não parametrizadas

              OTHERS          = 3. " Outros erros

 

    IF vl_variacao >= 0.

      READ TABLE itab_cta INDEX 1.

      itab_contas-bschl  = '50'.

      itab_contas-wrbtr  = abs( vl_variacao ).

      itab_contas-d_newko = itab_cta-konth.

 

    ELSE.

      READ TABLE itab_cta INDEX 1.

      itab_contas-bschl  = '40'.

      itab_contas-wrbtr  = abs( vl_variacao ).

      itab_contas-d_newko = itab_cta-konts.

 

    ENDIF.

 

    APPEND itab_contas.

    CLEAR itab_contas.

  ENDIF.

 

* Valor da DI

  itab_contas-tcode  = 'F-51'.

  itab_contas-mandt  = sy-mandt.

  itab_contas-tabela = '/PWS/ZYCIT044'.

  itab_contas-bschl  = '40'.

  itab_contas-wrbtr  =  p_valor .

  itab_contas-d_newko = itab_bsis_aux-hkont.

 

 

  APPEND itab_contas.

  CLEAR itab_contas.

 

 

ENDFORM.                    " move_lanctos

*&---------------------------------------------------------------------*

*&      Form  move_lanctos_f05

*&---------------------------------------------------------------------*

*       text

*----------------------------------------------------------------------*

*  -->  p1        text

*  <--  p2        text

*----------------------------------------------------------------------*

FORM move_lanctos_f05 USING vl_variacao.

 

  DATA: v_conta    TYPE hkont,

        v_variadec TYPE /pws/zycit085-vlfre.

 

  CLEAR v_erro_f05.

 

  itab_contas-tcode  = 'F-05'.

  itab_contas-mandt  = sy-mandt.

  itab_contas-tabela = '/PWS/ZYCIT044'.

 

  IF vl_variacao > 0.

    itab_contas-bschl  = '40'.

  ELSEIF vl_variacao < 0.

    itab_contas-bschl  = '50'.

  ELSE .

    v_erro_f05 = 'S'.

  ENDIF.

 

 

  v_variadec = vl_variacao.

  itab_contas-wrbtr  = abs( v_variadec ).

 

 

  itab_contas-d_newko = itab_bsis_aux-hkont.

 

 

  APPEND itab_contas.

  CLEAR itab_contas.

 

 

  itab_contas-tcode  = 'F-05'.

  itab_contas-mandt  = sy-mandt.

  itab_contas-tabela = '/PWS/ZYCIT044'.

 

*   Retira zeros à esquerda

  CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'

       EXPORTING

*            input  = itab_matuse_aux-hkont

            input  = itab_matuse_aux2-hkont

       IMPORTING

            output = v_conta.

 

  " Busca o número da conta específica, passando a chave de

  " operação a ela relacionada.

  CLEAR itab_cta. REFRESH itab_cta.

 

 

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

            bukrs           = /pws/zycie085-bukrs

            ktosl           = 'VCI'

            werks           = space

            bklas           = space

            codaux1         = v_conta

            codaux2         = itab_bsis_aux-tpfatura

            codaux3         = space

       TABLES

            account         = itab_cta  " Retorno das contas

       EXCEPTIONS

            key_not_found   = 1  " Chave não encontrada

            rules_not_found = 2  " Regras não parametrizadas

            OTHERS          = 3. " Outros erros

 

  READ TABLE itab_cta INDEX 1.

 

*  if itab_bsis_aux-dmbtr < itab_di-vlfob.

  IF vl_variacao > 0.

    itab_contas-bschl  = '50'.

    itab_contas-d_newko = itab_cta-konth.

  ELSE.

*  elseif itab_bsis_aux-dmbtr > itab_di-vlfob.

    itab_contas-bschl  = '40'.

    itab_contas-d_newko = itab_cta-konts.

  ENDIF.

 

  itab_contas-wrbtr  = abs( vl_variacao ).

*  itab_contas-d_newko = itab_cta-konts.

 

 

 

  APPEND itab_contas.

  CLEAR itab_contas.

 

 

 

 

 

 

 

 

ENDFORM.                    " move_lanctos_f05

*&---------------------------------------------------------------------*

*&      Form  fill_date_f_51_variacao

*&---------------------------------------------------------------------*

FORM fill_date_f_51_variacao TABLES p_zycbt032 STRUCTURE /pws/zycbt032

                                    p_zycit003 STRUCTURE /pws/zycit003

                                    p_zycit006 STRUCTURE /pws/zycit006

                             USING  p_zycbt007 STRUCTURE /pws/zycbt007

                                    p_zycit001 STRUCTURE /pws/zycit001

                                    v_modo.

  .

  DATA: itab_zycbe033  TYPE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,

        itab_zycbt011  TYPE /pws/zycbt011 OCCURS 10 WITH HEADER LINE,

        itab_zycbt036  TYPE /pws/zycbt036 OCCURS 10 WITH HEADER LINE,

        v_ano          TYPE t001b-frye1,

        v_sgtxt        TYPE bseg-sgtxt,

        v_zuonr        TYPE bseg-zuonr,

        v_xblnr        TYPE bkpf-xblnr,

        v_bktxt        TYPE bkpf-bktxt.

 

 

  FREE: itab_zycbe033, itab_contas, itab_zycbt036.

 

  CLEAR: itab_zycbe033, itab_contas, itab_zycbt036.

 

 

  SELECT SINGLE * FROM /pws/zycbt011 INTO itab_zycbt011

                WHERE codmod  = 'D'.

  READ TABLE itab_zycbt011 WITH KEY codeven = '001VM'.

 

 

* Mandante

  itab_zycbe033-mandt = sy-mandt.

* Código da transação

  itab_zycbe033-tcode = 'F-51'.

* Nome da Tabela de Fatura

  itab_zycbe033-tabela = '/PWS/ZYCIT044'.

* Campo chave da tabela de Financ.

  itab_zycbe033-cpochv = /pws/zycie085-nrseqdi.

* Data do documento e data valor de acordo com param. geral

 

  itab_zycbe033-bldat   = sy-datlo.

  itab_zycbe033-d_valut = sy-datlo.

* Data do lançamento

  itab_zycbe033-budat   = sy-datlo.

 

* Conta do razão para a busca das partidas

  itab_zycbe033-d_newko   = itab_matuse_aux2-hkont.

 

* Tipo de Conta

  itab_zycbe033-agkoa    = 'S'. "contas do razão

 

 

* Cabeçalho - Textos

  CLEAR: v_xblnr, v_zuonr, v_sgtxt, v_bktxt.

 

  CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

    EXPORTING

      v_nrseq         = p_zycit001-nrseq

*      v_nrfat         = /pws/zycie006-nrfat

      v_ebelp         = p_zycit003-ebelp

      v_ebeln         = p_zycit003-ebeln

      v_codeven       = '001VM'                             "'002D'

*      V_KTOSL         =

*      V_NFSERV        =

*      V_NRPARC        =

    IMPORTING

      v_xblnr         = v_xblnr

      v_zuonr         = v_zuonr

      v_sgtxt         = v_sgtxt

      v_bktxt         = v_bktxt

            .

 

  itab_zycbe033-d_zuonr = itab_zycbe033-c_zuonr = v_zuonr.

  itab_zycbe033-d_sgtxt = itab_zycbe033-c_sgtxt = v_sgtxt.

  itab_zycbe033-xblnr = v_xblnr.

  itab_zycbe033-bktxt = v_bktxt.

 

  READ TABLE p_zycit003 INDEX 1.

  itab_zycbe033-d_gsber = p_zycit003-gsber.

  itab_zycbe033-c_gsber = p_zycit003-gsber.

 

 

* Empresa

  itab_zycbe033-bukrs  = /pws/zycie085-bukrs.

 

* Moeda

  itab_zycbe033-waers  = p_zycbt007-waersb.

 

* Tipo de documento

  itab_zycbe033-blart  = itab_zycbt011-blart.

  itab_zycbe033-brnch   = /pws/zycie085-j_1bbranch.

  APPEND itab_zycbe033.

 

 

 

  LOOP AT p_zycit006 WHERE belnr_p  NE space.

 

    READ TABLE itab_di INDEX 1.

    IF p_zycit006-tpfatura EQ '02' AND itab_di-vlfre IS INITIAL.

      CONTINUE.

    ELSEIF p_zycit006-tpfatura EQ '03' AND itab_di-vlseg IS INITIAL.

      CONTINUE.

    ENDIF.

 

    UNPACK itab_matuse_aux2-hkont TO itab_matuse_aux2-hkont.

    UNPACK p_zycit006-belnr_p TO p_zycit006-belnr_p.

 

    READ TABLE itab_bsis WITH KEY hkont = itab_matuse_aux2-hkont

                                  belnr = p_zycit006-belnr_p.

    IF sy-subrc = 0.

 

      itab_zycbt036-mandt  = sy-mandt.

      itab_zycbt036-tcode  = 'F-51'.

      itab_zycbt036-tabela = '/PWS/ZYCIT044'.

      itab_zycbt036-cpochv = /pws/zycie085-nrseqdi.

 

 

 

      itab_zycbt036-dtdocto = p_zycit006-dtlanc.

 

      UNPACK itab_bsis-belnr TO itab_bsis-belnr.

      itab_zycbt036-belnr  = itab_bsis-belnr.

      CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

           EXPORTING

                v_bukrs = /pws/zycie085-bukrs

                v_date  = p_zycit006-dt_belnrp

           IMPORTING

                v_year  = v_ano.

      IF sy-subrc  NE  0.

        v_ano = p_zycit006+0(4).

      ENDIF.

      SELECT SINGLE awkey FROM bkpf INTO itab_zycbt036-awkey

                  WHERE belnr = itab_bsis-belnr

                    AND bukrs = p_zycit006-bukrs

                     AND gjahr = v_ano.

      APPEND itab_zycbt036.

      CLEAR  itab_zycbt036.

    ENDIF.

 

  ENDLOOP.

 

  PERFORM lanctos_variacao  TABLES itab_zycbt011

                            USING  p_zycbt007

                                   p_zycit001

                                   itab_zycbe033.

 

* Tabela de param. de campos textos é verificado qual a parametrização.

* Itens - Textos

  LOOP AT itab_contas.

    CLEAR: v_zuonr, v_sgtxt, v_bktxt, v_xblnr.

    CALL FUNCTION '/PWS/ZYCI_TEXTOS_CONTABEIS'

      EXPORTING

        v_nrseq         = p_zycit001-nrseq

        v_nrfat         = p_zycit006-nrfat

        v_ebelp         = p_zycit003-ebelp

        v_ebeln         = p_zycit003-ebeln

        v_codeven       = '001VM'

        v_ktosl         = 'VCI' "itab_contas-KTOSL

*        V_NFSERV        =

*        V_NRPARC        =

      IMPORTING

        v_xblnr         = v_xblnr

        v_zuonr         = v_zuonr

        v_sgtxt         = v_sgtxt

        v_bktxt         = v_bktxt

              .

 

    itab_contas-d_zuonr = itab_contas-c_zuonr = v_zuonr.

    itab_contas-d_xblnr = itab_contas-c_xblnr = v_xblnr.

    itab_contas-d_sgtxt = itab_contas-c_sgtxt = v_sgtxt.

 

* Lança Divisão

    itab_contas-d_gsber = itab_contas-c_gsber = p_zycit003-gsber.

 

    MODIFY itab_contas.

  ENDLOOP.

 

* Exit da DI trazida para a função

  e_subrc = '0' .

*  e_contab = 'F51'.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI023'

                              'DI005'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'DI005' BINARY SEARCH.

  IF sy-subrc EQ 0.

    "Verifica se a Exit está ativa.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

      IF e_subrc = '8'.

        EXIT.

      ENDIF.

    ENDIF.

  ENDIF.

 

 

  IF e_subrc = '0'.

 

 

 

    CALL FUNCTION '/PWS/ZYCI_TRANSACAO_F_51C'

         EXPORTING

              v_modo          = v_modo

              v_belnr         = v_belnrf05

*                v_totline       = v_totline

              v_rec           = 'X'

         TABLES

              t_dados         = itab_zycbe033

*                t_campo         = itab_zycbt034

              t_zycbt032      = p_zycbt032

              t_contas        = itab_contas

              t_doc           = itab_zycbt036

         EXCEPTIONS

              campo_em_branco = 1

              periodo_fechado = 2

              OTHERS          = 3.

    IF sy-subrc = 0.

      READ TABLE p_zycbt032 WITH KEY tcode  = 'F-51'

                                     tabela = '/PWS/ZYCIT044'

                                     cpochv = /pws/zycie085-nrseqdi

                                     tpmsg  = 'S'.

 

      IF sy-subrc = 0. "Sucesso no BI

*          MESSAGE i059 WITH itab_zycbt032-belnr.

 

        LOOP AT itab_matuse_aux WHERE

                         hkont = itab_matuse_aux2-hkont.

          IF itab_matuse_aux-j_1bmatuse = 0.

            /pws/zycie085-belnr_0 = p_zycbt032-belnr.

            /pws/zycie085-budat_0 = sy-datlo.

          ELSEIF itab_matuse_aux-j_1bmatuse = 1.

            /pws/zycie085-belnr_1 = p_zycbt032-belnr.

            /pws/zycie085-budat_1 = sy-datlo.

          ELSEIF itab_matuse_aux-j_1bmatuse = 2.

            /pws/zycie085-belnr_2 = p_zycbt032-belnr.

            /pws/zycie085-budat_2 = sy-datlo.

 

          ELSEIF itab_matuse_aux-j_1bmatuse = 3.

            /pws/zycie085-belnr_3 = p_zycbt032-belnr.

            /pws/zycie085-budat_3 = sy-datlo.

 

          ENDIF.

        ENDLOOP.

        UPDATE /pws/zycit085 SET  belnr_0 = /pws/zycie085-belnr_0

                             belnr_1 = /pws/zycie085-belnr_1

                             belnr_2 = /pws/zycie085-belnr_2

                             belnr_3 = /pws/zycie085-belnr_3

                             budat_0 = /pws/zycie085-budat_0

                             budat_1 = /pws/zycie085-budat_1

                             budat_2 = /pws/zycie085-budat_2

                             budat_3 = /pws/zycie085-budat_3

                     WHERE nrseqdi = /pws/zycie085-nrseqdi.

        COMMIT WORK.

        v_rec_ia_1 = v_rec_ia_1 + 1.

 

* limpando as partidas que acabaram de ser compensadas da itab_bsis_aux.

        DELETE itab_bsis_aux WHERE hkont = itab_matuse_aux2-hkont.

      ELSE.

        READ TABLE p_zycbt032 WITH KEY  tpmsg  = 'E'.

        IF sy-subrc EQ 0.

*           Msgs de erro

 

*           Deletando o documento gerando na F-05

          PERFORM executa_fb08 TABLES p_zycbt032

                               USING  v_belnrf05

                                      sy-datlo

                                      p_zycbt007

                                      v_modo.

          LOOP AT itab_matuse_aux WHERE  hkont = itab_matuse_aux2-hkont.

            IF itab_matuse_aux-j_1bmatuse = 0.

              CLEAR /pws/zycie085-belnr_0_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 1.

              CLEAR /pws/zycie085-belnr_1_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 2.

              CLEAR /pws/zycie085-belnr_2_f05.

            ELSEIF itab_matuse_aux-j_1bmatuse = 3.

              CLEAR /pws/zycie085-belnr_3_f05.

            ENDIF.

          ENDLOOP.

 

          UPDATE /pws/zycit085

                   SET   belnr_0_f05 = /pws/zycie085-belnr_0_f05

                         belnr_1_f05 = /pws/zycie085-belnr_1_f05

                         belnr_2_f05 = /pws/zycie085-belnr_2_f05

                         belnr_3_f05 = /pws/zycie085-belnr_3_f05

                   WHERE nrseqdi = /pws/zycie085-nrseqdi.

          COMMIT WORK.

        ENDIF.

      ENDIF.

    ELSE.

      READ TABLE p_zycbt032 WITH KEY  tpmsg  = 'E'.

      IF sy-subrc EQ 0.

 

        PERFORM executa_fb08 TABLES p_zycbt032

                             USING  v_belnrf05

                                    sy-datlo

                                    p_zycbt007

                                    v_modo.

        LOOP AT itab_matuse_aux WHERE  hkont = itab_matuse_aux2-hkont.

          IF itab_matuse_aux-j_1bmatuse = 0.

            CLEAR /pws/zycie085-belnr_0_f05.

          ELSEIF itab_matuse_aux-j_1bmatuse = 1.

            CLEAR /pws/zycie085-belnr_1_f05.

          ELSEIF itab_matuse_aux-j_1bmatuse = 2.

            CLEAR /pws/zycie085-belnr_2_f05.

          ELSEIF itab_matuse_aux-j_1bmatuse = 3.

            CLEAR /pws/zycie085-belnr_3_f05.

          ENDIF.

        ENDLOOP.

 

        UPDATE /pws/zycit085

                 SET   belnr_0_f05 = /pws/zycie085-belnr_0_f05

                       belnr_1_f05 = /pws/zycie085-belnr_1_f05

                       belnr_2_f05 = /pws/zycie085-belnr_2_f05

                       belnr_3_f05 = /pws/zycie085-belnr_3_f05

                 WHERE nrseqdi = /pws/zycie085-nrseqdi.

        COMMIT WORK.

      ENDIF.

    ENDIF.

  ENDIF.

 

 

ENDFORM.                    " fill_date_f_51_variacao

*&---------------------------------------------------------------------*

*&      Form  verifica_exit

*&---------------------------------------------------------------------*

FORM verifica_exit USING    p_modulo

                            p_func

                            p_exit.

 

  CLEAR itab_zyglt100.

  REFRESH itab_zyglt100.

 

  CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

       EXPORTING

            i_codmod                = p_modulo

            i_func                  = p_func

            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.                    " verifica_exit

*&---------------------------------------------------------------------*

*&      Form  executa_fb08

*&---------------------------------------------------------------------*

*      -->P_V_BELNRF05  text

*      -->P_SY_DATLO  text

*----------------------------------------------------------------------*

FORM executa_fb08 TABLES p_zycbt032 STRUCTURE /pws/zycbt032

                  USING  p_belnr

                         p_budat

                         p_zycbt007 STRUCTURE /pws/zycbt007

                         v_modo.

 

  DATA: itab_zycbe033  TYPE /pws/zycbe033 OCCURS 10 WITH HEADER LINE,

        vsubrc         TYPE sy-subrc.

 

  FREE: itab_zycbe033, p_zycbt032.

 

  CLEAR: p_zycbt032, itab_zycbe033, itab_contas, itab_zycbt036.

 

  itab_zycbe033-tcode  = 'FB08'.

  itab_zycbe033-tabela = '/PWS/ZYCIE085'.

  itab_zycbe033-cpochv = /pws/zycie085-nrseqdi.

  itab_zycbe033-belnr  = p_belnr.

  itab_zycbe033-bukrs  = /pws/zycie085-bukrs.

  itab_zycbe033-bldat  = p_budat.

  itab_zycbe033-gjahs  = itab_zycbe033-bldat+0(4).

 

 

  CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'

       EXPORTING

            v_data  = p_budat

            v_bukrs = /pws/zycie085-bukrs

            v_koart = 'K'

       IMPORTING

            v_subrc = vsubrc

            v_gjahr = itab_zycbe033-gjahr.

  IF vsubrc IS INITIAL.

    itab_zycbe033-budat  = p_budat.

    itab_zycbe033-stgrd  = p_zycbt007-percorr.

  ELSE.

    itab_zycbe033-budat  = sy-datlo.

    itab_zycbe033-stgrd  = p_zycbt007-perencer.

  ENDIF.

 

  APPEND itab_zycbe033.

  e_subrc = '0' .

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI023'

                              'DI005'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'DI005' BINARY SEARCH.

  IF sy-subrc EQ 0.

    "Verifica se a Exit está ativa.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

      IF e_subrc = '8'.

        EXIT.

      ENDIF.

    ENDIF.

  ENDIF.

 

  IF e_subrc = '0'.

    CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FB08_A'

         EXPORTING

              v_modo          = v_modo

         TABLES

              t_dados         = itab_zycbe033

              t_zycbt032      = p_zycbt032

         EXCEPTIONS

              campo_em_branco = 1

              OTHERS          = 2.

 

    IF sy-subrc = 0.

      READ TABLE p_zycbt032 WITH KEY tcode  = 'FB08'

                                        tabela = '/PWS/ZYCIE085'

                                        tpmsg  = 'S'.

    ELSE.

    ENDIF.

  ELSE.

    READ TABLE p_zycbt032 WITH KEY tcode  = 'FB08'

                                      tabela = '/PWS/ZYCIE085'

                                      tpmsg  = 'S'.

 

  ENDIF.

 

ENDFORM.                    " executa_fb08.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/LZYCIGF2TOP

 

...

  wa_rpy_dyfatc  TYPE rpy_dyfatc OCCURS 0 WITH HEADER LINE,

  v_input        LIKE screen-input,

  v_output       LIKE screen-output,

  v_required     LIKE screen-required,

  v_invisible    LIKE screen-invisible,

  v_tela         LIKE sy-dynnr,

  v_programa(40) TYPE c VALUE 'SAPMF05A'.

DATA: BEGIN OF itab_zycit019 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycit019.

DATA: END OF itab_zycit019.

 

* Esta pate não possui precedencia, pois é so criar no include TOP, em qq lugar!!!

* >> Início da inclusão:

DATA: v_belnrf05     TYPE /pws/zycbt032-belnr,

      v_erro_f05,

      e_subrc      VALUE '0',

      v_rec_ia_1       TYPE i.

DATA: BEGIN OF itab_bsis_aux OCCURS 10,

        hkont    LIKE bsis-hkont       ,

        dmbtr    LIKE bsis-dmbtr       ,

        wrbtr    LIKE bsis-wrbtr       ,

        tpfatura LIKE /pws/zycit006-tpfatura,

      END OF itab_bsis_aux.

DATA: BEGIN OF itab_matuse_aux2 OCCURS 0.

DATA: j_1bmatuse LIKE ekpo-j_1bmatuse,

      hkont      LIKE bsis-hkont     .

DATA: END OF itab_matuse_aux2 .

DATA: BEGIN OF itab_di OCCURS 0,

        hkont      LIKE bsis-hkont,

        vlseg      LIKE /pws/zycit100-vlseg,

        vlfre      LIKE /pws/zycit100-vlfre,

        vlfob      LIKE /pws/zycit100-vlfob,

        vldi       LIKE /pws/zycit100-vlfob,

        vlfren     LIKE /pws/zycit100-vlfre,

      END OF itab_di .

DATA: BEGIN OF itab_contas OCCURS 0.

        INCLUDE STRUCTURE /pws/zycbe035.

DATA: END OF itab_contas.

DATA: BEGIN OF itab_cta OCCURS 0.

        INCLUDE STRUCTURE /pws/zygle316.

DATA: END OF itab_cta.

DATA: BEGIN OF itab_matuse_aux OCCURS 0,

        j_1bmatuse LIKE ekpo-j_1bmatuse,

        hkont      LIKE bsis-hkont     ,

      END OF itab_matuse_aux           .

  DATA: BEGIN OF itab_bsis OCCURS 10.

  DATA: hkont    LIKE bsis-hkont       ,

        dmbtr    LIKE bsis-dmbtr       ,

        wrbtr    LIKE bsis-wrbtr       ,

        belnr    LIKE bsis-belnr       ,

        buzei    LIKE bsis-buzei       ,

        tpfatura LIKE /pws/zycit006-tpfatura.

  DATA: END OF itab_bsis.

  DATA: BEGIN OF itab_zyglt100 OCCURS 10.

          INCLUDE STRUCTURE /pws/zyglt100.

  DATA: END OF itab_zyglt100.

* << Fim da inclusão

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F01

 

...

           itab_zycit118[] TO itab_zycit118a[],

           itab_zycit121[] TO itab_zycit121a[],

           itab_zycit124[] TO itab_zycit124a[],

           itab_zycit200[] TO itab_zycit200a[],

           itab_zycit049di2[] TO itab_zycit049di[],

           itab_it[]       TO itab_ita[],

           /pws/zycie085        TO wa_zycit085.

  PERFORM save_especificacao.

  READ TABLE itab_zycit003 INDEX 1.

  IF itab_zycit003-qtd_itend IS INITIAL.

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

    PERFORM reclassificacao_ia.

* << Fim da exclusão

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

     perform reclassificacao_ia_funcao.

* << Fim da inclusão

  ENDIF.

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI023'

                              'DI006'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY zexit = 'DI006'  BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

...

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI023F04

 

...

 

* >> Início da inclusão:

form reclassificacao_ia_funcao.

  data: begin of itab_variacao occurs 0.

      include structure /pws/zycit085.

  data: end of itab_variacao.

  CHECK NOT /pws/zycie085-dtreg IS INITIAL AND

        NOT /pws/zycie085-nrdi  IS INITIAL.

      IF v_modo_bi IS INITIAL .

        v_modo_bi = 'N'.

      ENDIF.

      CALL FUNCTION '/PWS/ZYCI_RECLASSIFICACAO_IA'

        EXPORTING

          i_zycit001                 = itab_zycit001

          v_modo                     = v_modo_bi

          i_programa                 = 'DI'

       TABLES

         t_zycit100                 = itab_zycit100[]

         t_zycit003                 = itab_zycit003[]

         t_zycbt032                 = itab_zycbt032[]

         itab_variacao              = itab_variacao[]

       EXCEPTIONS

         table_initial              = 1

         existe_recebimento         = 2

         flag_reclassificacao       = 3

         dados_di_inicial           = 4

         OTHERS                     = 5

                .

      IF sy-subrc <> 0.

      ENDIF.

      read table itab_variacao index 1.

      move :

        itab_variacao-belnr_0 to /pws/zycie085-belnr_0 ,

        itab_variacao-belnr_1  to /pws/zycie085-belnr_1,

        itab_variacao-belnr_2  to /pws/zycie085-belnr_2,

        itab_variacao-belnr_3  to /pws/zycie085-belnr_3,

        itab_variacao-budat_0  to /pws/zycie085-budat_0,

        itab_variacao-budat_1  to /pws/zycie085-budat_1,

        itab_variacao-budat_2  to /pws/zycie085-budat_2,

        itab_variacao-budat_3  to /pws/zycie085-budat_3,

        itab_variacao-belnr_0_f05  to /pws/zycie085-belnr_0_f05,

        itab_variacao-belnr_1_f05  to /pws/zycie085-belnr_1_f05,

        itab_variacao-belnr_2_f05  to /pws/zycie085-belnr_2_f05,

        itab_variacao-belnr_3_f05  to /pws/zycie085-belnr_3_f05.

endform.

* << Fim da inclusão