CE PLUS - Nota 004525

Módulo: DOC. IMPORTAÇÃO

Funcionalidade: Fatura Despesas

Data/Hora da Publicação: 27/08/2007 00:00:00

Data/Hora Última Alteração: 22/02/2011 15:48:23

Descrição da Nota: AJUSTE PARA REALIZAR O RATEIO DE IMPOSTOS DE ACORDO COM A ANA

Sintoma

Ajuste na fatura para permitir o lançamento de Impostos na fatura de despesas e realizar o rateio

dos valores de acordo com o realizado na ANA.

 

 

Solução

Ajuste na fatura para permitir o lançamento de Impostos na fatura de despesas e realizar o rateio

dos valores de acordo com o realizado na ANA.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

AJUSTES NO LANÇAMENTO DAS DESPESAS NA MIRO

Informações Complementares

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

Nota Número 04525 Data: 27/08/2007 Hora: 09:45:57

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

 

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

Nota Número              : 04525

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00002

Agrupamento              : 00009

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

Referência às notas relacionadas:

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

 

04362  - 00001 - 7.0    - 00002  - AJUSTES NO LANÇAMENTO DAS DESPESAS NA MIRO

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

AJUSTE PARA REALIZAR O RATEIO DE IMPOSTOS DE ACORDO COM A ANA

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

Palavras Chave:

IMPOSTOS - RATEIO - FATURA - DESPESAS - ANA

/PWS/SAPMZYCI003

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

Objetos da nota:

REPS /PWS/MZYCI003F02

REPT /PWS/SAPMZYCI003

 

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

Modificações efetuadas em REPS /PWS/MZYCI003F02

 

...

 

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

  DATA: itab_zycit399 TYPE /pws/zycit399 OCCURS 0 WITH HEADER LINE,

        itab_zycit403 TYPE /pws/zycit403 OCCURS 0 WITH HEADER LINE,

        itab_zycit403a TYPE /pws/zycit403 OCCURS 0 WITH HEADER LINE.

* << Fim da inclusão

 

...

 

...

        INTO TABLE itab_fat

        WHERE nrseqce EQ /pws/zycie006-nrseqce

          AND eliminado EQ space

          AND tpfatura  EQ /pws/zycie006-tpfatura

          AND nrseq     NE /pws/zycie006-nrseq.

    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.

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

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

* << Fim da exclusão

      REFRESH itab_zycit003a.

      itab_zycit003a[] = itab_zycit003[].

      SORT itab_zycit003a BY ebeln.

      DELETE ADJACENT DUPLICATES FROM itab_zycit003a COMPARING ebeln.

      IF NOT itab_zycit003a[] IS INITIAL.

        SELECT ebeln knumv FROM ekko INTO TABLE itab_ekko_a

            FOR ALL ENTRIES IN itab_zycit003a

            WHERE ebeln EQ itab_zycit003a-ebeln.

        IF sy-subrc EQ 0.

          SELECT * FROM konv INTO TABLE itab_konv

               FOR ALL ENTRIES IN itab_ekko_a

               WHERE knumv EQ itab_ekko_a-knumv.

          DELETE itab_konv WHERE kntyp NE 'B'

                              OR kbetr EQ space.

        ENDIF.

      ENDIF.

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

    ENDIF.

* << Fim da exclusão

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

    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

    WHERE nrseq EQ itab_zycit003-nrseq.

    SELECT * FROM /pws/zycit403 INTO TABLE itab_zycit403

        WHERE nrseqdi EQ /pws/zycit085-nrseqdi.

* << Fim da inclusão

  ELSE.

    SELECT ebeln ebelp mwskz FROM ekpo

        INTO TABLE itab_ivaped

        FOR ALL ENTRIES IN itab_zycit003

        WHERE ebeln EQ itab_zycit003-ebeln

          AND ebelp EQ itab_zycit003-ebelp.

  ENDIF.

  READ TABLE itab_zycit003 INDEX 1.

  READ TABLE itab_zycbe033_aux INDEX 1.

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

...

 

