CE PLUS - Nota 005776

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Despesas

Data/Hora da Publicação: 29/01/2008 00:00:00

Data/Hora Última Alteração: 22/02/2011 15:50:21

Descrição da Nota: RATEIO DAS DESPESAS

Sintoma

O rateio das despesas na Fatura não está respeitando os parametros da tabela /pws/zycit039, e está

rateando sempre por valor.

 

 

Solução

Corrigir o rateio das despesas para seguir os parametros da tabela /pws/zycit039.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA DI

DESENVOLVIMENTO PARA GERAR A MIRO NA FATURA(AMERICA LATINA)

Informações Complementares

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

Nota Número 05776 Data: 29/01/2008 Hora: 13:11:13

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

 

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

Nota Número              : 05776

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00004

Agrupamento              : 00032

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

Referência às notas relacionadas:

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

 

04286  - 00001 - 7.0    - 00002  - DESENVOLVIMENTO PARA GERAR A MIRO NA FATURA(AMERICA LATINA)

04750  - 00002 - 7.0    - 00002  - ERRO RATEIO DESPESAS, VARIAÇÃO CAMBIAL, VLR DO SEGURO, GRANEL DA

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

RATEIO DAS DESPESAS

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

Palavras Chave:

RATEIO - DESPESAS - FATURA

/PWS/SAPMZYCI003

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

Objetos da nota:

FUNC /PWS/ZYCI_RATEIO_CUSTO

REPS /PWS/MZYCI003F01

REPS /PWS/MZYCI003F02

REPS /PWS/MZYCI003I01

REPS /PWS/MZYCI003O01

REPS /PWS/MZYCI003X01

 

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

Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO

 

...

                                           CHANGING  v_taxa.

        IF NOT v_taxa IS INITIAL .

          itab_zycit003-vlreal = itab_zycit003-vlreal / v_taxa.

          itab_zycit003-netpr  = itab_zycit003-netpr  / v_taxa.

        ENDIF.

      ENDIF.

      v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).

      v_tot_vlreal = v_tot_vlreal + ( itab_zycit003-vlreal *

                      itab_zycit003-qtd_iten ).

    ENDIF.

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

    v_tpeso = v_tpeso + itab_zycit003-ntgew.

    v_valor  = itab_zycit003-qtd_iten * itab_zycit003-vlreal.

    IF NOT v_valor IS INITIAL AND NOT v_tvalor IS INITIAL.

      v_tseg = v_valor / v_tvalor.

    ENDIF.

    v_seg = v_seg + v_valor.

* << Fim da exclusão

  ENDLOOP.

  IF /pws/zycit001-regime = '04' AND /pws/zycit001-tpdecl = 'DI'.

    SELECT * FROM /pws/zycit443

          INTO TABLE itab_zycit443

          WHERE nrseq = itab_zycit003-nrseq.

    READ TABLE itab_zycit443 INDEX 1.

    IF sy-subrc EQ 0.

      SELECT SINGLE * FROM /pws/zycit442 INTO /pws/zycie442

        WHERE nrseqda = itab_zycit443-nrseqda.

      LOOP AT itab_zycit443.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F01

 

...

  IF NOT /pws/zycie006-belnr_p IS INITIAL.

    v_contabilizou = 'X'.

  ELSE.

    LOOP AT itab_zycit132 WHERE belnr_p NE space.

      v_contabilizou = 'X'.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM fill_date_f-43_f-02.

  DATA:

* >> Início da exclusão: FORM FILL_DATE_F-43_F-02

  v_embarca LIKE /pws/zycit001-embarca,

  v_ukurs   LIKE /pws/zycit085-ukursfob,

  v_fator   LIKE tcurr-ffact.

* << Fim da exclusão

* >> Início da inclusão: FORM FILL_DATE_F-43_F-02

  v_ukurs   LIKE /pws/zycit085-ukursfob.

* << Fim da inclusão

  DATA: v_de   LIKE tcurf-ffact,

        v_para LIKE tcurf-tfact.

  IF v_subrc IS INITIAL.

    PERFORM multiplos_lancamentos.

  ENDIF.

  PERFORM get_parameters_f-43_f-02.

  itab_zycbe033-mandt = sy-mandt.

  itab_zycbe033-tcode = v_trans.

  itab_zycbe033-tabela = '/PWS/ZYCIT006'.

  IF v_parcela = 'X'.

...

 

...

       AND dtincl     IN itab_dtincl

       AND tpfatura   IN itab_tpfatura.

  DESCRIBE TABLE itab_zycit006_all LINES v_nolin.

  IF v_nolin IS INITIAL.

    MESSAGE w002.

  ELSE.

    CALL SCREEN 0003.

  ENDIF.

ENDFORM.

FORM buscar_cnpj.

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

  DATA: v_branch LIKE t001w-j_1bbranch,

* << Fim da exclusão

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

  DATA:

* << Fim da inclusão

        v_cgc LIKE j_1bwfield-cgc_number.

  IF NOT /pws/zycie006-j_1bbranch IS INITIAL

     AND v_cnpj IS INITIAL.

    CALL FUNCTION 'J_1BREAD_BRANCH_DATA'

         EXPORTING

              branch            = /pws/zycie006-j_1bbranch

              bukrs             = /pws/zycie006-bukrs

         IMPORTING

              cgc_number        = /pws/zycie006-cnpj

         EXCEPTIONS

...

 

...

        ENDIF.

      ENDIF.

      /pws/zycie006-dtbase = /pws/zycie006-dtincl.

    ENDIF.

  ENDIF.

  IF /pws/zycie006-dataprvtsr IS INITIAL.

    /pws/zycie006-dataprvtsr = /pws/zycie006-dtvencto.

  ENDIF.

ENDFORM.

FORM custeando_despesa_inco.

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

  DATA: v_totdesp LIKE /pws/zycit036-vlreal  ,

        v_tot     LIKE /pws/zycit036-vlreal  ,

        v_real_acum LIKE /pws/zycit036-vlreal,

        v_real_dif  LIKE /pws/zycit036-vlreal.

* << Fim da exclusão

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

  DATA:

        v_real_acum LIKE /pws/zycit036-vlreal.

* << Fim da inclusão

  DATA itab_zycit036_plan LIKE /pws/zycit036 OCCURS 0 WITH HEADER LINE.

  IF ( /pws/zycie006-tpfatura = '01' OR /pws/zycie006-tpfatura = '11' ).

    PERFORM fill_nrseq_pgfat.

    LOOP AT itab_zycit003_ini.

      READ TABLE itab_zycit003 WITH KEY nrseq = itab_zycit003_ini-nrseq

                                        ebeln = itab_zycit003_ini-ebeln

                                        ebelp = itab_zycit003_ini-ebelp.

      IF sy-subrc NE 0.

        CLEAR: itab_zycit003_ini-vlreal, itab_zycit003_ini-vlmov,

               itab_zycit003_ini-nrseq_pgfat, itab_zycit003_ini-livre.

...

 

...

  IF NOT /pws/zycie006-inco1 IS INITIAL.

    FREE so_inco1.

    so_inco1-sign   = 'I'.

    so_inco1-option = 'EQ'.

    so_inco1-low    = /pws/zycie006-inco1.

    APPEND so_inco1.

  ENDIF.

  CALL SELECTION-SCREEN '0300'.

ENDFORM.

FORM selecionar_itens.

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

  DATA: v_nolin TYPE i VALUE IS INITIAL,

        v_lifnr LIKE /pws/zycie006-lifnr,

        v_waers LIKE /pws/zycie006-waers,

        v_inco1 LIKE /pws/zycie006-inco1,

        v_cont  TYPE i,

* << Fim da exclusão

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

  DATA:

* << Fim da inclusão

        v_itens_inconsistentes.

  IF so_nrseq IS INITIAL AND so_ebeln IS INITIAL.

    MESSAGE e015 WITH text-047.

  ENDIF.

  FREE itab_zycit003_aux.

  FREE: itab_lifnr , itab_inco1 , itab_waers.

  IF NOT /pws/zycie006-inco1 IS INITIAL.

    itab_inco1-sign   = 'I'.

    itab_inco1-option = 'EQ'.

    itab_inco1-low    = /pws/zycie006-inco1.

...

 

...

      ENDIF.

    ENDIF.

    IF itab_zycit003_ini[] IS INITIAL.

      MOVE itab_zycit003[] TO itab_zycit003_ini[].

    ENDIF.

  ENDIF.

ENDFORM.

FORM busca_sequencial_fatura.

  DATA:

    v_nrseq   LIKE /pws/zycit006-nrseq,

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

    v_nrseq_ant LIKE /pws/zycit006-nrseq,

* << Fim da exclusão

    v_count(7) TYPE n,

    v_ano1(4).

  CONCATENATE '%' 'I' sy-datum+2(2) INTO v_ano1.

  SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycit006

                                     WHERE nrseq LIKE v_ano1.

  v_count = v_nrseq+0(7) + 1.

  CONCATENATE v_count 'I' sy-datum+2(2) INTO /pws/zycie006-nrseq.

ENDFORM.

FORM exibe_item.

  CLEAR v_consiste.

...

 

...

    CALL FUNCTION 'EDITOR_APPLICATION'

         EXPORTING

              application = 'TT'

              display     = 'X'

              name        = v_chave

         TABLES

              content     = rtext_aux.

  ENDIF.

ENDFORM.

FORM exibir_fatura.

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

  DATA: v_rateio LIKE /pws/zycit006-ratval.

* << Fim da exclusão

  SELECT * FROM /pws/zycit006

    INTO TABLE itab_zycit006

    WHERE nrseq EQ /pws/zycie006-nrseq

      AND bukrs EQ /pws/zycie006-bukrs.

  SELECT SINGLE *

    FROM /pws/zycet076

    WHERE codigo_ce EQ 'PI'.

  LOOP AT itab_zycit006.

    SELECT SINGLE lifn2  FROM ekpa INTO v_emissor

           WHERE ebeln = itab_zycit006-belnr_p

...

 

...

      ELSE.

        DELETE FROM /pws/zycit047 WHERE nrseq  =  itab_zycit047-nrseq

                               AND nrfat  =  itab_zycit047-nrfat

                               AND tpdesp =  itab_zycit047-tpdesp

                               AND descr  =  itab_zycit047-descr.

      ENDIF.

    ENDLOOP.

  ENDIF.

  v_salva = 1.

ENDFORM.

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

