2.12.0¶
Released: 2026-06-27
Highlights¶
- Clients can now have one or more default salespersons, and there's a query to list a salesperson's clients.
- Electronic invoices now report the purchase order number (DGI
<dNroPed>) when the invoice came from an order.
Added¶
- Client default salespersons — a Client ⇄ User many-to-many, managed
through dedicated mutations and queries (kept out of the client input/response).
Mutations
addClientSalesperson/removeClientSalesperson; queriesclientSalespersons(clientId:)andclientsBySalesperson(userId:). See Client Default Salespersons. - PAC purchase order number — the PAC invoice payload now includes the
globalgroup withpurchaseOrder(DGI<dNroPed>), derived from the linked order's number on the create-from-invoice path. See PAC Purchase Order Number.
Changed¶
- Nothing behavior-breaking. Both additions are additive to the GraphQL schema and the PAC payload.
Fixed¶
PolarServiceno longer crashes whenPOLAR_SERVERis configured as a full URL (e.g. in CI, where it ishttps://api.polar.com). URL-shaped values are now routed to the SDK'sserver_urlargument instead ofserver, which only accepts named servers — this unblocks the test suite.
Migrations¶
add_client_salespersons(20260627_add_client_salespersons.py) — creates theclient_salespersonsassociation table.down_revision = add_bank_tx_settlement_receipt.
No one-off scripts. The PAC purchase order is derived at submission time, so it needs no migration.
Frontend impact¶
- Clients: manage a client's default salespersons with the dedicated
addClientSalesperson/removeClientSalespersonmutations (both return the client's resultingUser[]; add is idempotent) — this is separate from the client create/edit form. Read them withclientSalespersons(clientId:)and build a "my clients" view withclientsBySalesperson(userId:). These are display/pre-fill defaults only and don't change the salesperson stored on any quote/order/invoice. - PAC: no frontend work — the purchase order number is server-derived from the existing order ⇄ invoice relationship.
Versioning notes¶
- Bumped with
uv run python scripts/bump_version.py 2.12.0 --changelog-stub. - MINOR: additive GraphQL schema + additive PAC payload; no deploy-order
constraints beyond applying the
add_client_salespersonsmigration.