P: Derived Attributes

Eine Auflistung aller Derived Attributes finden Sie im Artikel Derived Attributes.

PaperDok

  • erstellt: DateTime.

    wird auf dieser Ebene nicht verwendet. Statt dessen muss auf CreationDateTime zugegriffen werden.

  • geaendert: DateTime.

    wird auf dieser Ebene nicht verwendet. Statt dessen muss auf ModifiedDateTime zugegriffen werden.

PendenzenContainer

  • orderClause: VtcString
    • 'termin'
  • whereClause: VtcString
    • Formatiert die Datumsabfrage gemäss Usereingaben.

PraesenzZeit

  • minuten: integer.

    Berechnet die Differenz zwischen von und bis eines Präsenzeintrags in Minuten: = Round((bis - von) * 60 * 24)

Projekt

    • AllePhasen: ObjectList.
      • Gibt alle Phasen UND alle Subphasen von Phasen des Projekts zurück.
    • AuslagenWeiterleiten: boolean.
      • 1. xAuslagenWeiterleiten, falls gesetzt.
      • 2. sonst: falls Rechnungsadresse vorhanden, Weiterleitenvon dort nehmen:

        Rechnungsadresse.AuslagenWeiterleiten.AsBoolean;

      • 3. sonst: false.
    • Auslagetypen: ObjectList.

      Liste von allen aktiven Auslagetypen, die auf den aktuellen Projekttyp passen.

    • DatenbankFibu: VtcString.
      • xDatenbankFibu ist gesetzt: Projekt hat einen eigenen Datenbank-Pfad angegeben. Nehme diesen.
      • sonst: Hole den Wert vom Projekttyp.
      • falls auch da nicht gefunden: Hole den Wert aus den System-Property:

        TProperty.PropertyByName(DatenbankFibu).AsString

      • sonst: Leerstring.

    • DebitorKonto: VtcString.
      • xDebitorKonto, falls gesetzt.
      • sonst: vom Projekttyp
    • DebiKondition: ObjectReference.
      • xDebiKondition, falls gesetzt
      • sonst kunde.xDebiKondition, falls gesetzt
      • sonst vom projekttyp.xDebiKondition, falls gesetzt
      • sonst Systemeinstellung.
    • dokpfad: VtcString.
      • wenn xDokPfadgesetzt:
        • ist der Pfad absolut, wird er so verwendet
          • sonst: RootDokPfad (Dokumentenpfad in Systemeinstellungen) + xDokpfad.
      • wenn xDokPfadnicht gesetzt:
        • wenn Projekt-Dokumentenpfad in Systemeinstellungen gesetzt:

          • ist der Pfad absolut, wird er so verwendet
          • sonst: RootDokPfad + Projekt-Dokumentenpfad
        • wenn Projekt-Dokumentenpfad nicht gesetzt:
          • RootDokPfad
      • Illegale Characters werden durch '-' ersetzt.
    • ErtragsKontoAuslagen: VtcString.
      • 1. xErtragsKontoAuslagen, wenn gesetzt. Sonst:
      • 2. Von Projekttyp holen
    • ErtragskontoLeistungen: VtcString.
      • 1. xErtragskontoLeistungen, wenn gesetzt. Sonst:
      • 2. Von Projekttyp holen
    • ErtragskontoSpesen: VtcString.
      • 1. xErtragskontoSpesen, wenn gesetzt. Sonst:
      • 2. Von Projekttyp holen
    • ExtAdressName: VtcString.
      • Gibt den AdressNamen der externen Adresse, falls eine angehängt ist (ExtAdressReferenz).
      • Falls es keine externe Adresse hat: Leerstring.
    • ExtAdressText: VtcString.
      • Gibt den AdressText der externen Adresse, falls eine angehängt ist (ExtAdressReferenz).
      • Falls es keine externe Adresse hat: Leerstring.
    • KundenAdressName: VtcString.
      • Falls Kunde angegeben, den Namen von dort nehmen:

        Kunde.AsString

      • sonst: ExtAdressName.AsString
      • sonst: Leerstring.
    • KundenAdressText: VtcString.
      • 1. Falls Kunde gesetzt, den Adresstext von dort nehmen: Kunde.Adresstext.AsString.
      • 2. sonst: ExtAdresstext.AsString
      • 3. sonst: Leerstring.
    • LeistSums: ObjectList.

      Die Berechnung dieser Summenliste ist von verschiedenen Werten auf Leistung, Phase und Rechnung abhängig. Attributes von denen die Summen abhängen:

      Leistung: MinutenInt, xMinutenExt, AnsatzKosten, xWertExt, WertInt, pauschal, IsStueckLeistung, VerrMinutenExt, VerrWertExt, Projekt, Phase, Rechnung

      Phase: verrechenbar, pauschal, abgeschlossen, PlanWertExt

      Rechnung: Rabatt, RabattProzent, RabattBetrag

    • LoginFibu: VtcString.
      • xLoginFibu ist gesetzt: Projekt hat einen eigenen Datenbank-Pfad angegeben. Nehme diesen.
      • sonst: Hole den Wert vom Projekttyp
      • falls auch da nicht gefunden: Hole den Wert aus den System-Property:

        TProperty.PropertyByName(LoginFibu).AsString

      • sonst: Leerstring.
    • MWSTCodeLeistungen: VtcString.
      • Wenn es einen MWSTTypLeistungenangehängt hat, nehne den Code von diesem.

        TMWSTTyp(MWSTTypLeistungen.BoldObject).Code.AsString

    • MWSTCodeSpesen: VtcString.
      • Wenn es einen MWSTTypSpesenangehängt hat, nehne den Satz von diesem:

        TMWSTTyp(MWSTTypSpesen.BoldObject).Code.AsString

    • MWSTSatzLeistungen: VtcCurrency.
      • Wenn es einen MWSTTypLeistungenangehängt hat, nehne den Satz von diesem:

        TMWSTTyp(MWSTTypLeistungen.BoldObject).Satz.AsCurrency

    • MWSTSatzSpesen: VtcCurrency.
      • Wenn es einen MWSTTypSpesenangehängt hat, nehne den Satz von diesem:

        TMWSTTyp(MWSTTypSpesen.BoldObject).Satz.AsCurrency

    • MWSTTypAuslagen: ObjectReference.
      • 1. xMWSTTypAuslagen, falls gesetzt
      • 2. Sonst vom Projekttyp holen, falls gesetzt
      • 3. Muss den MWST-Typ übers Sytem holen. Je nach Einstellungen im Attr. MWST:
        • Normal: PropertyByName(MWSTTypAuslagenNormal)
        • Export: PropertyByName(MWSTTypAuslagenExport)
        • Keine: PropertyByName(MWSTTypAuslagenKeine)
      • 4. Falls jetzt noch kein MWST-Typ gefunden, werfe eine Exception.
    • MWSTTypLeistungen: ObjectReference.
      • 1. xMWSTTypLeistungen, falls gesetzt
      • 2. Sonst vom Projekttyp holen, falls gesetzt
      • 3. Muss den MWST-Typ übers Sytem holen. Je nach Einstellungen im Attr. MWST:
        • Normal: PropertyByName(MWSTTypLeistungenNormal)
        • Export: PropertyByName(MWSTTypLeistungenExport)
        • Keine: PropertyByName(MWSTTypLeistungenKeine)
      • 4. Falls jetzt noch kein MWST-Typ gefunden, werfe eine Exception.
    • MWSTTypSpesen: ObjectReference.
      • 1. xMWSTTypSpesen, falls gesetzt
      • 2. Sonst vom Projekttyp holen, falls gesetzt
      • 3. Muss den MWST-Typ übers Sytem holen. Je nach Einstellungen im Attr. MWST:
        • Normal: PropertyByName(MWSTTypSpesenNormal)
        • Export: PropertyByName(MWSTTypSpesenExport)
        • Keine: PropertyByName(MWSTTypSpesenKeine)
      • 4. Falls jetzt noch kein MWST-Typ gefunden, werfe eine Exception.
    • PasswordFibu: VtcString.
      • xPasswordFibu ist gesetzt: Projekt hat einen eigenen Datenbank-Pfad angegeben. Nehme diesen.
      • sonst: Hole den Wert vom Projekttyp
      • falls auch da nicht gefunden: Hole den Wert aus den System-Property:

        TProperty.PropertyByName(PasswordFibu).AsString

      • sonst: Leerstring.
    • Personenkonto: VtcString.
      • 1. xPersonenkonto, falls gesetzt. Sonst:
      • 2. Externe Adressreferenz:
        • wenn BoolProp(UseExtAdressen) = true:

          = ExtAdressReferenz.AsString

      • 3. wenn xRechnungsadressezugeordnet ist und diese ein Personenkonto hat:

        = xRechnungsAdresse.PersonenKonto.AsString

      • 4. wenn Kundezugeordnet und dieser ein Personenkonto hat:

        = TAdresseintrag(kunde).Personenkonto.AsString

      • 5. Sonst: Leerstring.
    • PlanAuslagenWert: VtcCurrency.
      • 1. xPlanAuslagenWert, falls gesetzt. Sonst:
      • 2. summiert PlanAuslagenWert auf allen angehängten Phasen.
      • 3. Falls keine Phasen definiert sind: 0.
    • PlanKostenAuslagen: VtcCurrency.
      • 1. xPlanKostenAuslagen, falls gesetzt. Sonst:
      • 2. summiert PlanKostenAuslagen auf allen angehängten Phasen.
      • 3. Falls keine Phasen definiert sind: 0.
    • PlanKostenLeistung: VtcCurrency.
      • 1. xPlanKostenLeistung, falls gesetzt. Sonst:
      • 2. summiert PlanKostenLeistung auf allen angehängten Phasen.
      • 3. Falls keine Phasen definiert sind: 0.
    • PlanKostenSpesen: VtcCurrency.
      • 1. xPlanKostenSpesen, falls gesetzt. Sonst:
      • 2. summiert PlanKostenSpesen auf allen angehängten Phasen.
      • 3. Falls keine Phasen definiert sind: 0.
    • PlanMinutenInt: integer.
      • 1. xPlanMinutenInt, falls gesetzt. Sonst:
      • 2. summiert PlanMinutenInt auf allen angehängten Phasen.
      • 3. Falls keine Phasen definiert sind: 0.
    • PlanSpesenWert: VtcCurrency.
      • 1. xPlanSpesenWert, falls gesetzt. Sonst:
      • 2. summiert PlanSpesenWert auf allen angehängten Phasen.
      • 3. Falls keine Phasen definiert sind: 0.
    • PlanWertExt: VtcCurrency.
      • 1. xPlanWertExt, falls gesetzt. Sonst:
      • 2. summiert PlanWertExt auf allen angehängten Phasen.
      • 3. Falls keine Phasen definiert sind: 0.
    • Projekttyp: ProjektTyp (Valueset).
      • Der Wert hängt normalerweise von der Eigenschaft „produktiv“ auf dem Projekttyp Objekt ab.
        Der (alte) Projekttyp „Produkt-Projekt“ wird über einen speziellen, von DB-Convert angelegten ProjektTyp, der via EintragID identifiziert wird, abgebildet.
      • früheres Attribut Projekttyp wegen Backwards compatibility berechnen. Sonst den typ nehmen.
