CE PLUS - Nota 000399

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: Remessa

Data/Hora da Publicação: 06/12/2005 00:00:00

Data/Hora Última Alteração: 18/02/2011 11:39:17

Descrição da Nota: EXIT NA REMESSA FINANCEIRA DE PAGAMENTO PARA CÁLCULO DO CIDE E ISS

Sintoma

Exit na remessa financeira de pagamento, para calcular a base de calculo do CIDE e ISS através um

desenvolvimento específico.

 

 

Solução

Inserido pontos de exit no momento do cálculo da "base de cálculo" do CIDE e ISS.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 00399 Data: 06/12/2005 Hora: 08:55:10

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

 

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

Nota Número              : 00399

Categoria                : Melhoria

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00022

Agrupamento              : 00093

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

EXIT NA REMESSA FINANCEIRA DE PAGAMENTO PARA CÁLCULO DO CIDE E ISS

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

Palavras Chave:

EXIT REM003 CIDE ISS REMESSA

 

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

Objetos da nota:

REPS /PWS/MZYCA109I01

REPS /PWS/MZYCA109TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCA109I01

 

Contexto: MODULE controla_impostos INPUT.

 

  CHECK v_status_s NE '0'.

 

* >> Início da Inclusão

* Ch. 274018 - 05/12/2005 - Início

  FREE itab_zyglt100.

 

  v_syrepid = sy-repid.

 

* Busca as Exit's ativas

  CALL FUNCTION '/PWS/ZYGL_BUSCA_EXIT_CLIENTE'

       EXPORTING

            i_codmod                = 'F'  "Módulo da Exit

            i_func                  = v_syrepid

       TABLES

            itab_zyglt100           = itab_zyglt100

       EXCEPTIONS

            i_codmod_nao_encontrado = 1

            i_func_nao_encontrado   = 2

            i_zexit_nao_encontrado  = 3

            OTHERS                  = 4.

* Ch. 274018 - 05/12/2005 - Fim

* >> Fim da Inclusão

 

  SORT itab_zycat025 BY tpimp.

  DELETE ADJACENT DUPLICATES FROM itab_zycat025 COMPARING tpimp.

 

* Recalcula valores dos impostos que dependem de informações de outros

* impostos da table, para atualizar diretamente sem a necessidade de

* passar novamente pelo PAI

  itab_zycat025_aux2[] = itab_zycat025[].

 

* CIDE******************************************************************

  READ TABLE itab_zycat025 WITH KEY tpimp = 'CIDE'.

  IF sy-subrc = 0.

*   Base de Cálculo

*   Chamado 223057 - Renato Mendes - Inicio

    v_control_ci = v_control_ci + 1.

*   Chamado 223057 - Renato Mendes - Fim

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

                                      tpimp = itab_zycat025-tpimp.

    IF sy-subrc                      EQ 0         AND

