CE PLUS - Nota 004798

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: Remessa

Data/Hora da Publicação: 24/09/2007 00:00:00

Data/Hora Última Alteração: 18/02/2011 14:13:29

Descrição da Nota: REMESSA - DA BASE CÁLCULO IMPOSTOS

Sintoma

A Remessa necessita respeitar nova fórmula para calcular a Base de Cálculo dos impostos.

 

 

Solução

Criar opção de parametrizar a fórmula utilizada, seguindo as regras de sintaxe do SAP, para que cada

cliente possa definir sua fórmula na base de cálculo.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

REMESSA - EXIT REM003 - BASE DE CÁLCULO IMPOSTOS

REMESSA - CALCULO DE ALIQUOTA DE ISS PARA PIS E COFINS.

ARQUIVO ELETRÔNICO - DUMP GENERATE - ITAÚ/FEBRABAN

CRIAR REMESSA CÂMBIO FINANCEIRO

CONSISTÊNCIAS PARA O CAMPO REDUÇÃO NA REMESSA FINANCEIRA

REMESSA / ESTRATÉGIA. LIBERAÇÃO

Informações Complementares

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

Nota Número 04798 Data: 24/09/2007 Hora: 10:47:30

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

 

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

Nota Número              : 04798

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00003

Agrupamento              : 00013

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

Referência às notas relacionadas:

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

 

00162  - 00001 - 6.0    - 00021  - CONSISTÊNCIAS PARA O CAMPO REDUÇÃO NA REMESSA FINANCEIRA

01482  - 00002 - 6.0    - 00023  - REMESSA / ESTRATÉGIA. LIBERAÇÃO

02168  - 00003 - 6.0    - 00025  - ARQUIVO ELETRÔNICO - DUMP GENERATE - ITAÚ/FEBRABAN

03700  - 00004 - 7.0    - 00001  - REMESSA - EXIT REM003 - BASE DE CÁLCULO IMPOSTOS

04083  - 00005 - 7.0    - 00002  - REMESSA - CALCULO DE ALIQUOTA DE ISS PARA PIS E COFINS.

04449  - 00006 - 7.0    - 00002  - CRIAR REMESSA CÂMBIO FINANCEIRO

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

REMESSA - DA BASE CÁLCULO IMPOSTOS

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

Palavras Chave:

REMESSA - DA BASE CÁLCULO IMPOSTOS DESENVOLVIMENTO ADICIONAL

BASECALC

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

Objetos da nota:

DTEL /PWS/ZYGLL1357

ENQU /PWS/EZYCAT026

FUNC /PWS/ZYCA_BASE_CALCULO_IMPOSTO

REPS /PWS/LZYCAGFUXX

REPS /PWS/MZYCA026F01

REPS /PWS/MZYCA026I01

REPS /PWS/MZYCA026O01

REPS /PWS/MZYCA026TOP

REPS /PWS/MZYCA109F01

REPS /PWS/MZYCA109I01

REPS /PWS/MZYCA109X01

REPS /PWS/SAPMZYCA026

REPS /PWS/ZYGLR025

REPS /PWS/ZYGLR026

REPS /PWS/ZYGLR039

SHI3 /PWS/ZYCB

SHI6 /PWS/ZYCB

TABL /PWS/ZYCAT026

TABU TMENU01

TABU TMENU01R

TABU TMENU01T

TRAN /PWS/ZYCAT026

 

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

Modificações efetuadas em DTEL /PWS/ZYGLL1357

 

Elemento de dados incluído: /PWS/ZYGLL1357

Classe de desenvolvimento: /PWS/ZYGL

Idioma original: PT

Descrição breve incluída: (44 caracteres), idioma: PT

"GL - Fórmula para Base de Cálculo de Imposto"

Categoria de dados: Domínio

Domínio: CHAR125

ID parâmetro:

Nome componente default:

Documentar modificações: NÃO

Nome da ajuda de pesquisa:

Parâmetro da ajuda de pesquisa:

Comprimento máximo do denominador breve: 07

Denominador breve incluído (7 caracteres), idioma: PT

"Fórmula"

Comprimento máximo do denominador médio: 20

Denominador médio incluído (20 caracteres), idioma: PT

"Fórmula Base Cálculo"

Comprimento máximo do denominador longo: 40

Denominador longo incluído (40 caracteres), idioma: PT

"GL - Fórmula  Base de Cálculo de Imposto"

Comprimento máximo do título: 44

Título incluído (44 caracteres), idioma: PT

"GL - Fórmula para Base de Cálculo de Imposto"

 

 

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

Modificações efetuadas em ENQU /PWS/EZYCAT026

 

CRIAR OBJETO DE BLOQUEIO: /PWS/EZYCAT026

DESCRIÇÃO BREVE: CA - Objeto de Bloqueio tabela /PWS/ZYCAT026

 

CARACTERÍSTICAS

 

(_) AUTORIZAR RFC

 

TABELAS

 

TABELA PRIMÁRIA:

NOME:               /PWS/ZYCAT026

MODO DE BLOQUEIO:   Bloqueio de escrita

 

TABELAS SECUNDÁRIAS:

NOME:                 MODO BLOQUEIO:

 

PARAM. BLOQUEIO

 

POND:       PARÂMETRO DE BLOQUEIO:       TABELA:        NOME CAMPO:

'X'         MANDT                        /PWS/ZYCAT026  MANDT

'X'         TPIMP                        /PWS/ZYCAT026  TPIMP

 

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

Modificações efetuadas em FUNC /PWS/ZYCA_BASE_CALCULO_IMPOSTO

 

CRIAR MÓDULO DE FUNÇÃO: /PWS/ZYCA_BASE_CALCULO_IMPOSTO

CARACTERÍSTICAS

 

CLASSIFICAÇÃO:

GRUPO DE FUNÇÕES: /PWS/ZYCAGF

TEXTO BREVE: _________________________________________________

 

TIPO DE EXECUÇÃO:

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

(_) - MÓDULO DE ACESSO REMOTO

(_) - MÓDULO DE ATUALIZAÇÃO

     (X) - INÍCIO IMEDIATO

     (_) - INÍCIO IMEDIATO-SEM ATUAL.POSTER.

     (_) - INÍC. RETARDADO

     (_) - PROCES. CLOETIVO

 

DADOS GERAIS:

Classe de Desenvolvimento: /PWS/ZYCA

Nome do programa: /PWS/SAPLZYCAGF

Nome do include: /PWS/LZYCAGFU05

(_) - BLOQUEIO PROCESSO

(_) - GLOBAL

 

IMPORTAÇÃO:

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

FORMULA TYPE /PWS/ZYCAT026-FORMULA               ' '              Campo de dados

VL_REMESSA TYPE /PWS/ZYCBT124-VLME                  'X'              Montante em moeda do

                                                                          documento

 

EXPORTAÇÃO:

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

VL_BASE TYPE /PWS/ZYCBT124-VLME   ' '      Montante em moeda do documento

 

TABELAS:

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

T_ZYCAT025 LIKE /PWS/ZYCAT025    'X'       CA - Impostos da Remessa Financeira

 

EXCEÇÕES:

EXCEÇÃO                    TEXTO BREVE

VALOR_INVALIDO       Valor inválido

 

 

 

 

TEXTO FONTE

 

FUNCTION /pws/zyca_base_calculo_imposto.

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

*"*"Interface local:

*"  IMPORTING

*"     REFERENCE(FORMULA) TYPE  /PWS/ZYCAT026-FORMULA

*"     REFERENCE(VL_REMESSA) TYPE  /PWS/ZYCBT124-VLME OPTIONAL

*"  EXPORTING

*"     REFERENCE(VL_BASE) TYPE  /PWS/ZYCBT124-VLME

*"  TABLES

*"      T_ZYCAT025 STRUCTURE  /PWS/ZYCAT025 OPTIONAL

*"  EXCEPTIONS

*"      VALOR_INVALIDO

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

 

* Padrão dos campos contidos no CALCULO

* PRINCIPAL - Valor ME        Remessa

* VA_...    - Valor ME        Imposto

* BA_...    - Base de Cálculo Imposto

* AL_...    - Alíquota Geral  Imposto

* AD_...    - Ad Valorem      Imposto

 

* Work-areas

  DATA: wa_irrf   TYPE /pws/zycat025,

        wa_cide   TYPE /pws/zycat025,

        wa_pis    TYPE /pws/zycat025,

        wa_cofins TYPE /pws/zycat025,

        wa_iss    TYPE /pws/zycat025,

        wa_iof    TYPE /pws/zycat025.

 

* Variáveis

  DATA: v_pos          TYPE i,

        w_prog         TYPE trdir-name,

        v_calculo(140) TYPE c,

        v_chamada(50)  TYPE c.

 

* Tabelas Internas

  DATA: t_prog(150) TYPE c OCCURS 1000 WITH HEADER LINE.

 

 

* Limpa dados

  CLEAR: wa_irrf, wa_cide, wa_pis, wa_cofins, wa_iss, wa_iof, vl_base.

 

* Carrega work-areas

  READ TABLE t_zycat025 WITH KEY tpimp(3) = 'PIS'    INTO wa_pis.

  READ TABLE t_zycat025 WITH KEY tpimp(3) = 'ISS'    INTO wa_iss.

  READ TABLE t_zycat025 WITH KEY tpimp(3) = 'IOF'    INTO wa_iof.

  READ TABLE t_zycat025 WITH KEY tpimp(4) = 'IRRF'   INTO wa_irrf.

  READ TABLE t_zycat025 WITH KEY tpimp(4) = 'CIDE'   INTO wa_cide.

  READ TABLE t_zycat025 WITH KEY tpimp(6) = 'COFINS' INTO wa_cofins.

 

  v_calculo = formula.

 

