Add firma flag to availability and show office/home label
Server query gets the last stamp's BU_TERM in the same OUTER APPLY as LAST_STAMP, exposing FIRMA (1 = Zeiterfassung/Büro). Three OUTER APPLYs reduced to two by combining MAX(BU_BU) with TOP 1 ORDER BY. Client model gains a firma boolean and the people-tile indicator appends "· Büro" or "· Home" next to the timestamp, but only when the user is logged in.
This commit is contained in:
+5
-1
@@ -859,7 +859,11 @@ class Availability {
|
|||||||
var pad = (n) => n.toString().padStart(2, '0');
|
var pad = (n) => n.toString().padStart(2, '0');
|
||||||
time = pad(d.getDate()) + '.' + pad(d.getMonth() + 1) + '. ' + pad(d.getHours()) + ':' + pad(d.getMinutes());
|
time = pad(d.getDate()) + '.' + pad(d.getMonth() + 1) + '. ' + pad(d.getHours()) + ':' + pad(d.getMinutes());
|
||||||
}
|
}
|
||||||
indicator.innerHTML = '<span class="tapi-dot ' + dotClass + '"></span><small>' + time + '</small>';
|
var location = '';
|
||||||
|
if (entry.loggedIn) {
|
||||||
|
location = entry.firma ? ' · Büro' : ' · Home';
|
||||||
|
}
|
||||||
|
indicator.innerHTML = '<span class="tapi-dot ' + dotClass + '"></span><small>' + time + location + '</small>';
|
||||||
}
|
}
|
||||||
updateSquare(square) {
|
updateSquare(square) {
|
||||||
var extension = square.dataset.tapiExtension;
|
var extension = square.dataset.tapiExtension;
|
||||||
|
|||||||
@@ -3,4 +3,5 @@ export class AvailabilityInfo {
|
|||||||
public loggedIn: boolean;
|
public loggedIn: boolean;
|
||||||
public extension: string;
|
public extension: string;
|
||||||
public lastStamp: string;
|
public lastStamp: string;
|
||||||
|
public firma: boolean;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -71,7 +71,11 @@ export class Availability {
|
|||||||
var pad = (n: number) => n.toString().padStart(2, '0')
|
var pad = (n: number) => n.toString().padStart(2, '0')
|
||||||
time = pad(d.getDate()) + '.' + pad(d.getMonth() + 1) + '. ' + pad(d.getHours()) + ':' + pad(d.getMinutes())
|
time = pad(d.getDate()) + '.' + pad(d.getMonth() + 1) + '. ' + pad(d.getHours()) + ':' + pad(d.getMinutes())
|
||||||
}
|
}
|
||||||
indicator.innerHTML = '<span class="tapi-dot ' + dotClass + '"></span><small>' + time + '</small>'
|
var location = ''
|
||||||
|
if (entry.loggedIn) {
|
||||||
|
location = entry.firma ? ' · Büro' : ' · Home'
|
||||||
|
}
|
||||||
|
indicator.innerHTML = '<span class="tapi-dot ' + dotClass + '"></span><small>' + time + location + '</small>'
|
||||||
}
|
}
|
||||||
|
|
||||||
private updateSquare(square: HTMLElement) {
|
private updateSquare(square: HTMLElement) {
|
||||||
|
|||||||
@@ -13,4 +13,6 @@ public class Availability
|
|||||||
public string? US_EXTENSION { get; set; }
|
public string? US_EXTENSION { get; set; }
|
||||||
[JsonPropertyName("lastStamp")]
|
[JsonPropertyName("lastStamp")]
|
||||||
public DateTime? LAST_STAMP { get; set; }
|
public DateTime? LAST_STAMP { get; set; }
|
||||||
|
[JsonPropertyName("firma")]
|
||||||
|
public bool? FIRMA { get; set; }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,21 +11,24 @@ internal class ZeitConsensRepository(IConfiguration config) : Repository(config)
|
|||||||
ma.MA_USER_NAME
|
ma.MA_USER_NAME
|
||||||
,bu.LOGGED_IN
|
,bu.LOGGED_IN
|
||||||
,us.US_EXTENSION
|
,us.US_EXTENSION
|
||||||
,buLastStamp.LAST_STAMP
|
,buLast.LAST_STAMP
|
||||||
|
,buLast.FIRMA
|
||||||
FROM dbo.MA_DATEN ma
|
FROM dbo.MA_DATEN ma
|
||||||
INNER JOIN projectmanagement.dbo.CP_USER us on us.US_LOGINNAME = ma.MA_USER_NAME
|
INNER JOIN projectmanagement.dbo.CP_USER us ON us.US_LOGINNAME = ma.MA_USER_NAME
|
||||||
OUTER APPLY (
|
OUTER APPLY (
|
||||||
SELECT count(*) % 2 AS LOGGED_IN
|
SELECT COUNT(*) % 2 AS LOGGED_IN
|
||||||
FROM dbo.BU
|
FROM dbo.BU bu
|
||||||
WHERE bu.BU_MA_NR = ma.MA_NR
|
WHERE bu.BU_MA_NR = ma.MA_NR
|
||||||
AND
|
AND bu.BU_BU >= @from AND bu.BU_BU < @to
|
||||||
BU_BU >= @from AND BU_BU < @to
|
|
||||||
) bu
|
) bu
|
||||||
OUTER APPLY (
|
OUTER APPLY (
|
||||||
SELECT MAX(BU_BU) AS LAST_STAMP
|
SELECT TOP 1
|
||||||
FROM dbo.BU
|
bu.BU_BU AS LAST_STAMP
|
||||||
|
,CASE WHEN bu.BU_TERM = 'Zeiterfassung' THEN 1 ELSE 0 END AS FIRMA
|
||||||
|
FROM dbo.BU bu
|
||||||
WHERE bu.BU_MA_NR = ma.MA_NR
|
WHERE bu.BU_MA_NR = ma.MA_NR
|
||||||
) buLastStamp
|
ORDER BY bu.BU_BU DESC
|
||||||
|
) buLast
|
||||||
WHERE
|
WHERE
|
||||||
ma.MA_USER_AKTIV = 1
|
ma.MA_USER_AKTIV = 1
|
||||||
""";
|
""";
|
||||||
|
|||||||
Reference in New Issue
Block a user