FORM gravar_custos.

  DATA: v_lines TYPE i,

        v_vldp_custo LIKE itab_despesa_custo-vldp,

        v_codigo LIKE /pws/zycit036-codigo,

        v_tot_vldp LIKE /pws/zycit036-vlreal,

        v_valor_real LIKE /pws/zycit036-vlreal,

        v_index LIKE sy-tabix,

        v_cod_sisc LIKE /pws/zycit019-codigo,

        v_tot_real LIKE /pws/zycit003-vlreal.

  SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie006-bukrs.

  SELECT SINGLE * FROM j_1bbranch INTO j_1bbranch

     WHERE bukrs = /pws/zycie001-bukrs

     AND branch = /pws/zycie001-j_1bbranch.

  SELECT SINGLE * FROM adrc INTO adrc

    WHERE addrnumber = j_1bbranch-adrnr.

  SELECT * FROM /pws/zycit019

    INTO TABLE itab_zycit019

    WHERE regio EQ adrc-region AND

          land1 EQ t001-land1.

  IF sy-subrc NE 0.

    SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie001-bukrs.

    SELECT * FROM /pws/zycit019

      INTO TABLE itab_zycit019

      WHERE regio EQ space AND

            land1 EQ t001-land1.

  ENDIF.

  FREE it_zycit047_aux2.

  LOOP AT itab_zycit047.

    MOVE-CORRESPONDING itab_zycit047 TO it_zycit047_aux2.

    CLEAR it_despesa.

    READ TABLE it_despesa WITH KEY tpdesp = itab_zycit047-tpdesp.

    IF sy-subrc EQ 0 AND itab_zycit047-vldp NE 0.

      MOVE it_despesa-codigo TO it_zycit047_aux2-codigo.

      APPEND it_zycit047_aux2.

    ENDIF.

  ENDLOOP.

  FREE itab_despesa_custo.

  LOOP AT it_zycit047_aux2.

    itab_despesa_custo-codigo = it_zycit047_aux2-codigo.

    itab_despesa_custo-vldp = it_zycit047_aux2-vldp.

    COLLECT itab_despesa_custo.

  ENDLOOP.

  FREE it_zycit047_ini2.

  LOOP AT itab_zycit047_ini.

    MOVE-CORRESPONDING itab_zycit047_ini TO it_zycit047_ini2.

    CLEAR it_despesa.

    READ TABLE it_despesa WITH KEY tpdesp = itab_zycit047_ini-tpdesp.

    IF sy-subrc EQ 0 AND itab_zycit047_ini-vldp NE 0.

      MOVE it_despesa-codigo TO it_zycit047_ini2-codigo.

      APPEND it_zycit047_ini2.

    ENDIF.

  ENDLOOP.

  FREE itab_despesa_custo_ini.

  LOOP AT it_zycit047_ini2.

    itab_despesa_custo_ini-codigo = it_zycit047_ini2-codigo.

    itab_despesa_custo_ini-vldp = it_zycit047_ini2-vldp.

    COLLECT itab_despesa_custo_ini.

  ENDLOOP.

  IF NOT itab_zycit094[] IS INITIAL.

    SELECT * FROM /pws/zycit001 INTO TABLE itab_zycit001

    FOR ALL ENTRIES IN itab_zycit094

    WHERE nrseq = itab_zycit094-nrseq.

  ENDIF.

  .

  REFRESH itab_zycit036. CLEAR itab_zycit036.

  LOOP AT itab_zycit094.

    IF NOT itab_despesa_custo[] IS INITIAL.

      IF NOT itab_zycit036[] IS INITIAL.

        SELECT * FROM /pws/zycit036

          APPENDING TABLE itab_zycit036

          FOR ALL ENTRIES IN itab_despesa_custo

          WHERE nrseq  = itab_zycit094-nrseq

            AND codigo = itab_despesa_custo-codigo

            AND origem     = 'FAT'.

      ENDIF.

    ENDIF.

  ENDLOOP.

  SELECT SINGLE land1

    FROM t001

    INTO t001-land1

    WHERE bukrs = /pws/zycie006-bukrs.

  SELECT * FROM /pws/zycit039

    INTO TABLE itab_zycit039

    WHERE codmod = 'D'

      AND land1 = t001-land1.

  SORT itab_zycit036 BY codigo.

 READ TABLE itab_zycit036 INDEX 1.

  v_codigo = itab_zycit036-codigo.

  LOOP AT itab_zycit036.

  IF v_codigo NE itab_zycit036-codigo.

      CLEAR itab_zycit036-total.

    ENDIF.

    itab_zycit036-total = itab_zycit036-total + itab_zycit036-vlreal.

    MODIFY itab_zycit036 TRANSPORTING total

                          WHERE codigo = itab_zycit036-codigo.

    v_codigo = itab_zycit036-codigo.

  ENDLOOP.

  IF NOT itab_zycit036[] IS INITIAL.

    SELECT * FROM /pws/zycit003

             INTO TABLE itab_zycit003

             FOR ALL ENTRIES IN itab_zycit036

             WHERE nrseq = itab_zycit036-nrseq.

  ELSE.

    IF NOT itab_zycit094[] IS INITIAL.

      SELECT * FROM /pws/zycit036

               INTO TABLE itab_zycit036

               FOR ALL ENTRIES IN itab_zycit094

               WHERE nrseq = itab_zycit094-nrseq.

      IF NOT itab_zycit036[] IS INITIAL.

        SELECT * FROM /pws/zycit003

                 INTO TABLE itab_zycit003

                 FOR ALL ENTRIES IN itab_zycit036

                 WHERE nrseq = itab_zycit036-nrseq

                   AND ebeln = itab_zycit036-ebeln

                   AND ebelp = itab_zycit036-ebelp.

        FREE itab_zycit036.

      ENDIF.

    ENDIF.

  ENDIF.

  CLEAR: v_tot, v_tot_ntgew, v_tot_real.

  LOOP AT itab_zycit003.

    v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).

    v_tot_ntgew = v_tot_ntgew + itab_zycit003-ntgew.

    v_tot_real = v_tot_real +

         ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).

  ENDLOOP.

  SORT itab_zycit003 BY nrseq ebeln ebelp.

  SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie006-bukrs.

  SELECT SINGLE codigo FROM /pws/zycit019 INTO v_cod_sisc

    WHERE tpdesp = /pws/zycit000-cod_sisc AND

           land1 = t001-land1. "#EC CI_NOFIRST

  LOOP AT itab_despesa_custo.

    DESCRIBE TABLE itab_zycit003 LINES v_lines.

    READ TABLE itab_zycit039 WITH KEY

                         codigo = itab_despesa_custo-codigo.

    IF v_kursf IS INITIAL AND /pws/zycie006-waers NE

 /pws/zycbt007-waersb.

      IF /pws/zycit085 IS INITIAL OR

       /pws/zycie006-tpfatura = '04' .

        PERFORM busca_taxa_dia.

      ELSE.

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

          v_kursf = /pws/zycit085-ukursfre.

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

          v_kursf = /pws/zycit085-ukursseg.

        ENDIF.

      ENDIF.

    ENDIF.

    IF v_kursf IS INITIAL AND /pws/zycie006-waers EQ

 /pws/zycbt007-waersb.

      v_kursf = 1.

    ENDIF.

    IF itab_despesa_custo-codigo = v_cod_sisc

       AND NOT /pws/zycit000-flag_txsisc IS INITIAL AND

       /pws/zycit001-tpdecl = 'DI'.

      READ TABLE itab_zycit003 INDEX 1.

      SELECT * FROM /pws/zycit100 INTO TABLE itab_zycit100

        WHERE nrseq = itab_zycit003-nrseq. "#EC CI_NOFIRST

      IF NOT itab_zycit100[] IS INITIAL.

        SELECT * FROM /pws/zycit116 INTO TABLE itab_zycit116

          FOR ALL ENTRIES IN itab_zycit100

          WHERE nrseqdi = itab_zycit100-nrseqdi.

      ENDIF.

      LOOP AT itab_zycit116.

        LOOP AT itab_zycit100 WHERE adicao = itab_zycit116-adicao.

          itab_zycit116-nr_itens = itab_zycit116-nr_itens + 1.

        ENDLOOP.

        MODIFY itab_zycit116.

      ENDLOOP.

      DESCRIBE TABLE itab_zycit116 LINES v_lines.

      v_sisco1 = ( ( itab_despesa_custo-vldp * v_kursf ) -

                   /pws/zycit000-txsis_fix ) / v_lines.

      v_sisco2 =   /pws/zycit000-txsis_fix / v_lines.

      v_sisco3 = v_sisco1 + v_sisco2.

      LOOP AT itab_zycit116.

        CLEAR: v_lines, v_sisco_tot.

        v_sisco_item = v_sisco3 / itab_zycit116-nr_itens.

        LOOP AT itab_zycit100 WHERE adicao = itab_zycit116-adicao.

          v_lines = v_lines + 1.

          IF v_lines = itab_zycit116-nr_itens.

            itab_zycit100-vl_sisco = v_sisco3 - v_sisco_tot.

          ELSE.

            itab_zycit100-vl_sisco = v_sisco_item.

            v_sisco_tot = v_sisco_tot + v_sisco_item.

          ENDIF.

          MODIFY itab_zycit100.

        ENDLOOP.

      ENDLOOP.

      LOOP AT itab_zycit100.

        READ TABLE itab_zycit036 WITH KEY nrseq  = itab_zycit100-nrseq

                                          ebeln  = itab_zycit100-ebeln

                                          ebelp  = itab_zycit100-ebelp

                                     codigo = itab_despesa_custo-codigo

                                       origem = 'FAT'.

        IF sy-subrc NE 0.

          /pws/zycie036-nrseq      = itab_zycit100-nrseq.

          /pws/zycie036-ebeln      = itab_zycit100-ebeln.

          /pws/zycie036-ebelp      = itab_zycit100-ebelp.

          /pws/zycie036-codigo     = itab_despesa_custo-codigo.

          /pws/zycie036-waers_real = /pws/zycbt007-waersb.

          /pws/zycie036-origem = 'FAT'.

          /pws/zycie036-bukrs      = /pws/zycie006-bukrs.

          /pws/zycie036-werks      = itab_zycit003-werks.

          /pws/zycie036-embarca    = itab_zycit001-embarca.

          /pws/zycie036-codmod     = 'D'.

          /pws/zycie036-status     = 'M'.

          /pws/zycie036-vlreal_emb = itab_despesa_custo-vldp.

          /pws/zycie036-vlreal_emb = /pws/zycie036-vlreal_emb * v_kursf.

          /pws/zycie036-waers_emb  = /pws/zycbt007-waersb.

          /pws/zycie036-vlreal     = itab_zycit100-vl_sisco.

          /pws/zycie036-nrseqori   = /pws/zycie006-nrseq.

          /pws/zycie036-usernamec  = sy-uname.

          /pws/zycie036-dtuserc    = sy-datum.

          /pws/zycie036-hruserc    = sy-uzeit.

          MODIFY /pws/zycit036 FROM /pws/zycie036.

        ELSE.

          itab_zycit036-vlreal_emb = itab_zycit036-vlreal_emb +

            itab_zycit100-vl_sisco.

          itab_zycit036-vlreal = itab_zycit036-vlreal +

            itab_zycit100-vl_sisco.

          MODIFY /pws/zycit036 FROM itab_zycit036.

        ENDIF.

      ENDLOOP.

    ELSE.

      DESCRIBE TABLE itab_zycit003 LINES v_line.

      DESCRIBE TABLE itab_zycit003 LINES v_lines.

      CLEAR v_tot_vldp.

      LOOP AT itab_zycit003.

        MOVE sy-tabix TO v_tabix.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        CLEAR itab_zycit036.

        READ TABLE itab_zycit036 WITH KEY nrseq  = itab_zycit003-nrseq

                                          ebeln  = itab_zycit003-ebeln

                                          ebelp  = itab_zycit003-ebelp

                                     codigo = itab_despesa_custo-codigo.

        IF sy-subrc NE 0.

          /pws/zycie036-nrseq      = itab_zycit003-nrseq.

          /pws/zycie036-ebeln      = itab_zycit003-ebeln.

          /pws/zycie036-ebelp      = itab_zycit003-ebelp.

          /pws/zycie036-codigo     = itab_despesa_custo-codigo.

          /pws/zycie036-waers_real = /pws/zycbt007-waersb.

          /pws/zycie036-origem = 'FAT'.

          /pws/zycie036-bukrs      = /pws/zycie006-bukrs.

          /pws/zycie036-werks      = itab_zycit003-werks.

          /pws/zycie036-embarca    = itab_zycit001-embarca.

          /pws/zycie036-codmod     = 'D'.

          /pws/zycie036-status     = 'M'.

          /pws/zycie036-nrseqori   = /pws/zycie006-nrseq.

          /pws/zycie036-usernamec  = sy-uname.

          /pws/zycie036-dtuserc    = sy-datum.

          /pws/zycie036-hruserc    = sy-uzeit.

          /pws/zycie036-vlreal_emb = itab_despesa_custo-vldp.

          /pws/zycie036-vlreal_emb = /pws/zycie036-vlreal_emb * v_kursf.

          /pws/zycie036-waers_emb  = /pws/zycbt007-waersb.

          v_plan = itab_zycit003-netpr * itab_zycit003-qtd_iten.

          IF v_tabix = v_line.

            /pws/zycie036-vlreal = itab_despesa_custo-vldp - v_tot_vldp.

          ELSE.

            IF itab_zycit039-divabs EQ 'X'.

              /pws/zycie036-vlreal   = itab_despesa_custo-vldp /

 v_lines.

            ELSEIF itab_zycit039-peso EQ 'X'.

              /pws/zycie036-vlreal   = itab_despesa_custo-vldp *

                  itab_zycit003-ntgew / v_tot_ntgew.

            ELSEIF itab_zycit039-proporplan EQ 'X'.

              /pws/zycie036-vlreal = v_plan / v_tot

              * itab_despesa_custo-vldp.

            ELSE.

              /pws/zycie036-vlreal = itab_zycit003-vlreal *

           itab_zycit003-qtd_iten / v_tot_real

              * itab_despesa_custo-vldp.

            ENDIF.

            v_tot_vldp = v_tot_vldp + /pws/zycie036-vlreal.

          ENDIF.

          /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

          MODIFY /pws/zycit036 FROM /pws/zycie036.

        ELSEIF itab_zycit036-codigo EQ 'FRETEI' OR

          itab_zycit036-codigo EQ 'SEGURO'.

          MOVE itab_zycit036 TO /pws/zycie036.

          /pws/zycie036-vlreal_emb = itab_despesa_custo-vldp +

                                /pws/zycie036-vlreal_emb.

          /pws/zycie036-waers_emb  = /pws/zycie006-waers.

          /pws/zycie036-waers_real = /pws/zycie006-waers.

          /pws/zycie036-origem = 'FAT'.

          IF itab_zycit039-divabs EQ 'X'.

            /pws/zycie036-vlreal   = itab_despesa_custo-vldp / v_lines.

          ELSEIF itab_zycit039-peso EQ 'X'.

            /pws/zycie036-vlreal   = itab_despesa_custo-vldp *

                itab_zycit003-ntgew / v_tot_ntgew.

          ELSE.

            /pws/zycie036-vlreal   =

            itab_zycit036-vlreal / itab_zycit036-total

            * itab_despesa_custo-vldp.

          ENDIF.

          MODIFY /pws/zycit036 FROM /pws/zycie036.

        ELSEIF itab_zycit036-codigo EQ 'II' OR

          itab_zycit036-codigo EQ 'IPI' OR

          itab_zycit036-codigo EQ 'ICMS'.

          SELECT SINGLE * FROM /pws/zycit007

            WHERE tpimp = itab_zycit036-codigo. "#EC CI_NOFIRST

          IF sy-subrc EQ 0 AND

            /pws/zycit007-valor NE itab_despesa_custo-vldp.

            MOVE itab_zycit036 TO /pws/zycie036.

            /pws/zycie036-origem = 'FAT'.

            /pws/zycie036-vlreal_emb = itab_despesa_custo-vldp +

                                  /pws/zycie036-vlreal_emb.

            /pws/zycie036-waers_emb  = /pws/zycie006-waers.

            /pws/zycie036-waers_real = /pws/zycie006-waers.

            /pws/zycie036-vlreal     =

            itab_zycit036-vlreal / itab_zycit036-total  *

            itab_despesa_custo-vldp +  /pws/zycie036-vlreal.

            MODIFY /pws/zycit036 FROM /pws/zycie036.

          ENDIF.

        ELSE.

          CLEAR itab_despesa_custo_ini.

          READ TABLE itab_despesa_custo_ini WITH KEY codigo =

                                         itab_despesa_custo-codigo.

          IF itab_despesa_custo-vldp NE itab_despesa_custo_ini-vldp.

            CLEAR v_vldp_custo.

            v_vldp_custo = itab_despesa_custo-vldp -

                           itab_despesa_custo_ini-vldp.

            MOVE itab_zycit036 TO /pws/zycie036.

            IF NOT /pws/zycie036-vlreal_emb IS INITIAL.

              /pws/zycie036-vlreal_emb =

              /pws/zycie036-vlreal_emb / v_kursf.

            ENDIF.

            /pws/zycie036-vlreal_emb = v_vldp_custo +

                                  /pws/zycie036-vlreal_emb.

            /pws/zycie036-vlreal_emb =

            /pws/zycie036-vlreal_emb * v_kursf.

            /pws/zycie036-waers_emb = /pws/zycbt007-waersb.

            /pws/zycie036-waers_real = /pws/zycbt007-waersb.

            /pws/zycie036-origem = 'FAT'.

            IF NOT /pws/zycie036-vlreal IS INITIAL.

              /pws/zycie036-vlreal = /pws/zycie036-vlreal / v_kursf.

            ENDIF.

            v_plan = itab_zycit003-netpr * itab_zycit003-qtd_iten.

            IF v_lines = v_index.

              v_valor_real = itab_despesa_custo-vldp - v_tot_vldp.

              /pws/zycie036-vlreal =

              v_valor_real + /pws/zycie036-vlreal.

            ELSE.

              IF itab_zycit039-divabs EQ 'X'.

                v_valor_real   = v_vldp_custo / v_lines .

                /pws/zycie036-vlreal =

                v_valor_real + /pws/zycie036-vlreal.

                /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

              ELSEIF itab_zycit039-peso EQ 'X'.

                v_valor_real   = v_vldp_custo * itab_zycit003-ntgew /

                      v_tot_ntgew .

                /pws/zycie036-vlreal =

                v_valor_real + /pws/zycie036-vlreal.

                /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

              ELSEIF itab_zycit039-proporplan EQ 'X'. .

                v_valor_real = v_plan / v_tot * v_vldp_custo.

                /pws/zycie036-vlreal =

                /pws/zycie036-vlreal + v_valor_real.

                /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

              ELSE.

                v_valor_real = itab_zycit003-netpr *

                  itab_zycit003-qtd_iten / v_tot_real * v_vldp_custo.

                /pws/zycie036-vlreal =

                /pws/zycie036-vlreal + v_valor_real.

                /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

              ENDIF.

              v_tot_vldp = v_tot_vldp + v_valor_real.

            ENDIF.

            MODIFY /pws/zycit036 FROM /pws/zycie036.

          ENDIF.

        ENDIF.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

  REFRESH itab_zycit094. CLEAR itab_zycit094.

  LOOP AT itab_zycit094.

    IF NOT itab_despesa_custo_ini[] IS INITIAL.

      SELECT * FROM /pws/zycit036

        APPENDING TABLE itab_zycit036_aux

        FOR ALL ENTRIES IN itab_despesa_custo_ini

        WHERE nrseq  = itab_zycit094-nrseq

          AND codigo = itab_despesa_custo_ini-codigo

          AND origem = 'FAT'.

    ENDIF.

  ENDLOOP.

  LOOP AT itab_despesa_custo_ini.

    READ TABLE itab_despesa_custo

          WITH KEY codigo = itab_despesa_custo_ini-codigo.

    IF sy-subrc NE 0.

      READ TABLE itab_zycit039 WITH KEY

                         codigo = itab_despesa_custo_ini-codigo.

      IF v_kursf IS INITIAL AND

      /pws/zycie006-waers NE /pws/zycbt007-waersb.

        IF /pws/zycit085 IS INITIAL OR /pws/zycie006-tpfatura = '04'.

          PERFORM busca_taxa_dia.

        ELSE.

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

            v_kursf = /pws/zycit085-ukursfre.

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

            v_kursf = /pws/zycit085-ukursseg.

          ENDIF.

        ENDIF.

      ENDIF.

      IF v_kursf IS INITIAL AND

      /pws/zycie006-waers EQ /pws/zycbt007-waersb.

        v_kursf = 1.

      ENDIF.

      LOOP AT itab_zycit003.

        READ TABLE itab_zycit001 WITH KEY nrseq = itab_zycit003-nrseq.

        CLEAR itab_zycit036_aux.

        READ TABLE itab_zycit036_aux

                   WITH KEY nrseq  = itab_zycit003-nrseq

                                        ebeln  = itab_zycit003-ebeln

                                        ebelp  = itab_zycit003-ebelp

                              codigo = itab_despesa_custo_ini-codigo.

        MOVE itab_zycit036_aux TO /pws/zycie036.

        IF NOT /pws/zycie036-vlreal_emb IS INITIAL.

          /pws/zycie036-vlreal_emb = /pws/zycie036-vlreal_emb / v_kursf.

        ENDIF.

        /pws/zycie036-origem = 'FAT'.

        /pws/zycie036-vlreal_emb = /pws/zycie036-vlreal_emb -

                              itab_despesa_custo_ini-vldp.

        /pws/zycie036-vlreal_emb = /pws/zycie036-vlreal_emb * v_kursf.

        IF NOT /pws/zycie036-vlreal IS INITIAL.

          /pws/zycie036-vlreal = /pws/zycie036-vlreal / v_kursf.

        ENDIF.

        IF itab_zycit039-divabs EQ 'X'.

          /pws/zycie036-vlreal = /pws/zycie036-vlreal -

              itab_despesa_custo_ini-vldp / v_lines.

          /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

        ELSEIF itab_zycit039-peso EQ 'X'.

          /pws/zycie036-vlreal = /pws/zycie036-vlreal -

              ( itab_despesa_custo_ini-vldp * itab_zycit003-ntgew /

              v_tot_ntgew ).

          /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

        ELSEIF itab_zycit039-proporplan EQ 'X'.

          /pws/zycie036-vlreal =

          /pws/zycie036-vlreal - itab_zycit003-netpr *

             itab_zycit003-qtd_iten  / v_tot *

             itab_despesa_custo_ini-vldp.

          /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

        ELSE.

          /pws/zycie036-vlreal =

          /pws/zycie036-vlreal - itab_zycit003-vlreal *

             itab_zycit003-qtd_iten  / v_tot_real *

             itab_despesa_custo_ini-vldp.

          /pws/zycie036-vlreal = /pws/zycie036-vlreal * v_kursf.

        ENDIF.

        MODIFY /pws/zycit036 FROM /pws/zycie036.

      ENDLOOP.

    ENDIF.

  ENDLOOP.

