corrected overtime to become > 24 hours and negative

This commit is contained in:
Jörg Henke
2024-01-04 11:24:39 +01:00
parent e52affc382
commit 14ece3eed2
6 changed files with 84 additions and 86 deletions

View File

@ -23,7 +23,7 @@ apply plugin: 'maven-publish'
apply plugin: 'eclipse' apply plugin: 'eclipse'
group = 'de.jottyfan' group = 'de.jottyfan'
version = '20240103d' version = '20240104'
def artifactId = 'timetrackjooq' def artifactId = 'timetrackjooq'
def versionNumber = version def versionNumber = version

View File

@ -10,7 +10,6 @@ import de.jottyfan.timetrack.db.done.tables.records.TOvertimeRecord;
import de.jottyfan.timetrack.db.profile.tables.TLogin; import de.jottyfan.timetrack.db.profile.tables.TLogin;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.function.Function; import java.util.function.Function;
@ -60,11 +59,6 @@ public class TOvertime extends TableImpl<TOvertimeRecord> {
*/ */
public final TableField<TOvertimeRecord, Integer> PK_OVERTIME = createField(DSL.name("pk_overtime"), SQLDataType.INTEGER.nullable(false).identity(true), this, ""); public final TableField<TOvertimeRecord, Integer> PK_OVERTIME = createField(DSL.name("pk_overtime"), SQLDataType.INTEGER.nullable(false).identity(true), this, "");
/**
* The column <code>done.t_overtime.worktime_offset</code>.
*/
public final TableField<TOvertimeRecord, LocalTime> WORKTIME_OFFSET = createField(DSL.name("worktime_offset"), SQLDataType.LOCALTIME(6).nullable(false), this, "");
/** /**
* The column <code>done.t_overtime.impact</code>. * The column <code>done.t_overtime.impact</code>.
*/ */
@ -75,6 +69,11 @@ public class TOvertime extends TableImpl<TOvertimeRecord> {
*/ */
public final TableField<TOvertimeRecord, Integer> FK_LOGIN = createField(DSL.name("fk_login"), SQLDataType.INTEGER.nullable(false), this, ""); public final TableField<TOvertimeRecord, Integer> FK_LOGIN = createField(DSL.name("fk_login"), SQLDataType.INTEGER.nullable(false), this, "");
/**
* The column <code>done.t_overtime.overtime_minutes</code>.
*/
public final TableField<TOvertimeRecord, Integer> OVERTIME_MINUTES = createField(DSL.name("overtime_minutes"), SQLDataType.INTEGER.nullable(false).defaultValue(DSL.field(DSL.raw("0"), SQLDataType.INTEGER)), this, "");
private TOvertime(Name alias, Table<TOvertimeRecord> aliased) { private TOvertime(Name alias, Table<TOvertimeRecord> aliased) {
this(alias, aliased, null); this(alias, aliased, null);
} }
@ -189,14 +188,14 @@ public class TOvertime extends TableImpl<TOvertimeRecord> {
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@Override @Override
public Row4<Integer, LocalTime, LocalDateTime, Integer> fieldsRow() { public Row4<Integer, LocalDateTime, Integer, Integer> fieldsRow() {
return (Row4) super.fieldsRow(); return (Row4) super.fieldsRow();
} }
/** /**
* Convenience mapping calling {@link SelectField#convertFrom(Function)}. * Convenience mapping calling {@link SelectField#convertFrom(Function)}.
*/ */
public <U> SelectField<U> mapping(Function4<? super Integer, ? super LocalTime, ? super LocalDateTime, ? super Integer, ? extends U> from) { public <U> SelectField<U> mapping(Function4<? super Integer, ? super LocalDateTime, ? super Integer, ? super Integer, ? extends U> from) {
return convertFrom(Records.mapping(from)); return convertFrom(Records.mapping(from));
} }
@ -204,7 +203,7 @@ public class TOvertime extends TableImpl<TOvertimeRecord> {
* Convenience mapping calling {@link SelectField#convertFrom(Class, * Convenience mapping calling {@link SelectField#convertFrom(Class,
* Function)}. * Function)}.
*/ */
public <U> SelectField<U> mapping(Class<U> toType, Function4<? super Integer, ? super LocalTime, ? super LocalDateTime, ? super Integer, ? extends U> from) { public <U> SelectField<U> mapping(Class<U> toType, Function4<? super Integer, ? super LocalDateTime, ? super Integer, ? super Integer, ? extends U> from) {
return convertFrom(toType, Records.mapping(from)); return convertFrom(toType, Records.mapping(from));
} }
} }

