Uktupus Docs

Projects

WBS-based project controlling with schedule, portfolio view, construction bills of quantities, progress billing, retentions and subcontracts.

Available with the Projects module.

Projects (/projects)

Statuses draft → active → on_hold → closed | cancelled. A project has a WBS (work breakdown structure) of elements with planned cost, dates and responsible; budget with its own approval (project_budget: draft → submitted → approved → locked); and controlling: actual cost from purchase invoices, goods issues, timesheets and payroll tagged with the project, revenue from posted invoices tagged with the project (including the ones drafted from progress billings and retention releases), margin. The Links tab lists every tagged document and opens it.

Schedule (/projects/schedule)

WBS Gantt — pick a project, drag elements to reschedule, dependencies and milestones.

Portfolio (/projects/portfolio)

Controlling summary across all projects: budget vs actual vs committed, progress, margin, status.

Bill of Quantities (/projects/boq) — BOQ

Construction measurement schedules: items, units, quantities, rates; linked to projects; basis for progress claims.

Progress Billing (/projects/progress-billing) — PPB

Interim claims against BoQ items or subcontract progress: claimed quantity × rate per line, with quantity previously billed for reference. Statuses draft → submitted → approved. Each billing has a billing side:

  • Customer — what you bill the project's customer (or the partner set on the billing).
  • Subcontractor — a subcontractor's claim against a subcontract (see below).

Gross is the sum of the lines, retention is gross × retention %, net is gross − retention.

Approving a billing:

  1. Holds the retention as a retention record (when retention % is above zero).
  2. Drafts the invoice and links it to the billing:
    • Customer side → a draft sales invoice for the customer, with the customer's first active location and payment terms. Each claim line becomes an invoice line (BoQ item code + description) with the retention % as the line discount, so the invoice subtotal equals the billing net. The notes show gross and the retention withheld.
    • Subcontractor side → a draft purchase invoice for the subcontractor (with their payment terms), one line per claim line at its share of the net amount (the last line absorbs rounding).

Both invoices use the project currency (purchase: the subcontract currency), are tagged with the project (and the WBS element when all lines share one), and use the project billing product: the product set in company settings projects.billing_product_id, otherwise an auto-created PROJECT-WORK service product. Tax comes from the BoQ line's product when it has one, otherwise from the billing product. The invoice date is the approval date.

If the invoice can't be drafted (no customer on the project, customer without an active location, partner isn't a client/supplier, no warehouse), approval fails with the reason and nothing is saved.

Invoices stay draft: finance reviews them and posts them through the normal sales / purchase invoice flow, which posts to the ledger. The billing shows the linked invoice number and opens it. Approving again or retrying never creates a second invoice. If the linked invoice is cancelled or a draft is deleted — or the billing was approved before invoices were generated — Create invoice on the billing drafts a new one.

Retentions (/projects/retentions) — PRE

Amounts withheld from approved progress billings until release conditions are met. Statuses held → partially_released → released (or cancelled). A retention keeps the side of its billing: customer (the customer holds back part of what you billed) or subcontractor (you hold back part of a subcontractor's claim).

Each release (full or partial) is recorded with its date and amount and drafts an invoice for the released amount:

  • Customer retention → a draft sales invoice to the customer.
  • Subcontractor retention → a draft purchase invoice from the subcontractor.

The release line uses the tax of the largest line on the progress billing's invoice (otherwise the billing product's tax), so retention is taxed when it is invoiced, not twice. The retention dialog lists the releases with their invoices. Create invoice drafts the missing ones: releases whose invoice was cancelled or deleted, and amounts released before release records existed.

Subcontracts (/projects/subcontracts) — PSC

Subcontractor agreements linked to projects: scope, value, schedule of values (lines), retention %, statuses draft → active → completed | terminated. Subcontractor claims are progress billings with the subcontractor side and this subcontract; approving one drafts the purchase invoice net of retention and holds the retention (see above). The subcontract dialog lists its claims with their invoices.