...

      PERFORM retorna_decimais USING /pws/zycie006-waers

                            CHANGING itab_contas_aux-wrbtr.

      CLEAR: itab_zycit031.

      itab_zycit031-tcode  = itab_zycie033-tcode   .

      itab_zycit031-tabela = itab_zycie033-tabela  .

      itab_zycit031-cpochv = itab_zycie033-cpochv  .

      itab_zycit031-ebeln  = itab_zycit003-ebeln   .

      itab_zycit031-ebelp  = itab_zycit003-ebelp   .

      itab_zycit031-meins  = itab_zycit003-meins   .

      itab_zycit031-mwskz  = itab_zycie033-mwskz   .

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

      CLEAR: v_vlaux.

* << Fim da exclusão

      LOOP AT itab_zycit047 WHERE vldp > 0.

        CLEAR: itab_zycit019, itab_zycit030.

        READ TABLE itab_zycit019 WITH KEY

                                  tpdesp = itab_zycit047-tpdesp.

        READ TABLE itab_zycit030 WITH KEY

                                  codigo = itab_zycit019-codigo.

        itab_zycit031-lgort = itab_zycit030-kschl.

        itab_zycit031-wrbtr  = itab_contas_aux-wrbtr *

             ( itab_zycit047-vldp / /pws/zycie006-vltotal ).

        v_vlaux = v_vlaux + itab_zycit031-wrbtr.

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

        READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit019-codigo.

        IF sy-subrc EQ 0.

          CONTINUE.

        ENDIF.

* << Fim da inclusão

        CLEAR: itab_zycit031-sernp.

        READ TABLE itab_zycit047a WITH KEY

                        tpdesp = itab_zycit047-tpdesp.

        IF sy-subrc EQ 0.

          itab_zycit031-sernp = 'X'.

        ENDIF.

        CLEAR: itab_ekko_a.

        READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.

        v_ebelp+1(5) = itab_zycit003-ebelp.

        READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

...

 

