Script: Leistungen gestern kopieren

Inhalt

Kopiert die Leistungen des aktuellen Bearbeiters von "gestern" auf "heute". Heute wird über das "Datum Von" des Containers "offene Leistungen" definiert. Gestern wird definiert als einen Tag vor Heute.

Der Aufwand wird nicht kopiert.

Version

Alle Versionen

Ausführen

Entweder auf dem entsprechenden Bearbeiter oder auf seinem Ordner offene Leistungen.

Script

LeistungenKopieren.txt

Scripttext

'---Bezeichnung: Leistungen gestern kopieren
'   Klassen: Projektbearbeiter, DateFilterContainer
'   ObjectScript: Yes
'   ContainerScript: No
'   EventType: Kein
'---Kopiert die Leistungen des aktuellen Bearbeiters
'   von "gestern" auf "heute". Heute wird über das "Datum Von"
'   des Containers "offene Leistungen" definiert. Gestern wird
'   definiert als einen Tag vor Heute.
'   Der Aufwand wird nicht kopiert.
'---12.02.2004, Vertec AG: erstellt

option explicit

Dim Obj
Dim Bearbeiter
Dim Container
Dim i
Dim Containers
Dim Datum
Dim LeistungenGestern
Dim AlteLeistung, NeueLeistung

Set Obj = VERTEC.argObject
'---Das aktuelle Objekt muss entweder ein Projektbearbeiter
' oder ein DateFilterContainer sein.
If Obj.className = "Projektbearbeiter" Then
Set Bearbeiter = Obj
Set Containers = Bearbeiter.Eval("containers")
For i = 0 To Containers.Count - 1
'---Suche den richtigen Container.
' Gehe auf den Klassentyp.
If Containers.Objects(i).Member("rolle").Member("targetClassName") = "OffeneLeistung" Then
Set Container = Containers.Objects(i)
End If
Next
Else
If Obj.isOfType("DateFilterContainer") Then
Set Bearbeiter = Obj.Eval("parenteintrag")
Set Container = Obj
Else
Set Bearbeiter = Nothing
End If
End If

If Not Bearbeiter Is Nothing Then
'---Hole das "heutige" Datum aus dem Container,
' falls dieser vorhanden ist, sonst vom System-Date.
If Not Container Is Nothing Then
Datum = Container.Member("bisdatum")
Else
Datum = Date
End If

'---Hole die Leistungen von "gestern".
Set LeistungenGestern = Bearbeiter.MemberWithSQL("offeneLeistungen","datum = '" & Datum - 1 & "'", "datum")

'---Kopiere alle Leistungen
For i = 0 To LeistungenGestern.Count - 1
Set AlteLeistung = LeistungenGestern.Objects(i)
Set NeueLeistung = VERTEC.CreateObject("OffeneLeistung")
NeueLeistung.Member("projekt") = AlteLeistung.Member("projekt")
NeueLeistung.Member("bearbeiter") = AlteLeistung.Member("bearbeiter")
NeueLeistung.Member("phase") = AlteLeistung.Member("phase")
NeueLeistung.Member("datum") = Datum
NeueLeistung.Member("typ") = AlteLeistung.Member("typ")
NeueLeistung.Member("text") = AlteLeistung.Member("text")
Next
End If


12.02.2004 | 02.06.2008