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'
|
||||
|
||||
group = 'de.jottyfan'
|
||||
version = '20240103b'
|
||||
version = '20240103c'
|
||||
def artifactId = 'timetrackjooq'
|
||||
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.VBilling;
|
||||
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.VDaylimits;
|
||||
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;
|
||||
|
||||
/**
|
||||
* The table <code>done.v_day</code>.
|
||||
*/
|
||||
public final VDay V_DAY = VDay.V_DAY;
|
||||
|
||||
/**
|
||||
* The table <code>done.v_daylimit</code>.
|
||||
*/
|
||||
@ -192,6 +198,7 @@ public class Done extends SchemaImpl {
|
||||
TRequiredWorktime.T_REQUIRED_WORKTIME,
|
||||
VBilling.V_BILLING,
|
||||
VCurrentOvertime.V_CURRENT_OVERTIME,
|
||||
VDay.V_DAY,
|
||||
VDaylimit.V_DAYLIMIT,
|
||||
VDaylimits.V_DAYLIMITS,
|
||||
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.VBilling;
|
||||
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.VDaylimits;
|
||||
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;
|
||||
|
||||
/**
|
||||
* The table <code>done.v_day</code>.
|
||||
*/
|
||||
public static final VDay V_DAY = VDay.V_DAY;
|
||||
|
||||
/**
|
||||
* 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;
|
||||
|
||||
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