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