Fixed save working plan exception handling for calendar page and non working days (#1548)

This commit is contained in:
Alex Tselegidis 2024-05-27 16:46:38 +02:00
parent 3bc2e69651
commit 2d41f181a1
2 changed files with 11 additions and 6 deletions

View file

@ -480,7 +480,7 @@ class Calendar extends EA_Controller
$this->providers_model->save_working_plan_exception($provider_id, $date, $working_plan_exception); $this->providers_model->save_working_plan_exception($provider_id, $date, $working_plan_exception);
if ($date !== $original_date) { if ($original_date && $date !== $original_date) {
$this->providers_model->delete_working_plan_exception($provider_id, $original_date); $this->providers_model->delete_working_plan_exception($provider_id, $original_date);
} }

View file

@ -525,12 +525,16 @@ class Providers_model extends EA_Model
): void { ): void {
// Validate the working plan exception data. // Validate the working plan exception data.
if (empty($working_plan_exception['start']) || empty($working_plan_exception['end'])) { if (
!empty($working_plan_exception) &&
(empty($working_plan_exception['start']) || empty($working_plan_exception['end']))
) {
throw new InvalidArgumentException( throw new InvalidArgumentException(
'Empty start and/or end time provided: ' . json_encode($working_plan_exception), 'Empty start and/or end time provided: ' . json_encode($working_plan_exception),
); );
} }
if (!empty($working_plan_exception['start']) && !empty($working_plan_exception['end'])) {
$start = date('H:i', strtotime($working_plan_exception['start'])); $start = date('H:i', strtotime($working_plan_exception['start']));
$end = date('H:i', strtotime($working_plan_exception['end'])); $end = date('H:i', strtotime($working_plan_exception['end']));
@ -538,6 +542,7 @@ class Providers_model extends EA_Model
if ($start > $end) { if ($start > $end) {
throw new InvalidArgumentException('Working plan exception start date must be before the end date.'); throw new InvalidArgumentException('Working plan exception start date must be before the end date.');
} }
}
// Make sure the provider record exists. // Make sure the provider record exists.
$where = [ $where = [