added relevant view for the daily summary: v_day
This commit is contained in:
@ -23,7 +23,7 @@ apply plugin: 'maven-publish'
|
|||||||
apply plugin: 'eclipse'
|
apply plugin: 'eclipse'
|
||||||
|
|
||||||
group = 'de.jottyfan'
|
group = 'de.jottyfan'
|
||||||
version = '20240103b'
|
version = '20240103c'
|
||||||
def artifactId = 'timetrackjooq'
|
def artifactId = 'timetrackjooq'
|
||||||
def versionNumber = version
|
def versionNumber = version
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@ import de.jottyfan.timetrack.db.done.tables.TProject;
|
|||||||
import de.jottyfan.timetrack.db.done.tables.TRequiredWorktime;
|
import de.jottyfan.timetrack.db.done.tables.TRequiredWorktime;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VBilling;
|
import de.jottyfan.timetrack.db.done.tables.VBilling;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VCurrentOvertime;
|
import de.jottyfan.timetrack.db.done.tables.VCurrentOvertime;
|
||||||
|
import de.jottyfan.timetrack.db.done.tables.VDay;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VDaylimit;
|
import de.jottyfan.timetrack.db.done.tables.VDaylimit;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VDaylimits;
|
import de.jottyfan.timetrack.db.done.tables.VDaylimits;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VDone;
|
import de.jottyfan.timetrack.db.done.tables.VDone;
|
||||||
@ -105,6 +106,11 @@ public class Done extends SchemaImpl {
|
|||||||
*/
|
*/
|
||||||
public final VCurrentOvertime V_CURRENT_OVERTIME = VCurrentOvertime.V_CURRENT_OVERTIME;
|
public final VCurrentOvertime V_CURRENT_OVERTIME = VCurrentOvertime.V_CURRENT_OVERTIME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The table <code>done.v_day</code>.
|
||||||
|
*/
|
||||||
|
public final VDay V_DAY = VDay.V_DAY;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The table <code>done.v_daylimit</code>.
|
* The table <code>done.v_daylimit</code>.
|
||||||
*/
|
*/
|
||||||
@ -192,6 +198,7 @@ public class Done extends SchemaImpl {
|
|||||||
TRequiredWorktime.T_REQUIRED_WORKTIME,
|
TRequiredWorktime.T_REQUIRED_WORKTIME,
|
||||||
VBilling.V_BILLING,
|
VBilling.V_BILLING,
|
||||||
VCurrentOvertime.V_CURRENT_OVERTIME,
|
VCurrentOvertime.V_CURRENT_OVERTIME,
|
||||||
|
VDay.V_DAY,
|
||||||
VDaylimit.V_DAYLIMIT,
|
VDaylimit.V_DAYLIMIT,
|
||||||
VDaylimits.V_DAYLIMITS,
|
VDaylimits.V_DAYLIMITS,
|
||||||
VDone.V_DONE,
|
VDone.V_DONE,
|
||||||
|
@ -15,6 +15,7 @@ import de.jottyfan.timetrack.db.done.tables.TProject;
|
|||||||
import de.jottyfan.timetrack.db.done.tables.TRequiredWorktime;
|
import de.jottyfan.timetrack.db.done.tables.TRequiredWorktime;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VBilling;
|
import de.jottyfan.timetrack.db.done.tables.VBilling;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VCurrentOvertime;
|
import de.jottyfan.timetrack.db.done.tables.VCurrentOvertime;
|
||||||
|
import de.jottyfan.timetrack.db.done.tables.VDay;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VDaylimit;
|
import de.jottyfan.timetrack.db.done.tables.VDaylimit;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VDaylimits;
|
import de.jottyfan.timetrack.db.done.tables.VDaylimits;
|
||||||
import de.jottyfan.timetrack.db.done.tables.VDone;
|
import de.jottyfan.timetrack.db.done.tables.VDone;
|
||||||
@ -90,6 +91,11 @@ public class Tables {
|
|||||||
*/
|
*/
|
||||||
public static final VCurrentOvertime V_CURRENT_OVERTIME = VCurrentOvertime.V_CURRENT_OVERTIME;
|
public static final VCurrentOvertime V_CURRENT_OVERTIME = VCurrentOvertime.V_CURRENT_OVERTIME;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The table <code>done.v_day</code>.
|
||||||
|
*/
|
||||||
|
public static final VDay V_DAY = VDay.V_DAY;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The table <code>done.v_daylimit</code>.
|
* The table <code>done.v_daylimit</code>.
|
||||||
*/
|
*/
|
||||||
|
177
src/main/java/de/jottyfan/timetrack/db/done/tables/VDay.java
Normal file
177
src/main/java/de/jottyfan/timetrack/db/done/tables/VDay.java
Normal file
@ -0,0 +1,177 @@
|
|||||||
|
/*
|
||||||
|
* This file is generated by jOOQ.
|
||||||
|
*/
|
||||||
|
package de.jottyfan.timetrack.db.done.tables;
|
||||||
|
|
||||||
|
|
||||||
|
import de.jottyfan.timetrack.db.done.Done;
|
||||||
|
import de.jottyfan.timetrack.db.done.tables.records.VDayRecord;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.util.function.Function;
|
||||||
|
|
||||||
|
import org.jooq.Field;
|
||||||
|
import org.jooq.ForeignKey;
|
||||||
|
import org.jooq.Function5;
|
||||||
|
import org.jooq.Name;
|
||||||
|
import org.jooq.Record;
|
||||||
|
import org.jooq.Records;
|
||||||
|
import org.jooq.Row5;
|
||||||
|
import org.jooq.Schema;
|
||||||
|
import org.jooq.SelectField;
|
||||||
|
import org.jooq.Table;
|
||||||
|
import org.jooq.TableField;
|
||||||
|
import org.jooq.TableOptions;
|
||||||
|
import org.jooq.impl.DSL;
|
||||||
|
import org.jooq.impl.SQLDataType;
|
||||||
|
import org.jooq.impl.TableImpl;
|
||||||
|
import org.jooq.types.YearToSecond;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is generated by jOOQ.
|
||||||
|
*/
|
||||||
|
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
|
||||||
|
public class VDay extends TableImpl<VDayRecord> {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The reference instance of <code>done.v_day</code>
|
||||||
|
*/
|
||||||
|
public static final VDay V_DAY = new VDay();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The class holding records for this type
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public Class<VDayRecord> getRecordType() {
|
||||||
|
return VDayRecord.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The column <code>done.v_day.day</code>.
|
||||||
|
*/
|
||||||
|
public final TableField<VDayRecord, LocalDate> DAY = createField(DSL.name("day"), SQLDataType.LOCALDATE, this, "");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The column <code>done.v_day.worktime</code>.
|
||||||
|
*/
|
||||||
|
public final TableField<VDayRecord, YearToSecond> WORKTIME = createField(DSL.name("worktime"), SQLDataType.INTERVAL, this, "");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The column <code>done.v_day.breaktime</code>.
|
||||||
|
*/
|
||||||
|
public final TableField<VDayRecord, YearToSecond> BREAKTIME = createField(DSL.name("breaktime"), SQLDataType.INTERVAL, this, "");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The column <code>done.v_day.day_overtime</code>.
|
||||||
|
*/
|
||||||
|
public final TableField<VDayRecord, YearToSecond> DAY_OVERTIME = createField(DSL.name("day_overtime"), SQLDataType.INTERVAL, this, "");
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The column <code>done.v_day.fk_login</code>.
|
||||||
|
*/
|
||||||
|
public final TableField<VDayRecord, Integer> FK_LOGIN = createField(DSL.name("fk_login"), SQLDataType.INTEGER, this, "");
|
||||||
|
|
||||||
|
private VDay(Name alias, Table<VDayRecord> aliased) {
|
||||||
|
this(alias, aliased, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private VDay(Name alias, Table<VDayRecord> aliased, Field<?>[] parameters) {
|
||||||
|
super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.view());
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an aliased <code>done.v_day</code> table reference
|
||||||
|
*/
|
||||||
|
public VDay(String alias) {
|
||||||
|
this(DSL.name(alias), V_DAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create an aliased <code>done.v_day</code> table reference
|
||||||
|
*/
|
||||||
|
public VDay(Name alias) {
|
||||||
|
this(alias, V_DAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a <code>done.v_day</code> table reference
|
||||||
|
*/
|
||||||
|
public VDay() {
|
||||||
|
this(DSL.name("v_day"), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public <O extends Record> VDay(Table<O> child, ForeignKey<O, VDayRecord> key) {
|
||||||
|
super(child, key, V_DAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Schema getSchema() {
|
||||||
|
return aliased() ? null : Done.DONE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDay as(String alias) {
|
||||||
|
return new VDay(DSL.name(alias), this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDay as(Name alias) {
|
||||||
|
return new VDay(alias, this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDay as(Table<?> alias) {
|
||||||
|
return new VDay(alias.getQualifiedName(), this);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rename this table
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public VDay rename(String name) {
|
||||||
|
return new VDay(DSL.name(name), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rename this table
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public VDay rename(Name name) {
|
||||||
|
return new VDay(name, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Rename this table
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
public VDay rename(Table<?> name) {
|
||||||
|
return new VDay(name.getQualifiedName(), null);
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
// Row5 type methods
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Row5<LocalDate, YearToSecond, YearToSecond, YearToSecond, Integer> fieldsRow() {
|
||||||
|
return (Row5) super.fieldsRow();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convenience mapping calling {@link SelectField#convertFrom(Function)}.
|
||||||
|
*/
|
||||||
|
public <U> SelectField<U> mapping(Function5<? super LocalDate, ? super YearToSecond, ? super YearToSecond, ? super YearToSecond, ? super Integer, ? extends U> from) {
|
||||||
|
return convertFrom(Records.mapping(from));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Convenience mapping calling {@link SelectField#convertFrom(Class,
|
||||||
|
* Function)}.
|
||||||
|
*/
|
||||||
|
public <U> SelectField<U> mapping(Class<U> toType, Function5<? super LocalDate, ? super YearToSecond, ? super YearToSecond, ? super YearToSecond, ? super Integer, ? extends U> from) {
|
||||||
|
return convertFrom(toType, Records.mapping(from));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,249 @@
|
|||||||
|
/*
|
||||||
|
* This file is generated by jOOQ.
|
||||||
|
*/
|
||||||
|
package de.jottyfan.timetrack.db.done.tables.records;
|
||||||
|
|
||||||
|
|
||||||
|
import de.jottyfan.timetrack.db.done.tables.VDay;
|
||||||
|
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
import org.jooq.Field;
|
||||||
|
import org.jooq.Record5;
|
||||||
|
import org.jooq.Row5;
|
||||||
|
import org.jooq.impl.TableRecordImpl;
|
||||||
|
import org.jooq.types.YearToSecond;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This class is generated by jOOQ.
|
||||||
|
*/
|
||||||
|
@SuppressWarnings({ "all", "unchecked", "rawtypes" })
|
||||||
|
public class VDayRecord extends TableRecordImpl<VDayRecord> implements Record5<LocalDate, YearToSecond, YearToSecond, YearToSecond, Integer> {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter for <code>done.v_day.day</code>.
|
||||||
|
*/
|
||||||
|
public void setDay(LocalDate value) {
|
||||||
|
set(0, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter for <code>done.v_day.day</code>.
|
||||||
|
*/
|
||||||
|
public LocalDate getDay() {
|
||||||
|
return (LocalDate) get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter for <code>done.v_day.worktime</code>.
|
||||||
|
*/
|
||||||
|
public void setWorktime(YearToSecond value) {
|
||||||
|
set(1, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter for <code>done.v_day.worktime</code>.
|
||||||
|
*/
|
||||||
|
public YearToSecond getWorktime() {
|
||||||
|
return (YearToSecond) get(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter for <code>done.v_day.breaktime</code>.
|
||||||
|
*/
|
||||||
|
public void setBreaktime(YearToSecond value) {
|
||||||
|
set(2, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter for <code>done.v_day.breaktime</code>.
|
||||||
|
*/
|
||||||
|
public YearToSecond getBreaktime() {
|
||||||
|
return (YearToSecond) get(2);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter for <code>done.v_day.day_overtime</code>.
|
||||||
|
*/
|
||||||
|
public void setDayOvertime(YearToSecond value) {
|
||||||
|
set(3, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter for <code>done.v_day.day_overtime</code>.
|
||||||
|
*/
|
||||||
|
public YearToSecond getDayOvertime() {
|
||||||
|
return (YearToSecond) get(3);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Setter for <code>done.v_day.fk_login</code>.
|
||||||
|
*/
|
||||||
|
public void setFkLogin(Integer value) {
|
||||||
|
set(4, value);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Getter for <code>done.v_day.fk_login</code>.
|
||||||
|
*/
|
||||||
|
public Integer getFkLogin() {
|
||||||
|
return (Integer) get(4);
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
// Record5 type implementation
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Row5<LocalDate, YearToSecond, YearToSecond, YearToSecond, Integer> fieldsRow() {
|
||||||
|
return (Row5) super.fieldsRow();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Row5<LocalDate, YearToSecond, YearToSecond, YearToSecond, Integer> valuesRow() {
|
||||||
|
return (Row5) super.valuesRow();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Field<LocalDate> field1() {
|
||||||
|
return VDay.V_DAY.DAY;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Field<YearToSecond> field2() {
|
||||||
|
return VDay.V_DAY.WORKTIME;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Field<YearToSecond> field3() {
|
||||||
|
return VDay.V_DAY.BREAKTIME;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Field<YearToSecond> field4() {
|
||||||
|
return VDay.V_DAY.DAY_OVERTIME;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Field<Integer> field5() {
|
||||||
|
return VDay.V_DAY.FK_LOGIN;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LocalDate component1() {
|
||||||
|
return getDay();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public YearToSecond component2() {
|
||||||
|
return getWorktime();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public YearToSecond component3() {
|
||||||
|
return getBreaktime();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public YearToSecond component4() {
|
||||||
|
return getDayOvertime();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer component5() {
|
||||||
|
return getFkLogin();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public LocalDate value1() {
|
||||||
|
return getDay();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public YearToSecond value2() {
|
||||||
|
return getWorktime();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public YearToSecond value3() {
|
||||||
|
return getBreaktime();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public YearToSecond value4() {
|
||||||
|
return getDayOvertime();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer value5() {
|
||||||
|
return getFkLogin();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDayRecord value1(LocalDate value) {
|
||||||
|
setDay(value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDayRecord value2(YearToSecond value) {
|
||||||
|
setWorktime(value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDayRecord value3(YearToSecond value) {
|
||||||
|
setBreaktime(value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDayRecord value4(YearToSecond value) {
|
||||||
|
setDayOvertime(value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDayRecord value5(Integer value) {
|
||||||
|
setFkLogin(value);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public VDayRecord values(LocalDate value1, YearToSecond value2, YearToSecond value3, YearToSecond value4, Integer value5) {
|
||||||
|
value1(value1);
|
||||||
|
value2(value2);
|
||||||
|
value3(value3);
|
||||||
|
value4(value4);
|
||||||
|
value5(value5);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
// Constructors
|
||||||
|
// -------------------------------------------------------------------------
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a detached VDayRecord
|
||||||
|
*/
|
||||||
|
public VDayRecord() {
|
||||||
|
super(VDay.V_DAY);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create a detached, initialised VDayRecord
|
||||||
|
*/
|
||||||
|
public VDayRecord(LocalDate day, YearToSecond worktime, YearToSecond breaktime, YearToSecond dayOvertime, Integer fkLogin) {
|
||||||
|
super(VDay.V_DAY);
|
||||||
|
|
||||||
|
setDay(day);
|
||||||
|
setWorktime(worktime);
|
||||||
|
setBreaktime(breaktime);
|
||||||
|
setDayOvertime(dayOvertime);
|
||||||
|
setFkLogin(fkLogin);
|
||||||
|
resetChangedOnNotNull();
|
||||||
|
}
|
||||||
|
}
|
@ -65,4 +65,18 @@ group by x.worktime_offset, x.fk_login;
|
|||||||
|
|
||||||
grant select on done.v_current_overtime to timetrack;
|
grant select on done.v_current_overtime to timetrack;
|
||||||
|
|
||||||
create view done.v_version as select 20240103 as version;
|
create view done.v_day as
|
||||||
|
with x(dayworktime, day, fk_login, required, starttime, endtime) as (
|
||||||
|
select sum(d.dayworktime), d.day, d.fk_login, r.required,
|
||||||
|
min(d.daytime_from), max(d.daytime_until)
|
||||||
|
from done.v_daylimit d
|
||||||
|
left join done.t_required_worktime r on r.day = d.day and r.fk_login = d.fk_login
|
||||||
|
group by d.day, d.fk_login, r.required
|
||||||
|
) select day, dayworktime as worktime, endtime - starttime - dayworktime as breaktime,
|
||||||
|
dayworktime - required as day_overtime, fk_login
|
||||||
|
from x
|
||||||
|
order by day desc, fk_login;
|
||||||
|
|
||||||
|
grant select on done.v_day to timetrack;
|
||||||
|
|
||||||
|
create or replace view done.v_version as select 20240103 as version;
|
||||||
|
Reference in New Issue
Block a user