Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Custo Efetivo
Data/Hora da Publicação: 08/11/2006 00:00:00
Data/Hora Última Alteração: 22/02/2011 14:34:19
Descrição da Nota: FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO
Sintoma
Após lançar a Fatura (com pagamento à vista) e após efetuar o Recebimento, eu tentei visualizar o
Custo Efetivo, na coluna de Realizado não havia nenhum valor lançado.
Na dúvida, lancei uma Prestação de Contas para tentar visualizar a despesa no Realizado, mas também
nenhum valor apareceu (a despesa lançada na prest. de contas está parametrizada na zycit140 para
entrar no custo na Prestação de Contas).
Solução
atualizado o programa para tratar fatura de despesas com embarque modalidade 2 serviço
6.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 02396 Data: 08/11/2006 Hora: 10:54:26
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 02396
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 6.0
Pacote : 00025
Agrupamento : 00139
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01417 - 00001 - 6.0 - 00023 - AGREGAR OS CUSTOS EFETIVOS DA ADMISSÃO NA NACIONALIZAÇÃO DA MERCA
01422 - 00002 - 6.0 - 00023 - VALOR QUE FOI LEVADO PARA O ENCER. DE CUSTOS ESTA MAIOR DO QUE DE
01438 - 00003 - 6.0 - 00023 - ERRO NA EXIBIÇÃO DO ENCERRAMENTO DE PROCESSO SEM EURO
01771 - 00004 - 6.0 - 00024 - NA ADMISSÃO EM ENTREPOSTO, NO RECEBIMENTO NÃO CHAMAR A TRANSAÇÃO
----------------------------------------------------------------------------------------------------
FATURA DE DESPESA PARA EMBARQUES DE SERVIÇO
----------------------------------------------------------------------------------------------------
Palavras Chave:
FATURA - DESPESA - SERVIÇO - CUSTO
----------------------------------------------------------------------------------------------------
Objetos da nota:
FUNC /PWS/ZYCI_RATEIO_CUSTO
REPS /PWS/MZYCI003F01
REPS /PWS/MZYCI003F02
REPS /PWS/MZYCI003O01
REPS /PWS/MZYCI010F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em FUNC /PWS/ZYCI_RATEIO_CUSTO
...
vltot_pis LIKE /pws/zycit036-vlreal,
vl_pis LIKE /pws/zycit036-vlreal,
vltot_cofins LIKE /pws/zycit036-vlreal,
vl_cofins LIKE /pws/zycit036-vlreal,
v_vlseg LIKE /pws/zycit036-vlreal.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
DATA: v_vinserv TYPE /pws/zycit006-vinserv.
* << Fim da inclusão
IF NOT itab_zycit003[] IS INITIAL.
MOVE itab_zycit003[] TO itab_zycit003_aux[].
IF NOT itab_zycit003_aux[] IS INITIAL.
SELECT * FROM /pws/zycit003
INTO TABLE itab_zycit003
...
...
SELECT SINGLE * FROM /pws/zycit085
WHERE nrbl = /pws/zycit094-nrseqce.
SELECT * FROM /pws/zycit100
INTO TABLE itab_zycit100a
WHERE nrseqdi = /pws/zycit085-nrseqdi.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IMPORT v_vinserv FROM MEMORY ID 'VINSERV'.
* << Fim da inclusão
IF v_programa = 'DI' AND itab_zycit100a[] IS INITIAL.
LOOP AT itab_zycit100.
MOVE itab_zycit100 TO itab_zycit100a.
CLEAR itab_zycit100a-vl_sisco.
APPEND itab_zycit100a.
ENDLOOP.
ENDIF.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
LOOP AT itab_zycit003 WHERE servico IS initial.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
LOOP AT itab_zycit003 .
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
* << Fim da inclusão
v_tpeso = v_tpeso + itab_zycit003-ntgew.
v_valor = itab_zycit003-qtd_iten * itab_zycit003-vlreal.
IF NOT v_valor IS INITIAL AND NOT v_tvalor IS INITIAL.
v_tseg = v_valor / v_tvalor.
ENDIF.
v_seg = v_seg + v_valor.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
ENDLOOP.
CLEAR: v_tfrete,
v_ori.
SELECT SINGLE land1 FROM t001 INTO t001-land1
WHERE bukrs EQ /pws/zycbt007-bukrs.
...
...
LOOP AT itab_zycit036_aux WHERE codigo = 'FRETEI' AND
origem = v_ori.
v_tfrete = v_tfrete + itab_zycit036_aux-vlreal.
ENDLOOP.
ENDIF.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
LOOP AT itab_zycit003 .
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
* << Fim da inclusão
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
LOOP AT itab_zycit003 WHERE servico IS initial.
* << Fim da exclusão
v_vlfrete = v_tfrete * ( itab_zycit003-ntgew / v_tpeso ).
IF itab_zycit003-qtd_itend IS INITIAL.
v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_iten ).
ELSE.
v_tot = v_tot + ( itab_zycit003-netpr * itab_zycit003-qtd_itend ).
ENDIF.
v_tot_vlreal = v_tot_vlreal + ( itab_zycit003-vlreal *
itab_zycit003-qtd_iten ).
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
ENDLOOP.
LOOP AT itab_zycit100a.
IF itab_zycit100a-codregtri NE '5' AND
itab_zycit100a-codregtri NE '3'.
v_tot_ii = itab_zycit100a-vlii + v_tot_ii.
...
...
v_programa EQ 'DI' OR
( v_programa EQ 'FAT' AND v_parametro(2) EQ '04' ).
MOVE itab_zycit036[] TO itab_zycit036_aux[].
LOOP AT itab_despesa WHERE netpr NE 0.
CLEAR: v_tot_desp.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
LOOP AT itab_zycit003 WHERE servico IS initial.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
LOOP AT itab_zycit003 .
IF ( v_vinserv IS INITIAL AND
itab_zycit003-servico IS INITIAL ) OR
( v_vinserv EQ 'X' AND itab_zycit003-servico EQ 'X' ) .
* << Fim da inclusão
CLEAR itab_zycit036_aux.
IF NOT itab_despesa-matuse IS INITIAL.
READ TABLE itab_ekpo WITH KEY ebeln = itab_zycit003-ebeln
ebelp = itab_zycit003-ebelp.
IF itab_ekpo-j_1bmatuse NE itab_despesa-matuse .
...
...
itab_zycit036_aux-vlreal = itab_despesa-netpr *
( ( v_vfob + v_vfre + v_vseg ) / v_vtot ) .
ENDIF.
ENDIF.
ELSE.
* >> Início da exclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT itab_zycit003-qtd_itend IS INITIAL.
* << Fim da exclusão
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
IF NOT v_tot IS INITIAL.
IF NOT itab_zycit003-qtd_itend IS INITIAL .
* << Fim da inclusão
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_itend / v_tot ) *
itab_despesa-netpr.
ELSE.
itab_zycit036_aux-vlreal = ( itab_zycit003-netpr *
itab_zycit003-qtd_iten / v_tot ) *
itab_despesa-netpr.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
ENDIF.
itab_zycit036_aux-waers_real = itab_despesa-waers.
ENDIF.
ELSE.
IF NOT itab_zycit003-qtd_itend IS INITIAL.
...
...
ENDIF.
ENDIF.
ENDIF.
APPEND itab_zycit036_aux.
v_tot_desp = v_tot_desp + itab_zycit036_aux-vlreal.
* >> Início da inclusão: FUNCTION /PWS/ZYCI_RATEIO_CUSTO
ENDIF.
* << Fim da inclusão
ENDIF.
ENDLOOP.
DELETE itab_zycit036_aux WHERE vlreal IS initial.
ENDLOOP.
MOVE itab_zycit036_aux[] TO itab_zycit036[].
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
PERFORM gravar_custos_funcao.
ENDIF.
ELSEIF /pws/zycie006-tpfatura = '04'.
IF NOT itab_zycit094[] IS INITIAL.
PERFORM gravar_custos_funcao.
* >> Início da inclusão: FORM CUSTEANDO_DESPESA_INCO
else.
LOOP AT itab_zycit036_aux2.
UPDATE /pws/zycit036 SET codigo = itab_zycit036-codigo
netpr = itab_zycit036-netpr
waers = itab_zycit036-waers
vlreal = itab_zycit036-vlreal
waers_real = itab_zycit036-waers_real
vlmov = itab_zycit036-vlmov
waers_mov = itab_zycit036-waers_mov
vldif = itab_zycit036-vldif
waers_dif = itab_zycit036-waers_dif
vlreal_emb = itab_zycit036-vlreal_emb
waers_emb = itab_zycit036-waers_emb
usernamec = sy-uname
dtuserc = sy-datum
hruserc = sy-uzeit
WHERE nrseq EQ itab_zycit036-nrseq
AND ebeln EQ itab_zycit036-ebeln
AND ebelp EQ itab_zycit036-ebelp
AND codigo EQ itab_zycit036-codigo
AND origem EQ 'FAT'
AND nrseqori EQ itab_zycit036-nrseqori.
IF sy-subrc NE 0.
MODIFY /pws/zycit036 FROM itab_zycit036_aux2.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CUSTEANDO_DESPESA_INCO
ENDLOOP.
ENDIF.
* << Fim da inclusão
ENDIF.
LOOP AT itab_zycit003.
SELECT SINGLE * FROM /pws/zycit001 INTO /pws/zycie001
WHERE nrseq = itab_zycit003-nrseq.
/pws/zycie001-status_e = 'A'.
...
...
WHERE nrseq EQ itab_zycit003-nrseq
AND ebeln EQ itab_zycit003-ebeln
AND ebelp EQ itab_zycit003-ebelp
AND docnum NE ''.
ENDSELECT.
* >> Início da exclusão: FORM ROTINA_DE_CONTABILIZACAO
IF sy-subrc NE 0.
* << Fim da exclusão
* >> Início da inclusão: FORM ROTINA_DE_CONTABILIZACAO
IF sy-subrc NE 0 or /pws/zycie006-tpfatura eq '04'.
* << Fim da inclusão
PERFORM contabilizacao_f-02_ou_f-43.
ELSE.
MESSAGE i015 WITH text-169.
ENDIF.
ELSE.
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F02
...
ENDFORM.
FORM visualiza_rateio.
DATA: v_programa LIKE /pws/zycit036-origem VALUE 'FAT',
v_parametro LIKE /pws/zycit003-descr,
v_erro_tax.
* >> Início da inclusão: FORM VISUALIZA_RATEIO
data: v_vinserv type /pws/zycit006-vinserv.
if /pws/zycie006-tpfatura eq 04 .
v_vinserv = /pws/zycie006-vinserv.
export v_vinserv to memory id 'VINSERV'.
endif.
* << Fim da inclusão
CLEAR: itab_item_funcao, itab_zycit036, itab_desp_funcao.
REFRESH: itab_item_funcao, itab_zycit036, itab_desp_funcao.
MOVE /pws/zycie006-tpfatura TO v_parametro.
IF NOT itab_zycit094[] IS INITIAL.
SELECT * FROM /pws/zycit003 INTO TABLE itab_zycit003
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003O01
...
SELECT * FROM /pws/zycit006
INTO TABLE itab_zycit006
FOR ALL ENTRIES IN itab_zycit263
WHERE nrseq_pgfat = itab_zycit263-nrseq_pgfat.
ENDIF.
* >> Início da inclusão: MODULE LOAD_DATA_001
SELECT * FROM /pws/zycit006 APPENDING TABLE itab_zycit006
WHERE NRSEQF = /pws/zycie001-nrseq AND
tpfatura = '04'.
* << Fim da inclusão
ENDIF.
PERFORM verifica_exit USING 'D'
'/PWS/SAPMZYCI003'
'FAT006'.
CLEAR itab_zyglt100 .
...
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI010F01
...
MESSAGE w015 WITH text-074.
ENDIF.
LEAVE PROGRAM.
ENDIF.
ELSE.
* >> Início da inclusão: FORM CUSTEAR_ITENS
IF /pws/zycit000-flag_desp IS INITIAL.
PERFORM converter_moeda
USING itab_zycit036_aux2-vlreal
itab_zycit036_aux2-waers_real
/pws/zycbt007-waersb
CHANGING itab_zycit036_aux2-vlreal.
PERFORM converter_moeda
USING itab_zycit036_aux2-vlreal
/pws/zycbt007-waersb
/pws/zycie001-waers
CHANGING itab_zycit036_aux2-vlreal.
ELSE.
* << Fim da inclusão
IF /pws/zycie001-regime NE '14'.
* >> Início da exclusão: FORM CUSTEAR_ITENS
IF itab_zycit036_aux2-waers_real NE /pws/zycbt007-waersb AND
itab_zycit036_aux2-origem NE 'PED'.
* << Fim da exclusão
* >> Início da inclusão: FORM CUSTEAR_ITENS
IF itab_zycit036_aux2-waers_real NE /pws/zycbt007-waersb
AND itab_zycit036_aux2-origem NE 'PED'.
* << Fim da inclusão
IF NOT /pws/zycit085-dttax IS INITIAL.
* >> Início da exclusão: FORM CUSTEAR_ITENS
PERFORM taxa_converte USING itab_zycit036_aux2-waers_real
* << Fim da exclusão
* >> Início da inclusão: FORM CUSTEAR_ITENS
PERFORM taxa_converte
USING itab_zycit036_aux2-waers_real
* << Fim da inclusão
/pws/zycit085-dttax
CHANGING v_taxa.
ELSEIF /pws/zycit085-dttax IS INITIAL.
PERFORM taxa_converte USING itab_zycit036_aux2-waers_real
sy-datum
...
...
ELSE.
IF /pws/zycie001-modalidade = '02'.
MESSAGE w015 WITH text-074.
ENDIF.
LEAVE PROGRAM.
* >> Início da inclusão: FORM CUSTEAR_ITENS
ENDIF.
* << Fim da inclusão
ENDIF.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM CUSTEAR_ITENS
ELSE.
IF /pws/zycit000-flag_desp IS INITIAL.
PERFORM converter_moeda
USING itab_zycit036_aux2-vlreal
/pws/zycie001-waers
/pws/zycbt007-waersb
CHANGING itab_zycit036_aux2-vlreal.
PERFORM converter_moeda
USING itab_zycit036_aux2-vlreal
/pws/zycbt007-waersb
/pws/zycie001-waers
CHANGING itab_zycit036_aux2-vlreal.
* << Fim da inclusão
ELSE.
IF /pws/zycie001-regime NE '14'.
IF NOT /pws/zycit085-dttax IS INITIAL.
PERFORM taxa_converte USING /pws/zycie001-waers
/pws/zycit085-dttax
...
...
PERFORM taxa_converte USING /pws/zycie001-waers
sy-datum
CHANGING v_taxa.
ENDIF.
ENDIF.
* >> Início da inclusão: FORM CUSTEAR_ITENS
ENDIF.
* << Fim da inclusão
PERFORM retorna_decimais USING /pws/zycie001-waers
CHANGING itab_zycit036_aux2-vlreal.
PERFORM trata_decimais USING /pws/zycie001-waers
CHANGING itab_zycit036_aux2-vlreal.
v_vlreal = itab_zycit036_aux2-vlreal.
...
...
CHANGING v_taxa.
ELSE.
PERFORM taxa_converte USING /pws/zycie001-waers
sy-datum
CHANGING v_taxa.
* >> Início da inclusão: FORM CONVERSAO_AUX
ENDIF.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM CONVERSAO_AUX
IF /pws/zycie001-modalidade = '02'.
v_taxa = 1.
* << Fim da inclusão
ENDIF.
IF NOT v_taxa IS INITIAL.
v_vlreal = v_vlreal_t / v_taxa.
ELSE.
IF /pws/zycie001-modalidade = '02'.
...