CE PLUS - Nota 000426

Módulo: CÂMBIO FINANCEIRO

Funcionalidade: Remessa

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

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

Descrição da Nota: AJUSTE NO RATEIO DA CONTABILIZAÇÃO

Sintoma

Verificar porque o programa de remessa financeira não aceita o imposto que está registrado na tabela

/pws/zycat024. Isto é, COFINS e COFINS P.

 

 

Solução

Nos programas de: Remessa, Processar Boleto Remessa, Complemento do Boleto Remessa, Saída de

Pagamento Remessa, Arquivo Eletrônico Remessa e Relatório de Follow-up Remessas, fazer com que

considere o início do nome do imposto(CIDE,COFINS,IRRF,PIS,IOF,ISS), permitindo assim criar novos

impostos como (CIDE1, COFINS_A, PIS2, IOF_Z1, etc). Lembrando que a Remessa só pode ter um tipo de

imposto de IRRF, por exemplo, não podendo ter IRRF e IRRF2 na mesma.

 

Versões Tratadas

6.0

Informações Complementares

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

Nota Número 00426 Data: 09/12/2005 Hora: 15:00:55

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

 

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

Nota Número              : 00426

Categoria                : Erro de Programa

Prioridade               : Média

Versão PW.CE             : 6.0

Pacote                   : 00022

Agrupamento              : 00093

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

Referência às notas relacionadas:

Número - Ordem - Descrição Breve

 

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

AJUSTE NO RATEIO DA CONTABILIZAÇÃO

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

Palavras Chave:

REMESSA RATEIO

 

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

Objetos da nota:

REPS /PWS/MZYCA110F01

REPS /PWS/MZYGL110TOP

 

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

Modificações efetuadas em REPS /PWS/MZYCA110F01

 

 

 

 

Contexto: FORM selecionar_cp.

 

...

 

 

  CLEAR:   itab_zycbt141_i.

  REFRESH: itab_zycbt141_i.

  LOOP AT itab_zycbt141 WHERE tpimp NE 'PRINCIPAL'.

    MOVE-CORRESPONDING itab_zycbt141 TO itab_zycbt141_i.

    APPEND itab_zycbt141_i.

  ENDLOOP.

 

  SORT itab_zycat025   BY tpimp.

  SORT itab_zycbt141   BY tpimp

*<<Inicio inclusão>>

       saknr1 kostl prctr aufnr ps_psp_pnr fipos fictr gsber.

*<<Fim inclusão>>

  SORT itab_zycbt141_i BY tpimp

*<<Inicio inclusão>>

       saknr1 kostl prctr aufnr ps_psp_pnr fipos fictr gsber.

*<<Fim inclusão>>

  CHECK ok_code NE 'DEL'  AND

        w_ok    NE 'DEL'  AND

        ok_code NE 'ESTR' AND

        w_ok    NE 'ESTR' AND

        w_ok    NE 'EXEC' AND

        ok_code NE 'EXEC'.

 

  IF wa_zycbt124-tpoper = 'R'.

*   Se for Recebimento, não passa por estratégia de liberação

    /pws/zycbe031-frgzu = '2'.

  ELSE.

*   Se for pagamento, só passa por estratégia de liberação no boleto se

*   - Remessa sem origem: todos, principal e impostos, forem reg. caixa

*   - Remessa com origem: todos os impostos forem regime de caixa

    READ TABLE itab_zycat025 WITH KEY frpagto_imp = 'C'.

    IF ( wa_zycbt124-frpagto EQ 'R' OR wa_zycbt124-criacao NE 'S' ) AND

       sy-subrc NE 0 AND /pws/zycbe031-frgzu IS INITIAL.

      PERFORM verifica_estrategia_liberacao.

    ENDIF.

  ENDIF.

 

ENDFORM.                               " SELECIONAR_CP

 

 

 

 

Contexto: FORM lancamento_multiplo USING p_tpimp

                               p_recontabiliza

                               p_recuperar.

 

*<<Inicio exclusão>>

* DATA: v_vlirrf     LIKE /pws/zycat025-vlimpme.

*<<Fim exclusão>>

*<<Inicio inclusão>>

  DATA: v_vlirrf(16) TYPE p DECIMALS 5.