...

      MODIFY itab_zycit031 TRANSPORTING wrbtr

                WHERE ebeln EQ itab_zycit003-ebeln

                  AND ebelp EQ itab_zycit003-ebelp

                  AND lgort EQ itab_zycit031-lgort.

      itab_zycit031-menge  = itab_zycit003-qtd_iten.

      MODIFY itab_zycit031 TRANSPORTING menge

                WHERE ebeln EQ itab_zycit003-ebeln

                  AND ebelp EQ itab_zycit003-ebelp.

      itab_zycie033-waers = /pws/zycie006-waers.

      itab_zycie033-rmwwr = itab_contas_aux-wrbtr + itab_zycie033-rmwwr.

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

    ENDLOOP.

    CLEAR: itab_zycit399.

    LOOP AT itab_zycit047 WHERE vldp > 0.

      READ TABLE itab_zycit019 WITH KEY

                            tpdesp = itab_zycit047-tpdesp.

      READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit019-codigo.

      IF sy-subrc EQ 0.

        EXIT.

      ENDIF.

    ENDLOOP.

    SORT itab_zycit403 BY ebeln ebelp.

    IF NOT itab_zycit399-codigo IS INITIAL.

      IF itab_zycit403[] IS INITIAL.

        MESSAGE i015 WITH text-176.

      ENDIF.

      DELETE itab_zycit403 WHERE valorrec EQ space.

      LOOP AT itab_zycit403.

        itab_zycit403a-codigo = itab_zycit403-codigo.

        itab_zycit403a-valorrec = itab_zycit403-valorrec.

        COLLECT itab_zycit403a.

      ENDLOOP.

      CLEAR: v_erro.

      LOOP AT itab_zycit047 WHERE vldp > 0.

        READ TABLE itab_zycit019 WITH KEY

                              tpdesp = itab_zycit047-tpdesp.

        READ TABLE itab_zycit399 WITH KEY codigo = itab_zycit019-codigo.

        IF sy-subrc EQ 0.

          READ TABLE itab_zycit403a WITH KEY

                                    codigo = itab_zycit019-codigo.

          IF sy-subrc NE 0.

            MESSAGE i015 WITH text-177 itab_zycit047-descr.

            v_erro = 'X'.

            EXIT.

          ENDIF.

        ELSE.

          CONTINUE.

        ENDIF.

        CLEAR: v_vlaux.

        LOOP AT itab_zycit403 WHERE codigo = itab_zycit019-codigo.

          READ TABLE itab_zycit003

                    WITH KEY ebeln = itab_zycit403-ebeln

                             ebelp = itab_zycit403-ebelp.

          PERFORM retorna_decimais USING /pws/zycie006-waers

                                CHANGING itab_contas_aux-wrbtr.

          CLEAR: itab_zycit031.

          itab_zycit031-tcode  = itab_zycie033-tcode   .

          itab_zycit031-tabela = itab_zycie033-tabela  .

          itab_zycit031-cpochv = itab_zycie033-cpochv  .

          itab_zycit031-ebeln  = itab_zycit003-ebeln   .

          itab_zycit031-ebelp  = itab_zycit003-ebelp   .

          itab_zycit031-meins  = itab_zycit003-meins   .

          itab_zycit031-mwskz  = itab_zycie033-mwskz   .

          itab_zycit031-menge  = itab_zycit003-qtd_iten.

          itab_zycit031-wrbtr  = itab_zycit047-vldp *

               ( itab_zycit403-valorrec / itab_zycit403a-valorrec ).

          v_vlaux = v_vlaux + itab_zycit031-wrbtr.

          CLEAR: itab_zycit030.

          READ TABLE itab_zycit030 WITH KEY

                                    codigo = itab_zycit019-codigo.

          itab_zycit031-lgort = itab_zycit030-kschl.

          READ TABLE itab_zycit047a WITH KEY

                          tpdesp = itab_zycit047-tpdesp.

          IF sy-subrc EQ 0.

            itab_zycit031-sernp = 'X'.

          ENDIF.

          CLEAR: itab_ekko_a.

          READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.

          v_ebelp+1(5) = itab_zycit003-ebelp.

          READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

                                        kposn = v_ebelp

                                        kschl = itab_zycit031-lgort.

          IF sy-subrc NE 0.

            CLEAR: itab_zycit031-lgort.

            itab_zycit031-sernp = 'X'.

            LOOP AT itab_zycit030 WHERE codigo = itab_zycit019-codigo.

              READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

                                            kposn = v_ebelp

                                          kschl = itab_zycit030-kschl.

              IF sy-subrc EQ 0.

                itab_zycit031-lgort = itab_zycit030-kschl.

                CLEAR: itab_zycit031-sernp.

              ENDIF.

            ENDLOOP.

          ENDIF.

          COLLECT itab_zycit031.

          IF itab_zycit031-lgort IS INITIAL.

            itab_zycit031-menge  = itab_zycit003-qtd_iten.

            MODIFY itab_zycit031 TRANSPORTING menge

                      WHERE ebeln EQ itab_zycit003-ebeln

                        AND ebelp EQ itab_zycit003-ebelp.

          ENDIF.

        ENDLOOP.

        v_vlaux = itab_zycit047-vldp - v_vlaux.

        itab_zycit031-wrbtr = itab_zycit031-wrbtr + v_vlaux.

        MODIFY itab_zycit031 TRANSPORTING wrbtr

                  WHERE ebeln EQ itab_zycit003-ebeln

                    AND ebelp EQ itab_zycit003-ebelp

                    AND lgort EQ itab_zycit031-lgort.

* << Fim da inclusão

    ENDLOOP.

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

      IF v_erro EQ 'X'.

        EXIT.

      ENDIF.

    ENDIF.

* << Fim da inclusão

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

    READ TABLE itab_zycit030 WITH KEY codigo = 'FRETEI'.

    LOOP AT itab_zycit003.

...

 

...

      CLEAR: itab_zycit031.

      itab_zycit031-tcode  = itab_zycie033-tcode   .

      itab_zycit031-tabela = itab_zycie033-tabela  .

      itab_zycit031-cpochv = itab_zycie033-cpochv  .

      itab_zycit031-ebeln  = itab_zycit003-ebeln   .

      itab_zycit031-ebelp  = itab_zycit003-ebelp   .

      itab_zycit031-menge  = itab_zycit003-qtd_iten.

      itab_zycit031-meins  = itab_zycit003-meins   .

      itab_zycit031-mwskz  = itab_zycie033-mwskz   .

      itab_zycit031-wrbtr  = itab_contas_aux-wrbtr .

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

      READ TABLE itab_zycit030 WITH KEY

                                codigo = 'FRETEI'.