* Substitui instrução para campos reais na fórmula do cálculo

  DO 126 TIMES.

 

    v_pos = sy-index - 1.

 

*   Valor ME Principal

    IF v_calculo+v_pos(9) = 'PRINCIPAL'.

      IF NOT vl_remessa > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(9).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'VL_REMESSA' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Valor ME IRRF

    ELSEIF v_calculo+v_pos(7) = 'VA_IRRF'.

      IF NOT wa_irrf-vlimpme > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(7).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_IRRF-VLIMPME' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Alíquota Geral IRRF

    ELSEIF v_calculo+v_pos(7) = 'AL_IRRF'.

      IF NOT wa_irrf-aliqgera > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(7).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_IRRF-ALIQGERA' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Ad Valorem IRRF

    ELSEIF v_calculo+v_pos(7) = 'AD_IRRF'.

      IF NOT wa_irrf-advalorem > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(7).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_IRRF-ADVALOREM' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Base de Cálculo IRRF

    ELSEIF v_calculo+v_pos(7) = 'BA_IRRF'.

      IF NOT wa_irrf-basecalc > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(7).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_IRRF-BASECALC' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Valor ME CIDE

    ELSEIF v_calculo+v_pos(7) = 'VA_CIDE'.

      IF NOT wa_cide-vlimpme > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(7).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_CIDE-VLIMPME' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Alíquota Geral CIDE

    ELSEIF v_calculo+v_pos(7) = 'AL_CIDE'.

      IF NOT wa_cide-aliqgera > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(7).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_CIDE-ALIQGERA' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Ad Valorem CIDE

    ELSEIF v_calculo+v_pos(7) = 'AD_CIDE'.

      IF NOT wa_cide-advalorem > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(7).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_CIDE-ADVALOREM' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Base de Cálculo CIDE

    ELSEIF v_calculo+v_pos(7) = 'BA_CIDE'.

      IF NOT wa_cide-basecalc > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(7).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_CIDE-BASECALC' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Valor ME PIS

    ELSEIF v_calculo+v_pos(6) = 'VA_PIS'.

      IF NOT wa_pis-vlimpme > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_PIS-VLIMPME' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Alíquota Geral PIS

    ELSEIF v_calculo+v_pos(6) = 'AL_PIS'.

      IF NOT wa_pis-aliqgera > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_PIS-ALIQGERA' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Ad Valorem PIS

    ELSEIF v_calculo+v_pos(6) = 'AD_PIS'.

      IF NOT wa_pis-advalorem > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_PIS-ADVALOREM' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Base de Cálculo PIS

    ELSEIF v_calculo+v_pos(6) = 'BA_PIS'.

      IF NOT wa_pis-basecalc > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_PIS-BASECALC' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Valor ME ISS

    ELSEIF v_calculo+v_pos(6) = 'VA_ISS'.

      IF NOT wa_iss-vlimpme > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_ISS-VLIMPME' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Alíquota Geral ISS

    ELSEIF v_calculo+v_pos(6) = 'AL_ISS'.

      IF NOT wa_iss-aliqgera > 0.

        SELECT SINGLE aliq FROM /pws/zycat024 INTO wa_iss-aliqgera

                           WHERE tpimp = 'ISS'.

      ENDIF.

      IF NOT wa_iss-aliqgera > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_ISS-ALIQGERA' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Ad Valorem ISS

    ELSEIF v_calculo+v_pos(6) = 'AD_ISS'.

      IF NOT wa_iss-advalorem > 0.

        SELECT SINGLE aliq FROM /pws/zycat024 INTO wa_iss-advalorem

                           WHERE tpimp = 'ISS'.

      ENDIF.

      IF NOT wa_iss-advalorem > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_ISS-ADVALOREM' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Base de Cálculo ISS

    ELSEIF v_calculo+v_pos(6) = 'BA_ISS'.

      IF NOT wa_iss-basecalc > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_ISS-BASECALC' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Valor ME IOF

    ELSEIF v_calculo+v_pos(6) = 'VA_IOF'.

      IF NOT wa_iof-vlimpme > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_IOF-VLIMPME' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Alíquota Geral IOF

    ELSEIF v_calculo+v_pos(6) = 'AL_IOF'.

      IF NOT wa_iof-aliqgera > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_IOF-ALIQGERA' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Ad Valorem IOF

    ELSEIF v_calculo+v_pos(6) = 'AD_IOF'.

      IF NOT wa_iof-advalorem > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_IOF-ADVALOREM' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Base de Cálculo IOF

    ELSEIF v_calculo+v_pos(6) = 'BA_IOF'.

      IF NOT wa_iof-basecalc > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(6).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_IOF-BASECALC' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Valor ME COFINS

    ELSEIF v_calculo+v_pos(9) = 'VA_COFINS'.

      IF NOT wa_cofins-vlimpme > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(9).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_COFINS-VLIMPME' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Alíquota Geral COFINS

    ELSEIF v_calculo+v_pos(9) = 'AL_COFINS'.

      IF NOT wa_cofins-aliqgera > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(9).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_COFINS-ALIQGERA' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Ad Valorem COFINS

    ELSEIF v_calculo+v_pos(9) = 'AD_COFINS'.

      IF NOT wa_cofins-advalorem > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(9).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_COFINS-ADVALOREM' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

*   Base de Cálculo COFINS

    ELSEIF v_calculo+v_pos(9) = 'BA_COFINS'.

      IF NOT wa_cofins-basecalc > 0. RAISE valor_invalido. ENDIF.

      CLEAR v_calculo+v_pos(9).

      CONDENSE v_calculo+v_pos.

      CONCATENATE 'WA_COFINS-BASECALC' v_calculo+v_pos

                                INTO v_calculo+v_pos SEPARATED BY space.

    ENDIF.

 

  ENDDO.

 

 

  CONCATENATE 'VL_BASE =' v_calculo '.'

                                      INTO v_calculo SEPARATED BY space.

 

 

* Gera código de cálculo para retornar valor da base de cálculo

  APPEND 'report sy-repid.'                                   TO t_prog.

 

  APPEND 'DATA: VL_BASE   TYPE /PWS/ZYCBT124-VLME,'           TO t_prog.

  APPEND '      WA_IRRF   TYPE /PWS/ZYCAT025,'                TO t_prog.

  APPEND '      WA_CIDE   TYPE /PWS/ZYCAT025,'                TO t_prog.

  APPEND '      WA_PIS    TYPE /PWS/ZYCAT025,'                TO t_prog.

  APPEND '      WA_COFINS TYPE /PWS/ZYCAT025,'                TO t_prog.

  APPEND '      WA_ISS    TYPE /PWS/ZYCAT025,'                TO t_prog.

  APPEND '      WA_IOF    TYPE /PWS/ZYCAT025.'                TO t_prog.

 

  APPEND 'FORM QUEBRA_LINHA USING'                            TO t_prog.

  APPEND '          VL_REMESSA'                               TO t_prog.

  APPEND '          WA_IRRF       STRUCTURE /PWS/ZYCAT025'    TO t_prog.

  APPEND '          WA_CIDE       STRUCTURE /PWS/ZYCAT025'    TO t_prog.

  APPEND '          WA_PIS        STRUCTURE /PWS/ZYCAT025'    TO t_prog.

  APPEND '          WA_COFINS     STRUCTURE /PWS/ZYCAT025'    TO t_prog.

  APPEND '          WA_ISS        STRUCTURE /PWS/ZYCAT025'    TO t_prog.

  APPEND '          WA_IOF        STRUCTURE /PWS/ZYCAT025'    TO t_prog.

  APPEND '                 CHANGING'                          TO t_prog.

  APPEND '                        VL_BASE.'                   TO t_prog.

  APPEND v_calculo                                            TO t_prog.

  APPEND 'ENDFORM.'                                           TO t_prog.

 

  v_chamada = 'BASE_CALCULO'.

 

  EXPORT: t_prog     TO MEMORY ID 'GEN001',

          v_chamada  TO MEMORY ID 'GEN013',

          vl_remessa TO MEMORY ID 'GEN021',

          wa_irrf    TO MEMORY ID 'GEN022',

          wa_cide    TO MEMORY ID 'GEN023',

          wa_pis     TO MEMORY ID 'GEN024',

          wa_cofins  TO MEMORY ID 'GEN025',

          wa_iss     TO MEMORY ID 'GEN026',

          wa_iof     TO MEMORY ID 'GEN027'.

 

  SUBMIT /pws/zyglr039 AND RETURN.

 

  IMPORT: vl_base    FROM MEMORY ID 'GEN028'.

 

ENDFUNCTION.

 

 

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

Modificações efetuadas em REPS /PWS/LZYCAGFUXX

 

INCLUDE /PWS/LZYCAGFU01.

INCLUDE /PWS/LZYCAGFU02.

INCLUDE /PWS/LZYCAGFU03.

INCLUDE /PWS/LZYCAGFU04.

* >> Início da inclusão:

INCLUDE /PWS/LZYCAGFU05.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCA026F01

 

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

***INCLUDE /PWS/MZYCA026F01 .

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

*&      Form  atualiza_dados

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

* P_IMPOSTO

* P_FORMULA

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

FORM atualiza_dados USING p_imposto

                          p_formula.

 

  /pws/zycat026-tpimp   = p_imposto.

  /pws/zycat026-formula = p_formula.

  UPDATE /pws/zycat026 SET formula   = p_formula

                           usernamec = /pws/zycat026-usernamec

                           dtuserc   = /pws/zycat026-dtuserc

                           hruserc   = /pws/zycat026-hruserc

                           user_save = /pws/zycat026-user_save

                       WHERE tpimp = p_imposto.

  IF sy-subrc NE 0.

    INSERT INTO /pws/zycat026 VALUES /pws/zycat026.

  ENDIF.

 

  MOVE-CORRESPONDING /pws/zycat026 TO itab_zycat026.

  MODIFY itab_zycat026 TRANSPORTING formula usernamec

                                    dtuserc hruserc

                                    user_save

                       WHERE tpimp = p_imposto.

  IF sy-subrc NE 0.

    APPEND itab_zycat026.

  ENDIF.

 