*<<Fim inclusão>>

 

  CLEAR:   itab_zycbe035,

*<<Inicio inclusão>>

           v_total,

           v_total_mi.

*<<Fim inclusão>>

  REFRESH: itab_zycbe035.

 

  LOOP AT itab_zycbt141 WHERE tpimp = p_tpimp.

 

    itab_zycbe035-mandt      = sy-mandt.

    itab_zycbe035-tcode      = v_trans.

    itab_zycbe035-tabela     = '/PWS/ZYCBT031'.

    IF wa_zycbt124-tpoper = 'P' AND p_recuperar IS INITIAL.

      itab_zycbe035-bschl    = '40'.                    "Chv.Lanc Pagam

    ELSE.

      itab_zycbe035-bschl    = '50'.                    "Chv.Lanc Receb

    ENDIF.

 

 

...

 

*   Verifica se tem IRRF deduzido do Principal

    IF p_tpimp = 'PRINCIPAL'.

      CLEAR v_vlirrf.

      READ TABLE itab_zycat025 WITH KEY tpimp = 'IRRF'

                                        nrseq = itab_zycbt141-nrseq.

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

        LOOP AT itab_zycbt124_aux WHERE nrseq = itab_zycbt141-nrseq.

          LOOP AT itab_zycbt141_i WHERE tpimp  = 'IRRF'

                                    AND nrseq = itab_zycbt124_aux-nrseq.

            v_vlirrf = v_vlirrf + ( ( itab_zycbt141-vlremessa *

                 itab_zycbt141_i-vlremessa ) / itab_zycbt124_aux-vlme ).

          ENDLOOP.

        ENDLOOP.

        itab_zycbe035-wrbtr = itab_zycbt141-vlremessa - v_vlirrf.

      ELSE.

        itab_zycbe035-wrbtr = itab_zycbt141-vlremessa.

      ENDIF.

    ELSE.

      itab_zycbe035-wrbtr   = itab_zycbt141-vlremessa.

    ENDIF.

 

*<<Inicio inclusão>>

    v_total    = v_total    + itab_zycbe035-wrbtr.

    READ TABLE itab_dados_tc WITH KEY tpimp = p_tpimp.

    IF sy-subrc = 0.

      v_total_mi = v_total_mi + ( itab_zycbe035-wrbtr *

                                  itab_dados_tc-kursf ).

    ENDIF.

*<<Fim inclusão>>

 

*   Calcula Valor MI

    itab_zycbe035-dmbtr  = ( itab_zycbe035-wrbtr *

                             itab_dados_tc-vlmi ) / itab_dados_tc-vlme.

 

    IF /pws/zycbe145-cod_fech = 'TR' AND p_recontabiliza IS INITIAL AND

       p_recuperar IS INITIAL.

      CALL FUNCTION '/PWS/ZYGL_READ_ACCOUNT_NUMBER'

           EXPORTING

                bukrs           = /pws/zycbe031-bukrs

                ktosl           = 'TRF'

                codaux1         = 'TRAVA'

           TABLES

                account         = itab_zyglt316

           EXCEPTIONS

                key_not_found   = 1

                rules_not_found = 2

                OTHERS          = 3.

      IF sy-subrc = 0.

        READ TABLE itab_zyglt316 INDEX 1.

        MOVE itab_zyglt316-konts TO itab_zycbe035-d_newko.

      ENDIF.

    ELSEIF wa_zycbt124-tpoper = 'P'.

      itab_zycbe035-d_newko = itab_zycbt141-saknr1.

    ELSE.

      itab_zycbe035-c_newko = itab_zycbt141-saknr1.

    ENDIF.

 

