PO: Derive Attributes

Derived Attributes of Class with “PO”

For a list of all Derived Attributes, see Derived Attributes.

PaperDok

created
DateTime

DateTime.is not used at this level. Instead, CreationDateTime must be accessed.

Amended
DateTime

DateTime.is not used at this level. Instead, ModifiedDateTime must be accessed.

PendencyContainer

orderClause
VtcString

'Due date’

whereClause
VtcString

Formats the date query according to user input.

Presence Time

minutes
integer

Calculates the difference between from and to an attendance entry in minutes: = Round((to – from) * 60 * 24)

project

AllPhases
ObjectList
  • Returns all phases AND all subphases of phases of the project.
  • As of Vertec 6.3, this member is no longer derived, but persistent.
ForwardOutlays
Boolean
  • xExpendituresForward, if set, otherwise:
  • If you have a invoice address, take forward from there:Invoice address.Forwardoutlay.Asboolean;
  • Otherwise: false.
Outlay types
ObjectList List of all active outlay types that fit the current project type.
FARConnection
VtcString
  • xDatabaseFibu is set: Project has specified its own database path. Use this one. Otherwise:
  • Get the value from the project type. If not found there:
  • Get the value from the System Property:TProperty.PropertyByName(DatabaseFibu).AsString. Otherwise: empty string.
DebtorAccount
VtcString
  • xDebitorAccount, if set, otherwise: from project type
DebiCondition
ObjectReference
  • xDebiCondition, if set, otherwise:
  • kund.xDebiCondition, if set, otherwise:
  • of projecttype.xDebiKondition, if set, otherwise: System setting.
docpath
VtcString

If: xDokPfad set:

  • if the path is absolute, it is used as follows
  • otherwise: Rootdokpath (document path in system settings) + xDokpath.

If: xDokPfad not set:

  • When Project Document Path is set in system settings:
    • if the path is absolute, it is used as follows
    • otherwise: RootDokPath + Project Document Path
  • If project document path is not set:
    • RootDokPath

Illegal characters are replaced by '-'.

Income accountExpenditures
VtcString
  • 1. xIncome AccountExpenses, if set. Otherwise:
  • 2. Retrieve by project type
Income accountBenefits
VtcString
  • 1. xIncome account benefits, if set. Other:
  • 2. Retrieve by project type
Income accountExpenses
VtcString
  • 1. xIncome accountExpenses, if set. Otherwise:
  • 2. Retrieve by project type
ExtAddress
VtcString
  • Returns the AddressName of the external address, if one is appended (ExtAddressReference).
  • If it does not have an external address: empty string.
ExtAddressText
VtcString
  • Returns the Addresstext of the external address, if one is appended (Extaddressreference).
  • If it does not have an external address: empty string.
CustomerAddress
VtcString
  • If customer is specified, take the name from there:Customer.Asstring. Otherwise:
  • ExtAdressName.AsString. Otherwise: empty string.
CustomerAddressText
VtcString
  • If customer is set, take the Addresstext from there: Customer.Addresstext.Asstring. Otherwise:
  • ExtAdresstext.AsString. Otherwise: empty string.
PowerSums
ObjectList The calculation of this sum list depends on different values on service, phase and invoice. Attribute on which the sums depend:Service: Minutesint, xMinutesExt, Approach Costrate, xValueExt, Valueint, fixed price rate, Isunitperformance, VerrminutesExt, VerrvalueExt, project, phase, Invoicephase: chargeable, fixed price, completed, PlanvalueExtInvoice: discount, Discountpercentage, Discountamount
FARLogin
VtcString
  • xLoginFibu is set: Project has specified its own database path. Use this one. Otherwise:
  • Get the value from the project type. If not found:
  • Get the value from the System Property:TProperty.PropertyByName(LoginFibu).AsString. Otherwise: empty string.
