Arbeitsblatt-Formular erneuert: Kalender, deutsche Service-Art
- Start und Ende mit Kalender und Uhrzeitfeld (gemeinsame Komponente DateTimeInput, auch im Ticketformular); gespeichert weiter als dd.mm.yyyy / hhmm, das Ende rückt mit, wenn der Start später liegt - Service Type nur noch "Fernwartung (remote)" oder "Vor Ort beim Kunden", vorbelegt vom Ticket; COMMENT entfällt (dafür gibt es "Nur Kommentar") - Minuten werden aus den Uhrzeiten berechnet (über Mitternacht weiter) - Minutenfeld nimmt ganze Minuten: mit step 15 ließ der Browser berechnete Zeiten wie 70 Minuten nicht absenden - Arbeitsblatt-Liste und -Statistik zeigen die Service-Art auf Deutsch (Remote und altes Off Site zusammen als Fernwartung) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
8cb0bb8146
commit
e678899141
7 files changed
+159
-173
No files matched your search
+17
-3
@@ -1,4 +1,4 @@
|
||||
/* Hilfen fuer "Neues Ticket" und die Anzeige der Tickets.
|
||||
/* Hilfen fuer die Formulare "Neues Ticket" und "Arbeitsblatt" und die Anzeige.
|
||||
WOMS speichert Datum als Text "dd.mm.yyyy" und Uhrzeit als "hhmm"
|
||||
(siehe planboard.js). Die Kalender-Felder des Browsers liefern dagegen
|
||||
"yyyy-mm-dd" bzw. "hh:mm" - umgerechnet wird erst beim Speichern. */
|
||||
@@ -9,8 +9,13 @@ export const SERVICE_TYPES = [
|
||||
{ value: 'On Site', label: 'Vor Ort beim Kunden' },
|
||||
]
|
||||
|
||||
// Kurzform fuer Badges. Das alte "Off Site" meinte ebenfalls Arbeit aus der Ferne.
|
||||
const SERVICE_TYPE_SHORT = { remote: 'Fernwartung', 'off site': 'Fernwartung', 'on site': 'Vor Ort' }
|
||||
// Kurzform fuer Badges und Listen. Das alte "Off Site" meinte ebenfalls Arbeit aus der Ferne.
|
||||
const SERVICE_TYPE_SHORT = {
|
||||
remote: 'Fernwartung',
|
||||
'off site': 'Fernwartung',
|
||||
'on site': 'Vor Ort',
|
||||
comment: 'Kommentar',
|
||||
}
|
||||
|
||||
export function serviceTypeLabel(value) {
|
||||
return SERVICE_TYPE_SHORT[String(value || '').trim().toLowerCase()] || value
|
||||
@@ -35,6 +40,15 @@ export function timeToWoms(value) {
|
||||
return m ? `${m[1].padStart(2, '0')}${m[2]}` : ''
|
||||
}
|
||||
|
||||
// Minuten von "hh:mm" bis "hh:mm"; liegt das Ende davor, geht es ueber Mitternacht
|
||||
export function minutesBetween(start, end) {
|
||||
const a = /^(\d{1,2}):(\d{2})/.exec(String(start || ''))
|
||||
const b = /^(\d{1,2}):(\d{2})/.exec(String(end || ''))
|
||||
if (!a || !b) return null
|
||||
const diff = Number(b[1]) * 60 + Number(b[2]) - (Number(a[1]) * 60 + Number(a[2]))
|
||||
return diff < 0 ? diff + 24 * 60 : diff
|
||||
}
|
||||
|
||||
/* Vorschlaege fuer "Requested by" / "Requested for": Kunden, Mitarbeiter
|
||||
und Namen aus frueheren Tickets. Pro Name (ohne Gross-/Kleinschreibung)
|
||||
ein Eintrag; customerIds merkt sich, zu welchen Kunden er gehoert. */
|
||||
|
||||
Reference in new issue
Block a user