if typ <> nil then
begin
if typ.EintragId.AsString = 'ProjekttypProdukt' then
Projekttyp.AsInteger:=2           // produkt
else
if typ.Produktiv.AsBoolean then
Projekttyp.AsInteger:=0         // produktiv
else
projekttyp.AsInteger:=1;        // intern
end
else
Projekttyp.AsInteger:=0;
end
    • Rechnungsadresse: ObjectReference.

      Bestimmt Rechnungsadresse (vor allem für Adresssynchronisation mit Buchhaltung):

      • xRechnungsadresse, falls gesetzt.
      • Sonst: kunde.
    • RechnungsAdressText: VtcString.
      • ExtAdressText.AsString, falls vorhanden.
      • Sonst: Rechnungsadresse, nehme default adresstext:

        Defaultadresse.AdressText.AsString

    • RechnungsBriefanrede: ObjectReference.
      • Ist Externe Adresse zugeordnet (ExtAdressText.AsString <> ''): nehme das im Link-Interface als Briefanrede definierte String-Objekt.
      • sonst auf der Rechnungsadresse:

        rechnungsadresse.Briefanrede.AsString

    • RechnungsGrussformel: VtcString.
      • Ist Externe Adresse zugeordnet (ExtAdressText.AsString <> ''): nehme das im Link-Interface als Grussformel definierte String-Objekt.
      • sonst auf der Rechnungsadresse:

        rechnungsadresse.Grussformel.AsString

    • Spesentypen: ObjectList.

      Liste von allen aktiven Spesentypen, die auf den aktuellen Projekttyp passen.

    • SumAuslagenWert: VtcCurrency.
      • summiert WertExt von allen offenen und verrechneten Auslagen.
    • SumKostenAuslagen: VtcCurrency.

      Summiert WertKosten von allen offenen und verrechneten Auslagen des Projekts.

    • sumKostenSpesen: VtcCurrency.
      • summiert WertKosten von allen offenen und verrechneten Spesen.
    • SumLeistungWertInt: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • summiere WertIntOffen + WertIntVerrechnet auf allen LeistSums.
      • sonst: summiere WertInt von allen Leistungen, die auf einer Rechnung sind (egal ob verrechnet oder nicht).
    • SumLeistungWertKosten: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • summiere WertKostenVerrechnet + WertKostenOffen auf allen LeistSums.
      • sonst: WertKosten auf den offenen und verrechneten Leistungen summieren.
    • SummeOffeneLeistungen: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • summiere WertExtOffen auf allen LeistSums.
      • sonst: summiere WertExt von allen offenen Leistungen.
    • SummeOffeneSpesen: VtcCurrency.
      • summiert WertExt von allen offenen Spesen.
    • SummeOffeneVorschuesse: VtcCurrency.
      • Summe BetragOffen von allen Vorschüssen
    • SumMinutenInt: integer.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • summiere MinutenIntOffen + MinutenIntVerrechnet auf allen LeistSums.
      • sonst: summiere MinutenInt von allen offenen und verrechneten Leistungen.
    • SumSpesenWert: VtcCurrency.

      Summiert WertExt von allen offenen und verrechneten Spesen.

    • SumSpesenWertRech: VtcCurrency.
      • summiere WertExt von allen Spesen, die auf einer Rechnung sind (egal ob verrechnet oder nicht).
    • SumWertExt: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • summiere WertExtOffen + WertExtVerrechnet auf allen LeistSums.
      • sonst: summiere WertExt von allen offenen und verrechneten Leistungen.
    • SumWertExtRech: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • summiere WertExtOffen + WertExtVerrechnet auf allen LeistSums.
      • sonst: summiere WertExt von allen Leistungen, die auf einer Rechnung sind (egal ob verrechnet oder nicht).
    • Taetigkeiten: ObjectList.

      Liste von allen aktiven Tätigkeiten, die auf den aktuellen Projekttyp passen.

    • UseDebitoren: boolean.

      Attribut wird nicht mehr verwendet.

    • VorschussKonto: VtcString.
      • 1. xVorschussKonto, wenn gesetzt. Sonst:
      • 2. Vom Projekttyp holen.
    • Zahlungstyp: ObjectReference. Das Objekt ist vom Typ Zahlungstyp.
      • 1. xZahlungstyp, wenn gesetzt, sonst:
      • 2. Zahlungstyp vom Projekttyp.

    Projektbearbeiter

    • BeschaeftigungsGrad: float.
      • 1. Wenn xWochensollzeit oder xWtagegesetzt sind, wird der Beschaeftigungsgrad berechnet:
        • Berechnet den Wert als Verhältnis zwischen WochenSollzeit und Property Wochensollzeit:

          WochenSollzeit / globWochenSollZeit * 100

        • falls ausrechnen nicht möglich, weil Property nicht gesetzt: 100.
      • 2. sonst: xBeschaeftigungsgrad, falls vorhanden.
      • 3. sonst: 100.
    • BriefName: VtcString.
      • xBriefname, falls gesetzt. Sonst:
      • falls kein xBriefname, dann ist es Stringrep(3) = externer Name: GetStringRepresentation(3)
    • ErfProjekte: ObjectList.

      Gibt die Projekte zurück, auf denen dieser Bearbeiter Leistungen erfassen darf.

      • Ist die Systemeinstellung Bearbeiter muessen bei Projekt zugeordnet werdenauf 'JA':
        • nehme alle aktiven Projekte der Liste bearbProjekte.
      • sonst: alle Projekte.
        • timsession.projekteAktiv
    • RootEintraege: ObjectList.

      Liste aller Root-Objekte, die der angemeldete Benutzer sehen kann.

    • SortierteJahre: ObjectList.
      • Gibt die BearbeiterJahre aus jahre sortiert nach Jahr zurück.
    • TagesSollZeit: integer.
      • Round(WochenSollZeit/5)
    • WochenSollZeit: integer.
      • 1. Wenn xWTage gesetzt ist: Tagessollzeiten summieren.
      • 2. xWochensollzeit, falls vorhanden.
      • 3. Wochensollzeit wird berechnet:

        Wert aus Property 'WochenSollZeit' * BeschaeftigungsGrad / 100

    Die folgenden Attribute werden auf der Klasse BearbeiterJahr berechnet. Für die Werte hier auf dem Projektbearbeiter wird jeweils das entsprechende Jahr genommen:

    • WTage: VtcString.
    • UeberzeitSaldo: integer.
    • UeberzeitSaldo1,..., UeberzeitSaldo12: integer.
    • Ferien: integer.
    • Feriensaldo: integer.
    • FerienSaldo1,..., FerienSaldo12: integer.
    • Gemeinkosten: VtcCurrency.
    • Lohn: VtcCurrency.

    ProjektBerichtLink

    LinkKlasse zwischen Projekten und Berichten.

    • BerichtName: VtcString.
      • StringRepresentation des Berichts, der über den Link berichte angehängt ist.

    ProjektEintrag

    • Ertragskonto: VtcString.
      • Eintrag ist verrechnet: verrErtragskonto.
      • Eintrag ist offen: Konto wird berechnet:
        1. xErtragskonto.
        2. Ertragskonto des Bearbeiters.
        3. Ertragskonto des Typs.
        4. Ertragskonto der Phase
        5. Ertragskonto des Projekts.
        6. Ertragskonto des Projekttyps
        7. Ertragskonto der Systemeinstellungen. Dies wird jedoch von den Subklassen des ProjektEintrags (Leistungen, Spesen, Auslagen) erledigt.
    • Kostenstelle: VtcString.
      • Eintrag ist verrechnet: verrKostenstelle.
      • Eintrag ist offen: Konto wird berechnet:
        1. xKostenstelle.
        2. Kostenstelle des Bearbeiters.
        3. Kostenstelle des Typs.
        4. Kostenstelle der Phase
        5. Kostenstelle des Projekts.
        6. Konnte nichts ermitteln: Leerstring.
    • Kurs: float.

      Kurs zur Leitwaehrung berechnen

      • wenn 'Waehrung angegeben ist:
        • berechnet den Kurs von dieser Währung zur Leitwährung.
      • sonst: 1.
    • LohnArt: VtcString.
      • Wenn Typangegeben ist:

        Typ.LohnArt.AsString

      • sonst: Leerstring.
    • MWSTBetrag: VtcCurrency.
      • Wird auf den Subklassen AuslageBase und Leistung berechnet.
    • MWSTCode: VtcString.
      • Eintrag ist verrechnet: verrMWSTCode.
      • Eintrag ist offen:
        • wenn es einen MWSTTyp zugeordnet hat, nehme den Code von diesem.
    • MWSTSatz: VtcCurrency.
      • Eintrag ist verrechnet: verrMWSTSatz.
      • Eintrag ist noch offen, berechne den MWST-Satz aus dem MWST-Typen.
    • MWSTTyp: ObjectReference.

      MWST-Typ dieses Projekteintrags. Reihenfolge der Berechnung:

      1. xMWSTTyp <> nil.
      2. MWSTTyp des Bearbeiters <> nil.
      3. MWSTTyp des ProjektEintragsTypes <> nil.
      4. MWSTTyp des Projekts.
      5. Werfe eine Exception, falls der MWSTTyp nicht berechnet werden kann.

      Der MWST-Typ wird immer berechnet, auch nach der Verrechnung. Die derr. Attr. MWSTSatz und MWSTCode beziehen ihre Werte nach der Verrechnung nicht mehr von MWSTTyp, sondern von den internen Werten verrMWSTSatz und verrMWSTCode.

    • PhasenLookup: ObjectList.
      • Hat es ein Projekt?
      • Hole auf diesem Projekt alle Phasen für den angegebenen User.
    • PhasenLookupRestricted: ObjectList.
      • Hat es ein Projekt?
      • Hole auf diesem Projekt alle Phasen, die zum angegebenen Typ und dem angegenen User passen.
    • TypText: VtcString.

      Gibt den Text des Typs zurück, in der Projekt-Sprache.

      • Wenn es einen Typ und ein Projekt hat:
        • Typ.Text in der Projekt.Sprache
      • sonst: Leerstring.
    • UmrechnungsDatum: DateTime.
      • Nehme das Datum des Eintrags als Default:

        = Datum.AsDateTime

      Subklassen können diese Methode "überschreiben", wenn sie damit nicht einverstanden sind (geschieht bei VerrechneteLeistung).

    • Verrechnet: boolean.

      Wird auf den Subklassen Spesen, OffeneAuslage, VerrechneteAuslage und Leistung berechnet.

    • Waehrung: ObjectReference.
      • Bei offenen Projekteinträgen ist die Währung die Währung des Projektes:

        = GetProjekt.Waehrung.

      • sonst: nil.
    • WertExt: VtcCurrency.
      • Wird auf den Subklassen AuslageBase, Auslage, OffeneLeistung und VerrechneteLeistung berechnet.
    • WertExtLW: VtcCurrency.
      • wenn Waehrungangegeben ist:
        • 'WertExt wird in Leitwährung umgerechnet
      • sonst: WertExt.

    ProjektEintragsTyp

    • ArtikelNr: VtcString.

      Wird auf den Subklassen AuslageBaseTyp und Taetigkeit berechnet.

    ProjektPhase

    • Aktiv: boolean.
      • wenn pauschal oder pauschalSpesen oder pauschalAuslagen, dann gilt:
        • wenn abgeschlossen ist aktiv false.
      • sonst: xAktiv.
    • Auslagen: ObjectList.
      • Liste von allen offenen und verrechneten Auslagen der Phase.
    • AuslagenWeiterleiten: boolean.
      • xAuslagenWeiterleiten, falls gesetzt.
      • Sonst: bei Projekt nachschauen. Falls Projekt vorhanden: AuslagenWeiterleiten des Projekts.
      • Sonst: false.
    • AuslageTypenLookup: ObjectList.
      • Wenn es ein Projekt hat, nimm alle aktiven Auslagetypen, die zum Projekttyp des Projekts passen.
    • EndDatum: DateTime.
      • xEndDatum, falls gesetzt.
      • Sonst: berechne EndDatum aus EndDaten von TaetigkeitphaseLinks:
        • Hole die Liste von allen angehängten taetigkeitphaseLink und nehme das jüngste EndDatum auf diesen Links, das es hat.
        • wenn es keine Enddatümer hat: SetToNull.
    • Leistungen: ObjectList.
      • Liste von allen offenen und verrechneten Leistungen der Phase.
    • maxPlanWertLeist: VtcCurrency.
      • xmaxPlanWertLeist, falls vorhanden.
      • sonst: summiere maxPlanWertLeist von allen Subphasen.

      sonst: 0.

    • maxPlanWertSpesen: VtcCurrency.
      • xmaxPlanWertSpesen, falls vorhanden.
      • sonst: summiere maxPlanWertSpesen von allen Subphasen.

      sonst: 0.

    • minPlanWertLeist: VtcCurrency.
      • xminPlanWertLeist, falls vorhanden.
      • sonst: summiere minPlanWertLeist von allen Subphasen.
    • minPlanWertSpesen: VtcCurrency.
      • xminPlanWertSpesen, falls vorhanden.
      • sonst: summiere minPlanWertSpesen von allen Subphasen.

      sonst: 0.

    • PlanAuslagenWert: VtcCurrency.
      • xPlanAuslagenWert, falls vorhanden.
      • sonst: summiere PlanAuslagenWert von allen Subphasen.

      sonst: 0.

    • PlanKostenAuslagen: VtcCurrency.
      • xPlanKostenAuslagen, falls vorhanden.
      • sonst: summiere PlanKostenAuslagen von allen Subphasen.

      sonst: 0.

    • PlanKostenLeistung: VtcCurrency.
      • xPlanKostenLeistung, falls vorhanden.
      • sonst: summiere PlanKostenLeistung von allen Subphasen.

      sonst: 0.

    • PlanKostenSpesen: VtcCurrency.
      • xPlanKostenSpesen, falls vorhanden.
      • sonst: summiere PlanKostenSpesen von allen Subphasen.

      sonst: 0.

    • PlanMinutenInt: integer.
      • xPlanMinutenInt, falls vorhanden.
      • sonst: summiere PlanMinutenInt von allen Subphasen.

      sonst: 0.

    • PlanSpesenWert: VtcCurrency.
      • xPlanSpesenWert, falls vorhanden.
      • sonst: summiere PlanSpesenWert von allen Subphasen.

      sonst: 0.

    • PlanWertExt: VtcCurrency.
      • xPlanWertExt, falls vorhanden.
      • sonst: summiere PlanWertExt von allen Subphasen.

      sonst: 0.

    • Spesen: ObjectList.
      • Liste von allen offenen und verrechneten Spesen der Phase.
    • SpesenTypenLookup: ObjectList.
      • Wenn es ein Projekt hat, nimm alle aktiven SpesenTypen, die zum Projekttyp des Projekts passen.
    • SumAuslagenWert: VtcCurrency.
      • summiere WertBudget auf allen Auslagen, und zähle SumAuslagenWert von den Subphasen dazu.
    • SumAuslagenWertInt: VtcCurrency.
      • summiere WertInt auf allen Auslagen, und zähle SumAuslagenWertInt von den Subphasen dazu.
    • SumKostenAuslagen: VtcCurrency.
      • summiere WertKosten auf allen Auslagen, und zähle SumKostenAuslagen von den Subphasen dazu.
    • SumKostenLeistung: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • leistsums Attribute von Projekt holen.
        • summiere WertKostenOffen + WertKostenVerrechnet auf allen LeistSums.
      • sonst: WertKosten der offenen und verrechneten Leistungen auf der Phase summieren, und die SumKostenLeistung auf den Subphasen dazuzählen.
    • SumKostenSpesen: VtcCurrency.
      • summiere WertKosten auf allen Spesen, und zähle SumKostenSpesen von den Subphasen dazu.
    • SumLeistungWertInt: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • leistsums Attribute von Projekt holen.
        • summiere WertIntVerrechnet + WertIntOffen auf allen LeistSums.
      • sonst: WertInt der offenen und verrechneten Leistungen auf der Phase summieren, und die SumLeistungWertInt auf den Subphasen dazuzählen.
    • SumMinutenInt: integer.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • leistsums Attribute von Projekt holen.
        • summiere MinutenIntOffen + MinutenIntVerrechnet auf allen LeistSums.
      • sonst: MinutenInt der offenen und verrechneten Leistungen auf der Phase summieren, und die SumMinutenInt auf den Subphasen dazuzählen.
    • SumMinutenIntOffen: integer.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • leistsums Attribute von Projekt holen.
        • summiere MinutenIntOffen auf allen LeistSums.
      • sonst: MinutenInt der offenen Leistungen auf der Phase summieren, und die SumMinutenIntOffen auf den Subphasen dazuzählen.
    • SumSpesenWert: VtcCurrency.
      • summiere WertExt auf allen Spesen, und zähle SumSpesenWert von den Subphasen dazu.
    • SumSpesenWertInt: VtcCurrency.
      • summierte WertInt von allen Spesen und den Spesen der angehängten Subphasen.
    • SumSpesenWertRech: VtcCurrency.
      • Falls Phase pauschal:
        • Wenn es eine Rechnung hat, den Pauschalwert verwenden:

          = PlanSpesenWert

        • sonst: Pauschalphase ohne Rechnung -> 0
      • Falls Phase nicht pauschal:

        summiere WertExt von allen Spesen, die auf einer Rechnung sind (egal ob verrechnet oder nicht), und zähle SumSpesenWertRech von allen Subphasen hinzu.

    • SumWertExt: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • leistsums Attribute von Projekt holen.
        • summiere WertExtOffen + WertExtVerrechnet auf allen LeistSums.
      • sonst: WertExt der offenen und verrechneten Leistungen auf der Phase summieren, und die SumWertExt auf den Subphasen dazuzählen.
    • SumWertExtOffen: VtcCurrency.
      • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
        • leistsums Attribute von Projekt holen.
        • summiere WertExtOffen auf allen LeistSums.
      • sonst: WertExt der offenen Leistungen auf der Phase summieren, und die SumWertExtOffen auf den Subphasen dazuzählen.
    • SumWertExtRech: VtcCurrency.
      • Falls Phase pauschal:
        • Wenn es eine Rechnung hat, den Pauschalwert verwenden:

          = PlanWertExt

        • sonst: Pauschalphase ohne Rechnung -> 0
      • Falls Phase nicht pauschal:
        • Wenn Systemeinstellung "Für Summenattribute beschleunigte Summierung verwenden" auf JAdann:
          • leistsums Attribute von Projekt holen.
          • summiere WertExtOffen + WertExtVerrechnet auf allen LeistSums.
        • sonst: summiere WertExt der offenen und verrechneten Leistungen, die auf einer Rechnung sind, und zähle die SumWertExtRech auf den Subphasen dazu.
    • StartDatum: DateTime.
      • xStartDatum, falls gesetzt.
      • Sonst: berechne Startdatum aus Startdaten von TaetigkeitphaseLinks:
        • Hole die Liste von allen angehängten taetigkeitphaseLink und nehme das älteste StartDatum auf diesen Links, das es hat.
        • wenn es keine Startdaten hat: SetToNull.
    • TaetigkeitenLookup: ObjectList.
      • Wenn es ein Projekt hat, nimm alle aktiven Taetigkeiten, die zum Projekttyp des Projekts passen.
    • verrechnet: boolean.
      • 1. Hat es eine verrechnete Parentphase:

        parentphase.verrechnet.AsBoolean;

      • 2. Nur Pauschalphase kann von sich aus verrechnet sein: Wenn pauschal oder pauschalSpesen oder pauschalAuslagen, dann gilt:
        • wenn es eine Rechnung hat und diese verrechnet ist, gilt: true.
      • In allen anderen Fällen: false.

    Projekttyp

    Bei den derived Attributes auf Projekttyp handelt es sich um cascading Attributes. Alle haben ein dazugehöriges x-Attribute. Wenn der Wert auf Projekttyp nicht gesetzt ist, dann wird er aus den Systemeinstellungen genommen.

    Das Projekt verwendet die Werte vom Projekttyp. Die Attribute sind die folgenden, die Systemproperties heissen normalerweise gleich wie das Attribut (ausser bei Mwsttyp):

    • ErtragsKontoLeistungen
    • ErtragsKontoSpesen
    • ErtragsKontoAuslagen
    • DebitorKonto
    • VorschussKonto
    • MwstTyp  (-> Property MWSTTypDefault)
    • DebiKondition
    • DatenbankFibu
    • LoginFibu
    • PasswordFibu

    24.11.2006 | 24.08.2016: Projekt.debiKondition angepasst (Kunde und Systemeinstellungen hinzugefügt).