View File

@ -7,7 +7,7 @@ package de.jottyfan.timetrack.db.done.tables;
import de.jottyfan.timetrack.db.done.Done; import de.jottyfan.timetrack.db.done.Done;
import de.jottyfan.timetrack.db.done.tables.records.VCurrentOvertimeRecord; import de.jottyfan.timetrack.db.done.tables.records.VCurrentOvertimeRecord;
import java.time.LocalTime; import java.math.BigDecimal;
import java.util.function.Function; import java.util.function.Function;
import org.jooq.Field; import org.jooq.Field;
@ -51,7 +51,7 @@ public class VCurrentOvertime extends TableImpl<VCurrentOvertimeRecord> {
/** /**
* The column <code>done.v_current_overtime.overtime</code>. * The column <code>done.v_current_overtime.overtime</code>.
*/ */
public final TableField<VCurrentOvertimeRecord, LocalTime> OVERTIME = createField(DSL.name("overtime"), SQLDataType.LOCALTIME(6), this, ""); public final TableField<VCurrentOvertimeRecord, BigDecimal> OVERTIME = createField(DSL.name("overtime"), SQLDataType.NUMERIC, this, "");
/** /**
* The column <code>done.v_current_overtime.impact</code>. * The column <code>done.v_current_overtime.impact</code>.
@ -145,14 +145,14 @@ public class VCurrentOvertime extends TableImpl<VCurrentOvertimeRecord> {
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@Override @Override
public Row3<LocalTime, String, Integer> fieldsRow() { public Row3<BigDecimal, String, Integer> fieldsRow() {
return (Row3) super.fieldsRow(); return (Row3) super.fieldsRow();
} }
/** /**
* Convenience mapping calling {@link SelectField#convertFrom(Function)}. * Convenience mapping calling {@link SelectField#convertFrom(Function)}.
*/ */
public <U> SelectField<U> mapping(Function3<? super LocalTime, ? super String, ? super Integer, ? extends U> from) { public <U> SelectField<U> mapping(Function3<? super BigDecimal, ? super String, ? super Integer, ? extends U> from) {
return convertFrom(Records.mapping(from)); return convertFrom(Records.mapping(from));
} }
@ -160,7 +160,7 @@ public class VCurrentOvertime extends TableImpl<VCurrentOvertimeRecord> {
* Convenience mapping calling {@link SelectField#convertFrom(Class, * Convenience mapping calling {@link SelectField#convertFrom(Class,
* Function)}. * Function)}.
*/ */
public <U> SelectField<U> mapping(Class<U> toType, Function3<? super LocalTime, ? super String, ? super Integer, ? extends U> from) { public <U> SelectField<U> mapping(Class<U> toType, Function3<? super BigDecimal, ? super String, ? super Integer, ? extends U> from) {
return convertFrom(toType, Records.mapping(from)); return convertFrom(toType, Records.mapping(from));
} }
} }

View File

