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.