ENDFORM.

* << Fim da exclusão

FORM atualiza_despesas.

  DATA: v_congelamov,

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

        v_lrc LIKE /pws/zycit036-vlreal,

        v_tot_lrc LIKE /pws/zycit036-vlreal,

        v_cod_sisc LIKE /pws/zycit019-codigo,

        v_tot_vlreal LIKE /pws/zycit003-vlreal.

* << Fim da exclusão

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

        v_cod_sisc LIKE /pws/zycit019-codigo.

        clear v_tot_vlreal.

* << Fim da inclusão

  DATA itab_zycit036_aux LIKE /pws/zycit036 OCCURS 0 WITH HEADER LINE.

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

  DATA: wa_zycit036_aux LIKE /pws/zycit036.

* << Fim da exclusão

  SELECT SINGLE * FROM j_1bbranch INTO j_1bbranch

    WHERE bukrs = /pws/zycie001-bukrs

     AND branch = /pws/zycie001-j_1bbranch.

  SELECT SINGLE * FROM adrc INTO adrc

    WHERE addrnumber = j_1bbranch-adrnr.

  SELECT * FROM /pws/zycit019

...

 

...

  ENDIF.

  IF v_subrc NE 'X'.

    SELECT * FROM /pws/zycit094 INTO TABLE itab_zycit094

       WHERE nrseqce = v_nrseqce.

    /pws/zycie006-nrseqce = v_nrseqce.

    IF /pws/zycie006-nrseqce IS INITIAL.

      MESSAGE s015 WITH text-075.

    ENDIF.

  ENDIF.

ENDFORM.

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

FORM load_juro.

  CLEAR: a_txjur.

  SELECT SINGLE descricao FROM /pws/zycet180 INTO a_txjur

         WHERE codtxjuros = /pws/zycie116-codtxjuros.

ENDFORM.

* << Fim da exclusão

FORM load_ifin.

  CLEAR: a_ifina.

  SELECT SINGLE descricao FROM /pws/zycit170 INTO a_ifina WHERE

         codinst = /pws/zycie006-codinst.

ENDFORM.

FORM load_moti USING    p_motivo

               CHANGING p_desc.

  CLEAR: p_desc.

  SELECT SINGLE descricao FROM /pws/zycit169 INTO p_desc

         WHERE codmotivo = p_motivo.

...

 

...

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

FORM load_grupo.

  CLEAR a_desc.

  SELECT SINGLE descricao FROM /pws/zycit128

     INTO a_desc

     WHERE codigo = /pws/zycie006-gpcambio.

ENDFORM.

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

FORM seleciona_deducoes.

  IF /pws/zycie006-tpfatura = '05' AND itab_zycit006_ded[] IS INITIAL

       AND v_exibe_ded IS INITIAL.

    v_exibe_ded = 'X'.

    SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006_ded

    WHERE nrseq = /pws/zycie006-nrseq

      AND nrfat = /pws/zycie006-nrfat

      AND tpfatura = '05'

      AND bukrs = /pws/zycie006-bukrs

      AND lifnr = /pws/zycie006-lifnr.

    IF sy-subrc EQ 0.

      READ TABLE itab_zycit006_ded INDEX 1.

      /pws/zycie006-gpcambio = itab_zycit006_ded-gpcambio.

      IF NOT itab_zycit006_ded[] IS INITIAL.

        SELECT * FROM /pws/zycit130 INTO TABLE itab_zycit130

          FOR ALL ENTRIES IN itab_zycit006_ded

           WHERE nrseq = itab_zycit006_ded-nrseq.

      ENDIF.

      SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006_ded

       WHERE nrfat = /pws/zycie006-nrfat

         AND tpfatura = '05'

         AND bukrs = /pws/zycie006-bukrs

         AND lifnr = /pws/zycie006-lifnr. "#EC CI_NOFIELD

    ELSE.

      SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006_ded

       WHERE nrfat = /pws/zycie006-nrfat

         AND tpfatura NE '05'

         AND bukrs = /pws/zycie006-bukrs

         AND lifnr = /pws/zycie006-lifnr. "#EC CI_NOFIELD

      IF sy-subrc EQ 0.

        READ TABLE itab_zycit006_ded INDEX 1.

        /pws/zycie006-gpcambio = itab_zycit006_ded-gpcambio.

        IF NOT itab_zycit006_ded[] IS INITIAL.

          SELECT * FROM /pws/zycit130 INTO TABLE itab_zycit130

            FOR ALL ENTRIES IN itab_zycit006_ded

            WHERE nrseq = itab_zycit006_ded-nrseq.

        ENDIF.

        SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006_ded

          WHERE nrfat = /pws/zycie006-nrfat

            AND bukrs = /pws/zycie006-bukrs

            AND lifnr = /pws/zycie006-lifnr

          AND tpfatura = '05'. "#EC CI_NOFIELD

        LOOP AT itab_zycit130.

          CLEAR itab_zycit130-devolucao.

          MODIFY itab_zycit130.

        ENDLOOP.

      ELSE.

        MESSAGE e015 WITH text-061.

      ENDIF.

    ENDIF.

  ELSEIF ( /pws/zycie006-tpfatura = '01' OR

           /pws/zycie006-tpfatura = '11' OR

           /pws/zycie006-tpfatura = '02' OR

         /pws/zycie006-tpfatura = '03' OR

         /pws/zycie006-tpfatura = '04' ) AND itab_zycit006_ded[] IS

 INITIAL

         AND v_exibe_ded IS INITIAL.

    v_exibe_ded = 'X'.

    IF itab_zycit006_ded[] IS INITIAL.

      SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006_ded

         WHERE nrfat = /pws/zycie006-nrfat

           AND tpfatura = '05'

           AND bukrs = /pws/zycie006-bukrs

           AND lifnr = /pws/zycie006-lifnr. "#EC CI_NOFIELD

    ENDIF.

    IF itab_zycit130[] IS INITIAL.

      SELECT * FROM /pws/zycit130 INTO TABLE itab_zycit130

        WHERE nrseq = /pws/zycie006-nrseq.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM salva_zycit130.

  DATA:

        v_motiv LIKE /pws/zycit130-motivo,

        v_devolucao_atual LIKE /pws/zycit130-montante,

        v_montante_aux LIKE /pws/zycie130-montante,

        itab_zycit130_aux LIKE /pws/zycit130 OCCURS 0 WITH HEADER LINE,

        itab_zycit006_aux LIKE /pws/zycit006 OCCURS 0 WITH HEADER LINE.

  SELECT * FROM /pws/zycit006 INTO TABLE itab_zycit006_aux

     WHERE nrfat = /pws/zycie006-nrfat

       AND bukrs = /pws/zycie006-bukrs

...

 

...

    ENDIF.

    IF ( NOT v_contabilizou IS INITIAL AND

         ( /pws/zycie006-belnr_p NE wa_zycie006_ini-belnr_p OR

           ( itab_zycit132[] NE itab_zycit132_ini[] AND

           ( itab_zycit132_ini[] IS INITIAL OR

             v_par = 'X' ) ) ) )

         OR ( /pws/zycie006-frpagto = 'A' ).

      PERFORM custeando_despesa_inco.

    ELSEIF ( /pws/zycie006-tpfatura = '01'

     OR /pws/zycie006-tpfatura = '11' ).

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

      .

* << Fim da exclusão

      PERFORM fill_nrseq_pgfat.

      PERFORM calc_vlreal.

    ENDIF.

    COMMIT WORK.

    IF /pws/zycie006-tpfatura EQ '11'

     AND e_subrc NE '8'.

      IF v_parcela NE 'X'.

        PERFORM cria_remessa.

      ELSE.

        LOOP AT itab_zycit132 WHERE status = 'C' OR status = space.