ENDFORM.                    " atualiza_dados

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

*&      Form  lock_record

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

FORM lock_record.

 

  CHECK ok_code NE 'SAVE'.

 

  AUTHORITY-CHECK OBJECT 'S_TCODE'

                  ID     'TCD'

                  FIELD  '/PWS/ZYCAT026'.

  IF sy-subrc = 0.

    CALL FUNCTION 'ENQUEUE_/PWS/EZYCAT026'

         EXCEPTIONS

              foreign_lock   = 1

              system_failure = 2.

    CASE sy-subrc.

      WHEN 0.

        v_status = '1'.                "Permite Alteração

      WHEN 1.

        MESSAGE w015 WITH text-001 text-002.

      WHEN 2.

        MESSAGE a015 WITH text-003.      "Aborta o programa

    ENDCASE.

  ELSE.

    MESSAGE i120 WITH text-005.

    v_status = 0.

  ENDIF.

ENDFORM.                    " lock_record

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

*&      Form  seleciona_dados

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

FORM seleciona_dados.

 

  CHECK itab_zycat026[] IS INITIAL.

 

  SELECT * FROM /pws/zycat026 INTO TABLE itab_zycat026.

  IF sy-subrc = 0.

    READ TABLE itab_zycat026 WITH KEY tpimp(4) = 'IRRF'.

    IF sy-subrc = 0.

      f_irrf = itab_zycat026-formula.

    ENDIF.

 

    READ TABLE itab_zycat026 WITH KEY tpimp(4) = 'CIDE'.

    IF sy-subrc = 0.

      f_cide = itab_zycat026-formula.

    ENDIF.

 

    READ TABLE itab_zycat026 WITH KEY tpimp(4) = 'PIS'.

    IF sy-subrc = 0.

      f_pis = itab_zycat026-formula.

    ENDIF.

 

    READ TABLE itab_zycat026 WITH KEY tpimp(4) = 'COFINS'.

    IF sy-subrc = 0.

      f_cofins = itab_zycat026-formula.

    ENDIF.

 

    READ TABLE itab_zycat026 WITH KEY tpimp(4) = 'ISS'.

    IF sy-subrc = 0.

      f_iss = itab_zycat026-formula.

    ENDIF.

 

    READ TABLE itab_zycat026 WITH KEY tpimp(4) = 'IOF'.

    IF sy-subrc = 0.

      f_iof = itab_zycat026-formula.

    ENDIF.

 

    MOVE-CORRESPONDING itab_zycat026 TO /pws/zycat026.

 

    itab_zycat026_aux[] = itab_zycat026[].

 

  ENDIF.

 

ENDFORM.                    " seleciona_dados

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

*&      Form  salvar_dados

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

FORM salvar_dados.

 

  CALL FUNCTION 'GUI_GET_DESKTOP_INFO'

       EXPORTING

            type   = 5

       CHANGING

            return = v_name.

 

  MOVE: v_name   TO /pws/zycat026-user_save,

        sy-uname TO /pws/zycat026-usernamec,

        sy-datum TO /pws/zycat026-dtuserc,

        sy-uzeit TO /pws/zycat026-hruserc.

 

  PERFORM atualiza_dados USING 'IRRF'   f_irrf.

  PERFORM atualiza_dados USING 'CIDE'   f_cide.

  PERFORM atualiza_dados USING 'ISS'    f_iss.

  PERFORM atualiza_dados USING 'IOF'    f_iof.

  PERFORM atualiza_dados USING 'PIS'    f_pis.

  PERFORM atualiza_dados USING 'COFINS' f_cofins.

 

  COMMIT WORK.

 

  IF sy-subrc = 0.

    MESSAGE i015 WITH text-004.

    v_status = 0.

    itab_zycat026_aux[] = itab_zycat026[].

  ENDIF.

 

ENDFORM.                    " salvar_dados

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

*&      Form  verifica_alteracao

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

FORM verifica_alteracao CHANGING p_alteracao.

 

  IF itab_zycat026_aux[] IS INITIAL AND

     ( NOT f_irrf        IS INITIAL OR

       NOT f_cide        IS INITIAL OR

       NOT f_pis         IS INITIAL OR

       NOT f_cofins      IS INITIAL OR

       NOT f_iss         IS INITIAL OR

       NOT f_iof         IS INITIAL ).

    p_alteracao = 'X'.

    EXIT.

  ENDIF.

 

  READ TABLE itab_zycat026_aux WITH KEY tpimp   = 'IRRF'.

  IF sy-subrc EQ 0 AND itab_zycat026_aux-formula NE f_irrf.

    p_alteracao = 'X'.

    EXIT.

  ENDIF.

 

  READ TABLE itab_zycat026_aux WITH KEY tpimp   = 'CIDE'.

  IF sy-subrc EQ 0 AND itab_zycat026_aux-formula NE f_cide.

    p_alteracao = 'X'.

    EXIT.

  ENDIF.

 

  READ TABLE itab_zycat026_aux WITH KEY tpimp   = 'PIS'.

  IF sy-subrc EQ 0 AND itab_zycat026_aux-formula NE f_pis.

    p_alteracao = 'X'.

    EXIT.

  ENDIF.

 

  READ TABLE itab_zycat026_aux WITH KEY tpimp   = 'COFINS'.

  IF sy-subrc EQ 0 AND itab_zycat026_aux-formula NE f_cofins.

    p_alteracao = 'X'.

    EXIT.

  ENDIF.

 

  READ TABLE itab_zycat026_aux WITH KEY tpimp   = 'ISS'.

  IF sy-subrc EQ 0 AND itab_zycat026_aux-formula NE f_iss.

    p_alteracao = 'X'.

    EXIT.

  ENDIF.

 

  READ TABLE itab_zycat026_aux WITH KEY tpimp   = 'IOF'.

  IF sy-subrc EQ 0 AND itab_zycat026_aux-formula NE f_iof.

    p_alteracao = 'X'.

    EXIT.

  ENDIF.

 

 

ENDFORM.                    " verifica_alteracao

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

*&      Form  trata_saida_prog

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

FORM trata_saida_programa.

 

  CLEAR v_alteracao.

 

  PERFORM verifica_alteracao CHANGING v_alteracao.

 

  IF NOT v_alteracao IS INITIAL.

    CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'

         EXPORTING

              defaultoption  = 'Y'

              textline1      = text-006

              titel          = text-007

              start_column   = 25

              start_row      = 6

              cancel_display = 'X'

         IMPORTING

              answer         = v_resposta.

    IF     v_resposta = 'J'.

      PERFORM salvar_dados.

    ELSEIF v_resposta = 'A'.

      EXIT.

    ENDIF.

  ENDIF.

 

  CALL FUNCTION 'DEQUEUE_/PWS/EZYCAT026'.

 

  LEAVE PROGRAM.

 

ENDFORM.                    " trata_saida_prog

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

Modificações efetuadas em REPS /PWS/MZYCA026I01

 

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

***INCLUDE /PWS/MZYCA026I01 .

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

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

*&      Module  USER_COMMAND_0001  INPUT

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

*       text

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

MODULE USER_COMMAND_0001 INPUT.

 

  CASE OK_CODE.

 

    WHEN 'SAVE'.

      PERFORM SALVAR_DADOS.

 

    WHEN 'MODI'.

      PERFORM LOCK_RECORD.

 

    WHEN 'BACK' OR 'EXIT' OR 'CLOSE'.

      perform trata_saida_programa.

 

  ENDCASE.

 

ENDMODULE.                 " USER_COMMAND_0001  INPUT

 

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

Modificações efetuadas em REPS /PWS/MZYCA026O01

 

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

***INCLUDE /PWS/MZYCA026O01 .

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

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

*&      Module  SELECIONA_CONSISTE_DADOS  OUTPUT

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

MODULE SELECIONA_CONSISTE_DADOS OUTPUT.

 

  PERFORM LOCK_RECORD.

  PERFORM SELECIONA_DADOS.

 

ENDMODULE.                 " SELECIONA_CONSISTE_DADOS  OUTPUT

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

*&      Module  STATUS_0001  OUTPUT

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

MODULE STATUS_0001 OUTPUT.

 

  IF V_STATUS = 1.

    SET PF-STATUS '0001' EXCLUDING 'MODI'.

  ELSE.

    SET PF-STATUS '0001' EXCLUDING 'SAVE'.

  ENDIF.

  SET TITLEBAR '0001'.

 

ENDMODULE.                 " STATUS_0001  OUTPUT

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

*&      Module  set_screen  OUTPUT

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

MODULE SET_SCREEN OUTPUT.

 

  LOOP AT SCREEN.

    SCREEN-INPUT = V_STATUS.

    MODIFY SCREEN.

  ENDLOOP.

 

ENDMODULE.                 " set_screen  OUTPUT

 

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

Modificações efetuadas em REPS /PWS/MZYCA026TOP

 

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

*& Include /PWS/MZYCA026TOP                                            *

*&                                                                     *

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

 

PROGRAM  /PWS/SAPMZYCA026 MESSAGE-ID /PWS/ZYCAM.

 

TABLES: /PWS/ZYCAT026.

 

DATA: BEGIN OF ITAB_ZYCAT026 OCCURS 0.

        INCLUDE STRUCTURE /PWS/ZYCAT026.

DATA: END OF ITAB_ZYCAT026.

 

