List edit endpoints — payment type, outstanding balance, partner

How the corrective endpoints called from the invoice list work, which tables they touch and which separate permission keys they need.

Three corrective actions have their own permission keys; the broader edit right does not include them. Without the key the list shows the data as text.

Endpoints

EndpointBehaviourRight and scope
savepaymenttypeChecks that the payment type exists (masterdata/paymenttype), then savePaymenttype(); field: invoice.paymenttype_id.paytype (BASE) + invoiceInScope; error_paytype_input
outstandingcontext, setoutstandingSets the HUF and currency outstanding balance according to currency and rate (getOutstandingContext, setOutstandingBalance); fields: outstanding_balance_huf, outstanding_balance_dev.core modify + outstanding (BASE); owner in getAllowedCompanyIds; error_outstanding_value
repointpartnerrepointInvoicePartner() rewrites the company reference of the invoice, its transactions, the prepared bank import rows and the attached documents.repoint (BASE) + owner in scope
repointcreateFirst creates a new company (name at least 2 characters, tax number format, duplicate check), then repoints.repoint + company/company::add

Repoint error keys: error_repoint_input, error_repoint_failed, error_repoint_new_name, error_repoint_new_taxhu, error_repoint_new_exists, error_repoint_new_failed, error_repoint_new_created_not_moved.

Tables involved

Table names carry the installation's own prefix in the database: invoice, transaction, transaction_import_staged, transaction_settlement, doc, doc_link, company. The invoice model itself writes these tables when repointing.

Related use

The bank import matching window calls the same repoint method (bank/bankimport.repointpartner).