...

 

...

  LOOP AT itab_zycit132 WHERE zterm IS initial.

    MESSAGE s015 WITH text-125.

    EXIT.

  ENDLOOP.

  IF sy-subrc EQ 0.

    EXIT.

  ENDIF.

  PERFORM rotina_de_contabilizacao.

ENDFORM.

FORM consiste_sequencial.

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

  DATA: wa_nrseq LIKE /pws/zycie001-nrseq,

        v_nrseq_erro.

* << Fim da exclusão

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

  DATA: wa_nrseq LIKE /pws/zycie001-nrseq.

* << Fim da inclusão

 IF /pws/zycie006-nrseq_pgfat IS INITIAL AND /pws/zycie006-eliminado NE

                                                                    'X'

                                           AND v_flag_sequencial NE 'X'.

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

      SELECT SINGLE nrseq FROM /pws/zycit006 INTO wa_nrseq

       WHERE nrseq = /pws/zycie006-nrseq.

      IF sy-subrc EQ 0.

        PERFORM busca_sequencial_fatura.

        MESSAGE i061 WITH text-008 /pws/zycie001-embarca

                          text-009 /pws/zycie001-nrseq.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

        v_tot_valor   LIKE /pws/zycit003-netpr  ,

        v_tfrete      LIKE /pws/zycie006-vlfre  ,

        v_tseg        LIKE /pws/zycie006-vlseg  ,

        v_valor       LIKE /pws/zycie006-vlseg  ,

        v_tvalor      LIKE /pws/zycie006-vlseg  ,

        v_valor_seg   LIKE /pws/zycie006-vlseg  ,

        v_valor_frete LIKE /pws/zycie006-vlfre  ,

        v_valor_desp  LIKE /pws/zycie006-vltotal,

        v_tot_parc    LIKE /pws/zycit132-vlparc ,

        v_tvlreal     LIKE /pws/zycit003-vlreal ,

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

        v_fretei_custo             ,

* << Fim da exclusão

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

        v_fretei_custo           ,

* << Fim da inclusão

        v_tot_wrbtr LIKE /pws/zycbe035-wrbtr    ,

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

        v_dif_wrbtr LIKE /pws/zycbe035-wrbtr    .

* << Fim da exclusão

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

        v_dif_wrbtr LIKE /pws/zycbe035-wrbtr    ,

        v_desp_aux   TYPE /pws/zycbe035-wrbtr   .

* << Fim da inclusão

  DATA: BEGIN OF it_zycit140_aux OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit140.

...

 

...

      CLEAR : itab_zycbt035-ebeln, itab_zycbt035-ebelp.

      COLLECT itab_zycbt035.

    ENDLOOP.

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

    IF NOT itab_zycit094[] IS INITIAL.

      SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

              FOR ALL ENTRIES IN itab_zycit094

              WHERE nrseq = itab_zycit094-nrseq.

    ENDIF.

    CLEAR v_tpeso.

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

    CLEAR v_tot_valor.

* << Fim da exclusão

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

    CLEAR: v_tot_valor, v_tot_vlreal.

* << Fim da inclusão

    LOOP AT itab_zycit003.

      v_tpeso = itab_zycit003-ntgew + v_tpeso.

      v_tot_valor = ( itab_zycit003-qtd_iten * itab_zycit003-netpr )

           + v_tot_valor.

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

      v_tot_vlreal = v_tot_vlreal +

             ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).

* << Fim da inclusão

    ENDLOOP.

    CLEAR: itab_ekkn. FREE itab_ekkn.

    IF NOT itab_zycit003[] IS INITIAL.

      SELECT ebeln ebelp prctr kostl kokrs fistl fipos aufnr ps_psp_pnr

             FROM ekkn INTO TABLE itab_ekkn

             FOR ALL ENTRIES IN itab_zycit003

             WHERE ebeln = itab_zycit003-ebeln

               AND ebelp = itab_zycit003-ebelp.

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

    ENDIF..

* << Fim da exclusão

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

    ENDIF.

* << Fim da inclusão

    CLEAR: itab_matuse. FREE itab_matuse.

    IF NOT itab_zycit003[] IS INITIAL.

      SELECT ebeln ebelp matnr bwtar j_1bmatuse knttp werks

             FROM ekpo INTO TABLE itab_matuse

             FOR ALL ENTRIES IN itab_zycit003

             WHERE ebeln = itab_zycit003-ebeln

               AND ebelp = itab_zycit003-ebelp.

    ENDIF.

    CLEAR: itab_classe_aval  , itab_param_classe.

    REFRESH: itab_classe_aval, itab_param_classe.

...

 

...

    ENDIF.

    IF NOT itab_classe_aval[] IS INITIAL.

      SELECT * FROM /pws/zycit135 INTO TABLE itab_param_classe

             FOR ALL ENTRIES IN itab_classe_aval

             WHERE bklas EQ itab_classe_aval-bklas.

    ENDIF.

    CLEAR: v_valor_desp     ,

           itab_zycbt035_aux.

    FREE : itab_zycbt035_aux.

    DESCRIBE TABLE itab_zycit003 LINES v_line.

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

    SELECT * FROM /pws/zycit039

           INTO TABLE itab_zycit039

           WHERE codmod EQ 'D' AND

                 land1  EQ t001-land1.

    LOOP AT itab_zycit047 WHERE vldp NE 0.

      CLEAR : v_desp_aux, v_valor_desp.

* << Fim da inclusão

    LOOP AT itab_zycit003.

      v_index = sy-tabix.

      CLEAR itab_ekkn.

      READ TABLE itab_ekkn WITH KEY ebeln = itab_zycit003-ebeln

                                    ebelp = itab_zycit003-ebelp.

      CLEAR: itab_matuse.

      READ TABLE itab_matuse WITH KEY ebeln = itab_zycit003-ebeln

                                      ebelp = itab_zycit003-ebelp.

      IF itab_matuse-knttp IS INITIAL.

        CLEAR: itab_classe_aval.

...

 

...

      ELSE.

        MOVE: itab_matuse-j_1bmatuse TO itab_zycbt035_aux-matuse,

              itab_matuse-knttp      TO itab_zycbt035_aux-knttp,

              space                  TO itab_zycbt035_aux-bklas .

      ENDIF.

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

        PERFORM verifica_centro_l.

      ENDIF.

      itab_zycbt035_aux-d_valut  = /pws/zycie006-dtd_conta.

      IF v_index = v_line.

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

        itab_zycbt035_aux-wrbtr = /pws/zycie006-vltotal - v_valor_desp.

* << Fim da exclusão

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

          itab_zycbt035_aux-wrbtr = itab_zycit047-vldp - v_valor_desp.

        ELSE.

          READ TABLE itab_zycit019 WITH KEY

                         tpdesp = itab_zycit047-tpdesp.

          IF sy-subrc EQ 0.

            READ TABLE itab_zycit039 WITH KEY

                 codigo = itab_zycit019-codigo.

            IF sy-subrc EQ 0.

              IF itab_zycit039-divabs EQ 'X'.

                IF NOT v_line IS INITIAL.

                  v_desp_aux  =  itab_zycit047-vldp / v_line  .

                ENDIF.

              ELSEIF itab_zycit039-peso EQ 'X'.

                IF NOT v_tpeso IS INITIAL.

                  v_desp_aux  =  itab_zycit047-vldp *

                  itab_zycit003-ntgew / v_tpeso  .

                ENDIF.

              ELSEIF itab_zycit039-proporplan EQ 'X'.

                IF NOT v_tot_valor IS INITIAL.

                  v_desp_aux  =   ( itab_zycit003-netpr *

                         itab_zycit003-qtd_iten ) / v_tot_valor  *

                         itab_zycit047-vldp  .

                ENDIF.

* << Fim da inclusão

      ELSE.

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

        itab_zycbt035_aux-wrbtr = /pws/zycie006-vltotal *

             ( ( itab_zycit003-qtd_iten * itab_zycit003-netpr )

                                                       / v_tot_valor ).

* << Fim da exclusão

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

                IF NOT v_tot_vlreal IS INITIAL.

                  v_desp_aux  =  ( itab_zycit003-vlreal *

                  itab_zycit003-qtd_iten  / v_tot_vlreal  ) *

                  itab_zycit047-vldp .

                ENDIF.

              ENDIF.

            ENDIF.

          ENDIF.

          itab_zycbt035_aux-wrbtr = v_desp_aux.

* << Fim da inclusão

        v_valor_desp = v_valor_desp + itab_zycbt035_aux-wrbtr.

      ENDIF.

      itab_zycbt035_aux-d_gsber  = itab_zycit003-gsber.

      itab_zycbt035_aux-werks  = itab_zycit003-werks.

      IF NOT /pws/zycie006-frpagto EQ 'D'.

        READ TABLE itab_zycmt019 WITH KEY

                              codmod  = 'PD'

                              tpmatnr = itab_matuse-j_1bmatuse.

        IF sy-subrc EQ 0 AND itab_zycmt019-contabiliza EQ 'X'.

          itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .

          itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .

        ELSE.

          CLEAR: itab_zycbt035_aux-ebeln, itab_zycbt035_aux-ebelp.

        ENDIF.

      ENDIF.

      IF NOT /pws/zycit477 IS INITIAL.

        itab_zycbt035_aux-ebeln = itab_zycit003-ebeln .

        itab_zycbt035_aux-ebelp = itab_zycit003-ebelp .

      ENDIF.

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

        COLLECT itab_zycbt035_aux.

* << Fim da inclusão

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

      APPEND itab_zycbt035_aux.

* << Fim da exclusão

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

      ENDLOOP.

* << Fim da inclusão

    ENDLOOP.

    CLEAR: itab_zycbt035     ,

           itab_zycbt035_aux2.

    FREE : itab_zycbt035     ,

           itab_zycbt035_aux2.

    SORT itab_zycbt035_aux BY matuse bklas d_gsber d_prctr c_prctr.

    LOOP AT itab_zycbt035_aux.

      itab_zycbt035_aux2-matuse  = itab_zycbt035_aux-matuse .

      itab_zycbt035_aux2-bklas   = itab_zycbt035_aux-bklas  .

      itab_zycbt035_aux2-d_gsber = itab_zycbt035_aux-d_gsber.

...

 

...

    CLEAR: itab_zycbt035     ,

           itab_zycbt035_aux2.

    REFRESH: itab_zycbt035,

           itab_zycbt035_aux2.

    FREE : itab_zycbt035     ,

           itab_zycbt035_aux2.

    CLEAR v_tot_valor.

    IF itab_zycit003[] IS INITIAL.

      SELECT SINGLE * FROM /pws/zycit006

        WHERE nrfat = /pws/zycie006-nrfat

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

          AND eliminado NE 'X'. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND eliminado NE 'X'.                         "#EC CI_NOFIELD

* << Fim da inclusão

      IF /pws/zycit006-tpfatura = '01'.

        SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003

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

          WHERE nrseq_pgfat = /pws/zycit006-nrseq_pgfat. "#EC CI_NOFIELD

* << Fim da exclusão

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

          WHERE nrseq_pgfat = /pws/zycit006-nrseq_pgfat."#EC CI_NOFIELD

* << Fim da inclusão

      ELSE.

        IF NOT itab_zycit094[] IS INITIAL.

...

 

...

  ENDIF.

  PERFORM  call_transaction TABLES   itab_msg

                                     itab_bdc

                                     t_zycit032

                                     t_dados

                            USING    v_transacao

                                     v_mode

                                     v_update

                                     v_msgid

                                     v_msgno

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

                            CHANGING v_nrmsg. "#EC CI_CALLTA

* << Fim da exclusão

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

                            CHANGING v_nrmsg.            "#EC CI_CALLTA

* << Fim da inclusão

  IF sy-subrc = 0.

    DELETE itab_zycbt117.

  ENDIF.

  FREE:

    itab_bdc,

    itab_msg.

ENDFORM.

FORM bdc_field USING par1

                     par2.

  CLEAR itab_bdc.

...

 

...

                       USING    p_tcode

                                p_mode

                                p_update

                                p_msgid

                                p_msgno

                       CHANGING p_nrmsg.

  DATA: v_belnr LIKE bseg-belnr.

  CALL TRANSACTION p_tcode USING p_itab_bdc

                         MODE  p_mode

                         UPDATE p_update

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

                         MESSAGES INTO p_itab_msg. "#EC CI_CALLTA

* << Fim da exclusão

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

                         MESSAGES INTO p_itab_msg.       "#EC CI_CALLTA

* << Fim da inclusão

  IF sy-subrc <> 0.

    LOOP AT p_itab_msg.

      ADD 1 TO p_nrmsg.

      CALL FUNCTION 'MESSAGE_PREPARE'

           EXPORTING

                language               = sy-langu

                msg_id                 = p_itab_msg-msgid

                msg_no                 = p_itab_msg-msgnr

                msg_var1               = p_itab_msg-msgv1

                msg_var2               = p_itab_msg-msgv2

...

 

...

   WHERE nrseq = itab_zycit003-nrseq

   AND   ebeln = itab_zycit003-ebeln

   AND   ebelp = itab_zycit003-ebelp

   AND   eliminado EQ space.

  PERFORM fill_nrseq_pgfat.

ENDFORM.

FORM busca_sequencialre.

  DATA:

    v_nrseq   LIKE /pws/zycit001-nrseq,

    v_count(8) TYPE n.

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

  SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycbt124. "#EC CI_NOWHERE

* << Fim da exclusão

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

  SELECT MAX( nrseq ) INTO (v_nrseq) FROM /pws/zycbt124."#EC CI_NOWHERE

