Meal

The Meal Master module allows administrators to create and manage individual meal items for each canteen. Each meal has a name, image, pricing (with optional tax calculation), dietary type classification (Vegetarian, Non-Vegetarian, Vegan), Jain-friendly option, and category assignment. A summary statistics bar provides quick counts of meals by type and status.

The following page gets open when one selects "Meal" from the top navigation tabs. First select a canteen from the Canteen dropdown.

Summary Statistics Bar (above the table, shows totals for the entire canteen - unaffected by filters):
 - Total Meals count
 - Veg count (vegetarian items)
 - Non-Veg count (non-vegetarian items)
 - Vegan count
 - Active count
 - Inactive count

DataTable with columns: Sr No, Meal Name (with image thumbnail and description), Category, Dietary Type (with color icon - green dot for Veg, red dot for Non-Veg, teal dot for Vegan, plus "Jain" indicator if applicable), Price (with tooltip showing base price + tax breakdown), Status (Active/Inactive), and Action buttons.

Filters panel:
 - Canteen dropdown
 - Category dropdown (populated based on selected canteen)
 - Dietary Type (Veg / Non-Veg / Vegan)
 - Status (All / Active / Inactive)

An Excel export button is available for exporting meal data.

Meal List Page

Click the "+ Add Meal" button to add a new meal item. A side panel opens with the following fields:
 - Meal Name * (required, max 100 characters - must be unique within the canteen, case-insensitive)
 - Description (optional, max 500 characters)
 - Category * (dropdown - select from the canteen's categories)
 - Dietary Type * (required, radio buttons - Vegetarian / Non-Vegetarian / Vegan)
 - Is Jain Friendly (checkbox - marks the meal as Jain-friendly for dietary filtering)
 - Meal Image (file upload - accepts .jpg, .jpeg, .png, .bmp formats, max 1MB. Shows a preview thumbnail after upload with a remove button)
 - Price (number - base price of the meal in ₹, default 0, range 0-99,999.99)
 - Tax Percentage (number - tax applied on base price, 0-100%, default 0)
 - Final Price (auto-calculated display - shows base price + tax amount. For example, if Price = ₹100 and Tax = 5%, Final Price = ₹105.00)
 - Display Order (number - controls sequence in listings)

After filling all details, click "Save" to create. Click "Cancel" to discard.

Add Meal Form

If user wants to deactivate a meal, click the "Deactivate" icon in the action column. A confirmation dialog appears: "Are You Sure? You want to inactive this meal?". Click "Yes, Inactivate It" to confirm or "Cancel" to abort.

Note: Deactivation is blocked if there are pending or accepted orders for this meal. All orders must be completed, rejected, or cancelled first.

Deactivate Meal Confirmation

If user wants to delete a meal, click the "Delete" icon in the action column. A confirmation dialog appears: "Are You Sure? You want to delete this meal?". Click "Yes, Delete It" to confirm or "Cancel" to abort.

Note: Deletion is blocked if the meal is referenced in any of: future daily menus, always-available items, weekly template details, or pending/accepted orders. All these dependencies must be removed first.

Delete Meal Confirmation