VATCodeServices
VtcString If it has a VATTypeServices appended, take the code from this: TMWSTType(VATTypeServices.BoldObject).Code.AsString.
VATCodeExpenses
VtcString If it has a Vattypeexpense appended, take the rate from this: Tmwsttype(Vattypeexpense.Boldobject).Code.Asstring.
VAT rateServices
VtcCurrency If it has a Vattypeservice appended, take the rate from this: Tmwsttype(Vattypeservice.Boldobject).Set.Ascurrency.
VAT rateCharges
VtcCurrency If it has a Vattypeexpense appended, take the rate from this: Tmwsttype(Vattypeexpense.Boldobject).Set.Ascurrency.
VAT typeExpenditures
ObjectReference
  1. xVATTypeExpenditures, if set, otherwise:
  2. Otherwise get from project type, if set, otherwise:
  3. Get the VAT type via the system. Depend on the settings in the VAT attribute:
    • Normal: PropertyByName(VATTypeDisplayNormal)
    • Export: PropertyByName(VATTypeExportsExport)
    • None: PropertyByName(VATTypeDisplayNone)
  4. If no VAT type has been found yet, throw an exception.
VATTypeServices
ObjectReference
  1. xMWSTTypePerformance, if set, otherwise:
  2. Get from project type, if set, otherwise:
  3. Get the VAT type via the system. Depend on the settings in the VAT attribute:
    • Normal: PropertyByName(VATTypePerformanceNormal)
    • Export: PropertyByName(VATTypeServicesExport)
    • None: PropertyByName(VATTypeServicesNone)
  4. If no VAT type has been found yet, throw an exception.
VAT typeCharge
ObjectReference
  1. xVATTypeExpenses, if set, otherwise:
  2. Get from project type, if set, otherwise:
  3. Get the VAT type via the system. Depend on the settings in the VAT attribute:
    • Normal: PropertyByName(VATTypExpensesNormal)
    • Export: PropertyByName(VATTypeExpensesExport)
    • None: PropertyByName(VATTypeExpensesNone)
  4. If no VAT type has been found yet, throw an exception.
FARPassword
VtcString
  • xPasswordFibu is set: project has specified its own database path. Use this one. Otherwise:
  • Get the value from the project type. If not found there:
  • Get the value from the System Property:TProperty.PropertyByName(PasswordFibu).AsString. Otherwise: empty string.
PersonalAccNum
VtcString
  • xPersonal account, if set. Otherwise:
  • If xBillingAddress is assigned and it has a Personalaccnum xBillingAddress.Personalaccnum.Asstring
  • If customer assigned and has a Personalaccnum Taddress entry(customer).Personal account.Asstring. Otherwise: Empty string.
PlanExpenditureValue
VtcCurrency
  • xPlanExpenditure value, if any, otherwise:
  • Sum the PlanExpenseValue of all subphases. Otherwise: 0.
PlannedCostsExpenditures
VtcCurrency
  • xPlanCostsExpenses, if any, otherwise:
  • Sum the PlanCostExpenses of all subphases. Otherwise: 0.
PlanCostPerformance
VtcCurrency
  • xPlanCostServices, if any, otherwise:
  • Sum PlanCostPerformance of all subphases. Otherwise: 0.
PlannedCostsExpenses
VtcCurrency
  • xPlanCostsExpenses, if any, otherwise:
  • Sum PlanCostExpenses from all subphases. Otherwise: 0.
PlanMinutesInt
integer
  • xPlanMinutesInt, if any, otherwise:
  • Sum PlanMinutesInt from all subphases. Otherwise: 0.
PlanExpenseValue
VtcCurrency
  • xPlanExpenseValue, if any, otherwise:
  • Sum PlanExpenseValue from all subphases. Otherwise: 0.
PlanValueExt
VtcCurrency
  • xPlanValueExt, if any, otherwise:
  • Sum PlanVertExt from all subphases. Otherwise: 0.
Project type
Project Type (Valueset)
  • The value depends on the productive property on the project type object. The (old) project type Product Project is mapped via a special Projecttype created by DB-Convert, which is identified via Entryid.
  • Calculate earlier attribute project type because of backward compatibility. Otherwise use the type.