* << Fim da exclusão

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

      CLEAR: itab_ekko_a.

      READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.

      v_ebelp+1(5) = itab_zycit003-ebelp.

      LOOP AT itab_zycit030 WHERE codigo = 'FRETEI'.

        READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

                                      kposn = v_ebelp

                                    kschl = itab_zycit030-kschl.

        IF sy-subrc EQ 0.

* << Fim da inclusão

      itab_zycit031-lgort = itab_zycit030-kschl.

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

          EXIT.

        ENDIF.

      ENDLOOP.

* << Fim da inclusão

      IF NOT itab_fat[] IS INITIAL.

        itab_zycit031-sernp = 'X'.

      ELSE.

        LOOP AT itab_zycit263 WHERE ebeln EQ itab_zycit003-ebeln

...

 

...

      CLEAR: itab_zycit031.

      itab_zycit031-tcode  = itab_zycie033-tcode   .

      itab_zycit031-tabela = itab_zycie033-tabela  .

      itab_zycit031-cpochv = itab_zycie033-cpochv  .

      itab_zycit031-ebeln  = itab_zycit003-ebeln   .

      itab_zycit031-ebelp  = itab_zycit003-ebelp   .

      itab_zycit031-menge  = itab_zycit003-qtd_iten.

      itab_zycit031-meins  = itab_zycit003-meins   .

      itab_zycit031-mwskz  = itab_zycie033-mwskz   .

      itab_zycit031-wrbtr  = itab_contas_aux-wrbtr .

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

      READ TABLE itab_zycit030 WITH KEY

                                codigo = 'SEGURO'.

* << Fim da exclusão

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

      CLEAR: itab_ekko_a.

      READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.

      v_ebelp+1(5) = itab_zycit003-ebelp.

      LOOP AT itab_zycit030 WHERE codigo = 'SEGURO'.

        READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

                                      kposn = v_ebelp

                                    kschl = itab_zycit030-kschl.

        IF sy-subrc EQ 0.

* << Fim da inclusão

      itab_zycit031-lgort = itab_zycit030-kschl.

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

          EXIT.

        ENDIF.

      ENDLOOP.

* << Fim da inclusão

      IF NOT itab_fat[] IS INITIAL.

        itab_zycit031-sernp = 'X'.

      ELSE.

        LOOP AT itab_zycit263 WHERE ebeln EQ itab_zycit003-ebeln

...

 

...

      itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlfr.

      IF /pws/zycit031-inco1_ci EQ 'CIF'.

        itab_zycit031-wrbtr = itab_zycit031-wrbtr - v_vlsg.

      ENDIF.

      itab_zycit031-menge  = itab_zycit003-toinv.

      itab_zycit031-meins  = itab_zycit003-meins.

      itab_zycit031-mwskz  = itab_ivaped-mwskz.

      APPEND itab_zycit031.

      itab_zycie033-waers = /pws/zycie006-waers.

      IF NOT v_vlfr IS INITIAL.

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

        READ TABLE itab_zycit030 WITH KEY codigo = 'FRETEI'.

* << Fim da exclusão

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

        CLEAR: itab_ekko_a.

        READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.

        v_ebelp+1(5) = itab_zycit003-ebelp.

        LOOP AT itab_zycit030 WHERE codigo = 'FRETEI'.

          READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

                                        kposn = v_ebelp

                                      kschl = itab_zycit030-kschl.

          IF sy-subrc EQ 0.

            itab_zycit031-lgort = itab_zycit030-kschl.

            EXIT.

          ENDIF.

        ENDLOOP.

* << Fim da inclusão

        itab_zycit031-wrbtr = v_vlfr.

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

        itab_zycit031-lgort = itab_zycit030-kschl.

* << Fim da exclusão

        APPEND itab_zycit031.

      ENDIF.

      IF NOT v_vlsg IS INITIAL AND /pws/zycit031-inco1_ci EQ 'CIF'.

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

        READ TABLE itab_zycit030 WITH KEY codigo = 'SEGURO'.