...

 

          ELSEIF itab_zyglt321-cpocb = 'NRCONTR'.

            itab_zycbe035-c_zuonr = wa_zycbt124-nrcontr.

          ELSEIF itab_zyglt321-cpocb = 'TXTINF'.

            itab_zycbe035-c_zuonr = wa_zycbt124-txtinf.

          ELSEIF itab_zyglt321-cpocb = 'CODPAGTO'.

            itab_zycbe035-c_zuonr = wa_zycbt124-codpagto.

          ELSEIF itab_zyglt321-cpocb = 'SBU'.

            itab_zycbe035-c_zuonr = wa_zycbt124-sbu.

          ELSEIF itab_zyglt321-cpocb = 'TPIMP'.

            itab_zycbe035-c_zuonr = p_tpimp.

          ELSEIF itab_zyglt321-cpocb IS INITIAL AND

                 NOT itab_zyglt321-descr IS INITIAL.

            itab_zycbe035-c_zuonr = itab_zyglt321-descr.

          ENDIF.

      ENDCASE.

    ENDLOOP.

 

    IF NOT p_recontabiliza IS INITIAL AND

       itab_zycbt141-nrseq NE itab_zycat025-nrseq.

      CONTINUE.

    ENDIF.

 

    APPEND itab_zycbe035.

 

  ENDLOOP.

 

*<<Inicio inclusão>>

* Carrega vlr da última partida a ser lançada

  DESCRIBE TABLE itab_zycbe035 LINES v_line.

  READ TABLE itab_zycbe035 INDEX v_line.

 

* Se o total das partidas for maior que o total do item, tira

* diferença da última partida, subtraindo o valor

  IF v_total > itab_dados_tc-vlme.

*   Recalcula Valor em MI, diminuindo o último rateio

    v_total_mi = v_total_mi - ( itab_zycbe035-wrbtr *

                                itab_dados_tc-kursf ).

*   Recalcula Valor em ME

    v_dif               = v_total             - itab_dados_tc-vlme.

    itab_zycbe035-wrbtr = itab_zycbe035-wrbtr - v_dif.

    MODIFY itab_zycbe035 INDEX v_line.

*   Recalcula Valor em MI, somando o último rateio

    v_total_mi = v_total_mi + ( itab_zycbe035-wrbtr *

                                itab_dados_tc-kursf ).

 

* Se o total das partidas for menor que o total do item, joga

* diferença na última partida, somando o valor

  ELSEIF v_total < itab_dados_tc-vlme.

*   Recalcula Valor em MI, diminuindo o último rateio

    v_total_mi = v_total_mi - ( itab_zycbe035-wrbtr *

                                itab_dados_tc-kursf ).

*   Recalcula Valor em ME

    v_dif               = itab_dados_tc-vlme  - v_total.

    itab_zycbe035-wrbtr = itab_zycbe035-wrbtr + v_dif.

    MODIFY itab_zycbe035 INDEX v_line.

*   Recalcula Valor em MI, somando o último rateio

    v_total_mi = v_total_mi + ( itab_zycbe035-wrbtr *

                                itab_dados_tc-kursf ).

  ENDIF.

 

* Se valor total mi do rateio for maior que o valor mi já calculado,

* assume o valor total mi do rateio

  IF NOT itab_dados_tc-vlmi IS INITIAL AND

     itab_dados_tc-vlmi     < v_total_mi.

    itab_dados_tc-vlmi = v_total_mi.

    MODIFY itab_dados_tc TRANSPORTING vlmi WHERE tpimp = p_tpimp.

 

    IF p_tpimp                 = 'PRINCIPAL'.

      /pws/zycbe031-vlmi       = v_total_mi.

    ELSEIF p_tpimp             = 'IRRF'.

      /pws/zycbe031-vlmiir     = v_total_mi.

    ELSEIF p_tpimp             = 'CIDE'.

      /pws/zycbe031-vlmicide   = v_total_mi.

    ELSEIF p_tpimp             = 'PIS'.

      /pws/zycbe145-vlmipis    = v_total_mi.

    ELSEIF p_tpimp             = 'COFINS'.

      /pws/zycbe145-vlmicofins = v_total_mi.

    ELSEIF p_tpimp             = 'ISS'.

      /pws/zycbe145-vlmiiss    = v_total_mi.

    ELSEIF p_tpimp             = 'IOF'.

      /pws/zycbe145-vlmiiof    = v_total_mi.

    ENDIF.

 

  ENDIF.

*<<Fim inclusão>>

 

ENDFORM.                    " lancamento_multiplo

 

 

 

 

 

