Módulo: DOC. IMPORTAÇÃO
Funcionalidade: Fatura Mercadoria
Data/Hora da Publicação: 19/04/2007 00:00:00
Data/Hora Última Alteração: 22/02/2011 16:06:58
Descrição da Nota: CALCULO DA DATA DE VENCIMENTO DE ACORDO COM A OBB8
Sintoma
Não está sendo utilizada a condição correta parametrizada na OBB8 para o calculo da data de
vencimento da fatura.
Solução
Atualização do programa de fatura de mercadoria para que o sistema selecione a condição de pagamento
correta.
7.0
Produto:
Nota
Descrição
Informações Complementares
----------------------------------------------------------------------------------------------------
Nota Número 03501 Data: 19/04/2007 Hora: 16:17:24
----------------------------------------------------------------------------------------------------
----------------------------------------------------------------------------------------------------
Nota Número : 03501
Categoria : Erro de Programa
Prioridade : Média
Versão PW.CE : 7.0
Pacote : 00001
Agrupamento : 00162
----------------------------------------------------------------------------------------------------
Referência às notas relacionadas:
Número - Ordem - Versão - Pacote - Descrição Breve
01509 - 00001 - 6.0 - 00023 - TRATAR E AJUSTAR O CAMPO DTVENCTO (FATURA)
----------------------------------------------------------------------------------------------------
CALCULO DA DATA DE VENCIMENTO DE ACORDO COM A OBB8
----------------------------------------------------------------------------------------------------
Palavras Chave:
DATA - VENCIMENTO - FATURA - OBB8
/PWS/SAPMZYCI003
----------------------------------------------------------------------------------------------------
Objetos da nota:
REPS /PWS/MZYCI003F01
----------------------------------------------------------------------------------------------------
Modificações efetuadas em REPS /PWS/MZYCI003F01
...
company_not_found = 3
OTHERS = 4.
IF sy-subrc EQ 1.
MESSAGE s061 WITH text-027 /pws/zycie006-j_1bbranch.
ENDIF.
MOVE /pws/zycie006-cnpj TO v_cgc.
WRITE v_cgc TO v_cnpj.
ENDIF.
ENDFORM.
FORM montar_dtvencto.
* >> Início da inclusão: FORM MONTAR_DTVENCTO
DATA: itab_t052 TYPE t052 OCCURS 0 WITH HEADER LINE.
* << Fim da inclusão
SELECT SINGLE dtemiss dtlanc FROM /pws/zycit093
INTO (/pws/zycit093-dtemiss, /pws/zycit093-dtlanc)
WHERE nrseqce EQ /pws/zycie006-nrseqce.
* >> Início da exclusão: FORM MONTAR_DTVENCTO
SELECT SINGLE ztag1 zdart zstg1 zsmn1 FROM t052
INTO (t052-ztag1, t052-zdart, t052-zstg1, t052-zsmn1)
* << Fim da exclusão
* >> Início da inclusão: FORM MONTAR_DTVENCTO
REFRESH itab_t052.
SELECT * FROM t052
INTO TABLE itab_t052
* << Fim da inclusão
WHERE zterm EQ /pws/zycie006-zterm.
* >> Início da inclusão: FORM MONTAR_DTVENCTO
SORT itab_t052 BY ztagg.
LOOP AT itab_t052.
t052 = itab_t052.
* << Fim da inclusão
IF /pws/zycie006-dtbase IS INITIAL.
IF t052-zdart EQ 'B' .
/pws/zycie006-dtbase = /pws/zycit093-dtemiss .
ELSEIF t052-zdart EQ 'D'.
/pws/zycie006-dtbase = /pws/zycit093-dtlanc .
ENDIF.
* >> Início da inclusão: FORM MONTAR_DTVENCTO
ENDIF .
IF t052-ztagg = '00' OR
t052-ztagg >= /pws/zycie006-dtbase+6(2).
EXIT.
* << Fim da inclusão
ENDIF.
* >> Início da inclusão: FORM MONTAR_DTVENCTO
ENDLOOP.
* << Fim da inclusão
IF /pws/zycie006-tpfatura = '01' OR
/pws/zycie006-tpfatura = '11' OR
/pws/zycie006-tpfatura = '02' OR
/pws/zycie006-tpfatura = '03' OR
/pws/zycie006-tpfatura = '05' OR
/pws/zycie006-tpfatura = '04' .
...
...
OR ( /pws/zycie006-tpfatura EQ '11' AND v_prof NE 'X' )
OR ( /pws/zycie006-tpfatura EQ '02' AND v_prof NE 'X' )
OR ( /pws/zycie006-tpfatura EQ '03' AND v_prof NE 'X' )
OR ( /pws/zycie006-tpfatura EQ '04' AND v_prof NE 'X' )
OR ( /pws/zycie006-tpfatura = '05' AND
NOT /pws/zycie006-zterm IS INITIAL
AND /pws/zycie006-dtvencto IS INITIAL ) ).
IF NOT t052-zsmn1 IS INITIAL AND
NOT t052-zstg1 IS INITIAL.
IF NOT /pws/zycie006-dtbase IS INITIAL.
* >> Início da exclusão: FORM MONTAR_DTVENCTO
/pws/zycie006-dtvencto = /pws/zycie006-dtbase +
( t052-zsmn1 * 30 ).
* << Fim da exclusão
* >> Início da inclusão: FORM MONTAR_DTVENCTO
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = t052-zsmn1
olddate = /pws/zycie006-dtbase
IMPORTING
newdate = /pws/zycie006-dtvencto.
* << Fim da inclusão
/pws/zycie006-dtvencto+6(2) = t052-zstg1.
IF NOT /pws/zycie006-dtvencto IS INITIAL.
CLEAR v_dtvencto.
CALL FUNCTION '/PWS/LAST_DAY_OF_MONTHS'
EXPORTING
day_in = /pws/zycie006-dtvencto
IMPORTING
last_day_of_month = v_dtvencto.
IF /pws/zycie006-dtvencto > v_dtvencto.
/pws/zycie006-dtvencto = v_dtvencto.
...
...
IMPORTING
last_day_of_month = v_dtvencto.
IF /pws/zycie006-dtvencto > v_dtvencto.
/pws/zycie006-dtvencto = v_dtvencto.
ENDIF.
ENDIF.
ENDIF.
ELSE.
IF NOT t052-zsmn1 IS INITIAL AND
NOT t052-zstg1 IS INITIAL.
* >> Início da exclusão: FORM MONTAR_DTVENCTO
IF NOT /pws/zycie006-dtincl IS INITIAL.
/pws/zycie006-dtvencto = /pws/zycie006-dtincl +
( t052-zsmn1 * 30 ).
* << Fim da exclusão
* >> Início da inclusão: FORM MONTAR_DTVENCTO
CALL FUNCTION 'MONTH_PLUS_DETERMINE'
EXPORTING
months = t052-zsmn1
olddate = /pws/zycie006-dtincl
IMPORTING
newdate = /pws/zycie006-dtvencto.
* << Fim da inclusão
/pws/zycie006-dtvencto+6(2) = t052-zstg1.
* >> Início da inclusão: FORM MONTAR_DTVENCTO
IF NOT /pws/zycie006-dtvencto IS INITIAL.
CLEAR v_dtvencto.
CALL FUNCTION '/PWS/LAST_DAY_OF_MONTHS'
EXPORTING
day_in = /pws/zycie006-dtvencto
IMPORTING
last_day_of_month = v_dtvencto.
IF /pws/zycie006-dtvencto > v_dtvencto.
/pws/zycie006-dtvencto = v_dtvencto.
ENDIF.
* << Fim da inclusão
ENDIF.
ELSE.
IF t052-zdart EQ 'B'
OR ( t052-zdart IS INITIAL
AND NOT /pws/zycie006-zterm IS INITIAL ).
IF NOT /pws/zycie006-dtincl IS INITIAL.
/pws/zycie006-dtvencto = /pws/zycie006-dtincl +
t052-ztag1.
ENDIF.
ELSEIF t052-zdart EQ 'D'.
...