DATA: ITAB_ZYCAT026_AUX LIKE ITAB_ZYCAT026 OCCURS 0 WITH HEADER LINE.

 

DATA: V_NAME(100) TYPE C,

      OK_CODE     TYPE SY-UCOMM,

      V_STATUS    TYPE C,

      v_resposta  type c,

      v_alteracao type c,

      F_IRRF      TYPE /PWS/ZYCAT026-FORMULA,

      F_CIDE      TYPE /PWS/ZYCAT026-FORMULA,

      F_ISS       TYPE /PWS/ZYCAT026-FORMULA,

      F_IOF       TYPE /PWS/ZYCAT026-FORMULA,

      F_PIS       TYPE /PWS/ZYCAT026-FORMULA,

      F_COFINS    TYPE /PWS/ZYCAT026-FORMULA.

 

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

Modificações efetuadas em REPS /PWS/MZYCA109F01

 

...

            display      = ' '

            fieldname    = 'TPIMP'

            tabname      = '/PWS/ZYCBT141'

       IMPORTING

            select_value = /pws/zycbe141-tpimp

       TABLES

            valuetab     = itab_valores

            fields       = itab_campos.

ENDFORM.

FORM carrega_par_impostos.

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

  if itab_zycat024[] is initial.

* << Fim da inclusão

  SELECT * FROM /pws/zycat024 INTO TABLE itab_zycat024

           WHERE bukrs = /pws/zycbe124-bukrs.

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

  endif.

  if itab_zycat026[] is initial.

    select * from /pws/zycat026 into table itab_zycat026.

  endif.

* << Fim da inclusão

ENDFORM.

FORM salva_dados_imposto.

...

 

...

      FROM /pws/zycbt229

      INTO v_nrseq

      WHERE nrseq_remessa = /pws/zycbe124-nrseq.

  ENDIF.

  IF v_nrseq IS INITIAL.

    CLEAR p_associado.

  ELSE.

    p_associado = 'X'.

  ENDIF.

ENDFORM.

* >> Início da inclusão:

form calcula_base_calculo using    p_vl_remessa

                                   p_tpimp

                                   p_formula

                          changing p_base_calculo.

  call function '/PWS/ZYCA_BASE_CALCULO_IMPOSTO'

       exporting

            formula        = p_formula

            vl_remessa     = p_vl_remessa

       importing

            vl_base        = p_base_calculo

       tables

            t_zycat025     = itab_zycat025

       exceptions

            valor_invalido = 1

            others         = 2.

endform.

* << Fim da inclusão

 

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

Modificações efetuadas em REPS /PWS/MZYCA109I01

 

...

  v_dtvencto_ant = /pws/zycbe124-dtvencto.

  IF /pws/zycae025-tpimp(4) = 'IRRF'.

    IF itab_zycat024-altera_base  IS INITIAL AND

       NOT /pws/zycae025-basecalc IS INITIAL AND

       NOT v_basecalc_irrf        IS INITIAL AND

       /pws/zycae025-basecalc     NE v_basecalc_irrf.

      /pws/zycae025-basecalc = v_basecalc_irrf.

      MESSAGE i061 WITH /pws/zycae025-tpimp text-173 text-174.

    ELSEIF itab_zycat024-altera_base IS INITIAL OR

           /pws/zycae025-basecalc    IS INITIAL.

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

      read table itab_zycat026 with key tpimp = /pws/zycae025-tpimp(4).

      if sy-subrc = 0 and not itab_zycat026-formula is initial.

        perform calcula_base_calculo using    /pws/zycbe124-vlme

                                              /pws/zycae025-tpimp

                                              itab_zycat026-formula

                                     changing /pws/zycae025-basecalc.

      else.

* << Fim da inclusão

      IF /pws/zycae025-reajbase = 'X'.

        /pws/zycae025-basecalc = /pws/zycbe124-vlme /

                          ( ( 100 - /pws/zycae025-advalorem ) / 100 ).

      ELSE.

        /pws/zycae025-basecalc = /pws/zycbe124-vlme.

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

        endif.

* << Fim da inclusão

      ENDIF.

      v_basecalc_irrf = /pws/zycae025-basecalc.

...

 

...

      MESSAGE i061 WITH /pws/zycae025-tpimp text-173 text-174.

    ELSEIF itab_zycat024-altera_base IS INITIAL OR

       /pws/zycae025-basecalc    IS INITIAL.

      READ TABLE itab_zycat025 WITH KEY tpimp(4) = 'IRRF'.

      IF sy-subrc = 0 AND itab_zycat025-dedfat = 'X' AND

         /pws/zycbe124-vlme => itab_zycat025-vlimpme.

        v_valorme = /pws/zycbe124-vlme - itab_zycat025-vlimpme.

      ELSE.

        v_valorme = /pws/zycbe124-vlme.

      ENDIF.

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

      read table itab_zycat026 with key tpimp = /pws/zycae025-tpimp(4).

      if sy-subrc = 0 and not itab_zycat026-formula is initial.

        perform calcula_base_calculo using    v_valorme

                                              /pws/zycae025-tpimp

                                              itab_zycat026-formula

                                     changing /pws/zycae025-basecalc.

      else.

* << Fim da inclusão

      IF /pws/zycae025-reajbase = 'X'.

        /pws/zycae025-basecalc = v_valorme /

                          ( ( 100 - /pws/zycae025-advalorem ) / 100 ).

      ELSE.

        /pws/zycae025-basecalc = v_valorme.

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

        endif.

* << Fim da inclusão

      ENDIF.

      v_basecalc_cide = /pws/zycae025-basecalc.

...

 

...

      CLEAR /pws/zycae025-reducao.

    ENDIF.

    IF itab_zycat024-altera_base  IS INITIAL AND

       NOT /pws/zycae025-basecalc IS INITIAL AND

       NOT v_basecalc_iof         IS INITIAL AND

       /pws/zycae025-basecalc     NE v_basecalc_iof.

      /pws/zycae025-basecalc = v_basecalc_iof.

      MESSAGE i061 WITH /pws/zycae025-tpimp text-173 text-174.

    ELSEIF itab_zycat024-altera_base IS INITIAL OR

       /pws/zycae025-basecalc    IS INITIAL.

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

      read table itab_zycat026 with key tpimp = /pws/zycae025-tpimp(3).

      if sy-subrc = 0 and not itab_zycat026-formula is initial.

        perform calcula_base_calculo using    /pws/zycbe124-vlme

                                              /pws/zycae025-tpimp

                                              itab_zycat026-formula

                                     changing /pws/zycae025-basecalc.

      else.

* << Fim da inclusão

      /pws/zycae025-basecalc = /pws/zycbe124-vlme.

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

      endif.

* << Fim da inclusão

      v_basecalc_iof = /pws/zycae025-basecalc.

    ENDIF.

    v_reducao = /pws/zycae025-basecalc *

                ( /pws/zycae025-reducao / 100 ).

    /pws/zycae025-vlimpme = ( /pws/zycae025-basecalc - v_reducao ) *

                            ( /pws/zycae025-advalorem / 100 ).

  ELSEIF /pws/zycae025-tpimp(3) = 'ISS'.

    IF itab_zycat024-altera_base  IS INITIAL AND

       NOT /pws/zycae025-basecalc IS INITIAL AND

       NOT v_basecalc_iss         IS INITIAL AND

       /pws/zycae025-basecalc     NE v_basecalc_iss.

      /pws/zycae025-basecalc = v_basecalc_iss.

      MESSAGE i061 WITH /pws/zycae025-tpimp text-173 text-174.

    ELSEIF itab_zycat024-altera_base IS INITIAL OR

       /pws/zycae025-basecalc    IS INITIAL.

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

      read table itab_zycat026 with key tpimp = /pws/zycae025-tpimp(3).

      if sy-subrc = 0 and not itab_zycat026-formula is initial.

        perform calcula_base_calculo using    /pws/zycbe124-vlme

                                              /pws/zycae025-tpimp

                                              itab_zycat026-formula

                                     changing /pws/zycae025-basecalc.

      else.

* << Fim da inclusão

      /pws/zycae025-basecalc = /pws/zycbe124-vlme.

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

      endif.

* << Fim da inclusão

      v_basecalc_iss = /pws/zycae025-basecalc.

    ENDIF.

    /pws/zycae025-vlimpme =

             /pws/zycae025-basecalc * ( /pws/zycae025-advalorem / 100 ).

  ELSEIF /pws/zycae025-tpimp(3) = 'PIS'.

    IF itab_zycat024-altera_base  IS INITIAL AND

...

 

...

                           INTO v_aliq

                           WHERE bukrs = /pws/zycbe124-bukrs

                           AND tpimp   = 'ISS'.

        v_advalorem = v_advalorem + v_aliq.

      ENDIF.

      v_advalorem2 = v_advalorem2 - /pws/zycae025-advalorem.

      READ TABLE itab_zycat025 WITH KEY tpimp(6) = 'COFINS'.

      IF sy-subrc = 0.

        v_advalorem2 = v_advalorem2 - itab_zycat025-advalorem.

      ENDIF.

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

      read table itab_zycat026 with key tpimp = /pws/zycae025-tpimp(3).

      if sy-subrc = 0 and not itab_zycat026-formula is initial.

        perform calcula_base_calculo using    /pws/zycbe124-vlme

                                              /pws/zycae025-tpimp

                                              itab_zycat026-formula

                                     changing /pws/zycae025-basecalc.

      else.

* << Fim da inclusão

      /pws/zycae025-basecalc = /pws/zycbe124-vlme *

                                       ( v_advalorem / v_advalorem2 ).

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

      endif.

