× Linguagem de Programação ADVPL

Perguntas Data menor no Faturamento

Mais
9 anos 8 meses atrás #24859 por jvc
Ola, olha parece estranho o que vou pedir, na tabela SC5 existe a condição negociada e 10 campos para data de vencimento que o vendedor ficar livre para fazer o que bem entender, só que a única coisa que ele não pode é colocar uma data menor que a database e passar de 12 meses os vencimentos, segue um exemplo que estava fazendo mas sem sucesso, alguem pode me ajudar:
#INCLUDE "PROTHEUS.CH"
user function datamenor()
cData:=M->C5_DATA1 .or. cData:=M->C5_DATA2 .or. cData:=M->C5_DATA3
IF cData < date()
MsgInfo("Data do vencimento não pode ser menor que a data atual.")
Return(.F.)
ELSE
Return(.T.)
ENDIF
return

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 8 meses atrás #24860 por AndersonBR
Respondido por AndersonBR no tópico Data menor no Faturamento
Tenta assim:
#INCLUDE "PROTHEUS.CH"
user function datamenor()
IF M->C5_DATA1 < dDataBase .or. M->C5_DATA2 < dDataBase .or. M->C5_DATA3 < dDataBase
MsgInfo("Data do vencimento não pode ser menor que a data atual.")
Return(.F.)
ELSE
Return(.T.)
ENDIF
return

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 8 meses atrás #24862 por jvc
Respondido por jvc no tópico Data menor no Faturamento
Ola, Anderson muito obrigado pela resposta, ele até faz o bloqueio da data menor<database só que quando coloco uma data valida e da a mesma mensagem de data vencimento não pode ser menor que a data atual.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 8 meses atrás #24864 por mbrigagao
Respondido por mbrigagao no tópico Data menor no Faturamento
Jardel,

No exemplo dado a condição só será satisfeita complementa se os três campo de data estiverem preenchidos e com uma data maior que a database do sistema.

O melhor seria testar o campo quando o mesmo não estiver vazio,caso o campo esteja vazio retorne T ou pule a validação.

Ficaria mais ou menos assim...
INCLUDE "PROTHEUS.CH"
user function datamenor()
IF !Empty(M->C5_DATA1) .And. M->C5_DATA1 < dDataBase
	MsgInfo("Data do vencimento não pode ser menor que a data atual.")
	Return(.F.)
ELSE 
	Return(.T.)
ENDIF
return()

Agora tem um detalhe, onde você está essa função ? é em um ponto de entrada, ou validação do campo ?

Para cada caso será usada uma logica diferente.

At.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 8 meses atrás #24867 por jvc
Respondido por jvc no tópico Data menor no Faturamento
Marcelo, é que assim são 10 campos para data e não queria fazer uma validação para cada campo, tipo:
U_DATAMENOR1
U_DATAMENOR2
U_DATAMENOR9

estou colocando ele na validação do campo.

Por favor Acessar ou Registrar para participar da conversa.

Mais
9 anos 8 meses atrás #24869 por admin
Respondido por admin no tópico Data menor no Faturamento
Em cada campo coloca isso na validação

Vazio() .Or. (M->C5_DATA1 >= dDataBase)
Vazio() .Or. (M->C5_DATA2 >= dDataBase .And. M->C5_DATA2 > M->C5_DATA1)
Vazio() .Or. (M->C5_DATA3 >= dDataBase .And. M->C5_DATA3 > M->C5_DATA2)
Vazio() .Or. (M->C5_DATA4 >= dDataBase .And. M->C5_DATA4 > M->C5_DATA3)
Vazio() .Or. (M->C5_DATA5 >= dDataBase .And. M->C5_DATA5 > M->C5_DATA4)

etc

Ou Vc vai ter que usar um ponto de entrada se não quer colocar isso em cada campo

Por favor Acessar ou Registrar para participar da conversa.

Tempo para a criação da página:0.119 segundos
Joomla templates by a4joomla