Vertec AI Chatbot

Der Chatbot hilft Ihnen bei Fragen rund um das Produkt und die Anpassbarkeit der Software. Wie bei allen AI-generierten Daten sollten die Antworten bei kritischen Informationen verifiziert werden. Nehmen Sie dafür gerne Kontakt mit uns auf. Weitere Informationen zur Verarbeitung der Chat-Daten bieten wir auf der Datenschutzseite.

Die besten Antworten liefert der Chatbot, wenn Ihr Input möglichst viele Informationen enthält. Zum Beispiel:

«Welche Apps stehen im Vertec Cloud Abo zur Verfügung?»

Script: Ebene Stundensatz anzeigen

Das Script zeigt in einer Messagebox an, auf welcher Ebene der Stundensatz der aktuellen Leistung berechnet wurde

Standard

|

Expert

CLOUD ABO

|

ON-PREMISES

Leistung & CRM

Budget & Teilprojekt

Fremdkosten

Ressourcenplanung

Business Intelligence

Erstellt: 22.09.2014
Aktualisiert: 14.07.2020 | Script ersetzt. Berücksichtigt nur noch aktive BearbeiterPhaseLinks analog Businesslogik.

Inhalt

Zeigt in einer Messagebox an, auf welcher Ebene der Stundensatz der aktuellen Leistung berechnet wurde. Basiert auf der Prioritätenliste gemäss Artikel Das Tarifsystem.

Version

Alle Vertec Versionen

Ausführen

Auf einer einzelnen Leistung (offen oder verrechnet)

Script

ShowLevelStundensatz.py

Scripttext

# coding: windows-1252
#
#---Bezeichnung: Ebene Stundensatz anzeigen
#   Klassen: Leistung
#   CondExpression:
#   ObjectScript: Y
#   ContainerScript: N
#   EventType: Kein
#   EventClass:
#   EventMembers:
#   ExtendedRights: N
#---Zeigt an auf welcher Ebene der Stundensatz
#---einer Leistung berechnet wird.
#---2014-09-18, FG: erstellt.
#---2014-09-22, FG: Formatierung angepasst(Leerschläge bei der Aufzählung).
#---2014-10-29, FG: bei der Tariftabelle ansatzKosten geändert in ansatzExt
#   Version = 102
#
import vtcapp

# zeigt eine MessageBox mit Kennzeichnung auf der
# Prioritätsstufe
def showPriority(stufe):
    msg = "1. Priorität: Tätigkeit auf Phase"
    if stufe == 1:
        msg += "\t\t<----"
    msg += "\n2. Priorität: Bearbeiter auf Phase"
    msg += "\n\t1. Explizit gesetzter Ansatz"
    if stufe == 2:
        msg += "\t\t<----"
    msg += "\n\t2. Gesetzte Stufe"
    if stufe == 3:
        msg += "\t\t<----"
    msg += "\n3. Priorität: Vorgabe auf Phase"
    if stufe == 4:
        msg += "\t\t<----"
    msg += "\n4. Priorität: Bearbeiter auf Projekt"
    msg += "\n\t1. Explizit gesetzter Ansatz"
    if stufe == 5:
        msg += "\t\t<----"
    msg += "\n\t2. Gesetzte Stufe"
    if stufe == 6:
        msg += "\t\t<----"
    msg += "\n5. Priorität: Vorgabe auf Projekt"
    if stufe == 7:
        msg += "\t\t<----"
    msg += "\n6. Priorität: Vorgabe auf Projekttyp"
    if stufe == 8:
        msg += "\t\t<----"
    msg += "\n7. Priorität: Tariftabelle"
    if stufe == 9:
        msg += "\t\t<----"
    msg += "\n8. Priorität: Vorgabe auf Bearbeiter"
    if stufe == 10:
        msg += "\t\t<----"
    msg += "\n 9.Priorität: 0.00"
    if stufe == 11:
        msg += "\t\t<----"
    vtcapp.msgbox(msg)

# gibt die Tariftabelle einer Leistung zurück
def getTariftabelle(leistung):
    if leistung.typ:
        for obj in leistung.typ.tarife:
            if obj.waehrung == leistung.waehrung:
                # Tariftabelle gefunden
                return obj

    for obj in leistung.waehrung.tarife:
        if not obj.taetigkeit:
            # Tariftabelle gefunden
            return obj

    return None

def main():
    leistung = argobject

    # Wenn eine Phase zugewiesen ist
    if leistung.phase:
        # 1. Priorität: Tätigkeit auf Phase
        if leistung.typ and leistung.eval("phase.taetigkeitphaselink->select(name=self.typ.code).ansatzExt->first"):
            showPriority(1)
            return

        # 2.1 Priorität: Bearbeiter auf Phase -> Explizit gesetzter Ansatz
        if leistung.eval("phase.bearbeiterPhasen->select(aktiv)->select(bearbeiter=self.bearbeiter).ansatzext->first"):
            showPriority(2)
            return
            
         # 2.2 Priorität: Bearbeiter auf Phase -> Gesetzte Stufe
        if leistung.eval("phase.bearbeiterPhasen->select(aktiv)->select(bearbeiter=self.bearbeiter).bearbeiterstufe->first"):
            showPriority(3)
            return

        # 3. Priorität: Vorgabe auf Phase
        if leistung.phase.ansatzext:
            showPriority(4)
            return

    # Wenn ein Projekt zugewiesen ist
    if leistung.projekt:
        # 4.1 Priorität: Bearbeiter auf Projekt -> Explizit gesetzter Ansatz
        if leistung.eval("projekt.bearbeiterlinks->select(bearbeiter=self.bearbeiter).ansatzext->first"):
            showPriority(5)
            return
            
        # 4.2 Priorität: Bearbeiter auf Projekt -> Gesetzte Stufe
        if leistung.eval("projekt.bearbeiterlinks->select(bearbeiter=self.bearbeiter).bearbeiterstufe->first"):
            showPriority(6)
            return

        # 5. Priorität: Vorgabe auf Projekt
        if leistung.projekt.ansatzext:
            showPriority(7)
            return

        # 6. Priorität: Vorgabe auf Projekttyp
        if leistung.projekt.typ.ansatzext:
            showPriority(8)
            return

        # 7. Priorität: Tariftabelle
        # Tariftabelle finden via Typ
        tariftabelle = getTariftabelle(leistung)

        if tariftabelle:
        # Ansatz in Tariftabelle suchen
            for obj in tariftabelle.ansaetze:
                if (obj.tarifstufe == leistung.projekt.tarifstufe) and (obj.bearbeiterstufe == leistung.bearbeiter.stufe):
                    # Ansatz gefunden
                    if obj.ansatzext:
                        showPriority(9)
                        return

        # 8. Priorität: Vorgabe auf Bearbeiter
        if leistung.bearbeiter.ansatzext:
            showPriority(10)
            return

        # 9. Priorität: 0.00
        showPriority(11)

main()
Kontakt

Montag bis Freitag
9-12 und 14-17 Uhr

Vertec 30 Tage kostenlos ausprobieren

Lernen Sie unsere Software mit allen Kernfunktionen kennen

Jetzt testen
Bitte wählen Sie Ihren Standort