* << Fim da inclusão

  v_count = v_nrseq+0(8) + 1.

  CONCATENATE v_count sy-datum+2(2) INTO /pws/zycbt124-nrseq.

ENDFORM.

FORM hist_contabil.

  CLEAR it_zycit270.

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

    READ TABLE itab_zycit003 WITH KEY

         nrseq_pgfat = /pws/zycie006-nrseq_pgfat.

    IF NOT /pws/zycie006-belnr_p IS INITIAL.

      it_zycit270-mandt     =  sy-mandt.

...

 

...

      /pws/zycit263-vlreal      = itab_zycit003-vlreal.

      /pws/zycit263-vlfre_fat   = itab_zycit003-vlfre_fat.

      /pws/zycit263-vlseg_fat   = itab_zycit003-vlseg_fat.

      /pws/zycit263-waers_real  = itab_zycit003-waers_real.

      /pws/zycit263-ntgew       = itab_zycit003-ntgew.

      /pws/zycit263-gewei       = itab_zycit003-gewei.

      MODIFY /pws/zycit263.

    ENDLOOP.

  ENDIF.

ENDFORM.

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

FORM analisa_decimais USING    p_moeda

                      CHANGING p_valor.

  SELECT SINGLE * FROM tcurx WHERE currkey = p_moeda.

  IF sy-subrc <> 0.

    tcurx-currdec = 2.

  ENDIF.

  p_valor = p_valor * ( 10 ** ( tcurx-currdec - 2 ) ).

ENDFORM.

* << Fim da exclusão

FORM calc_vlreal.

  REFRESH: itab_zycit263.

  IF NOT itab_zycit003[] IS INITIAL.

    READ TABLE itab_zycit003 INDEX 1.

    SELECT * FROM /pws/zycit263 INTO TABLE itab_zycit263

          WHERE nrseq = itab_zycit003-nrseq

            AND eliminado = space.

    IF NOT itab_zycit263[] IS INITIAL.

      REFRESH itab_fat_temp.

      LOOP AT itab_zycit263.

        itab_fat_temp-nrseq_pgfat = itab_zycit263-nrseq_pgfat.

        COLLECT itab_fat_temp.

      ENDLOOP.

      SELECT * FROM /pws/zycit006

        INTO TABLE itab_zycit006

        FOR ALL ENTRIES IN itab_fat_temp

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

        WHERE nrseq_pgfat EQ itab_fat_temp-nrseq_pgfat.  "#EC CI_NOFIELD

* << Fim da exclusão

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

        WHERE nrseq_pgfat EQ itab_fat_temp-nrseq_pgfat. "#EC CI_NOFIELD

* << Fim da inclusão

      LOOP AT itab_zycit263.

        v_tabix = sy-tabix.

        READ TABLE itab_zycit006 WITH KEY

             nrseq_pgfat = itab_zycit263-nrseq_pgfat

             eliminado   = space.

        IF sy-subrc NE 0.

          itab_zycit263-eliminado = 'X'.

          MODIFY itab_zycit263 INDEX v_tabix.

          MODIFY /pws/zycit263 FROM itab_zycit263 .

        ENDIF.

...

 

...

                         nrseq       = it003-nrseq AND

                         ebeln       = it003-ebeln AND

                         ebelp       = it003-ebelp AND

                         nrseq_pgfat = /pws/zycie006-nrseq.

      ENDIF.

    ENDIF.

    IF sy-subrc NE 0.

      DELETE FROM /pws/zycit036

      WHERE codigo = pcodigo

        AND origem = 'FAT'

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

        AND nrseqori = /pws/zycie006-nrseq. "#EC CI_NOFIRST

* << Fim da exclusão

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

        AND nrseqori = /pws/zycie006-nrseq.             "#EC CI_NOFIRST

* << Fim da inclusão

    ENDIF.

  ENDLOOP.

  IF sy-subrc NE 0.

    DELETE FROM /pws/zycit036

    WHERE codigo = pcodigo

      AND origem = 'FAT'

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

      AND nrseqori = /pws/zycie006-nrseq. "#EC CI_NOFIRST

* << Fim da exclusão

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

      AND nrseqori = /pws/zycie006-nrseq.               "#EC CI_NOFIRST

* << Fim da inclusão

  ENDIF.

  IF ptype = 'X'.

    CLEAR /pws/zycie006.

  ENDIF.

  COMMIT WORK.

ENDFORM.

FORM executa_recebimento.

  DATA: v_lfsnr_old   LIKE /pws/zycie006-lfsnr,

        v_lfsnr       LIKE /pws/zycie006-lfsnr,

        v_indice(02)  TYPE n                  ,

...

 

...

            lifnr     = /pws/zycie006-lifnr

            bukrs     = /pws/zycie006-bukrs.

ENDFORM.

FORM get_parameters_mrm1_receb.

  DATA: v_clnf LIKE /pws/zycit033-clnf.

  PERFORM clear_date_batch.

  SELECT SINGLE * FROM /pws/zycit048

    WHERE bukrs EQ /pws/zycie006-bukrs.

  FREE itab_zycit033.

  SELECT * FROM /pws/zycit033

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

    INTO TABLE itab_zycit033.  "#EC CI_NOWHERE

* << Fim da exclusão

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

    INTO TABLE itab_zycit033.                           "#EC CI_NOWHERE

* << Fim da inclusão

  SELECT SINGLE * FROM t001w

    WHERE werks = /pws/zycie001-werks.

  v_clnf = 'G'.

  SELECT SINGLE * FROM /pws/zycbt011 INTO wa_zycbt011

    WHERE codeven = '006C'

           AND bukrs   = /pws/zycie006-bukrs .

ENDFORM.

FORM get_parameters_mb01_receb.

  PERFORM clear_date_batch.

ENDFORM.

...

 

...

    ENDIF.

  ELSEIF v_campo EQ '/PWS/ZYCIE006-MBLNR_MB01'

     AND NOT v_valor IS INITIAL.

    PERFORM converter_documento.

    SELECT SINGLE mblnr FROM mkpf INTO vaux_belnr

      WHERE mblnr = v_belnr2

        AND mjahr = /pws/zycie006-dt_mb01+0(4).

    IF sy-subrc EQ 0.

      SET PARAMETER ID 'MBN' FIELD v_belnr2.

      SET PARAMETER ID 'MJA' FIELD /pws/zycie006-dt_mb01+0(4).

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

      CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN. "#EC CI_CALLTA

* << Fim da exclusão

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

      CALL TRANSACTION 'MB03' AND SKIP FIRST SCREEN.     "#EC CI_CALLTA

* << Fim da inclusão

    ENDIF.

  ELSEIF v_campo EQ '/PWS/ZYCIE006-BELNR_F_51'

   AND NOT v_valor IS INITIAL.

    PERFORM converter_documento.

    IF sy-subrc EQ 0.

      CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

           EXPORTING

                v_bukrs                = /pws/zycie006-bukrs

                v_date                 = /pws/zycie006-dt_f_51

           IMPORTING

...

 

...

      SET PARAMETER ID 'BUK' FIELD /pws/zycie006-bukrs.

      SET PARAMETER ID 'BLN' FIELD v_belnr2.

      SET PARAMETER ID 'GJR' FIELD v_ano.

      SELECT SINGLE belnr FROM bkpf INTO vaux_belnr

        WHERE bukrs = /pws/zycie006-bukrs

          AND belnr = v_belnr2

          AND gjahr = v_ano.

      AUTHORITY-CHECK OBJECT 'S_TCODE'

                ID 'TCD'  FIELD 'FB03'.

      IF sy-subrc EQ 0.

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

        CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN. "#EC CI_CALLTA

* << Fim da exclusão

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

        CALL TRANSACTION 'FB03' AND SKIP FIRST SCREEN.   "#EC CI_CALLTA

* << Fim da inclusão

      ELSE.

        MESSAGE e261(sf) WITH 'FB03'.

      ENDIF.

    ENDIF.

  ELSEIF v_campo EQ ''.

  ELSE.

    MESSAGE s015 WITH text-136.

  ENDIF.

ENDFORM.

FORM converter_documento.

...

 

...

      WHEN '2'.

        /pws/zycie006-dtbase = /pws/zycit093-dtemiss.

      WHEN '3'.

        /pws/zycie006-dtbase = /pws/zycit093-dtlanc.

      WHEN '4'.

        /pws/zycie006-dtbase = /pws/zycie006-dtincl.

    ENDCASE.

  ENDIF.

ENDFORM.

FORM load_rof.

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

  DATA: v_rof   LIKE /pws/zycbt115-rof,

* << Fim da exclusão

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

  DATA:

* << Fim da inclusão

        v_dtrof LIKE /pws/zycbt115-dtrof.

  SELECT SINGLE MAX( dtrof )

    FROM /pws/zycbt115

    INTO v_dtrof

    WHERE nrcorrep = /pws/zycie006-nrseq_pgfat.

  SELECT SINGLE rof

    FROM /pws/zycbt115

    INTO /pws/zycie006-rof

    WHERE dtrof = v_dtrof AND

          nrcorrep = /pws/zycie006-nrseq_pgfat.

...

 

...

    SELECT * FROM dd07t

             INTO TABLE itab_dd07t

             WHERE domname    = wa_dd03l-domname AND

                   ddlanguage = sy-langu(1).

    IF sy-subrc = 0.

      READ TABLE itab_dd07t WITH KEY domvalue_l = p_valor.

      IF sy-subrc EQ 0.

        v_retorno = itab_dd07t-ddtext.

      ELSE.

        LOOP AT itab_dd07t WHERE domvalue_l IS initial.

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

          IF p_valor GE itab_dd07t-domval_ld AND "#EC PORTABLE

* << Fim da exclusão

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

          IF p_valor GE itab_dd07t-domval_ld AND          "#EC PORTABLE

* << Fim da inclusão

             p_valor LE itab_dd07t-domval_hd.

            v_retorno = itab_dd07t-ddtext.

            EXIT.

          ENDIF.

        ENDLOOP.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

FORM pega_valor_dominio USING    p_campo

...

 

...

       IMPORTING

            assigned_url = doc_url

       EXCEPTIONS

            OTHERS       = 1.

  IF sy-subrc EQ 0.

    CALL METHOD html_control->show_url

         EXPORTING

              url       = doc_url.

  ENDIF.

ENDFORM.

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

FORM set_the_flag.

  IF gv_help_show IS INITIAL.

    gv_help_show = 'X'.

    gv_subscreen_0050  = '0052'.

  ELSE.

    CLEAR gv_help_show.

    gv_subscreen_0050  = '0051'.

  ENDIF.

ENDFORM.

* << Fim da exclusão

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

...

 

...

    IF p_documento     EQ 'F-51'.

      /pws/zycit270-compl     =  text-158.

    ELSEIF p_documento EQ 'MIGO'.

      /pws/zycit270-compl     =  text-157.

    ELSEIF p_documento EQ 'MIRO'.

      /pws/zycit270-compl     =  text-156.

    ENDIF.

    INSERT /pws/zycit270.

  ENDIF.

ENDFORM.

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

FORM carrega_pais.

  LOOP AT itab_zycit003.

    IF  /pws/zycie006-fabricante EQ '3'.

      IF /pws/zycie006-porigem IS INITIAL .

        MOVE /pws/zycie006-paisfab TO itab_zycit003-porigem.

        MODIFY itab_zycit003 INDEX sy-tabix.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDFORM.

* << Fim da exclusão

FORM load_parametros.

  SELECT SINGLE * FROM t001 WHERE bukrs EQ /pws/zycie006-bukrs.

  SELECT SINGLE * FROM /pws/zycit477

      WHERE land EQ t001-land1.

  SELECT SINGLE * FROM /pws/zycit031

    WHERE inco1 = /pws/zycie006-inco1

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

    AND   land1 EQ t001-land1. "#EC CI_NOFIRST

* << Fim da exclusão

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

    AND   land1 EQ t001-land1.                          "#EC CI_NOFIRST

* << Fim da inclusão

  SELECT SINGLE *

    FROM /pws/zycit000

    WHERE land1 EQ t001-land1.

  v_land1 = t001-land1.

  IF NOT /pws/zycie006-bukrs IS INITIAL.

    SELECT SINGLE *

      FROM /pws/zycbt007

      WHERE bukrs EQ /pws/zycie006-bukrs.

    IF sy-subrc NE 0.

      MESSAGE e120.

    ENDIF.

  ENDIF.

  MOVE /pws/zycbt007 TO wa_zycbt007.

ENDFORM.

FORM trata_save.

  SELECT SINGLE *

    FROM /pws/zycit085

    WHERE nrbl  EQ /pws/zycie006-nrseqce

      AND nrdi  NE ''

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

      AND dtreg NE ''. "#EC CI_NOFIELD

* << Fim da exclusão

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

      AND dtreg NE ''.                                  "#EC CI_NOFIELD

* << Fim da inclusão

  IF /pws/zycie006-imposto EQ 'X'

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

    DELETE itab_zycit483 WHERE vldp   EQ 0

                            OR iva    EQ space

                            OR tpdesp EQ space.

    IF itab_zycit483[] IS INITIAL.

      MESSAGE i015 WITH text-184 text-185.

      EXIT.

    ENDIF.

  ENDIF.

...

 

...

    PERFORM soma_despesa.

    IF v_tot_desp <> /pws/zycie006-vltotal.

      v_tot_desp = /pws/zycie006-vltotal - v_tot_desp.

      WRITE v_tot_desp TO v_total_desp CURRENCY /pws/zycie006-waers.

      MESSAGE s061 WITH text-051 v_total_desp text-020 .

    ENDIF.

  ENDIF.

  PERFORM move_pais.

  PERFORM trata_fabricante.

ENDFORM.

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

