added billing
This commit is contained in:
		| @@ -5,6 +5,7 @@ package de.jottyfan.timetrack.db.done; | ||||
|  | ||||
|  | ||||
| import de.jottyfan.timetrack.db.DefaultCatalog; | ||||
| import de.jottyfan.timetrack.db.done.tables.TBilling; | ||||
| import de.jottyfan.timetrack.db.done.tables.TDone; | ||||
| import de.jottyfan.timetrack.db.done.tables.TJob; | ||||
| import de.jottyfan.timetrack.db.done.tables.TModule; | ||||
| @@ -14,7 +15,6 @@ import de.jottyfan.timetrack.db.done.tables.VDaylimits; | ||||
| import de.jottyfan.timetrack.db.done.tables.VDaysummary; | ||||
| import de.jottyfan.timetrack.db.done.tables.VDone; | ||||
| import de.jottyfan.timetrack.db.done.tables.VDuration; | ||||
| import de.jottyfan.timetrack.db.done.tables.VEucanshare; | ||||
| import de.jottyfan.timetrack.db.done.tables.VHamster; | ||||
| import de.jottyfan.timetrack.db.done.tables.VHamstersummary; | ||||
| import de.jottyfan.timetrack.db.done.tables.VTasklist; | ||||
| @@ -43,6 +43,11 @@ public class Done extends SchemaImpl { | ||||
|      */ | ||||
|     public static final Done DONE = new Done(); | ||||
|  | ||||
|     /** | ||||
|      * The table <code>done.t_billing</code>. | ||||
|      */ | ||||
|     public final TBilling T_BILLING = TBilling.T_BILLING; | ||||
|  | ||||
|     /** | ||||
|      * The table <code>done.t_done</code>. | ||||
|      */ | ||||
| @@ -88,11 +93,6 @@ public class Done extends SchemaImpl { | ||||
|      */ | ||||
|     public final VDuration V_DURATION = VDuration.V_DURATION; | ||||
|  | ||||
|     /** | ||||
|      * The table <code>done.v_eucanshare</code>. | ||||
|      */ | ||||
|     public final VEucanshare V_EUCANSHARE = VEucanshare.V_EUCANSHARE; | ||||
|  | ||||
|     /** | ||||
|      * The table <code>done.v_hamster</code>. | ||||
|      */ | ||||
| @@ -139,6 +139,7 @@ public class Done extends SchemaImpl { | ||||
|     @Override | ||||
|     public final List<Table<?>> getTables() { | ||||
|         return Arrays.<Table<?>>asList( | ||||
|             TBilling.T_BILLING, | ||||
|             TDone.T_DONE, | ||||
|             TJob.T_JOB, | ||||
|             TModule.T_MODULE, | ||||
| @@ -148,7 +149,6 @@ public class Done extends SchemaImpl { | ||||
|             VDaysummary.V_DAYSUMMARY, | ||||
|             VDone.V_DONE, | ||||
|             VDuration.V_DURATION, | ||||
|             VEucanshare.V_EUCANSHARE, | ||||
|             VHamster.V_HAMSTER, | ||||
|             VHamstersummary.V_HAMSTERSUMMARY, | ||||
|             VTasklist.V_TASKLIST, | ||||
|   | ||||
| @@ -4,10 +4,12 @@ | ||||
| package de.jottyfan.timetrack.db.done; | ||||
|  | ||||
|  | ||||
| import de.jottyfan.timetrack.db.done.tables.TBilling; | ||||
| import de.jottyfan.timetrack.db.done.tables.TDone; | ||||
| import de.jottyfan.timetrack.db.done.tables.TJob; | ||||
| import de.jottyfan.timetrack.db.done.tables.TModule; | ||||
| import de.jottyfan.timetrack.db.done.tables.TProject; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TDoneRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; | ||||
| @@ -33,6 +35,9 @@ public class Keys { | ||||
|     // UNIQUE and PRIMARY KEY definitions | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     public static final UniqueKey<TBillingRecord> T_BILLING_NAME_KEY = Internal.createUniqueKey(TBilling.T_BILLING, DSL.name("t_billing_name_key"), new TableField[] { TBilling.T_BILLING.NAME }, true); | ||||
|     public static final UniqueKey<TBillingRecord> T_BILLING_PKEY = Internal.createUniqueKey(TBilling.T_BILLING, DSL.name("t_billing_pkey"), new TableField[] { TBilling.T_BILLING.PK }, true); | ||||
|     public static final UniqueKey<TBillingRecord> T_BILLING_SHORTCUT_KEY = Internal.createUniqueKey(TBilling.T_BILLING, DSL.name("t_billing_shortcut_key"), new TableField[] { TBilling.T_BILLING.SHORTCUT }, true); | ||||
|     public static final UniqueKey<TDoneRecord> T_DONE_PKEY = Internal.createUniqueKey(TDone.T_DONE, DSL.name("t_done_pkey"), new TableField[] { TDone.T_DONE.PK }, true); | ||||
|     public static final UniqueKey<TJobRecord> T_CATEGORY_NAME_KEY = Internal.createUniqueKey(TJob.T_JOB, DSL.name("t_category_name_key"), new TableField[] { TJob.T_JOB.NAME }, true); | ||||
|     public static final UniqueKey<TJobRecord> T_CATEGORY_PKEY = Internal.createUniqueKey(TJob.T_JOB, DSL.name("t_category_pkey"), new TableField[] { TJob.T_JOB.PK }, true); | ||||
| @@ -45,6 +50,7 @@ public class Keys { | ||||
|     // FOREIGN KEY definitions | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     public static final ForeignKey<TDoneRecord, TBillingRecord> T_DONE__T_DONE_FK_BILLING_FKEY = Internal.createForeignKey(TDone.T_DONE, DSL.name("t_done_fk_billing_fkey"), new TableField[] { TDone.T_DONE.FK_BILLING }, Keys.T_BILLING_PKEY, new TableField[] { TBilling.T_BILLING.PK }, true); | ||||
|     public static final ForeignKey<TDoneRecord, TJobRecord> T_DONE__T_DONE_FK_CATEGORY_FKEY = Internal.createForeignKey(TDone.T_DONE, DSL.name("t_done_fk_category_fkey"), new TableField[] { TDone.T_DONE.FK_JOB }, Keys.T_CATEGORY_PKEY, new TableField[] { TJob.T_JOB.PK }, true); | ||||
|     public static final ForeignKey<TDoneRecord, TModuleRecord> T_DONE__T_DONE_FK_JOB_FKEY = Internal.createForeignKey(TDone.T_DONE, DSL.name("t_done_fk_job_fkey"), new TableField[] { TDone.T_DONE.FK_MODULE }, Keys.T_JOB_PKEY, new TableField[] { TModule.T_MODULE.PK }, true); | ||||
|     public static final ForeignKey<TDoneRecord, TLoginRecord> T_DONE__T_DONE_FK_LOGIN_FKEY = Internal.createForeignKey(TDone.T_DONE, DSL.name("t_done_fk_login_fkey"), new TableField[] { TDone.T_DONE.FK_LOGIN }, de.jottyfan.timetrack.db.profile.Keys.T_LOGIN_PKEY, new TableField[] { TLogin.T_LOGIN.PK }, true); | ||||
|   | ||||
| @@ -4,6 +4,7 @@ | ||||
| package de.jottyfan.timetrack.db.done; | ||||
|  | ||||
|  | ||||
| import de.jottyfan.timetrack.db.done.tables.TBilling; | ||||
| import de.jottyfan.timetrack.db.done.tables.TDone; | ||||
| import de.jottyfan.timetrack.db.done.tables.TJob; | ||||
| import de.jottyfan.timetrack.db.done.tables.TModule; | ||||
| @@ -13,7 +14,6 @@ import de.jottyfan.timetrack.db.done.tables.VDaylimits; | ||||
| import de.jottyfan.timetrack.db.done.tables.VDaysummary; | ||||
| import de.jottyfan.timetrack.db.done.tables.VDone; | ||||
| import de.jottyfan.timetrack.db.done.tables.VDuration; | ||||
| import de.jottyfan.timetrack.db.done.tables.VEucanshare; | ||||
| import de.jottyfan.timetrack.db.done.tables.VHamster; | ||||
| import de.jottyfan.timetrack.db.done.tables.VHamstersummary; | ||||
| import de.jottyfan.timetrack.db.done.tables.VTasklist; | ||||
| @@ -28,6 +28,11 @@ import de.jottyfan.timetrack.db.done.tables.VWorktime; | ||||
| @SuppressWarnings({ "all", "unchecked", "rawtypes" }) | ||||
| public class Tables { | ||||
|  | ||||
|     /** | ||||
|      * The table <code>done.t_billing</code>. | ||||
|      */ | ||||
|     public static final TBilling T_BILLING = TBilling.T_BILLING; | ||||
|  | ||||
|     /** | ||||
|      * The table <code>done.t_done</code>. | ||||
|      */ | ||||
| @@ -73,11 +78,6 @@ public class Tables { | ||||
|      */ | ||||
|     public static final VDuration V_DURATION = VDuration.V_DURATION; | ||||
|  | ||||
|     /** | ||||
|      * The table <code>done.v_eucanshare</code>. | ||||
|      */ | ||||
|     public static final VEucanshare V_EUCANSHARE = VEucanshare.V_EUCANSHARE; | ||||
|  | ||||
|     /** | ||||
|      * The table <code>done.v_hamster</code>. | ||||
|      */ | ||||
|   | ||||
							
								
								
									
										164
									
								
								src/jooq/java/de/jottyfan/timetrack/db/done/tables/TBilling.java
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								src/jooq/java/de/jottyfan/timetrack/db/done/tables/TBilling.java
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,164 @@ | ||||
| /* | ||||
|  * 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.Keys; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; | ||||
|  | ||||
| import java.time.LocalDateTime; | ||||
| import java.util.Arrays; | ||||
| import java.util.List; | ||||
|  | ||||
| import org.jooq.Field; | ||||
| import org.jooq.ForeignKey; | ||||
| import org.jooq.Identity; | ||||
| import org.jooq.Name; | ||||
| import org.jooq.Record; | ||||
| import org.jooq.Row5; | ||||
| import org.jooq.Schema; | ||||
| import org.jooq.Table; | ||||
| import org.jooq.TableField; | ||||
| import org.jooq.TableOptions; | ||||
| import org.jooq.UniqueKey; | ||||
| import org.jooq.impl.DSL; | ||||
| import org.jooq.impl.SQLDataType; | ||||
| import org.jooq.impl.TableImpl; | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * This class is generated by jOOQ. | ||||
|  */ | ||||
| @SuppressWarnings({ "all", "unchecked", "rawtypes" }) | ||||
| public class TBilling extends TableImpl<TBillingRecord> { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     /** | ||||
|      * The reference instance of <code>done.t_billing</code> | ||||
|      */ | ||||
|     public static final TBilling T_BILLING = new TBilling(); | ||||
|  | ||||
|     /** | ||||
|      * The class holding records for this type | ||||
|      */ | ||||
|     @Override | ||||
|     public Class<TBillingRecord> getRecordType() { | ||||
|         return TBillingRecord.class; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.t_billing.lastchange</code>. | ||||
|      */ | ||||
|     public final TableField<TBillingRecord, LocalDateTime> LASTCHANGE = createField(DSL.name("lastchange"), SQLDataType.LOCALDATETIME(6).defaultValue(DSL.field("now()", SQLDataType.LOCALDATETIME)), this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.t_billing.pk</code>. | ||||
|      */ | ||||
|     public final TableField<TBillingRecord, Integer> PK = createField(DSL.name("pk"), SQLDataType.INTEGER.nullable(false).identity(true), this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.t_billing.name</code>. | ||||
|      */ | ||||
|     public final TableField<TBillingRecord, String> NAME = createField(DSL.name("name"), SQLDataType.CLOB.nullable(false), this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.t_billing.shortcut</code>. | ||||
|      */ | ||||
|     public final TableField<TBillingRecord, String> SHORTCUT = createField(DSL.name("shortcut"), SQLDataType.CLOB.nullable(false), this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.t_billing.csskey</code>. | ||||
|      */ | ||||
|     public final TableField<TBillingRecord, String> CSSKEY = createField(DSL.name("csskey"), SQLDataType.CLOB, this, ""); | ||||
|  | ||||
|     private TBilling(Name alias, Table<TBillingRecord> aliased) { | ||||
|         this(alias, aliased, null); | ||||
|     } | ||||
|  | ||||
|     private TBilling(Name alias, Table<TBillingRecord> aliased, Field<?>[] parameters) { | ||||
|         super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.table()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create an aliased <code>done.t_billing</code> table reference | ||||
|      */ | ||||
|     public TBilling(String alias) { | ||||
|         this(DSL.name(alias), T_BILLING); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create an aliased <code>done.t_billing</code> table reference | ||||
|      */ | ||||
|     public TBilling(Name alias) { | ||||
|         this(alias, T_BILLING); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create a <code>done.t_billing</code> table reference | ||||
|      */ | ||||
|     public TBilling() { | ||||
|         this(DSL.name("t_billing"), null); | ||||
|     } | ||||
|  | ||||
|     public <O extends Record> TBilling(Table<O> child, ForeignKey<O, TBillingRecord> key) { | ||||
|         super(child, key, T_BILLING); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Schema getSchema() { | ||||
|         return Done.DONE; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Identity<TBillingRecord, Integer> getIdentity() { | ||||
|         return (Identity<TBillingRecord, Integer>) super.getIdentity(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public UniqueKey<TBillingRecord> getPrimaryKey() { | ||||
|         return Keys.T_BILLING_PKEY; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<UniqueKey<TBillingRecord>> getKeys() { | ||||
|         return Arrays.<UniqueKey<TBillingRecord>>asList(Keys.T_BILLING_PKEY, Keys.T_BILLING_NAME_KEY, Keys.T_BILLING_SHORTCUT_KEY); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TBilling as(String alias) { | ||||
|         return new TBilling(DSL.name(alias), this); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TBilling as(Name alias) { | ||||
|         return new TBilling(alias, this); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Rename this table | ||||
|      */ | ||||
|     @Override | ||||
|     public TBilling rename(String name) { | ||||
|         return new TBilling(DSL.name(name), null); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Rename this table | ||||
|      */ | ||||
|     @Override | ||||
|     public TBilling rename(Name name) { | ||||
|         return new TBilling(name, null); | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Row5 type methods | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Row5<LocalDateTime, Integer, String, String, String> fieldsRow() { | ||||
|         return (Row5) super.fieldsRow(); | ||||
|     } | ||||
| } | ||||
| @@ -91,9 +91,9 @@ public class TDone extends TableImpl<TDoneRecord> { | ||||
|     public final TableField<TDoneRecord, Integer> FK_LOGIN = createField(DSL.name("fk_login"), SQLDataType.INTEGER.nullable(false), this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.t_done.wp</code>. | ||||
|      * The column <code>done.t_done.fk_billing</code>. | ||||
|      */ | ||||
|     public final TableField<TDoneRecord, String> WP = createField(DSL.name("wp"), SQLDataType.CLOB, this, ""); | ||||
|     public final TableField<TDoneRecord, Integer> FK_BILLING = createField(DSL.name("fk_billing"), SQLDataType.INTEGER, this, ""); | ||||
|  | ||||
|     private TDone(Name alias, Table<TDoneRecord> aliased) { | ||||
|         this(alias, aliased, null); | ||||
| @@ -150,7 +150,7 @@ public class TDone extends TableImpl<TDoneRecord> { | ||||
|  | ||||
|     @Override | ||||
|     public List<ForeignKey<TDoneRecord, ?>> getReferences() { | ||||
|         return Arrays.<ForeignKey<TDoneRecord, ?>>asList(Keys.T_DONE__T_DONE_FK_PROJECT_FKEY, Keys.T_DONE__T_DONE_FK_JOB_FKEY, Keys.T_DONE__T_DONE_FK_CATEGORY_FKEY, Keys.T_DONE__T_DONE_FK_LOGIN_FKEY); | ||||
|         return Arrays.<ForeignKey<TDoneRecord, ?>>asList(Keys.T_DONE__T_DONE_FK_PROJECT_FKEY, Keys.T_DONE__T_DONE_FK_JOB_FKEY, Keys.T_DONE__T_DONE_FK_CATEGORY_FKEY, Keys.T_DONE__T_DONE_FK_LOGIN_FKEY, Keys.T_DONE__T_DONE_FK_BILLING_FKEY); | ||||
|     } | ||||
|  | ||||
|     public TProject tProject() { | ||||
| @@ -169,6 +169,10 @@ public class TDone extends TableImpl<TDoneRecord> { | ||||
|         return new TLogin(this, Keys.T_DONE__T_DONE_FK_LOGIN_FKEY); | ||||
|     } | ||||
|  | ||||
|     public TBilling tBilling() { | ||||
|         return new TBilling(this, Keys.T_DONE__T_DONE_FK_BILLING_FKEY); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TDone as(String alias) { | ||||
|         return new TDone(DSL.name(alias), this); | ||||
| @@ -200,7 +204,7 @@ public class TDone extends TableImpl<TDoneRecord> { | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Row9<LocalDateTime, Integer, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, String> fieldsRow() { | ||||
|     public Row9<LocalDateTime, Integer, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, Integer> fieldsRow() { | ||||
|         return (Row9) super.fieldsRow(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,160 +0,0 @@ | ||||
| /* | ||||
|  * 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.VEucanshareRecord; | ||||
|  | ||||
| import java.time.LocalDate; | ||||
|  | ||||
| import org.jooq.Field; | ||||
| import org.jooq.ForeignKey; | ||||
| import org.jooq.Name; | ||||
| import org.jooq.Record; | ||||
| import org.jooq.Row8; | ||||
| import org.jooq.Schema; | ||||
| 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 VEucanshare extends TableImpl<VEucanshareRecord> { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     /** | ||||
|      * The reference instance of <code>done.v_eucanshare</code> | ||||
|      */ | ||||
|     public static final VEucanshare V_EUCANSHARE = new VEucanshare(); | ||||
|  | ||||
|     /** | ||||
|      * The class holding records for this type | ||||
|      */ | ||||
|     @Override | ||||
|     public Class<VEucanshareRecord> getRecordType() { | ||||
|         return VEucanshareRecord.class; | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_eucanshare.fk_done</code>. | ||||
|      */ | ||||
|     public final TableField<VEucanshareRecord, Integer> FK_DONE = createField(DSL.name("fk_done"), SQLDataType.INTEGER, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_eucanshare.workday</code>. | ||||
|      */ | ||||
|     public final TableField<VEucanshareRecord, LocalDate> WORKDAY = createField(DSL.name("workday"), SQLDataType.LOCALDATE, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_eucanshare.duration</code>. | ||||
|      */ | ||||
|     public final TableField<VEucanshareRecord, YearToSecond> DURATION = createField(DSL.name("duration"), SQLDataType.INTERVAL, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_eucanshare.project_name</code>. | ||||
|      */ | ||||
|     public final TableField<VEucanshareRecord, String> PROJECT_NAME = createField(DSL.name("project_name"), SQLDataType.CLOB, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_eucanshare.module_name</code>. | ||||
|      */ | ||||
|     public final TableField<VEucanshareRecord, String> MODULE_NAME = createField(DSL.name("module_name"), SQLDataType.CLOB, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_eucanshare.job_name</code>. | ||||
|      */ | ||||
|     public final TableField<VEucanshareRecord, String> JOB_NAME = createField(DSL.name("job_name"), SQLDataType.CLOB, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_eucanshare.fk_login</code>. | ||||
|      */ | ||||
|     public final TableField<VEucanshareRecord, Integer> FK_LOGIN = createField(DSL.name("fk_login"), SQLDataType.INTEGER, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_eucanshare.wp</code>. | ||||
|      */ | ||||
|     public final TableField<VEucanshareRecord, String> WP = createField(DSL.name("wp"), SQLDataType.CLOB, this, ""); | ||||
|  | ||||
|     private VEucanshare(Name alias, Table<VEucanshareRecord> aliased) { | ||||
|         this(alias, aliased, null); | ||||
|     } | ||||
|  | ||||
|     private VEucanshare(Name alias, Table<VEucanshareRecord> aliased, Field<?>[] parameters) { | ||||
|         super(alias, null, aliased, parameters, DSL.comment(""), TableOptions.view()); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create an aliased <code>done.v_eucanshare</code> table reference | ||||
|      */ | ||||
|     public VEucanshare(String alias) { | ||||
|         this(DSL.name(alias), V_EUCANSHARE); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create an aliased <code>done.v_eucanshare</code> table reference | ||||
|      */ | ||||
|     public VEucanshare(Name alias) { | ||||
|         this(alias, V_EUCANSHARE); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create a <code>done.v_eucanshare</code> table reference | ||||
|      */ | ||||
|     public VEucanshare() { | ||||
|         this(DSL.name("v_eucanshare"), null); | ||||
|     } | ||||
|  | ||||
|     public <O extends Record> VEucanshare(Table<O> child, ForeignKey<O, VEucanshareRecord> key) { | ||||
|         super(child, key, V_EUCANSHARE); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Schema getSchema() { | ||||
|         return Done.DONE; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshare as(String alias) { | ||||
|         return new VEucanshare(DSL.name(alias), this); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshare as(Name alias) { | ||||
|         return new VEucanshare(alias, this); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Rename this table | ||||
|      */ | ||||
|     @Override | ||||
|     public VEucanshare rename(String name) { | ||||
|         return new VEucanshare(DSL.name(name), null); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Rename this table | ||||
|      */ | ||||
|     @Override | ||||
|     public VEucanshare rename(Name name) { | ||||
|         return new VEucanshare(name, null); | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Row8 type methods | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Row8<Integer, LocalDate, YearToSecond, String, String, String, Integer, String> fieldsRow() { | ||||
|         return (Row8) super.fieldsRow(); | ||||
|     } | ||||
| } | ||||
| @@ -11,7 +11,7 @@ import org.jooq.Field; | ||||
| import org.jooq.ForeignKey; | ||||
| import org.jooq.Name; | ||||
| import org.jooq.Record; | ||||
| import org.jooq.Row8; | ||||
| import org.jooq.Row9; | ||||
| import org.jooq.Schema; | ||||
| import org.jooq.Table; | ||||
| import org.jooq.TableField; | ||||
| @@ -73,9 +73,14 @@ public class VWorktime extends TableImpl<VWorktimeRecord> { | ||||
|     public final TableField<VWorktimeRecord, String> JOB_NAME = createField(DSL.name("job_name"), SQLDataType.CLOB, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_worktime.wp</code>. | ||||
|      * The column <code>done.v_worktime.billing_shortcut</code>. | ||||
|      */ | ||||
|     public final TableField<VWorktimeRecord, String> WP = createField(DSL.name("wp"), SQLDataType.CLOB, this, ""); | ||||
|     public final TableField<VWorktimeRecord, String> BILLING_SHORTCUT = createField(DSL.name("billing_shortcut"), SQLDataType.CLOB, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_worktime.billing_csskey</code>. | ||||
|      */ | ||||
|     public final TableField<VWorktimeRecord, String> BILLING_CSSKEY = createField(DSL.name("billing_csskey"), SQLDataType.CLOB, this, ""); | ||||
|  | ||||
|     /** | ||||
|      * The column <code>done.v_worktime.fk_login</code>. | ||||
| @@ -147,11 +152,11 @@ public class VWorktime extends TableImpl<VWorktimeRecord> { | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Row8 type methods | ||||
|     // Row9 type methods | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Row8<String, String, Double, String, String, String, String, Integer> fieldsRow() { | ||||
|         return (Row8) super.fieldsRow(); | ||||
|     public Row9<String, String, Double, String, String, String, String, String, Integer> fieldsRow() { | ||||
|         return (Row9) super.fieldsRow(); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -0,0 +1,257 @@ | ||||
| /* | ||||
|  * This file is generated by jOOQ. | ||||
|  */ | ||||
| package de.jottyfan.timetrack.db.done.tables.records; | ||||
|  | ||||
|  | ||||
| import de.jottyfan.timetrack.db.done.tables.TBilling; | ||||
|  | ||||
| import java.time.LocalDateTime; | ||||
|  | ||||
| import org.jooq.Field; | ||||
| import org.jooq.Record1; | ||||
| import org.jooq.Record5; | ||||
| import org.jooq.Row5; | ||||
| import org.jooq.impl.UpdatableRecordImpl; | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * This class is generated by jOOQ. | ||||
|  */ | ||||
| @SuppressWarnings({ "all", "unchecked", "rawtypes" }) | ||||
| public class TBillingRecord extends UpdatableRecordImpl<TBillingRecord> implements Record5<LocalDateTime, Integer, String, String, String> { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.t_billing.lastchange</code>. | ||||
|      */ | ||||
|     public void setLastchange(LocalDateTime value) { | ||||
|         set(0, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.t_billing.lastchange</code>. | ||||
|      */ | ||||
|     public LocalDateTime getLastchange() { | ||||
|         return (LocalDateTime) get(0); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.t_billing.pk</code>. | ||||
|      */ | ||||
|     public void setPk(Integer value) { | ||||
|         set(1, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.t_billing.pk</code>. | ||||
|      */ | ||||
|     public Integer getPk() { | ||||
|         return (Integer) get(1); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.t_billing.name</code>. | ||||
|      */ | ||||
|     public void setName(String value) { | ||||
|         set(2, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.t_billing.name</code>. | ||||
|      */ | ||||
|     public String getName() { | ||||
|         return (String) get(2); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.t_billing.shortcut</code>. | ||||
|      */ | ||||
|     public void setShortcut(String value) { | ||||
|         set(3, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.t_billing.shortcut</code>. | ||||
|      */ | ||||
|     public String getShortcut() { | ||||
|         return (String) get(3); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.t_billing.csskey</code>. | ||||
|      */ | ||||
|     public void setCsskey(String value) { | ||||
|         set(4, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.t_billing.csskey</code>. | ||||
|      */ | ||||
|     public String getCsskey() { | ||||
|         return (String) get(4); | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Primary key information | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Record1<Integer> key() { | ||||
|         return (Record1) super.key(); | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Record5 type implementation | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Row5<LocalDateTime, Integer, String, String, String> fieldsRow() { | ||||
|         return (Row5) super.fieldsRow(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Row5<LocalDateTime, Integer, String, String, String> valuesRow() { | ||||
|         return (Row5) super.valuesRow(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<LocalDateTime> field1() { | ||||
|         return TBilling.T_BILLING.LASTCHANGE; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<Integer> field2() { | ||||
|         return TBilling.T_BILLING.PK; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field3() { | ||||
|         return TBilling.T_BILLING.NAME; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field4() { | ||||
|         return TBilling.T_BILLING.SHORTCUT; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field5() { | ||||
|         return TBilling.T_BILLING.CSSKEY; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public LocalDateTime component1() { | ||||
|         return getLastchange(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer component2() { | ||||
|         return getPk(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String component3() { | ||||
|         return getName(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String component4() { | ||||
|         return getShortcut(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String component5() { | ||||
|         return getCsskey(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public LocalDateTime value1() { | ||||
|         return getLastchange(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer value2() { | ||||
|         return getPk(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String value3() { | ||||
|         return getName(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String value4() { | ||||
|         return getShortcut(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String value5() { | ||||
|         return getCsskey(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TBillingRecord value1(LocalDateTime value) { | ||||
|         setLastchange(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TBillingRecord value2(Integer value) { | ||||
|         setPk(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TBillingRecord value3(String value) { | ||||
|         setName(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TBillingRecord value4(String value) { | ||||
|         setShortcut(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TBillingRecord value5(String value) { | ||||
|         setCsskey(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TBillingRecord values(LocalDateTime value1, Integer value2, String value3, String value4, String value5) { | ||||
|         value1(value1); | ||||
|         value2(value2); | ||||
|         value3(value3); | ||||
|         value4(value4); | ||||
|         value5(value5); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Constructors | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     /** | ||||
|      * Create a detached TBillingRecord | ||||
|      */ | ||||
|     public TBillingRecord() { | ||||
|         super(TBilling.T_BILLING); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create a detached, initialised TBillingRecord | ||||
|      */ | ||||
|     public TBillingRecord(LocalDateTime lastchange, Integer pk, String name, String shortcut, String csskey) { | ||||
|         super(TBilling.T_BILLING); | ||||
|  | ||||
|         setLastchange(lastchange); | ||||
|         setPk(pk); | ||||
|         setName(name); | ||||
|         setShortcut(shortcut); | ||||
|         setCsskey(csskey); | ||||
|     } | ||||
| } | ||||
| @@ -19,7 +19,7 @@ import org.jooq.impl.UpdatableRecordImpl; | ||||
|  * This class is generated by jOOQ. | ||||
|  */ | ||||
| @SuppressWarnings({ "all", "unchecked", "rawtypes" }) | ||||
| public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Record9<LocalDateTime, Integer, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, String> { | ||||
| public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Record9<LocalDateTime, Integer, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, Integer> { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
| @@ -136,17 +136,17 @@ public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Rec | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.t_done.wp</code>. | ||||
|      * Setter for <code>done.t_done.fk_billing</code>. | ||||
|      */ | ||||
|     public void setWp(String value) { | ||||
|     public void setFkBilling(Integer value) { | ||||
|         set(8, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.t_done.wp</code>. | ||||
|      * Getter for <code>done.t_done.fk_billing</code>. | ||||
|      */ | ||||
|     public String getWp() { | ||||
|         return (String) get(8); | ||||
|     public Integer getFkBilling() { | ||||
|         return (Integer) get(8); | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
| @@ -163,12 +163,12 @@ public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Rec | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Row9<LocalDateTime, Integer, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, String> fieldsRow() { | ||||
|     public Row9<LocalDateTime, Integer, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, Integer> fieldsRow() { | ||||
|         return (Row9) super.fieldsRow(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Row9<LocalDateTime, Integer, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, String> valuesRow() { | ||||
|     public Row9<LocalDateTime, Integer, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, Integer> valuesRow() { | ||||
|         return (Row9) super.valuesRow(); | ||||
|     } | ||||
|  | ||||
| @@ -213,8 +213,8 @@ public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Rec | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field9() { | ||||
|         return TDone.T_DONE.WP; | ||||
|     public Field<Integer> field9() { | ||||
|         return TDone.T_DONE.FK_BILLING; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -258,8 +258,8 @@ public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Rec | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String component9() { | ||||
|         return getWp(); | ||||
|     public Integer component9() { | ||||
|         return getFkBilling(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -303,8 +303,8 @@ public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Rec | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String value9() { | ||||
|         return getWp(); | ||||
|     public Integer value9() { | ||||
|         return getFkBilling(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -356,13 +356,13 @@ public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Rec | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TDoneRecord value9(String value) { | ||||
|         setWp(value); | ||||
|     public TDoneRecord value9(Integer value) { | ||||
|         setFkBilling(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public TDoneRecord values(LocalDateTime value1, Integer value2, LocalDateTime value3, LocalDateTime value4, Integer value5, Integer value6, Integer value7, Integer value8, String value9) { | ||||
|     public TDoneRecord values(LocalDateTime value1, Integer value2, LocalDateTime value3, LocalDateTime value4, Integer value5, Integer value6, Integer value7, Integer value8, Integer value9) { | ||||
|         value1(value1); | ||||
|         value2(value2); | ||||
|         value3(value3); | ||||
| @@ -389,7 +389,7 @@ public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Rec | ||||
|     /** | ||||
|      * Create a detached, initialised TDoneRecord | ||||
|      */ | ||||
|     public TDoneRecord(LocalDateTime lastchange, Integer pk, LocalDateTime timeFrom, LocalDateTime timeUntil, Integer fkProject, Integer fkModule, Integer fkJob, Integer fkLogin, String wp) { | ||||
|     public TDoneRecord(LocalDateTime lastchange, Integer pk, LocalDateTime timeFrom, LocalDateTime timeUntil, Integer fkProject, Integer fkModule, Integer fkJob, Integer fkLogin, Integer fkBilling) { | ||||
|         super(TDone.T_DONE); | ||||
|  | ||||
|         setLastchange(lastchange); | ||||
| @@ -400,6 +400,6 @@ public class TDoneRecord extends UpdatableRecordImpl<TDoneRecord> implements Rec | ||||
|         setFkModule(fkModule); | ||||
|         setFkJob(fkJob); | ||||
|         setFkLogin(fkLogin); | ||||
|         setWp(wp); | ||||
|         setFkBilling(fkBilling); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -1,359 +0,0 @@ | ||||
| /* | ||||
|  * This file is generated by jOOQ. | ||||
|  */ | ||||
| package de.jottyfan.timetrack.db.done.tables.records; | ||||
|  | ||||
|  | ||||
| import de.jottyfan.timetrack.db.done.tables.VEucanshare; | ||||
|  | ||||
| import java.time.LocalDate; | ||||
|  | ||||
| import org.jooq.Field; | ||||
| import org.jooq.Record8; | ||||
| import org.jooq.Row8; | ||||
| import org.jooq.impl.TableRecordImpl; | ||||
| import org.jooq.types.YearToSecond; | ||||
|  | ||||
|  | ||||
| /** | ||||
|  * This class is generated by jOOQ. | ||||
|  */ | ||||
| @SuppressWarnings({ "all", "unchecked", "rawtypes" }) | ||||
| public class VEucanshareRecord extends TableRecordImpl<VEucanshareRecord> implements Record8<Integer, LocalDate, YearToSecond, String, String, String, Integer, String> { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_eucanshare.fk_done</code>. | ||||
|      */ | ||||
|     public void setFkDone(Integer value) { | ||||
|         set(0, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_eucanshare.fk_done</code>. | ||||
|      */ | ||||
|     public Integer getFkDone() { | ||||
|         return (Integer) get(0); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_eucanshare.workday</code>. | ||||
|      */ | ||||
|     public void setWorkday(LocalDate value) { | ||||
|         set(1, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_eucanshare.workday</code>. | ||||
|      */ | ||||
|     public LocalDate getWorkday() { | ||||
|         return (LocalDate) get(1); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_eucanshare.duration</code>. | ||||
|      */ | ||||
|     public void setDuration(YearToSecond value) { | ||||
|         set(2, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_eucanshare.duration</code>. | ||||
|      */ | ||||
|     public YearToSecond getDuration() { | ||||
|         return (YearToSecond) get(2); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_eucanshare.project_name</code>. | ||||
|      */ | ||||
|     public void setProjectName(String value) { | ||||
|         set(3, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_eucanshare.project_name</code>. | ||||
|      */ | ||||
|     public String getProjectName() { | ||||
|         return (String) get(3); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_eucanshare.module_name</code>. | ||||
|      */ | ||||
|     public void setModuleName(String value) { | ||||
|         set(4, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_eucanshare.module_name</code>. | ||||
|      */ | ||||
|     public String getModuleName() { | ||||
|         return (String) get(4); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_eucanshare.job_name</code>. | ||||
|      */ | ||||
|     public void setJobName(String value) { | ||||
|         set(5, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_eucanshare.job_name</code>. | ||||
|      */ | ||||
|     public String getJobName() { | ||||
|         return (String) get(5); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_eucanshare.fk_login</code>. | ||||
|      */ | ||||
|     public void setFkLogin(Integer value) { | ||||
|         set(6, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_eucanshare.fk_login</code>. | ||||
|      */ | ||||
|     public Integer getFkLogin() { | ||||
|         return (Integer) get(6); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_eucanshare.wp</code>. | ||||
|      */ | ||||
|     public void setWp(String value) { | ||||
|         set(7, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_eucanshare.wp</code>. | ||||
|      */ | ||||
|     public String getWp() { | ||||
|         return (String) get(7); | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Record8 type implementation | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Row8<Integer, LocalDate, YearToSecond, String, String, String, Integer, String> fieldsRow() { | ||||
|         return (Row8) super.fieldsRow(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Row8<Integer, LocalDate, YearToSecond, String, String, String, Integer, String> valuesRow() { | ||||
|         return (Row8) super.valuesRow(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<Integer> field1() { | ||||
|         return VEucanshare.V_EUCANSHARE.FK_DONE; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<LocalDate> field2() { | ||||
|         return VEucanshare.V_EUCANSHARE.WORKDAY; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<YearToSecond> field3() { | ||||
|         return VEucanshare.V_EUCANSHARE.DURATION; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field4() { | ||||
|         return VEucanshare.V_EUCANSHARE.PROJECT_NAME; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field5() { | ||||
|         return VEucanshare.V_EUCANSHARE.MODULE_NAME; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field6() { | ||||
|         return VEucanshare.V_EUCANSHARE.JOB_NAME; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<Integer> field7() { | ||||
|         return VEucanshare.V_EUCANSHARE.FK_LOGIN; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field8() { | ||||
|         return VEucanshare.V_EUCANSHARE.WP; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer component1() { | ||||
|         return getFkDone(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public LocalDate component2() { | ||||
|         return getWorkday(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public YearToSecond component3() { | ||||
|         return getDuration(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String component4() { | ||||
|         return getProjectName(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String component5() { | ||||
|         return getModuleName(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String component6() { | ||||
|         return getJobName(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer component7() { | ||||
|         return getFkLogin(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String component8() { | ||||
|         return getWp(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer value1() { | ||||
|         return getFkDone(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public LocalDate value2() { | ||||
|         return getWorkday(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public YearToSecond value3() { | ||||
|         return getDuration(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String value4() { | ||||
|         return getProjectName(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String value5() { | ||||
|         return getModuleName(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String value6() { | ||||
|         return getJobName(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer value7() { | ||||
|         return getFkLogin(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public String value8() { | ||||
|         return getWp(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord value1(Integer value) { | ||||
|         setFkDone(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord value2(LocalDate value) { | ||||
|         setWorkday(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord value3(YearToSecond value) { | ||||
|         setDuration(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord value4(String value) { | ||||
|         setProjectName(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord value5(String value) { | ||||
|         setModuleName(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord value6(String value) { | ||||
|         setJobName(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord value7(Integer value) { | ||||
|         setFkLogin(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord value8(String value) { | ||||
|         setWp(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VEucanshareRecord values(Integer value1, LocalDate value2, YearToSecond value3, String value4, String value5, String value6, Integer value7, String value8) { | ||||
|         value1(value1); | ||||
|         value2(value2); | ||||
|         value3(value3); | ||||
|         value4(value4); | ||||
|         value5(value5); | ||||
|         value6(value6); | ||||
|         value7(value7); | ||||
|         value8(value8); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Constructors | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     /** | ||||
|      * Create a detached VEucanshareRecord | ||||
|      */ | ||||
|     public VEucanshareRecord() { | ||||
|         super(VEucanshare.V_EUCANSHARE); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Create a detached, initialised VEucanshareRecord | ||||
|      */ | ||||
|     public VEucanshareRecord(Integer fkDone, LocalDate workday, YearToSecond duration, String projectName, String moduleName, String jobName, Integer fkLogin, String wp) { | ||||
|         super(VEucanshare.V_EUCANSHARE); | ||||
|  | ||||
|         setFkDone(fkDone); | ||||
|         setWorkday(workday); | ||||
|         setDuration(duration); | ||||
|         setProjectName(projectName); | ||||
|         setModuleName(moduleName); | ||||
|         setJobName(jobName); | ||||
|         setFkLogin(fkLogin); | ||||
|         setWp(wp); | ||||
|     } | ||||
| } | ||||
| @@ -7,8 +7,8 @@ package de.jottyfan.timetrack.db.done.tables.records; | ||||
| import de.jottyfan.timetrack.db.done.tables.VWorktime; | ||||
|  | ||||
| import org.jooq.Field; | ||||
| import org.jooq.Record8; | ||||
| import org.jooq.Row8; | ||||
| import org.jooq.Record9; | ||||
| import org.jooq.Row9; | ||||
| import org.jooq.impl.TableRecordImpl; | ||||
|  | ||||
|  | ||||
| @@ -16,7 +16,7 @@ import org.jooq.impl.TableRecordImpl; | ||||
|  * This class is generated by jOOQ. | ||||
|  */ | ||||
| @SuppressWarnings({ "all", "unchecked", "rawtypes" }) | ||||
| public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements Record8<String, String, Double, String, String, String, String, Integer> { | ||||
| public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements Record9<String, String, Double, String, String, String, String, String, Integer> { | ||||
|  | ||||
|     private static final long serialVersionUID = 1L; | ||||
|  | ||||
| @@ -105,45 +105,59 @@ public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_worktime.wp</code>. | ||||
|      * Setter for <code>done.v_worktime.billing_shortcut</code>. | ||||
|      */ | ||||
|     public void setWp(String value) { | ||||
|     public void setBillingShortcut(String value) { | ||||
|         set(6, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_worktime.wp</code>. | ||||
|      * Getter for <code>done.v_worktime.billing_shortcut</code>. | ||||
|      */ | ||||
|     public String getWp() { | ||||
|     public String getBillingShortcut() { | ||||
|         return (String) get(6); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_worktime.billing_csskey</code>. | ||||
|      */ | ||||
|     public void setBillingCsskey(String value) { | ||||
|         set(7, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_worktime.billing_csskey</code>. | ||||
|      */ | ||||
|     public String getBillingCsskey() { | ||||
|         return (String) get(7); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Setter for <code>done.v_worktime.fk_login</code>. | ||||
|      */ | ||||
|     public void setFkLogin(Integer value) { | ||||
|         set(7, value); | ||||
|         set(8, value); | ||||
|     } | ||||
|  | ||||
|     /** | ||||
|      * Getter for <code>done.v_worktime.fk_login</code>. | ||||
|      */ | ||||
|     public Integer getFkLogin() { | ||||
|         return (Integer) get(7); | ||||
|         return (Integer) get(8); | ||||
|     } | ||||
|  | ||||
|     // ------------------------------------------------------------------------- | ||||
|     // Record8 type implementation | ||||
|     // Record9 type implementation | ||||
|     // ------------------------------------------------------------------------- | ||||
|  | ||||
|     @Override | ||||
|     public Row8<String, String, Double, String, String, String, String, Integer> fieldsRow() { | ||||
|         return (Row8) super.fieldsRow(); | ||||
|     public Row9<String, String, Double, String, String, String, String, String, Integer> fieldsRow() { | ||||
|         return (Row9) super.fieldsRow(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Row8<String, String, Double, String, String, String, String, Integer> valuesRow() { | ||||
|         return (Row8) super.valuesRow(); | ||||
|     public Row9<String, String, Double, String, String, String, String, String, Integer> valuesRow() { | ||||
|         return (Row9) super.valuesRow(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @@ -178,11 +192,16 @@ public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements | ||||
|  | ||||
|     @Override | ||||
|     public Field<String> field7() { | ||||
|         return VWorktime.V_WORKTIME.WP; | ||||
|         return VWorktime.V_WORKTIME.BILLING_SHORTCUT; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<Integer> field8() { | ||||
|     public Field<String> field8() { | ||||
|         return VWorktime.V_WORKTIME.BILLING_CSSKEY; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Field<Integer> field9() { | ||||
|         return VWorktime.V_WORKTIME.FK_LOGIN; | ||||
|     } | ||||
|  | ||||
| @@ -218,11 +237,16 @@ public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements | ||||
|  | ||||
|     @Override | ||||
|     public String component7() { | ||||
|         return getWp(); | ||||
|         return getBillingShortcut(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer component8() { | ||||
|     public String component8() { | ||||
|         return getBillingCsskey(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer component9() { | ||||
|         return getFkLogin(); | ||||
|     } | ||||
|  | ||||
| @@ -258,11 +282,16 @@ public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements | ||||
|  | ||||
|     @Override | ||||
|     public String value7() { | ||||
|         return getWp(); | ||||
|         return getBillingShortcut(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer value8() { | ||||
|     public String value8() { | ||||
|         return getBillingCsskey(); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Integer value9() { | ||||
|         return getFkLogin(); | ||||
|     } | ||||
|  | ||||
| @@ -304,18 +333,24 @@ public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements | ||||
|  | ||||
|     @Override | ||||
|     public VWorktimeRecord value7(String value) { | ||||
|         setWp(value); | ||||
|         setBillingShortcut(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VWorktimeRecord value8(Integer value) { | ||||
|     public VWorktimeRecord value8(String value) { | ||||
|         setBillingCsskey(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VWorktimeRecord value9(Integer value) { | ||||
|         setFkLogin(value); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public VWorktimeRecord values(String value1, String value2, Double value3, String value4, String value5, String value6, String value7, Integer value8) { | ||||
|     public VWorktimeRecord values(String value1, String value2, Double value3, String value4, String value5, String value6, String value7, String value8, Integer value9) { | ||||
|         value1(value1); | ||||
|         value2(value2); | ||||
|         value3(value3); | ||||
| @@ -324,6 +359,7 @@ public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements | ||||
|         value6(value6); | ||||
|         value7(value7); | ||||
|         value8(value8); | ||||
|         value9(value9); | ||||
|         return this; | ||||
|     } | ||||
|  | ||||
| @@ -341,7 +377,7 @@ public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements | ||||
|     /** | ||||
|      * Create a detached, initialised VWorktimeRecord | ||||
|      */ | ||||
|     public VWorktimeRecord(String day, String duration, Double durationHours, String projectName, String moduleName, String jobName, String wp, Integer fkLogin) { | ||||
|     public VWorktimeRecord(String day, String duration, Double durationHours, String projectName, String moduleName, String jobName, String billingShortcut, String billingCsskey, Integer fkLogin) { | ||||
|         super(VWorktime.V_WORKTIME); | ||||
|  | ||||
|         setDay(day); | ||||
| @@ -350,7 +386,8 @@ public class VWorktimeRecord extends TableRecordImpl<VWorktimeRecord> implements | ||||
|         setProjectName(projectName); | ||||
|         setModuleName(moduleName); | ||||
|         setJobName(jobName); | ||||
|         setWp(wp); | ||||
|         setBillingShortcut(billingShortcut); | ||||
|         setBillingCsskey(billingCsskey); | ||||
|         setFkLogin(fkLogin); | ||||
|     } | ||||
| } | ||||
|   | ||||
| @@ -10,16 +10,18 @@ public class DailySummaryBean { | ||||
| 	private final String moduleName; | ||||
| 	private final String jobName; | ||||
| 	private final String duration; | ||||
| 	private final String wp; | ||||
| 	private final String billingShortcut; | ||||
| 	private final String billingCsskey; | ||||
| 	private final Double durationHours; | ||||
|  | ||||
| 	public DailySummaryBean(String projectName, String moduleName, String jobName, String duration, String wp, Double durationHours) { | ||||
| 	public DailySummaryBean(String projectName, String moduleName, String jobName, String duration, String billingShortcut, String billingCsskey, Double durationHours) { | ||||
| 		super(); | ||||
| 		this.projectName = projectName; | ||||
| 		this.moduleName = moduleName; | ||||
| 		this.jobName = jobName; | ||||
| 		this.duration = duration; | ||||
| 		this.wp = wp; | ||||
| 		this.billingShortcut = billingShortcut; | ||||
| 		this.billingCsskey = billingCsskey; | ||||
| 		this.durationHours = durationHours; | ||||
| 	} | ||||
|  | ||||
| @@ -40,10 +42,17 @@ public class DailySummaryBean { | ||||
| 	} | ||||
|  | ||||
|   /** | ||||
|    * @return the wp | ||||
|    * @return the billing shortcut | ||||
|    */ | ||||
|   public String getWp() { | ||||
|     return wp; | ||||
|   public String getBillingShortcut() { | ||||
|     return billingShortcut; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * @return the billing csskey | ||||
|    */ | ||||
|   public String getBillingCsskey() { | ||||
|     return billingCsskey; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|   | ||||
| @@ -7,9 +7,9 @@ import java.time.LocalDateTime; | ||||
| import java.time.ZoneId; | ||||
| import java.time.format.DateTimeFormatter; | ||||
| import java.util.Date; | ||||
| import java.util.List; | ||||
| import java.util.Map; | ||||
|  | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TDoneRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; | ||||
| @@ -32,31 +32,20 @@ public class DoneBean implements Bean, Serializable, Comparable<DoneBean> { | ||||
| 	private TProjectRecord project; | ||||
| 	private TModuleRecord module; | ||||
| 	private TJobRecord activity; | ||||
| 	private WpBean wp; | ||||
| 	private TBillingRecord billing; | ||||
|  | ||||
| 	public DoneBean() { | ||||
| 	} | ||||
|  | ||||
| 	public DoneBean(TDoneRecord r, Map<Integer, TProjectRecord> projectMap, Map<Integer, TModuleRecord> moduleMap, | ||||
| 			Map<Integer, TJobRecord> jobMap) { | ||||
| 			Map<Integer, TJobRecord> jobMap, Map<Integer, TBillingRecord> billingMap) { | ||||
| 		this.pk = r.getPk(); | ||||
| 		this.timeFrom = r.getTimeFrom(); | ||||
| 		this.timeUntil = r.getTimeUntil(); | ||||
| 		this.project = projectMap.get(r.getFkProject()); | ||||
| 		this.module = moduleMap.get(r.getFkModule()); | ||||
| 		this.activity = jobMap.get(r.getFkJob()); | ||||
| 		List<WpBean> list = DoneGateway.getAllWps(); | ||||
| 		String key = r.getWp(); | ||||
| 		if (key != null && key.isBlank()) { | ||||
| 			key = null; | ||||
| 		} | ||||
| 		if (key != null) { | ||||
| 			for (WpBean bean : list) { | ||||
| 				if (bean.getKey().equals(r.getWp())) { | ||||
| 					this.wp = bean; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 		this.billing = billingMap.get(r.getFkBilling()); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| @@ -133,11 +122,11 @@ public class DoneBean implements Bean, Serializable, Comparable<DoneBean> { | ||||
| 		return ldt; | ||||
| 	} | ||||
|  | ||||
| 	public String getProjectNameWithWP() { | ||||
| 	public String getProjectNameWithBilling() { | ||||
| 		StringBuilder buf = new StringBuilder(); | ||||
| 		buf.append(project == null ? "" : project.getName()); | ||||
| 		if (wp != null) { | ||||
| 			buf.append(" (").append(wp.getKey()).append(")"); | ||||
| 		if (billing != null) { | ||||
| 			buf.append(" (").append(billing.getShortcut()).append(")"); | ||||
| 		} | ||||
| 		return buf.toString(); | ||||
| 	} | ||||
| @@ -154,8 +143,8 @@ public class DoneBean implements Bean, Serializable, Comparable<DoneBean> { | ||||
| 		return activity == null ? "" : activity.getName(); | ||||
| 	} | ||||
| 	 | ||||
| 	public String getWpName() { | ||||
| 		return wp == null ? "" : wp.getName(); | ||||
| 	public String getBillingName() { | ||||
| 		return billing == null ? "" : billing.getName(); | ||||
| 	} | ||||
|  | ||||
| 	public String getTimeFromString() { | ||||
| @@ -223,16 +212,16 @@ public class DoneBean implements Bean, Serializable, Comparable<DoneBean> { | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @return the wp | ||||
| 	 * @return the billing | ||||
| 	 */ | ||||
| 	public WpBean getWp() { | ||||
| 		return wp; | ||||
| 	public TBillingRecord getBilling() { | ||||
| 		return billing; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @param wp the wp to set | ||||
| 	 * @param billing the billing to set | ||||
| 	 */ | ||||
| 	public void setWp(WpBean wp) { | ||||
| 		this.wp = wp; | ||||
| 	public void setBilling(TBillingRecord billing) { | ||||
| 		this.billing = billing; | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -4,6 +4,7 @@ import static de.jottyfan.timetrack.db.done.Tables.T_DONE; | ||||
| import static de.jottyfan.timetrack.db.done.Tables.T_JOB; | ||||
| import static de.jottyfan.timetrack.db.done.Tables.T_MODULE; | ||||
| import static de.jottyfan.timetrack.db.done.Tables.T_PROJECT; | ||||
| import static de.jottyfan.timetrack.db.done.Tables.T_BILLING; | ||||
| import static de.jottyfan.timetrack.db.done.Tables.V_HAMSTERSUMMARY; | ||||
| import static de.jottyfan.timetrack.db.done.Tables.V_TOTALOFDAY; | ||||
| import static de.jottyfan.timetrack.db.done.Tables.V_WORKTIME; | ||||
| @@ -33,6 +34,7 @@ import org.jooq.Record3; | ||||
| import org.jooq.Record4; | ||||
| import org.jooq.Record5; | ||||
| import org.jooq.Record6; | ||||
| import org.jooq.Record7; | ||||
| import org.jooq.SelectConditionStep; | ||||
| import org.jooq.SelectJoinStep; | ||||
| import org.jooq.SelectWhereStep; | ||||
| @@ -40,6 +42,7 @@ import org.jooq.UpdateConditionStep; | ||||
| import org.jooq.exception.DataAccessException; | ||||
|  | ||||
| import de.jooqfaces.JooqFacesContext; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TDoneRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; | ||||
| @@ -125,6 +128,27 @@ public class DoneGateway extends JooqGateway { | ||||
| 			return list; | ||||
| 		} | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * get all billings from db | ||||
| 	 *  | ||||
| 	 * @return billings | ||||
| 	 * @throws SQLException | ||||
| 	 * @throws ClassNotFoundException | ||||
| 	 */ | ||||
| 	public List<TBillingRecord> getAllBillings() throws DataAccessException, ClassNotFoundException, SQLException { | ||||
| 		try (CloseableDSLContext jooq = getJooq()) { | ||||
| 			List<TBillingRecord> list = new ArrayList<>(); | ||||
| 			SelectWhereStep<TBillingRecord> sql = jooq.selectFrom(T_BILLING); | ||||
| 			LOGGER.debug(sql.toString()); | ||||
| 			for (TBillingRecord r : sql.fetch()) { | ||||
| 				list.add(r); | ||||
| 			} | ||||
| 			list.sort((o1, o2) -> o1 == null || o2 == null || o1.getName() == null || o2.getName() == null ? 0 | ||||
| 					: o1.getName().compareTo(o2.getName())); | ||||
| 			return list; | ||||
| 		} | ||||
| 	} | ||||
|  | ||||
| 	private Map<Integer, TProjectRecord> generateProjectMap(List<TProjectRecord> list) { | ||||
| 		Map<Integer, TProjectRecord> map = new HashMap<>(); | ||||
| @@ -150,6 +174,14 @@ public class DoneGateway extends JooqGateway { | ||||
| 		return map; | ||||
| 	} | ||||
|  | ||||
| 	private Map<Integer, TBillingRecord> generateBillingMap(List<TBillingRecord> list) { | ||||
| 		Map<Integer, TBillingRecord> map = new HashMap<>(); | ||||
| 		for (TBillingRecord r : list) { | ||||
| 			map.put(r.getPk(), r); | ||||
| 		} | ||||
| 		return map; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * get all from t_done of the given day | ||||
| 	 *  | ||||
| @@ -163,6 +195,7 @@ public class DoneGateway extends JooqGateway { | ||||
| 		Map<Integer, TProjectRecord> projectMap = generateProjectMap(getAllProjects()); | ||||
| 		Map<Integer, TModuleRecord> moduleMap = generateModuleMap(getAllModules()); | ||||
| 		Map<Integer, TJobRecord> jobMap = generateJobMap(getAllActivities()); | ||||
| 		Map<Integer, TBillingRecord> billingMap = generateBillingMap(getAllBillings()); | ||||
|  | ||||
| 		if (day == null) { | ||||
| 			day = LocalDateTime.now(); | ||||
| @@ -185,7 +218,7 @@ public class DoneGateway extends JooqGateway { | ||||
| 			// @formatter:on | ||||
| 			LOGGER.debug(sql.toString()); | ||||
| 			for (TDoneRecord r : sql.fetch()) { | ||||
| 				list.add(new DoneBean(r, projectMap, moduleMap, jobMap)); | ||||
| 				list.add(new DoneBean(r, projectMap, moduleMap, jobMap, billingMap)); | ||||
| 			} | ||||
| 		} | ||||
| 		list.sort((o1, o2) -> o1 == null || o2 == null ? 0 : o1.compareTo(o2)); | ||||
| @@ -203,11 +236,11 @@ public class DoneGateway extends JooqGateway { | ||||
| 		Integer fkProject = bean.getProject() == null ? null : bean.getProject().getPk(); | ||||
| 		Integer fkModule = bean.getModule() == null ? null : bean.getModule().getPk(); | ||||
| 		Integer fkJob = bean.getActivity() == null ? null : bean.getActivity().getPk(); | ||||
| 		String wp = bean.getWp() == null ? null : bean.getWp().getKey(); | ||||
| 		Integer fkBilling = bean.getBilling() == null ? null : bean.getBilling().getPk(); | ||||
| 		Integer fkLogin = getFkLogin(); | ||||
|  | ||||
| 		try (CloseableDSLContext jooq = getJooq()) { | ||||
| 			InsertValuesStep7<TDoneRecord, LocalDateTime, LocalDateTime, Integer, Integer, Integer, String, Integer> sql = jooq | ||||
| 			InsertValuesStep7<TDoneRecord, LocalDateTime, LocalDateTime, Integer, Integer, Integer, Integer, Integer> sql = jooq | ||||
| 			// @formatter:off | ||||
| 				.insertInto(T_DONE,  | ||||
| 										T_DONE.TIME_FROM,  | ||||
| @@ -215,9 +248,9 @@ public class DoneGateway extends JooqGateway { | ||||
| 										T_DONE.FK_PROJECT,  | ||||
| 										T_DONE.FK_MODULE,  | ||||
| 										T_DONE.FK_JOB, | ||||
| 										T_DONE.WP, | ||||
| 										T_DONE.FK_BILLING, | ||||
| 										T_DONE.FK_LOGIN) | ||||
| 				.values(bean.getTimeFrom(), bean.getTimeUntil(), fkProject, fkModule, fkJob, wp, fkLogin); | ||||
| 				.values(bean.getTimeFrom(), bean.getTimeUntil(), fkProject, fkModule, fkJob, fkBilling, fkLogin); | ||||
| 			// @formatter:on | ||||
| 			LOGGER.debug(sql.toString()); | ||||
| 			sql.execute(); | ||||
| @@ -233,7 +266,6 @@ public class DoneGateway extends JooqGateway { | ||||
| 	 */ | ||||
| 	public void update(DoneBean bean) throws DataAccessException, ClassNotFoundException, SQLException { | ||||
| 		try (CloseableDSLContext jooq = getJooq()) { | ||||
| 			String wp = bean.getWp() == null ? null : bean.getWp().getKey(); | ||||
| 			UpdateConditionStep<TDoneRecord> sql = jooq | ||||
| 			// @formatter:off | ||||
| 				.update(T_DONE) | ||||
| @@ -242,7 +274,7 @@ public class DoneGateway extends JooqGateway { | ||||
| 				.set(T_DONE.FK_PROJECT, bean.getProject() == null ? null : bean.getProject().getPk()) | ||||
| 				.set(T_DONE.FK_JOB, bean.getActivity() == null ? null : bean.getActivity().getPk()) | ||||
| 				.set(T_DONE.FK_MODULE, bean.getModule() == null ? null : bean.getModule().getPk()) | ||||
| 				.set(T_DONE.WP, wp) | ||||
| 				.set(T_DONE.FK_BILLING, bean.getBilling() == null ? null : bean.getBilling().getPk()) | ||||
| 				.where(T_DONE.PK.eq(bean.getPk())); | ||||
| 			// @formatter:on | ||||
| 			LOGGER.debug(sql.toString()); | ||||
| @@ -312,29 +344,31 @@ public class DoneGateway extends JooqGateway { | ||||
| 	public List<DailySummaryBean> getAllJobs(java.util.Date day) | ||||
| 			throws DataAccessException, ClassNotFoundException, SQLException { | ||||
| 		try (CloseableDSLContext jooq = getJooq()) { | ||||
| 			SelectConditionStep<Record6<String, Double, String, String, String, String>> sql = jooq | ||||
| 			SelectConditionStep<Record7<String, Double, String, String, String, String, String>> sql = jooq | ||||
| 			// @formatter:off | ||||
| 				.select(V_WORKTIME.DURATION, | ||||
| 				        V_WORKTIME.DURATION_HOURS, | ||||
| 				        V_WORKTIME.PROJECT_NAME, | ||||
| 				        V_WORKTIME.MODULE_NAME, | ||||
| 				        V_WORKTIME.JOB_NAME, | ||||
| 				        V_WORKTIME.WP) | ||||
| 				        V_WORKTIME.BILLING_SHORTCUT, | ||||
| 				        V_WORKTIME.BILLING_CSSKEY) | ||||
| 				.from(V_WORKTIME) | ||||
| 				.where(V_WORKTIME.DAY.eq(new SimpleDateFormat("yyyy-MM-dd").format(day))) | ||||
| 				.and(V_WORKTIME.FK_LOGIN.eq(getFkLogin())); | ||||
| 			// @formatter:on | ||||
| 			LOGGER.debug(sql.toString()); | ||||
| 			List<DailySummaryBean> list = new ArrayList<>(); | ||||
| 			for (Record6<String, Double, String, String, String, String> r : sql.fetch()) { | ||||
| 			for (Record7<String, Double, String, String, String, String, String> r : sql.fetch()) { | ||||
| 				String duration = r.get(V_WORKTIME.DURATION); | ||||
| 				Double durationHours = r.get(V_WORKTIME.DURATION_HOURS); | ||||
| 				String projectName = r.get(V_WORKTIME.PROJECT_NAME); | ||||
| 				String moduleName = r.get(V_WORKTIME.MODULE_NAME); | ||||
| 				String jobName = r.get(V_WORKTIME.JOB_NAME); | ||||
| 				String wp = r.get(V_WORKTIME.WP); | ||||
| 				String billingShortcut = r.get(V_WORKTIME.BILLING_SHORTCUT); | ||||
| 				String billingCsskey = r.get(V_WORKTIME.BILLING_CSSKEY); | ||||
| 				durationHours = durationHours == null ? null : new BigDecimal(durationHours).setScale(2, RoundingMode.HALF_UP).doubleValue(); | ||||
| 				list.add(new DailySummaryBean(projectName, moduleName, jobName, duration, wp, durationHours)); | ||||
| 				list.add(new DailySummaryBean(projectName, moduleName, jobName, duration, billingShortcut, billingCsskey, durationHours)); | ||||
| 			} | ||||
| 			return list; | ||||
| 		} | ||||
| @@ -354,7 +388,7 @@ public class DoneGateway extends JooqGateway { | ||||
| 			// @formatter:off | ||||
| 				.select(T_DONE.TIME_FROM, | ||||
| 								T_DONE.TIME_UNTIL, | ||||
| 								T_DONE.WP, | ||||
| 								T_BILLING.NAME, | ||||
| 								T_PROJECT.NAME, | ||||
| 								T_MODULE.NAME, | ||||
| 								T_JOB.NAME) | ||||
| @@ -362,6 +396,7 @@ public class DoneGateway extends JooqGateway { | ||||
| 				.leftJoin(T_PROJECT).on(T_PROJECT.PK.eq(T_DONE.FK_PROJECT)) | ||||
| 				.leftJoin(T_MODULE).on(T_MODULE.PK.eq(T_DONE.FK_MODULE)) | ||||
| 				.leftJoin(T_JOB).on(T_JOB.PK.eq(T_DONE.FK_JOB)) | ||||
| 				.leftJoin(T_BILLING).on(T_BILLING.PK.eq(T_DONE.FK_BILLING)) | ||||
| 				.where(T_DONE.FK_LOGIN.eq(getFkLogin())); | ||||
| 			// @formatter:on | ||||
| 			LOGGER.debug(sql.toString()); | ||||
| @@ -370,14 +405,14 @@ public class DoneGateway extends JooqGateway { | ||||
| 				String projectName = r.get(T_PROJECT.NAME); | ||||
| 				String moduleName = r.get(T_MODULE.NAME); | ||||
| 				String jobName = r.get(T_JOB.NAME); | ||||
| 				String wp = r.get(T_DONE.WP); | ||||
| 				String billingName = r.get(T_BILLING.NAME); | ||||
| 				LocalDateTime timeFrom = r.get(T_DONE.TIME_FROM); | ||||
| 				LocalDateTime timeUntil = r.get(T_DONE.TIME_UNTIL); | ||||
|  | ||||
| 				StringBuilder buf = new StringBuilder(); | ||||
| 				buf.append(projectName); | ||||
| 				if (wp != null && !wp.isBlank()) { | ||||
| 					buf.append(" (").append(wp).append(")"); | ||||
| 				if (billingName != null && !billingName.isBlank()) { | ||||
| 					buf.append(" (").append(billingName).append(")"); | ||||
| 				} | ||||
| 				buf.append(", "); | ||||
| 				buf.append(moduleName); | ||||
| @@ -453,18 +488,4 @@ public class DoneGateway extends JooqGateway { | ||||
| 		} | ||||
| 		return buf.toString(); | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * dummy method to use until a table has been created | ||||
| 	 *  | ||||
| 	 * @return all valid wps | ||||
| 	 */ | ||||
| 	public static final List<WpBean> getAllWps() { | ||||
| 		List<WpBean> list = new ArrayList<>(); | ||||
| 		list.add(new WpBean("WP2", "WP2 (eucs) - Opal/Mica/..., REST")); | ||||
| 		list.add(new WpBean("WP4", "WP4 (eucs) - Square²")); | ||||
| 		list.add(new WpBean("WP5", "WP5 (eucs) - SHIP-Datenbereitstellung")); | ||||
| 		list.add(new WpBean("NFDI TA3", "TA3 (nfdi) - Mica Dev")); | ||||
| 		return list; | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -21,6 +21,7 @@ import javax.inject.Named; | ||||
| import org.jooq.exception.DataAccessException; | ||||
|  | ||||
| import de.jooqfaces.JooqFacesContext; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TBillingRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TJobRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TModuleRecord; | ||||
| import de.jottyfan.timetrack.db.done.tables.records.TProjectRecord; | ||||
| @@ -41,7 +42,7 @@ public class DoneModel implements Model, Serializable { | ||||
| 	private List<TProjectRecord> projects; | ||||
| 	private List<TModuleRecord> modules; | ||||
| 	private List<TJobRecord> activities; | ||||
| 	private List<WpBean> wps; | ||||
| 	private List<TBillingRecord> billings; | ||||
| 	private List<TimeBean> times; | ||||
| 	private List<DailySummaryBean> allJobs; | ||||
| 	private WholeDaySummaryBean daySummary; | ||||
| @@ -58,7 +59,7 @@ public class DoneModel implements Model, Serializable { | ||||
| 			modules = gw.getAllModules(); | ||||
| 			activities = gw.getAllActivities(); | ||||
| 			projects = gw.getAllProjects(); | ||||
| 			wps = DoneGateway.getAllWps(); | ||||
| 			billings = gw.getAllBillings(); | ||||
| 			daySummary = gw.getDaySummary(day); | ||||
| 			allJobs = gw.getAllJobs(day); | ||||
| 			calendarEvents = gw.getAllCalendarEvents(); | ||||
| @@ -211,8 +212,8 @@ public class DoneModel implements Model, Serializable { | ||||
| 			buf.append(thatday).append("\t"); | ||||
| 			buf.append(sdb.getDuration()).append("\t"); | ||||
| 			buf.append(sdb.getProjectName()); | ||||
| 			if (sdb.getWp() != null && !sdb.getWp().isBlank()) { | ||||
| 			  buf.append(" (").append(sdb.getWp()).append(")"); | ||||
| 			if (sdb.getBillingShortcut() != null && !sdb.getBillingShortcut().isBlank()) { | ||||
| 			  buf.append(" (").append(sdb.getBillingShortcut()).append(")"); | ||||
| 			} | ||||
| 			buf.append("\t"); | ||||
| 			buf.append(sdb.getModuleName()).append("\t"); | ||||
| @@ -246,8 +247,8 @@ public class DoneModel implements Model, Serializable { | ||||
| 		return activities; | ||||
| 	} | ||||
| 	 | ||||
| 	public List<WpBean> getWps() { | ||||
| 		return wps; | ||||
| 	public List<TBillingRecord> getBillings() { | ||||
| 		return billings; | ||||
| 	} | ||||
|  | ||||
| 	public List<DailySummaryBean> getAllJobs() { | ||||
|   | ||||
| @@ -1,34 +0,0 @@ | ||||
| package de.jottyfan.timetrack.modules.done; | ||||
|  | ||||
| import java.io.Serializable; | ||||
|  | ||||
| /** | ||||
|  *  | ||||
|  * @author jotty | ||||
|  * | ||||
|  */ | ||||
| public class WpBean implements Serializable { | ||||
| 	private static final long serialVersionUID = 1L; | ||||
| 	private final String name; | ||||
| 	private final String key; | ||||
|  | ||||
| 	public WpBean(String key, String name) { | ||||
| 		super(); | ||||
| 		this.key = key; | ||||
| 		this.name = name; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @return the name | ||||
| 	 */ | ||||
| 	public String getName() { | ||||
| 		return name; | ||||
| 	} | ||||
|  | ||||
| 	/** | ||||
| 	 * @return the key | ||||
| 	 */ | ||||
| 	public String getKey() { | ||||
| 		return key; | ||||
| 	} | ||||
| } | ||||
| @@ -58,9 +58,9 @@ | ||||
|               <f:selectItem itemValue="" itemLabel="--- bitte wählen ---" /> | ||||
|               <f:selectItems value="#{doneModel.activities}" var="i" itemValue="#{i}" itemLabel="#{i.name}" /> | ||||
|             </b:selectOneMenu> | ||||
|             <b:selectOneMenu id="wp" value="#{doneModel.bean.wp}"> | ||||
|             <b:selectOneMenu id="billing" value="#{doneModel.bean.billing}"> | ||||
|              	<f:selectItem itemValue="" itemLabel="--- bitte wählen ---" /> | ||||
|               <f:selectItems value="#{doneModel.wps}" var="i" itemValue="#{i}" itemLabel="#{i.name}" /> | ||||
|               <f:selectItems value="#{doneModel.billings}" var="i" itemValue="#{i}" itemLabel="#{i.name}" /> | ||||
|             </b:selectOneMenu> | ||||
|           </b:panelGrid> | ||||
|           <b:buttonGroup> | ||||
| @@ -72,7 +72,7 @@ | ||||
| 												$("[id='formular:projectInner']").attr("size", 25); | ||||
| 												$("[id='formular:moduleInner']").attr("size", 25); | ||||
| 												$("[id='formular:activityInner']").attr("size", 25); | ||||
| 												$("[id='formular:wpInner']").attr("size", 25); | ||||
| 												$("[id='formular:billingInner']").attr("size", 25); | ||||
| 											}); | ||||
| 										</script> | ||||
|         </b:form> | ||||
|   | ||||
| @@ -23,6 +23,8 @@ | ||||
|           <h:outputText value="#{doneModel.bean.moduleName}" style="font-weight: bolder" /> | ||||
|           <h:outputText value="Tätigkeit: " /> | ||||
|           <h:outputText value="#{doneModel.bean.jobName}" style="font-weight: bolder" /> | ||||
|           <h:outputText value="Abrechnung: " /> | ||||
|           <h:outputText value="#{doneModel.bean.billingName}" style="font-weight: bolder" /> | ||||
|         </b:panelGrid> | ||||
|         <b:form> | ||||
|           <b:buttonGroup> | ||||
|   | ||||
| @@ -45,7 +45,7 @@ | ||||
|             <h:outputText value="Projekt (#{doneModel.bean.projectName})" /> | ||||
|             <h:outputText value="Modul (#{doneModel.bean.moduleName})" /> | ||||
|             <h:outputText value="Tätigkeit (#{doneModel.bean.jobName})" /> | ||||
|             <h:outputText value="Abrechnung (#{doneModel.bean.wpName})" /> | ||||
|             <h:outputText value="Abrechnung (#{doneModel.bean.billingName})" /> | ||||
|             <b:selectOneMenu id="project" value="#{doneModel.bean.project}"> | ||||
|               <f:selectItem itemValue="" itemLabel="--- bitte wählen ---" /> | ||||
|               <f:selectItems value="#{doneModel.projects}" var="i" itemValue="#{i}" itemLabel="#{i.name}" /> | ||||
| @@ -58,9 +58,9 @@ | ||||
|               <f:selectItem itemValue="" itemLabel="--- bitte wählen ---" /> | ||||
|               <f:selectItems value="#{doneModel.activities}" var="i" itemValue="#{i}" itemLabel="#{i.name}" /> | ||||
|             </b:selectOneMenu> | ||||
|              <b:selectOneMenu id="wp" value="#{doneModel.bean.wp}"> | ||||
|              <b:selectOneMenu id="billing" value="#{doneModel.bean.billing}"> | ||||
|             	<f:selectItem itemValue="" itemLabel="--- bitte wählen ---" /> | ||||
|               <f:selectItems value="#{doneModel.wps}" var="i" itemValue="#{i}" itemLabel="#{i.name}" /> | ||||
|               <f:selectItems value="#{doneModel.billings}" var="i" itemValue="#{i}" itemLabel="#{i.name}" /> | ||||
|             </b:selectOneMenu> | ||||
|           </b:panelGrid> | ||||
|           <b:buttonGroup> | ||||
| @@ -72,7 +72,7 @@ | ||||
| 												$("[id='formular:projectInner']").attr("size", 25); | ||||
| 												$("[id='formular:moduleInner']").attr("size", 25); | ||||
| 												$("[id='formular:activityInner']").attr("size", 25); | ||||
| 												$("[id='formular:wpInner']").attr("size", 25); | ||||
| 												$("[id='formular:billingInner']").attr("size", 25); | ||||
| 											}); | ||||
| 										</script> | ||||
|         </b:form> | ||||
|   | ||||
| @@ -24,7 +24,7 @@ | ||||
|                   <b:commandButton action="#{doneControl.toDelete(b)}" value="Entfernen" look="danger" iconAwesome="trash" /> | ||||
|                 </b:dataTableColumn> | ||||
|                 <b:dataTableColumn label="" value="#{b.timeSummary}" contentStyleClass="doneoverviewtext" style="width: 128px !important" orderable="false" /> | ||||
|                 <b:dataTableColumn label="" value="#{b.projectNameWithWP}" contentStyleClass="doneoverviewtextemph" style="width: 160px !important" orderable="false" /> | ||||
|                 <b:dataTableColumn label="" value="#{b.projectNameWithBilling}" contentStyleClass="doneoverviewtextemph" style="width: 160px !important" orderable="false" /> | ||||
|                 <b:dataTableColumn label="" value="#{b.timeDiff}" contentStyleClass="doneoverviewtextemph" style="width: 64px !important" orderable="false" /> | ||||
|                 <b:dataTableColumn label="" style="width: 100px !important" orderable="false"> | ||||
|                   <b:commandButton action="#{doneControl.toEdit(b)}" value="Editieren" look="warning" iconAwesome="pencil" /> | ||||
| @@ -75,7 +75,7 @@ | ||||
|                 searching="false"> | ||||
|                 <b:dataTableColumn label="" value="#{col.projectName}" contentStyle="font-size: 120%" orderable="false" /> | ||||
|                 <b:dataTableColumn label="" orderable="false"> | ||||
|                 	<b:badge value="#{col.wp}" styleClass="#{col.wp}" /> | ||||
|                 	<b:badge value="#{col.billingShortcut}" styleClass="#{col.billingCsskey}" /> | ||||
|                 </b:dataTableColumn> | ||||
|                 <b:dataTableColumn label="" value="#{col.moduleName}" contentStyle="font-size: 120%" orderable="false" /> | ||||
|                 <b:dataTableColumn label="" value="#{col.jobName}" contentStyle="font-size: 120%" orderable="false" /> | ||||
| @@ -108,9 +108,12 @@ | ||||
|             	</ui:repeat> | ||||
|             </b:tab> | ||||
|             <b:tab title="Abrechnung"> | ||||
|             	<b:dataTable value="#{doneModel.wps}" var="col" border="false" info="false"> | ||||
|             		<b:dataTableColumn label="Schlüssel" value="#{col.key}" /> | ||||
|             	<b:dataTable value="#{doneModel.billings}" var="col" border="false" info="false"> | ||||
|             		<b:dataTableColumn label="Kürzel" value="#{col.shortcut}" /> | ||||
|             		<b:dataTableColumn label="Name" value="#{col.name}" /> | ||||
|             		<b:dataTableColumn label="Stil"> | ||||
|            		  	<b:badge value="#{col.csskey}" styleClass="#{col.csskey}" /> | ||||
|             		</b:dataTableColumn> | ||||
|             	</b:dataTable> | ||||
|             </b:tab> | ||||
|           </b:tabView> | ||||
|   | ||||
| @@ -47,17 +47,30 @@ | ||||
|  | ||||
| .WP2 { | ||||
| 	color: black !important; | ||||
| 	background-color: #ffe169 !important; | ||||
| 	background: radial-gradient(#ffff00, #ffe169) !important; | ||||
| 	border: 1px solid darkgray; | ||||
|   padding-top: 8px !important; | ||||
| } | ||||
|  | ||||
| .WP4 { | ||||
| 	color: white !important; | ||||
| 	background-color: #69c3ff !important; | ||||
| 	color: black !important; | ||||
| 	background: radial-gradient(#00ffff, #69c3ff) !important; | ||||
| 	border: 1px solid darkgray; | ||||
|   padding-top: 8px !important; | ||||
| } | ||||
|  | ||||
| .WP5 { | ||||
| 	color: black !important; | ||||
| 	background-color: #e396ff !important; | ||||
| 	background: radial-gradient(#ff0000, #e396ff) !important; | ||||
| 	border: 1px solid darkgray; | ||||
|   padding-top: 8px !important; | ||||
| } | ||||
|  | ||||
| .TA3 { | ||||
| 	color: black !important; | ||||
| 	background: radial-gradient(#99ff99, #ccffcc) !important; | ||||
| 	border: 1px solid darkgray; | ||||
|   padding-top: 8px !important; | ||||
| } | ||||
|  | ||||
| .left { | ||||
|   | ||||
		Reference in New Issue
	
	Block a user