Contexto: FORM grava_reg_compet_cp USING p_tpimp.

 

  IF p_tpimp = 'PRINCIPAL'.

    itab_zycbt124_aux-statusp   = 'C'.

    /pws/zycbe031-statusp       = 'C'.

    IF NOT itab_zycbt124_aux-belnr_f51p IS INITIAL.

      /pws/zycbe031-belnr_p     = itab_zycbt124_aux-belnr_f51p.

    ELSE.

      /pws/zycbe031-belnr_p     = itab_zycbt124_aux-belnr.

    ENDIF.

    IF /pws/zycbe031-belnr_p IS INITIAL.

      erro_bi = 'X'.

    ENDIF.

    UPDATE /pws/zycbt124 SET statusp  = itab_zycbt124_aux-statusp

                         WHERE nrseq  = itab_zycbt124_aux-nrseq.

*<<Inicio inclusão>>

*   Se é competência e mesma taxa, verifica se valor mi do documento

*   contábil é igual ao valor calculado no complemento do boleto.Se não,

*   assume valor correto.

    CLEAR v_total_mi.

    LOOP AT itab_zycbt124_aux.

      SELECT SINGLE dmbtr FROM bseg INTO bseg-dmbtr

                    WHERE bukrs = itab_zycbt124_aux-bukrs

                      AND belnr = itab_zycbt124_aux-belnr

                      AND gjahr = itab_zycbt124_aux-dtdocto(4)

                      AND shkzg = 'H'.

      IF sy-subrc = 0.

        v_total_mi = v_total_mi + bseg-dmbtr.

      ENDIF.

*     Verifica se taxa do boleto é igual a do documento de provisão

      SELECT SINGLE kursf FROM bkpf INTO bkpf-kursf

                    WHERE bukrs = itab_zycbt124_aux-bukrs

                      AND belnr = itab_zycbt124_aux-belnr

                      AND gjahr = itab_zycbt124_aux-dtdocto(4).

      IF sy-subrc = 0 AND bkpf-kursf NE /pws/zycbe031-kursf.

        CLEAR v_total_mi.

        EXIT.

      ENDIF.

    ENDLOOP.

    IF NOT /pws/zycbe031-vlmi IS INITIAL   AND

       NOT v_total_mi         IS INITIAL   AND

           /pws/zycbe031-vlmi < v_total_mi.

      /pws/zycbe031-vlmi = v_total_mi.

      itab_dados_tc-vlmi = v_total_mi.

      MODIFY itab_dados_tc TRANSPORTING vlmi WHERE tpimp = p_tpimp.

    ENDIF.

*<<Fim inclusão>>

  ELSEIF p_tpimp = 'IRRF'.

*   Se Pgto IRRF for 'BCO', compensa lançamento na empresa e lança

*   no Banco

    IF itab_dados_tc-pagtoirrf = 'BCO'.

      IF v_cont_irrf_bco = ' ' AND /pws/zycbe031-belnr_pi IS INITIAL.

        PERFORM compensa_empresa_cp USING p_tpimp.

      ENDIF.

    ELSE.

      /pws/zycbe031-statuspi   = 'C'.

      /pws/zycbe031-belnr_pi   = itab_zycat025-belnr_pr.

    ENDIF.

    IF /pws/zycbe031-belnr_pi     IS INITIAL AND

       NOT itab_zycat024-cont_imp IS INITIAL.

      erro_bi = 'X'.

    ENDIF.

 

*<<Inicio inclusão>>

*   Se é competência e mesma taxa, verifica se valor mi do documento

*   contábil é igual ao valor calculado no complemento do boleto.Se não,

*   assume valor correto.

    CLEAR v_total_mi.

    LOOP AT itab_zycat025 WHERE tpimp = p_tpimp.

      SELECT SINGLE dmbtr FROM bseg INTO bseg-dmbtr

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4)

                      AND shkzg = 'H'.

      IF sy-subrc = 0.

        v_total_mi = v_total_mi + bseg-dmbtr.

      ENDIF.

*     Verifica se taxa do boleto é igual a do documento de provisão

      SELECT SINGLE kursf FROM bkpf INTO bkpf-kursf

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4).

      IF sy-subrc = 0 AND bkpf-kursf NE /pws/zycbe031-taxair.

        CLEAR v_total_mi.

        EXIT.

      ENDIF.

    ENDLOOP.

    IF NOT /pws/zycbe031-vlmiir IS INITIAL AND

       NOT v_total_mi           IS INITIAL AND

           /pws/zycbe031-vlmiir < v_total_mi.

      /pws/zycbe031-vlmiir = v_total_mi.

      itab_dados_tc-vlmi   = v_total_mi.

      MODIFY itab_dados_tc TRANSPORTING vlmi WHERE tpimp = p_tpimp.

    ENDIF.

