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.
7.0
Produto:
Nota
Descriçã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