Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Walter Felipe
pad-upe
Commits
c8b577a7
Commit
c8b577a7
authored
Apr 25, 2024
by
alissonalbuquerque
Browse files
feat(ValidTotalTime): add tratamento pra mensagem de validação
parent
4ab84ea1
Changes
2
Hide whitespace changes
Inline
Side-by-side
app/Models/TaskTime.php
View file @
c8b577a7
...
...
@@ -570,7 +570,7 @@ class TaskTime extends Model
$diff
=
$date_time_end
->
diff
(
$date_time_start
);
$total_hours
=
$total_hours
+
$diff
->
h
;
$total_minutes
=
$total_minutes
+
$diff
->
m
;
$total_minutes
=
$total_minutes
+
$diff
->
i
;
}
$date_interval
=
new
DateInterval
(
"PT
{
$total_hours
}
H
{
$total_minutes
}
M"
);
...
...
@@ -578,6 +578,15 @@ class TaskTime extends Model
return
$date_interval
;
}
/**
* @return integer
*/
public
static
function
date_interval_to_minutes
(
DateInterval
$date_interval
)
{
[
$days_to_minutes
,
$hours_to_minutes
,
$minutes
]
=
[(
$date_interval
->
d
*
24
*
60
),
(
$date_interval
->
h
*
60
),
(
$date_interval
->
i
*
1
)];
return
$days_to_minutes
+
$hours_to_minutes
+
$minutes
;
}
/**
* @param DateTime $dateTimeX
* @param DateTime $dateTimeY
...
...
app/Rules/ValidationLimitTime.php
View file @
c8b577a7
...
...
@@ -106,14 +106,16 @@ class ValidationLimitTime implements Rule
* @return bool
*/
public
function
passes
(
$attribute
,
$value
)
{
{
//--------------------------------------------------------------
$date_time_start
=
new
DateTime
(
$this
->
taskTime
->
start_time
);
$date_time_end
=
new
DateTime
(
$this
->
taskTime
->
end_time
);
/** @var DateInternal|null */
$diff
=
$date_time_end
->
diff
(
$date_time_start
);
[
$hours
,
$minutes
]
=
[
$diff
->
h
,
$diff
->
m
];
[
$hours
,
$minutes
]
=
[
$diff
->
h
,
$diff
->
i
];
$new_model_date_interval
=
new
DateInterval
(
"PT
{
$hours
}
H
{
$minutes
}
M"
);
...
...
@@ -123,9 +125,9 @@ class ValidationLimitTime implements Rule
$date_interval
=
TaskTime
::
sum_interval_times
(
$this
->
taskTimes
);
[
$date_interval_days
,
$date_interval_hours
,
$date_interval_minutes
]
=
[
$date_interval
->
d
,
$date_interval
->
h
,
$date_interval
->
m
];
[
$date_interval_days
,
$date_interval_hours
,
$date_interval_minutes
]
=
[
$date_interval
->
d
,
$date_interval
->
h
,
$date_interval
->
i
];
[
$new_model_days
,
$new_model_hours
,
$new_model_minutes
]
=
[
$new_model_date_interval
->
d
,
$new_model_date_interval
->
h
,
$new_model_date_interval
->
m
];
[
$new_model_days
,
$new_model_hours
,
$new_model_minutes
]
=
[
$new_model_date_interval
->
d
,
$new_model_date_interval
->
h
,
$new_model_date_interval
->
i
];
$date_interval_days
=
$date_interval_days
+
$new_model_days
;
$date_interval_hours
=
$date_interval_hours
+
$new_model_hours
;
...
...
@@ -133,10 +135,12 @@ class ValidationLimitTime implements Rule
$date_interval
=
new
DateInterval
(
"P
{
$date_interval_days
}
DT
{
$date_interval_hours
}
H
{
$date_interval_minutes
}
M"
);
//Fix validação
dd
(
$limit_date_interval
<=>
$date_interval
);
//--------------------------------------------------------------
$limit_minutes
=
TaskTime
::
date_interval_to_minutes
(
$limit_date_interval
);
$interval_minutes
=
TaskTime
::
date_interval_to_minutes
(
$date_interval
);
return
$limit_
date_
inte
rval
<=>
$date_interval
;
return
$limit_
m
in
u
te
s
>=
$interval_minutes
;
}
/**
...
...
@@ -146,23 +150,60 @@ class ValidationLimitTime implements Rule
*/
public
function
message
()
{
$limitDateTime
=
new
DateTime
(
$this
->
limit_hours
);
//--------------------------------------------------------------
$date_time_start
=
new
DateTime
(
$this
->
taskTime
->
start_time
);
$date_time_end
=
new
DateTime
(
$this
->
taskTime
->
end_time
);
/** @var DateInternal|null */
$diff
=
$date_time_end
->
diff
(
$date_time_start
);
[
$hours
,
$minutes
]
=
[
$diff
->
h
,
$diff
->
i
];
$new_model_date_interval
=
new
DateInterval
(
"PT
{
$hours
}
H
{
$minutes
}
M"
);
//--------------------------------------------------------------
$limit_date_interval
=
$this
->
limit_date_interval
;
//--------------------------------------------------------------
$date_interval
=
TaskTime
::
sum_interval_times
(
$this
->
taskTimes
);
[
$date_interval_days
,
$date_interval_hours
,
$date_interval_minutes
]
=
[
$date_interval
->
d
,
$date_interval
->
h
,
$date_interval
->
i
];
[
$new_model_days
,
$new_model_hours
,
$new_model_minutes
]
=
[
$new_model_date_interval
->
d
,
$new_model_date_interval
->
h
,
$new_model_date_interval
->
i
];
$date_interval_days
=
$date_interval_days
+
$new_model_days
;
$date_interval_hours
=
$date_interval_hours
+
$new_model_hours
;
$date_interval_minutes
=
$date_interval_minutes
+
$new_model_minutes
;
$date_interval
=
new
DateInterval
(
"P
{
$date_interval_days
}
DT
{
$date_interval_hours
}
H
{
$date_interval_minutes
}
M"
);
//--------------------------------------------------------------
dd
([
'limite'
=>
$limit_date_interval
,
'total'
=>
$date_interval
]);
// $limitDateTime = new DateTime($this->limit_hours);
$sumDateTime
=
TaskTime
::
sumIntervalTimes
(
$this
->
taskTimes
);
//
$sumDateTime = TaskTime::sumIntervalTimes($this->taskTimes);
$diffInterval
=
$sumDateTime
->
diff
(
$limitDateTime
);
//
$diffInterval = $sumDateTime->diff($limitDateTime);
$dateTime
=
new
DateTime
(
'00:00:00'
);
//
$dateTime = new DateTime('00:00:00');
$dateTime
->
add
(
$diffInterval
);
//
$dateTime->add($diffInterval);
$diff_time
=
$dateTime
->
format
(
'H:i'
);
//
$diff_time = $dateTime->format('H:i');
$taskTime
=
$this
->
createTaskTime
();
$interval_time
=
$taskTime
->
intervalTime
(
'H:i'
);
//
$taskTime = $this->createTaskTime();
//
$interval_time = $taskTime->intervalTime('H:i');
$msgError
=
"Carga horária disponível restante:
{
$diff_time
}
hora(s)!"
;
$msgError
.
=
$diff_time
==
"00:00"
?
" Atividade Indisponível!"
:
" Intervalo entre inicio e fim :
{
$interval_time
}
hora(s)!"
;
//
$msgError = "Carga horária disponível restante: {$diff_time} hora(s)!";
//
$msgError .= $diff_time == "00:00"? " Atividade Indisponível!" : " Intervalo entre inicio e fim : {$interval_time} hora(s)!";
return
$msgError
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment