Skip to content

New budget

Form to create a budget from scratch. The budget is born in draft state on save, and the workflow continues from the detail.

At a glance

  • How you usually get here.
    • From the patient record → New budget (patient pre-selected).
    • From the list → New budget (patient picker required).
    • From a treatment plan → generates a budget kept in sync via treatment_plan.treatment_added / treatment_plan.budget_sync_requested events.
  • Auto-numbering. The number (PRES-YYYY-####) is assigned on save; it is not editable.
  • Default validity — the form proposes valid_from = today and valid_until = today + 30 days. Adjust if your policy differs.
  • Price snapshot. Each line records the catalog price effective at creation time. Editing the catalog later does not change existing budgets.

Create a budget

Requires budget.write.

  1. If you didn't come from a patient record, pick the patient in the header.
  2. Add items from the catalog. For each line you can choose:
    • Tooth and surfaces (FDI notation).
    • Quantity, unit price (prefilled from the catalog), line discount (percent or absolute).
    • VAT type (prefilled from the catalog).
  3. Apply a global discount if needed.
  4. Review the totals in the sidebar.
  5. Save. The budget is created in draft and you land on the detail to send it, sign it, or invoice it later.

Create from a treatment plan

Requires budget.write and treatment_plan.write.

  1. On the treatment plan, click Generate budget.
  2. The plan's treatments arrive in the form as prefilled lines via a snapshot event payload.
  3. Adjust what you need and save.

Permissions

What you see / can doPermission
Access the form and see the catalogbudget.read
Create the budgetbudget.write

Troubleshooting

  • Patient picker is empty. You lack patients.read (without it the form cannot list patients).
  • A catalog item is missing. Make sure it is active under Settings → Catalog and your role has catalog.read.
  • Totals don't match what you expect. Check line vs global discount. Application order: price × quantity → line discount → VAT → global discount on the total.