* << Fim da inclusão

      v_basecalc_pis = /pws/zycae025-basecalc.

    ENDIF.

    /pws/zycae025-vlimpme =

             /pws/zycae025-basecalc * ( /pws/zycae025-advalorem / 100 ).

  ELSEIF /pws/zycae025-tpimp(6) = 'COFINS'.

...

 

...

                           INTO v_aliq

                           WHERE bukrs = /pws/zycbe124-bukrs

                           AND tpimp   = 'ISS'.

        v_advalorem = v_advalorem + v_aliq.

      ENDIF.

      v_advalorem2 = v_advalorem2 - /pws/zycae025-advalorem.

      READ TABLE itab_zycat025 WITH KEY tpimp(3) = 'PIS'.

      IF sy-subrc = 0.

        v_advalorem2 = v_advalorem2 - itab_zycat025-advalorem.

      ENDIF.

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

      read table itab_zycat026 with key tpimp = /pws/zycae025-tpimp(6).

      if sy-subrc = 0 and not itab_zycat026-formula is initial.

        perform calcula_base_calculo using    /pws/zycbe124-vlme

                                              /pws/zycae025-tpimp

                                              itab_zycat026-formula

                                     changing /pws/zycae025-basecalc.

      else.

* << Fim da inclusão

      /pws/zycae025-basecalc = /pws/zycbe124-vlme *

                                       ( v_advalorem / v_advalorem2 ).

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

      endif.

* << Fim da inclusão

      v_basecalc_cofins = /pws/zycae025-basecalc.

    ENDIF.

    /pws/zycae025-vlimpme =

             /pws/zycae025-basecalc * ( /pws/zycae025-advalorem / 100 ).

  ELSE.

...

 

...

            itab_zyglt100           = itab_zyglt100

       EXCEPTIONS

            i_codmod_nao_encontrado = 1

            i_func_nao_encontrado   = 2

            i_zexit_nao_encontrado  = 3

            OTHERS                  = 4.

  SORT itab_zycat025 BY tpimp.

  SORT itab_zycat025_aux BY tpimp.

  DELETE ADJACENT DUPLICATES FROM itab_zycat025 COMPARING tpimp.

  itab_zycat025_aux2[] = itab_zycat025[].

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

  read table itab_zycat025 with key tpimp(4) = 'IRRF'.

  if sy-subrc = 0.

    v_control_ir = v_control_ir + 1.

    read table itab_zycat024 with key bukrs = /pws/zycbe124-bukrs

                                      tpimp = itab_zycat025-tpimp.

    if sy-subrc                      eq 0         and

       ( ( itab_zycat024-altera_base is initial   or

           itab_zycat025-basecalc    is initial ) or

         ( v_control_ir              eq 1         and

           sy-tcode                  eq '/PWS/ZYCB109_C' ) ).

      read table itab_zyglt100 with key zexit = 'REM003' binary search.

      if sy-subrc eq 0 and not itab_zyglt100-zexit_ativa is initial.

        perform (itab_zyglt100-formulario)

                in program (itab_zyglt100-programa).

      else.

       read table itab_zycat026 with key tpimp = itab_zycat025-tpimp(4).

        if sy-subrc = 0 and not itab_zycat026-formula is initial.

          perform calcula_base_calculo using    /pws/zycbe124-vlme

                                                itab_zycat025-tpimp

                                                itab_zycat026-formula

                                       changing itab_zycat025-basecalc.

        else.

          if itab_zycat025-reajbase = 'X'.

            itab_zycat025-basecalc = /pws/zycbe124-vlme /

                            ( ( 100 - itab_zycat025-advalorem ) / 100 ).

          else.

            itab_zycat025-basecalc = /pws/zycbe124-vlme.

          endif.

        endif.

      endif.

    endif.

    v_basecalc_irrf = itab_zycat025-basecalc.

    itab_zycat025-vlimpme =

             itab_zycat025-basecalc * ( itab_zycat025-advalorem / 100 ).

    if tcurx-currdec = 0.

      v_vlme = itab_zycat025-vlimpme / ( 10 ** ( tcurx-currdec - 2 ) ).

    else.

      v_vlme = itab_zycat025-vlimpme.

    endif.

    if not v_defator   is initial and

       not v_parafator is initial.

      itab_zycat025-vlimpmi = ( ( v_kursf / v_defator ) * v_parafator )

                                * v_vlme.

    else.

      if not v_kursf is initial.

        itab_zycat025-vlimpmi = v_vlme * v_kursf.

      endif.

    endif.

    modify itab_zycat025 transporting basecalc vlimpme vlimpmi

                         where tpimp(4) = 'IRRF'.

  endif.

  read table itab_zycat025 with key tpimp(3) = 'IOF'.

  if sy-subrc = 0.

    v_control_io = v_control_io + 1.

    read table itab_zycat024 with key bukrs = /pws/zycbe124-bukrs

                                      tpimp = itab_zycat025-tpimp.

    if sy-subrc                      eq 0         and

       ( ( itab_zycat024-altera_base is initial   or

           itab_zycat025-basecalc    is initial ) or

         ( v_control_io              eq 1         and

           sy-tcode                  eq '/PWS/ZYCB109_C' ) ).

      read table itab_zyglt100 with key zexit = 'REM003' binary search.

      if sy-subrc eq 0 and not itab_zyglt100-zexit_ativa is initial.

        perform (itab_zyglt100-formulario)

                in program (itab_zyglt100-programa).

      else.

       read table itab_zycat026 with key tpimp = itab_zycat025-tpimp(3).

        if sy-subrc = 0 and not itab_zycat026-formula is initial.

          perform calcula_base_calculo using    /pws/zycbe124-vlme

                                                itab_zycat025-tpimp

                                                itab_zycat026-formula

                                       changing itab_zycat025-basecalc.

        else.

          itab_zycat025-basecalc = /pws/zycbe124-vlme.

        endif.

      endif.

    endif.

    v_basecalc_iof = itab_zycat025-basecalc.

    v_reducao = itab_zycat025-basecalc *

                ( itab_zycat025-reducao / 100 ).

    itab_zycat025-vlimpme = ( itab_zycat025-basecalc - v_reducao ) *

                            ( itab_zycat025-advalorem / 100 ).

    if tcurx-currdec = 0.

      v_vlme = itab_zycat025-vlimpme / ( 10 ** ( tcurx-currdec - 2 ) ).

    else.

      v_vlme = itab_zycat025-vlimpme.

    endif.

    if not v_defator   is initial and

       not v_parafator is initial.

      itab_zycat025-vlimpmi = ( ( v_kursf / v_defator ) * v_parafator )

                                    * v_vlme.

    else.

      if not v_kursf is initial.

        itab_zycat025-vlimpmi = v_vlme * v_kursf.

      endif.

    endif.

    modify itab_zycat025 transporting basecalc vlimpme vlimpmi

                         where tpimp(3) = 'IOF'.

  endif.

* << Fim da inclusão

  READ TABLE itab_zycat025 WITH KEY tpimp(4) = 'CIDE'.

  IF sy-subrc = 0.

    v_control_ci = v_control_ci + 1.

    READ TABLE itab_zycat024 WITH KEY bukrs = /pws/zycbe124-bukrs

                                      tpimp = itab_zycat025-tpimp.

    IF sy-subrc                      EQ 0         AND

       ( ( itab_zycat024-altera_base IS INITIAL   OR

           itab_zycat025-basecalc    IS INITIAL ) OR

         ( v_control_ci              EQ 1         AND

           sy-tcode                  EQ '/PWS/ZYCB109_C' ) ).

...

 

...

      IF sy-subrc = 0 AND itab_zycat025_aux2-dedfat = 'X' AND

         /pws/zycbe124-vlme => itab_zycat025_aux2-vlimpme.

        v_valorme = /pws/zycbe124-vlme - itab_zycat025_aux2-vlimpme.

      ELSE.

        v_valorme = /pws/zycbe124-vlme.

      ENDIF.

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

      IF sy-subrc EQ 0 AND NOT itab_zyglt100-zexit_ativa IS INITIAL.

        PERFORM (itab_zyglt100-formulario)

                IN PROGRAM (itab_zyglt100-programa).

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

      else.

        read table itab_zycat026 with key

                                       tpimp = itab_zycat025-tpimp(4).

        if sy-subrc = 0 and not itab_zycat026-formula is initial.

          perform calcula_base_calculo using    v_valorme

                                                itab_zycat025-tpimp

                                                itab_zycat026-formula

                                      changing itab_zycat025-basecalc.

* << Fim da inclusão

      ELSE.

        IF itab_zycat025-reajbase = 'X'.

          itab_zycat025-basecalc = v_valorme /

                            ( ( 100 - itab_zycat025-advalorem ) / 100 ).

        ELSE.

          itab_zycat025-basecalc = v_valorme.

        ENDIF.

      ENDIF.

    ENDIF.

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

    endif.

* << Fim da inclusão

    v_basecalc_cide = itab_zycat025-basecalc.

    itab_zycat025-vlimpme =

             itab_zycat025-basecalc * ( itab_zycat025-advalorem / 100 ).

    IF tcurx-currdec = 0.

      v_vlme = itab_zycat025-vlimpme / ( 10 ** ( tcurx-currdec - 2 ) ).

    ELSE.

      v_vlme = itab_zycat025-vlimpme.

    ENDIF.

    IF NOT v_defator   IS INITIAL AND

       NOT v_parafator IS INITIAL.

      itab_zycat025-vlimpmi = ( ( v_kursf / v_defator ) * v_parafator )

                              * v_vlme.

    ELSE.

      IF NOT v_kursf IS INITIAL.

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

        /pws/zycae025-vlimpmi = v_vlme * v_kursf.