if type <> nil then
    if typ.Entryid.AsString = 'ProjecttypeProduct’ then
        ProjectType.AsInteger:=2   // Product Project
    Elsewhere
        if type.Productive.AsBoolean then
            ProjectType.AsInteger:=0   // productive
        Elsewhere
            projecttype.AsInteger:=1   //internal
Elsewhere
    Project type.AsInteger:=0
invoice address
ObjectReference
  • xBilling address, if set.
  • Otherwise: customer.
Invoice AddressText
VtcString
  • ExtAdressText.AsString, if present.
  • Otherwise: Invoice address, take default Addresstext:Defaultadress.Addresstext.Asstring
Invoice letter address
ObjectReference
  • If External Address is assigned (Extadresstext.Asstring <> ''): take the String object defined in the link interface as the salutation.
  • Otherwise: on the invoice address.Salutation.Asstring
Invoice greeting
VtcString
  • Is External Address assigned (Extadresstext.Asstring <> ''): take the String object defined in the link interface as a complimentary close.
  • Otherwise: on the invoice address:invoice address.Complimentary close.Asstring
Expense types
ObjectList List of all active expense types that fit the current project type.
TotalDisbursement Value
VtcCurrency Add Valuebudget to all outlays, and add Sumexpensesvalue from the subphases.
 
   
TotalCostsExpenditures
VtcCurrency Sum Cost on all outlays, and include Sumcosts outlays from the sub-phases.
 
   
TotalCostsExpenses
VtcCurrency Sum Cost on all expenses, and include Sumcostexpenses from the sub-phases.
SumPowerValueInt
VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Get leistsums attributes from project.
    • Sum ValueIntBilled + ValueIntOpen on all outputs.
  • Otherwise: Sum valueInt of the open and settled services on the phase, and add the SumperformanceVertInt on the subphases.
TotalPerformanceValueCosts
VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Sum ValueCostBilled + ValueCostOpen on all services.
  • Otherwise: Sum Cost on the open and invoiced services.
TotalOpen benefits
VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Sum Valueextopen on all Servicesum.
  • Otherwise: Sum Valueext from all open services.
TotalOpen Expenses
VtcCurrency Sums Valueext from all open expenses.
TotalOpen advances
VtcCurrency Total Amountopen from all downpayments
SumMinutesInt
VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Sum MinutesIntOpen + MinutesIntBilled on all services.
  • Otherwise: Sum minutesInt of all open and invoiced services.
SumExpenseValue
VtcCurrency Sums Valueext of all open and invoiced expenses.
SumExpensesValueRights
VtcCurrency
  • If phase fixed price rate:
    • If it has an invoice, use the flat rate:= PlanexpenseValue
    • Otherwise: flat-rate phase without invoice -> 0
  • If phase is not fixed price sum: Sum Valueext of all expenses that are on an invoice (whether charged or not), and add SumexpensesvalueRight from all subphases.
SumValueExt
VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Get leistsums attributes from project.
    • Sum ValueExtOpen + ValueExtCalculated on all outputs.
  • Otherwise: Sum Valueext of the open and settled services on the phase, and add the Sumvertext on the subphases.
SumExpensesValueRights
VtcCurrency Sum Valueext from all expenses that are on an invoice (whether charged or not).
SumValueExt
VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Sum ValueExtOpen + ValueExtCalculated on all outputs.
  • Otherwise: Sum Valueext from all open and invoiced services.
SumValueExtRech
VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Sum ValueExtOpen + ValueExtCalculated on all outputs.
  • Otherwise: Sum Valueext of all services that are on an invoice (regardless of whether charged or not).
Servicetypes
ObjectList List of all active service types that fit the current project type.
UseDebtors
Boolean Attribute is no longer used.
Imprest account
VtcString
  • xAdvance Account, if set, otherwise:
  • Get from project type.
