blob: d86d87004c50942bf95b0897795d5cddfe226fb3 [file] [log] [blame]
Copybara botbe50d492023-11-30 00:16:42 +01001<?php
Adrià Vilanova Martínez5af86512023-12-02 20:44:16 +01002/*
3 * hores
4 * Copyright (c) 2023 Adrià Vilanova Martínez
5 *
6 * This program is free software: you can redistribute it and/or modify
7 * it under the terms of the GNU Affero General Public License as
8 * published by the Free Software Foundation, either version 3 of the
9 * License, or (at your option) any later version.
10 *
11 * This program is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 * GNU Affero General Public License for more details.
15 *
16 * You should have received a copy of the GNU Affero General Public
17 * License along with this program.
18 * If not, see http://www.gnu.org/licenses/.
19 */
20
Copybara botbe50d492023-11-30 00:16:42 +010021require_once("core.php");
22security::checkType(security::ADMIN);
23
24if (!security::checkParams("POST", [
25 ["id", security::PARAM_NEMPTY]
26])) {
27 security::go("users.php?msg=unexpected");
28}
29
30$id = (int)$_POST["id"];
31
32if (!security::checkParams("POST", [
33 ["day", security::PARAM_ISARRAY],
34 ["type", security::PARAM_ISARRAY]
35])) {
36 security::go("schedule.php?id=".$id."&msg=empty");
37}
38
39$dates = ["beginswork", "endswork", "beginsbreakfast", "endsbreakfast", "beginslunch", "endslunch"];
40$time = [];
41foreach ($dates as $date) {
42 if (isset($_POST[$date]) && !empty($_POST[$date])) {
43 if (!security::checkParam($_POST[$date], security::PARAM_ISTIME)) {
44 security::go("schedule.php?id=".$id."&msg=unexpected");
45 }
46 $time[$date] = schedules::time2sec($_POST[$date]);
47 } else {
48 $time[$date] = 0;
49 }
50}
51
52$status = schedules::checkAddDayGeneric($time["beginswork"], $time["endswork"], $time["beginsbreakfast"], $time["endsbreakfast"], $time["beginslunch"], $time["endslunch"]);
53
54if ($status != 0) {
55 security::go("schedule.php?id=".$id."&msg=errorcheck".(int)$status);
56}
57
58$flag = false;
59
60foreach ($_POST["day"] as $rawday) {
61 $day = (int)$rawday;
62 if ($day < 0 || $day > 6) continue;
63
64 foreach ($_POST["type"] as $rawtype) {
65 $type = (int)$rawtype;
66 if (!in_array($type, array_keys(calendars::$types))) continue;
67
68 if (!schedules::checkAddDay2ScheduleParticular($id, $day, $type)) {
69 $flag = true;
70 continue;
71 }
72
73 if (!schedules::addDay2Schedule($id, $day, $type, $time["beginswork"], $time["endswork"], $time["beginsbreakfast"], $time["endsbreakfast"], $time["beginslunch"], $time["endslunch"])) {
74 security::go("schedule.php?id=".$id."&msg=unexpected");
75 }
76 }
77}
78
79if ($flag) {
80 security::go("schedule.php?id=".$id."&msg=existing");
81} else {
82 security::go("schedule.php?id=".$id."&msg=added");
83}