FORM consiste_fabr.

  IF '02' CA /pws/zycie006-fabricante .

    READ TABLE itab_mfrnr WITH KEY ebeln = itab_zycit003-ebeln

                                   ebelp = itab_zycit003-ebelp.

    IF sy-subrc NE 0.

      /pws/zycie006-lifnrfabr = /pws/zycie003-lifnrfabr.

      /pws/zycie006-descfab   = /pws/zycie003-descfab  .

      IF /pws/zycie006-fabricante = '0'.

        IF /pws/zycie006-paisfab IS INITIAL.

          /pws/zycie006-paisfab   = /pws/zycie003-paisfab  .

        ENDIF.

      ELSE.

        /pws/zycie006-paisfab   = /pws/zycie003-paisfab  .

      ENDIF.

    ELSE.

      IF NOT itab_mfrnr-mfrnr IS INITIAL.

        /pws/zycie006-lifnrfabr = itab_mfrnr-mfrnr.

        SELECT SINGLE *

           FROM lfa1

           WHERE lifnr = itab_mfrnr-mfrnr.

        IF sy-subrc EQ 0.

          /pws/zycie006-descfab = lfa1-name1.

          IF /pws/zycie006-fabricante = '0'.

            IF /pws/zycie006-paisfab IS INITIAL.

              /pws/zycie006-paisfab   = /pws/zycie003-paisfab  .

            ENDIF.

          ELSE.

            /pws/zycie006-paisfab   = /pws/zycie003-paisfab  .

          ENDIF.

        ENDIF.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM trata_fabricante.

  IF /pws/zycie006-fabricante = '0'.

  ELSEIF /pws/zycie006-fabricante = '1'.

    v_fabr_ant = '1'.

    CLEAR lfa1.

    SELECT SINGLE * FROM lfa1

      WHERE lifnr EQ /pws/zycie006-lifnr.

    /pws/zycie006-lifnrfabr = /pws/zycie006-lifnr.

    /pws/zycie006-flagfabr = 'S'.

    /pws/zycie006-descfab = lfa1-name1.

...

 

...

        DATA v_flag TYPE c.

        IF NOT  t169p-xbukrs IS INITIAL

        AND NOT t169p-xxblnr IS INITIAL

        AND NOT t169p-xbldat IS INITIAL.

          SELECT SINGLE * FROM /pws/zycit006

          INTO wa_zycit006

          WHERE nrseq  NE /pws/zycie006-nrseq

          AND   bukrs  EQ /pws/zycie006-bukrs

          AND   nrfat  EQ /pws/zycie006-nrfat

          AND   dtincl EQ /pws/zycie006-dtincl

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

          AND   eliminado NE 'X'. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND   eliminado NE 'X'.                       "#EC CI_NOFIELD

* << Fim da inclusão

          IF sy-subrc EQ 0.

            v_flag = 'X'.

          ENDIF.

        ELSEIF NOT t169p-xbukrs IS INITIAL

           AND NOT t169p-xxblnr IS INITIAL.

          SELECT SINGLE * FROM /pws/zycit006

          INTO wa_zycit006

          WHERE nrseq NE /pws/zycie006-nrseq

          AND   bukrs EQ /pws/zycie006-bukrs

          AND   nrfat EQ /pws/zycie006-nrfat

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

          AND   eliminado NE 'X'. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND   eliminado NE 'X'.                       "#EC CI_NOFIELD

* << Fim da inclusão

          IF sy-subrc EQ 0.

            v_flag = 'X'.

          ENDIF.

        ELSEIF NOT t169p-xbukrs IS INITIAL

           AND NOT t169p-xbldat  IS INITIAL.

          SELECT SINGLE * FROM /pws/zycit006

          INTO wa_zycit006

          WHERE nrseq  NE /pws/zycie006-nrseq

          AND   bukrs  EQ /pws/zycie006-bukrs

          AND   nrfat  EQ /pws/zycie006-nrfat

          AND   dtincl EQ /pws/zycie006-dtincl

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

          AND   eliminado NE 'X'. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND   eliminado NE 'X'.                       "#EC CI_NOFIELD

* << Fim da inclusão

          IF sy-subrc EQ 0.

            v_flag = 'X'.

          ENDIF.

        ELSEIF NOT t169p-xxblnr IS INITIAL

           AND NOT t169p-xbldat  IS INITIAL.

          SELECT SINGLE * FROM /pws/zycit006

          INTO wa_zycit006

          WHERE nrseq  NE /pws/zycie006-nrseq

          AND   nrfat  EQ /pws/zycie006-nrfat

          AND   dtincl EQ /pws/zycie006-dtincl

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

          AND   eliminado NE 'X'. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND   eliminado NE 'X'.                       "#EC CI_NOFIELD

* << Fim da inclusão

          IF sy-subrc EQ 0.

            v_flag = 'X'.

          ENDIF.

        ELSEIF NOT t169p-xbukrs IS INITIAL.

          SELECT SINGLE * FROM /pws/zycit006

          INTO wa_zycit006

          WHERE nrseq NE /pws/zycie006-nrseq

          AND   bukrs EQ /pws/zycie006-bukrs

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

          AND   eliminado NE 'X'. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND   eliminado NE 'X'.                       "#EC CI_NOFIELD

* << Fim da inclusão

          IF sy-subrc EQ 0.

            v_flag = 'X'.

          ENDIF.

        ELSEIF NOT t169p-xxblnr IS INITIAL.

          SELECT SINGLE * FROM /pws/zycit006

          INTO wa_zycit006

          WHERE nrseq NE /pws/zycie006-nrseq

          AND   nrfat EQ /pws/zycie006-nrfat

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

          AND   eliminado NE 'X'. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND   eliminado NE 'X'.                       "#EC CI_NOFIELD

* << Fim da inclusão

          IF sy-subrc EQ 0.

            v_flag = 'X'.

          ENDIF.

        ELSEIF NOT t169p-xbldat IS INITIAL.

          SELECT SINGLE * FROM /pws/zycit006

          INTO wa_zycit006

          WHERE nrseq  NE /pws/zycie006-nrseq

          AND   dtincl EQ /pws/zycie006-dtincl

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

          AND   eliminado NE 'X'. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND   eliminado NE 'X'.                       "#EC CI_NOFIELD

* << Fim da inclusão

          IF sy-subrc EQ 0.

            v_flag = 'X'.

          ENDIF.

        ENDIF.

        IF v_flag = 'X'.

          MESSAGE e013 WITH text-163 text-164.

          EXIT.

        ENDIF.

      ENDIF.

    ENDIF.

...

 

...

  ENDIF.

ENDFORM.

FORM estorno_pag_antecipado.

  DATA itab_bseg TYPE bseg OCCURS 0 WITH HEADER LINE.

  CHECK NOT itab_zycit003[] IS INITIAL

    AND v_existe_di NE 'S'.

  SELECT * FROM /pws/zycbt117

       INTO TABLE itab_zycbt117

       FOR ALL ENTRIES IN itab_zycit003

       WHERE ebeln = itab_zycit003-ebeln

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

         AND status NE 'E'. "#EC CI_NOFIELD

* << Fim da exclusão

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

         AND status NE 'E'.                             "#EC CI_NOFIELD

* << Fim da inclusão

  IF sy-subrc EQ 0.

    IF itab_zycit132[] IS INITIAL.

      SELECT SINGLE *

        FROM /pws/zycbt108

        WHERE nrseq_pgfat EQ /pws/zycie006-nrseq_pgfat. "#EC CI_NOFIRST

      IF sy-subrc EQ 0 AND

      ( /pws/zycbt108-slfat EQ /pws/zycbt108-slfatcc ) AND

      ( NOT /pws/zycbt108-belnr_lq IS INITIAL AND

        NOT /pws/zycbt108-belnr_as IS INITIAL ).

        v_pag_antecipado = 'X'.

...

 

...

      ELSEIF NOT /pws/zycbt108-belnr_lq IS INITIAL

         AND NOT /pws/zycbt108-belnr_as IS INITIAL.

        MESSAGE i039 WITH text-110.

        EXIT.

      ENDIF.

    ELSEIF NOT itab_zycit132[] IS INITIAL.

      LOOP AT itab_zycit132.

        SELECT SINGLE *

          FROM /pws/zycbt108

          WHERE nrseq_pgfat EQ

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

            itab_zycit132-nrseq_pgfat. "#EC CI_NOFIRST

* << Fim da exclusão

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

            itab_zycit132-nrseq_pgfat.                  "#EC CI_NOFIRST

* << Fim da inclusão

        IF sy-subrc EQ 0 AND

        ( /pws/zycbt108-slfat EQ /pws/zycbt108-slfatcc ) AND

        ( NOT /pws/zycbt108-belnr_lq IS INITIAL AND

          NOT /pws/zycbt108-belnr_as IS INITIAL ).

          v_pag_antecipado = 'X'.

          CLEAR v_ano.

          CALL FUNCTION '/PWS/ZYGL_OBTEM_ANO_CONTABIL'

               EXPORTING

                    v_bukrs                = /pws/zycie006-bukrs

                    v_date                 = itab_zycit132-dt_belnrp

...

 

...

          INCLUDE STRUCTURE drseg.

  TYPES: cr LIKE drseg_cr OCCURS 0,

         co TYPE mmcr_drseg_co OCCURS 0,

         sm LIKE drseg_sm OCCURS 0,

         charact TYPE rbcharact_instance OCCURS 3,

         uebgmat  TYPE matnr,

         uebrblgp TYPE rblgp,

         selkz_db TYPE selkz,

         rblgp_old TYPE rblgp,

         END OF mmcr_drseg.

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

  DATA: v_chave(10),

* << Fim da exclusão

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

  DATA:

* << Fim da inclusão

        v_indice TYPE i,

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

        v_iva(2),

* << Fim da exclusão

        v_cont2 TYPE sy-tabix,

        v_cont TYPE sy-tabix,

        v_awkey TYPE bkpf-awkey,

        v_doc_miro TYPE bkpf-belnr,

        v_vltotal TYPE /pws/zycie006-vltotal,

        v_gross_amount TYPE /pws/zycit006-vlmerc.

...

 

...

         v_ebelp(6) TYPE c VALUE '000000',

         v_item_amount TYPE /pws/zycit003-netpr,

         v_item_amount2 TYPE /pws/zycit036-netpr.

  DATA: itab_konv TYPE konv OCCURS 0 WITH HEADER LINE.

  DATA: BEGIN OF itab_ped OCCURS 0.

  DATA: ebeln TYPE ekko-ebeln,

        knumv TYPE ekko-knumv.

  DATA: END OF itab_ped.

  DATA: itab_contas_aux LIKE itab_contas OCCURS 0 WITH HEADER LINE,

        itab_zycbe033_aux LIKE itab_zycbe033 OCCURS 0 WITH HEADER LINE,

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

        itab_zycit030 LIKE /pws/zycit030 OCCURS 0 WITH HEADER LINE,

        itab_komv_a LIKE itab_komv OCCURS 0 WITH HEADER LINE.

* << Fim da exclusão

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

        itab_zycit030 LIKE /pws/zycit030 OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

  DATA: BEGIN OF itab_komk_aux OCCURS 0.

          INCLUDE STRUCTURE komk.

  DATA: ebeln LIKE ekko-ebeln.

  DATA: END OF itab_komk_aux.

  DATA: BEGIN OF itab_fat OCCURS 0.

  DATA: nrseq TYPE /pws/zycie006-nrseq.

  DATA: END OF itab_fat.

  DATA: itab_zycit047a TYPE /pws/zycit047 OCCURS 0 WITH HEADER LINE.

  DATA: BEGIN OF itab_ivaped OCCURS 0.

  DATA:  ebeln TYPE ekpo-ebeln,

...

 

...

      DELETE itab_konv WHERE kntyp NE 'B'

                          OR kbetr EQ space.

    ENDIF.

  ENDIF.

  IF /pws/zycie006-tpfatura NE '01'.

    SELECT nrseq  FROM /pws/zycit006

        INTO TABLE itab_fat

        WHERE nrseqce EQ /pws/zycie006-nrseqce

          AND eliminado EQ space

          AND tpfatura  EQ /pws/zycie006-tpfatura

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

          AND nrseq     NE /pws/zycie006-nrseq. "#EC CI_NOFIELD

* << Fim da exclusão

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

          AND nrseq     NE /pws/zycie006-nrseq.         "#EC CI_NOFIELD

* << Fim da inclusão

    IF /pws/zycie006-tpfatura EQ '04' AND sy-subrc EQ 0.

      SELECT * FROM /pws/zycit047 INTO TABLE itab_zycit047a

          FOR ALL ENTRIES IN itab_fat

          WHERE nrseq EQ itab_fat-nrseq.

    ENDIF.

    SELECT * FROM /pws/zycit399 INTO TABLE itab_zycit399

        WHERE pais EQ t001-land1.

    READ TABLE itab_zycit003 INDEX 1.

    SELECT SINGLE nrseqdi FROM /pws/zycit100 INTO /pws/zycit085-nrseqdi

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

    WHERE nrseq EQ itab_zycit003-nrseq. "#EC CI_NOFIRST

* << Fim da exclusão

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

    WHERE nrseq EQ itab_zycit003-nrseq.                 "#EC CI_NOFIRST

* << Fim da inclusão

    SELECT * FROM /pws/zycit403 INTO TABLE itab_zycit403

        WHERE nrseqdi EQ /pws/zycit085-nrseqdi.

  ENDIF.

  REFRESH itab_ivaped.

  SELECT ebeln ebelp knttp mwskz matnr werks txjcd FROM ekpo

      INTO TABLE itab_ivaped

      FOR ALL ENTRIES IN itab_zycit003

      WHERE ebeln EQ itab_zycit003-ebeln

        AND ebelp EQ itab_zycit003-ebelp.

  READ TABLE itab_zycit003 INDEX 1.