payment type
ObjectReference
  • xPayment type, if set, otherwise:
  • Payment type of the project type.

user

EmploymentLevel
float
  • If xtarget time of week or xWdays are set, the Employmentlevel is calculated:
    • Calculates the value as the ratio between weekly standard hours and Property weekly standard hours:
      weekly standard hours / globWeeksTarget Time * 100
    • if not possible to calculate because Property is not set: 100.
  • Other: xLevel of employment, if any, other: 100.
Letter VtcString
  • xlettername, if set. Otherwise:
  • If no xBriefname, then it is Stringrep(3) = external name: GetStringRepresentation(3)
HeritageProjects ObjectList

Returns the projects on which this user is allowed to enter services.

  • If the system settings users must be assigned to project are set to Yes: take all active projects from the editProjekte list.
  • Other: all projects: timsession.projekteAktiv
RootFolders ObjectList List of all root objects that the logged-in user can see.
SortedYears ObjectList Returns the EditorYears from years sorted by year.
DailySTdHours integer Round(week weekly standard hours)
Currency ObjectReference
  • xCurrency, if set.
  • Other: key currency.
Weekly standard hours integer
  1. If xWDage is set: Sum daily target times.
  2. xtarget time of week, if available.
  3. Calculating weekly standard hours: Value from Property 'Weekly standard hours’ * Employmentlevel / 100
 

The following attributes are displayed on the class     ProcessorYear calculated. For the values here on the project user, the corresponding year is taken:

  • WDays: VtcString.
  • OvertimeBalance: integer.
  • OvertimeBalance1,..., OvertimeBalance12: integer.
  • Vacation: integer.
  • Vacation balance: integer.
  • Holiday balance1,..., Holiday balance12: integer.
  • Overhead: Vtccurrency.
  • Salary: Vtccurrency.

ProjectReportLink

LinkClass between projects and reports.

Report
VtcString

String representation of the report attached via the Reports link.

Project Entry

revenue account
VtcString
  • Entry is charged: revenue account.
  • Entry is open: Account is calculated:
    1. xIncome account.
    2. Revenue account of the user.
    3. Revenue account of the type.
    4. Revenue account of the phase
    5. Revenue account of the project.
    6. Revenue account of the project type
    7. Revenue account of the system settings. However, this is completed by the subclasses of the project entry (services, expenses, outlays).
cost unit
VtcString
  • Entry is charged to: cost center.
  • Entry is open: Account is calculated:
    1. xCost center.
    2. Cost unit of the user.
    3. Cost unit of the type.
    4. Cost unit of the phase
    5. Cost unit of the project.
    6. Could not detect anything: empty string.
Course
float

Course used to calculate the central currency.

  • If 'currency is specified: calculate the course from that currency to the key currency.
  • Other: 1.
Wage type
VtcString
  • If type is specified: Type.WageArt.AsString
  • Otherwise: empty string.
VAT amount
VtcCurrency Calculated on the subclasses Disbursementbase and service.
VATCode
VtcString
  • Entry is charged: verrMWSTCode.
  • Entry is open: if it assign a Vattype, take the code from it.
VAT rate
VtcCurrency
  • Entry is charged: VAT rate.
  • Entry is still open, calculate the VAT rate from the VAT type.
VATType
ObjectReference

VAT type of this project entry. Calculation order:

The VAT type is always calculated, even after charging. After charging clearing, the values of the attr. VAT rate and Vatcode no longer derive from the Vattype type, but from the internal values of the attr. VAT rate and attr. VAT code.

  1. xMWSTType <> nil.
  2. VATType of user <> nil.
  3. VATType Entrytypes <> nil.
  4. VATType of project.
  5. Throw an exception if the Vattype cannot be calculated.
PhaseLookup
ObjectList
  • Does it have a project?
  • Get all phases on this project for the specified user.
PhaseLookupRestricted
ObjectList
  • Does it have a project?
  • Get on this project all phases that match the given type and the given user.
