Project import generated by Copybara.
GitOrigin-RevId: 63746295f1a5ab5a619056791995793d65529e62
diff --git a/src/inc/export.php b/src/inc/export.php
new file mode 100644
index 0000000..6800d50
--- /dev/null
+++ b/src/inc/export.php
@@ -0,0 +1,54 @@
+<?php
+class export {
+ const FORMAT_PDF = 1;
+ const FORMAT_DETAILEDPDF = 2;
+ const FORMAT_CSV_SCHEDULES = 3;
+ const FORMAT_CSV_INCIDENTS = 4;
+
+ public static $formats = array(
+ 1 => "PDF con horario laboral",
+ 2 => "PDF detallado",
+ 3 => "CSV con horarios",
+ 4 => "CSV con incidencias"
+ );
+ public static $workerFormats = [1, 3, 4];
+
+ public static $schedulesFields = ["id", "worker", "workerid", "dni", "company", "day", "beginswork", "endswork", "beginsbreakfast", "endsbreakfast", "beginslunch", "endslunch", "state"];
+ public static $incidentsFields = ["id", "worker", "workerid", "dni", "company", "creator", "updated", "updatedby", "confirmedby", "type", "day", "allday", "begins", "ends", "details", "workerdetails", "verified", "typepresent", "typepaid", "state"];
+
+ public static function convert($str) {
+ return iconv('UTF-8', 'windows-1252', $str);
+ }
+
+ public static function getDays($worker, $begins, $ends, $showvalidated, $shownotvalidated) {
+ $return = [];
+
+ $records = registry::getRecords($worker, $begins, $ends, false, false, false, 0, 0);
+ if ($records === false) return false;
+ foreach ($records as $record) {
+ if (!$showvalidated && $record["state"] === registry::STATE_VALIDATED_BY_WORKER) continue;
+ if (!$shownotvalidated && $record["state"] === registry::STATE_REGISTERED) continue;
+ if (!isset($return[$record["day"]])) $return[$record["day"]] = [];
+ $return[$record["day"]]["schedule"] = $record;
+ }
+
+ $incidents = incidents::getAll(false, 0, 0, $worker, $begins, $ends);
+ if ($incidents === false) return false;
+ foreach ($incidents as $incident) {
+ if ($incident["state"] !== incidents::STATE_REGISTERED && $incident["state"] !== incidents::STATE_VALIDATED_BY_WORKER) continue;
+ if (!$showvalidated && $incident["state"] === incidents::STATE_VALIDATED_BY_WORKER) continue;
+ if (!$shownotvalidated && $incident["state"] === incidents::STATE_REGISTERED) continue;
+ if (!isset($return[$incident["day"]])) $return[$incident["day"]] = [];
+ if (!isset($return[$incident["day"]]["incidents"])) $return[$incident["day"]]["incidents"] = [];
+ $return[$incident["day"]]["incidents"][] = $incident;
+ }
+
+ ksort($return);
+
+ return $return;
+ }
+
+ public static function sec2hours($sec) {
+ return round((double)$sec/3600, 2)." h";
+ }
+}