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'
group = 'de.jottyfan'
version = '20240103d'
version = '20240104'
def artifactId = 'timetrackjooq'
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 java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.Arrays;
import java.util.List;
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, "");
/**
* 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>.
*/
@ -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, "");
/**
* 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) {
this(alias, aliased, null);
}
@ -189,14 +188,14 @@ public class TOvertime extends TableImpl<TOvertimeRecord> {
// -------------------------------------------------------------------------
@Override
public Row4<Integer, LocalTime, LocalDateTime, Integer> fieldsRow() {
public Row4<Integer, LocalDateTime, Integer, Integer> fieldsRow() {
return (Row4) super.fieldsRow();
}
/**
* 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));
}
@ -204,7 +203,7 @@ public class TOvertime extends TableImpl<TOvertimeRecord> {
* Convenience mapping calling {@link SelectField#convertFrom(Class,
* 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));
}
}

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.tables.records.VCurrentOvertimeRecord;
import java.time.LocalTime;
import java.math.BigDecimal;
import java.util.function.Function;
import org.jooq.Field;
@ -51,7 +51,7 @@ public class VCurrentOvertime extends TableImpl<VCurrentOvertimeRecord> {
/**
* 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>.
@ -145,14 +145,14 @@ public class VCurrentOvertime extends TableImpl<VCurrentOvertimeRecord> {
// -------------------------------------------------------------------------
@Override
public Row3<LocalTime, String, Integer> fieldsRow() {
public Row3<BigDecimal, String, Integer> fieldsRow() {
return (Row3) super.fieldsRow();
}
/**
* 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));
}
@ -160,7 +160,7 @@ public class VCurrentOvertime extends TableImpl<VCurrentOvertimeRecord> {
* Convenience mapping calling {@link SelectField#convertFrom(Class,
* 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));
}
}

View File

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

View File

@ -6,7 +6,7 @@ package de.jottyfan.timetrack.db.done.tables.records;
import de.jottyfan.timetrack.db.done.tables.VCurrentOvertime;
import java.time.LocalTime;
import java.math.BigDecimal;
import org.jooq.Field;
import org.jooq.Record3;
@ -18,22 +18,22 @@ import org.jooq.impl.TableRecordImpl;
* This class is generated by jOOQ.
*/
@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;
/**
* Setter for <code>done.v_current_overtime.overtime</code>.
*/
public void setOvertime(LocalTime value) {
public void setOvertime(BigDecimal value) {
set(0, value);
}
/**
* Getter for <code>done.v_current_overtime.overtime</code>.
*/
public LocalTime getOvertime() {
return (LocalTime) get(0);
public BigDecimal getOvertime() {
return (BigDecimal) get(0);
}
/**
@ -69,17 +69,17 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
// -------------------------------------------------------------------------
@Override
public Row3<LocalTime, String, Integer> fieldsRow() {
public Row3<BigDecimal, String, Integer> fieldsRow() {
return (Row3) super.fieldsRow();
}
@Override
public Row3<LocalTime, String, Integer> valuesRow() {
public Row3<BigDecimal, String, Integer> valuesRow() {
return (Row3) super.valuesRow();
}
@Override
public Field<LocalTime> field1() {
public Field<BigDecimal> field1() {
return VCurrentOvertime.V_CURRENT_OVERTIME.OVERTIME;
}
@ -94,7 +94,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
}
@Override
public LocalTime component1() {
public BigDecimal component1() {
return getOvertime();
}
@ -109,7 +109,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
}
@Override
public LocalTime value1() {
public BigDecimal value1() {
return getOvertime();
}
@ -124,7 +124,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
}
@Override
public VCurrentOvertimeRecord value1(LocalTime value) {
public VCurrentOvertimeRecord value1(BigDecimal value) {
setOvertime(value);
return this;
}
@ -142,7 +142,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
}
@Override
public VCurrentOvertimeRecord values(LocalTime value1, String value2, Integer value3) {
public VCurrentOvertimeRecord values(BigDecimal value1, String value2, Integer value3) {
value1(value1);
value2(value2);
value3(value3);
@ -163,7 +163,7 @@ public class VCurrentOvertimeRecord extends TableRecordImpl<VCurrentOvertimeReco
/**
* 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);
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 (
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,
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;
create view done.v_current_overtime as
select x.worktime_offset + sum(l.dayworktime - r.required) as overtime,
create or replace view done.v_current_overtime as
select x.overtime_minutes + extract(minute from sum(l.dayworktime - r.required)) as overtime,
to_char(now(), 'DD.MM.YYYY HH24:MI') as impact,
x.fk_login
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.t_required_worktime r on r.fk_login = x.fk_login and r.day = l.day
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;
@ -80,4 +80,4 @@ with x(dayworktime, day, fk_login, required, starttime, endtime) as (
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;