TypeText
VtcString
  • If it has a type and a project: Type.Text in the project.Language
  • Otherwise: empty string.
Conversion date
DateTime

Subclasses can “override” this method if they do not agree with it (this is done with ChargedPerformance).

  • Take the date of the entry as Default:= Datum.AsDateTime
Charged
Boolean Calculated on the subclasses Expenses, Open Expenses, Cleared Expenses and service.
currency
ObjectReference
  • For open project entries, the currency is the currency of the project:= Getproject.Currency.
  • Other: nil.
ValueExt
VtcCurrency Calculated on the subclasses Disbursementbase, outlay, Outstanding Benefit and Settled Benefit.
ValueExtLW
VtcCurrency
  • If currency is specified: 'Extvalue is converted to key currency.
  • Other: ValueExt.

ProjectEntryType

Article No.
VtcString

Calculated on the Expensebasetype and Servicetype subclasses.

Phase

Active Boolean xActive
Outlays ObjectList List of all outstanding and settled outlays of the phase.
ForwardOutlays Boolean
  • xExpendituresForward, if set, otherwise check project.
  • If project exists: Forwardoutlays project, otherwise: false.
DisplayTypesLookup ObjectList If it has a project, take all active payout outlay types that match the project type.
End Date DateTime
  • xEndDate, if set, otherwise:
  • calculate EndDate from EndData of ActivityphaseLinks:
    • Get the list of all attached activityphaseLink and take the latest end date on those links that it has.
    • If it has no end dates: SetToNull.
Services ObjectList List of all open and settled services of the phase.
maxPlanValueLeist VtcCurrency
  • xmaxPlanValuePerformance, if any, otherwise:
  • Sum maxPlanVertLeist from all subphases. Otherwise: 0.
maxPlanValueExpenses VtcCurrency
  • xmaxPlannedValueExpenses, if any, otherwise:
  • Sum maxPlanVertExpenses from all subphases. Otherwise: 0.
minPlanValueLevel VtcCurrency
  • xminPlanValuePerformance, if any, otherwise:
  • Sum minPlanValueLeist from all subphases.
minPlanValueExpenses VtcCurrency
  • xminPlanValueExpenses, if any, otherwise:
  • Sum minPlanValueExpenses from all subphases. Otherwise: 0.
PlanExpenditureValue VtcCurrency
  • xPlanExpenditure value, if any, otherwise:
  • Sum the PlanExpenseValue of all subphases. Otherwise: 0.
PlannedCostsExpenditures VtcCurrency
  • xPlanCostsExpenses, if any, otherwise:
  • Sum the PlanCostExpenses of all subphases. Otherwise: 0.
PlanCostPerformance VtcCurrency
  • xPlanCostServices, if any, otherwise:
  • Sum PlanCostPerformance of all subphases. Otherwise: 0.
PlannedCostsExpenses VtcCurrency
  • xPlanCostsExpenses, if any, otherwise:
  • Sum PlanCostExpenses from all subphases. Otherwise: 0.
PlanMinutesInt integer
  • xPlanMinutesInt, if any, otherwise:
  • Sum PlanMinutesInt from all subphases. Otherwise: 0.
PlanExpenseValue VtcCurrency
  • xPlanExpenseValue, if any, otherwise:
  • Sum PlanExpenseValue from all subphases. Otherwise: 0.
PlanValueExt VtcCurrency
  • xPlanValueExt, if any, otherwise:
  • Sum PlanVertExt from all subphases. Otherwise: 0.
Expenses ObjectList List of all outstanding and settled expenses of the phase.
ExpenseTypesLookup ObjectList If it has a project, take all active expense types that match the project type.
TotalDisbursement Value VtcCurrency Add Valuebudget to all outlays, and add Sumexpensesvalue from the subphases.
SumExpenditureValueInt VtcCurrency Add Valueint to all expensesoutlays and add SumexpenseValueInt from the sub-phases.
TotalCostsExpenditures VtcCurrency Sum Cost on all outlays, and include Sumcosts outlays from the sub-phases.
TotalCostPerformance VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Get leistsums attributes from project.
    • sum ValueCostOpen + ValueCostInvoiced on all services.
  • Otherwise: Sum Cost of the open and invoiced services on the phase, and add the Sumcostservice on the subphases.
