Zum Inhalt springen

Umbau Arbeitszeiten in die Arbeitszeiteinträge v12-08

1.
Die (nicht mehr verwendete) Tabelle [s0_Arbeitsstunde] enthielt sozusagen die Zeiteinträge aller Tage eines Monats, also vom 1. bis zum 31. des aktuellen Monats. Das war früher wegen der A4-quer-Baustellenerfassung nötig.
Die (nun ausgebaute) Tabelle [r0_Arbeitsstunden_Detail] enthielt die „Details“ eines Tages, z.B. die Start- und Endzeit und/oder die Bemerkung(en).
2.
[r0_Arbeitsstunden_Detail]m_Arbeitsstunde  [s0_Arbeitsstunde]i_ID
oder
[s0_Arbeitsstunde]i_ID  [r0_Arbeitsstunden_Detail]m_Arbeitsstunde
3.
Die Verknüpfungen zu den Mitarbeitern, Dossiers, Tätigkeiten usw. usf. lief über die Tabelle [s0_Arbeitsstunde]:
[s0_Arbeitsstunde]r_Mitarbeiter  [s0_Mitarbeiter]i_ID
[s0_Arbeitsstunde]r_Auftragsdossier  [s1_Auftragsdossier]i_ID
usw.
4.
Gewisse Verknüpfungs-IDs konnten positiv oder negativ sein:
[s0_Arbeitsstunde]r_Auftragsdossier > 0  „Verknüpfung“ zu Auftragsdossiers
[s0_Arbeitsstunde]r_Auftragsdossier < 0  „Verknüpfung“ zu Stundenerfassungseinstellung (bzw. zu Absenzen)
Dasselbe galt für das Feld [s0_Arbeitsstunde]r_Taetigkeit:
[s0_Arbeitsstunde]r_Taetigkeit > 0  „Verknüpfung“ zu Taetigkeit
[s0_Arbeitsstunde]r_Taetigkeit < 0  „Verknüpfung“ zu Aufgabe (Dossieraufgabe)
Das Feld [s0_Arbeitsstunde]s_Verrechnungsstatus konnte die Werte „intern“, „extern“, „beides“ oder nichts („“) enthalten.

1.
Die Tabelle**[s0_Arbeitsstunde]** wird nicht mehr gebraucht und heisst neu [x0_uu_ArbStd].
Die Tabelle [r0_Arbeitsstunden_Detail] enthält alle nötigen Daten und heisst neu [s0_Arbeitszeiteintrag]. Insbesondere enthält die Tabelle [s0_Arbeitszeiteintrag] auch die Verknüpfungen zu Mitarbeitern, Dossiers, Allgemeine Tätigkeiten (Stundenerfassungseinstellung), Tätigkeiten, (Dossier-)Aufgaben usw.
2.
Da die Angaben auseinandergenommen wurden, werden auch keine „künstlichen“ negativen Verknüpfungs-IDs mehr verwendet, denn es gibt für jede Verknüpfung ein separates Feld in [s0_Arbeitszeiteintrag].
Anstelle des Felds [s0_Arbeitsstunde]s_Verrechnungsstatus treten zwei neue Felder:
[s0_Arbeitszeiteintrag]s_Ist__extern__verrechnet
[s0_Arbeitszeiteintrag]s_Ist__intern__verrechnet
3.
Die Verknüpfung zwischen den verrechneten Arbeiten und den Leistungen war bisher so:
[s1_Leistung]r_Arbeitsstunde  [s0_Arbeitsstunde]i_ID, d.h. ein Leistungsdatensatz war mit einem (nun nicht mehr existierenden) Arbeitsstunden-Datensatz verknüpft.
Neu lautet die „Verknüpfung“:
[s0_Arbeitszeiteintrag]s_Leistung_ID  [s1_Leistung]i_ID
Das bedeutet insbesondere, dass mehrere Arbeitszeiteinträge zu einem einzigen Leistungsdatensatz gehören können (z.B. wenn man bei der Verrechnung „gleichlautende Arbeitszeiteinträge“ zusammenfasst).

Beim Update auf ERP v12-08 laufen mehrere Aktualisierungsroutinen ab, welche die Daten an die neuen Gegebenheiten anpassen.
Die zentrale Update-Routine überträgt im Wesentlichen die Informationen aus der nicht mehr verwendeten Tabelle [s0_Arbeitsstunde] (bzw. neu: [x0_uu_ArbStd]) in die „ausgebaute“ Tabelle [s0_Arbeitszeiteintrag] (bzw. vorher: [r0_Arbeitsstunden_Detail]). Konkret tut sie folgendes:
[s0_Arbeitszeiteintrag]r_Mitarbeiter:=[x0_uu_ArbStd]x_Mitarbeiter
If ([x0_uu_ArbStd]x_Auftragsdossier>0)
[s0_Arbeitszeiteintrag]r_Auftragsdossier:=[x0_uu_ArbStd]x_Auftragsdossier
[s0_Arbeitszeiteintrag]r_Aktivitaet:=0
Else
[s0_Arbeitszeiteintrag]r_Auftragsdossier:=0
[s0_Arbeitszeiteintrag]r_Aktivitaet:=0-[x0_uu_ArbStd]x_Auftragsdossier
End if
If ([x0_uu_ArbStd]x_Taetigkeit>0)
[s0_Arbeitszeiteintrag]r_Taetigkeit:=[x0_uu_ArbStd]x_Taetigkeit
[s0_Arbeitszeiteintrag]r_Aufgabe:=0
Else
[s0_Arbeitszeiteintrag]r_Taetigkeit:=0
[s0_Arbeitszeiteintrag]r_Aufgabe:=0-[x0_uu_ArbStd]x_Taetigkeit
End if
//[s0_Arbeitszeiteintrag]r_Planung:=[s0_Arbeitszeiteintrag]r_Planung
[s0_Arbeitszeiteintrag]s_Ist__nicht__verrechenbar:=[x0_uu_ArbStd]x_Ist__nicht__verrechenbar
[s0_Arbeitszeiteintrag]s_Verrechenbare__Zeit:=[s0_Arbeitszeiteintrag]s_Effektive__Arbeitszeit
Case of
: ([x0_uu_ArbStd]x_Verrechnungsstatus=“intern”)
[s0_Arbeitszeiteintrag]s_Ist__extern__verrechnet:=False
[s0_Arbeitszeiteintrag]s_Ist__intern__verrechnet:=True
: ([x0_uu_ArbStd]x_Verrechnungsstatus=“extern”)
[s0_Arbeitszeiteintrag]s_Ist__extern__verrechnet:=True
[s0_Arbeitszeiteintrag]s_Ist__intern__verrechnet:=False
: ([x0_uu_ArbStd]x_Verrechnungsstatus=“beides”)
[s0_Arbeitszeiteintrag]s_Ist__extern__verrechnet:=True
[s0_Arbeitszeiteintrag]s_Ist__intern__verrechnet:=True
Else
[s0_Arbeitszeiteintrag]s_Ist__extern__verrechnet:=False
[s0_Arbeitszeiteintrag]s_Ist__intern__verrechnet:=False
End case
[s0_Arbeitszeiteintrag]s_Ist__nicht__aenderbar:=[x0_uu_ArbStd]x_Ist__nicht__aenderbar
[s0_Arbeitszeiteintrag]x_Ist__ausgeblendet:=[x0_uu_ArbStd]x_Ist__ausgeblendet

28.2.2012