Script: Leistungen gestern kopieren

Erstellt: 12.02.2004, Änderung:
Script in Python neu erstellt. Ersetzt das bisherige VBScript.
Mehr ansehen

Kopiert offene Leistungen von "Gestern" auf "Heute".

  • Heute wird über das "Datum Bis" des Containers "offene Leistungen" definiert.
    • Kein Filter: Datum Bis = Heute
    • Datumsintervall: Datum Bis = Datum Bis
    • Einzelner Tag: Datum Bis = Ausgewählter Tag
  • Gestern wird definiert als einen Tag vor Heute.
  • Es werden alle Leistungen von "Gestern" des Bearbeiters, des Projekts oder der Projektphase kopiert, je nachdem, wo das Script ausgeführt wird.

Der Aufwand wird nicht kopiert.

Version

Ab Vertec 5.7. Verwendet vtcapp.ocldate()

Ausführen

Auf dem Container offene Leistungen von Bearbeitern, Projekten und Projektphasen.

Script

Scripttext

# coding: windows-1252
#
#---Bezeichnung: Leistungen gestern kopieren
#   Klassen: OffeneLeistung
#   CondExpression:
#   ObjectScript: N
#   ContainerScript: Y
#   EventType: Kein
#   EventClass:
#   EventMembers:
#   ExtendedRights: N
#
#---Kopiert die offenen Leistungen aus der Liste
#   von "gestern" auf "heute". Heute wird über das "Datum Bis"
#   des Containers "offene Leistungen" definiert. Gestern wird
#   definiert als einen Tag vor Heute.
#   Der Aufwand wird nicht kopiert.
#---27.04.2018, sth: In Python erstellt.

def main():
    #Das aktuelle Objekt muss ein DateFilterContainer sein.
    if argobject.istypeof('DateFilterContainer'):
        parent = argobject.parenteintrag
        container = argobject
        #---Hole die Leistungen von "gestern". Als "heute" dient das bis-Datum aus dem Container
        leistungen = parent.eval("offeneleistungen->select(datum = %s)" % vtcapp.ocldate(vtcapp.incday(container.bisdatum, -1)))
        for leistung in leistungen:
            #---Kopiere alle Leistungen
            neueleistung = vtcapp.createobject('OffeneLeistung')
            neueleistung.projekt = leistung.projekt
            neueleistung.bearbeiter = leistung.bearbeiter
            neueleistung.phase = leistung.phase
            neueleistung.datum = container.bisdatum
            neueleistung.typ = leistung.typ
            neueleistung.text = leistung.text
    else:
        vtcapp.msgbox("Dieses Script kann nur auf einer Liste von offenen Leistungen ausgeführt werden.")
        return

main()