TotalCostsExpenses VtcCurrency Sum Cost on all expenses, and include Sumcostexpenses from the sub-phases.
SumPowerValueInt VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Get leistsums attributes from project.
    • Sum ValueIntBilled + ValueIntOpen on all outputs.
  • Otherwise: Sum valueInt of the open and settled services on the phase, and add the SumperformanceVertInt on the subphases.
SumMinutesInt integer
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Get leistsums attributes from project.
    • Sum MinutesIntOpen + MinutesIntBilled on all services.
  • Otherwise: Sum minutesInt of the open and settled services on the phase, and add the Summinutenint on the subphases.
SumMinutesIntOpen integer
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Get leistsums attributes from project.
    • Sum MinutesInOpen on all performance sums.
  • Otherwise: Sum minutesInt of the open services on the phase, and add the SumminutesintOpen on the subphases.
SumExpenseValue VtcCurrency Add Valueext to all expenses, and add SumexpenseValue from the subphases.
SumExpensesValueInt VtcCurrency Summed valueInt of all expenses and the expenses of the attached sub-phases.
SumExpensesValueRights VtcCurrency
  • If phase fixed price rate:
    • If it has an invoice, use the flat rate:= PlanexpenseValue
    • Otherwise: flat-rate phase without invoice -> 0
  • If phase is not fixed price sum: Sum Valueext of all expenses that are on an invoice (whether charged or not), and add SumexpensesvalueRight from all subphases.
SumValueExt VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Get leistsums attributes from project.
    • Sum ValueExtOpen + ValueExtCalculated on all outputs.
  • Otherwise: Sum Valueext of the open and settled services on the phase, and add the Sumvertext on the subphases.
SumValueExtOpen VtcCurrency
  • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
    • Get leistsums attributes from project.
    • Sum Valueextopen on all Servicesum.
  • Otherwise: Sum Valueext of the open services on the phase, and add the SumvalueextOpen on the subphases.
SumValueExtRech VtcCurrency
  • If phase fixed price rate:
    • If it has an invoice, use the flat rate:= PlanvalueExt
    • Otherwise: flat-rate phase without invoice -> 0
  • If phase is not fixed price rate:
    • If system settings “Use Accelerated Summing for Sum Attributes” (only versions prior to 6.0) are set to YES then:
      • Get leistsums attributes from project.
      • Sum ValueExtOpen + ValueExtCalculated on all outputs.
    • Otherwise: Add Valueext of the open and invoiced services that are on an invoice and add the Sumvalueextrech on the subphases.
Start Date DateTime
  • xStartDate, if set, otherwise:
  • Calculate start date from start dates of activityphaseLinks:
    • Get the list of all attached activityphaseLink and take the oldest start date on those links that it has.
    • if it has no start data: SetToNull.
ActivitiesLookup ObjectList If it has a project, take all Active Servicetype that matches the project type.
charged Boolean
  1. Has it a calculated parent phase.AsBoolean;
  2. Only flat-rate phase can be charged automatically: If fixed price or flat-rate expenses or flat-rate expenses, then:
    • If it has an invoice and it is charged, true.
    • In all other cases: false.

Project type

The derived attributes on project type are cascading attributes. All have an associated x-attribute. If the value on project type is not set, it will be removed from the system settings.

The project uses the values of the project type. The attributes are as follows, the system properties usually have the same name as the attribute (except for Vattype type):

  • FARConnection
  • DebiCondition
  • DebtorAccount
  • Income accountExpenditures
  • Income AccountServices
  • Income AccountExpenses
  • FARLogin
  • VATType (-> Property Vattypedefault)
  • FARPassword
  • Imprest account

Netherlands

United Kingdom