CE PLUS - Nota 006912

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Nota Fiscal

Data/Hora da Publicação: 03/07/2008 00:00:00

Data/Hora Última Alteração: 09/03/2010 14:04:34

Descrição da Nota: CRIAR EXIT PARA CÁLCULOS DE VALORES FUNDAP

Sintoma

 

necessária exit para cálculos de valores fundap.

 

Solução

 

Abertura de exit no programa de nota fiscal para cálculo do Desconto FUNDAP.

Versões Tratadas

7.0

Informações Complementares

 

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

Nota Número 06912 Data: 03/07/2008 Hora: 15:51:07

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

 

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

Nota Número              : 06912

Categoria                : Erro de Programa

Prioridade               : Alta

Versão PW.CE             : 7.0

Pacote                   : 00006

Agrupamento              : 00054

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

CRIAR EXIT PARA CÁLCULOS DE VALORES FUNDAP

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

Palavras Chave:

FUNDAP - CÁLCULO - NOTA FISCAL

 

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

Objetos da nota:

REPS /PWS/MZYCI016F01

 

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

Modificações efetuadas em REPS /PWS/MZYCI016F01

 

...

            SELECT SINGLE * FROM /pws/zycbt007

            WHERE bukrs EQ /pws/zycie085-bukrs.

          ENDIF.

        ENDIF.

        LOOP AT itab_zycit049_fndp

          WHERE tpdesp NE /pws/zycit000-cod_sisc.

          IF itab_zycit049_fndp-waers EQ /pws/zycie085-waersfob .

            v_vlreal = v_vlreal + itab_zycit049_fndp-vldp .

          ELSE.

            PERFORM trata_decimais USING itab_zycit049_fndp-waers

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

                                         itab_zycit049_fndp-vldp.

* << Fim da exclusão

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

                           changing  itab_zycit049_fndp-vldp.

* << Fim da inclusão

            PERFORM taxa_converte USING itab_zycit049_fndp-waers

                                         /pws/zycie085-dttax

                                CHANGING v_taxa_desp.

            v_vlreal = v_vlreal + ( itab_zycit049_fndp-vldp *

                                    v_taxa_desp ) .

          ENDIF.

        ENDLOOP.

        LOOP AT itab_zycit003.

          CLEAR :  itab_zycit480,

                   v_vlii, v_vlipi,

...

 

...

              v_vlipi = itab_zycit100-vlipi.

            ENDIF.

            IF NOT '356' CA itab_zycit100-codregtripiscofi.

              v_vlpis    = itab_zycit100-vlpis.

              v_vlcofins = itab_zycit100-vlcofins.

            ENDIF.

            itab_zycit480-vl_aliqicms = itab_zycit003-advalicms .

            itab_zycit480-vl_basred = itab_zycit003-basred .

            IF itab_zycit100-waersbem NE /pws/zycie085-waersfob.

              PERFORM trata_decimais USING itab_zycit100-waersbem

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

                                           itab_zycit100-vlfob.

* << Fim da exclusão

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

                            changing itab_zycit100-vlfob.

* << Fim da inclusão

              PERFORM taxa_converte USING /pws/zycie085-waersfob

                                          /pws/zycie085-dttax

                                  CHANGING v_taxa_desp.

             itab_zycit100-vlfob =  itab_zycit100-vlfob * v_taxa_desp  .

              IF NOT /pws/zycie085-vlfob IS INITIAL.

                v_vldp =  ( v_vlreal * itab_zycit100-vlfob ) /

                       /pws/zycie085-vlfob.

              ENDIF.

            ELSE.

              IF NOT /pws/zycie085-vlfob IS INITIAL.

...

 

...

      IF NOT itab_zycit003[] IS INITIAL.

        SELECT * FROM /pws/zycit480

        INTO TABLE itab_zycit480

        FOR ALL ENTRIES IN itab_zycit003

        WHERE nrseq EQ itab_zycit003-nrseq

        AND   ebeln EQ itab_zycit003-ebeln

        AND   ebelp EQ itab_zycit003-ebelp.

      ENDIF.

    ENDIF.

  ENDIF.

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

  REFRESH itab_zyglt100.

  PERFORM verifica_exit USING 'D'

                      '/PWS/SAPMZYCI016'

                      'DNF018'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

        zexit = 'DNF018'  BINARY SEARCH.

  IF sy-subrc EQ 0 AND

  NOT  itab_zyglt100-zexit_ativa IS INITIAL.

    PERFORM (itab_zyglt100-formulario) IN PROGRAM

      (itab_zyglt100-programa) IF FOUND .

  ENDIF.

* << Fim da inclusão

ENDFORM.

FORM find_nrseqc.

  DATA:

    v_nfglobal LIKE /pws/zycit041-nfglobal,

    v_count(6) TYPE n.

  SELECT MAX( nfglobal ) INTO (v_nfglobal)

  FROM /pws/zycit041.                                   "#EC CI_NOWHERE

  v_count = v_nfglobal+0(6) + 1.

  MOVE v_count TO /pws/zycie041-nfglobal.

ENDFORM.

...

 

