Script: Neuberechnung der Ansätze von Leistungen ab Datum

Berechnet Stundensätze von Leistungen ab Datum

Standard

|

Expert

CLOUD ABO

|

ON-PREMISES

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erstellt: 17.02.2004
Aktualisiert: 20.01.2020 | Script ersetzt: eval() durch evalocl() ersetzt.

Berechnet die Stundensätze aller Leistungen von allen aktiven Mitarbeitern neu, unter Angabe eines von Datums bis heute.

Bei offenen Leistungen werden dabei alle Sätze angepasst, bei verrechneten Leistungen nur die Kostensätze.

Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden!

Möchten Sie stattdessen nur die Leistungen eines einzelnen Projekts neu berechnen, verwenden Sie dafür folgendes Script: Neuberechnung offene Leistungen eines Projekts.

Version

Version Beschreibung Script
ab 6.1.0.14 Verwendet vtcapp.currentdate() RecalcStundensatz.py

Ausführen

Irgendwo in Vertec

Scripttext

#---Bezeichnung: Neuberechnung Stundensatz
#   Klassen: keine
#   ObjectScript: No
#   ContainerScript: No
#   EventType: Kein
#   EventClass:
#   EventMembers:
#   ExtendedRights: No
#---Berechnet die Stundensätze aller Leistungen von allen
#   aktiven Mitarbeitern neu, unter Angabe eines ab Datum bis heute.
#   Bei offenen Leistungen werden dabei alle Sätze angepasst,
#   bei verrechneten Leistungen nur die Kostensätze.
#---Achtung: Dieser Vorgang kann nicht rückgängig gemacht werden!
#---17.02.2004, Vertec AG: erstellt.
#---20.04.2009, sr: Header eingefügt.
#---06.11.2012, cp: ergänzt um verrechnete Leistungen.
#---29.10.2013, sr: msgbox und inputbox auf vertec aufrufen.
#---25.04.2018, sth: In Python erstellt. Ab Version 6.1.0.14.
#---12.12.2018, tka: eval durch evalocl ersetzt.

def main():

    # Python Script für Custom Dialog
    dlgDefinition="""
    <Dialog Title="Neuberechnung Stundensatz">
        <TextBlock Text="Ab welchem Datum sollen die Leistungen angepasst werden?" Appearance="Info"/>
        <DatePicker Name="Von" Label="Datum" LabelWidth="40" />
        <Dialog.Buttons>
            <Button Text="OK" IsAccept="True" Command="{Binding OkCommand}" />
            <Button Text="Cancel" IsCancel="True" Command="{Binding CancelCommand}" />
        </Dialog.Buttons>
    </Dialog>
    """

    initValues = {}
    initValues["Von"] = vtcapp.firstdayofmonth(vtcapp.currentdate())
    ok, values = vtcapp.showcustomdialog(dlgDefinition, initValues)
    if ok:
        fromDate = values["Von"]
        bearblist = vtcapp.evalocl("projektbearbeiter->select(aktiv)")
        for bearb in bearblist:
            leistlist = bearb.evalocl("offeneleistungen->union(verrechneteleistungen)->select(datum>=%s)" % vtcapp.ocldate(fromDate))
            for leistung in leistlist:
                leistung.updatesatz()
        vtcapp.updatedatabase()
main()
Bitte wählen Sie Ihren Standort