blob: be9f6b46b44b8a12808e26fcfef156d78bfa3917 [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::HYPERADMIN);
23
24$advancedMode = (isset($_POST["advanced"]) && $_POST["advanced"] == "1");
25
26if (!$advancedMode) {
27 if (!security::checkParams("POST", [
28 ["day", security::PARAM_ISDATE],
29 ["workers", security::PARAM_ISARRAY]
30 ])) {
31 security::go("manuallygenerateregistry.php?msg=empty");
32 }
33
34 $day = new DateTime($_POST["day"]);
35 $time = $day->getTimestamp();
36
37 $logId = -1;
38 $status = registry::generateNow($time, $logId, true, people::userData("id"), $_POST["workers"]);
39
40 security::go("manuallygenerateregistry.php?".($logId == -1 ? "msg=generatederr" : "")."&logId=".$logId);
41} else {
42 if (!security::checkParams("POST", [
43 ["begins", security::PARAM_ISDATE],
44 ["ends", security::PARAM_ISDATE],
45 ["workers", security::PARAM_ISARRAY]
46 ])) {
47 security::go("manuallygenerateregistry.php?msg=empty");
48 }
49
50 $executedBy = people::userData("id");
51
52 $current = new DateTime($_POST["begins"]);
53 $ends = new DateTime($_POST["ends"]);
54 $interval = new DateInterval("P1D");
55 while ($current->diff($ends)->invert === 0) {
56 $logId = 0;
57 registry::generateNow($current->getTimestamp(), $logId, true, $executedBy, $_POST["workers"]);
58
59 $current->add($interval);
60 }
61
62 security::go("manuallygenerateregistry.php?msg=done");
63}