corrected overtime to become > 24 hours and negative
This commit is contained in:
@ -23,7 +23,7 @@ apply plugin: 'maven-publish'
|
||||
apply plugin: 'eclipse'
|
||||
|
||||
group = 'de.jottyfan'
|
||||
version = '20240103d'
|
||||
version = '20240104'
|
||||
def artifactId = 'timetrackjooq'
|
||||
def versionNumber = version
|
||||
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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;
|
||||
|
Reference in New Issue
Block a user