*<<Fim inclusão>>

 

  ELSEIF p_tpimp = 'CIDE'.

*   Chamado 228517 - Renato - 26.04.2005 - Inicio

    IF itab_dados_tc-pagtoirrf = 'BCO'.

      IF v_cont_cide_bco = ' ' AND /pws/zycbe031-belnr_cide IS INITIAL.

        PERFORM compensa_empresa_cp USING p_tpimp.

      ENDIF.

    ELSE.

      /pws/zycbe031-statuspc   = 'C'.

      /pws/zycbe031-belnr_cide = itab_zycat025-belnr_pr.

    ENDIF.

*   Chamado 228517 - Renato - 26.04.2005 - Fim

    IF /pws/zycbe031-belnr_cide   IS INITIAL AND

       NOT itab_zycat024-cont_imp IS INITIAL.

      erro_bi = 'X'.

    ENDIF.

 

*<<Inicio inclusão>>

*   Se é competência e mesma taxa, verifica se valor mi do documento

*   contábil é igual ao valor calculado no complemento do boleto.Se não,

*   assume valor correto.

    CLEAR v_total_mi.

    LOOP AT itab_zycat025 WHERE tpimp = p_tpimp.

      SELECT SINGLE dmbtr FROM bseg INTO bseg-dmbtr

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4)

                      AND shkzg = 'H'.

      IF sy-subrc = 0.

        v_total_mi = v_total_mi + bseg-dmbtr.

      ENDIF.

*     Verifica se taxa do boleto é igual a do documento de provisão

      SELECT SINGLE kursf FROM bkpf INTO bkpf-kursf

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4).

      IF sy-subrc = 0 AND bkpf-kursf NE /pws/zycbe031-taxacide.

        CLEAR v_total_mi.

        EXIT.

      ENDIF.

    ENDLOOP.

    IF NOT /pws/zycbe031-vlmicide IS INITIAL AND

       NOT v_total_mi             IS INITIAL AND

           /pws/zycbe031-vlmicide < v_total_mi.

      /pws/zycbe031-vlmicide = v_total_mi.

      itab_dados_tc-vlmi     = v_total_mi.

      MODIFY itab_dados_tc TRANSPORTING vlmi WHERE tpimp = p_tpimp.

    ENDIF.

*<<Fim inclusão>>

  ELSEIF p_tpimp = 'IOF'.

    /pws/zycbe145-belnr_iof    = itab_zycat025-belnr_pr.

    IF /pws/zycbe145-belnr_iof    IS INITIAL AND

       NOT itab_zycat024-cont_imp IS INITIAL.

      erro_bi = 'X'.

    ENDIF.

*<<Inicio inclusão>>

*   Se é competência e mesma taxa, verifica se valor mi do documento

*   contábil é igual ao valor calculado no complemento do boleto.Se não,

*   assume valor correto.

    CLEAR v_total_mi.

    LOOP AT itab_zycat025 WHERE tpimp = p_tpimp.

      SELECT SINGLE dmbtr FROM bseg INTO bseg-dmbtr

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4)

                      AND shkzg = 'H'.

      IF sy-subrc = 0.

        v_total_mi = v_total_mi + bseg-dmbtr.

      ENDIF.

*     Verifica se taxa do boleto é igual a do documento de provisão

      SELECT SINGLE kursf FROM bkpf INTO bkpf-kursf

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4).

      IF sy-subrc = 0 AND bkpf-kursf NE /pws/zycbe145-taxaiof.

        CLEAR v_total_mi.

        EXIT.

      ENDIF.

    ENDLOOP.

    IF NOT /pws/zycbe145-vlmiiof IS INITIAL AND

       NOT v_total_mi            IS INITIAL AND

           /pws/zycbe145-vlmiiof < v_total_mi.

      /pws/zycbe145-vlmiiof = v_total_mi.

      itab_dados_tc-vlmi    = v_total_mi.

      MODIFY itab_dados_tc TRANSPORTING vlmi WHERE tpimp = p_tpimp.

    ENDIF.

