Invoices

Invoices generated from Quotes for billing renovation work. Track payment status, line items, and funding allocations. Invoices reference vendor Contacts and belong to Projects/Buildings.

Source Files

LayerPath
Schemabackend/src/db/schema.ts (line ~1864)
Routesbackend/src/routes/invoices.ts
Servicebackend/src/services/invoice-service.ts
Componentsfrontend/src/components/invoices/ (15 files)
Queriesfrontend/src/lib/queries/invoiceQueries.ts

Database Tables

TablePurpose
invoicesMain entity — project, contact, amounts, payment status, dates
invoice_line_itemsIndividual billed items with description, quantity, price, component type
invoice_line_item_funding_measuresLinks line items to Funding Applications measures
invoice_line_item_funding_loansLinks line items to funding loans
component_invoice_linksLinks Building Components to invoices
funding_invoice_allocationsDistributes funding across invoices

Key Fields

FieldTypeNotes
projectIduuid FKParent project (cascade delete)
contactIduuid FKVendor contact (required)
quoteIduuid FKSource quote (optional, set null on delete)
invoiceNumbervarcharUnique invoice identifier
totalAmount / netAmount / taxAmountdecimalFinancial totals (precision 12,2)
taxRatedecimalDefault 19% (German VAT)
paymentStatusenumunpaid, pending, partially_paid, paid, overdue, cancelled
paidAmount / outstandingAmountdecimalPayment tracking
discountPercentage, skontoPercentagedecimalDiscount and early-payment terms
customerPaymentConfirmationbooleanWhether customer confirmed payment

Relationships

Invoice *──1 Project
Invoice *──1 Contact (vendor)
Invoice *──1 Quote (source, optional)
Invoice 1──* Invoice Line Items
Invoice *──* Building Components (via component_invoice_links)
Invoice *──* Funding Applications (via funding_invoice_allocations)

Frontend Components

ComponentPurpose
InvoiceFormCreate/edit invoice with financial details
InvoiceLineItemsTableManage individual line items
InvoicesListList view with filtering and sorting
BuildingInvoicesListInvoices scoped to a building
InlineInvoicesTable / InlineInvoiceRow / InlineInvoiceExpandedRowCompact inline display
LinkFundingApplicationsDialogLink invoices to Funding Applications
CreateInvoiceWithProjectDialogQuick-create with project selection
InvoiceFileManager / InvoiceFileDropzone / InvoiceFileUploadAttach Files to invoices
InvoiceAssociatedFilesActionsManage associated Files
InvoiceAuditLogDialogView Audit Logs for an invoice
ProjectComboboxProject picker for invoice creation

Features

  • Derived from quotes — optionally links back to the source quote
  • Payment tracking with status lifecycle (unpaid partially_paid paid)
  • Funding allocation linking line items to Funding Applications measures and loans
  • Component linking connecting invoices to Building Components
  • File management with drag-and-drop upload for invoice documents
  • Audit trail via Audit Logs dialog for tracking changes
  • Skonto/discount terms with deadlines (German early-payment convention)
  • Financial overview aggregated on Buildings detail page

Quotes | Projects | Buildings | Funding Applications | Building Components | Products | Contacts | Files | Financial Calculations | Audit Logs | Database Architecture