Commit Graph

14 Commits (a22562cb59c799066a6661aa279ccc3ab5ecff3a)

Author SHA1 Message Date
SYED MUSTUFA AHMED NAQVI a22562cb59 Implement session-based duplicate meal guard with optional auto-sync control
Added a configurable SyncServiceEnabled flag in app config and wired startup to run the background sync timer only when enabled. Updated scan processing to enforce production duplicate checks by employee_serial_number + order_date + meal_name + location_site_id, blocking same-session repeat scans with “Meal already taken” while still allowing different meals on the same day. Improved offline/online behavior by saving locally first and attempting immediate sync when production is reachable, and enhanced manual sync to treat production duplicates as success by marking local IsSynced=1 instead of retrying forever.
2026-04-20 16:51:58 +05:00
SYED MUSTUFA AHMED NAQVI 679b0a053e updated the mysqlconnectionstring with preload string to load when app is deployed 2026-04-08 13:26:26 +05:00
SYED MUSTUFA AHMED NAQVI 1c43c3d25a Change in Method to fetch the lcoation side id right after the login from admin credentials 2026-03-30 16:20:41 +05:00
SYED MUSTUFA AHMED NAQVI 4d2433fa28 Fix config overwrite on login/navigation; use production DB for meal schedule CRUD, remove default SiteId normalization, add config load/save logging, and support legacy SiteId format. 2026-03-10 10:40:51 +05:00
SYED MUSTUFA AHMED NAQVI a42f43b2cc Sync scans to lunch_order and enforce per-session daily scans
Extend HRMS RFID lookup to include uind_serial, function_id, department_id, created_by, and tag created timestamp
Persist new tag fields + meal session code in SQLite scan records; auto-migrate schema and drop deprecated EmployeeDbId column
Enforce “once per meal session per local day” scan rule (keep short per-card debounce; remove global cooldown)
Enhance sync: insert scans into production lunch_order_transactions (MySqlConnectionString) and into HRMS/local lunch_order (HrmsLookupConnectionString) with duplicate guard; include location_site_id from SQLite SiteId
2026-03-09 13:01:08 +05:00
SYED MUSTUFA AHMED NAQVI 888c692764 Use employee RFID site id for menu lookup
Add LocationSiteId to HrmsEmployeeInfo populated from employee_rfid_tag.location_site_id.

Update EmployeeLookupService query to select and map the site id.

Change ScannerDashboardViewModel to load lunch_menu_week using the site id from the scanned employee’s RFID tag instead of only config.
2026-02-24 13:27:50 +05:00
SYED MUSTUFA AHMED NAQVI f19316b04f Database cleanup and production sync improvements
- Remove legacy SQLite tables/columns (Employees, MealRates, TemporaryMealPlanOverrides, etc.)
- Replace scan timeout with granular interval (Days/Hours/Minutes/Seconds)
- Add CSV export for today's records in Order History modal
- Consolidate cooldown alerts with dynamic unit formatting
- Change order items to "Sehri/Iftari"
- Update MySQL sync: remove device_local_row_id, rename columns (scan_date, received_date)
- Add production migration script for schema changes
- Remove MySQL connection string from Settings UI (use appsettings.json)
2026-02-18 16:50:04 +05:00
SYED MUSTUFA AHMED NAQVI 4bf3cced5f fixes : auto deployment and bug fixes 2026-02-16 10:17:20 +05:00
SYED MUSTUFA AHMED NAQVI 25a808907d feat(settings): add manual sync + secure config template
Add Settings PostDataNow action via ISyncService

Remove hardcoded MySQL fallback; skip sync when not configured

Use production snake_case columns + always run cleanup

Add appsettings.example.json; ignore appsettings.json to avoid secrets

Rename Settings Cancel button to Back
2026-02-11 12:47:53 +05:00
SYED MUSTUFA AHMED NAQVI 35161336d0 feat: MySQL direct sync, IP tracking, and SiteId normalization
- Replace API sync with direct MySQL database insert
- Add IP address capture and storage (SQLite + MySQL)
- Normalize SiteId to 2-digit format (e.g., "02" instead of "SITE : 2")
- Mark records as synced instead of deleting after sync
- Add day-end cleanup for old synced rows
- Rename table to lunch_order_transactions
- Add MySqlConnector package and connection string config
2026-02-09 18:08:13 +05:00
SYED MUSTUFA AHMED NAQVI cb35b6581a Add order history card + view-all modal; improve device id; prep settings post button
- ScannerDashboard: added Order History card under employee panel (shows last 4 orders)
- Added Today’s Order History modal (View All) with overlay close + close button
- Wired modal state + bindings; added TodayOrderHistory collection and loaders
- Fixed modal element naming for code-behind references
- Updated device id storage to use readable machine/device identifier instead of GUID
- Settings: placed Post Data button next to Sync Endpoint and added IsPosting/PostButtonText/CanPostNow state.
2026-02-06 18:06:28 +05:00
SYED MUSTUFA AHMED NAQVI 7bc5ffc77e Scanner dashboard & sync updates
- Add SiteId/DeviceId to scan pipeline (config, SQLite, sync payload, schema upgrade)
- Canteen wording: orders/place order, Today’s Orders, Total Orders (today only), scanner connectivity status
- Menu: site left, Settings/Logout right; fix focus for site input and when closing menu
- Cooldown: prominent on-screen alert to ask customer to rescan after countdown
- Sync: post to production every 15 minutes (was 3 hours)
- UI: remove “Utopia Canteen System” heading, larger logo, single menu row layout
2026-02-03 18:26:39 +05:00
SYED MUSTUFA AHMED NAQVI 3f08666c15 feat: scanner+dashboard unified UI with cooldown and local sqlite sync 2026-02-02 16:45:55 +05:00
SYED MUSTUFA AHMED NAQVI 113b22f344 Initial commit: admin login + scanner flow + sqlite persistence + sync service 2026-01-31 16:53:32 +05:00