* << Fim da exclusão

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

        itab_zycat025-vlimpmi = v_vlme * v_kursf.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi

                         WHERE tpimp(4) = 'CIDE'.

  ENDIF.

  READ TABLE itab_zycat025 WITH KEY tpimp(3) = 'ISS'.

  IF sy-subrc = 0.

    v_control_is = v_control_is + 1.

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

    IF sy-subrc EQ 0 AND NOT itab_zyglt100-zexit_ativa IS INITIAL.

      PERFORM (itab_zyglt100-formulario)

              IN PROGRAM (itab_zyglt100-programa).

    ELSE.

      READ TABLE itab_zycat024 WITH KEY bukrs = /pws/zycbe124-bukrs

                                        tpimp = itab_zycat025-tpimp.

      IF sy-subrc                      EQ 0         AND

         ( ( itab_zycat024-altera_base IS INITIAL   OR

             itab_zycat025-basecalc    IS INITIAL ) OR

           ( v_control_is              EQ 1         AND

             sy-tcode                  EQ '/PWS/ZYCB109_C' ) ).

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

        read table itab_zycat026 with key

                                       tpimp = itab_zycat025-tpimp(3).

        if sy-subrc = 0 and not itab_zycat026-formula is initial.

          perform calcula_base_calculo using    /pws/zycbe124-vlme

                                                itab_zycat025-tpimp

                                                itab_zycat026-formula

                                      changing itab_zycat025-basecalc.

        else.

* << Fim da inclusão

        itab_zycat025-basecalc = /pws/zycbe124-vlme.

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

        endif.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    v_basecalc_iss = itab_zycat025-basecalc.

    itab_zycat025-vlimpme =

             itab_zycat025-basecalc * ( itab_zycat025-advalorem / 100 ).

    IF tcurx-currdec = 0.

      v_vlme = itab_zycat025-vlimpme / ( 10 ** ( tcurx-currdec - 2 ) ).

    ELSE.

      v_vlme = itab_zycat025-vlimpme.

    ENDIF.

    IF NOT v_defator   IS INITIAL AND

       NOT v_parafator IS INITIAL.

      itab_zycat025-vlimpmi = ( ( v_kursf / v_defator ) * v_parafator )

                              * v_vlme.

    ELSE.

      IF NOT v_kursf IS INITIAL.

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

        /pws/zycae025-vlimpmi = v_vlme * v_kursf.

* << Fim da exclusão

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

        itab_zycat025-vlimpmi = v_vlme * v_kursf.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi

                         WHERE tpimp(3) = 'ISS'.

  ENDIF.

  READ TABLE itab_zycat025 WITH KEY tpimp(3) = 'PIS'.

  IF sy-subrc = 0.

    v_control_pi = v_control_pi + 1.

    READ TABLE itab_zycat024 WITH KEY bukrs = /pws/zycbe124-bukrs

                                      tpimp = itab_zycat025-tpimp.

...

 

...

                           INTO v_aliq

                           WHERE bukrs = /pws/zycbe124-bukrs

                           AND tpimp   = 'ISS'.

        v_advalorem = v_advalorem + v_aliq.

      ENDIF.

      v_advalorem2 = v_advalorem2 - itab_zycat025-advalorem.

      READ TABLE itab_zycat025_aux2 WITH KEY tpimp(6) = 'COFINS'.

      IF sy-subrc = 0.

        v_advalorem2 = v_advalorem2 - itab_zycat025_aux2-advalorem.

      ENDIF.

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

      read table itab_zycat026 with key

                               tpimp = itab_zycat025-tpimp(3).

      if sy-subrc = 0 and not itab_zycat026-formula is initial.

        perform calcula_base_calculo using    /pws/zycbe124-vlme

                                              itab_zycat025-tpimp

                                              itab_zycat026-formula

                                     changing itab_zycat025-basecalc.

      else.

* << Fim da inclusão

      itab_zycat025-basecalc = /pws/zycbe124-vlme *

                                         ( v_advalorem / v_advalorem2 ).

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

      endif.

* << Fim da inclusão

    ENDIF.

    v_basecalc_pis = itab_zycat025-basecalc.

    itab_zycat025-vlimpme =

             itab_zycat025-basecalc * ( itab_zycat025-advalorem / 100 ).

    IF tcurx-currdec = 0.

      v_vlme = itab_zycat025-vlimpme / ( 10 ** ( tcurx-currdec - 2 ) ).

    ELSE.

      v_vlme = itab_zycat025-vlimpme.

    ENDIF.

    IF NOT v_defator   IS INITIAL AND

       NOT v_parafator IS INITIAL.

      itab_zycat025-vlimpmi = ( ( v_kursf / v_defator ) * v_parafator )

                              * v_vlme.

    ELSE.

      IF NOT v_kursf IS INITIAL.

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

        /pws/zycae025-vlimpmi = v_vlme * v_kursf.

* << Fim da exclusão

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

        itab_zycat025-vlimpmi = v_vlme * v_kursf.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi

                         WHERE tpimp(3) = 'PIS'.

  ENDIF.

  READ TABLE itab_zycat025 WITH KEY tpimp(6) = 'COFINS'.

  IF sy-subrc = 0.

    v_control_co = v_control_co + 1.

    READ TABLE itab_zycat024 WITH KEY bukrs = /pws/zycbe124-bukrs

                                      tpimp = itab_zycat025-tpimp.

...

 

...

                           INTO v_aliq

                           WHERE bukrs = /pws/zycbe124-bukrs

                           AND tpimp   = 'ISS'.

        v_advalorem = v_advalorem + v_aliq.

      ENDIF..

      v_advalorem2 = v_advalorem2 - itab_zycat025-advalorem.

      READ TABLE itab_zycat025_aux2 WITH KEY tpimp(3) = 'PIS'.

      IF sy-subrc = 0.

        v_advalorem2 = v_advalorem2 - itab_zycat025_aux2-advalorem.

      ENDIF.

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

      read table itab_zycat026 with key

                               tpimp = itab_zycat025-tpimp(6).

      if sy-subrc = 0 and not itab_zycat026-formula is initial.

        perform calcula_base_calculo using    /pws/zycbe124-vlme

                                              itab_zycat025-tpimp

                                              itab_zycat026-formula

                                     changing itab_zycat025-basecalc.

      else.

* << Fim da inclusão

      itab_zycat025-basecalc = /pws/zycbe124-vlme *

                                         ( v_advalorem / v_advalorem2 ).

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

      endif.

* << Fim da inclusão

    ENDIF.

    v_basecalc_cofins = itab_zycat025-basecalc.

    itab_zycat025-vlimpme =

             itab_zycat025-basecalc * ( itab_zycat025-advalorem / 100 ).

    IF tcurx-currdec = 0.

      v_vlme = itab_zycat025-vlimpme / ( 10 ** ( tcurx-currdec - 2 ) ).

    ELSE.

      v_vlme = itab_zycat025-vlimpme.

    ENDIF.

    IF NOT v_defator   IS INITIAL AND

       NOT v_parafator IS INITIAL.

      itab_zycat025-vlimpmi = ( ( v_kursf / v_defator ) * v_parafator )

                              * v_vlme.

    ELSE.

      IF NOT v_kursf IS INITIAL.

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

        /pws/zycae025-vlimpmi = v_vlme * v_kursf.

* << Fim da exclusão

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

        itab_zycat025-vlimpmi = v_vlme * v_kursf.

* << Fim da inclusão

      ENDIF.

    ENDIF.

    MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi

                         WHERE tpimp(6) = 'COFINS'.

  ENDIF.

  LOOP AT itab_zycat025 WHERE tpimp(4) = 'IRRF'

                           OR tpimp(3) = 'IOF'

                           OR tpimp(3) = 'PIS'

                           OR tpimp(6) = 'COFINS'.

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

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA109X01

 

...

        TYPE STANDARD TABLE OF t_zycbt141

        WITH HEADER LINE,

      itab_zycbt141_i_aux2

        TYPE STANDARD TABLE OF t_zycbt141

        WITH HEADER LINE.

DATA: BEGIN OF itab_zycat025 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycat025.

DATA: mark(1) TYPE c.

DATA: END OF itab_zycat025.

DATA: itab_zycbt141_aux LIKE /pws/zycbt141 OCCURS 0 WITH HEADER LINE.

* >> Início da inclusão:

DATA: BEGIN OF itab_zycat026 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycat026.

DATA: END OF itab_zycat026.

* << Fim da inclusão

DATA: BEGIN OF itab_zycbe033 OCCURS 100.

        INCLUDE STRUCTURE /pws/zycbe033.

DATA: END OF itab_zycbe033.

DATA: BEGIN OF itab_zycat025_aux2 OCCURS 0.

        INCLUDE STRUCTURE /pws/zycat025.

DATA: mark(1) TYPE c.

DATA: END OF itab_zycat025_aux2.

DATA:

  w_ok        LIKE sy-ucomm,

  v_valorme   LIKE /pws/zycbt124-vlme.

...

 

 

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

Modificações efetuadas em REPS /PWS/SAPMZYCA026

 

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

*& Pool móds.        /PWS/SAPMZYCA026                                  *

*&                                                                     *

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

*&                                                                     *

*&                                                                     *

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

 

 

INCLUDE /PWS/MZYCA026TOP                        .                      "

 

* INCLUDE /PWS/MZYCA026O01                        .                    *

* INCLUDE /PWS/MZYCA026I01                        .                    *

* INCLUDE /PWS/MZYCA026F01                        .                    *

 

 

INCLUDE /PWS/MZYCA026I01.

 

INCLUDE /PWS/MZYCA026F01.

 

INCLUDE /PWS/MZYCA026O01.

 

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

Modificações efetuadas em REPS /PWS/ZYGLR025

 

