Umbau Arbeitszeiten in die Arbeitszeiteinträge v12-08
Bisher
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.
Neu
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).
Update-Routinen
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