Compare commits
4 Commits
0.1.2
...
3e0f84f618
| Author | SHA1 | Date | |
|---|---|---|---|
| 3e0f84f618 | |||
| a9268988e1 | |||
| 6688128d30 | |||
| d955cb02b8 |
@@ -26,7 +26,7 @@ func (d *WorkDay) GetWorkDays(card_uid string, tsFrom, tsTo time.Time) []WorkDay
|
|||||||
|
|
||||||
qStr, err := DB.Prepare(`
|
qStr, err := DB.Prepare(`
|
||||||
WITH all_days AS (
|
WITH all_days AS (
|
||||||
SELECT generate_series($2, $3, INTERVAL '1 day')::DATE AS work_date
|
SELECT generate_series($2::DATE, $3::DATE - INTERVAL '1 day', INTERVAL '1 day')::DATE AS work_date
|
||||||
),
|
),
|
||||||
ordered_bookings AS (
|
ordered_bookings AS (
|
||||||
SELECT
|
SELECT
|
||||||
@@ -141,7 +141,7 @@ func (d *WorkDay) GetWorkDays(card_uid string, tsFrom, tsTo time.Time) []WorkDay
|
|||||||
|
|
||||||
func (d *WorkDay) calcPauseTime() {
|
func (d *WorkDay) calcPauseTime() {
|
||||||
if d.workTime > 6*time.Hour && d.pauseTime < 45*time.Minute {
|
if d.workTime > 6*time.Hour && d.pauseTime < 45*time.Minute {
|
||||||
if d.workTime < 9*time.Hour && d.pauseTime < 30*time.Minute {
|
if d.workTime <= (9*time.Hour) && d.pauseTime < 30*time.Minute {
|
||||||
diff := 30*time.Minute - d.pauseTime
|
diff := 30*time.Minute - d.pauseTime
|
||||||
d.workTime -= diff
|
d.workTime -= diff
|
||||||
d.pauseTime += diff
|
d.pauseTime += diff
|
||||||
@@ -155,7 +155,7 @@ func (d *WorkDay) calcPauseTime() {
|
|||||||
|
|
||||||
// Gets the duration someone worked that day
|
// Gets the duration someone worked that day
|
||||||
func (d *WorkDay) getWorkTime() {
|
func (d *WorkDay) getWorkTime() {
|
||||||
if len(d.Bookings) <= 1 && d.Bookings[0].CounterId == 0 {
|
if len(d.Bookings) < 1 {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
var workTime, pauseTime time.Duration
|
var workTime, pauseTime time.Duration
|
||||||
|
|||||||
@@ -66,7 +66,7 @@ templ dayComponent(workDay models.WorkDay) {
|
|||||||
if (workDay.Absence != models.Absence{}) {
|
if (workDay.Absence != models.Absence{}) {
|
||||||
<p>{ workDay.Absence.GetStringType() }</p>
|
<p>{ workDay.Absence.GetStringType() }</p>
|
||||||
}
|
}
|
||||||
if len(workDay.Bookings) <= 1 && (workDay.Absence == models.Absence{}) {
|
if len(workDay.Bookings) < 1 && (workDay.Absence == models.Absence{}) {
|
||||||
<p class="text group-[.edit]:hidden">Keine Buchung gefunden. Bitte Arbeitsstunden oder Grund der Abwesenheit eingeben!</p>
|
<p class="text group-[.edit]:hidden">Keine Buchung gefunden. Bitte Arbeitsstunden oder Grund der Abwesenheit eingeben!</p>
|
||||||
@absenceComponent(workDay)
|
@absenceComponent(workDay)
|
||||||
@newBookingComponent(workDay)
|
@newBookingComponent(workDay)
|
||||||
|
|||||||
@@ -264,7 +264,7 @@ func dayComponent(workDay models.WorkDay) templ.Component {
|
|||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(workDay.Bookings) <= 1 && (workDay.Absence == models.Absence{}) {
|
if len(workDay.Bookings) < 1 && (workDay.Absence == models.Absence{}) {
|
||||||
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<p class=\"text group-[.edit]:hidden\">Keine Buchung gefunden. Bitte Arbeitsstunden oder Grund der Abwesenheit eingeben!</p>")
|
templ_7745c5c3_Err = templruntime.WriteString(templ_7745c5c3_Buffer, 22, "<p class=\"text group-[.edit]:hidden\">Keine Buchung gefunden. Bitte Arbeitsstunden oder Grund der Abwesenheit eingeben!</p>")
|
||||||
if templ_7745c5c3_Err != nil {
|
if templ_7745c5c3_Err != nil {
|
||||||
return templ_7745c5c3_Err
|
return templ_7745c5c3_Err
|
||||||
|
|||||||
10
atlas.hcl
Normal file
10
atlas.hcl
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
# The "dev" environment represents our local testings.
|
||||||
|
env "local" {
|
||||||
|
url = "postgres://root:very_secure@:5432/arbeitszeitmessung?search_path=public&sslmode=disable"
|
||||||
|
migration {
|
||||||
|
dir = "file://migrations"
|
||||||
|
format = golang-migrate
|
||||||
|
}
|
||||||
|
dev = "docker://postgres/16/dev?search_path=public"
|
||||||
|
src = "file://schema.sql"
|
||||||
|
}
|
||||||
58
schema.sql
Normal file
58
schema.sql
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
-- Create "abwesenheit" table
|
||||||
|
CREATE TABLE "abwesenheit" (
|
||||||
|
"counter_id" bigserial NOT NULL,
|
||||||
|
"card_uid" character varying(255) NULL,
|
||||||
|
"abwesenheit_typ" smallint NULL,
|
||||||
|
"datum" timestamptz NULL DEFAULT (now())::date,
|
||||||
|
PRIMARY KEY ("counter_id")
|
||||||
|
);
|
||||||
|
-- Create "anwesenheit" table
|
||||||
|
CREATE TABLE "anwesenheit" (
|
||||||
|
"counter_id" bigserial NOT NULL,
|
||||||
|
"timestamp" timestamptz NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
"card_uid" character varying(255) NULL,
|
||||||
|
"check_in_out" smallint NULL,
|
||||||
|
"anwesenheit_type" smallint NULL,
|
||||||
|
"geraet_id" smallint NULL,
|
||||||
|
PRIMARY KEY ("counter_id")
|
||||||
|
);
|
||||||
|
-- Set comment to column: "check_in_out" on table: "anwesenheit"
|
||||||
|
COMMENT ON COLUMN "anwesenheit"."check_in_out" IS '1=Check In 2=Check Out , 3=Check in Manuell, 4=Check out manuell255=Automatic Check Out';
|
||||||
|
-- Set comment to column: "geraet_id" on table: "anwesenheit"
|
||||||
|
COMMENT ON COLUMN "anwesenheit"."geraet_id" IS 'ID des Lesegerätes';
|
||||||
|
-- Create "personal_daten" table
|
||||||
|
CREATE TABLE "personal_daten" (
|
||||||
|
"personal_nummer" integer NOT NULL,
|
||||||
|
"aktiv_beschaeftigt" boolean NULL,
|
||||||
|
"vorname" character varying(255) NULL,
|
||||||
|
"nachname" character varying(255) NULL,
|
||||||
|
"geburtsdatum" date NULL,
|
||||||
|
"plz" character varying(255) NULL,
|
||||||
|
"adresse" character varying(255) NULL,
|
||||||
|
"geschlecht" smallint NULL,
|
||||||
|
"card_uid" character varying(255) NULL,
|
||||||
|
"hauptbeschaeftigungs_ort" smallint NULL,
|
||||||
|
"arbeitszeit_per_tag" real NULL,
|
||||||
|
"arbeitszeit_min_start" time NULL,
|
||||||
|
"arbeitszeit_max_ende" time NULL,
|
||||||
|
"vorgesetzter_pers_nr" integer NULL,
|
||||||
|
PRIMARY KEY ("personal_nummer")
|
||||||
|
);
|
||||||
|
-- Set comment to column: "geschlecht" on table: "personal_daten"
|
||||||
|
COMMENT ON COLUMN "personal_daten"."geschlecht" IS '1==weiblich, 2==maennlich, 3==divers';
|
||||||
|
-- Create "user_password" table
|
||||||
|
CREATE TABLE "user_password" (
|
||||||
|
"personal_nummer" integer NOT NULL,
|
||||||
|
"pass_hash" text NULL,
|
||||||
|
"zuletzt_geandert" timestamp NULL DEFAULT CURRENT_TIMESTAMP,
|
||||||
|
PRIMARY KEY ("personal_nummer")
|
||||||
|
);
|
||||||
|
-- Create "wochen_report" table
|
||||||
|
CREATE TABLE "wochen_report" (
|
||||||
|
"id" serial NOT NULL,
|
||||||
|
"personal_nummer" integer NULL,
|
||||||
|
"woche_start" date NULL,
|
||||||
|
"bestaetigt" boolean NULL DEFAULT false,
|
||||||
|
PRIMARY KEY ("id"),
|
||||||
|
CONSTRAINT "wochen_report_personal_nummer_woche_start_key" UNIQUE ("personal_nummer", "woche_start")
|
||||||
|
);
|
||||||
Reference in New Issue
Block a user