PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 25 → WX Informatica - Rules_DataValida
WX Informatica - Rules_DataValida
Iniciado por BOLLER, abr., 08 2019 10:51 PM - 6 respostas
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 08 2019 - 10:51 PM
// Summary: <specify the procedure action>
// Syntax:
//[ <Result> = ] Rules_DataValida (<dDataValida>)
//
// Parameters:
// dDataValida: <specify the role of DataValidar>

Procedure Rules_DataValida(dDataValida)

bvalida is boolean = False

IF dDataValida <> ""

sDataValidar is string = dDataValida

dataFormatada is Date

dataFormatada..Year = Middle(sDataValidar,1,4)

dataFormatada..Month = Middle(sDataValidar,5,2)

dataFormatada..Day = Middle(sDataValidar,7,2)

dDataMinima is Date

dDataMinima = DateSys()

dDataMinima..Year -= 5

dDataMaxima is Date

dDataMaxima = dataFormatada

dDataMaxima..Year += 5

IF dataFormatada >= dDataMinima AND
dataFormatada <= dDataMaxima //and
// lower(DateToDayInAlpha(dataFormatada)) <> "domingo" and
// lower(DateToDayInAlpha(dataFormatada)) <> "sábado" and
// Lower(DateToDayInAlpha(dataFormatada)) <> "sunday" AND
// Lower(DateToDayInAlpha(dataFormatada)) <> "saturday"

bvalida = True

ELSE

bvalida = False

// if Lower(DateToDayInAlpha(dataFormatada)) = "domingo" or
// Lower(DateToDayInAlpha(dataFormatada)) = "sábado" or
// Lower(DateToDayInAlpha(dataFormatada)) = "sunday" or
// Lower(DateToDayInAlpha(dataFormatada)) = "saturday"
//
// ToastDisplay("Data Inválida, é um "+DateToDayInAlpha(dataFormatada),toastLong,vaMiddle,haCenter,RGB(255,0,0))
//
// else
//
// ToastDisplay("Data Inválida",toastLong,vaMiddle,haCenter,RGB(255,0,0))
//
// end

END

ELSE

ToastDisplay("Não foi informada nenhuma data",toastLong,vaMiddle,haCenter,RGB(255,0,0))

END

RESULT bvalida


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 08 2019 - 10:52 PM
UI_ValidarDataHoraTarefa(gnProfissional, gData, gHoraInicial, gTarefaID)

ok1, ok2, ok3 is boolean = False

ArrResultado is array of string
gHoraFinal is Time
gHoraFinal = gHoraInicial

IF HReadSeek(T021_TAREFAS,T021_TAREFASID,ExtractString(gTarefaID,1,TAB,FromBeginning),hIdentical) = True THEN

IF HFound(T021_TAREFAS) = True AND T021_TAREFAS.AUDT_Excluido = "N" AND T021_TAREFAS.T021_STATUS = "A"

gHoraFinal..Minute += T021_TAREFAS.T021_DURACAO

gnDuracao = T021_TAREFAS.T021_DURACAO

END

END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 08 2019 - 10:52 PM
IF Rules_DataValida(gData) = True THEN
ok1 = True
ELSE
ok1 = False
END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 08 2019 - 10:53 PM
IF ok1 = True
IF Rules_DataForaFeriado(gData) = True
ok2 = True
ELSE
ok2 = False
END
ELSE
ok2 = False
END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 08 2019 - 10:54 PM
Procedure Rules_DataForaFeriado(gData)

bDataForaFeriado is boolean = True

IF gData <> ""

HReset(T031_FERIADOS)
FOR EACH T031_FERIADOS
IF HFound(T031_FERIADOS) = True
IF T031_FERIADOS.T031_DIA = Middle(gData,7,2) AND T031_FERIADOS.T031_MES = Middle(gData,5,2) THEN
bDataForaFeriado = False
END
END
END

IF bDataForaFeriado = False THEN
ToastDisplay("A data é um feriado!",toastLong,vaMiddle,haCenter,RGB(255,0,0))
END

ELSE

ToastDisplay("A data é inválida!",toastLong,vaMiddle,haCenter,RGB(255,0,0))

END

RESULT bDataForaFeriado


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 08 2019 - 10:54 PM
IF Rules_DentroJornadaTrabalho(gnProfissional,gHoraInicial,gHoraFinal) = True

ok3 = True
Add(ArrResultado,gData)
Add(ArrResultado,gHoraFinal)
Add(ArrResultado,True)

ELSE

ok3 = False
Add(ArrResultado,0)
Add(ArrResultado,0)
Add(ArrResultado,0)

END


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/
Membro registado
3.651 mensagems
Popularité : +175 (223 votes)
Publicado em abril, 08 2019 - 10:55 PM
Procedure Rules_DentroJornadaTrabalho(nProfissional, nHoraInicial, nHoraFinal)

DentroJornada is boolean

IF nProfissional <> "" AND nHoraInicial <> "" AND nHoraFinal <> ""

IF Rules_HoraInicialFinal(nHoraInicial,nHoraFinal) = True THEN

IF HReadSeek(T011_PROFISSIONAIS,T011_PROFISSIONAISID,nProfissional,hIdentical) = True THEN

IF HReadSeek(T055_JORNADA_DIAS_HORARIO,T030_JORNADAID,T011_PROFISSIONAIS.T030_JORNADAID,hIdentical) = True THEN

IF T055_JORNADA_DIAS_HORARIO.T055_HORA_INICIAL >= nHoraInicial AND T055_JORNADA_DIAS_HORARIO.T055_HORA_FINAL <= nHoraFinal THEN

DentroJornada = True //ok

ELSE

DentroJornada = False

END

ELSE

DentroJornada = False

END

ELSE

DentroJornada = False

END


ELSE

DentroJornada = False

END


ELSE

DentroJornada = False

END

RESULT DentroJornada


--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/