THE LABS GADGET — WEEKLY SHIFT ROSTER PATCH V1.5
==============================================
PATCH UNTUK: Finance & HR V1.4 (GPS Geofence 150m) standard.
TIDAK PERLU REINSTALL / RESET DATABASE.

TUJUAN:
- Owner dan Manager set shift setiap minggu, ikut staff/hari.
- Staff dapat view jadual sendiri. Akaun Staff tidak boleh edit.
- Set WORKING (Start/End + minit grace), OFF, atau NOT SET.
- Klik Copy This Week to Next Week (hanya isi tarikh yang masih kosong).
- Status lewat berdasarkan snapshot shift pada waktu clock-in.
- Shift yang dah ada attendance tidak boleh diubah tanpa proses semakan.
- GPS 150m untuk Clock In dan Clock Out tetap diwajibkan.

SELAMAT SEBELUM INSTALL:
1. Backup database FINANCE melalui phpMyAdmin (Export -> SQL).
2. Backup folder financehub (termasuk index.php dan export.php).
3. JANGAN edit database CRM asal atau overwrite folder app secara manual.
4. Pastikan Finance V1.4 berjaya digunakan; GPS shop centre boleh diset kemudian.

CARA PASANG:
1. cPanel -> File Manager -> Document Root crm.thelabsgadget.com -> financehub.
2. Upload The_Labs_Gadget_Weekly_Shifts_PATCH_V1_5.zip dan Extract di financehub.
3. Pastikan financehub/upgrade_roster_v1_5.php dan financehub/patch_shift_v1_5/ ada.
4. Login Finance sebagai OWNER/ADMIN.
5. Buka https://crm.thelabsgadget.com/financehub/upgrade_roster_v1_5.php
6. Klik Install Weekly Shifts V1.5 SEKALI sahaja. Jika ralat, berhenti dan ambil screenshot.
7. Pergi Finance HR -> Weekly Shifts; pilih minggu, isi shift, Save.
8. Staff buka Attendance / Weekly Shifts melalui login sendiri.
9. Test dengan satu akaun staff sebelum guna sebenar. Jangan cipta clock-in palsu.
10. Selepas berjaya dan backup selamat, padam upgrade_roster_v1_5.php dan folder patch_shift_v1_5.

NOTA PENTING:
- Shift merentas tengah malam (contoh 22:00-02:00) BELUM disokong.
- Belum ada leave, cuti, auto OT, atau auto payroll statutory dalam patch ini.
- Hari NOT SET masih benarkan clock-in GPS tetapi ditandakan Unscheduled untuk review.
- Hari OFF halang clock-in baharu sehingga owner/manager kemas kini jadual.
- Record sebelum V1.5 dipaparkan Legacy / not assessed untuk late status.
- Tidak boleh ubah jadual hari yang sudah direkodkan clock-in.
- Minit grace ditetapkan 5 secara default setiap shift, boleh ubah 0-60 minit.
- Update data jadual disimpan dalam fh_shift_roster dan audit fh_shift_roster_history.
- Patch menambah 4 kolum nullable pada fh_attendance. Tidak padam data lama.
- Updater periksa SHA256 fail standard V1.4. Kalau berlainan, berhenti tanpa overwrite fail.
- Migrasi ADDITIVE SQL mungkin sudah berlaku jika proses gagal selepas DDL; semak backup.
- Belum boleh uji database sebenar cPanel dari sini; jalankan dalam waktu low-traffic.

FOLDER DALAM ZIP:
upgrade_roster_v1_5.php — install selepas preflight semak fail.
patch_shift_v1_5/app/* — kod baru untuk weekly roster (jangan copy manual).
patch_shift_v1_5/index.php, export.php — route dan CSV baharu.
patch_shift_v1_5/assets/roster.css — style mobile.

The Labs Gadget, 53A, Jalan Intan Setia 1, Taman Intan Setia,
08000 Sungai Petani, Kedah.