...

              v_qtditem = wa_zycit048-qtd_item.

              IF v_counter >= v_qtditem.

                CLEAR: v_counter, v_tpnf, v_j_1bbranch, v_lifnr .

                EXIT.

              ENDIF.

            ENDLOOP.

            IF sy-subrc NE 0.

              EXIT.

            ENDIF.

            it_zycee005-transpnac = /pws/zycie041-transpnac.

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

            IF it_zycee005-ntgew LT '0.001'.

* << Fim da exclusão

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

            IF it_zycee005-ntgew LT '0.001'.              "#EC PORTABLE

* << Fim da inclusão

              it_zycee005-ntgew = '0.001'.

            ENDIF.

            APPEND it_zycee005.

            PERFORM mensagens_nf.

            LOOP AT it_zycet004.

              MESSAGE i019 WITH it_zycet004-descricao.

            ENDLOOP.

            IF it_zycet004 IS INITIAL.

              CLEAR: sy-subrc.

              IF v_modalidade NE '99' AND ( t001-land1 NE 'AR' AND

...

 

...

              CLEAR itab_zycit033.

              PERFORM peso_global_sep.

              v_counter = v_counter + 1.

              v_qtditem =  wa_zycit048-qtd_item.

              IF v_counter >= v_qtditem.

                CLEAR: v_counter, v_j_1bbranch, v_lifnr .

                EXIT.

              ENDIF.

            ENDLOOP.

            it_zycee005-transpnac = /pws/zycie041-transpnac.

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

            IF it_zycee005-ntgew LT '0.001'.

* << Fim da exclusão

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

            IF it_zycee005-ntgew LT '0.001'.              "#EC PORTABLE

* << Fim da inclusão

              it_zycee005-ntgew = '0.001'.

            ENDIF.

            APPEND it_zycee005.

            PERFORM mensagens_nf.

            LOOP AT it_zycet004.

              MESSAGE i019 WITH it_zycet004-descricao.

            ENDLOOP.

            IF it_zycet004 IS INITIAL.

              IF ( v_modalidade NE '99' AND t001-land1 NE 'AR'

              AND t001-land1 NE 'CL' ) OR

...

 

...

    READ TABLE itab_zycit033 WITH KEY tpnf  = itab_zycit044-tpnf

                                      regio = itab_t001w-regio.

    IF sy-subrc NE 0.

      READ TABLE itab_zycit033 WITH KEY tpnf  = itab_zycit044-tpnf

                                        regio = space.

    ENDIF.

    PERFORM itens_nf_r.

    CLEAR itab_zycit033.

  ENDLOOP.

  it_zycee005-transpnac = /pws/zycie043-transpnac.

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

  IF it_zycee005-ntgew LT '0.001'.

* << Fim da exclusão

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

  IF it_zycee005-ntgew LT '0.001'.                        "#EC PORTABLE

* << Fim da inclusão

    it_zycee005-ntgew = '0.001'.

  ENDIF.

  APPEND it_zycee005.

  PERFORM mensagens_nf_r.

  LOOP AT it_zycet004.

    MESSAGE i019 WITH it_zycet004-descricao.

  ENDLOOP.

  IF it_zycet004 IS INITIAL.

    PERFORM verifica_exit USING 'D'

                        '/PWS/SAPMZYCI016'

...

 

...

    ELSE.

      v_brgew = v_brgew +

    ( ( itab_zycit003_aux-ntgew / local_tntgew ) *

                       /pws/zycit093-brgew ).

    ENDIF.

  ENDLOOP.

  it_zycee005-ntgew  =  it_zycee005-ntgew + v_ntgew.

  it_zycee005-brgew  =  it_zycee005-brgew + v_brgew.

  it_zycee005-gewei  = text-038.

ENDFORM.

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

FORM peso_global_n.

  DATA: local_tntgew LIKE itab_zycit003_aux-ntgew.

  LOOP AT itab_zycit003_aux.

    local_tntgew = local_tntgew + itab_zycit003_aux-ntgew.

  ENDLOOP.

  CLEAR: v_ntgew, v_brgew.

  IF v_graneis EQ 'S'.

    IF NOT /pws/zycit093-brgewd IS INITIAL.

      /pws/zycit093-brgew = /pws/zycit093-brgewd.

    ENDIF.

  ENDIF.

  LOOP AT itab_zycit003_aux

    WHERE nrseq = itab_zycit042-nrseq

      AND ebeln = itab_zycit042-ebeln

      AND ebelp = itab_zycit042-ebelp.

    v_ntgew = v_ntgew + itab_zycit003_aux-ntgew.

    v_brgew = v_brgew + ( ( itab_zycit003_aux-ntgew / local_tntgew ) *

                        /pws/zycit093-brgew ).

  ENDLOOP.

  it_zycee005-ntgew  =  it_zycee005-ntgew + v_ntgew.

  it_zycee005-brgew  =  it_zycee005-brgew + v_brgew.

  it_zycee005-gewei  = text-038.

ENDFORM.

FORM peso_remessa_sep.

  CLEAR: v_ntgew, v_brgew.

  LOOP AT itab_zycit003_aux

    WHERE ebeln = itab_zycit044_aux-ebeln

      AND ebelp = itab_zycit044_aux-ebelp.

    SELECT SINGLE * FROM /pws/zycit004

      WHERE nrseq EQ /pws/zycie043-nrseq.

    v_ntgew = v_ntgew + itab_zycit003_aux-ntgew.

    v_brgew = v_brgew + ( /pws/zycit004-brgew / /pws/zycit004-ntgew ) *

                                               itab_zycit003_aux-ntgew.

  ENDLOOP.

  it_zycee005-ntgew  = v_ntgew.

  it_zycee005-brgew  = v_brgew.

  it_zycee005-gewei  = text-038.

ENDFORM.

* << Fim da exclusão

FORM peso_remessa_n.

  DATA: local_tntgew LIKE itab_zycit003_aux-ntgew.

  LOOP AT itab_zycit003_aux.

    local_tntgew = local_tntgew + itab_zycit003_aux-ntgew.

  ENDLOOP.

  READ TABLE itab_zycit044 INDEX 1.

  SELECT SINGLE * FROM /pws/zycit085

    WHERE nrseqdi = itab_zycit044-nrseqnf.

  SELECT SINGLE * FROM /pws/zycit093

    WHERE nrseqce = /pws/zycit085-nrbl.

...

 

...

      ENDIF.

      v_basred = ( v_advicms * 10000 / itab_zycit003-advalicms ).

    ELSE.

      v_basred    = itab_zycit003-basred.

    ENDIF.

    IF v_basred IS INITIAL.

      v_basred = 100.

    ENDIF.

  ENDIF.

ENDFORM.

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

FORM transfere_pedidos.

  LOOP AT itab_zycit042.

    itab_ebeln-sign   = 'I'.

    itab_ebeln-option = 'EQ'.

    itab_ebeln-low    = itab_zycit042-ebeln.

    APPEND itab_ebeln.

    itab_ebelp-sign   = 'I'.

    itab_ebelp-option = 'EQ'.

    itab_ebelp-low    = itab_zycit042-ebelp.

    APPEND itab_ebelp.

  ENDLOOP.

ENDFORM.

* << Fim da exclusão

FORM cabecalho_nf.

  CLEAR v_graneis.

  SELECT SINGLE * FROM j_1bbranch

    WHERE bukrs = /pws/zycie041-bukrs

     AND branch = /pws/zycit085-j_1bbranch.

  SELECT SINGLE * FROM adrc

    WHERE addrnumber = j_1bbranch-adrnr.

  it_zycee005-tcode  = text-065.

  it_zycee005-tabela = text-014.

  it_zycee005-nrseq  = /pws/zycie041-nfglobal.

...

 

...

         ( itab_zycit003-vlreal * itab_zycit003-qtd_iten ).

  ENDLOOP.

  DESCRIBE TABLE itab_zycit042 LINES v_lines.

  DESCRIBE TABLE itab_zycit003 LINES v_lin.

  LOOP AT itab_zycit049_aux_r WHERE nrseq = v_nrseq AND

                                    vldp NE 0.

    it_zycee006-indice  = v_ind.

    IF itab_zycit049_aux_r-tpdesp EQ /pws/zycit000-cod_sisc.

      IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.

        PERFORM trata_decimais USING itab_zycit049_aux_r-waers

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

                                     itab_zycit049_aux_r-vldp.

* << Fim da exclusão

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

                     changing  itab_zycit049_aux_r-vldp.

* << Fim da inclusão

        PERFORM taxa_converte USING itab_zycit049_aux_r-waers

             itab_zycit085-dttax CHANGING v_taxa_desp.

        v_vldp  = itab_zycit049_aux_r-vldp *

                        v_taxa_desp.

      ELSE.

        v_vldp = itab_zycit049_aux_r-vldp .

      ENDIF.

      READ TABLE itab_zycit019 WITH KEY

                                tpdesp = itab_zycit049_aux_r-tpdesp.

      READ TABLE itab_zycit020 WITH KEY codigo = itab_zycit019-codigo

                                        regio  =  itab_zycit019-regio.

    ELSE.

      IF itab_zycit049_aux_r-waers NE /pws/zycbt007-waersb.

        PERFORM trata_decimais USING itab_zycit049_aux_r-waers

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

                                     itab_zycit049_aux_r-vldp.

* << Fim da exclusão

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

                      changing   itab_zycit049_aux_r-vldp.

* << Fim da inclusão

        PERFORM taxa_converte USING itab_zycit049_aux_r-waers

                                     /pws/zycit085-dttax

                            CHANGING v_taxa_desp.

        itab_zycit049_aux_r-vldp = itab_zycit049_aux_r-vldp *

         v_taxa_desp.

      ENDIF.

      v_vldp_aux = itab_zycit049_aux_r-vldp.

      LOOP AT itab_zycit003_mark.

        v_idx = sy-tabix.

        IF itab_zycit085-waersfob NE itab_zycit003_mark-waers.

...

 

...

  IF wa_zycit048-nfext EQ 'X' AND v_ok EQ space.

    itab_zycit042-nfnum  = wa_zycit048-nfprov.

    itab_zycit042-series = wa_zycit048-series.

  ENDIF.

  itab_zycit042-docnum = 0.

  IF itab_zycit042-nfglobal IS INITIAL.

    itab_zycit042-nfglobal = /pws/zycie041-nfglobal.

  ENDIF.

  APPEND itab_zycit042.

ENDFORM.

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

FORM grava_tab_sep.

  /pws/zycie041-docnum      = it_zycee005-belnr.

  /pws/zycie041-nfnum       = itab_zycit042_aux-nfnum.

  /pws/zycie041-series      = itab_zycit042_aux-series.

  /pws/zycie041-subser      = itab_zycit042_aux-subser.

  itab_zycit042-docnum = it_zycee005-belnr.

  MODIFY /pws/zycit041 FROM /pws/zycie041.

  MODIFY itab_zycit042 TRANSPORTING docnum.

  /pws/zycit042-mandt    = sy-mandt.

  /pws/zycit042-nrseq    = itab_zycit042-nrseq.

  /pws/zycit042-nfglobal = itab_zycit042-nfglobal.

  /pws/zycit042-ebeln    = itab_zycit042-ebeln.

  /pws/zycit042-ebelp    = itab_zycit042-ebelp.

  /pws/zycit042-tpnf     = itab_zycit042-tpnf.

  /pws/zycit042-qtd_iten = itab_zycit042-qtd_iten.

  /pws/zycit042-meins    = itab_zycit042-meins.

  /pws/zycit042-waersb   = itab_zycit042-waersb.

  /pws/zycit042-netpr    = itab_zycit042-netpr.

  /pws/zycit042-docnum   = it_zycee005-belnr.

  /pws/zycit042-nfnum    = itab_zycit042-nfnum.

  /pws/zycit042-series   = itab_zycit042-series.

  /pws/zycit042-subser   = itab_zycit042-subser.

  MODIFY /pws/zycit042.

ENDFORM.

FORM grava_tab_sep_r.

  /pws/zycie043-docnum      = it_zycee005-belnr.

  /pws/zycie043-nfnum       = itab_zycit044_aux-nfnum.

  /pws/zycie043-series      = itab_zycit044_aux-series.

  /pws/zycie043-subser      = itab_zycit044_aux-subser.

  itab_zycit044-docnum = it_zycee005-belnr.

  MODIFY /pws/zycit043 FROM /pws/zycie043.

  MODIFY itab_zycit044 TRANSPORTING docnum.

  /pws/zycit044-mandt     = sy-mandt.

  /pws/zycit044-nrseq     = itab_zycit044-nrseq.

  /pws/zycit044-nfglobal  = itab_zycit044-nfglobal.

  /pws/zycit044-nfremessa = itab_zycit044-nfremessa.

  /pws/zycit044-ebeln     = itab_zycit044-ebeln.

  /pws/zycit044-ebelp     = itab_zycit044-ebelp.

  /pws/zycit044-tpnf      = itab_zycit044-tpnf.

  /pws/zycit044-qtd_item  = itab_zycit044-qtd_item.

  /pws/zycit044-meins     = itab_zycit044-meins.

  /pws/zycit044-waersb    = itab_zycit044-waersb.

  /pws/zycit044-netpr     = itab_zycit044-netpr.

  /pws/zycit044-docnum    = it_zycee005-belnr.

  /pws/zycit044-nfnum     = itab_zycit044-nfnum.

  /pws/zycit044-series    = itab_zycit044-series.

  /pws/zycit044-subser    = itab_zycit044-subser.

  MODIFY /pws/zycit044.

ENDFORM.

* << Fim da exclusão

FORM valores.

  DATA: v_vldp_042 LIKE /pws/zycit042-vldp,

        v_vlseg    LIKE itab_zycit036_di-vlmov.

  CLEAR: v_vldp_042, v_impostos.

  CLEAR v_despesas.

  LOOP AT itab_zycit036

    WHERE nrseq = itab_zycit042-nrseq

      AND ebeln = itab_zycit042-ebeln

      AND ebelp = itab_zycit042-ebelp.

    READ TABLE itab_zycit036_di WITH KEY nrseq  = itab_zycit036-nrseq

...

 

...

                                    tpdesp = itab_zycit049_a-tpdesp.

        IF ( itab_zycit019-tipo EQ 'A' OR

           itab_zycit019-tipo IS INITIAL ) OR

           itab_zycit049_a-tpdesp = /pws/zycit000-flagfreten.

          READ TABLE itab_zycit020 WITH KEY

                                   codigo = itab_zycit019-codigo.

          READ TABLE itab_zycit039 WITH KEY

                                   codigo = itab_zycit020-codigo.

          IF itab_zycit049_a-waers NE /pws/zycbt007-waersb.

            PERFORM trata_decimais USING itab_zycit049_a-waers

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

                                         itab_zycit049_a-vldp.

* << Fim da exclusão

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

                         CHANGING    itab_zycit049_a-vldp.

* << Fim da inclusão

            PERFORM taxa_converte USING itab_zycit049_a-waers

                                         /pws/zycit085-dttax

                                CHANGING v_taxa_desp.

            itab_zycit049_a-vldp = itab_zycit049_a-vldp *

                                   v_taxa_desp.

            itab_zycit049_a-waers = /pws/zycbt007-waersb.

          ENDIF.

          IF v_lines = v_tabix.

            v_vldp = itab_zycit049_a-vldp - v_tot_vldp.

            itab_zycit042_d-vldp = itab_zycit042_d-vldp + v_vldp.

...

 

...

                                        tpdesp = itab_zycit049-tpdesp.

            IF ( itab_zycit019-tipo EQ 'A' OR

               itab_zycit019-tipo IS INITIAL ) OR

               itab_zycit049-tpdesp = /pws/zycit000-flagfreten.

              READ TABLE itab_zycit020 WITH KEY

                                       codigo = itab_zycit019-codigo.

              READ TABLE itab_zycit039 WITH KEY

                                       codigo = itab_zycit020-codigo.

              IF itab_zycit049-waers NE /pws/zycbt007-waersb.

                PERFORM trata_decimais USING itab_zycit049-waers

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

                                             itab_zycit049-vldp.

* << Fim da exclusão

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

                              CHANGING    itab_zycit049-vldp.

* << Fim da inclusão

                PERFORM taxa_converte USING itab_zycit049-waers

                                             /pws/zycit085-dttax

                                    CHANGING v_taxa_desp.

                itab_zycit049-vldp = itab_zycit049-vldp *

                                       v_taxa_desp.

                itab_zycit049-waers = /pws/zycbt007-waersb.

              ENDIF.

              IF v_lines = v_tabix.

                v_vldp = itab_zycit049-vldp - v_tot_vldp.

                itab_zycit042-vldp = itab_zycit042-vldp + v_vldp.

...

 

...

                                        tpdesp = itab_zycit049-tpdesp.

            IF ( itab_zycit019-tipo EQ 'A' OR

               itab_zycit019-tipo IS INITIAL ) OR

              itab_zycit049-tpdesp = /pws/zycit000-flagfreten.

              READ TABLE itab_zycit020 WITH KEY

                                       codigo = itab_zycit019-codigo.

              READ TABLE itab_zycit039 WITH KEY

                                       codigo = itab_zycit020-codigo.

              IF itab_zycit049-waers NE /pws/zycbt007-waersb.

                PERFORM trata_decimais USING itab_zycit049-waers

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

                                             itab_zycit049-vldp.

* << Fim da exclusão

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

                                      CHANGING itab_zycit049-vldp.

* << Fim da inclusão

                PERFORM taxa_converte USING itab_zycit049-waers

                                             /pws/zycit085-dttax

                                    CHANGING v_taxa_desp.

                itab_zycit049-vldp = itab_zycit049-vldp *

                                       v_taxa_desp.

                itab_zycit049-waers = /pws/zycbt007-waersb.

              ENDIF.

              IF v_lines = v_tabix.

                v_vldp = itab_zycit049-vldp - v_tot_vldp.

               itab_zycit042_d-vldpii = itab_zycit042_d-vldpii + v_vldp.

...

 

...

              itab_zycit042_d-vldpii = itab_zycit042_d-vldpii +

                                 itab_zycit100-vl_sisco.

              MODIFY itab_zycit042_d.

            ENDIF.

          ENDLOOP.

        ENDLOOP.

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

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

FORM nfiscal_complementar.

  CLEAR: /pws/zycie041a, itab_zycit042_c, itab_zycit042_c2,

 itab_zycit042_c3.

  REFRESH: itab_zycit042_c, itab_zycit042_c2, itab_zycit042_c3.

  READ TABLE itab_zycit042.

  IF itab_zycit042-docnum IS INITIAL.

    MESSAGE e036.

    CLEAR: okcode, sy-ucomm.

  ENDIF.

  CONCATENATE itab_zycit042-nfnum '-' itab_zycit042-series INTO v_nfnum.

  CLEAR wa_zycit048.

  SELECT SINGLE * FROM /pws/zyglt369

    INTO wa_zyglt369

    WHERE bukrs   EQ /pws/zycit085-bukrs

    AND   branch  EQ /pws/zycit085-j_1bbranch

    AND   urfdesp EQ /pws/zycit085-urfdesp.

  IF sy-subrc EQ 0.

    SELECT SINGLE * FROM /pws/zycit048

      INTO wa_zycit048

      WHERE bukrs  EQ wa_zyglt369-bukrs

        AND branch EQ wa_zyglt369-branch.

  ELSE.

    SELECT SINGLE * FROM /pws/zycit048

      INTO wa_zycit048

      WHERE bukrs EQ /pws/zycie041-bukrs

        AND branch EQ /pws/zycie041-j_1bbranch.

    IF sy-subrc NE 0.

      SELECT SINGLE * FROM /pws/zycit048

         INTO wa_zycit048

         WHERE bukrs EQ /pws/zycie041-bukrs

               AND branch EQ space.

    ENDIF.

  ENDIF.

  MOVE:

    /pws/zycie041-embarca      TO /pws/zycie041a-embarca,

    /pws/zycie041-nrseq        TO /pws/zycie041a-nrseq,

    /pws/zycie041-bukrs        TO /pws/zycie041a-bukrs,

    /pws/zycie041-werks        TO /pws/zycie041a-werks,

    /pws/zycie041-nrdi         TO /pws/zycie041a-nrdi,

    /pws/zycie041-j_1bbranch   TO /pws/zycie041a-j_1bbranch,

    /pws/zycie041-nfglobal     TO /pws/zycie041a-nfglobal,

    /pws/zycie041-nfexterna    TO /pws/zycie041a-nfexterna,

    sy-datum              TO /pws/zycie041a-dtincl,

    /pws/zycie041-belnr_f_02_c TO /pws/zycie041a-belnr_f_02_c,

    /pws/zycie041-dt_f_02_c    TO /pws/zycie041a-dt_f_02_c.

  IF /pws/zycie041a-nfexterna IS INITIAL.

    MOVE wa_zycit048-nfext TO /pws/zycie041a-nfexterna.

  ENDIF.

  LOOP AT itab_zycit042.

    MOVE itab_zycit042 TO itab_zycit042_c.

    IF itab_zycit042-docnum_c IS INITIAL.

      v_status_nfc = '1'.

    ELSE.

      v_status_nfc = '0'.

    ENDIF.

    IF NOT wa_zycit048-nfext IS INITIAL.

      MOVE:

        wa_zycit048-nfprov TO itab_zycit042_c-nfnum_c,

        wa_zycit048-series TO itab_zycit042_c-series_c.

    ENDIF.

    APPEND itab_zycit042_c.

  ENDLOOP.

  PERFORM calcula_despesa.

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

    LOOP AT itab_zycit042_c WHERE docnum_c IS initial.

    ENDLOOP.

    IF sy-subrc NE 0.

      CALL SCREEN '0300'.

    ELSE.

      MESSAGE s015 WITH text-062.

    ENDIF.

  ELSE.

    CALL SCREEN '0300'.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM carrega_zycie042_c.

  IF itab_zycit042_c-ebeln IS INITIAL.

    EXIT.

  ENDIF.

  MOVE-CORRESPONDING itab_zycit042_c TO /pws/zycie042a.

  SELECT SINGLE * FROM j_1bnfdoc

    WHERE docnum = itab_zycit042_c-docnum_c.

  IF sy-subrc EQ 0.

    itab_zycit042_c-nfnum_c  = j_1bnfdoc-nfnum.

    itab_zycit042_c-series_c = j_1bnfdoc-series.

...

 

...

FORM taxa_converte USING    p_waers

                            p_data

                   CHANGING p_taxa.

  CLEAR: p_taxa.

  DATA:    v_moeda LIKE tcurc-/pws/codmo.

  SELECT SINGLE /pws/codmo FROM tcurc INTO v_moeda WHERE

         waers = p_waers.

  IF sy-subrc EQ 0.

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

           codconver = v_moeda    AND

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

           vigen_inicio <= p_data AND

* << Fim da exclusão

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

           vigen_inicio <= p_data AND                     "#EC PORTABLE

* << Fim da inclusão

           vigen_fim    >= p_data AND

           land1       = t001-land1.

    IF sy-subrc EQ 0.

      p_taxa = /pws/zycit174-txconver.

    ELSE.

      p_taxa = '1'.

    ENDIF.

  ENDIF.

ENDFORM.

FORM atualiza_icms_unitario.

...

 

...

        itab_zycit042-netpr = itab_zycit042-netpr + ( (

            /pws/zycit100-vlicms / itab_zycit042-qtd_iten )

              * 100 ) / v_basred.

      ELSE.

        itab_zycit042-netpr = itab_zycit042-netpr +

        ( /pws/zycit100-vlicms / itab_zycit042-qtd_iten ).

      ENDIF.

    ENDIF.

  ENDIF.

ENDFORM.

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

FORM bi_fb08.

  CHECK NOT /pws/zycie041a-belnr_f_02_c IS INITIAL.

  PERFORM clear_date_batch.

  it_zycbe033-tcode  = 'FB08'.

  it_zycbe033-tabela = text-014.

  it_zycbe033-cpochv = /pws/zycie041a-nfglobal.

  it_zycbe033-belnr  = /pws/zycie041a-belnr_f_02_c.

  it_zycbe033-bukrs  = /pws/zycie041a-bukrs.

  it_zycbe033-bldat  = sy-datum.

  it_zycbe033-budat  = sy-datum.

  it_zycbe033-gjahs  = sy-datum(4).

  IF /pws/zycbt007 IS INITIAL.

    SELECT SINGLE *

      FROM /pws/zycbt007

      WHERE bukrs EQ /pws/zycie041-bukrs.

  ENDIF.

  CALL FUNCTION '/PWS/ZYGL_MOTIVO_ESTORNO'

       EXPORTING

            v_data  = /pws/zycie041a-dtincl

            v_bukrs = /pws/zycie041a-bukrs

            v_koart = 'K'

       IMPORTING

            v_subrc = v_subrc

            v_gjahr = itab_zycbe033-gjahr.

  IF v_subrc  = 0.

    itab_zycbe033-budat  = /pws/zycie041a-dtincl.

    itab_zycbe033-stgrd  = /pws/zycbt007-percorr.

  ELSE.

    itab_zycbe033-budat  = sy-datum.

    itab_zycbe033-stgrd  = /pws/zycbt007-perencer .

  ENDIF.

  APPEND it_zycbe033.

  CALL FUNCTION '/PWS/ZYCI_TRANSACAO_FB08_A'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = it_zycbe033

            t_campo         = it_zycbt034

            t_zycbt032      = it_zycbt032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

  IF sy-subrc = 0.

    READ TABLE it_zycbt032 WITH KEY tcode  = 'FB08'

                                    tabela = text-014

                                    cpochv = /pws/zycie041a-nfglobal

                                    tpmsg  = 'S'.

    IF sy-subrc EQ 0.

      MESSAGE i030 WITH /pws/zycie041a-belnr_f_02_c.

      CLEAR: /pws/zycie041a-belnr_f_02_c, /pws/zycie041-belnr_f_02_c,

             /pws/zycie041a-dt_f_02_c,    /pws/zycie041-dt_f_02_c.

     UPDATE /pws/zycit041 SET belnr_f_02_c = /pws/zycie041-belnr_f_02_c

                                dt_f_02_c    = /pws/zycie041a-dt_f_02_c

                           WHERE nrseq    = /pws/zycie041a-nrseq    AND

                                 nfglobal = /pws/zycie041a-nfglobal AND

                                        docnum   = /pws/zycie041-docnum.

      COMMIT WORK.

    ELSE.

      LOOP AT it_zycbt032.

        MESSAGE i015 WITH it_zycbt032-msg+0(50)

                  it_zycbt032-msg+50(50).

      ENDLOOP.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM mensagens_nf_c.

  DATA BEGIN OF itab_zycit001_msg OCCURS 0.

  DATA: nrseq LIKE /pws/zycit001-nrseq,

        embarca LIKE /pws/zycit001-embarca.

  DATA END OF itab_zycit001_msg.

  DATA itab_zycit042_auxre LIKE /pws/zycit042 OCCURS 0 WITH HEADER LINE.

  DATA : v_idm TYPE i,

         v_dtreg(10)    TYPE c VALUE space   ,

         v_cont TYPE i.

  READ TABLE itab_zycit042_c INDEX 1.

...

 

...

            control_flush_error     = 21

            OTHERS                  = 22.

  IF sy-subrc EQ 0.

    MOVE v_arquivo TO v_caminho.

  ELSE.

    CLEAR v_caminho.

  ENDIF.

  CLEAR itab_cabecalho_txt.

  FREE itab_cabecalho_txt.

ENDFORM.

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

FORM fill_data_j1b2n.

  DATA: v_data(10) TYPE c.

  REFRESH: it_bdc, it_msg.

  CLEAR: it_bdc, it_msg.

  WRITE: sy-datum USING EDIT MASK '__.__.____' TO v_data.

  PERFORM fill_bdc USING: 'X' 'SAPMJ1B1'               '1100',

                          ' ' 'BDC_CURSOR' 'J_1BDYDOC-DOCNUM',

                          ' ' 'J_1BDYDOC-DOCNUM'      v_valor,

                          ' ' 'BDC_OKCODE'              '/00'.

  PERFORM fill_bdc USING: 'X' 'SAPLJ1BB2'        '2000'            ,

                          ' ' 'BDC_CURSOR'       'J_1BDYDOC-PSTDAT',

                          ' ' 'BDC_OKCODE'       '/00'             ,

                          ' ' 'J_1BDYDOC-PSTDAT' v_data            .

  PERFORM fill_bdc USING: 'X' 'SAPLJ1BB2'        '2000' ,

                          ' ' 'BDC_OKCODE'       '=SAVE'.

  IF v_modo_bi IS INITIAL.

    v_modo_bi = 'N'.

  ENDIF.

  CALL TRANSACTION 'J1B2N' USING it_bdc

                           MODE  v_modo_bi

                           UPDATE 'S'

                           MESSAGES INTO it_msg.         "#EC CI_CALLTA

ENDFORM.

* << Fim da exclusão

FORM fill_bdc USING   p_tipo

                      p_fnam

                      p_fval.

  CLEAR it_bdc.

  IF NOT p_tipo IS INITIAL.

    it_bdc-program = p_fnam.

    it_bdc-dynpro  = p_fval.

    it_bdc-dynbegin = 'X'.

  ELSE.

    it_bdc-fnam = p_fnam.

    it_bdc-fval = p_fval.

  ENDIF.

  APPEND it_bdc.

ENDFORM.

FORM itens_nfnew.

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

  v_tiponf = 'NF'.

* << Fim da inclusão

  IF /pws/zycie001-modalidade EQ '05' AND

     /pws/zycie001-tpdecl EQ 'DI' AND NOT

     itab_zycit480[] IS INITIAL.

    v_fundap = 'X' .

  ELSE.

    CLEAR v_fundap.

  ENDIF.

  it_zycee007-tcode    = text-065.

  it_zycee007-tabela   = text-014.

  it_zycee007-cpochv   = /pws/zycie041-nfglobal.

...

 

...

  IF  NOT itab_zyglt100-zexit_ativa IS INITIAL.

    PERFORM (itab_zyglt100-formulario) IN PROGRAM

       (itab_zyglt100-programa) IF FOUND.

  ENDIF.

  APPEND it_zycee007.

  CLEAR it_zycee007.

  MOVE itab_zycit042 TO itab_zycit042_mark.

  APPEND itab_zycit042_mark.

ENDFORM.

FORM itens_nfrnew.

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

  v_tiponf = 'NFR'.

* << Fim da inclusão

  DATA v_val_icms_r LIKE /pws/zycee007-netpr.

  DATA: itab_zycit398 LIKE /pws/zycit398 OCCURS 0 WITH HEADER LINE.

  IF /pws/zycie001-modalidade EQ '05' AND

     /pws/zycie001-tpdecl EQ 'DI' AND NOT

     itab_zycit480r[] IS INITIAL.

    v_fundap = 'X' .

  ELSE.

    CLEAR v_fundap.

  ENDIF.

  it_zycee007-tcode    = text-009.

...

 

...

      v_resposta          =  v_resp

    TABLES

      itab_zycit036       =  itab_zycit036

        itab_despesa        =  itab_desp_funcao

      itab_zycit003       =  itab_zycit003

      itab_zycit100       =  itab_zycit100aux.

  LOOP AT itab_zycit049_a.

    DELETE itab_zycit049_a WHERE mandt IS initial.

  ENDLOOP.

ENDFORM.

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

FORM calc_ret_moeda USING    p_waersfrom

                              p_waersto

                     CHANGING p_value.

  DATA: v_taxa LIKE  /pws/zycie085-ukursfob,

        v_msgd(10).

  IF /pws/zycbt007-waersb IS INITIAL.

    SELECT SINGLE * FROM /pws/zycbt007

    WHERE bukrs EQ /pws/zycie041-bukrs.

  ENDIF.

  PERFORM taxa_converte USING

              p_waersfrom /pws/zycie085-dttax v_taxa.

  IF NOT v_taxa IS INITIAL.

    p_value = p_value / v_taxa.

    IF p_waersto NE /pws/zycbt007-waersb.

      PERFORM taxa_converte USING

                p_waersto /pws/zycie085-dttax v_taxa.

    ELSE.

      v_taxa = 1.

    ENDIF.

    IF NOT v_taxa IS INITIAL AND NOT p_value IS INITIAL.

      p_value = p_value * v_taxa.

    ENDIF.

  ENDIF.

ENDFORM.

* << Fim da exclusão

FORM seek_account_number TABLES p_cta STRUCTURE /pws/zygle316

 USING  p_bukrs

        p_ktosl

        p_werks

        p_bklas

        p_codaux1

        p_codaux2

        p_codaux3.

  CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

       EXPORTING

...

 

...

        docnum              = /pws/zycit041-docnum

 EXCEPTIONS

   foreign_lock         = 1

   system_failure       = 2

            .

  IF sy-subrc <> 0.

    MESSAGE w061 WITH text-089 text-090.

    v_status_s = 0.

  ENDIF.

ENDFORM.

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

FORM retorna_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 atualiza_dados_nota.

  READ TABLE it_zycet005 WITH KEY  tcode  = text-065

                                   tabela = text-014

                     cpochv = /pws/zycie041-nfglobal

                                        tpmsg  = 'S'.

  IF sy-subrc EQ 0.

    IF it_zycee005-belnr NE '0000000000'.

      SELECT SINGLE * FROM j_1bnfdoc

                    WHERE docnum EQ it_zycee005-belnr.

      IF sy-subrc EQ 0 OR it_zycet005-belnr = '9999999999'

...

 

...

    SELECT SINGLE * FROM /pws/zycbt007

                   WHERE bukrs EQ /pws/zycie041-bukrs.

  ENDIF.

  PERFORM taxa_converte USING  p_waersfrom

                               /pws/zycit085-dttax

                     CHANGING  v_taxa_desp.

  IF NOT v_taxa_desp IS INITIAL.

    p_value = p_value * v_taxa_desp.

    IF p_waersto NE /pws/zycbt007-waersb.

      PERFORM taxa_converte USING

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

             p_waersto /pws/zycit085-dttax v_taxa_desp.

* << Fim da exclusão

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

             p_waersto /pws/zycit085-dttax

             CHANGING v_taxa_desp.

* << Fim da inclusão

    ELSE.

      v_taxa_desp = 1.

    ENDIF.

    IF NOT v_taxa_desp IS INITIAL AND NOT p_value IS INITIAL.

      p_value = p_value / v_taxa_desp.

    ENDIF.

  ENDIF.

ENDFORM.

FORM call_fundap_r.

  CLEAR /pws/zycit480.

...