@ -7,7 +7,6 @@ package de.jottyfan.timetrack.db.done.tables.records;
import de.jottyfan.timetrack.db.done.tables.TOvertime; import de.jottyfan.timetrack.db.done.tables.TOvertime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.LocalTime;
import org.jooq.Field; import org.jooq.Field;
import org.jooq.Record1; import org.jooq.Record1;
@ -20,7 +19,7 @@ import org.jooq.impl.UpdatableRecordImpl;
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class TOvertimeRecord extends UpdatableRecordImpl<TOvertimeRecord> implements Record4<Integer, LocalTime, LocalDateTime, Integer> { public class TOvertimeRecord extends UpdatableRecordImpl<TOvertimeRecord> implements Record4<Integer, LocalDateTime, Integer, Integer> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -38,45 +37,45 @@ public class TOvertimeRecord extends UpdatableRecordImpl<TOvertimeRecord> implem
return (Integer) get(0); return (Integer) get(0);
} }
/**
* Setter for <code>done.t_overtime.worktime_offset</code>.
*/
public void setWorktimeOffset(LocalTime value) {
set(1, value);
}
/**
* Getter for <code>done.t_overtime.worktime_offset</code>.
*/
public LocalTime getWorktimeOffset() {
return (LocalTime) get(1);
}
/** /**
* Setter for <code>done.t_overtime.impact</code>. * Setter for <code>done.t_overtime.impact</code>.
*/ */
public void setImpact(LocalDateTime value) { public void setImpact(LocalDateTime value) {
set(2, value); set(1, value);
} }
/** /**
* Getter for <code>done.t_overtime.impact</code>. * Getter for <code>done.t_overtime.impact</code>.
*/ */
public LocalDateTime getImpact() { public LocalDateTime getImpact() {
return (LocalDateTime) get(2); return (LocalDateTime) get(1);
} }
/** /**
* Setter for <code>done.t_overtime.fk_login</code>. * Setter for <code>done.t_overtime.fk_login</code>.
*/ */
public void setFkLogin(Integer value) { public void setFkLogin(Integer value) {
set(3, value); set(2, value);
} }
/** /**
* Getter for <code>done.t_overtime.fk_login</code>. * Getter for <code>done.t_overtime.fk_login</code>.
*/ */
public Integer getFkLogin() { public Integer getFkLogin() {
return (Integer) get(2);
}
/**
* Setter for <code>done.t_overtime.overtime_minutes</code>.
*/
public void setOvertimeMinutes(Integer value) {
set(3, value);
}
/**
* Getter for <code>done.t_overtime.overtime_minutes</code>.
*/
public Integer getOvertimeMinutes() {
return (Integer) get(3); return (Integer) get(3);
} }
@ -94,12 +93,12 @@ public class TOvertimeRecord extends UpdatableRecordImpl<TOvertimeRecord> implem
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@Override @Override
public Row4<Integer, LocalTime, LocalDateTime, Integer> fieldsRow() { public Row4<Integer, LocalDateTime, Integer, Integer> fieldsRow() {
return (Row4) super.fieldsRow(); return (Row4) super.fieldsRow();
} }
@Override @Override
public Row4<Integer, LocalTime, LocalDateTime, Integer> valuesRow() { public Row4<Integer, LocalDateTime, Integer, Integer> valuesRow() {
return (Row4) super.valuesRow(); return (Row4) super.valuesRow();
} }
@ -109,60 +108,60 @@ public class TOvertimeRecord extends UpdatableRecordImpl<TOvertimeRecord> implem
} }
@Override @Override
public Field<LocalTime> field2() { public Field<LocalDateTime> field2() {
return TOvertime.T_OVERTIME.WORKTIME_OFFSET;
}
@Override
public Field<LocalDateTime> field3() {
return TOvertime.T_OVERTIME.IMPACT; return TOvertime.T_OVERTIME.IMPACT;
} }
@Override @Override
public Field<Integer> field4() { public Field<Integer> field3() {
return TOvertime.T_OVERTIME.FK_LOGIN; return TOvertime.T_OVERTIME.FK_LOGIN;
} }
@Override
public Field<Integer> field4() {
return TOvertime.T_OVERTIME.OVERTIME_MINUTES;
}
@Override @Override
public Integer component1() { public Integer component1() {
return getPkOvertime(); return getPkOvertime();
} }
@Override @Override
public LocalTime component2() { public LocalDateTime component2() {
return getWorktimeOffset();
}
@Override
public LocalDateTime component3() {
return getImpact(); return getImpact();
} }
@Override @Override
public Integer component4() { public Integer component3() {
return getFkLogin(); return getFkLogin();
} }
@Override
public Integer component4() {
return getOvertimeMinutes();
}
@Override @Override
public Integer value1() { public Integer value1() {
return getPkOvertime(); return getPkOvertime();
} }
@Override @Override
public LocalTime value2() { public LocalDateTime value2() {
return getWorktimeOffset();
}
@Override
public LocalDateTime value3() {
return getImpact(); return getImpact();
} }
@Override @Override
public Integer value4() { public Integer value3() {
return getFkLogin(); return getFkLogin();
} }
@Override
public Integer value4() {
return getOvertimeMinutes();
}
@Override @Override
public TOvertimeRecord value1(Integer value) { public TOvertimeRecord value1(Integer value) {
setPkOvertime(value); setPkOvertime(value);
@ -170,25 +169,25 @@ public class TOvertimeRecord extends UpdatableRecordImpl<TOvertimeRecord> implem
} }
@Override @Override
public TOvertimeRecord value2(LocalTime value) { public TOvertimeRecord value2(LocalDateTime value) {
setWorktimeOffset(value);
return this;
}
@Override
public TOvertimeRecord value3(LocalDateTime value) {
setImpact(value); setImpact(value);
return this; return this;
} }
@Override @Override
public TOvertimeRecord value4(Integer value) { public TOvertimeRecord value3(Integer value) {
setFkLogin(value); setFkLogin(value);
return this; return this;
} }
@Override @Override
public TOvertimeRecord values(Integer value1, LocalTime value2, LocalDateTime value3, Integer value4) { public TOvertimeRecord value4(Integer value) {
setOvertimeMinutes(value);
return this;
}
@Override
public TOvertimeRecord values(Integer value1, LocalDateTime value2, Integer value3, Integer value4) {
value1(value1); value1(value1);
value2(value2); value2(value2);
value3(value3); value3(value3);
@ -210,13 +209,13 @@ public class TOvertimeRecord extends UpdatableRecordImpl<TOvertimeRecord> implem
/** /**
* Create a detached, initialised TOvertimeRecord * Create a detached, initialised TOvertimeRecord
*/ */
public TOvertimeRecord(Integer pkOvertime, LocalTime worktimeOffset, LocalDateTime impact, Integer fkLogin) { public TOvertimeRecord(Integer pkOvertime, LocalDateTime impact, Integer fkLogin, Integer overtimeMinutes) {
super(TOvertime.T_OVERTIME); super(TOvertime.T_OVERTIME);
setPkOvertime(pkOvertime); setPkOvertime(pkOvertime);
setWorktimeOffset(worktimeOffset);
setImpact(impact); setImpact(impact);
setFkLogin(fkLogin); setFkLogin(fkLogin);
setOvertimeMinutes(overtimeMinutes);
resetChangedOnNotNull(); resetChangedOnNotNull();
} }
} }

