feat: migrate museum sales from NocoDB to Hono ERP API
- Replace NocoDB museum data (Districts/Museums/DailyStats) with ERP API - Client fetches via server proxy (/api/erp/sales) — no credentials in browser - Aggregate transaction-level ERP data into daily/museum/channel records - Replace "district" dimension with "channel" (B2C/HiHala, POS, B2B, etc.) - Add product-to-museum mapping (46 products → 6 museums) - NocoDB retained only for PilgrimStats - Remove old server/index.js (replaced by modular TS in server/src/) - Update all components, types, and locale files Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -33,11 +33,11 @@
|
||||
"filters": {
|
||||
"title": "الفلاتر",
|
||||
"year": "السنة",
|
||||
"district": "المنطقة",
|
||||
"channel": "القناة",
|
||||
"museum": "المتحف",
|
||||
"quarter": "الربع",
|
||||
"allYears": "كل السنوات",
|
||||
"allDistricts": "كل المناطق",
|
||||
"allChannels": "جميع القنوات",
|
||||
"allMuseums": "كل المتاحف",
|
||||
"allQuarters": "كل الأرباع",
|
||||
"reset": "إعادة تعيين الفلاتر"
|
||||
@@ -56,7 +56,7 @@
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "لوحة التحكم",
|
||||
"subtitle": "تحليلات المتاحف من تقارير مبيعات VivaTicket",
|
||||
"subtitle": "تحليلات المتاحف من نظام Hono ERP",
|
||||
"noData": "لا توجد بيانات",
|
||||
"noDataMessage": "لا توجد سجلات تطابق الفلاتر الحالية. حاول تعديل اختيارك.",
|
||||
"quarterlyComparison": "مقارنة ربع سنوية: 2024 مقابل 2025",
|
||||
@@ -64,7 +64,7 @@
|
||||
"visitorsByMuseum": "الزوار حسب المتحف",
|
||||
"revenueByMuseum": "الإيرادات حسب المتحف",
|
||||
"quarterlyRevenue": "الإيرادات الربعية (سنوي)",
|
||||
"districtPerformance": "أداء المناطق",
|
||||
"channelPerformance": "أداء القنوات",
|
||||
"captureRateChart": "نسبة الاستقطاب مقابل المعتمرين"
|
||||
},
|
||||
"table": {
|
||||
@@ -146,11 +146,11 @@
|
||||
"visitors": "الزوار",
|
||||
"revenue": "الإيرادات",
|
||||
"quarterly": "ربع سنوي",
|
||||
"district": "المنطقة",
|
||||
"channel": "القناة",
|
||||
"captureRate": "نسبة الاستقطاب"
|
||||
},
|
||||
"errors": {
|
||||
"config": "لم يتم تهيئة لوحة المعلومات. يرجى إعداد اتصال NocoDB.",
|
||||
"config": "لم يتم تهيئة لوحة المعلومات. يرجى إعداد اتصال ERP API.",
|
||||
"network": "لا يمكن الوصول إلى خادم قاعدة البيانات. يرجى التحقق من اتصالك بالإنترنت.",
|
||||
"auth": "تم رفض الوصول. قد يكون رمز API غير صالح أو منتهي الصلاحية.",
|
||||
"timeout": "خادم قاعدة البيانات يستغرق وقتاً طويلاً للاستجابة. يرجى المحاولة مرة أخرى.",
|
||||
|
||||
@@ -33,11 +33,11 @@
|
||||
"filters": {
|
||||
"title": "Filters",
|
||||
"year": "Year",
|
||||
"district": "District",
|
||||
"channel": "Channel",
|
||||
"museum": "Museum",
|
||||
"quarter": "Quarter",
|
||||
"allYears": "All Years",
|
||||
"allDistricts": "All Districts",
|
||||
"allChannels": "All Channels",
|
||||
"allMuseums": "All Museums",
|
||||
"allQuarters": "All Quarters",
|
||||
"reset": "Reset Filters"
|
||||
@@ -56,7 +56,7 @@
|
||||
},
|
||||
"dashboard": {
|
||||
"title": "Dashboard",
|
||||
"subtitle": "Museum analytics from VivaTicket Sales Reports",
|
||||
"subtitle": "Museum analytics from Hono ERP",
|
||||
"noData": "No data found",
|
||||
"noDataMessage": "No records match your current filters. Try adjusting your selection.",
|
||||
"quarterlyComparison": "Quarterly Comparison: 2024 vs 2025",
|
||||
@@ -64,7 +64,7 @@
|
||||
"visitorsByMuseum": "Visitors by Museum",
|
||||
"revenueByMuseum": "Revenue by Museum",
|
||||
"quarterlyRevenue": "Quarterly Revenue (YoY)",
|
||||
"districtPerformance": "District Performance",
|
||||
"channelPerformance": "Channel Performance",
|
||||
"captureRateChart": "Capture Rate vs Umrah Pilgrims"
|
||||
},
|
||||
"table": {
|
||||
@@ -146,11 +146,11 @@
|
||||
"visitors": "Visitors",
|
||||
"revenue": "Revenue",
|
||||
"quarterly": "Quarterly",
|
||||
"district": "District",
|
||||
"channel": "Channel",
|
||||
"captureRate": "Capture Rate"
|
||||
},
|
||||
"errors": {
|
||||
"config": "The dashboard is not configured. Please set up the NocoDB connection.",
|
||||
"config": "The dashboard is not configured. Please set up the ERP API connection.",
|
||||
"network": "Cannot reach the database server. Please check your internet connection.",
|
||||
"auth": "Access denied. The API token may be invalid or expired.",
|
||||
"timeout": "The database server is taking too long to respond. Please try again.",
|
||||
|
||||
Reference in New Issue
Block a user