Commit c8b577a7 authored by alissonalbuquerque's avatar alissonalbuquerque
Browse files

feat(ValidTotalTime): add tratamento pra mensagem de validação

parent 4ab84ea1
......@@ -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
......
......@@ -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_interval <=> $date_interval;
return $limit_minutes >= $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;
}
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment