The financial engine translates operational data into accounting logic. Timecards (`timecards`), purchase orders (`purchase order list`), and invoices (`invoice list`) are strictly tied to jobs, enabling real-time Profit and Loss calculations (`p l`) and PDF generation.
Ingesting Labor via Timecards
Timecards connect user hours to specific job IDs, providing the labor cost basis for reporting.
- Navigate to Finance > Timecards and click + Add Timecard (
timecard add new). - Select the User and the associated Job.
- Enter the Start Time, End Time, and calculate the Total Hours.
- Input the Hourly Rate if not derived from user defaults.
- Attach any required proof (e.g., photos of a signed timesheet) and click Save.
Managing Material Spend with Purchase Orders
Purchase orders track material liabilities against job budgets.
- Navigate to Finance > Purchase Orders and click + Add Purchase Order.
- Assign the PO to a specific Job and designate the Vendor.
- Enter line items for materials, specifying Quantity and Unit Price.
- Upload the vendor receipt or quote in the attachments dropzone.
- Click Save. The system updates the total job cost aggregation.
Generating Invoices and PDF Exports
Invoices formalize the revenue side. The system uses a dedicated rendering engine (invoice pdf) to build downloadable documents.
- Navigate to Finance > Invoices and click + Add Invoice.
- Select the Client and Job. The system will surface unbilled timecards and POs for quick inclusion.
- Add specific line items, apply tax rates, and define the due date.
- Click Save.
- From the
invoice single view, click the Download PDF button. The server executes the TCPDF library, injectscompany settingsdata into the header, and streams the PDF to the browser.
Real-Time Profit and Loss Reporting
The report job cost list and p l scripts execute aggregate SQL queries across the jobs, timecards, purchase_orders, and invoices tables to render live margin health, bypassing the need for manual CSV exports.