From 7ef5c43901768b8d647ca1fba17b4b3727e5008f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Sat, 25 Feb 2023 12:10:52 +0100 Subject: [PATCH 1/4] =?UTF-8?q?Bugfix:=20F=C3=BCge=20Vorassetzungen=20hinz?= =?UTF-8?q?u?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- deploy.sh | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/deploy.sh b/deploy.sh index aba9439..00c055d 100644 --- a/deploy.sh +++ b/deploy.sh @@ -1,5 +1,20 @@ #!/usr/bin/env bash +create_css_files() { + cd ui/public || exit 2 + lessc --source-map less/print.less print.css + lessc --source-map less/global.less global.css + cd ../.. +} + + +install_ui_dependence() { + cd ui/ || exit 2 + npm install + cd .. +} + + install_api_dependence() { cd api/ || exit 2 composer install @@ -29,4 +44,4 @@ composer_run() { docker-compose up -d } -install_api_dependence && build_ui && test_unit && composer_run && test_api \ No newline at end of file +create_css_files && install_ui_dependence && install_api_dependence && build_ui && test_unit && composer_run && test_api \ No newline at end of file -- 2.54.0 From 3e291171a81713acc9e7f99b5d4ffe89e85cfccc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Sat, 25 Feb 2023 12:12:53 +0100 Subject: [PATCH 2/4] =?UTF-8?q?Feature:=20erm=C3=B6gliche=20den=20Import?= =?UTF-8?q?=20von=20CSV-Daten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/test-data/report-1672928012.CSV | 278 ++++++++++++++++++ ui/src/papaparse.min.js | 7 + ui/src/routes/WorkingHours/Formular.svelte | 16 + .../WorkingHours/Formular/ImportCsv.svelte | 80 +++++ 4 files changed, 381 insertions(+) create mode 100755 resources/test-data/report-1672928012.CSV create mode 100644 ui/src/papaparse.min.js create mode 100644 ui/src/routes/WorkingHours/Formular/ImportCsv.svelte diff --git a/resources/test-data/report-1672928012.CSV b/resources/test-data/report-1672928012.CSV new file mode 100755 index 0000000..de2b4c8 --- /dev/null +++ b/resources/test-data/report-1672928012.CSV @@ -0,0 +1,278 @@ +Aktivität;Dauer;Von;Bis;Kommentar +Arbeit;03:46;2021-10-13 08:01;2021-10-13 11:48; +Arbeit;04:00;2021-10-12 13:13;2021-10-12 17:14; +Mittagspause ;01:13;2021-10-12 11:59;2021-10-12 13:13; +Arbeit;04:07;2021-10-12 07:51;2021-10-12 11:59; +Arbeit;04:36;2021-10-11 13:08;2021-10-11 17:44; +Mittagspause ;01:00;2021-10-11 12:08;2021-10-11 13:08; +Arbeit;03:48;2021-10-11 08:19;2021-10-11 12:08; +Arbeit;03:37;2021-10-08 13:14;2021-10-08 16:52; +Mittagspause ;01:12;2021-10-08 12:02;2021-10-08 13:14; +Arbeit;03:54;2021-10-08 08:08;2021-10-08 12:02; +Arbeit;05:33;2021-10-07 12:58;2021-10-07 18:32; +Mittagspause ;00:52;2021-10-07 12:06;2021-10-07 12:58; +Arbeit;03:59;2021-10-07 08:07;2021-10-07 12:06; +Arbeit;02:29;2021-10-06 13:30;2021-10-06 15:59; +Mittagspause ;00:52;2021-10-06 12:37;2021-10-06 13:30; +Arbeit;05:21;2021-10-06 07:15;2021-10-06 12:37; +Arbeit;04:07;2021-10-05 13:05;2021-10-05 17:13; +Mittagspause ;00:56;2021-10-05 12:09;2021-10-05 13:05; +Arbeit;04:01;2021-10-05 08:07;2021-10-05 12:09; +Arbeit;03:30;2021-10-04 13:05;2021-10-04 16:35; +Mittagspause ;01:00;2021-10-04 12:05;2021-10-04 13:05; +Arbeit;03:38;2021-10-04 08:26;2021-10-04 12:05; +Arbeit;03:06;2021-10-01 12:49;2021-10-01 15:56; +Mittagspause ;00:44;2021-10-01 12:05;2021-10-01 12:49; +Arbeit;04:42;2021-10-01 07:22;2021-10-01 12:05; +Arbeit;03:39;2021-09-30 12:49;2021-09-30 16:29; +Mittagspause ;00:46;2021-09-30 12:02;2021-09-30 12:49; +Arbeit;03:37;2021-09-30 08:24;2021-09-30 12:02; +Arbeit;03:58;2021-09-29 13:31;2021-09-29 17:29; +Mittagspause ;01:03;2021-09-29 12:28;2021-09-29 13:31; +Arbeit;04:17;2021-09-29 08:10;2021-09-29 12:28; +Arbeit;04:36;2021-09-28 13:12;2021-09-28 17:48; +Mittagspause ;00:52;2021-09-28 12:20;2021-09-28 13:12; +Arbeit;03:53;2021-09-28 08:26;2021-09-28 12:20; +Arbeit;03:58;2021-09-27 12:56;2021-09-27 16:54; +Mittagspause ;00:55;2021-09-27 12:00;2021-09-27 12:56; +Arbeit;03:41;2021-09-27 08:18;2021-09-27 12:00; +Arbeit;03:52;2021-09-24 13:01;2021-09-24 16:53; +Mittagspause ;00:57;2021-09-24 12:03;2021-09-24 13:01; +Arbeit;03:50;2021-09-24 08:13;2021-09-24 12:03; +Arbeit;02:48;2021-09-23 12:44;2021-09-23 15:33; +Mittagspause ;00:52;2021-09-23 11:52;2021-09-23 12:44; +Arbeit;03:25;2021-09-23 08:26;2021-09-23 11:52; +Arbeit;04:28;2021-09-22 12:47;2021-09-22 17:16; +Mittagspause ;00:43;2021-09-22 12:04;2021-09-22 12:47; +Arbeit;03:29;2021-09-22 08:34;2021-09-22 12:04; +Arbeit;03:54;2021-09-21 13:06;2021-09-21 17:00; +Mittagspause ;00:57;2021-09-21 12:08;2021-09-21 13:06; +Arbeit;03:53;2021-09-21 08:14;2021-09-21 12:08; +Arbeit;03:18;2021-09-20 13:22;2021-09-20 16:41; +Mittagspause ;01:03;2021-09-20 12:19;2021-09-20 13:22; +Arbeit;04:07;2021-09-20 08:12;2021-09-20 12:19; +Arbeit;00:13;2021-09-17 14:20;2021-09-17 14:33; +Arbeit;05:48;2021-09-17 07:18;2021-09-17 13:07; +Arbeit;04:04;2021-09-16 12:36;2021-09-16 16:40; +Mittagspause ;00:42;2021-09-16 11:53;2021-09-16 12:36; +Arbeit;04:05;2021-09-16 07:48;2021-09-16 11:53; +Arbeit;04:33;2021-09-15 13:25;2021-09-15 17:59; +Mittagspause ;01:00;2021-09-15 12:25;2021-09-15 13:25; +Arbeit;04:07;2021-09-15 08:18;2021-09-15 12:25; +Arbeit;05:42;2021-09-14 13:06;2021-09-14 18:48; +Mittagspause ;00:52;2021-09-14 12:13;2021-09-14 13:06; +Arbeit;03:49;2021-09-14 08:24;2021-09-14 12:13; +Arbeit;03:43;2021-09-13 12:53;2021-09-13 16:37; +Mittagspause ;01:00;2021-09-13 11:53;2021-09-13 12:53; +Arbeit;03:42;2021-09-13 08:10;2021-09-13 11:53; +Arbeit;00:20;2021-09-10 19:31;2021-09-10 19:51; +Arbeit;04:32;2021-09-10 12:48;2021-09-10 17:21; +Mittagspause ;00:43;2021-09-10 12:05;2021-09-10 12:48; +Arbeit;03:21;2021-09-10 08:43;2021-09-10 12:05; +Arbeit;03:29;2021-09-09 13:03;2021-09-09 16:32; +Mittagspause ;00:55;2021-09-09 12:08;2021-09-09 13:03; +Arbeit;03:32;2021-09-09 08:35;2021-09-09 12:08; +Arbeit;04:37;2021-09-08 13:08;2021-09-08 17:46; +Mittagspause ;01:07;2021-09-08 12:01;2021-09-08 13:08; +Arbeit;04:15;2021-09-08 07:45;2021-09-08 12:01; +Arbeit;04:12;2021-09-07 13:03;2021-09-07 17:16; +Mittagspause ;00:55;2021-09-07 12:08;2021-09-07 13:03; +Arbeit;04:09;2021-09-07 07:58;2021-09-07 12:08; +Arbeit;03:08;2021-09-06 13:14;2021-09-06 16:23; +Mittagspause ;00:58;2021-09-06 12:16;2021-09-06 13:14; +Arbeit;04:00;2021-09-06 08:16;2021-09-06 12:16; +Arbeit;04:05;2021-09-03 12:49;2021-09-03 16:54; +Mittagspause ;00:50;2021-09-03 11:59;2021-09-03 12:49; +Arbeit;03:09;2021-09-03 08:49;2021-09-03 11:59; +Arbeit;04:26;2021-09-02 13:03;2021-09-02 17:30; +Mittagspause ;01:02;2021-09-02 12:01;2021-09-02 13:03; +Arbeit;03:51;2021-09-02 08:10;2021-09-02 12:01; +Arbeit;04:06;2021-09-01 13:38;2021-09-01 17:45; +Mittagspause ;01:05;2021-09-01 12:33;2021-09-01 13:38; +Arbeit;04:13;2021-09-01 08:20;2021-09-01 12:33; +Arbeit;03:53;2021-08-31 13:11;2021-08-31 17:04; +Mittagspause ;01:05;2021-08-31 12:05;2021-08-31 13:11; +Arbeit;04:19;2021-08-31 07:46;2021-08-31 12:05; +Arbeit;04:00;2021-08-30 13:51;2021-08-30 17:52; +Mittagspause ;01:07;2021-08-30 12:43;2021-08-30 13:51; +Arbeit;04:20;2021-08-30 08:22;2021-08-30 12:43; +Arbeit;02:45;2021-08-27 13:06;2021-08-27 15:52; +Mittagspause ;00:52;2021-08-27 12:14;2021-08-27 13:06; +Arbeit;04:09;2021-08-27 08:05;2021-08-27 12:14; +Arbeit;04:12;2021-08-26 13:03;2021-08-26 17:16; +Mittagspause ;00:53;2021-08-26 12:10;2021-08-26 13:03; +Arbeit;03:49;2021-08-26 08:21;2021-08-26 12:10; +Arbeit;03:59;2021-08-25 13:02;2021-08-25 17:01; +Mittagspause ;01:06;2021-08-25 11:56;2021-08-25 13:02; +Arbeit;03:35;2021-08-25 08:20;2021-08-25 11:56; +Arbeit;04:54;2021-08-24 12:43;2021-08-24 17:37; +Mittagspause ;00:57;2021-08-24 11:45;2021-08-24 12:43; +Arbeit;01:56;2021-08-24 09:48;2021-08-24 11:45; +Arbeit;00:53;2021-08-24 07:56;2021-08-24 08:49; +Arbeit;03:54;2021-08-23 12:57;2021-08-23 16:51; +Mittagspause ;01:16;2021-08-23 11:41;2021-08-23 12:57; +Arbeit;03:30;2021-08-23 08:11;2021-08-23 11:41; +Arbeit;03:28;2021-08-06 12:57;2021-08-06 16:25; +Mittagspause ;00:52;2021-08-06 12:04;2021-08-06 12:57; +Arbeit;03:38;2021-08-06 08:26;2021-08-06 12:04; +Arbeit;03:19;2021-08-05 13:11;2021-08-05 16:30; +Mittagspause ;01:05;2021-08-05 12:06;2021-08-05 13:11; +Arbeit;03:50;2021-08-05 08:15;2021-08-05 12:06; +Arbeit;04:14;2021-08-04 13:03;2021-08-04 17:18; +Mittagspause ;00:44;2021-08-04 12:19;2021-08-04 13:03; +Arbeit;04:11;2021-08-04 08:08;2021-08-04 12:19; +Arbeit;03:18;2021-08-03 13:16;2021-08-03 16:34; +Mittagspause ;00:49;2021-08-03 12:26;2021-08-03 13:16; +Arbeit;04:24;2021-08-03 08:01;2021-08-03 12:26; +Arbeit;02:58;2021-08-02 13:22;2021-08-02 16:20; +Mittagspause ;00:59;2021-08-02 12:22;2021-08-02 13:22; +Arbeit;04:13;2021-08-02 08:09;2021-08-02 12:22; +Arbeit;04:19;2021-07-30 13:01;2021-07-30 17:20; +Mittagspause ;00:45;2021-07-30 12:16;2021-07-30 13:01; +Arbeit;04:22;2021-07-30 07:54;2021-07-30 12:16; +Arbeit;03:25;2021-07-29 13:25;2021-07-29 16:50; +Mittagspause ;01:01;2021-07-29 12:23;2021-07-29 13:25; +Arbeit;04:44;2021-07-29 07:39;2021-07-29 12:23; +Arbeit;04:47;2021-07-28 12:49;2021-07-28 17:37; +Mittagspause ;00:58;2021-07-28 11:51;2021-07-28 12:49; +Arbeit;03:48;2021-07-28 08:02;2021-07-28 11:51; +Arbeit;03:49;2021-07-27 12:34;2021-07-27 16:24; +Mittagspause ;00:47;2021-07-27 11:47;2021-07-27 12:34; +Arbeit;03:20;2021-07-27 08:27;2021-07-27 11:47; +Arbeit;04:47;2021-07-26 12:59;2021-07-26 17:47; +Mittagspause ;00:52;2021-07-26 12:07;2021-07-26 12:59; +Arbeit;03:59;2021-07-26 08:08;2021-07-26 12:07; +Arbeit;05:53;2021-07-23 12:43;2021-07-23 18:37; +Mittagspause ;00:36;2021-07-23 12:07;2021-07-23 12:43; +Arbeit;04:10;2021-07-23 07:57;2021-07-23 12:07; +Arbeit;04:09;2021-07-22 12:54;2021-07-22 17:04; +Mittagspause ;00:42;2021-07-22 12:11;2021-07-22 12:54; +Arbeit;04:16;2021-07-22 07:55;2021-07-22 12:11; +Arbeit;03:11;2021-07-21 13:37;2021-07-21 16:48; +Mittagspause ;01:07;2021-07-21 12:29;2021-07-21 13:37; +Arbeit;04:58;2021-07-21 07:31;2021-07-21 12:29; +Arbeit;01:17;2021-07-20 18:44;2021-07-20 20:02; +Arbeit;03:50;2021-07-20 13:14;2021-07-20 17:04; +Mittagspause ;00:41;2021-07-20 12:32;2021-07-20 13:14; +Arbeit;04:55;2021-07-20 07:37;2021-07-20 12:32; +Arbeit;03:19;2021-07-19 13:12;2021-07-19 16:31; +Mittagspause ;00:52;2021-07-19 12:20;2021-07-19 13:12; +Arbeit;04:28;2021-07-19 07:51;2021-07-19 12:20; +Arbeit;02:48;2021-07-16 12:55;2021-07-16 15:43; +Mittagspause ;00:47;2021-07-16 12:07;2021-07-16 12:55; +Arbeit;04:01;2021-07-16 08:06;2021-07-16 12:07; +Arbeit;03:38;2021-07-15 13:05;2021-07-15 16:43; +Mittagspause ;01:05;2021-07-15 11:59;2021-07-15 13:05; +Arbeit;03:56;2021-07-15 08:02;2021-07-15 11:59; +Arbeit;03:38;2021-07-14 13:07;2021-07-14 16:45; +Mittagspause ;01:00;2021-07-14 12:07;2021-07-14 13:07; +Arbeit;04:00;2021-07-14 08:06;2021-07-14 12:07; +Arbeit;04:22;2021-07-13 12:53;2021-07-13 17:15; +Mittagspause ;01:03;2021-07-13 11:50;2021-07-13 12:53; +Arbeit;03:47;2021-07-13 08:02;2021-07-13 11:50; +Arbeit;03:26;2021-07-12 13:02;2021-07-12 16:28; +Mittagspause ;01:03;2021-07-12 11:58;2021-07-12 13:02; +Arbeit;04:14;2021-07-12 07:44;2021-07-12 11:58; +Arbeit;03:57;2021-07-09 13:09;2021-07-09 17:06; +Mittagspause ;01:06;2021-07-09 12:02;2021-07-09 13:09; +Arbeit;03:57;2021-07-09 08:04;2021-07-09 12:02; +Arbeit;03:17;2021-07-08 13:12;2021-07-08 16:29; +Mittagspause ;01:07;2021-07-08 12:04;2021-07-08 13:12; +Arbeit;04:00;2021-07-08 08:03;2021-07-08 12:04; +Arbeit;03:41;2021-07-07 13:08;2021-07-07 16:49; +Mittagspause ;01:00;2021-07-07 12:07;2021-07-07 13:08; +Arbeit;04:05;2021-07-07 08:02;2021-07-07 12:07; +Arbeit;02:50;2021-07-06 13:05;2021-07-06 15:55; +Mittagspause ;01:05;2021-07-06 11:59;2021-07-06 13:05; +Arbeit;03:49;2021-07-06 08:10;2021-07-06 11:59; +Arbeit;03:32;2021-07-05 13:00;2021-07-05 16:33; +Mittagspause ;00:59;2021-07-05 12:00;2021-07-05 13:00; +Arbeit;03:48;2021-07-05 08:12;2021-07-05 12:00; +Arbeit;04:37;2021-07-02 12:42;2021-07-02 17:19; +Arbeit;03:45;2021-07-02 08:06;2021-07-02 11:52; +Arbeit;03:34;2021-07-01 13:15;2021-07-01 16:49; +Arbeit;04:06;2021-07-01 07:52;2021-07-01 11:59; +Arbeit;04:23;2021-06-30 13:17;2021-06-30 17:41; +Arbeit;04:16;2021-06-30 08:12;2021-06-30 12:29; +Arbeit;03:51;2021-06-29 13:08;2021-06-29 17:00; +Arbeit;04:14;2021-06-29 07:51;2021-06-29 12:06; +Arbeit;03:05;2021-06-28 13:34;2021-06-28 16:40; +Arbeit;04:23;2021-06-28 07:56;2021-06-28 12:19; +Arbeit;00:21;2021-06-25 17:44;2021-06-25 18:06; +Arbeit;03:15;2021-06-25 13:12;2021-06-25 16:27; +Arbeit;04:40;2021-06-25 07:35;2021-06-25 12:16; +Arbeit;02:55;2021-06-24 13:04;2021-06-24 16:00; +Arbeit;04:10;2021-06-24 08:00;2021-06-24 12:10; +Arbeit;02:57;2021-06-23 13:36;2021-06-23 16:34; +Arbeit;04:41;2021-06-23 07:57;2021-06-23 12:39; +Arbeit;02:55;2021-06-22 12:54;2021-06-22 15:50; +Arbeit;03:56;2021-06-22 07:58;2021-06-22 11:55; +Arbeit;03:03;2021-06-21 12:52;2021-06-21 15:55; +Arbeit;04:08;2021-06-21 07:53;2021-06-21 12:01; +Arbeit;03:45;2021-06-18 12:49;2021-06-18 16:34; +Arbeit;03:56;2021-06-18 07:57;2021-06-18 11:53; +Arbeit;05:06;2021-06-17 13:15;2021-06-17 18:22; +Arbeit;04:08;2021-06-17 08:08;2021-06-17 12:16; +Arbeit;04:31;2021-06-16 13:09;2021-06-16 17:40; +Arbeit;03:54;2021-06-16 08:20;2021-06-16 12:15; +Arbeit;04:34;2021-06-15 12:48;2021-06-15 17:22; +Arbeit;03:46;2021-06-15 08:11;2021-06-15 11:57; +Arbeit;02:36;2021-06-14 13:27;2021-06-14 16:04; +Arbeit;04:00;2021-06-14 08:10;2021-06-14 12:10; +Arbeit;03:46;2021-06-11 12:32;2021-06-11 16:19; +Arbeit;03:25;2021-06-11 08:09;2021-06-11 11:34; +Arbeit;02:27;2021-06-10 13:18;2021-06-10 15:46; +Arbeit;04:24;2021-06-10 08:05;2021-06-10 12:29; +Arbeit;04:26;2021-06-09 13:24;2021-06-09 17:50; +Arbeit;04:36;2021-06-09 07:47;2021-06-09 12:23; +Arbeit;03:35;2021-06-08 12:50;2021-06-08 16:25; +Arbeit;03:53;2021-06-08 07:58;2021-06-08 11:51; +Arbeit;03:04;2021-06-07 13:03;2021-06-07 16:08; +Arbeit;03:55;2021-06-07 08:20;2021-06-07 12:16; +Arbeit;03:12;2021-06-04 12:47;2021-06-04 16:00; +Arbeit;03:52;2021-06-04 08:13;2021-06-04 12:06; +Arbeit;04:09;2021-06-03 12:49;2021-06-03 16:59; +Arbeit;04:09;2021-06-03 07:45;2021-06-03 11:55; +Arbeit;04:07;2021-06-02 12:56;2021-06-02 17:03; +Arbeit;04:08;2021-06-02 07:50;2021-06-02 11:59; +Arbeit;03:55;2021-06-01 13:04;2021-06-01 17:00; +Arbeit;04:26;2021-06-01 07:48;2021-06-01 12:14; +Arbeit;03:36;2021-05-31 13:00;2021-05-31 16:37; +Arbeit;04:08;2021-05-31 08:17;2021-05-31 12:25; +Arbeit;02:53;2021-05-28 12:53;2021-05-28 15:46; +Arbeit;03:44;2021-05-28 08:10;2021-05-28 11:54; +Arbeit;03:52;2021-05-27 12:35;2021-05-27 16:28; +Arbeit;03:44;2021-05-27 08:06;2021-05-27 11:50; +Arbeit;02:26;2021-05-26 13:35;2021-05-26 16:01; +Arbeit;04:15;2021-05-26 08:35;2021-05-26 12:51; +Arbeit;03:44;2021-05-25 12:41;2021-05-25 16:26; +Arbeit;04:08;2021-05-25 07:45;2021-05-25 11:54; +Arbeit;03:41;2021-05-21 12:57;2021-05-21 16:38; +Arbeit;04:00;2021-05-21 07:55;2021-05-21 11:55; +Arbeit;04:03;2021-05-20 12:36;2021-05-20 16:40; +Arbeit;03:54;2021-05-20 08:03;2021-05-20 11:57; +Arbeit;04:06;2021-05-19 12:57;2021-05-19 17:03; +Arbeit;04:12;2021-05-19 08:00;2021-05-19 12:13; +Arbeit;04:11;2021-05-18 12:52;2021-05-18 17:03; +Arbeit;04:20;2021-05-18 07:50;2021-05-18 12:10; +Arbeit;03:20;2021-05-17 12:57;2021-05-17 16:17; +Arbeit;04:25;2021-05-17 07:49;2021-05-17 12:14; +Arbeit;03:04;2021-05-14 13:04;2021-05-14 16:08; +Arbeit;04:38;2021-05-14 07:50;2021-05-14 12:29; +Arbeit;03:12;2021-05-12 12:35;2021-05-12 15:47; +Arbeit;03:40;2021-05-12 07:55;2021-05-12 11:35; +Arbeit;03:34;2021-05-11 12:45;2021-05-11 16:19; +Arbeit;04:13;2021-05-11 07:48;2021-05-11 12:02; +Arbeit;03:37;2021-05-10 12:22;2021-05-10 16:00; +Arbeit;03:55;2021-05-10 07:52;2021-05-10 11:47; +Arbeit;03:32;2021-05-07 13:00;2021-05-07 16:33; +Arbeit;04:15;2021-05-07 07:53;2021-05-07 12:09; +Arbeit;03:28;2021-05-06 13:04;2021-05-06 16:32; +Arbeit;04:44;2021-05-06 08:01;2021-05-06 12:45; +Arbeit;03:13;2021-05-05 13:13;2021-05-05 16:27; +Arbeit;04:37;2021-05-05 07:49;2021-05-05 12:26; +Arbeit;02:51;2021-05-04 13:19;2021-05-04 16:11; +Arbeit;04:36;2021-05-04 07:40;2021-05-04 12:16; +Arbeit;04:13;2021-05-03 13:13;2021-05-03 17:26; +Arbeit;04:28;2021-05-03 08:01;2021-05-03 12:30; +Arbeit;03:42;2021-01-11 08:18;2021-01-11 12:01; diff --git a/ui/src/papaparse.min.js b/ui/src/papaparse.min.js new file mode 100644 index 0000000..14c98ff --- /dev/null +++ b/ui/src/papaparse.min.js @@ -0,0 +1,7 @@ +/* @license +Papa Parse +v5.0.2 +https://github.com/mholt/PapaParse +License: MIT +*/ +!function(e,t){"function"==typeof define&&define.amd?define([],t):"object"==typeof module&&"undefined"!=typeof exports?module.exports=t():e.Papa=t()}(this,function s(){"use strict";var f="undefined"!=typeof self?self:"undefined"!=typeof window?window:void 0!==f?f:{};var n=!f.document&&!!f.postMessage,o=n&&/blob:/i.test((f.location||{}).protocol),a={},h=0,b={parse:function(e,t){var r=(t=t||{}).dynamicTyping||!1;q(r)&&(t.dynamicTypingFunction=r,r={});if(t.dynamicTyping=r,t.transform=!!q(t.transform)&&t.transform,t.worker&&b.WORKERS_SUPPORTED){var i=function(){if(!b.WORKERS_SUPPORTED)return!1;var e=(r=f.URL||f.webkitURL||null,i=s.toString(),b.BLOB_URL||(b.BLOB_URL=r.createObjectURL(new Blob(["(",i,")();"],{type:"text/javascript"})))),t=new f.Worker(e);var r,i;return t.onmessage=_,t.id=h++,a[t.id]=t}();return i.userStep=t.step,i.userChunk=t.chunk,i.userComplete=t.complete,i.userError=t.error,t.step=q(t.step),t.chunk=q(t.chunk),t.complete=q(t.complete),t.error=q(t.error),delete t.worker,void i.postMessage({input:e,config:t,workerId:i.id})}var n=null;b.NODE_STREAM_INPUT,"string"==typeof e?n=t.download?new l(t):new p(t):!0===e.readable&&q(e.read)&&q(e.on)?n=new m(t):(f.File&&e instanceof File||e instanceof Object)&&(n=new c(t));return n.stream(e)},unparse:function(e,t){var i=!1,_=!0,g=",",v="\r\n",n='"',s=n+n,r=!1,a=null;!function(){if("object"!=typeof t)return;"string"!=typeof t.delimiter||b.BAD_DELIMITERS.filter(function(e){return-1!==t.delimiter.indexOf(e)}).length||(g=t.delimiter);("boolean"==typeof t.quotes||Array.isArray(t.quotes))&&(i=t.quotes);"boolean"!=typeof t.skipEmptyLines&&"string"!=typeof t.skipEmptyLines||(r=t.skipEmptyLines);"string"==typeof t.newline&&(v=t.newline);"string"==typeof t.quoteChar&&(n=t.quoteChar);"boolean"==typeof t.header&&(_=t.header);if(Array.isArray(t.columns)){if(0===t.columns.length)throw new Error("Option columns is empty");a=t.columns}void 0!==t.escapeChar&&(s=t.escapeChar+n)}();var o=new RegExp(U(n),"g");"string"==typeof e&&(e=JSON.parse(e));if(Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return u(null,e,r);if("object"==typeof e[0])return u(a||h(e[0]),e,r)}else if("object"==typeof e)return"string"==typeof e.data&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||(e.fields=e.meta&&e.meta.fields),e.fields||(e.fields=Array.isArray(e.data[0])?e.fields:h(e.data[0])),Array.isArray(e.data[0])||"object"==typeof e.data[0]||(e.data=[e.data])),u(e.fields||[],e.data||[],r);throw new Error("Unable to serialize unrecognized input");function h(e){if("object"!=typeof e)return[];var t=[];for(var r in e)t.push(r);return t}function u(e,t,r){var i="";"string"==typeof e&&(e=JSON.parse(e)),"string"==typeof t&&(t=JSON.parse(t));var n=Array.isArray(e)&&0=this._config.preview;if(o)f.postMessage({results:n,workerId:b.WORKER_ID,finished:a});else if(q(this._config.chunk)&&!t){if(this._config.chunk(n,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);n=void 0,this._completeResults=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(n.data),this._completeResults.errors=this._completeResults.errors.concat(n.errors),this._completeResults.meta=n.meta),this._completed||!a||!q(this._config.complete)||n&&n.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),a||n&&n.meta.paused||this._nextChunk(),n}this._halted=!0},this._sendError=function(e){q(this._config.error)?this._config.error(e):o&&this._config.error&&f.postMessage({workerId:b.WORKER_ID,error:e,finished:!1})}}function l(e){var i;(e=e||{}).chunkSize||(e.chunkSize=b.RemoteChunkSize),u.call(this,e),this._nextChunk=n?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(i=new XMLHttpRequest,this._config.withCredentials&&(i.withCredentials=this._config.withCredentials),n||(i.onload=y(this._chunkLoaded,this),i.onerror=y(this._chunkError,this)),i.open("GET",this._input,!n),this._config.downloadRequestHeaders){var e=this._config.downloadRequestHeaders;for(var t in e)i.setRequestHeader(t,e[t])}if(this._config.chunkSize){var r=this._start+this._config.chunkSize-1;i.setRequestHeader("Range","bytes="+this._start+"-"+r)}try{i.send()}catch(e){this._chunkError(e.message)}n&&0===i.status?this._chunkError():this._start+=this._config.chunkSize}},this._chunkLoaded=function(){4===i.readyState&&(i.status<200||400<=i.status?this._chunkError():(this._finished=!this._config.chunkSize||this._start>function(e){var t=e.getResponseHeader("Content-Range");if(null===t)return-1;return parseInt(t.substr(t.lastIndexOf("/")+1))}(i),this.parseChunk(i.responseText)))},this._chunkError=function(e){var t=i.statusText||e;this._sendError(new Error(t))}}function c(e){var i,n;(e=e||{}).chunkSize||(e.chunkSize=b.LocalChunkSize),u.call(this,e);var s="undefined"!=typeof FileReader;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,s?((i=new FileReader).onload=y(this._chunkLoaded,this),i.onerror=y(this._chunkError,this)):i=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(i.error)}}function p(e){var r;u.call(this,e=e||{}),this.stream=function(e){return r=e,this._nextChunk()},this._nextChunk=function(){if(!this._finished){var e=this._config.chunkSize,t=e?r.substr(0,e):r;return r=e?r.substr(e):"",this._finished=!r,this.parseChunk(t)}}}function m(e){u.call(this,e=e||{});var t=[],r=!0,i=!1;this.pause=function(){u.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){u.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on("data",this._streamData),this._input.on("end",this._streamEnd),this._input.on("error",this._streamError)},this._checkIsFinished=function(){i&&1===t.length&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):r=!0},this._streamData=y(function(e){try{t.push("string"==typeof e?e:e.toString(this._config.encoding)),r&&(r=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=y(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=y(function(){this._streamCleanUp(),i=!0,this._streamData("")},this),this._streamCleanUp=y(function(){this._input.removeListener("data",this._streamData),this._input.removeListener("end",this._streamEnd),this._input.removeListener("error",this._streamError)},this)}function r(g){var a,o,h,i=Math.pow(2,53),n=-i,s=/^\s*-?(\d*\.?\d+|\d+\.?\d*)(e[-+]?\d+)?\s*$/i,u=/(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))/,t=this,r=0,f=0,d=!1,e=!1,l=[],c={data:[],errors:[],meta:{}};if(q(g.step)){var p=g.step;g.step=function(e){if(c=e,_())m();else{if(m(),0===c.data.length)return;r+=e.data.length,g.preview&&r>g.preview?o.abort():p(c,t)}}}function v(e){return"greedy"===g.skipEmptyLines?""===e.join("").trim():1===e.length&&0===e[0].length}function m(){if(c&&h&&(k("Delimiter","UndetectableDelimiter","Unable to auto-detect delimiting character; defaulted to '"+b.DefaultDelimiter+"'"),h=!1),g.skipEmptyLines)for(var e=0;e=l.length?"__parsed_extra":l[r]),g.transform&&(s=g.transform(s,n)),s=y(n,s),"__parsed_extra"===n?(i[n]=i[n]||[],i[n].push(s)):i[n]=s}return g.header&&(r>l.length?k("FieldMismatch","TooManyFields","Too many fields: expected "+l.length+" fields but parsed "+r,f+t):r=i.length/2?"\r\n":"\r"}(e,i)),h=!1,g.delimiter)q(g.delimiter)&&(g.delimiter=g.delimiter(e),c.meta.delimiter=g.delimiter);else{var n=function(e,t,r,i,n){var s,a,o,h;n=n||[",","\t","|",";",b.RECORD_SEP,b.UNIT_SEP];for(var u=0;u=L)return R(!0)}else for(g=M,M++;;){if(-1===(g=a.indexOf(O,g+1)))return t||u.push({type:"Quotes",code:"MissingQuotes",message:"Quoted field unterminated",row:h.length,index:M}),w();if(g===i-1)return w(a.substring(M,g).replace(_,O));if(O!==z||a[g+1]!==z){if(O===z||0===g||a[g-1]!==z){var y=E(-1===m?p:Math.min(p,m));if(a[g+1+y]===D){f.push(a.substring(M,g).replace(_,O)),a[M=g+1+y+e]!==O&&(g=a.indexOf(O,M)),p=a.indexOf(D,M),m=a.indexOf(I,M);break}var k=E(m);if(a.substr(g+1+k,n)===I){if(f.push(a.substring(M,g).replace(_,O)),C(g+1+k+n),p=a.indexOf(D,M),g=a.indexOf(O,M),o&&(S(),j))return R();if(L&&h.length>=L)return R(!0);break}u.push({type:"Quotes",code:"InvalidQuotes",message:"Trailing quote on quoted field is malformed",row:h.length,index:M}),g++}}else g++}return w();function b(e){h.push(e),d=M}function E(e){var t=0;if(-1!==e){var r=a.substring(g+1,e);r&&""===r.trim()&&(t=r.length)}return t}function w(e){return t||(void 0===e&&(e=a.substr(M)),f.push(e),M=i,b(f),o&&S()),R()}function C(e){M=e,b(f),f=[],m=a.indexOf(I,M)}function R(e,t){return{data:t||!1?h[0]:h,errors:u,meta:{delimiter:D,linebreak:I,aborted:j,truncated:!!e,cursor:d+(r||0)}}}function S(){A(R(void 0,!0)),h=[],u=[]}function x(e,t,r){var i={nextDelim:void 0,quoteSearch:void 0},n=a.indexOf(O,t+1);if(t { @@ -65,6 +67,11 @@ }) } } + const CsvController = { + 'makeTimekeepingList': () => { + MenuController.dailyEdit() + } + } const MenuController = { 'dailyEdit': () => { period_of_edit = DAILY_EDIT @@ -75,6 +82,11 @@ period_of_edit = WEEKLY_EDIT makeTimekeepingList = WeekController.makeTimekeepingList makeTimekeepingList() + }, + 'csvImport': () => { + period_of_edit = CSV_IMPORT + activeRecordList = [] + makeTimekeepingList = CsvController.makeTimekeepingList } } @@ -92,6 +104,7 @@ {#if period_of_edit === DAILY_EDIT} @@ -99,6 +112,9 @@ {#if period_of_edit === WEEKLY_EDIT} {/if} + {#if period_of_edit === CSV_IMPORT} + + {/if}
+ +
+
+
+ {#if imported_data.length < 1} +

Loading...

+ {:else} + + + {#each imported_data as item} + + + + + {/each} + +
+ {item.workingDay} + + {item.workingTime} +
+ {/if} +
+
-- 2.54.0 From 94b22c1d26b63369d227581e061ccaa2eed69e72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Mon, 27 Feb 2023 17:49:28 +0100 Subject: [PATCH 3/4] Refactor: Nutze Nullish Coalescing Assignment --- .gitignore | 1 + ui/src/routes/WorkingHours/Formular/ImportCsv.svelte | 7 ++----- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index ff2345f..a8d9aba 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,7 @@ .idea/**/workspace.xml .idea/**/tasks.xml .idea/**/usage.statistics.xml +.idea/**/markdown.xml .idea/**/dictionaries .idea/**/shelf diff --git a/ui/src/routes/WorkingHours/Formular/ImportCsv.svelte b/ui/src/routes/WorkingHours/Formular/ImportCsv.svelte index 878e429..35ea0b8 100644 --- a/ui/src/routes/WorkingHours/Formular/ImportCsv.svelte +++ b/ui/src/routes/WorkingHours/Formular/ImportCsv.svelte @@ -27,11 +27,8 @@ let work_to = new Date(item['Bis']) let actual_day = work_from.toISOString().substring(0, 10) let actual_work_hours = (work_to - work_from)/(1000*60*60) - if (cash_work_days[actual_day] === undefined) { - cash_work_days[actual_day] = actual_work_hours - } else { - cash_work_days[actual_day] += actual_work_hours - } + cash_work_days[actual_day] ??= 0 + cash_work_days[actual_day] += actual_work_hours }) for (let day in cash_work_days) { let hours = cash_work_days[day] -- 2.54.0 From 5bbcc961e660eae941ff2871477404e755b07882 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torsten=20L=C3=BCcke?= Date: Mon, 27 Feb 2023 17:52:47 +0100 Subject: [PATCH 4/4] =?UTF-8?q?Refactor:=20k=C3=BCrzere=20CSV-Datei?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- resources/test-data/report-1672928012.CSV | 216 ---------------------- 1 file changed, 216 deletions(-) diff --git a/resources/test-data/report-1672928012.CSV b/resources/test-data/report-1672928012.CSV index de2b4c8..daf9c3a 100755 --- a/resources/test-data/report-1672928012.CSV +++ b/resources/test-data/report-1672928012.CSV @@ -1,132 +1,4 @@ Aktivität;Dauer;Von;Bis;Kommentar -Arbeit;03:46;2021-10-13 08:01;2021-10-13 11:48; -Arbeit;04:00;2021-10-12 13:13;2021-10-12 17:14; -Mittagspause ;01:13;2021-10-12 11:59;2021-10-12 13:13; -Arbeit;04:07;2021-10-12 07:51;2021-10-12 11:59; -Arbeit;04:36;2021-10-11 13:08;2021-10-11 17:44; -Mittagspause ;01:00;2021-10-11 12:08;2021-10-11 13:08; -Arbeit;03:48;2021-10-11 08:19;2021-10-11 12:08; -Arbeit;03:37;2021-10-08 13:14;2021-10-08 16:52; -Mittagspause ;01:12;2021-10-08 12:02;2021-10-08 13:14; -Arbeit;03:54;2021-10-08 08:08;2021-10-08 12:02; -Arbeit;05:33;2021-10-07 12:58;2021-10-07 18:32; -Mittagspause ;00:52;2021-10-07 12:06;2021-10-07 12:58; -Arbeit;03:59;2021-10-07 08:07;2021-10-07 12:06; -Arbeit;02:29;2021-10-06 13:30;2021-10-06 15:59; -Mittagspause ;00:52;2021-10-06 12:37;2021-10-06 13:30; -Arbeit;05:21;2021-10-06 07:15;2021-10-06 12:37; -Arbeit;04:07;2021-10-05 13:05;2021-10-05 17:13; -Mittagspause ;00:56;2021-10-05 12:09;2021-10-05 13:05; -Arbeit;04:01;2021-10-05 08:07;2021-10-05 12:09; -Arbeit;03:30;2021-10-04 13:05;2021-10-04 16:35; -Mittagspause ;01:00;2021-10-04 12:05;2021-10-04 13:05; -Arbeit;03:38;2021-10-04 08:26;2021-10-04 12:05; -Arbeit;03:06;2021-10-01 12:49;2021-10-01 15:56; -Mittagspause ;00:44;2021-10-01 12:05;2021-10-01 12:49; -Arbeit;04:42;2021-10-01 07:22;2021-10-01 12:05; -Arbeit;03:39;2021-09-30 12:49;2021-09-30 16:29; -Mittagspause ;00:46;2021-09-30 12:02;2021-09-30 12:49; -Arbeit;03:37;2021-09-30 08:24;2021-09-30 12:02; -Arbeit;03:58;2021-09-29 13:31;2021-09-29 17:29; -Mittagspause ;01:03;2021-09-29 12:28;2021-09-29 13:31; -Arbeit;04:17;2021-09-29 08:10;2021-09-29 12:28; -Arbeit;04:36;2021-09-28 13:12;2021-09-28 17:48; -Mittagspause ;00:52;2021-09-28 12:20;2021-09-28 13:12; -Arbeit;03:53;2021-09-28 08:26;2021-09-28 12:20; -Arbeit;03:58;2021-09-27 12:56;2021-09-27 16:54; -Mittagspause ;00:55;2021-09-27 12:00;2021-09-27 12:56; -Arbeit;03:41;2021-09-27 08:18;2021-09-27 12:00; -Arbeit;03:52;2021-09-24 13:01;2021-09-24 16:53; -Mittagspause ;00:57;2021-09-24 12:03;2021-09-24 13:01; -Arbeit;03:50;2021-09-24 08:13;2021-09-24 12:03; -Arbeit;02:48;2021-09-23 12:44;2021-09-23 15:33; -Mittagspause ;00:52;2021-09-23 11:52;2021-09-23 12:44; -Arbeit;03:25;2021-09-23 08:26;2021-09-23 11:52; -Arbeit;04:28;2021-09-22 12:47;2021-09-22 17:16; -Mittagspause ;00:43;2021-09-22 12:04;2021-09-22 12:47; -Arbeit;03:29;2021-09-22 08:34;2021-09-22 12:04; -Arbeit;03:54;2021-09-21 13:06;2021-09-21 17:00; -Mittagspause ;00:57;2021-09-21 12:08;2021-09-21 13:06; -Arbeit;03:53;2021-09-21 08:14;2021-09-21 12:08; -Arbeit;03:18;2021-09-20 13:22;2021-09-20 16:41; -Mittagspause ;01:03;2021-09-20 12:19;2021-09-20 13:22; -Arbeit;04:07;2021-09-20 08:12;2021-09-20 12:19; -Arbeit;00:13;2021-09-17 14:20;2021-09-17 14:33; -Arbeit;05:48;2021-09-17 07:18;2021-09-17 13:07; -Arbeit;04:04;2021-09-16 12:36;2021-09-16 16:40; -Mittagspause ;00:42;2021-09-16 11:53;2021-09-16 12:36; -Arbeit;04:05;2021-09-16 07:48;2021-09-16 11:53; -Arbeit;04:33;2021-09-15 13:25;2021-09-15 17:59; -Mittagspause ;01:00;2021-09-15 12:25;2021-09-15 13:25; -Arbeit;04:07;2021-09-15 08:18;2021-09-15 12:25; -Arbeit;05:42;2021-09-14 13:06;2021-09-14 18:48; -Mittagspause ;00:52;2021-09-14 12:13;2021-09-14 13:06; -Arbeit;03:49;2021-09-14 08:24;2021-09-14 12:13; -Arbeit;03:43;2021-09-13 12:53;2021-09-13 16:37; -Mittagspause ;01:00;2021-09-13 11:53;2021-09-13 12:53; -Arbeit;03:42;2021-09-13 08:10;2021-09-13 11:53; -Arbeit;00:20;2021-09-10 19:31;2021-09-10 19:51; -Arbeit;04:32;2021-09-10 12:48;2021-09-10 17:21; -Mittagspause ;00:43;2021-09-10 12:05;2021-09-10 12:48; -Arbeit;03:21;2021-09-10 08:43;2021-09-10 12:05; -Arbeit;03:29;2021-09-09 13:03;2021-09-09 16:32; -Mittagspause ;00:55;2021-09-09 12:08;2021-09-09 13:03; -Arbeit;03:32;2021-09-09 08:35;2021-09-09 12:08; -Arbeit;04:37;2021-09-08 13:08;2021-09-08 17:46; -Mittagspause ;01:07;2021-09-08 12:01;2021-09-08 13:08; -Arbeit;04:15;2021-09-08 07:45;2021-09-08 12:01; -Arbeit;04:12;2021-09-07 13:03;2021-09-07 17:16; -Mittagspause ;00:55;2021-09-07 12:08;2021-09-07 13:03; -Arbeit;04:09;2021-09-07 07:58;2021-09-07 12:08; -Arbeit;03:08;2021-09-06 13:14;2021-09-06 16:23; -Mittagspause ;00:58;2021-09-06 12:16;2021-09-06 13:14; -Arbeit;04:00;2021-09-06 08:16;2021-09-06 12:16; -Arbeit;04:05;2021-09-03 12:49;2021-09-03 16:54; -Mittagspause ;00:50;2021-09-03 11:59;2021-09-03 12:49; -Arbeit;03:09;2021-09-03 08:49;2021-09-03 11:59; -Arbeit;04:26;2021-09-02 13:03;2021-09-02 17:30; -Mittagspause ;01:02;2021-09-02 12:01;2021-09-02 13:03; -Arbeit;03:51;2021-09-02 08:10;2021-09-02 12:01; -Arbeit;04:06;2021-09-01 13:38;2021-09-01 17:45; -Mittagspause ;01:05;2021-09-01 12:33;2021-09-01 13:38; -Arbeit;04:13;2021-09-01 08:20;2021-09-01 12:33; -Arbeit;03:53;2021-08-31 13:11;2021-08-31 17:04; -Mittagspause ;01:05;2021-08-31 12:05;2021-08-31 13:11; -Arbeit;04:19;2021-08-31 07:46;2021-08-31 12:05; -Arbeit;04:00;2021-08-30 13:51;2021-08-30 17:52; -Mittagspause ;01:07;2021-08-30 12:43;2021-08-30 13:51; -Arbeit;04:20;2021-08-30 08:22;2021-08-30 12:43; -Arbeit;02:45;2021-08-27 13:06;2021-08-27 15:52; -Mittagspause ;00:52;2021-08-27 12:14;2021-08-27 13:06; -Arbeit;04:09;2021-08-27 08:05;2021-08-27 12:14; -Arbeit;04:12;2021-08-26 13:03;2021-08-26 17:16; -Mittagspause ;00:53;2021-08-26 12:10;2021-08-26 13:03; -Arbeit;03:49;2021-08-26 08:21;2021-08-26 12:10; -Arbeit;03:59;2021-08-25 13:02;2021-08-25 17:01; -Mittagspause ;01:06;2021-08-25 11:56;2021-08-25 13:02; -Arbeit;03:35;2021-08-25 08:20;2021-08-25 11:56; -Arbeit;04:54;2021-08-24 12:43;2021-08-24 17:37; -Mittagspause ;00:57;2021-08-24 11:45;2021-08-24 12:43; -Arbeit;01:56;2021-08-24 09:48;2021-08-24 11:45; -Arbeit;00:53;2021-08-24 07:56;2021-08-24 08:49; -Arbeit;03:54;2021-08-23 12:57;2021-08-23 16:51; -Mittagspause ;01:16;2021-08-23 11:41;2021-08-23 12:57; -Arbeit;03:30;2021-08-23 08:11;2021-08-23 11:41; -Arbeit;03:28;2021-08-06 12:57;2021-08-06 16:25; -Mittagspause ;00:52;2021-08-06 12:04;2021-08-06 12:57; -Arbeit;03:38;2021-08-06 08:26;2021-08-06 12:04; -Arbeit;03:19;2021-08-05 13:11;2021-08-05 16:30; -Mittagspause ;01:05;2021-08-05 12:06;2021-08-05 13:11; -Arbeit;03:50;2021-08-05 08:15;2021-08-05 12:06; -Arbeit;04:14;2021-08-04 13:03;2021-08-04 17:18; -Mittagspause ;00:44;2021-08-04 12:19;2021-08-04 13:03; -Arbeit;04:11;2021-08-04 08:08;2021-08-04 12:19; -Arbeit;03:18;2021-08-03 13:16;2021-08-03 16:34; -Mittagspause ;00:49;2021-08-03 12:26;2021-08-03 13:16; -Arbeit;04:24;2021-08-03 08:01;2021-08-03 12:26; -Arbeit;02:58;2021-08-02 13:22;2021-08-02 16:20; -Mittagspause ;00:59;2021-08-02 12:22;2021-08-02 13:22; -Arbeit;04:13;2021-08-02 08:09;2021-08-02 12:22; Arbeit;04:19;2021-07-30 13:01;2021-07-30 17:20; Mittagspause ;00:45;2021-07-30 12:16;2021-07-30 13:01; Arbeit;04:22;2021-07-30 07:54;2021-07-30 12:16; @@ -188,91 +60,3 @@ Arbeit;03:49;2021-07-06 08:10;2021-07-06 11:59; Arbeit;03:32;2021-07-05 13:00;2021-07-05 16:33; Mittagspause ;00:59;2021-07-05 12:00;2021-07-05 13:00; Arbeit;03:48;2021-07-05 08:12;2021-07-05 12:00; -Arbeit;04:37;2021-07-02 12:42;2021-07-02 17:19; -Arbeit;03:45;2021-07-02 08:06;2021-07-02 11:52; -Arbeit;03:34;2021-07-01 13:15;2021-07-01 16:49; -Arbeit;04:06;2021-07-01 07:52;2021-07-01 11:59; -Arbeit;04:23;2021-06-30 13:17;2021-06-30 17:41; -Arbeit;04:16;2021-06-30 08:12;2021-06-30 12:29; -Arbeit;03:51;2021-06-29 13:08;2021-06-29 17:00; -Arbeit;04:14;2021-06-29 07:51;2021-06-29 12:06; -Arbeit;03:05;2021-06-28 13:34;2021-06-28 16:40; -Arbeit;04:23;2021-06-28 07:56;2021-06-28 12:19; -Arbeit;00:21;2021-06-25 17:44;2021-06-25 18:06; -Arbeit;03:15;2021-06-25 13:12;2021-06-25 16:27; -Arbeit;04:40;2021-06-25 07:35;2021-06-25 12:16; -Arbeit;02:55;2021-06-24 13:04;2021-06-24 16:00; -Arbeit;04:10;2021-06-24 08:00;2021-06-24 12:10; -Arbeit;02:57;2021-06-23 13:36;2021-06-23 16:34; -Arbeit;04:41;2021-06-23 07:57;2021-06-23 12:39; -Arbeit;02:55;2021-06-22 12:54;2021-06-22 15:50; -Arbeit;03:56;2021-06-22 07:58;2021-06-22 11:55; -Arbeit;03:03;2021-06-21 12:52;2021-06-21 15:55; -Arbeit;04:08;2021-06-21 07:53;2021-06-21 12:01; -Arbeit;03:45;2021-06-18 12:49;2021-06-18 16:34; -Arbeit;03:56;2021-06-18 07:57;2021-06-18 11:53; -Arbeit;05:06;2021-06-17 13:15;2021-06-17 18:22; -Arbeit;04:08;2021-06-17 08:08;2021-06-17 12:16; -Arbeit;04:31;2021-06-16 13:09;2021-06-16 17:40; -Arbeit;03:54;2021-06-16 08:20;2021-06-16 12:15; -Arbeit;04:34;2021-06-15 12:48;2021-06-15 17:22; -Arbeit;03:46;2021-06-15 08:11;2021-06-15 11:57; -Arbeit;02:36;2021-06-14 13:27;2021-06-14 16:04; -Arbeit;04:00;2021-06-14 08:10;2021-06-14 12:10; -Arbeit;03:46;2021-06-11 12:32;2021-06-11 16:19; -Arbeit;03:25;2021-06-11 08:09;2021-06-11 11:34; -Arbeit;02:27;2021-06-10 13:18;2021-06-10 15:46; -Arbeit;04:24;2021-06-10 08:05;2021-06-10 12:29; -Arbeit;04:26;2021-06-09 13:24;2021-06-09 17:50; -Arbeit;04:36;2021-06-09 07:47;2021-06-09 12:23; -Arbeit;03:35;2021-06-08 12:50;2021-06-08 16:25; -Arbeit;03:53;2021-06-08 07:58;2021-06-08 11:51; -Arbeit;03:04;2021-06-07 13:03;2021-06-07 16:08; -Arbeit;03:55;2021-06-07 08:20;2021-06-07 12:16; -Arbeit;03:12;2021-06-04 12:47;2021-06-04 16:00; -Arbeit;03:52;2021-06-04 08:13;2021-06-04 12:06; -Arbeit;04:09;2021-06-03 12:49;2021-06-03 16:59; -Arbeit;04:09;2021-06-03 07:45;2021-06-03 11:55; -Arbeit;04:07;2021-06-02 12:56;2021-06-02 17:03; -Arbeit;04:08;2021-06-02 07:50;2021-06-02 11:59; -Arbeit;03:55;2021-06-01 13:04;2021-06-01 17:00; -Arbeit;04:26;2021-06-01 07:48;2021-06-01 12:14; -Arbeit;03:36;2021-05-31 13:00;2021-05-31 16:37; -Arbeit;04:08;2021-05-31 08:17;2021-05-31 12:25; -Arbeit;02:53;2021-05-28 12:53;2021-05-28 15:46; -Arbeit;03:44;2021-05-28 08:10;2021-05-28 11:54; -Arbeit;03:52;2021-05-27 12:35;2021-05-27 16:28; -Arbeit;03:44;2021-05-27 08:06;2021-05-27 11:50; -Arbeit;02:26;2021-05-26 13:35;2021-05-26 16:01; -Arbeit;04:15;2021-05-26 08:35;2021-05-26 12:51; -Arbeit;03:44;2021-05-25 12:41;2021-05-25 16:26; -Arbeit;04:08;2021-05-25 07:45;2021-05-25 11:54; -Arbeit;03:41;2021-05-21 12:57;2021-05-21 16:38; -Arbeit;04:00;2021-05-21 07:55;2021-05-21 11:55; -Arbeit;04:03;2021-05-20 12:36;2021-05-20 16:40; -Arbeit;03:54;2021-05-20 08:03;2021-05-20 11:57; -Arbeit;04:06;2021-05-19 12:57;2021-05-19 17:03; -Arbeit;04:12;2021-05-19 08:00;2021-05-19 12:13; -Arbeit;04:11;2021-05-18 12:52;2021-05-18 17:03; -Arbeit;04:20;2021-05-18 07:50;2021-05-18 12:10; -Arbeit;03:20;2021-05-17 12:57;2021-05-17 16:17; -Arbeit;04:25;2021-05-17 07:49;2021-05-17 12:14; -Arbeit;03:04;2021-05-14 13:04;2021-05-14 16:08; -Arbeit;04:38;2021-05-14 07:50;2021-05-14 12:29; -Arbeit;03:12;2021-05-12 12:35;2021-05-12 15:47; -Arbeit;03:40;2021-05-12 07:55;2021-05-12 11:35; -Arbeit;03:34;2021-05-11 12:45;2021-05-11 16:19; -Arbeit;04:13;2021-05-11 07:48;2021-05-11 12:02; -Arbeit;03:37;2021-05-10 12:22;2021-05-10 16:00; -Arbeit;03:55;2021-05-10 07:52;2021-05-10 11:47; -Arbeit;03:32;2021-05-07 13:00;2021-05-07 16:33; -Arbeit;04:15;2021-05-07 07:53;2021-05-07 12:09; -Arbeit;03:28;2021-05-06 13:04;2021-05-06 16:32; -Arbeit;04:44;2021-05-06 08:01;2021-05-06 12:45; -Arbeit;03:13;2021-05-05 13:13;2021-05-05 16:27; -Arbeit;04:37;2021-05-05 07:49;2021-05-05 12:26; -Arbeit;02:51;2021-05-04 13:19;2021-05-04 16:11; -Arbeit;04:36;2021-05-04 07:40;2021-05-04 12:16; -Arbeit;04:13;2021-05-03 13:13;2021-05-03 17:26; -Arbeit;04:28;2021-05-03 08:01;2021-05-03 12:30; -Arbeit;03:42;2021-01-11 08:18;2021-01-11 12:01; -- 2.54.0