...

 

...

      REFRESH itab_zycit399.

      SELECT * FROM /pws/zycit399 INTO TABLE itab_zycit399

          WHERE pais    EQ t001-land1

            AND credita EQ 'X'

            AND codmod  EQ 'D'.

    ENDIF.

    READ TABLE itab_zycit029 WITH KEY land1 = t001-land1.

    IF sy-subrc NE 0.

      REFRESH itab_zycit029.

      SELECT * FROM /pws/zycit029 INTO TABLE itab_zycit029

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

          WHERE land1 EQ t001-land1. "#EC CI_NOFIRST

* << Fim da exclusão

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

          WHERE land1 EQ t001-land1.                    "#EC CI_NOFIRST

* << Fim da inclusão

    ENDIF.

    READ TABLE itab_zycit484 WITH KEY land1 = t001-land1

                                      bukrs = /pws/zycie006-bukrs.

    IF sy-subrc NE 0.

      REFRESH itab_zycit484.

      SELECT * FROM /pws/zycit484 INTO TABLE itab_zycit484

          WHERE land1 EQ t001-land1

            AND bukrs EQ /pws/zycie006-bukrs.

    ENDIF.

    READ TABLE itab_zycit403

...

 

...

        ENDIF.

      ENDLOOP.

    ENDLOOP.

  ENDIF.

ENDFORM.

FORM taxa_converte USING    p_waers

                            p_data

                   CHANGING p_taxa.

  CLEAR: p_taxa.

  DATA:  v_moeda LIKE tcurc-/pws/codmo,

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

         v_msgd(10),

* << Fim da exclusão

         v_linhas TYPE i.

  DATA: itab_zycit174 TYPE /pws/zycit174 OCCURS 0 WITH HEADER LINE.

  SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

         waers = p_waers.

  IF sy-subrc EQ 0.

    REFRESH itab_zycit174.

    SELECT * FROM /pws/zycit174 INTO TABLE itab_zycit174 WHERE

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

           codconver = v_moeda    AND   "#EC PORTABLE

* << Fim da exclusão

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

           codconver = v_moeda    AND                     "#EC PORTABLE

* << Fim da inclusão

           vigen_inicio <= p_data AND

           vigen_fim    >= p_data AND

           land1       = t001-land1.

    DESCRIBE TABLE itab_zycit174 LINES v_linhas.

    IF v_linhas EQ 1.

      READ TABLE itab_zycit174 INDEX 1.

      p_taxa = itab_zycit174-txconver.

    ELSEIF v_linhas EQ 0.

      IF NOT p_data IS INITIAL.

        IF p_waers EQ wa_zycbt007-waersb.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003I01

 

...

      ENDIF.

  ENDCASE.

ENDMODULE.

MODULE user_command_0109 INPUT.

  CASE okcode.

    WHEN 'ELIM'.

      DELETE itab_zycit130 WHERE mark = 'X'.

  ENDCASE.

ENDMODULE.

MODULE user_command_0108 INPUT.

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

  DATA v_del.

* << Fim da exclusão

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

  clear v_del.

* << Fim da inclusão

  CASE okcode.

    WHEN 'ELIM'.

      READ TABLE itab_zycit129 WITH KEY mark = 'X'.

      IF sy-subrc = 0.

        LOOP AT itab_zycit129.

          IF itab_zycit129-mark = 'X'.

            DELETE itab_zycit129 INDEX sy-tabix.

            v_del = 'S'.

          ENDIF.

          IF v_del NE 'S'.

...

 

...

    MODIFY itab_zycit132.

  ENDLOOP.

ENDMODULE.

MODULE user_command_0110 INPUT.

  CASE okcode.

    WHEN 'SELE'.

      PERFORM drill_down_documentos.

  ENDCASE.

ENDMODULE.

MODULE seta_matchcode INPUT.

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

  DATA v_loop TYPE i.

  DATA v_return(40) TYPE c.

  DATA: value(132).

  DATA: BEGIN OF f_tab OCCURS 10.

          INCLUDE STRUCTURE help_value.

  DATA: END OF f_tab.

  DATA: BEGIN OF v_tab OCCURS 200,

          value(40) TYPE c,

  END OF v_tab.

  DATA: BEGIN OF itab_rateio OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit391.

  DATA: END OF itab_rateio.

* << Fim da exclusão

  CLEAR  : v_tab, f_tab, itab_rateio.

  REFRESH: v_tab, f_tab, itab_rateio.

  SELECT * FROM /pws/zycit391

       INTO TABLE itab_rateio. "#EC CI_NOWHERE

  CLEAR v_loop.

  LOOP AT itab_rateio.

    IF itab_rateio-flag EQ 'X'.

      v_loop  = v_loop + 1.

    ENDIF.

  ENDLOOP.

...

 

...

ENDMODULE.

MODULE trata_obrigatorio INPUT.

  CHECK /pws/zycie006-tpfatura = '01' OR /pws/zycie006-tpfatura = '11'

     OR /pws/zycie006-tpfatura = '  '.

  IF NOT /pws/zycie006-vlmerc IS INITIAL.

    IF /pws/zycie003-vlreal IS INITIAL.

      v_obrig = 'X'.

    ENDIF.

  ENDIF.

ENDMODULE.

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

MODULE user_command_0050 INPUT.

  CASE okcode.

    WHEN 'RENE'.

      PERFORM recalcula_parcelas.

    WHEN 'OBS'.

      PERFORM observacao.

    WHEN 'DET'.

      PERFORM exibe_item.

    WHEN 'PED'.

      PERFORM selecionar_pedidos.

    WHEN 'FABR'.

      PERFORM exibir_fabricante.

    WHEN 'DELE'.

      /pws/zycie003-flagfabr = 'S'.

      PERFORM eliminar_fatura.

    WHEN 'BC'.

      CALL METHOD html_control->go_back.

    WHEN 'AVAN'.

      CALL METHOD html_control->go_forward.

    WHEN 'SAVE'.

      IF v_refer NE 'X'.

        PERFORM consiste_campos_obrigatorios.

      ENDIF.

    WHEN 'MODI'.

      IF v_status_s = '0'.

        IF /pws/zycie006-eliminado NE 'X' AND

          ( ( v_existe_di EQ 'S' AND /pws/zycie006-tpfatura EQ '02' ) OR

            ( v_existe_di EQ 'S' AND /pws/zycie006-tpfatura EQ '03' ) OR

            ( v_existe_di EQ 'S' AND /pws/zycie006-tpfatura EQ '04' ) OR

            ( v_existe_di EQ 'S' AND /pws/zycie006-tpfatura EQ '09' ) ).

          v_status_s = 1.

        ELSEIF /pws/zycie006-eliminado NE 'X' AND v_existe_di NE 'S'.

          v_status_s = 1.

        ELSEIF /pws/zycie006-eliminado EQ 'X'.

          MESSAGE s015 WITH text-037.

        ELSEIF v_existe_di EQ 'S' AND ( /pws/zycie006-tpfatura EQ '01'

         OR /pws/zycie006-tpfatura = '11' ).

          MESSAGE s015 WITH text-041.

        ENDIF.

      ELSE.

        v_status_s = '0'.

      ENDIF.

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

        PERFORM verifica_despesas.

      ENDIF.

    WHEN 'MODO'.

      PERFORM modo_batch_input.

    WHEN 'BACK'.

     IF sy-tcode EQ '/PWS/ZYCI003_L' OR sy-tcode EQ '/PWS/ZYCI003_E' OR

                                          sy-tcode EQ '/PWS/ZYCI003_R' .

        PERFORM verifica_alteracoes.

        CLEAR: v_dbanco, v_dforn, v_dmoeda, v_dmoeda_emb,

               v_dtpfatura, v_dfrpagto, /pws/zycie006.

        CLEAR v_livre.

        LEAVE TO SCREEN 0 .

      ELSEIF sy-tcode EQ '/PWS/ZYCI003_C' OR sy-tcode EQ

      '/PWS/ZYCI003_A'

          OR sy-tcode = '/PWS/ZYCI003_M'.

        PERFORM verifica_alteracoes.

        CLEAR v_livre.

        LEAVE PROGRAM.

      ENDIF.

    WHEN 'ELIM'.

      LOOP AT itab_zycit003 WHERE marc = 'X'.

        DELETE itab_zycit003.

        v_nitens = v_nitens - 1.

        v_contabiliza = 'S'.

      ENDLOOP.

      IF sy-subrc NE 0.

        READ TABLE itab_zycit132 WITH KEY mark = 'X'.

        IF sy-subrc NE 0.

          MESSAGE s015 WITH text-046.

        ENDIF.

      ENDIF.

      LOOP AT itab_zycit132 WHERE mark = 'X'.

        IF itab_zycit132-compensado NE 'X' AND

           itab_zycit132-belnr_p IS INITIAL AND

           itab_zycit132-nrseq_pgfat IS INITIAL.

          DELETE itab_zycit132.

        ELSE.

          MESSAGE s015 WITH text-085.

        ENDIF.

      ENDLOOP.

    WHEN 'MARC'.

      CASE ts_faturas-activetab.

        WHEN 'FC_CLCONT'.

          LOOP AT itab_zycit003.

            itab_zycit003-marc = 'X'.

            MODIFY itab_zycit003.

          ENDLOOP.

        WHEN 'FC_CAMB'.

          LOOP AT itab_zycit126.

            itab_zycit126-mark = 'X'.

            MODIFY itab_zycit126.

          ENDLOOP.

        WHEN 'FC_BANCO'.

          LOOP AT itab_zycit129.

            itab_zycit129-mark = 'X'.

            MODIFY itab_zycit129.

          ENDLOOP.

      ENDCASE.

    WHEN 'DESM'.

      CASE ts_faturas-activetab.

        WHEN 'FC_CLCONT'.

          LOOP AT itab_zycit003.

            itab_zycit003-marc = ' '.

            MODIFY itab_zycit003.

          ENDLOOP.

        WHEN 'FC_CAMB'.

          LOOP AT itab_zycit126.

            itab_zycit126-mark = ' '.

            MODIFY itab_zycit126.

          ENDLOOP.

        WHEN 'FC_BANCO'.

          LOOP AT itab_zycit129.

            itab_zycit129-mark = ' '.

            MODIFY itab_zycit129.

          ENDLOOP.

      ENDCASE.

    WHEN 'IMPR'.

      MOVE itab_zycit003-nrseq TO /pws/zycie003-nrseq.

      EXPORT /pws/zycie003-nrseq TO MEMORY ID '001'.

      EXPORT /pws/zycie006-nrseq TO MEMORY ID '002'.

      SUBMIT /pws/zycir051 AND RETURN. "#EC CI_SUBMIT

    WHEN 'ENTE'.

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

        PERFORM soma_despesa.

        IF v_tot_desp <> /pws/zycie006-vltotal.

          v_tot_desp = /pws/zycie006-vltotal - v_tot_desp.

          MOVE v_tot_desp TO v_total_desp.

          MESSAGE s061 WITH text-051 v_total_desp text-020 .

        ENDIF.

      ENDIF.

      PERFORM move_pais.

      IF /pws/zycie006-fabricante = '0'.

        IF v_fabr_ant = '1'.

          CLEAR: /pws/zycie006-flagfabr,

                 /pws/zycie006-lifnrfabr, /pws/zycie006-descfab,

                 /pws/zycie006-paisfab, v_fabr_ant.

        ENDIF.

        IF /pws/zycie006-flagfabr = 'S'.

          IF NOT /pws/zycie006-lifnrfabr IS INITIAL.

            CLEAR: /pws/zycie006-descfab , /pws/zycie006-paisfab.

            SELECT SINGLE *

              FROM lfa1

              WHERE lifnr = /pws/zycie006-lifnrfabr.

            /pws/zycie006-descfab = lfa1-name1.

            IF /pws/zycie006-paisfab IS INITIAL.

              /pws/zycie006-paisfab = lfa1-land1.

            ENDIF.

          ELSE.

            CLEAR /pws/zycie006-descfab.

            MESSAGE s015 WITH text-053.

          ENDIF.

        ELSE.

          CLEAR /pws/zycie006-lifnrfabr.

        ENDIF.

        LOOP AT itab_zycit003.

          MOVE: /pws/zycie006-descfab TO itab_zycit003-descfab,

                /pws/zycie006-lifnrfabr TO itab_zycit003-lifnrfabr,

                /pws/zycie006-flagfabr TO itab_zycit003-flagfabr,

                '2' TO itab_zycit003-fabric.

          IF itab_zycit003-paisfab IS INITIAL.

            MOVE /pws/zycie006-paisfab TO itab_zycit003-paisfab.

          ENDIF.

          MODIFY itab_zycit003.

        ENDLOOP.

        v_flag = 'X'.

      ELSEIF /pws/zycie006-fabricante = '1'.

        v_fabr_ant = '1'.

        CLEAR lfa1.

        SELECT SINGLE * FROM lfa1

          WHERE lifnr EQ /pws/zycie006-lifnr.

        /pws/zycie006-lifnrfabr = /pws/zycie006-lifnr.

        /pws/zycie006-flagfabr = 'S'.

        /pws/zycie006-descfab = lfa1-name1.

        /pws/zycie006-paisfab = lfa1-land1.

        LOOP AT itab_zycit003.

          MOVE: /pws/zycie006-descfab TO itab_zycit003-descfab,

                /pws/zycie006-lifnrfabr TO itab_zycit003-lifnrfabr,

                /pws/zycie006-flagfabr TO itab_zycit003-flagfabr,

                '1' TO itab_zycit003-fabric.

          IF itab_zycit003-paisfab IS INITIAL.

            MOVE /pws/zycie006-paisfab TO itab_zycit003-paisfab.

          ENDIF.

          MODIFY itab_zycit003.

        ENDLOOP.

        v_flag = 'X'.

      ELSEIF /pws/zycie006-fabricante = '2'.

        CLEAR: /pws/zycie006-descfab,

        /pws/zycie006-paisfab , /pws/zycie006-lifnrfabr,

        /pws/zycie006-flagfabr.

        IF v_flag EQ 'X'.

          LOOP AT itab_zycit003.

            CLEAR: itab_zycit003-fabric, itab_zycit003-paisfab,

                   itab_zycit003-descfab, itab_zycit003-lifnrfabr,

                   itab_zycit003-flagfabr.

            MODIFY itab_zycit003.

          ENDLOOP.

          v_flag = space.

        ENDIF.

      ELSEIF /pws/zycie006-fabricante = '3'.

        v_flag = 'X'.

        CLEAR: /pws/zycie006-descfab,

        /pws/zycie006-paisfab , /pws/zycie006-lifnrfabr,

        /pws/zycie006-flagfabr.

        LOOP AT itab_zycit003.

          CLEAR:  itab_zycit003-descfab, itab_zycit003-paisfab,

                  itab_zycit003-lifnrfabr , itab_zycit003-flagfabr.

          MOVE: '3' TO itab_zycit003-fabric.

          MODIFY itab_zycit003.

        ENDLOOP.

      ENDIF.

    WHEN 'CAMB'.

      CALL SCREEN 0112 STARTING AT 5 5 ENDING AT 65 20.

    WHEN 'REC'.

      IF /pws/zycit477 IS INITIAL AND

         /pws/zycie006-belnr_p IS INITIAL.

        PERFORM trata_save.

      ENDIF.

      IF NOT /pws/zycie006-belnr_p IS INITIAL.

        PERFORM executa_recebimento.

        CLEAR v_modo_bi.

      ELSE.

        MESSAGE i013 WITH text-133.

      ENDIF.

    WHEN 'ESTOR'.

      PERFORM estorna_documentos.

    WHEN 'VISUA'.

      v_visualiza = 'X'.

      PERFORM visualiza_rateio.

  ENDCASE.

  CLEAR okcode.

