CE PLUS - Nota 007725

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: Remessa

Data/Hora da Publicação: 05/12/2008 00:00:00

Data/Hora Última Alteração: 18/02/2011 14:15:39

Descrição da Nota: REMESSA - CÁLCULO IMPOSTOS NO PRIMEIRO ENTER - PERÍODO CONTÁBIL FECHADO

Sintoma

Ao criar/modificar uma remessa ocorrem os seguintes erros:

- não calcula o valor dos impostos no primeiro enter, precisa apagar os mesmos para calcular.

- se excluir um imposto que outro depende, exemplo: excluir o irrf e o cálculo do cofins depende da

base do irrf, fica valor negativo e gera dump

- esta exibindo período contábil fechado, sendo que o mesmo não esta. Depois joga período = '00' no

batch-input.

 

 

Solução

- deixar calcular no criar ou modificar.

- se houver valores negativos, deixar igual a zero(0.00)

- enviar a data de lançamento, para que analise corretamente o período fechado.

 

Versões Tratadas

7.0


Pré-Requisitos

Produto:

Nota

Descrição

REMESSA - DA BASE CÁLCULO IMPOSTOS

ERRO NA BASE DE CALCULO NO PROGRAMA DE REMESSA

PROGRAMA DE REMESSA - ALTERAR CODIGOS DE ANO FISCAL

CRIAR REMESSA CÂMBIO FINANCEIRO

Informações Complementares

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

Nota Número 07725 Data: 05/12/2008 Hora: 16:28:01

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

 

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

Nota Número              : 07725

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 7.0

Pacote                   : 00007

Agrupamento              : 00076

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

Referência às notas relacionadas:

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

 

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

04798  - 00002 - 7.0    - 00003  - REMESSA - DA BASE CÁLCULO IMPOSTOS

07449  - 00003 - 7.0    - 00007  - ERRO NA BASE DE CALCULO NO PROGRAMA DE REMESSA

07712  - 00004 - 7.0    - 00007  - PROGRAMA DE REMESSA - ALTERAR CODIGOS DE ANO FISCAL

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

REMESSA - CÁLCULO IMPOSTOS NO PRIMEIRO ENTER - PERÍODO CONTÁBIL FECHADO

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

Palavras Chave:

REMESSA CÁLCULO IMPOSTOS NO PRIMEIRO ENTER PERÍODO CONTÁBIL FECHADO

/PWS/ZYCAT026 DUMP VALORES NEGATIVOS IMPOSTOS

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

Objetos da nota:

FUNC /PWS/ZYCA_BASE_CALCULO_IMPOSTO

FUNC /PWS/ZYCA_TRANSACAO_F_63R

REPS /PWS/MZYCA109I01

 

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

Modificações efetuadas em FUNC /PWS/ZYCA_BASE_CALCULO_IMPOSTO

 

...

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

* >> Início da inclusão: FUNCTION /PWS/ZYCA_BASE_CALCULO_IMPOSTO

  if vl_base < 0.

    clear vl_base.

  endif.

* << Fim da inclusão

ENDFUNCTION.

 

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

Modificações efetuadas em FUNC /PWS/ZYCA_TRANSACAO_F_63R

 

...

         EXPORTING

              date                = t_dados-budat

              version             = v_periv

         IMPORTING

              period              = v_monat

         EXCEPTIONS

              period_in_not_valid = 1

              period_not_assigned = 2

              version_undefined   = 3

              OTHERS              = 4.

* >> Início da inclusão: FUNCTION /PWS/ZYCA_TRANSACAO_F_63R

    v_budat = v_data_lanc_char.

* << Fim da inclusão

    WHILE v_ok EQ 'N'.

      PERFORM check_periodo USING    '+'

                                     v_monat

                                     v_bukrs

                                     v_gjahr

                                     space

                            CHANGING v_budat

                                     v_ok.

      MOVE v_budat+6(4) TO v_gjahr.

      MOVE v_budat+3(2) TO v_monat.

...

 

 

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

Modificações efetuadas em REPS /PWS/MZYCA109I01

 

...

  ENDIF.

  IF NOT v_defator   IS INITIAL AND

     NOT v_parafator IS INITIAL.

    /pws/zycae025-vlimpmi = ( ( v_kursf / v_defator ) * v_parafator ) *

                            v_vlme.

  ELSE.

    IF NOT v_kursf IS INITIAL.

      /pws/zycae025-vlimpmi = v_vlme * v_kursf.

    ENDIF.

  ENDIF.

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

  IF /pws/zycae025-aliqgera < 0 OR

     /pws/zycae025-advalorem < 0 OR

     /pws/zycae025-basecalc < 0 OR

* << Fim da exclusão

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

  IF /pws/zycae025-basecalc < 0 OR

* << Fim da inclusão

     /pws/zycae025-vlimpme < 0 OR

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

     /pws/zycae025-vlimpmi < 0 OR

     /pws/zycae025-reducao < 0.

    MESSAGE i268 WITH text-003.

    EXIT.

