Products and services – system description
The shared item base class, the two tables and their website links, saving, status and deletion blocked by contract references.
The product and service modules share an abstract base class (kind: product / service). A global master without company scope; the base class route cannot be called on its own.
Data model
Table names carry the installation's own prefix in the database.
| Table | Role |
|---|---|
product, service | code, name, unit, unit price, VAT, category, note, status |
product_to_store, service_to_store | website link |
contract_item | read: delete protection |
Units come from the unit-of-measure library: material units for products, time/occasion units for services.
Process
- List: filter by name/code, category, status and website; websites per row.
- Save: name required;
addItem/editItem, websites fromitem_store[], defaulting to website 0. Status:setStatus. - Delete: if any selected item is referenced by a contract line, none is deleted (
error_has_links), otherwise all.
Permissions
- Function rights on the
productandserviceroutes:list;edit(form, status, header Add); savecanSave()– with noaddrow,editdecides;delete;debug. - No content scope.
Known limitations
The status icons are rendered even without the right; the endpoint refuses.