Invoice
Two modules carry the word invoice, and on 2026-09-06 neither is installed on any QA site, and both run entirely on the legacy query helper. This page says what they are so nobody rediscovers them as features.
How this page was verified
Written from master on 2026-09-06 and compared with the big five the same day. No earlier page existed.
ap_invoices, labelled MPAC
The vendor-side invoice against a Purchase Order: Milestone Payment claims. Seeded as installed with the label MPAC, but absent from every QA database read on 2026-09-06.
| Table | Holds |
|---|---|
ts_ap_invoices | vendor_doc_no, vendor_doc_date, doc_type, po_no, other_po, working_period, milestone, progress, mpac_delivery_date, sc_id / sc_no (a sub-contract reference), so_id, rfq_id, spb_id, vendor_prop_quo_id, the commercial and delivery terms copied from the PO, total, total_currency, approval state (status_save, submit_approval, status_approval, fg_approval, person_approved_by), rout_id_proc, invoiceable, internal_doc_number, project_number |
ts_ap_invoices_item | the line items |
ts_sub_contract, ts_file_reference, ts_vendor, ts_vendor_contact | references |
22 files. 336 calls to iw_mysql_query(), none to $pdo. Every screen and action dies in master, Jadestone, Medco and Timas on the first query. Only JOTRE, where the legacy helper still runs, could open it, and JOTRE's QA database does not have it installed either.
invoice, the sales-side invoice
The older ERP half of INACT: commercial, proforma and CW invoices raised against sales orders, delivery orders, packing lists and quotations, with client contacts, bank details and commissions.
| Table | Holds |
|---|---|
ts_invoice_cw | invoice_no, invoice_date, so_id, do_id, cc_id, bank_id, invoice_bank_address, comission, comission_type, gst_rate, terms, charges, increment_inv_cw / _pi / _ci / _inv |
ts_invoice_cw_item | the line items |
ts_sales_order, ts_quotation, ts_delivery_order, ts_packing_list, ts_client | the sales chain it belongs to |
19 files. 460 calls to iw_mysql_query(), none to $pdo. Seeded as not installed, with no menu parent. Dead in the same four forks.
draft_po
Not an invoice, but in the same state: a staging area for a PO before approval (ts_draft_po, the same columns as a PO header plus status_save). Listed in the v3 feature notes as new for Medco. Not installed on any QA site.
What this means for a ticket
- A bug report about "invoices" on a client instance is almost certainly about the Reporting side (Contract Invoices Balance Report,
procurement_06) or about Purchase Order milestones, not about these modules. - Re-enabling either module is a migration project: every query has to move to
$pdoand be made portable across MySQL, PostgreSQL and SQL Server first. See the database portability rules on the systems pages. - Do not document features from these folders as available. They are code, not product.
Instance differences
Checked on 2026-09-06. The code is identical in all five forks except one file in ap_invoices in Medco, JOTRE and Timas. Installed nowhere.
Related
- Purchase Order: the document an MPAC claim would reference.
- Reporting: the invoice-related Cost and Budget reports that do run.