HandyCafe Docs
owner cashier

آرڈرز

Orders ٹیب ہر اس کیفیٹیریا آرڈر کے لیے لائیو ڈیش بورڈ ہے جو آپ کے کسٹمرز دیتے ہیں۔ یہ ہر 3 سیکنڈ بعد cloud پول کرتا ہے اور نئی activity کو ڈیسک ٹاپ نوٹیفکیشن، آڈیو الرٹ، اور ٹیب ہیڈر پر pending-count بیج کے ساتھ دکھاتا ہے۔

لے آؤٹ

Orders صفحے میں دو حصے ہیں:

حصہ مقصد
Status Tabs آرڈر حالت کے لحاظ سے فلٹر کریں: all, placed, confirmed, preparing, ready, served۔ cancelled اور refunded آرڈرز بطور default چھپے رہتے ہیں۔
Order List ہر آرڈر کے لیے ایک card، جو تازہ ترین سے پرانی ترتیب میں گروپ ہوتا ہے۔ ہر card میں table code، اگر دیا گیا ہو تو customer phone، items، totals، اور action buttons دکھائی دیتے ہیں۔

Live Polling

Orders dashboard ہر 3 سیکنڈ بعد /v1/cafeteria/admin/orders/poll پول کرتا ہے۔ ہر نیا آرڈر یہ کارروائیاں کرتا ہے:

  1. table code اور item count کے ساتھ ایک ڈیسک ٹاپ نوٹیفکیشن۔
  2. اگر Settings > کیفیٹیریا میں sound notifications فعال ہوں تو سرور speakers پر آڈیو الرٹ۔
  3. Orders ٹیب پر pending-count بیج میں اضافہ۔
  4. اگر پرنٹر میں Auto Print on New Order فعال ہو تو رسید کا خودکار پرنٹ۔

بیج اس وقت تک نظر آتا رہتا ہے جب تک placed یا confirmed حالت والا ہر آرڈر اگلی حالت میں نہ چلا جائے یا dismiss نہ کر دیا جائے۔ یہ بیج sidebar کے کیفیٹیریا سیکشن میں عالمی طور پر دکھائی دیتا ہے؛ اسے دیکھنے کے لیے Orders ٹیب کھلا رکھنا ضروری نہیں۔

آرڈر لائف سائیکل

ہر آرڈر حالتوں کے ایک طے شدہ سلسلے سے گزرتا ہے۔

State مطلب
placed کسٹمر نے آرڈر جمع کر دیا۔ ابھی عملے نے کچھ نہیں کیا۔
confirmed عملے نے آرڈر کی تصدیق کر دی۔
preparing کچن آرڈر پر کام کر رہا ہے۔
ready آرڈر سروس یا پک اپ کے لیے تیار ہے۔
served آرڈر کسٹمر تک پہنچ چکا ہے۔
cancelled آرڈر عملے نے منسوخ کیا۔ یہ live views سے ہٹ جاتا ہے مگر history میں رہتا ہے۔
refunded ادائیگی کے بعد refund جاری کیا گیا ہے۔

ہر order card کی action bar اگلی دستیاب حالت دکھاتی ہے۔ آگے بڑھانا ایک کلک کا عمل ہے۔ UI optimistic update pattern استعمال کرتی ہے: نئی حالت فوراً دکھائی دیتی ہے۔ اگر سرور تبدیلی مسترد کر دے تو حالت واپس ہو جاتی ہے اور error notification ظاہر ہوتی ہے۔

فی آئٹم حالت

کچھ آرڈرز میں کئی آئٹمز ہوتے ہیں جو مختلف وقتوں پر مکمل ہوتے ہیں۔ مثال کے طور پر burger pizza سے پہلے تیار ہو سکتا ہے۔ فی آئٹم حالت آپ کو ہر لائن کو الگ ٹریک کرنے دیتی ہے۔

ہر آئٹم کا اپنا dropdown ہوتا ہے جس میں پانچ options ہوتے ہیں: placed, preparing, ready, served, cancelled۔ ہر آئٹم کے ساتھ تین timestamps بھی ہوتے ہیں:

  • created_at آرڈر آنے پر سیٹ ہوتا ہے۔
  • ready_at پہلی بار آئٹم کے ready میں جانے پر سیٹ ہوتا ہے۔
  • served_at آئٹم کے served میں جانے پر سیٹ ہوتا ہے۔

کسٹمر مینو ہر لائن کے ساتھ ایک بیج دکھاتا ہے تاکہ کسٹمر دیکھ سکے کہ کون سے آئٹمز تیار ہیں یا راستے میں ہیں۔

آرڈر منسوخ کرنا

  1. آرڈر card کھولیں۔
  2. Cancel پر کلک کریں۔
  3. ظاہر ہونے والے dialog میں تصدیق کریں۔
  4. آرڈر cancelled حالت میں چلا جاتا ہے۔ یہ history میں رہتا ہے مگر default live view سے غائب ہو جاتا ہے۔