...

      v_pos(2)        TYPE n,

      v_cont(2)       TYPE n VALUE 1,

      v_forma_pagto   LIKE /pws/zyglt357-codpagto,

      v_lenght(2)     TYPE n,

      v_flag(1)       TYPE n,

      v_cod_lote(4)   TYPE n,

      v_bukrs         LIKE /pws/zycbt134-bukrs,

      v_hbkid         LIKE /pws/zycbt134-hbkid,

      v_exit(1)       TYPE c,

      v_arquivo TYPE string.

* >> Início da exclusão:

DATA: t_prog(72)     TYPE c OCCURS 1000 WITH HEADER LINE,

* << Fim da exclusão

* >> Início da inclusão:

 DATA: t_prog(150)   TYPE c OCCURS 1000 WITH HEADER LINE,

* << Fim da inclusão

      w_prog         LIKE trdir-name.

DATA: v_chamada(50)      TYPE c,

      wa_header_arq_25   LIKE itab_header_arq,

      wa_header_lote_25  LIKE itab_header_lote,

      wa_detalhe_a_25    LIKE itab_detalhe_a,

      wa_detalhe_b_25    LIKE itab_detalhe_b,

      wa_detalhe_c_25    LIKE itab_detalhe_c,

      wa_trailer_lote_25 LIKE itab_trailer_lote,

      wa_trailer_arq_25  LIKE itab_trailer_arq.

DATA: wa_j_1bbranch LIKE j_1bbranch.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYGLR026

 

...

      v_branch            LIKE j_1bbranch-branch,

      v_number            LIKE j_1bwfield-cgc_number,

      v_atualiza358(1)    TYPE n,

      v_pos(2)            TYPE n,

      v_cont(2)           TYPE n VALUE 1,

      v_lenght(2)         TYPE n,

      v_forma_pagto       LIKE /pws/zyglt357-codpagto,

      v_cod_lote(4)       TYPE n,

      v_exit(1)           TYPE c,

      v_arquivo TYPE string.

* >> Início da exclusão:

DATA: t_prog(72)     TYPE c OCCURS 1000 WITH HEADER LINE,

* << Fim da exclusão

* >> Início da inclusão:

 DATA: t_prog(150)   TYPE c OCCURS 1000 WITH HEADER LINE,

* << Fim da inclusão

      w_prog         LIKE trdir-name.

DATA: v_chamada(50)          TYPE c,

      wa_header_arq_26       LIKE itab_header_arq,

      wa_header_lote_26      LIKE itab_header_lote,

      wa_det_segto_a_341_26  LIKE itab_det_segto_a_341,

      wa_det_segto_a_n341_26 LIKE itab_det_segto_a_n341,

      wa_det_segto_b_26      LIKE itab_det_segto_b,

      wa_trailer_lote_26     LIKE itab_trailer_lote,

      wa_trailer_arq_26      LIKE itab_trailer_arq.

TYPE-POOLS:    sydes.

...

 

 

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

Modificações efetuadas em REPS /PWS/ZYGLR039

 

REPORT  /pws/zyglr039.

DATA: BEGIN OF itab_saida OCCURS 0,

        campo(242)         TYPE c,

      END OF itab_saida.

DATA: wa_saida LIKE itab_saida.

* >> Início da exclusão:

DATA: t_prog(72)     TYPE c OCCURS 1000 WITH HEADER LINE,

      w_prog         LIKE trdir-name,

      v_chamada(50)  TYPE c.

* << Fim da exclusão

* >> Início da inclusão:

data: t_prog(150)   type c occurs 1000 with header line,

      vl_remessa    type /pws/zycbt124-vlme,

      vl_base       type /pws/zycbt124-vlme,

      wa_irrf       type /pws/zycat025,

      wa_cide       type /pws/zycat025,

      wa_pis        type /pws/zycat025,

      wa_cofins     type /pws/zycat025,

      wa_iss        type /pws/zycat025,

      wa_iof        type /pws/zycat025,

      w_prog        like trdir-name,

      v_chamada(50) type c.

* << Fim da inclusão

DATA: BEGIN OF itab_header_arq_25 OCCURS 0,

       banco(03)       TYPE n,

       lote(04)        TYPE n VALUE '0000',

       registro(01)    TYPE n VALUE '0',

       cnab1(09)       TYPE c VALUE space,

       instipo(01)     TYPE n VALUE '2',

       insnume(14)     TYPE n,

       convenio(20)    TYPE c,

       agencimaco(05)  TYPE n,

       dvagenci(01)    TYPE c,

...

 

...

        wa_det_segto_b_26      FROM MEMORY ID 'GEN007',

        wa_trailer_lote_26     FROM MEMORY ID 'GEN008',

        wa_trailer_arq_26      FROM MEMORY ID 'GEN009',

        v_chamada              FROM MEMORY ID 'GEN013',

        wa_header_arq_25       FROM MEMORY ID 'GEN014',

        wa_header_lote_25      FROM MEMORY ID 'GEN015',

        wa_detalhe_a_25        FROM MEMORY ID 'GEN016',

        wa_detalhe_b_25        FROM MEMORY ID 'GEN017',

        wa_detalhe_c_25        FROM MEMORY ID 'GEN018',

        wa_trailer_lote_25     FROM MEMORY ID 'GEN019',

* >> Início da exclusão:

        wa_trailer_arq_25      FROM MEMORY ID 'GEN020'.

* << Fim da exclusão

* >> Início da inclusão:

        wa_trailer_arq_25      from memory id 'GEN020',

        vl_remessa             from memory id 'GEN021',

        wa_irrf                from memory id 'GEN022',

        wa_cide                from memory id 'GEN023',

        wa_pis                 from memory id 'GEN024',

        wa_cofins              from memory id 'GEN025',

        wa_iss                 from memory id 'GEN026',

        wa_iof                 from memory id 'GEN027'.

* << Fim da inclusão

GENERATE SUBROUTINE POOL t_prog NAME w_prog.

IF sy-subrc = 0.

  IF v_chamada = 'wa_header_arq_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_header_arq_25

                                             IF FOUND.

  ELSEIF v_chamada = 'wa_header_lote_25'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_header_lote_25

                                             IF FOUND.

...

 

...

                                                   wa_trailer_lote_26

                                             IF FOUND.

  ELSEIF v_chamada = 'wa_trailer_arq_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_trailer_arq_26

                                             IF FOUND.

  ELSEIF v_chamada = 'wa_det_segto_b_26'.

    PERFORM quebra_linha IN PROGRAM (w_prog) USING wa_saida

                                                   wa_det_segto_b_26

                                             IF FOUND.

* >> Início da inclusão:

  elseif v_chamada = 'BASE_CALCULO'.

    perform quebra_linha in program (w_prog) using   vl_remessa

                                                     wa_irrf

                                                     wa_cide

                                                     wa_pis

                                                     wa_cofins

                                                     wa_iss

                                                     wa_iof

                                            changing

                                                     vl_base

                                            if found.

    export: vl_base to memory id 'GEN028'.

* << Fim da inclusão

  ENDIF.

ENDIF.

EXPORT: wa_saida                 TO MEMORY ID 'GEN002'.

LEAVE PROGRAM.

 

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

Modificações efetuadas em DYNP /PWS/SAPMZYCA026 - Tela 0001

 

Efetuar upload da tela 0001.

Copiar texto abaixo, salvar em bloco de notas.

Criar tela 0001 no programa /PWS/SAPMZYCA026

Ir em Ulititários -> outros utilitários -> upload/download -> UPLOAD

 

 

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

*   THIS FILE IS GENERATED BY THE SCREEN PAINTER.              *

*   NEVER CHANGE IT MANUALLY, PLEASE !                         *

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

%_DYNPRO

/PWS/SAPMZYCA026

0001

46C

             40

%_HEADER

/PWS/SAPMZYCA026                        0001 0001     22134192 35  0  0 22136  0G P

20070921165309

%_DESCRIPTION

CA - Tela fórmula base cálculo impostos

%_FIELDS

Q_FORMULA

CHAR1340000003000  1  2   0  0  0    18R                            0  0101

Fórmulas_para_Base_de_Cálculo_de_Impostos___________________________________________________________

________________________________

T_IRRF

0CHAR  60000003000  3  3   0  0  0     0                             0  0

IRRF__

X

F_IRRF

CCHAR1258000800000  3 10   0  0  0     0                             0  0

____________________________________________________________________________________________________

_________________________

T_CIDE

0CHAR  60000003000  4  3   0  0  0     0                             0  0

CIDE__

X

F_CIDE

CCHAR1258000800000  4 10   0  0  0     0                             0  0

____________________________________________________________________________________________________

_________________________

T_PIS

0CHAR  60000003000  5  3   0  0  0     0                             0  0

PIS___

X

F_PIS

CCHAR1258000800000  5 10   0  0  0     0                             0  0

____________________________________________________________________________________________________

_________________________

T_COFINS

0CHAR  60000003000  6  3   0  0  0     0                             0  0

COFINS

X

F_COFINS

CCHAR1258000800000  6 10   0  0  0     0                             0  0

____________________________________________________________________________________________________

_________________________

T_ISS

0CHAR  60000003000  7  3   0  0  0     0                             0  0

ISS___

X

F_ISS

CCHAR1258000800000  7 10   0  0  0     0                             0  0

____________________________________________________________________________________________________

_________________________

T_IOF

0CHAR  60000003000  8  3   0  0  0     0                             0  0

IOF___

X

F_IOF

CCHAR1258000800000  8 10   0  0  0     0                             0  0

____________________________________________________________________________________________________

_________________________

TEXT1

0CHAR 560000003000 10  3   0  0  0     0                             0  0

Obs.:_Deixar_espaço_entre_palavras_e_sinais_aritméticos.

TEXT3

0CHAR 320000003000 12  3   0  0  0     0                             0  0