*      Chamado 223057 - Renato Mendes - Inicio

       ( ( 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' ) ).

*      Chamado 223057 - Renato Mendes - Fim

      READ TABLE itab_zycat025_aux2 WITH KEY tpimp = 'IRRF'.

      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.

 

* >> Início da Inclusão

* Ch. 274018 - 05/12/2005 - Início

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

      IF sy-subrc EQ 0.

* Verifica se a Exit está ativa.

        IF NOT itab_zyglt100-zexit_ativa IS INITIAL.

          PERFORM (itab_zyglt100-formulario)

                  IN PROGRAM (itab_zyglt100-programa).

        ENDIF.

      ELSE.

* Ch. 274018 - 05/12/2005 - Fim

* >> Fim da Inclusão

        IF itab_zycat025-reajbase = 'X'.

          itab_zycat025-basecalc = v_valorme /

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

        ELSE.

          itab_zycat025-basecalc = v_valorme.

        ENDIF.

      ENDIF.

* >> Início da Inclusão

    ENDIF. "274018 - 05/12/2005

* >> Fim da Inclusão

    v_basecalc_cide = itab_zycat025-basecalc.

*   Valor Imposto ME

    itab_zycat025-vlimpme =

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

* CHAMADO 221566 - 24/03/2005 - INICIO

**   Valor Imposto MI

*    IF NOT /pws/zycbe124-kursf IS INITIAL.

*      itab_zycat025-vlimpmi =

*                         itab_zycat025-vlimpme * /pws/zycbe124-kursf.

*    ELSE.

*      itab_zycat025-vlimpmi = itab_zycat025-vlimpme * v_kursf.

*    ENDIF.

    IF tcurx-currdec = 0.

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

    ELSE.

      v_vlme = itab_zycat025-vlimpme.

    ENDIF.

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

                            * v_vlme.

* CHAMADO 221566 - 24/03/2005 - FIM

    MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi

                         WHERE tpimp = 'CIDE'.

  ENDIF.

 

* ISS*******************************************************************

  READ TABLE itab_zycat025 WITH KEY tpimp = 'ISS'.

  IF sy-subrc = 0.

*   Base de Cálculo

*   Chamado 223057 - Renato Mendes - Inicio

    v_control_is = v_control_is + 1.

*   Chamado 223057 - Renato Mendes - Fim

 

* >> Início da Inclusão

* Ch. 274018 - 05/12/2005 - Início

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

    IF sy-subrc EQ 0.

* Verifica se a Exit está ativa.

      IF itab_zyglt100-zexit_ativa IS INITIAL.

        PERFORM (itab_zyglt100-formulario)

                IN PROGRAM (itab_zyglt100-programa).

      ENDIF.

    ELSE.

* Ch. 274018 - 05/12/2005 - Fim

* >> Fim da Inclusão

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

                                        tpimp = itab_zycat025-tpimp.

      IF sy-subrc                      EQ 0         AND

*      Chamado 223057 - Renato Mendes - Inicio

         ( ( 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' ) ).

*      Chamado 223057 - Renato Mendes - Fim

        itab_zycat025-basecalc = /pws/zycbe124-vlme.

      ENDIF.

* >> Início da Inclusão

    ENDIF. "274018 - 05/12/2005

* >> Fim da Inclusão

    v_basecalc_iss = itab_zycat025-basecalc.

*   Valor Imposto ME

    itab_zycat025-vlimpme =

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

*   Valor Imposto MI

* CHAMADO 221566 - 24/03/2005 - INICIO

*    IF NOT /pws/zycbe124-kursf IS INITIAL.

*      itab_zycat025-vlimpmi =

*                           itab_zycat025-vlimpme * /pws/zycbe124-kursf.

*    ELSE.

*      itab_zycat025-vlimpmi = itab_zycat025-vlimpme * v_kursf.

*    ENDIF.

    IF tcurx-currdec = 0.

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

    ELSE.

      v_vlme = itab_zycat025-vlimpme.

    ENDIF.

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

                            * v_vlme.

* CHAMADO 221566 - 24/03/2005 - FIM

    MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi

                         WHERE tpimp = 'ISS'.

  ENDIF.

 

...

 

ENDMODULE.                 " controla_impostos  INPUT

 

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

Modificações efetuadas em REPS /PWS/MZYCA109TOP

 

...

 

* Variáveis

DATA:

 v_nrseq             LIKE /pws/zycbt124-nrseq, " Guarda nº seq. despesa

  v_nrseqview(10)     TYPE c,                   " Visão p/ campo NRSEQ

  ok_code             LIKE sy-ucomm,

  ok_code1            LIKE sy-ucomm,

  ok_code2            LIKE sy-ucomm,

  v_answer,                                     " Resposta do usuário

  mark(1),

  mark1(1) TYPE c,

 

...

 

  v_ano               LIKE t009b-bdatj,

  v_monat             LIKE t001b-frpe1,

  v_lib(1)            TYPE c, "Estratégia de Liberação para contabilizar

* >> Início da Inclusão

* Ch. 274018 - 05/12/2005 - Início

  okcode              LIKE sy-ucomm,

* Ch. 274018 - 05/12/2005 - Fim

* >> Fim da Inclusão

  v_totdep            LIKE /pws/zyglt342-valorinc,

  v_aliqpis           LIKE /pws/zycbt124-aliqpis,

  v_aliqcofins        LIKE /pws/zycbt124-aliqcofins,

  v_aliqiss           LIKE /pws/zycbt124-aliqiss,

 

...

 

  v_control_co(10)       TYPE n, "Controle p cálculo COFINS

* Chamado 223057 - Renato Mendes - Fim

* Chamado 269883 - Renato - 16.11.2005 - Inicio

  v_indice TYPE i.

* Chamado 269883 - Renato - 16.11.2005 - Fim

 

DATA: v_nome_campo(35) TYPE c,

      v_comp(35)       TYPE c,

      v_cod_grupo      LIKE /pws/zyglt320-cod_grupo,

      cont             TYPE i VALUE 0,

      v_tela           LIKE sy-ucomm,

      wa_zycbe141_aux  LIKE /pws/zycbe141,

      v_dtlanc(10)     TYPE c.

 

* Chamado 239757 - Renato - 20.06.2005 - Inicio

DATA: e_subrc       LIKE sy-subrc.

* Chamado 239757 - Renato - 20.06.2005 - Fim

* Chamado 239757 - Renato - 20.06.2005 - Fim