ENDMODULE.

* << Fim da exclusão

MODULE user_command INPUT.

  CASE sy-dynnr.

    WHEN '0112'.

      LEAVE TO SCREEN 0.

  ENDCASE.

ENDMODULE.

MODULE consiste_tpnf INPUT.

  IF NOT /pws/zycie006-lifnr IS INITIAL AND

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

       /pws/zycie006-tpfatura EQ '03' OR

...

 

...

MODULE user_command_0051 INPUT.

  CASE okcode.

    WHEN 'BC'.

      CALL METHOD html_control->go_back.

      CLEAR okcode.

    WHEN 'AVAN'.

      CALL METHOD html_control->go_forward.

      CLEAR okcode.

  ENDCASE.

ENDMODULE.

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

MODULE carrega_pais INPUT.

  PERFORM carrega_pais.

ENDMODULE.

* << Fim da exclusão

MODULE atualiza_pais INPUT.

  CLEAR v_paisfab.

  IF  '03' CA /pws/zycie006-fabricante .

    CLEAR : /pws/zycie006-lifnrfabr,

            /pws/zycie006-descfab,

            /pws/zycie006-paisfab.

    v_paisfab = 'X' .

  ENDIF.

  LOOP AT itab_zycit003.

    IF '03' CA /pws/zycie006-fabricante .

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003O01

 

...

      IF sy-subrc EQ 0.

        screen-input = 0.

      ENDIF.

    ENDIF.

    IF v_existe_bol EQ 'X'.

      screen-input = '0'.

    ENDIF.

    MODIFY SCREEN.

  ENDLOOP.

ENDMODULE.

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

MODULE conta_itens OUTPUT.

  CLEAR v_nitens.

  LOOP AT itab_zycit003

    WHERE livre = 'S'.

    v_nitens = v_nitens + 1.

  ENDLOOP.

ENDMODULE.

MODULE seleciona OUTPUT.

ENDMODULE.

* << Fim da exclusão

MODULE status_0200 OUTPUT.

  SET PF-STATUS '0200'.

ENDMODULE.

MODULE set_screen_200 OUTPUT.

  LOOP AT SCREEN.

    IF v_fabricante EQ '1'.

      IF screen-group1 = 'F1'.

        screen-invisible = '1'.

      ENDIF.

      IF screen-group1 = 'F2'.

...

 

...

          WHEN 'F1' .

            screen-invisible = '0'.

          WHEN 'F3' .

            screen-invisible = '0'.

        ENDCASE.

        MODIFY SCREEN.

      ENDIF.

    ENDIF.

  ENDLOOP.

ENDMODULE.

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

MODULE set_screen_202 OUTPUT.

ENDMODULE.

* << Fim da exclusão

MODULE status_0400 OUTPUT.

  SET PF-STATUS '400'.

ENDMODULE.

MODULE exibe_detalhe OUTPUT.

  IF /pws/zycie006-fabricante = '2'.

    IF /pws/zycie003-flagfabr = 'S'.

    ELSE.

      CLEAR /pws/zycie003-lifnrfabr.

    ENDIF.

  ENDIF.

...

 

...

    IF v_anula = 'X'.

      LOOP AT itab_zycit003.

        v_tabix = sy-tabix.

        CLEAR itab_zycit003-total.

        MODIFY itab_zycit003 INDEX v_tabix.

      ENDLOOP.

    ENDIF.

    CLEAR v_anula.

  ENDIF.

ENDMODULE.

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

MODULE status_0110 OUTPUT.

  SET PF-STATUS '0110'.

  SET TITLEBAR  '0110'.

ENDMODULE.

MODULE set_screen_0110 OUTPUT.

  SELECT SINGLE * FROM /pws/zycbt119

         INTO /pws/zycbe119

         WHERE nrseq = /pws/zycie006-nrseq_pgfat.

  SELECT SINGLE * FROM /pws/zycbt031

         INTO /pws/zycbe031

         WHERE     bukrs = /pws/zycbe119-bukrs

           AND mdcorresp = 'IP'

           AND nrcorresp = /pws/zycbe119-nrseq

           AND tabela    = '/PWS/ZYCBT119'.

  SELECT SINGLE name1 FROM lfa1 INTO v_name1

         WHERE lifnr = /pws/zycbe031-bcooper.

  SELECT SINGLE * FROM /pws/zycbt048

         INTO /pws/zycbe048

         WHERE bukrs = /pws/zycbe119-bukrs

           AND mdcorresp = 'IP'

           AND nrcorresp = /pws/zycbe119-nrseq.

  SELECT SINGLE * FROM /pws/zycbt115

         INTO /pws/zycbe115

         WHERE nrcorrep = /pws/zycbe119-nrseq

           AND tpdoc    = 'P'.

ENDMODULE.

MODULE check_diferenca OUTPUT.

  DATA:

      v_tot_char(18).

  IF v_vlreal IS INITIAL.

    IF ( t001-land1 = 'AR' OR t001-land1 = 'CL' )

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

      v_vlreal = /pws/zycie006-vlmerc.

    ELSE.

      v_vlreal = /pws/zycie006-vltotal.

    ENDIF.

  ENDIF.

  READ TABLE itab_zycit003 INDEX 1.

  IF /pws/zycie006-inco1 = 'CFR'.

    IF v_total NE /pws/zycie006-vltotal

    AND NOT itab_zycit003-vlreal    IS INITIAL

        AND NOT v_total IS INITIAL.

      v_ttotal = v_total -   v_vlreal.

      WRITE v_ttotal TO v_tot_char CURRENCY /pws/zycit006-waers.

      MESSAGE s015 WITH text-019 v_tot_char.

      v_total_erro = 'X'.

    ENDIF.

  ELSE.

    IF v_total NE /pws/zycie006-vltotal

    AND NOT itab_zycit003-vlreal IS INITIAL

    AND NOT v_total IS INITIAL.

      v_ttotal = v_total -  v_vlreal .

      WRITE v_ttotal TO v_tot_char CURRENCY /pws/zycit006-waers.

      MESSAGE s015 WITH text-019 v_tot_char.

      v_total_erro = 'X'.

    ENDIF.

  ENDIF.

ENDMODULE.

MODULE status_0050 OUTPUT.

  FREE itab_pf_status.

  IF sy-tcode = '/PWS/ZYCI003_M'.

    itab_pf_status-fcode = 'DELE'.

    APPEND itab_pf_status.

    itab_pf_status-fcode = 'PED'.

    APPEND itab_pf_status.

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

       /pws/zycie006-tpfatura NE '11'.

      itab_pf_status-fcode = 'FABR'.

      APPEND itab_pf_status.

      itab_pf_status-fcode = 'DET'.

      APPEND itab_pf_status.

    ENDIF.

    IF /pws/zycie006-tpfatura NE '11'

       AND ( /pws/zycie006-tpfatura NE '04'

       AND /pws/zycie006-vinserv EQ 'X' ).

      itab_pf_status-fcode = 'REC'.

      APPEND itab_pf_status.

      itab_pf_status-fcode = 'ESTOR'.

      APPEND itab_pf_status.

    ENDIF.

    SET PF-STATUS '0100' EXCLUDING itab_pf_status.

  ELSEIF sy-tcode = '/PWS/ZYCI003_C' OR v_status_s = 1.

    IF /pws/zycie006-tpfatura NE '01'

     AND /pws/zycie006-tpfatura NE '11'.

      itab_pf_status-fcode = 'FABR'.

      APPEND itab_pf_status.

      itab_pf_status-fcode = 'DET'.

      APPEND itab_pf_status.

    ENDIF.

    IF /pws/zycie006-tpfatura NE '11'

    AND /pws/zycie006-tpfatura NE '12'.

      itab_pf_status-fcode = 'REC'.

      APPEND itab_pf_status.

      itab_pf_status-fcode = 'ESTOR'.

      APPEND itab_pf_status.

    ENDIF.

    IF itab_zycit132[] IS INITIAL.

      itab_pf_status-fcode = 'RENE'.

      APPEND itab_pf_status.

    ENDIF.

    IF /pws/zycie006-tpfatura NE '02' AND

       /pws/zycie006-tpfatura NE '03' AND

       /pws/zycie006-tpfatura NE '04'.

      itab_pf_status-fcode = 'VISUA'.

      APPEND itab_pf_status.

    ENDIF.

    SET PF-STATUS '0100' EXCLUDING itab_pf_status.

  ENDIF.

  IF sy-tcode = '/PWS/ZYCI003_R' OR v_status_s = 0 OR

     ( sy-tcode = '/PWS/ZYCI003_L' AND v_exibe_fat IS INITIAL ).

    itab_pf_status-fcode = 'ELIM'.

    APPEND itab_pf_status.

    itab_pf_status-fcode = 'MARC'.

    APPEND itab_pf_status.

    itab_pf_status-fcode = 'ELIM'.

    APPEND itab_pf_status.

    itab_pf_status-fcode = 'DELE'.

    APPEND itab_pf_status.

    itab_pf_status-fcode = 'DESM'.

    APPEND itab_pf_status.

    itab_pf_status-fcode = 'SAVE'.

    APPEND itab_pf_status.

    itab_pf_status-fcode = 'PED'.

    APPEND itab_pf_status.

    itab_pf_status-fcode = 'RENE'.

    APPEND itab_pf_status.

    IF /pws/zycie006-tpfatura NE '01'

    AND /pws/zycie006-tpfatura NE '11'.

      itab_pf_status-fcode = 'FABR'.

      APPEND itab_pf_status.

      itab_pf_status-fcode = 'DET'.

      APPEND itab_pf_status.

    ENDIF.

    IF /pws/zycie006-tpfatura NE '11'

    AND ( /pws/zycie006-tpfatura EQ '04' AND

    /pws/zycie006-vinserv EQ 'X' ).

      itab_pf_status-fcode = 'REC'.

      APPEND itab_pf_status.

      itab_pf_status-fcode = 'ESTOR'.

      APPEND itab_pf_status.

    ENDIF.

    SET PF-STATUS '0100' EXCLUDING itab_pf_status.

  ENDIF.

  SET TITLEBAR '0100'.

ENDMODULE.

* << Fim da exclusão

MODULE load_html_help OUTPUT.

  IF my_container IS INITIAL.

    CREATE OBJECT my_container

        EXPORTING

            container_name = 'CC_HTML_HELP'

        EXCEPTIONS

            others = 1.

    CASE sy-subrc.

      WHEN 0.

      WHEN OTHERS.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCI003X01

 

...

      END OF wa_fornec_fat.

DATA: wa_headerdata TYPE bapi_incinv_create_header,

      v_belnr_mr1m TYPE /pws/zycie006-belnr_mr1m,

      itab_itemdata TYPE bapi_incinv_create_item

                          OCCURS 0 WITH HEADER LINE,

      itab_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE,

      itab_account TYPE bapi_incinv_create_account

                          OCCURS 0 WITH HEADER LINE,

      itab_glaccount TYPE bapi_incinv_create_gl_account

                          OCCURS 0 WITH HEADER LINE.

* >> Início da inclusão:

 data v_tot_vlreal LIKE /pws/zycit003-vlreal.

  DATA v_loop TYPE i.

  DATA v_return(40) TYPE c.

  DATA: value(132).

  DATA: BEGIN OF f_tab OCCURS 10.

          INCLUDE STRUCTURE help_value.

  DATA: END OF f_tab.

  DATA: BEGIN OF v_tab OCCURS 200,

          value(40) TYPE c,

  END OF v_tab.

  DATA: BEGIN OF itab_rateio OCCURS 0.

          INCLUDE STRUCTURE /pws/zycit391.

  DATA: END OF itab_rateio.

  DATA v_del.

* << Fim da inclusão

DATA: END OF COMMON PART.