Using approvals

How to periodically approve services, expenses, outlays and absences

Product line

Standard

|

Expert

Operating mode

CLOUD ABO

|

ON-PREMISES

Modules

Services & CRM

Budget & Phases

Purchases

Resource Planning

Business Intelligence

Created: 16.07.2012
Updated: 17.09.2024 | Article renamed.

In Vertec, it is possible to regularly approve services. This facilitates the overview during invoicing, as it shows whether all services have already been entered. As soon as an approval is made, it is also possible to block entry of services, expenses and outlays for the defined period.

For the approvals, there is a link type user – approvals. This is inactive by default. If you want to work with approvals, you can set this link type to active.

Approvals are entered directly on the user via New > Approval. The following input screen opens:

If the option Block by approvals is activated in the System settings > Project/Case, the entry of new services, expenses and outlays that are in the approval period is blocked as soon as the user selects the checkmark for Approved by owner.

Each approval can be assigned to a second person, called other. If assigned, they can check the checkbox Approved by other. For example, this option can be used by the teamleader to approve the service entries of the team members.

As approvals are independent objects in Vertec, they can be shown and filtered in folders and lists. For example, you could display a folder for all teamleaders, which shows the team member approvals that the teamleader has yet to approve. Or you could show in a folder all the users who have not yet made an approval on a certain date. In this way, you can set up a workflow for controlling service entries.

Access via OCL

Approvals are objects of type approval (UserEntry) and have the following attributes:

  • von: date
  • bis: date
  • bearbeiter: user
  • freigabeSelbst: Boolean
  • freigabeSelbstDatum: DateTime
  • anderer: user
  • freigabeAnderer: Boolean
  • freigabeAndererDatum: DateTime

On the user, you can access the approvals via eigeneFreigaben or fremdFreigaben.

Approval folder – workflow examples

Users who do not have an approval with to date as of effective date

  • SQL folder
  • Class: user
  • Query fields: effective date (date)
  • Firebird expression:
    bold_id NOT IN (SELECT bearbeiter FROM freigabe WHERE ((CAST(bis as Date) = CAST('\1' as Date))))
  • MSSQL server expression:
    bold_id NOT IN (SELECT bearbeiter FROM freigabe WHERE CAST(bis as date) = CAST(CAST('\1' as datetime) as date))

Folder on the team leader that shows the team member approvals that the team leader has yet to approve

  • Wrapper link type
  • Expression:
    team->select(aktiv).eigenefreigaben->select(freigabeselbst and (not freigabeanderer))->select(anderer = self)

Constraint that ensures that the third party (if set) is the team leader (if set)

  • OCL expression:
    if ((anderer->notempty) and (bearbeiter.teamleiter->notempty)) then anderer = bearbeiter.teamleiter else 1 = 1 endif

Column expressions on user lists

  • Until when has the user released their services themselves: eigenefreigaben->orderby(bis)->last.bis
  • Date of last own approval as per to date: eigenefreigaben->orderby(bis)->last.freigabeselbstdatum
  • Period of last own approval as per to date: if eigenefreigaben->size>0 then eigenefreigaben->orderby(bis)->last.von.asstring + ' - ' + eigenefreigaben->orderby(bis)->last.bis.asstring else '' endif

OCL expressions

  • All approvals not yet approved by the third party: freigabe->select(not freigabeanderer)
Bitte wählen Sie Ihren Standort