added billing
This commit is contained in:
@ -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