Módulo: CÂMBIO FINANCEIRO
Funcionalidade: Rotina de Pagamento
Data/Hora da Publicação: 06/09/2006 00:00:00
Data/Hora Última Alteração: 18/02/2011 13:28:16
Descrição da Nota: COMPLEMENTO DO BOLETO REMESSA - IMPRESSÃO - VALOR MI
Sintoma
Ao imprimir um boleto de remessa, no programa complemento do boleto, tanto na tela de seleção, como
na tela do boleto, os valores de impostos não aparecem corretos.
Ao efetuar a F-43 no complemento do boleto de uma remessa regime de caixa, os valores em MI estão
sendo enviados ao batch-input total e não rateados pelo valor da partida, ocorrendo erro na
geração do documento contábil.
Solução
Para a impressão, fazer a soma de cada imposto e enviar as variáveis correspondentes do programa
/pws/zycbr105.
Para a contabilização da F-43, ajustar na própria função o mapeamento do valor MI pela t_debito e
não pela t_dados, quando esta lançando as partidas em débito
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02061 Data: 06/09/2006 Hora: 14:38:18
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02061
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00024
Agrupamento : 00130
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
00097 - 00001 - 6.0 - 00021 - IMPRESSÃO COMPLEMENTO DO BOLETO DE REMESSA COM IMPOSTOS
02024 - 00002 - 6.0 - 00024 - COMPLEMENTO DO BOLETO REMESSA FINANCEIRA ALTERAÇÃO VALOR MI F-43
----------------------------------------------------------------------------------------------------
COMPLEMENTO DO BOLETO REMESSA - IMPRESSÃO - VALOR MI
----------------------------------------------------------------------------------------------------
Palavras Chave:
COMPLEMENTO DO BOLETO REMESSA IMPRESSÃO BOLETO VALOR MI
F-43 ERRO BATCH INPUT /PWS/ZYCBR105 /PWS/ZYCB110
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCB_TRANSACAO_F_43
REPS /PWS/MZYCA110F01
REPS /PWS/MZYGL110F01
REPS /PWS/MZYGL110TOP
REPS /PWS/ZYCBR105
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCB_TRANSACAO_F_43
...
CLEAR v_conta.
SELECT akont
INTO v_conta
FROM lfb1
WHERE lifnr = v_newko_aux.
ENDSELECT.
ELSE.
v_conta = t_dados-c_newko.
ENDIF.
* Determina string de campos de credito
IF t_dados-newbs = '31' "Crédito Fornecedor
* >> Início da inclusão:
OR t_dados-newbs = '50'. "Crédito Razão
* >> Fim da inclusão
PERFORM determina_string USING t_dados-newbs
t_dados-bukrs
v_conta
CHANGING v_string_credito.
* Verificando se campos obrigatórios estão preenchidos
CLEAR itab_oculto.
REFRESH itab_oculto.
PERFORM trata_string_credito TABLES t_dados
t_campo
itab_oculto
USING v_string_credito.
ELSEIF t_dados-newbs = '21'. "Débito Fornecedor
PERFORM determina_string USING t_dados-newbs
t_dados-bukrs
v_conta
CHANGING v_string_debito.
...
READ TABLE itab_oculto WITH KEY campo = 'COBL-GSBER'
chave = v_deb_cred.
IF sy-subrc <> 0 AND NOT t_dados-c_gsber IS INITIAL.
PERFORM bdc_field USING 'BSEG-GSBER' t_dados-c_gsber.
ENDIF.
ELSEIF t_dados-newbs = '50' OR t_dados-newbs = '40'.
SELECT SINGLE * FROM tbsl
INTO wa_tbsl
WHERE bschl = t_debito-bschl.
*Verifica se o lançamento é S-Débito ou H-Crédito
* >> Início da exclusão:
* IF wa_tbsl-shkzg EQ 'S'.
* v_deb_cred = 'D'. "Débito
* ELSE.
* v_deb_cred = 'C'. "Crédito
* ENDIF.
* >> Fim da exclusão
* >> Início da inclusão:
IF t_dados-newbs = '40'.
v_deb_cred = 'D'. "Débito
ELSE.
v_deb_cred = 'C'. "Crédito
ENDIF.
* >> Fim da inclusão
* >> Início da exclusão:
* Determina string de campos de credito
* CLEAR itab_oculto. REFRESH itab_oculto.
* IF v_deb_cred = 'C'. "Crédito Fornecedor
* PERFORM determina_string USING t_debito-bschl
* t_dados-bukrs
* t_debito-c_newko
* CHANGING v_string_credito.
*
** Verificando se campos obrigatórios estão preenchidos
* PERFORM trata_string_credito3 TABLES t_debito
* t_campo
* itab_oculto
* USING v_string_credito.
* ELSE. "Débito Fornecedor
* PERFORM determina_string USING t_debito-bschl
* t_dados-bukrs
* t_debito-d_newko
* CHANGING v_string_debito.
*
** Verificando se campos obrigatórios estão preenchidos
* PERFORM trata_string_debito3 TABLES t_debito
* t_campo
* itab_oculto
* USING v_string_debito.
* .
* ENDIF.
* >> Fim da exclusão:
PERFORM bdc_screen USING 'SAPMF05A' '0300'.
PERFORM bdc_field USING:
'BSEG-WRBTR' v_wrbtr, "Montante
'BSEG-ZUONR' t_dados-c_zuonr, "Atribuição
'BSEG-DMBTR' v_dmbtr,
'RF05A-NEWBS' t_debito-bschl, "chave de lancto.
'RF05A-NEWKO' t_debito-d_newko, "Conta
'BDC_CURSOR' 'RF05A-NEWKO',
'BDC_OKCODE' '/00'.
...
WRITE: t_debito-wrbtr TO v_wrbtr CURRENCY t_dados-waers.
ELSE.
WRITE: t_debito-wrbtr TO v_wrbtr DECIMALS tcurx-currdec
CURRENCY t_dados-waers.
ENDIF.
* >> Início da exclusão:
WRITE: t_dados-dmbtr TO v_dmbtr CURRENCY t_dados-waersb.
* << Fim da exclusão
* >> Início da inclusão:
WRITE: t_debito-dmbtr TO v_dmbtr CURRENCY t_dados-waersb.
* << Fim da inclusão
PERFORM bdc_screen USING 'SAPMF05A' '0300'.
ELSEIF t_debito-bschl = '29'.
v_tamanho = strlen( t_debito-d_newko ).
MOVE t_debito-d_newko TO v_newko.
WRITE v_newko TO v_newko_aux RIGHT-JUSTIFIED.
...
...
WRITE: t_debito-wrbtr TO v_wrbtr CURRENCY t_dados-waers.
ELSE.
WRITE: t_debito-wrbtr TO v_wrbtr DECIMALS tcurx-currdec
CURRENCY t_dados-waers.
ENDIF.
* >> Início da exclusão:
WRITE: t_dados-dmbtr TO v_dmbtr CURRENCY t_dados-waersb.
* << Fim da exclusão
* >> Início da inclusão:
WRITE: t_debito-dmbtr TO v_dmbtr CURRENCY t_dados-waersb.
* << Fim da inclusão
IF NOT t_dados-zfbdt = '00000000' AND
NOT t_dados-zfbdt = ' '.
WRITE: t_dados-zfbdt TO v_database.
ENDIF.
PERFORM bdc_screen USING 'SAPMF05A' '0303'.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCA110F01
...
APPEND itab_boleto.
ENDLOOP.
CLEAR: v_tipo2, v_taxa_dia, itab_zycbt129, /pws/zycbt128, itab_boleto.
ENDFORM.
FORM selecionar_pagto_cfinan.
* >> Início da inclusão: FORM SELECIONAR_PAGTO_CFINAN
IF itab_zycbt124[] IS INITIAL.
IF itab_zycbt064[] IS INITIAL.
SELECT * FROM /pws/zycbt064
INTO TABLE itab_zycbt064
WHERE nrboleto = /pws/zycbe031-nrseq.
ENDIF.
IF NOT itab_zycbt064[] IS INITIAL.
* << Fim da inclusão
SELECT * FROM /pws/zycbt124
INTO TABLE itab_zycbt124
* >> Início da exclusão: FORM SELECIONAR_PAGTO_CFINAN
WHERE nrseq EQ itab_zycbt031-nrcorresp.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_PAGTO_CFINAN
FOR ALL ENTRIES IN itab_zycbt064
WHERE nrseq = itab_zycbt064-nrchave.
IF itab_zycat025[] IS INITIAL AND NOT itab_zycbt124[] IS INITIAL.
SELECT * FROM /pws/zycat025
INTO TABLE itab_zycat025
FOR ALL ENTRIES IN itab_zycbt124
WHERE bukrs EQ itab_zycbt124-bukrs
AND nrseq EQ itab_zycbt124-nrseq.
ENDIF.
ENDIF.
ENDIF.
CLEAR: v_vlir, v_vlcide, v_vliof, v_vliss, v_vlpis, v_vlcofins.
* << Fim da inclusão
LOOP AT itab_zycbt124.
SELECT SINGLE * FROM /pws/zycbt125
WHERE codpagto = itab_zycbt124-codpagto.
IF itab_zycbt124-tpoper = 'P'.
CONCATENATE text-055 /pws/zycbt125-descricao INTO v_tipo2
SEPARATED BY space.
* >> Início da exclusão: FORM SELECIONAR_PAGTO_CFINAN
IF itab_zycat025[] IS INITIAL.
SELECT *
FROM /pws/zycat025
INTO TABLE itab_zycat025
WHERE
bukrs EQ itab_zycbt124-bukrs AND
nrseq EQ itab_zycbt124-nrseq.
ENDIF.
LOOP AT itab_zycat025.
* << Fim da exclusão
* >> Início da inclusão: FORM SELECIONAR_PAGTO_CFINAN
LOOP AT itab_zycat025 WHERE nrseq = itab_zycbt124-nrseq.
* << Fim da inclusão
IF itab_zycat025-tpimp(4) = 'CIDE'.
PERFORM verifica_casas_decimais
USING
itab_zycat025-vlimpme
itab_zycbt124-waers
...
...
itab_zycbt124-recrem TO itab_boleto-lifnr,
itab_zycbt124-txtinf TO itab_boleto-txtinf,
'N' TO itab_boleto-frof,
'CP' TO itab_boleto-fmd.
APPEND itab_boleto.
* >> Início da inclusão: FORM SELECIONAR_PAGTO_CFINAN
v_vlir = v_vlir + itab_boleto-vlir.
v_vlcide = v_vlcide + itab_boleto-vlcide.
v_vliof = v_vliof + itab_boleto-vliof.
v_vliss = v_vliss + itab_boleto-vliss.
v_vlpis = v_vlpis + itab_boleto-vlpis.
v_vlcofins = v_vlcofins + itab_boleto-vlcofins.
* << Fim da inclusão
ENDLOOP.
CLEAR: v_tipo2, v_taxa_dia, itab_zycbt124, /pws/zycbt125, itab_boleto.
ENDFORM.
FORM executa_clearing_emp.
DATA: v_codeven LIKE /pws/zycbt011-codeven,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYGL110F01
...
EXPORT v_total TO MEMORY ID '006'.
EXPORT v_lifnr2 TO MEMORY ID '010'.
EXPORT itab_nrpgfat TO MEMORY ID '093'.
EXPORT itab_selreg TO MEMORY ID 'E011'.
ENDIF.
* >> Início da inclusão: FORM IMPRIME_BOLETO
EXPORT: v_vlir TO MEMORY ID '007' ,
v_vlcide TO MEMORY ID '008' ,
v_vliof TO MEMORY ID 'I001',
v_vliss TO MEMORY ID 'I002',
v_vlpis TO MEMORY ID 'I003',
v_vlcofins TO MEMORY ID 'I004'.
* << Fim da inclusão
EXPORT itab_tline[] TO MEMORY ID 'E020'.
EXPORT wa_line TO MEMORY ID 'E021'.
EXPORT /pws/zycbt031 TO MEMORY ID 'E022'.
EXPORT /pws/zycbt124 TO MEMORY ID 'E023'.
DATA: v_nrpgfat LIKE /pws/zycbt119-nrseq,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYGL110TOP
...
v_meiopagc(22) TYPE c,
v_tpfecha(10) TYPE c,
v_vlme_me LIKE /pws/zycbt031-vlme,
v_vlir LIKE /pws/zycbt031-vlir,
v_vlcide LIKE /pws/zycbt031-vlcide,
* >> Início da inclusão:
v_vlpis TYPE /pws/zycbt031-vlme,
v_vlcofins TYPE /pws/zycbt031-vlme,
v_vliss TYPE /pws/zycbt031-vlme,
v_vliof TYPE /pws/zycbt031-vlme,
* << Fim da inclusão
v_belnr_cide LIKE /pws/zycbt134-belnr_cide,
v_taxa_alter_p(1) TYPE c,
v_taxa_alter_i(1) TYPE c,
v_taxa_alter_c(1) TYPE c,
v_bco(30) TYPE c,
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/ZYCBR105
...
SKIP.
IF wa_line-fmd EQ 'CP'.
WRITE 02 text-043.
SKIP.
IF NOT v_nrchave IS INITIAL.
* >> Início da exclusão: FORM BOLETO_COMPRA
WRITE: /02 text-047, 18 v_vliss CURRENCY wa_line-waers,
* << Fim da exclusão
* >> Início da inclusão: FORM BOLETO_COMPRA
WRITE: /02 text-087, 18 v_vliss CURRENCY wa_line-waers,
* << Fim da inclusão
45 text-044, 64 v_vlir CURRENCY wa_line-waers.
WRITE: /02 text-088, 18 v_vlpis CURRENCY wa_line-waers,
45 text-089, 64 v_vlcofins CURRENCY wa_line-waers.
WRITE: /02 text-090, 18 v_vlcide CURRENCY wa_line-waers.
* >> Início da inclusão: FORM BOLETO_COMPRA
skip.
* << Fim da inclusão
ELSE.
WRITE: /02 text-087, 18 wa_line-vliss CURRENCY wa_line-waers,
45 text-044, 64 wa_line-vlir CURRENCY wa_line-waers.
WRITE: /02 text-088, 18 wa_line-vlpis CURRENCY wa_line-waers,
45 text-089, 64 wa_line-vlcofins CURRENCY wa_line-waers.
...