feat(orders): recent orders view with receipt / kitchen / bar reprint
CI/CD / CI · API (dotnet build + test) (push) Successful in 41s
CI/CD / CI · Admin API (dotnet build) (push) Successful in 30s
CI/CD / CI · Dashboard (tsc) (push) Successful in 1m10s
CI/CD / CI · Admin Web (tsc) (push) Successful in 38s
CI/CD / CI · Website (tsc) (push) Successful in 46s
CI/CD / CI · Koja (tsc) (push) Successful in 50s
CI/CD / Deploy · all services (push) Successful in 3m34s

Adds a "سفارش‌ها" (Orders) nav page listing closed orders by day (date +
branch filter, paged), each with reprint actions:
- چاپ فاکتور  → customer receipt
- فیش آشپزخانه → kitchen ticket (all stations)
- one button per print station (e.g. Bar) → reprints only that station's items

Backend: the kitchen print endpoint gains an optional ?stationId= to reprint a
single station; PrintKitchenTicketAsync filters its station groups accordingly
(NO_STATION_ITEMS when that station has nothing on the order). Nav gated by
ViewOrders (visible to branch staff too). fa/en/ar strings added.

Note: local backend build couldn't run (NU1301 — NuGet restore network timeout);
dashboard typecheck is clean and the C# changes are minimal — CI builds via the
Nexus mirror.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
soroush.asadi
2026-06-21 23:15:34 +03:30
parent 1264606410
commit c360fbb068
10 changed files with 321 additions and 6 deletions
+21
View File
@@ -129,6 +129,7 @@
"crm": "مشتریان",
"coupons": "کوپن‌ها",
"menu": "منو",
"orders": "سفارش‌ها",
"inventory": "انبار",
"hr": "منابع انسانی",
"reports": "گزارش‌ها",
@@ -352,6 +353,9 @@
"posDeviceHint": "هنگام پرداخت کارتی، مبلغ به آدرس HTTP دستگاه ارسال می‌شود (POST /pay).",
"posDeviceIp": "آدرس IP دستگاه پوز",
"testSent": "تست به پرینتر ارسال شد.",
"sent": "به پرینتر ارسال شد.",
"noStationItems": "این سفارش آیتمی برای این ایستگاه ندارد.",
"printFailed": "چاپ ناموفق بود.",
"stations": {
"title": "ایستگاه‌های چاپ آشپزخانه و بار",
"subtitle": "برای هر بخش آماده‌سازی یک پرینتر جدا بگذارید و دسته‌های منو را به آن وصل کنید.",
@@ -1147,6 +1151,23 @@
}
}
},
"recentOrders": {
"title": "سفارش‌های اخیر",
"subtitle": "سفارش‌های بسته‌شده را ببینید و فاکتور مشتری و فیش آشپزخانه/بار را دوباره چاپ کنید.",
"date": "تاریخ",
"branch": "شعبه",
"allBranches": "همه شعب",
"empty": "سفارشی برای این روز نیست.",
"loadFailed": "بارگذاری سفارش‌ها ناموفق بود.",
"retry": "تلاش مجدد",
"prevPage": "قبلی",
"nextPage": "بعدی",
"table": "میز",
"statusPaid": "پرداخت‌شده",
"statusCancelled": "لغوشده",
"receipt": "فاکتور",
"kitchen": "فیش آشپزخانه"
},
"notifications": {
"title": "اعلان‌ها",
"pageTitle": "اعلان‌ها",