feat(billing): show company name (not UUID) on invoices and payments (PMS-186) #102

Merged
longjacksonle merged 1 commit from feat/mapps-186-billing-company-name into main 2026-06-10 01:23:25 +02:00

What

Show the company name (not a raw company_id UUID) on every billing surface, and let users pick a company from a dropdown instead of typing a UUID (PMS-186).

Display (uses the new company_name from the API)

  • Invoice list: add a Company column.
  • Invoice detail: the Company link now shows the company name instead of a generic "View company".
  • Payment list: add a Company column.

Input (company-name dropdown from /contacts/companies, value = id)

  • Invoice list filter: replace the "Filter by company ID (UUID)" text box with a company dropdown.
  • New invoice form: replace the "Company ID (UUID)" field with a company dropdown (covers both manual create and generate-from-time-entries, which share the field).
  • Record-payment modal: same dropdown swap.

Adds CompanyOption, a load_companies helper, company_select_options, and company_name fields on RemoteInvoice / InvoiceDetail / RemotePayment. No raw company UUID is shown to the user on any billing surface now.

Depends on

mokosh-server PMS-186 (#149) - company_name on the invoice / payment responses.

Verification

cargo check --target wasm32-unknown-unknown and cargo fmt --check clean. (The one host clippy hit is clippy::manual_checked_ops on pre-existing projects.rs:685, a lint that only exists in host rust 1.95; CI runs rust 1.94 where it does not fire.)

🤖 Generated with Claude Code

## What Show the **company name** (not a raw `company_id` UUID) on every billing surface, and let users pick a company from a **dropdown** instead of typing a UUID (PMS-186). ## Display (uses the new `company_name` from the API) - Invoice list: add a **Company** column. - Invoice detail: the Company link now shows the company **name** instead of a generic "View company". - Payment list: add a **Company** column. ## Input (company-name dropdown from `/contacts/companies`, value = id) - Invoice list filter: replace the "Filter by company ID (UUID)" text box with a company dropdown. - New invoice form: replace the "Company ID (UUID)" field with a company dropdown (covers both manual create and generate-from-time-entries, which share the field). - Record-payment modal: same dropdown swap. Adds `CompanyOption`, a `load_companies` helper, `company_select_options`, and `company_name` fields on `RemoteInvoice` / `InvoiceDetail` / `RemotePayment`. No raw company UUID is shown to the user on any billing surface now. ## Depends on mokosh-server **PMS-186** (#149) - `company_name` on the invoice / payment responses. ## Verification `cargo check --target wasm32-unknown-unknown` and `cargo fmt --check` clean. (The one host clippy hit is `clippy::manual_checked_ops` on pre-existing `projects.rs:685`, a lint that only exists in host rust 1.95; CI runs rust 1.94 where it does not fire.) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(billing): show company name (not UUID) on invoices and payments (PMS-186)
All checks were successful
Check / clippy + fmt + tests (pull_request) Successful in 46s
Create release / Create release from merged PR (pull_request) Has been skipped
75b43f4b80
Billing surfaces showed the company as a raw company_id UUID and made users type a UUID to filter or create. Switch every company surface to human names, matching the projects / assets pattern.

Display (uses the new company_name field from the API):
- Invoice list: add a Company column.
- Invoice detail: the Company link now shows the company name instead of a generic "View company".
- Payment list: add a Company column.

Input (company-name dropdown sourced from /contacts/companies, value = id):
- Invoice list filter: replace the "Filter by company ID (UUID)" text box with a company dropdown.
- New invoice form: replace the "Company ID (UUID)" field with a company dropdown (covers both manual create and generate-from-time-entries, which share the field).
- Record-payment modal: same dropdown swap.

Adds a CompanyOption struct, a load_companies helper, and company_select_options; company_name fields on RemoteInvoice / InvoiceDetail / RemotePayment. No raw company UUID is shown to the user on any billing surface now.

Depends on mokosh-server PMS-186 (company_name on the responses). Verified: cargo check --target wasm32-unknown-unknown and cargo fmt --check clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
longjacksonle deleted branch feat/mapps-186-billing-company-name 2026-06-10 01:23:25 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
psa-systems/mokosh-apps!102
No description provided.