- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Data menor no Faturamento
×
Linguagem de Programação ADVPL
Perguntas Data menor no Faturamento
- jvc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 18
- Obrigados Recebidos: 0
10 anos 3 meses atrás #24859
por jvc
Data menor no Faturamento foi criado 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
#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.
- AndersonBR
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 108
- Obrigados Recebidos: 0
10 anos 3 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.
- jvc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 18
- Obrigados Recebidos: 0
10 anos 3 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.
- mbrigagao
- Desconectado
- Membro Platina
Menos
Mais
- Postagens: 350
- Obrigados Recebidos: 1
10 anos 3 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...
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.
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.
- jvc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 18
- Obrigados Recebidos: 0
10 anos 3 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.
U_DATAMENOR1
U_DATAMENOR2
U_DATAMENOR9
estou colocando ele na validação do campo.
Por favor Acessar ou Registrar para participar da conversa.
- admin
- Desconectado
- Administrador
Menos
Mais
- Postagens: 216
- Obrigados Recebidos: 0
10 anos 3 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
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.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Data menor no Faturamento
Tempo para a criação da página:0.143 segundos