Files
2026-04-29 23:05:27 +12:00

3.2 KiB

Mix Calculator — Clean Feature Spec

Purpose

The Mix Calculator allows authorised users to calculate the raw materials required for a client-specific product mix, based on a selected client, product, date, and batch size.

It should also keep a history of each calculation session so users can review previous mixes without storing generated PDFs in the database.

Core Workflow

  • User opens Mix Calculator from the sidebar. User enters/selects:
  • Mix date (Defaults to today's date)
  • Client
  • Product - These should be populated from our existing products for that specific client
  • Specify Batch size in kilograms Total number of bags Staff name / prepared by App filters available products based on the selected client. User selects a product. App calculates: Required raw materials Required mix quantities Total kilograms Bag quantity details User can save the session. User can generate a polished PDF on demand. Sidebar

Add a dedicated sidebar item:

Mix Calculator

This should be separate from costing, product setup, or admin areas.

Permissions

Create a dedicated permission area:

mix_calculator:view mix_calculator:create mix_calculator:edit mix_calculator:delete mix_calculator:generate_pdf mix_calculator:view_all_sessions

Suggested roles:

Role Access Admin Full access Manager Create, view all, generate PDFs Staff Create, view own sessions, generate PDFs Viewer View only Database Naming

Avoid the table name mix-calculator because hyphens are awkward in SQL and code.

Use:

mix_calculator_sessions

Optional supporting tables:

clients products product_mixes raw_materials mix_calculator_session_lines Suggested Tables mix_calculator_sessions

Stores each calculator run.

id session_number client_id product_id mix_date batch_size_kg total_bags total_kg prepared_by_user_id prepared_by_name created_at updated_at created_by status notes mix_calculator_session_lines

Stores calculated raw material outputs for each session.

id session_id raw_material_id raw_material_name required_kg mix_percentage unit sort_order

This allows historical sessions to remain accurate even if the product recipe changes later.

PDF Behaviour

PDFs should not be stored in the database.

Instead:

Generate PDF on demand from the saved session. Use the saved session and session lines as the source. Allow download as: MixCalculator_{Client}{Product}{Date}_{SessionNumber}.pdf

PDF should include:

Date Client Product Batch size Total kilograms Total bags Prepared by / staff name Raw material table Required mix table Session number Generated timestamp Feature Name Options

Recommended:

Mix Calculator

Other options:

Batch Mix Calculator Production Mix Calculator Client Mix Calculator Mix Session Calculator

Best fit: Mix Calculator.

Clean Requirement Summary

Build a dedicated Mix Calculator module that allows authorised users to create client-specific mix calculation sessions. Users select a date, client, product, batch size, total bags, and staff name. The system calculates required raw materials and mix quantities, saves the session history, and allows users to generate a polished PDF on demand. PDFs should not be stored in the database; they should be generated dynamically from the saved session data.