*<<Fim inclusão>>

  ELSEIF p_tpimp = 'ISS'.

    /pws/zycbe145-belnr_iss    = itab_zycat025-belnr_pr.

    IF /pws/zycbe145-belnr_iss    IS INITIAL AND

       NOT itab_zycat024-cont_imp IS INITIAL.

      erro_bi = 'X'.

    ENDIF.

*<<Inicio inclusão>>

*   Se é competência e mesma taxa, verifica se valor mi do documento

*   contábil é igual ao valor calculado no complemento do boleto.Se não,

*   assume valor correto.

    CLEAR v_total_mi.

    LOOP AT itab_zycat025 WHERE tpimp = p_tpimp.

      SELECT SINGLE dmbtr FROM bseg INTO bseg-dmbtr

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4)

                      AND shkzg = 'H'.

      IF sy-subrc = 0.

        v_total_mi = v_total_mi + bseg-dmbtr.

      ENDIF.

*     Verifica se taxa do boleto é igual a do documento de provisão

      SELECT SINGLE kursf FROM bkpf INTO bkpf-kursf

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4).

      IF sy-subrc = 0 AND bkpf-kursf NE /pws/zycbe145-taxaiss.

        CLEAR v_total_mi.

        EXIT.

      ENDIF.

    ENDLOOP.

    IF NOT /pws/zycbe145-vlmiiss IS INITIAL AND

       NOT v_total_mi            IS INITIAL AND

           /pws/zycbe145-vlmiiss < v_total_mi.

      /pws/zycbe145-vlmiiss = v_total_mi.

      itab_dados_tc-vlmi    = v_total_mi.

      MODIFY itab_dados_tc TRANSPORTING vlmi WHERE tpimp = p_tpimp.

    ENDIF.

*<<Fim inclusão>>

  ELSEIF p_tpimp = 'PIS'.

    /pws/zycbe145-belnr_pis    = itab_zycat025-belnr_pr.

    IF /pws/zycbe145-belnr_pis    IS INITIAL AND

       NOT itab_zycat024-cont_imp IS INITIAL.

      erro_bi = 'X'.

    ENDIF.

*<<Inicio inclusão>>

*   Se é competência e mesma taxa, verifica se valor mi do documento

*   contábil é igual ao valor calculado no complemento do boleto.Se não,

*   assume valor correto.

    CLEAR v_total_mi.

    LOOP AT itab_zycat025 WHERE tpimp = p_tpimp.

      SELECT SINGLE dmbtr FROM bseg INTO bseg-dmbtr

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4)

                      AND shkzg = 'H'.

      IF sy-subrc = 0.

        v_total_mi = v_total_mi + bseg-dmbtr.

      ENDIF.

*     Verifica se taxa do boleto é igual a do documento de provisão

      SELECT SINGLE kursf FROM bkpf INTO bkpf-kursf

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4).

      IF sy-subrc = 0 AND bkpf-kursf NE /pws/zycbe145-taxapis.

        CLEAR v_total_mi.

        EXIT.

      ENDIF.

    ENDLOOP.

    IF NOT /pws/zycbe145-vlmipis IS INITIAL AND

       NOT v_total_mi            IS INITIAL AND

           /pws/zycbe145-vlmipis < v_total_mi.

      /pws/zycbe145-vlmipis = v_total_mi.

      itab_dados_tc-vlmi    = v_total_mi.

      MODIFY itab_dados_tc TRANSPORTING vlmi WHERE tpimp = p_tpimp.

    ENDIF.

*<<Fim inclusão>>

  ELSEIF p_tpimp = 'COFINS'.

    /pws/zycbe145-belnr_cofins = itab_zycat025-belnr_pr.

    IF /pws/zycbe145-belnr_cofins IS INITIAL AND

       NOT itab_zycat024-cont_imp IS INITIAL.

      erro_bi = 'X'.

    ENDIF.

*<<Inicio inclusão>>

*   Se é competência e mesma taxa, verifica se valor mi do documento

*   contábil é igual ao valor calculado no complemento do boleto.Se não,