* << Fim da exclusão

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

        CLEAR: itab_ekko_a.

        READ TABLE itab_ekko_a WITH KEY ebeln = itab_zycit003-ebeln.

        v_ebelp+1(5) = itab_zycit003-ebelp.

        LOOP AT itab_zycit030 WHERE codigo = 'SEGURO'.

          READ TABLE itab_konv WITH KEY knumv = itab_ekko_a-knumv

                                        kposn = v_ebelp

                                      kschl = itab_zycit030-kschl.

          IF sy-subrc EQ 0.

            itab_zycit031-lgort = itab_zycit030-kschl.

            EXIT.

          ENDIF.

        ENDLOOP.

* << Fim da inclusão

        itab_zycit031-wrbtr = v_vlsg.

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

        itab_zycit031-lgort = itab_zycit030-kschl.

* << Fim da exclusão

        APPEND itab_zycit031.

      ENDIF.

    ENDLOOP.

  ENDIF.

  APPEND itab_zycie033.

  IF NOT itab_zycit031[] IS INITIAL.

...

 

...

       marv-vmgja EQ /pws/zycie006-dt_mr1m+0(4) ) OR

     ( marv-lfmon EQ /pws/zycie006-dt_mr1m+04(02) AND

       marv-lfgja EQ /pws/zycie006-dt_mr1m+0(4) ).

    itab_zycie033-budat  = /pws/zycie006-dt_mr1m.

    itab_zycie033-stgrd  = /pws/zycbt007-percorr.

  ELSE.

    itab_zycie033-budat  = /pws/zycie006-dt_mr1m.

    itab_zycie033-stgrd  = /pws/zycbt007-perencer .

  ENDIF.

  APPEND itab_zycie033.

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

  e_subrc = '0' .

  PERFORM verifica_exit USING 'D'

                              '/PWS/SAPMZYCI003'

                              'FAT009'.

  CLEAR itab_zyglt100 .

  READ TABLE itab_zyglt100 WITH KEY

                   zexit = 'FAT009' BINARY SEARCH.

  IF sy-subrc EQ 0.

    IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

      e_estorno = 'REC_MR8M' .

      PERFORM (itab_zyglt100-formulario) IN PROGRAM

          (itab_zyglt100-programa) IF FOUND.

    ENDIF.

  ENDIF.

  IF e_subrc EQ 0.

* << Fim da inclusão

  CALL FUNCTION '/PWS/ZYCI_TRANSACAO_MR8M'

       EXPORTING

            v_modo          = v_modo_bi

       TABLES

            t_dados         = itab_zycie033

            t_campo         = itab_zycit034

            t_zycit032      = itab_zycit032

       EXCEPTIONS

            campo_em_branco = 1

            OTHERS          = 2.

...

 

...

      MESSAGE i030 WITH v_belnr_ant.

      IF v_parcela = 'X'.

        CLEAR: itab_zycit132.

        MODIFY itab_zycit132 TRANSPORTING   miro status

                        WHERE belnr_mr1m EQ /pws/zycie006-belnr_mr1m.

      ENDIF.

      PERFORM clear_date_batch.

      CLEAR v_mr1m_ok.

    ELSE.

      v_erro = 'X'.

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

      ENDIF.

* << Fim da inclusão

    ENDIF.

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

  ELSEIF e_subrc EQ '8'.

    EXIT.

  ELSE.

    v_erro = 'X'.

* << Fim da inclusão

  ENDIF.

ENDFORM.

 

...

 

 

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

Modificações efetuadas em REPT /PWS/SAPMZYCI003

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 176

 

Texto: (46 caracteres)

"É necessario criar a ANA para lançar impostos!"

 

Comprimento máximo: 46

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 176

 

Texto: (41 caracteres)

"Es necesario crear ANA para lanzar tasas!"

 

Comprimento máximo: 46

 

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

Incluído símbolo de texto:

 

Idioma: PT

 

Símbolo: 177

 

Texto: (41 caracteres)

"Não é possivel ratear o valor do imposto:"

 

Comprimento máximo: 41

 

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

Incluído símbolo de texto:

 

Idioma: ES

 

Símbolo: 177

 

Texto: (39 caracteres)

"No es posible ratear el valor del tasa:"

 

Comprimento máximo: 41