Cancellation مکمل آرڈر کی کارروائی ہے۔ کسی ایک لائن کو منسوخ کرنے کے لیے اس لائن کی فی آئٹم حالت cancelled کر دیں۔

سیٹلمنٹ (Settle Check)

Settlement ٹیبل کے تمام کھلے آرڈرز ایک ہی مرحلے میں بند کر دیتی ہے۔ یہ تب استعمال کریں جب کسٹمر جا رہا ہو اور پورا بل ادا کرنا چاہتا ہو۔

  1. Tables صفحے یا Floor Plan action menu سے ٹیبل کھولیں۔
  2. Settle Check پر کلک کریں۔
  3. Modal میں ٹیبل کے تمام وہ آرڈرز دکھائی دیتے ہیں جو پہلے سے served نہیں ہیں۔
  4. ادائیگی کا طریقہ منتخب کریں۔ اختیارات ہیں: Cash, Card, Online, Other۔
  5. تصدیق کریں۔

سرور درج ذیل اقدامات ایک ہی atomic عمل میں کرتا ہے:

  • ٹیبل پر ہر کھلا آرڈر served حالت میں payment_status=paid کے ساتھ چلا جاتا ہے۔
  • ایک cafeteria_settlements record بنتا ہے جس میں مجموعی رقم، payment method، اور تخلیق کا وقت شامل ہوتا ہے۔
  • ایک settlement-orders audit trail ریکارڈ کرتا ہے کہ کون سے آرڈرز اس settlement میں شامل ہیں۔
  • ٹیبل کا security code expire ہو جاتا ہے تاکہ QR غیر معتبر ہو جائے۔
  • ٹیبل idle پر واپس آ جاتا ہے۔

اگر آپ نے ادائیگی کے طریقے کے طور پر Online منتخب کیا تو settlement record کو online-paid نشان زد کیا جاتا ہے۔ اس action سے کوئی Stripe charge trigger نہیں ہوتا۔ کسٹمر سائیڈ پر آن لائن ادائیگی آرڈر دیتے وقت سنبھالی جاتی ہے؛ settlement action آپ کی کتابوں کے لیے cash flow درج کرتی ہے۔

Opened-At Timer

ہر ٹیبل کے ساتھ ایک opened_at timestamp ہوتا ہے جو کسٹمر کے بیٹھنے پر سیٹ ہوتا ہے۔ Floor Plan اور Tables صفحات اس لمحے سے گزرنے والا live timer دکھاتے ہیں۔ اس سے عملہ ایسے ٹیبلز پہچان سکتا ہے جو دیر سے active ہوں مگر آرڈر نہ دے رہے ہوں، یا وہ ٹیبلز جو session ختم ہونے کے قریب ہوں۔

ٹائمر Close Table یا Settle Check پر صفر پر واپس آ جاتا ہے۔

Dynamic Preparation Time Display

جب کسی پروڈکٹ کے لیے dynamic preparation time فعال ہو تو order card آئٹم نام کے ساتھ اندازہ دکھاتی ہے۔ کسٹمرز کو یہ اندازہ تب بھی نظر آتا ہے جب Show Prep Time on Menu ٹوگل بند ہو۔

نیا آرڈر آنے اور آرڈر مکمل ہونے دونوں صورتوں میں اندازہ اپڈیٹ ہوتا ہے۔ سسٹم آپ کے حقیقی kitchen pace سے سیکھتا ہے۔

New Order Notification Behavior

نوٹیفکیشنز tab کے بجائے app-wide trigger ہوتے ہیں۔ اس کا مطلب ہے کہ جب آپ HandyCafe server کے کسی اور حصے، مثلاً Admin Panel یا Settings، میں براؤز کر رہے ہوں تب بھی الرٹس ملتے ہیں۔ آڈیو الرٹ Settings > کیفیٹیریا > Sound Notification سے فعال یا غیر فعال ہوتا ہے۔

ڈیسک ٹاپ نوٹیفکیشنز کے لیے operating system کو HandyCafe کو notification permission دینی ہوتی ہے۔ اگر نیا آرڈر آنے کے بعد نوٹیفکیشن نظر نہ آئے تو اپنی OS notification settings چیک کریں۔

مشورے

  • Status Tabs سے workload تقسیم کریں۔ preparing پر فلٹر کی ہوئی ایک اسکرین کچن queue دکھاتی ہے۔ ready پر دوسری اسکرین یہ دکھاتی ہے کہ کیا کچھ پہنچانا ہے۔
  • Settle Check ٹیبل بند کرنے کا سب سے تیز طریقہ ہے۔ Cancel صرف واضح غلطیوں کے لیے انفرادی آرڈرز پر استعمال کریں۔
  • عملے کو حالتیں مستقل انداز میں آگے بڑھانے کی تربیت دیں۔ dynamic preparation time estimator انہی signals سے سیکھتا ہے، اس لیے state چھوڑ دینے سے اس کی درستگی کم ہو جاتی ہے۔
  • غلطی یا refund شدہ آرڈرز کو وقتاً فوقتاً admin endpoint سے audit کریں تاکہ عملے کی غلطی کے pattern سامنے آ سکیں۔