* << Fim da exclusão

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

     /pws/zycae025-vlimpmi < 0.

    IF /pws/zycae025-basecalc < 0.

      CLEAR /pws/zycae025-basecalc.

* << Fim da inclusão

  ENDIF.

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

    IF /pws/zycae025-vlimpme < 0.

      CLEAR /pws/zycae025-vlimpme.

    ENDIF.

    IF /pws/zycae025-vlimpmi < 0.

      CLEAR /pws/zycae025-vlimpmi.

    ENDIF.

  ENDIF.

* << Fim da inclusão

  itab_zycat025       = /pws/zycae025.

  itab_zycat025-mandt = sy-mandt.

  itab_zycat025-bukrs = /pws/zycbe124-bukrs.

  itab_zycat025-nrseq = /pws/zycbe124-nrseq.

  itab_zycat025-mark  = mark.

  MODIFY itab_zycat025 INDEX tc_cab-current_line.

  IF sy-subrc NE 0.

    APPEND itab_zycat025.

  ENDIF.

ENDMODULE.

...

 

...

  itab_zycat025_aux2[] = itab_zycat025[].

  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

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

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

* << Fim da exclusão

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

           sy-tcode                  NE '/PWS/ZYCB109_E' ) ).

* << Fim da inclusão

      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

...

 

...

  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

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

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

* << Fim da exclusão

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

           sy-tcode                  NE '/PWS/ZYCB109_E' ) ).

* << Fim da inclusão

      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

...

 

...

  ENDIF.

  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

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

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

* << Fim da exclusão

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

           sy-tcode                  NE '/PWS/ZYCB109_E' ) ).

* << Fim da inclusão

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

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

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

        IF v_verif IS INITIAL.

          CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'

               EXPORTING

                    defaultoption = 'Y'

                    textline1     = text-100

                    textline2     = text-101

                    titel         = space

...

 

...

    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

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

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

* << Fim da exclusão

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

           sy-tcode                  NE '/PWS/ZYCB109_E' ) ).

* << Fim da inclusão

        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.

  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.

    IF sy-subrc                      EQ 0         AND

       ( ( itab_zycat024-altera_base IS INITIAL   OR

           itab_zycat025-basecalc    IS INITIAL ) OR

         ( v_control_pi              EQ 1         AND

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

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

* << Fim da exclusão

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

           sy-tcode                  NE '/PWS/ZYCB109_E' ) ).

* << Fim da inclusão

      CLEAR itab_zycat025_aux2-advalorem.

      v_advalorem  = 100.

      v_advalorem2 = 100.

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

      IF sy-subrc = 0.

        v_advalorem =  v_advalorem + itab_zycat025_aux2-advalorem.

      ELSE.

        SELECT SINGLE aliq FROM /pws/zycat024

                           INTO v_aliq

                           WHERE bukrs = /pws/zycbe124-bukrs

...

 

...

  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.

    IF sy-subrc                      EQ 0         AND

       ( ( itab_zycat024-altera_base IS INITIAL   OR

           itab_zycat025-basecalc    IS INITIAL ) OR

         ( v_control_co              EQ 1         AND

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

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

* << Fim da exclusão

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

           sy-tcode                  NE '/PWS/ZYCB109_E' ) ).

* << Fim da inclusão

      CLEAR itab_zycat025_aux2-advalorem.

      v_advalorem  = 100.

      v_advalorem2 = 100.

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

      IF sy-subrc = 0.

        v_advalorem =  v_advalorem + itab_zycat025_aux2-advalorem.

      ELSE.

        SELECT SINGLE aliq FROM /pws/zycat024

                           INTO v_aliq

                           WHERE bukrs = /pws/zycbe124-bukrs

...

 

...

  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.

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

      PERFORM (itab_zyglt100-formulario)

              IN PROGRAM (itab_zyglt100-programa).

    ENDIF.

  ENDLOOP.

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

  clear: itab_zycat025-basecalc, itab_zycat025-vlimpme,

         itab_zycat025-vlimpmi.

  MODIFY itab_zycat025 TRANSPORTING basecalc vlimpme vlimpmi

                       WHERE basecalc < 0

                          OR vlimpme  < 0

                          OR vlimpmi  < 0.

* << Fim da inclusão

ENDMODULE.

MODULE set_mc_rateio_imposto_conta INPUT.

  PERFORM set_mc_rateio_imposto_conta.

ENDMODULE.

MODULE consiste_tpimp INPUT.

  IF NOT /pws/zycbe141-tpimp IS INITIAL AND v_status_s NE 0.

    READ TABLE itab_zycbt141_i WITH KEY tpimp = /pws/zycbe141-tpimp.

    IF sy-subrc = 0.

      READ TABLE itab_zycat025 WITH KEY tpimp = /pws/zycbe141-tpimp.

      IF sy-subrc NE 0.

...