View File

@ -6,7 +6,7 @@ package de.jottyfan.timetrack.db.done.tables.records;
import de.jottyfan.timetrack.db.done.tables.VCurrentOvertime; import de.jottyfan.timetrack.db.done.tables.VCurrentOvertime;
import java.time.LocalTime; import java.math.BigDecimal;
import org.jooq.Field; import org.jooq.Field;
import org.jooq.Record3; import org.jooq.Record3;
@ -18,22 +18,22 @@ import org.jooq.impl.TableRecordImpl;
* This class is generated by jOOQ. * This class is generated by jOOQ.
*/ */
@SuppressWarnings({ "all", "unchecked", "rawtypes" }) @SuppressWarnings({ "all", "unchecked", "rawtypes" })
public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeRecord> implements Record3<LocalTime, String, Integer> { public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeRecord> implements Record3<BigDecimal, String, Integer> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* Setter for <code>done.v_current_overtime.overtime</code>. * Setter for <code>done.v_current_overtime.overtime</code>.
*/ */
public void setOvertime(LocalTime value) { public void setOvertime(BigDecimal value) {
set(0, value); set(0, value);
} }
/** /**
* Getter for <code>done.v_current_overtime.overtime</code>. * Getter for <code>done.v_current_overtime.overtime</code>.
*/ */
public LocalTime getOvertime() { public BigDecimal getOvertime() {
return (LocalTime) get(0); return (BigDecimal) get(0);
} }
/** /**
@ -69,17 +69,17 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
// ------------------------------------------------------------------------- // -------------------------------------------------------------------------
@Override @Override
public Row3<LocalTime, String, Integer> fieldsRow() { public Row3<BigDecimal, String, Integer> fieldsRow() {
return (Row3) super.fieldsRow(); return (Row3) super.fieldsRow();
} }
@Override @Override
public Row3<LocalTime, String, Integer> valuesRow() { public Row3<BigDecimal, String, Integer> valuesRow() {
return (Row3) super.valuesRow(); return (Row3) super.valuesRow();
} }
@Override @Override
public Field<LocalTime> field1() { public Field<BigDecimal> field1() {
return VCurrentOvertime.V_CURRENT_OVERTIME.OVERTIME; return VCurrentOvertime.V_CURRENT_OVERTIME.OVERTIME;
} }
@ -94,7 +94,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
} }
@Override @Override
public LocalTime component1() { public BigDecimal component1() {
return getOvertime(); return getOvertime();
} }
@ -109,7 +109,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
} }
@Override @Override
public LocalTime value1() { public BigDecimal value1() {
return getOvertime(); return getOvertime();
} }
@ -124,7 +124,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
} }
@Override @Override
public VCurrentOvertimeRecord value1(LocalTime value) { public VCurrentOvertimeRecord value1(BigDecimal value) {
setOvertime(value); setOvertime(value);
return this; return this;
} }
@ -142,7 +142,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
} }
@Override @Override
public VCurrentOvertimeRecord values(LocalTime value1, String value2, Integer value3) { public VCurrentOvertimeRecord values(BigDecimal value1, String value2, Integer value3) {
value1(value1); value1(value1);
value2(value2); value2(value2);
value3(value3); value3(value3);
@ -163,7 +163,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
/** /**
* Create a detached, initialised VCurrentOvertimeRecord * Create a detached, initialised VCurrentOvertimeRecord
*/ */
public VCurrentOvertimeRecord(LocalTime overtime, String impact, Integer fkLogin) { public VCurrentOvertimeRecord(BigDecimal overtime, String impact, Integer fkLogin) {
super(VCurrentOvertime.V_CURRENT_OVERTIME); super(VCurrentOvertime.V_CURRENT_OVERTIME);
setOvertime(overtime); setOvertime(overtime);

View File

@ -10,7 +10,7 @@ grant select,insert,update,delete on done.t_required_worktime to timetrack;
create table done.t_overtime ( create table done.t_overtime (
pk_overtime int primary key generated always as identity, pk_overtime int primary key generated always as identity,
worktime_offset time without time zone not null, overtime_minutes int not null,
impact timestamp without time zone not null, impact timestamp without time zone not null,
fk_login int not null unique references profile.t_login(pk) fk_login int not null unique references profile.t_login(pk)
); );
@ -53,15 +53,15 @@ with x(dayworktime, day, fk_login) as (
grant select on done.v_daylimit to timetrack; grant select on done.v_daylimit to timetrack;
create view done.v_current_overtime as create or replace view done.v_current_overtime as
select x.worktime_offset + sum(l.dayworktime - r.required) as overtime, select x.overtime_minutes + extract(minute from sum(l.dayworktime - r.required)) as overtime,
to_char(now(), 'DD.MM.YYYY HH24:MI') as impact, to_char(now(), 'DD.MM.YYYY HH24:MI') as impact,
x.fk_login x.fk_login
from done.t_overtime x from done.t_overtime x
left join done.v_daylimit l on l.fk_login = x.fk_login and l.day >= x.impact left join done.v_daylimit l on l.fk_login = x.fk_login and l.day >= x.impact
left join done.t_required_worktime r on r.fk_login = x.fk_login and r.day = l.day left join done.t_required_worktime r on r.fk_login = x.fk_login and r.day = l.day
where l.day < now() where l.day < now()
group by x.worktime_offset, x.fk_login; group by x.overtime_minutes, x.fk_login;
grant select on done.v_current_overtime to timetrack; grant select on done.v_current_overtime to timetrack;
@ -80,4 +80,4 @@ with x(dayworktime, day, fk_login, required, starttime, endtime) as (
grant select on done.v_day to timetrack; grant select on done.v_day to timetrack;
create or replace view done.v_version as select 20240103 as version; create or replace view done.v_version as select 20240104 as version;