*   assume valor correto.

    CLEAR v_total_mi.

    LOOP AT itab_zycat025 WHERE tpimp = p_tpimp.

      SELECT SINGLE dmbtr FROM bseg INTO bseg-dmbtr

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4)

                      AND shkzg = 'H'.

      IF sy-subrc = 0.

        v_total_mi = v_total_mi + bseg-dmbtr.

      ENDIF.

*     Verifica se taxa do boleto é igual a do documento de provisão

      SELECT SINGLE kursf FROM bkpf INTO bkpf-kursf

                    WHERE bukrs = itab_zycat025-bukrs

                      AND belnr = itab_zycat025-belnr_pr

                      AND gjahr = itab_zycat025-dtlanc(4).

      IF sy-subrc = 0 AND bkpf-kursf NE /pws/zycbe145-taxacofins.

        CLEAR v_total_mi.

        EXIT.

      ENDIF.

    ENDLOOP.

    IF NOT /pws/zycbe145-vlmicofins IS INITIAL AND

       NOT v_total_mi               IS INITIAL AND

           /pws/zycbe145-vlmicofins < v_total_mi.

      /pws/zycbe145-vlmicofins = v_total_mi.

      itab_dados_tc-vlmi       = v_total_mi.

      MODIFY itab_dados_tc TRANSPORTING vlmi WHERE tpimp = p_tpimp.

    ENDIF.

*<<Fim inclusão>>

  ENDIF.

 

  MODIFY /pws/zycbt031 FROM /pws/zycbe031.

  MODIFY /pws/zycbt145 FROM /pws/zycbe145.

 

ENDFORM.                    " grava_reg_compet_cp

 

 

 

 

 

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

Modificações efetuadas em REPS /PWS/MZYGL110TOP

 

...

 

***---Variáveis p/ impressão de boleto-------------------------------***

DATA:

      v_taxa_dia      LIKE tcurr-ukurs,

      v_nrparc        LIKE /pws/zycbt113-nrparc,

      v_waers         LIKE /pws/zycbt112-waers,

      v_tipo2(30)     TYPE c,

      v_modifica,

      v_vlme          LIKE /pws/zycbt112-vlme,

      v_vlusd         LIKE /pws/zycbt112-vlme,

      v_vlbrl         LIKE /pws/zycbt112-vlme,

      v_vlmeaux       LIKE /pws/zycbt112-vlme,

      v_vlmiaux       LIKE /pws/zycbt031-vlmi,

      v_vlmiiraux     LIKE /pws/zycbt031-vlmiir,

      v_statuspg      LIKE /pws/zycbt031-statuspg,

      v_vrmn     LIKE /pws/zycbt031-vlme,

      v_taxa_kursf       LIKE /pws/zycbt031-kursf,

      v_est_aprov,

      v_resp,                         "resposta para deleção

*     Variáveis utilizadas na impressão do boleto para agrupamento

      v_nrchave(60)   TYPE c,

      v_docto(60)     TYPE c,

      v_lifnr2(80)    TYPE c,

      v_total         LIKE /pws/zycbt064-vlme,

*<<Inicio inclusão>>

      v_total_mi      LIKE /pws/zycbt064-vlme,

*<<Fim inclusão>>

      v_linhas        TYPE i,

      v_exec_f51(01)  TYPE c,

      v_linha2        TYPE i,

      v_cod_fech_aux  LIKE /pws/zygle326-cod_fech,

      v_area          LIKE /pws/zycbt119-cod_area,

      v_codaux3 LIKE /pws/zyglt316-codaux3,

      v_subtela(4)   TYPE n,

      v_date2 LIKE   sy-datum,

*     Chamado 236079 - Início - Fábio Kazuo Hatanaka - 06.06.2005

*     Variáveis para a EXIT

      v_repid       LIKE sy-repid,

      v_cod_mod     TYPE c VALUE 'E',

      v_exit        LIKE /pws/zyglt100-zexit VALUE 'PBE002'.

*     Chamado 236079 - Início - Fábio Kazuo Hatanaka - 06.06.2005

 

* Chamado 225446 - Renato Mendes - Início

DATA: v_dias(2)       TYPE c,

      v_dia_semana    TYPE p,

      v_feriado       TYPE c,

      v_data_mes      LIKE sy-datum.

 

...