PRINCIPAL_____-_Valor_ME_Remessa

TEXT4

0CHAR 460000003000 13  3   0  0  0     0                             0  0

VA_IMPOSTO___-_Valor_ME_Imposto_(Ex.:_VA_IRRF)

TEXT5

0CHAR 520000003000 14  3   0  0  0     0                             0  0

AL_IMPOSTO___-_Alíquota_Geral_Imposto_(Ex.:_AL_IRRF)

TEXT6

0CHAR 470000003000 15  3   0  0  0     0                             0  0

AD_IMPOSTO__-_Ad_Valorem_Imposto_(Ex.:_AD_IRRF)

TEXT7

0CHAR 520000003000 16  3   0  0  0     0                             0  0

BA_IMPOSTO__-_Base_de_Cálculo_Imposto_(Ex.:_BA_IRRF)

ULT_MODIF

CHAR 540000083000 19  2   0  0  0     4R                            0  0102

Última_Modificação___________________________________

/PWS/ZYCAT026-USERNAMEC

0CHAR  73000003000 20  3   0  0  0     0                             0  0

Usuário

X

/PWS/ZYCAT026-USERNAMEC

CCHAR 12A000807100 20 11   0  0  0     0                            12  0

____________

/PWS/ZYCAT026-USER_SAVE

CCHAR 80A100807100 20 24   0  0  0    30                            80  0

________________________________________________________________________________

/PWS/ZYCAT026-DTUSERC

0CHAR  43000003000 21  3   0  0  0     0                             0  0

Data

X

/PWS/ZYCAT026-DTUSERC

DDATS 10A000807108 21 11   0  0  0     0                             8  0

__________

X

/PWS/ZYCAT026-HRUSERC

0CHAR  43000003000 21 24   0  0  0     0                             0  0

Hora

X

/PWS/ZYCAT026-HRUSERC

TTIMS  8A000807108 21 29   0  0  0     0                             6  0

________

X

OK_CODE

CHAR 208010000000255  1O  0  0  0     0                             0  0

____________________

%_FLOWLOGIC

 

PROCESS BEFORE OUTPUT.

 

  MODULE: SELECIONA_CONSISTE_DADOS,

          STATUS_0001,

          set_screen.

 

PROCESS AFTER INPUT.

 

  MODULE: USER_COMMAND_0001.

%_PARAMS

 

 

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

Modificações efetuadas em REPS /PWS/SAPMZYCA026 - Status-gui 0001

 

CRIAR STATUS: 0001

 

ATRIBUTOS DE STATUS

TEXTO BREVE: CA - Status Tela 0001

 

CATEGORIA DE STATUS

(X) - STATUS DIÁLOGO

(_) - CAIXA DE DIÁLOGO

(_) - MENU DE CONTEXTO

 

 

 

Barra de Botões

 

BOTÃO ESTÁTICO

 

CÓDIGO DE FUNÇÃO: MODI

CATEGORIA DE FUNÇÃO: ' '

 

TEXTOS DE FUNÇÃO ESTÁTICOS

TEXTO DE FUNÇÃO: Modificar

NOME DE ÍCONE: ICON_CHANGE

TEXTO DE ÍCONE: ' '

TEXTO INFORMATIVO: ' '

SELEÇÃO DIRETA: ' '

TECLA DE ATALHO: F5

 

 

 

Teclas de Função

 

BOTÃO ESTÁTICO

 

CÓDIGO DE FUNÇÃO: SAVE

CATEGORIA DE FUNÇÃO: ' '

 

TEXTOS DE FUNÇÃO ESTÁTICOS

TEXTO DE FUNÇÃO: Gravar

NOME DE ÍCONE: ICON_SYSTEM_SAVE

TEXTO DE ÍCONE: ' '

TEXTO INFORMATIVO: ' '

SELEÇÃO DIRETA: ' '

TECLA DE ATALHO: ' '

 

 

BOTÃO ESTÁTICO

 

CÓDIGO DE FUNÇÃO: BACK

CATEGORIA DE FUNÇÃO: ' '

 

TEXTOS DE FUNÇÃO ESTÁTICOS

TEXTO DE FUNÇÃO: Voltar

NOME DE ÍCONE: ' '

TEXTO DE ÍCONE: ' '

TEXTO INFORMATIVO: ' '

SELEÇÃO DIRETA: ' '

TECLA DE ATALHO: ' '

 

 

BOTÃO ESTÁTICO

 

CÓDIGO DE FUNÇÃO: EXIT

CATEGORIA DE FUNÇÃO: ' '

 

TEXTOS DE FUNÇÃO ESTÁTICOS

TEXTO DE FUNÇÃO: Encerrar

NOME DE ÍCONE: ' '

TEXTO DE ÍCONE: ' '

TEXTO INFORMATIVO: ' '

SELEÇÃO DIRETA: ' '

TECLA DE ATALHO: ' '

 

 

BOTÃO ESTÁTICO

 

CÓDIGO DE FUNÇÃO: CLOSE

CATEGORIA DE FUNÇÃO: ' '

 

TEXTOS DE FUNÇÃO ESTÁTICOS

TEXTO DE FUNÇÃO: Cancelar

NOME DE ÍCONE: ICON_CANCEL

TEXTO DE ÍCONE: ' '

TEXTO INFORMATIVO: ' '

SELEÇÃO DIRETA: ' '

TECLA DE ATALHO: ' '

 

 

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

Modificações efetuadas em REPS /PWS/SAPMZYCA026 - Tits. gui - Titlebar 0001

 

TÍTS GUI

CODE TÍTULO: 0001

TÍTULO:      CA - Fórmulas para Base de Cálculo de Impostos

 

 

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

Modificações efetuadas em SHI3 /PWS/ZYCB

Modificações efetuadas em SHI6 /PWS/ZYCB

Modificações efetuadas em TABU TMENU01

Modificações efetuadas em TABU TMENU01R

Modificações efetuadas em TABU TMENU01T

 

 

Incluir transação da tabela de parâmetros /PWS/ZYCAT026 no menu /PWS/ZYCB

 

Caminho: SE43

Menu de área: /PWS/ZYCB

Modificar

Parâmetros->Técnicos-> incluir no final em mesmo nível /PWS/ZYCAT026 - Fórmulas para Base de Cálculo

                                                                       de Impostos

 

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

Modificações efetuadas em TABL /PWS/ZYCAT026

 

MODIFICAR TABELA TRANSPARENTE: /PWS/ZYCAT026

DESCRIÇÃO BREVE: CA - Fórmula Base de Cálculo Impostos Remessa

 

CARACTERÍSTICAS

 

CATEGORIA DA TABELA: Tabela Transparente

CLASSE DE ENTREGA:   A - Tabela de aplicação (dados mestre e de movimento)

(X) - AUTUALIZAÇÃO DE TABELAS PERMITIDA

 

 

CAMPOS:         TP. CAMPO        CH: INI: TAB.VERIF.:    TAB.REF.:     CPO.RE

MANDT           MANDT            X   X

TPIMP           /PWS/ZYGLL1151   X   X

FORMULA         /PWS/ZYGLL1357

USERNAMEC       SYUNAME

DTUSERC         SYDATUM

HRUSERC         SYSTTIMLO

USER_SAVE       /PWS/ZYGLL699

 

 

Opções técnicas

 

TIPO DE DADOS: APPL0

CATEGOR. TAMANHO: 0

 

(X) - AR. BUFFER NÃO PERMITIDO

(_) - AR. BUFFER PERMITIDO, MAS DESATIVADO

(_) - AR. BUFFER ATIVADO

(_) - RGSTS. IND ARMAZENADOS

(_) - ÁREA GEN ARMAZENADA EM BUFFER   Nº DE CPOS CHAVE: ______

(_) - TOTALMENTE ARMAZENADO

(_) - REGISTRAR MODIFICS. DDS. EM LOG.

 

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

Modificações efetuadas em TRAN /PWS/ZYCAT026

 

CÓDIGO DE TRANSAÇÃO: /PWS/ZYCAT026

 

ATRIBUTOS DA TRANSAÇÃO

TEXTO BREVE: CA - Fórmula Base Cálculo Impostos

 

OBJETO DE EXECUÇÃO

(X) - PROGRAMA E TELA (TRANSAÇÃO DE DIÁLOGO)

(_) - PROGRAMA E TELA DE SELEÇÃO (TRANSAÇÃO DE REPORT)

 

TEXTO DA TRANSAÇÃO: CA - Fórmula Base Cálculo Impostos

PROGRAMA: /PWS/SAPMZYCA026

TELA(SELEÇÃO): 0001

INÍCIO COM VARIANTE: _____________________________________________

OBJETO DE AUTORIZAÇÃO: ___________________________________________

(X) - ATUALIZAÇÃO DA VARIANTE DA TRANSAÇÃO STANDARD PERMITIDA

 

CLASSIFICAÇÃO

 

CLASSIFICAÇÃO DE TRANSAÇÃO:

(X) - TRANSAÇÃO PROFESSIONAL USER

(_) - TRANSAÇÃO EASY WEB      SERVIÇO: ___________________________

 

CAPACIDADE GUI:

(_) SAP GUI PARA HTML

(_) SAP GUI PARA JAVA

(_) SAP GUI PARA WINDOWS

 

 

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

Modificações efetuadas em REPS /PWS/SAPMZYCA026 - Símbolos de Texto

 

001 Parâmetros estão sendo alterados por outro usuário

002 Somente é possível exibí-los.

003 Problemas de bloqueio. Avisar administrador do sistema.

004 Registro atualizado com sucesso.

005 Fórmulas Base de Cálculo Impostos.

006 Houve alterações nos parâmetros. Deseja salvar?

007 Aviso