Book Resources Effortlessly & Instantly

Your all-in-one platform for booking company resources.

June 2026

Sun
Mon
Tue
Wed
Thu
Fri
Sat
31
1
Sabre Saw Bosch
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
All day
Returned
2
Sabre Saw Bosch
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
All day
Returned
3
Bilik Meeting
Syahmi Sadan
14:00 - 16:00
Completed
Sabre Saw Bosch
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
26/05 10:00 → 17:00
Returned
+1 more
4
Group 3 resources
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
12:00 - 17:00
Returned
5
Group 3 resources
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
12:00 - 17:00
Returned
6
7
8
9
10
11
Bilik Meeting
Zuraihan Abd Rahim
15:00 - 16:00
Completed
SONY ICD - TX660 VOICE RECORDER
Zuraihan Abd Rahim
15:00 - 16:00
Missed
12
Bilik Meeting
Syahmi Sadan
10:00 - 12:00
Completed
SONY Stereo IC Recorder ICD-PX470
Zuraihan Abd Rahim
11:00 - 14:00
Missed
13
14
Group 3 resources
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
14:00 - 17:00
Cancelled
15
Group 3 resources
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
14:00 - 17:00
Cancelled
16
Bilik Meeting
'AISYAH KHUMAIRA' BINTI MOHD RIZAL
10:00 - 13:00
Completed
Bilik Meeting
Syahmi Sadan
14:00 - 15:00
Completed
+2 more
17
Bilik Meeting
Zuraihan Abd Rahim
11:00 - 12:00
Completed
Group 3 resources
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
14:00 - 17:00
Cancelled
18
Group 3 resources
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
14:00 - 17:00
Cancelled
19
Group 3 resources
MOHAMMAD THAQIF BIN MOHAMMAD HANAFIAH
14:00 - 17:00
Cancelled
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
Asset Management
Asset Marketing
Asset Project
Asset SkellUp

Browse & Book Resources

Apply filters to see available resources

Asset Management

Bilik Meeting

Available
Asset Management

Card - Card Parking

RM 10.00

Available
Asset Management

Card - TNG

RM 10.00

Available
Asset Management

Nissan Navara VHY 9290

RM 135,000.00

Available
SONY Stereo IC Recorder ICD-PX470
Asset Management

SONY Stereo IC Recorder ICD-PX470

RM 300.00

Available
Box Background
Asset Marketing

Box Background

RM 80.00

Available
CAMERA 2 (CANON G7X MARK iii)
Asset Marketing

CAMERA 2 (CANON G7X MARK iii)

RM 3,100.00

Available
CAMERA 3 (CANON EOS M50 MARK ii)
Asset Marketing

CAMERA 3 (CANON EOS M50 MARK ii)

RM 3,200.00

Available
Clapper
Asset Marketing

Clapper

RM 30.00

Available
GIMBAL
Asset Marketing

GIMBAL

RM 570.00

Available
Green Screen
Asset Marketing

Green Screen

RM 125.00

Available
Lighting (40 Watt)
Asset Marketing

Lighting (40 Watt)

RM 350.00

Available
Showing 1 to 12 of 56 results

Share Your Feedback

Help us improve the system with your ideas and suggestions

Enter the last 4 digits of your IC number for identification
JPG, PNG or WebP only. Max 5MB each.

MANUAL PENGGUNA USER MANUAL

RD BookHub

Peranan: Staff Role: Staff

VersiVersion : 1.0
TarikhDate : 19 June 2026
OrganisasiOrganisation : Revenue Discovery Sdn Bhd

1.0 Pengenalan Introduction

RD BookHub ialah sistem tempahan sumber yang membolehkan kakitangan menempah peralatan, kenderaan, bilik mesyuarat, dan sumber lain secara dalam talian.

1.1 Keupayaan Staff

Jadual 1.1: Fungsi Staff

Bil.FungsiKeterangan
1Layari & Cari SumberLayari dan cari sumber yang tersedia
2Buat TempahanBuat tempahan baru (individu atau kumpulan)
3Urus Tempahan SendiriLihat, sunting, dan batalkan tempahan sendiri
4Kutip SumberKutip sumber yang telah diluluskan
5Pulangkan SumberPulangkan sumber yang telah dikutip
6Beri UlasanBeri ulasan selepas pemulangan
7Kemaskini ProfilKemaskini maklumat peribadi
8Eksport TempahanEksport senarai tempahan ke Excel
Had: Staff tidak boleh meluluskan/menolak tempahan, mengurus sumber, pengguna, atau kategori, atau mengakses panel pentadbir.
Nota: Anda juga boleh mengakses fungsi kutipan dan pemulangan melalui halaman awam (tanpa log masuk) menggunakan pengesahan IC. Lihat Bahagian 15.

RD BookHub is a resource booking system that allows staff to book equipment, vehicles, meeting rooms, and other resources online.

1.1 Staff Capabilities

Table 1.1: Staff Functions

No.FunctionDescription
1Browse & Search ResourcesBrowse and search available resources
2Create BookingsCreate new bookings (individual or group)
3Manage Own BookingsView, edit, and cancel your own bookings
4Collect ResourcesCollect approved resources
5Return ResourcesReturn collected resources
6Submit ReviewsSubmit reviews after returning resources
7Update ProfileUpdate personal information
8Export BookingsExport booking list to Excel
Limitations: Staff cannot approve/reject bookings, manage resources, users, or categories, or access the admin panel.
Note: You can also access collection and return functions via the public page (without logging in) using IC verification. See Section 15.

2.0 Pendaftaran & Log Masuk Registration & Login

2.1 Pendaftaran

Jika anda belum mempunyai akaun:

Jadual 2.1: Langkah Pendaftaran

LangkahTindakan
1Pergi ke halaman log masuk (/login)
2Klik pautan "Register here"
3Isi borang pendaftaran dalam modal
4Klik "Register"
5Semak e-mel untuk pautan pengesahan
6Klik pautan pengesahan untuk mengaktifkan akaun
7Log masuk dengan kelayakan anda

Jadual 2.2: Medan Borang Pendaftaran

MedanKeteranganWajib?
Full NameNama penuh andaYa
IC Last 4 Digits4 digit terakhir nombor IC andaYa
EmailAlamat e-mel aktifYa
Phone NumberNombor telefonYa
DepartmentJabatan (pilih dari senarai)Tidak
PasswordKata laluan (minimum 8 aksara)Ya
Confirm PasswordUlang kata laluanYa
Nota: Akaun baru diberikan peranan Staff secara automatik. Pendaftaran hanya melalui modal — tiada halaman pendaftaran berasingan.

2.1.1 Ralat Pendaftaran

Jadual 2.3: Ralat Pendaftaran

RalatPunca
"Email already registered"E-mel sudah digunakan oleh akaun lain
"IC already registered"IC sudah digunakan
"Password must be at least 8 characters"Kata laluan terlalu pendek
"Passwords do not match"Kata laluan tidak sepadan

2.2 Log Masuk

Jadual 2.4: Langkah Log Masuk

LangkahTindakan
1Pergi ke /login
2Masukkan IC Last 4 Digits dan Password
3(Pilihan) Tandakan "Remember Me"
4Klik "Sign In"

2.2.1 Situasi Khas

Jadual 2.5: Situasi Khas Log Masuk

SituasiApa Yang Berlaku
IC tidak dijumpaiMesej ralat "No account found" + pilihan untuk mendaftar
Kata laluan salahMesej ralat "These credentials do not match"
E-mel belum disahkanDiminta untuk mengesahkan e-mel terlebih dahulu
2FA diaktifkanDialihkan ke halaman pengesahan dua faktor

2.3 Lupa Kata Laluan

Jadual 2.6: Langkah Reset Kata Laluan

LangkahTindakan
1Di halaman log masuk, klik "Forgot your password?"
2Masukkan alamat e-mel anda
3Klik "Send Password Reset Link"
4Semak e-mel untuk pautan reset
5Klik pautan dan tetapkan kata laluan baru

2.4 Pengesahan Dua Faktor (2FA)

Jika 2FA diaktifkan pada akaun anda:

  • Selepas memasukkan IC dan kata laluan, anda akan diminta kod pengesahan
  • Masukkan kod dari aplikasi authenticator anda
  • Klik "Verify"

2.1 Registration

If you do not yet have an account:

Table 2.1: Registration Steps

StepAction
1Go to the login page (/login)
2Click the "Register here" link
3Fill in the registration form in the modal
4Click "Register"
5Check your email for the verification link
6Click the verification link to activate your account
7Log in with your credentials

Table 2.2: Registration Form Fields

FieldDescriptionRequired?
Full NameYour full nameYes
IC Last 4 DigitsLast 4 digits of your IC numberYes
EmailActive email addressYes
Phone NumberPhone numberYes
DepartmentDepartment (select from list)No
PasswordPassword (minimum 8 characters)Yes
Confirm PasswordRe-enter passwordYes
Note: New accounts are automatically assigned the Staff role. Registration is only available through a modal — there is no separate registration page.

2.1.1 Registration Errors

Table 2.3: Registration Errors

ErrorCause
"Email already registered"Email is already in use by another account
"IC already registered"IC is already in use
"Password must be at least 8 characters"Password is too short
"Passwords do not match"Passwords do not match

2.2 Login

Table 2.4: Login Steps

StepAction
1Go to /login
2Enter your IC Last 4 Digits and Password
3(Optional) Check "Remember Me"
4Click "Sign In"

2.2.1 Special Situations

Table 2.5: Special Login Situations

SituationWhat Happens
IC not foundError message "No account found" + option to register
Wrong passwordError message "These credentials do not match"
Email not verifiedPrompted to verify email first
2FA enabledRedirected to two-factor authentication page

2.3 Forgot Password

Table 2.6: Password Reset Steps

StepAction
1On the login page, click "Forgot your password?"
2Enter your email address
3Click "Send Password Reset Link"
4Check your email for the reset link
5Click the link and set a new password

2.4 Two-Factor Authentication (2FA)

If 2FA is enabled on your account:

  • After entering your IC and password, you will be prompted for a verification code
  • Enter the code from your authenticator app
  • Click "Verify"

3.0 Dashboard Dashboard

URL: /dashboard

Selepas log masuk, anda akan dibawa ke halaman Dashboard.

3.1 Kad Statistik (3 KPI)

Jadual 3.1: Kad Statistik Dashboard Staff

KadKeterangan
My BookingsJumlah semua tempahan anda
Pending ApprovalBilangan tempahan yang menunggu kelulusan admin
Total BookingsJumlah tempahan bulan ini. Sub-badge menunjukkan bilangan collected, overdue, missed dan completed

3.2 Kalendar Tempahan

Kalendar interaktif menunjukkan semua tempahan mengikut tarikh. Anda boleh:

  • Navigasi bulan (klik anak panah kiri/kanan)
  • Klik pada tempahan untuk melihat butiran

3.3 Tempahan Terkini (Top 10)

Jadual menunjukkan 10 tempahan terkini anda dengan:

  • Nombor tempahan, nama sumber, kategori, tarikh, status
  • Butang "View" untuk melihat butiran

Klik "View All" untuk pergi ke halaman Tempahan Saya.

URL: /dashboard

After logging in, you will be taken to the Dashboard page.

3.1 Statistics Cards (3 KPIs)

Table 3.1: Staff Dashboard Statistics Cards

CardDescription
My BookingsTotal number of all your bookings
Pending ApprovalNumber of bookings awaiting admin approval
Total BookingsTotal bookings this month. Sub-badges show collected, overdue, missed and completed counts

3.2 Booking Calendar

An interactive calendar displays all your bookings by date. You can:

  • Navigate months (click left/right arrows)
  • Click on a booking to view its details

3.3 Recent Bookings (Top 10)

A table displays your 10 most recent bookings with:

  • Booking number, resource name, category, date, status
  • "View" button to see details

Click "View All" to go to the My Bookings page.

4.0 Layari Sumber Browse Resources

URL: /resources

4.1 Penapis

Jadual 4.1: Penapis Sumber

PenapisKeterangan
SearchCari mengikut nama sumber
Start Date & TimeTarikh dan masa mula
End Date & TimeTarikh dan masa tamat
CategoryTapis mengikut kategori
LocationTapis mengikut lokasi

Klik "Apply" untuk menapis, atau "Reset" untuk bersihkan semua penapis.

4.2 Kad Sumber

Setiap sumber dipaparkan sebagai kad yang menunjukkan:

  • Gambar sumber dan badge kategori (berwarna mengikut warna yang ditetapkan oleh pentadbir)
  • Nama sumber dan harga (jika ada)
  • Penerangan ringkas dan kapasiti (jika ada)

4.3 Status Ketersediaan

Jadual 4.2: Status Ketersediaan

StatusKeterangan
AvailableBoleh ditempah untuk tarikh yang dipilih
UnavailableSudah ditempah pada waktu tersebut

4.4 Tindakan

  • "View Details" (ikon mata) — Lihat maklumat penuh sumber termasuk sub-item, gambar, dan statistik tempahan
  • "Book Now" (ikon kalendar) — Terus ke halaman tempahan baru dengan sumber ini dipilih
Penapis Wajib: Butang "Book Now" memerlukan semua penapis tarikh/masa (Start Date, Start Time, End Date, End Time) diisi dan "Apply Filters" diklik terlebih dahulu. Jika mana-mana medan kosong, amaran akan dipaparkan.

URL: /resources

4.1 Filters

Table 4.1: Resource Filters

FilterDescription
SearchSearch by resource name
Start Date & TimeStart date and time
End Date & TimeEnd date and time
CategoryFilter by category
LocationFilter by location

Click "Apply" to filter, or "Reset" to clear all filters.

4.2 Resource Cards

Each resource is displayed as a card showing:

  • Resource image and category badge (coloured based on badge color set by admin)
  • Resource name and price (if any)
  • Brief description and capacity (if any)

4.3 Availability Status

Table 4.2: Availability Status

StatusDescription
AvailableCan be booked for the selected dates
UnavailableAlready booked for the selected time

4.4 Actions

  • "View Details" (eye icon) — View full resource information including sub-items, images, and booking statistics
  • "Book Now" (calendar icon) — Go directly to the new booking page with this resource selected
Filter Required: The "Book Now" button requires all date/time filters (Start Date, Start Time, End Date, End Time) to be filled and "Apply Filters" clicked first. If any field is empty, a warning will be displayed.

5.0 Tempahan Baru New Booking

5.1 Tambah ke Troli

Jadual 5.1: Langkah Tambah ke Troli

LangkahTindakan
1Dari halaman Browse Resources, pilih sumber yang tersedia
2Klik "Add to Cart" atau "Book"
3Sumber akan ditambah ke troli anda
4Anda boleh menambah beberapa sumber sebelum checkout
Nota: Anda tidak boleh menambah sumber yang sama dua kali ke dalam troli.

5.2 Urus Troli

URL: /cart

Di halaman troli, anda boleh:

  • Melihat semua item yang ditambah
  • Membuang item yang tidak diperlukan
  • Meneruskan ke checkout

5.3 Checkout

Jadual 5.2: Langkah Checkout

LangkahTindakan
1Di halaman troli, semak semua item
2Klik "Checkout" — modal pengesahan akan muncul
3Isi Tujuan Tempahan (wajib)
4Tambah Peserta (pilihan) — taip nama dan tekan Enter
5Masukkan IC 4 Digit Terakhir untuk pengesahan
6Klik "Confirm & Checkout"

5.3.1 Semakan Sistem

Jadual 5.3: Semakan Semasa Checkout

SemakanKeterangan
Tarikh Akhir TempahanTempahan mestilah dibuat sekurang-kurangnya X hari kerja sebelum tarikh mula
Konflik MasaSumber tidak boleh bertindih dengan tempahan lain yang masih aktif
Pengesahan ICIC 4 digit terakhir mesti sepadan dengan rekod anda

5.4 Keputusan Tempahan

Jadual 5.4: Keputusan Selepas Checkout

SituasiKeputusan
Sumber tidak memerlukan kelulusanTempahan terus APPROVED
Sumber memerlukan kelulusanTempahan berstatus PENDING
Berbilang itemDicipta sebagai Group Booking dengan nombor kumpulan unik
Nota: Sumber yang tidak memerlukan kutipan fizikal (cth: bilik mesyuarat) akan kekal berstatus APPROVED selepas diluluskan — tiada proses kutipan atau pemulangan diperlukan. Selepas tarikh tamat, status akan bertukar kepada Completed secara automatik.

5.1 Add to Cart

Table 5.1: Add to Cart Steps

StepAction
1From the Browse Resources page, select an available resource
2Click "Add to Cart" or "Book"
3The resource will be added to your cart
4You can add multiple resources before checkout
Note: You cannot add the same resource twice to the cart.

5.2 Cart Management

URL: /cart

On the cart page, you can:

  • View all added items
  • Remove unwanted items
  • Proceed to checkout

5.3 Checkout

Table 5.2: Checkout Steps

StepAction
1On the cart page, review all items
2Click "Checkout" — a confirmation modal will appear
3Enter Purpose of Booking (required)
4Add Participants (optional) — type a name and press Enter
5Enter your IC Last 4 Digits for verification
6Click "Confirm & Checkout"

5.3.1 System Checks

Table 5.3: Checkout Validation Checks

CheckDescription
Booking DeadlineBookings must be made at least X working days before the start date
Time ConflictResources cannot overlap with other active bookings
IC VerificationIC last 4 digits must match your records

5.4 Booking Outcome

Table 5.4: Post-Checkout Outcomes

SituationOutcome
Resource does not require approvalBooking is immediately APPROVED
Resource requires approvalBooking is set to PENDING
Multiple itemsCreated as a Group Booking with a unique group number
Note: Resources that do not require physical collection (e.g. meeting rooms) will remain APPROVED after approval — no collection or return process is needed. After the end date, the status will automatically change to Completed.

6.0 Tempahan Saya My Bookings

URL: /bookings

6.1 Penapis & Carian

Jadual 6.1: Penapis Tempahan Saya

PenapisKeterangan
SearchCari mengikut nombor tempahan atau nama sumber
StatusTapis: All, Pending, Approved, Rejected, Collected, Returned, Completed, Cancelled, Missed
CategoryTapis mengikut kategori sumber

Butang: "Start New Booking", "Export", "Reset"

6.2 Jadual Tempahan

Jadual 6.2: Lajur Jadual Tempahan

LajurKeterangan
Booking #Nombor tempahan (badge "GROUP" jika tempahan kumpulan)
ResourceNama sumber
Start Date & TimeTarikh dan masa mula
End Date & TimeTarikh dan masa tamat
StatusBadge status
ActionsButang tindakan mengikut status

6.3 Butang Tindakan

Jadual 6.3: Butang Tindakan

ButangBila MunculFungsi
ViewSentiasaLihat butiran tempahan
CollectStatus = Approved, dalam tetingkap masaKutip sumber
ReturnStatus = CollectedPulangkan sumber
ReviewStatus = Returned, belum beri ulasanBeri ulasan
EditStatus = Pending/Approved, sebelum tarikh mulaSunting tujuan, peserta (dan tarikh jika Pending)
CancelStatus = Pending/ApprovedBatalkan tempahan
ExtendStatus = Approved/Collected/OverdueLanjutkan tempoh tempahan

URL: /bookings

6.1 Filters & Search

Table 6.1: My Bookings Filters

FilterDescription
SearchSearch by booking number or resource name
StatusFilter: All, Pending, Approved, Rejected, Collected, Returned, Completed, Cancelled, Missed
CategoryFilter by resource category

Buttons: "Start New Booking", "Export", "Reset"

6.2 Bookings Table

Table 6.2: Bookings Table Columns

ColumnDescription
Booking #Booking number ("GROUP" badge for group bookings)
ResourceResource name
Start Date & TimeStart date and time
End Date & TimeEnd date and time
StatusStatus badge
ActionsAction buttons based on status

6.3 Action Buttons

Table 6.3: Action Buttons

ButtonWhen ShownFunction
ViewAlwaysView booking details
CollectStatus = Approved, within time windowCollect resource
ReturnStatus = CollectedReturn resource
ReviewStatus = Returned, no review yetSubmit review
EditStatus = Pending/Approved, before start timeEdit purpose, participants (and date/time if Pending)
CancelStatus = Pending/ApprovedCancel booking
ExtendStatus = Approved/Collected/OverdueExtend booking duration

7.0 Butiran Tempahan Booking Details

URL: /bookings/{id}

7.1 Kad Status

Jadual 7.1: Paparan Kad Status

StatusPaparan
PendingKad kuning — "Tempahan anda sedang menunggu kelulusan admin"
ApprovedKad hijau — "Sedia untuk kutipan" dengan tarikh/masa kutipan
RejectedKad merah — "Tempahan anda tidak diluluskan"
CollectedKad biru — "Sila pulangkan mengikut masa"
OverdueKad merah — "Sila pulangkan segera!"
CompletedKad sian — "Tempahan selesai" (sumber tanpa kutipan fizikal, cth: bilik mesyuarat)
MissedKad oren — "Tempahan tamat tempoh — sumber tidak dikutip" (sumber memerlukan kutipan fizikal)
ReturnedKad ungu — "Berjaya dipulangkan"
CancelledKad kelabu — "Tempahan dibatalkan"

7.2 Maklumat Tempahan

  • Butiran sumber (nama, kategori, penerangan)
  • Tarikh mula dan tamat
  • Tujuan tempahan
  • Senarai peserta (jika ada)
  • Maklumat pelanjutan (jika telah dilanjutkan): tarikh tamat asal, siapa yang melanjutkan, dan bila

7.3 Sejarah Kutipan & Pemulangan

Jika sumber telah dikutip/dipulangkan, bahagian ini menunjukkan:

  • Tarikh/masa kutipan dan siapa yang mengutip
  • Item yang dikutip dan nota keadaan
  • Gambar kutipan
  • Tarikh/masa pemulangan dan status item (Returned / Missing)
  • Gambar pemulangan
Tempahan Kumpulan: Jika semua sumber dikutip dan dipulangkan pada masa yang sama, maklumat akan digabungkan dalam satu paparan ringkas (merged view).

URL: /bookings/{id}

7.1 Status Card

Table 7.1: Status Card Display

StatusDisplay
PendingYellow card — "Your booking is awaiting admin approval"
ApprovedGreen card — "Ready for collection" with collection date/time
RejectedRed card — "Your booking was not approved"
CollectedBlue card — "Please return on time"
OverdueRed card — "Please return immediately!"
CompletedCyan card — "Booking completed" (non-collection resources, e.g. meeting rooms)
MissedOrange card — "Booking expired — resource not collected" (collection-required resources)
ReturnedPurple card — "Successfully returned"
CancelledGrey card — "Booking cancelled"

7.2 Booking Information

  • Resource details (name, category, description)
  • Start and end dates
  • Booking purpose
  • Participant list (if any)
  • Extension info (if extended): original end date, who extended, and when

7.3 Collection & Return History

If the resource has been collected/returned, this section shows:

  • Collection date/time and who collected
  • Items collected and condition notes
  • Collection photos
  • Return date/time and item status (Returned / Missing)
  • Return photos
Group Bookings: If all resources are collected and returned at the same time, information is merged into a single compact view.

8.0 Kutipan Collection

8.1 Bila Boleh Kutip?

Anda boleh mengutip sumber apabila:

  • Status tempahan = Approved
  • Masa semasa ≥ tarikh/masa mula tempahan
  • Masa semasa ≤ tarikh/masa tamat tempahan

8.2 Proses Kutipan (Individu)

Jadual 8.1: Langkah Kutipan

LangkahTindakan
1Dari My Bookings atau Booking Details, klik butang "Collect"
2Modal kutipan akan muncul
3Tandakan checkbox sumber yang diterima
4Isi nota keadaan (pilihan)
5Muat naik sekurang-kurangnya 1 gambar keadaan sumber
6Klik "Confirm Collection"

Jadual 8.2: Medan Modal Kutipan

MedanKeteranganWajib?
Resource StatusCheckbox — tandakan jika sumber diterimaYa
Condition NotesNota keadaan sumber semasa kutipanTidak
PhotosGambar keadaan sumber (minimum 1)Ya
Nota: Gambar dimampatkan secara automatik (Canvas API, maks 1280px, 70% kualiti JPEG) sebelum dimuat naik.
Pintasan Muat Naik (Baru): Semasa modal Kutipan terbuka, anda boleh —
  • Klik pada medan untuk memilih fail dari peranti
  • Tampal tangkapan skrin secara terus menggunakan Ctrl + V
  • Seret & Lepas (drag & drop) gambar dari desktop atau penjelajah fail terus ke dalam modal

8.3 Kutipan Kumpulan

Untuk tempahan kumpulan:

  • Klik butang "Collect" pada kumpulan
  • Modal menunjukkan semua sumber dalam kumpulan dengan checkbox
  • Select All untuk kutip semua sekali gus
  • Isi nota keadaan dan muat naik gambar
  • Klik "Confirm Collection"

8.1 When Can You Collect?

You can collect a resource when:

  • Booking status = Approved
  • Current time ≥ booking start date/time
  • Current time ≤ booking end date/time

8.2 Collection Process (Individual)

Table 8.1: Collection Steps

StepAction
1From My Bookings or Booking Details, click the "Collect" button
2A collection modal will appear
3Check the checkbox for the received resource
4Fill in condition notes (optional)
5Upload at least 1 photo of the resource condition
6Click "Confirm Collection"

Table 8.2: Collection Modal Fields

FieldDescriptionRequired?
Resource StatusCheckbox — check if resource is receivedYes
Condition NotesNotes on resource condition at collectionNo
PhotosPhotos of resource condition (minimum 1)Yes
Note: Photos are automatically compressed (Canvas API, max 1280px, 70% JPEG quality) before upload.
Upload Shortcuts (New): While the Collection modal is open, you can —
  • Click the field to browse files on your device
  • Paste a screenshot directly with Ctrl + V
  • Drag & Drop images from your desktop or file explorer into the modal

8.3 Group Collection

For group bookings:

  • Click the "Collect" button on the group
  • Modal shows all resources in the group with checkboxes
  • Select All to collect all at once
  • Fill in condition notes and upload photos
  • Click "Confirm Collection"

9.0 Pemulangan Return

9.1 Bila Boleh Pulang?

  • Status tempahan = Collected
  • Rekod kutipan wujud
Nota: Anda boleh memulangkan sebelum tarikh tamat — sumber akan menjadi tersedia untuk orang lain.

9.2 Proses Pemulangan (Individu)

Jadual 9.1: Langkah Pemulangan

LangkahTindakan
1Klik butang "Return" dari My Bookings atau Booking Details
2Modal pemulangan muncul
3Tetapkan status setiap sumber (Returned / Missing)
4Isi nota pemulangan (wajib jika ada item Missing)
5Muat naik sekurang-kurangnya 1 gambar
6Klik "Confirm Return"

Jadual 9.2: Status Toggle Pemulangan

StatusKeterangan
ReturnedSumber dipulangkan — biarkan checkbox ditandakan
MissingSumber hilang — nyahtanda checkbox

9.2.1 Susunan Pengesahan

  • 1. Nota wajib dahulu (jika ada item Missing)
  • 2. Gambar wajib selepas itu
Pintasan Muat Naik (Baru): Semasa modal Pemulangan terbuka, anda boleh —
  • Klik pada medan untuk memilih fail
  • Tampal tangkapan skrin dengan Ctrl + V
  • Seret & Lepas gambar terus ke dalam modal

9.3 Pemulangan Kumpulan

  • Klik butang "Return" pada kumpulan
  • Modal menunjukkan semua sumber dengan checkbox dan status
  • Select All untuk tandakan/nyahtandakan semua
  • Isi Return Notes (wajib jika ada yang Missing)
  • Muat naik gambar dan klik "Confirm Return"
Nota: "Toggle each resource status. Unchecked items will be marked as Missing."

9.4 Kesan Item Missing

Jika ada sumber ditandakan sebagai Missing:

  • Sumber ditetapkan sebagai tidak tersedia (is_available = false)
  • Keadaan ditukar kepada "under maintenance"
  • Admin diberitahu melalui notifikasi
  • Nota penyelenggaraan direkodkan secara automatik

9.1 When Can You Return?

  • Booking status = Collected
  • Collection record exists
Note: You can return before the end date — the resource will become available for others.

9.2 Return Process (Individual)

Table 9.1: Return Steps

StepAction
1Click the "Return" button from My Bookings or Booking Details
2A return modal will appear
3Set the status for each resource (Returned / Missing)
4Fill in return notes (mandatory if any item is Missing)
5Upload at least 1 photo
6Click "Confirm Return"

Table 9.2: Return Status Toggle

StatusDescription
ReturnedResource returned — leave checkbox checked
MissingResource missing — uncheck the checkbox

9.2.1 Validation Order

  • 1. Mandatory notes first (if any item is Missing)
  • 2. Mandatory photo after that
Upload Shortcuts (New): While the Return modal is open, you can —
  • Click the field to browse files
  • Paste a screenshot with Ctrl + V
  • Drag & Drop images straight into the modal

9.3 Group Return

  • Click the "Return" button on the group
  • Modal shows all resources with checkboxes and status
  • Select All to check/uncheck all at once
  • Fill in Return Notes (mandatory if any item is Missing)
  • Upload photos and click "Confirm Return"
Note: "Toggle each resource status. Unchecked items will be marked as Missing."

9.4 Missing Item Impact

If any resource is marked as Missing:

  • Resource is set to unavailable (is_available = false)
  • Condition is changed to "under maintenance"
  • Admin is notified via notification
  • Maintenance notes are recorded automatically

10.0 Ulasan Review

10.1 Bila Boleh Beri Ulasan?

  • Status tempahan = Returned
  • Belum pernah memberi ulasan untuk tempahan ini

10.2 Proses Beri Ulasan

Jadual 10.1: Langkah Ulasan

LangkahTindakan
1Klik butang "Review" dari My Bookings atau Booking Details
2Modal ulasan muncul
3Pilih penilaian bintang (1–5)
4Tulis komen (pilihan)
5Klik "Submit Review"

Jadual 10.2: Medan Modal Ulasan

MedanKeteranganWajib?
RatingPenilaian bintang 1–5Ya
CommentKomen terperinciTidak

10.1 When Can You Review?

  • Booking status = Returned
  • You have not yet submitted a review for this booking

10.2 Review Process

Table 10.1: Review Steps

StepAction
1Click the "Review" button from My Bookings or Booking Details
2A review modal will appear
3Select a star rating (1–5)
4Write a comment (optional)
5Click "Submit Review"

Table 10.2: Review Modal Fields

FieldDescriptionRequired?
RatingStar rating 1–5Yes
CommentDetailed commentNo

11.0 Pembatalan Cancellation

11.1 Bila Boleh Batal?

  • Status = Pending atau Approved
  • Anda ialah pemilik tempahan
  • Masa semasa ≤ tarikh/masa tamat

11.2 Proses Pembatalan

Jadual 11.1: Langkah Pembatalan

LangkahTindakan
1Klik butang "Cancel" dari My Bookings atau Booking Details
2Modal pengesahan muncul (nama sumber, nombor tempahan)
3Klik "Yes, Cancel" untuk mengesahkan
4Status tempahan bertukar kepada CANCELLED
Tempahan Kumpulan: Anda boleh membatalkan tempahan individu dalam kumpulan, atau membatalkan keseluruhan kumpulan.

11.1 When Can You Cancel?

  • Status = Pending or Approved
  • You are the booking owner
  • Current time ≤ end date/time

11.2 Cancellation Process

Table 11.1: Cancellation Steps

StepAction
1Click the "Cancel" button from My Bookings or Booking Details
2A confirmation modal appears (resource name, booking number)
3Click "Yes, Cancel" to confirm
4Booking status changes to CANCELLED
Group Bookings: You can cancel individual bookings within a group, or cancel the entire group.

11.5 Sunting Tempahan Edit Booking

Anda boleh menyunting tempahan sendiri sebelum tarikh/masa mula, tanpa perlu membatalkan dan menempah semula. Medan yang boleh diubah bergantung kepada status tempahan.

11.5.1 Bila Boleh Sunting?

  • Status = Pending atau Approved
  • Anda ialah pemilik tempahan
  • Tempahan belum bermula (masa semasa < tarikh/masa mula)
Penting: Setelah tempahan bermula (status Collected), atau telah Returned/Cancelled/Rejected, tempahan tidak lagi boleh disunting.

11.5.2 Apa Yang Boleh Disunting?

Jadual 11.5.1: Medan Boleh Sunting Mengikut Status

MedanPendingApproved
Tarikh & Masa Mula/Tamat✓ Ya✓ Ya
Tujuan / Purpose✓ Ya✓ Ya
Senarai Peserta (nama)✓ Ya✓ Ya
Peserta Berdaftar (user)✓ Ya✓ Ya
Sumber (resource)✗ Tidak✗ Tidak
Syarat tarikh/masa baru: Mesti pada masa hadapan (selepas masa semasa). Form akan secara automatik menyekat tarikh/masa yang sudah lepas, dan sistem juga akan menyemak konflik dengan tempahan lain pada sumber yang sama.

11.5.3 Proses Sunting Tempahan

Jadual 11.5.2: Langkah Sunting Tempahan

LangkahTindakan
1Dari My Bookings atau Booking Details, klik butang "Edit" (ikon pensel berwarna kuning)
2Borang sunting dipaparkan dengan nilai semasa
3Ubah medan yang dibenarkan (lihat Jadual 11.5.1)
4Klik "Save Changes"
5Sistem mengesahkan: deadline tempahan, konflik sumber, dan masa tamat > masa mula
6Anda dialihkan ke halaman Booking Details dengan mesej kejayaan
Bantuan UI borang: Pemilih tarikh hanya membenarkan tarikh hari ini ke hadapan; jam yang sudah lepas pada hari ini akan dikelabukan dalam senarai "Start Time". Selepas anda memilih masa mula, jam "End Time" sebelum masa mula juga akan dikelabukan.

11.5.4 Tempahan Kumpulan

Untuk tempahan kumpulan (group booking), klik "Edit Group" dari halaman Booking Details. Borang sunting kumpulan membolehkan:

  • Sunting tujuan dan senarai peserta sekali untuk semua tempahan dalam kumpulan
  • Sunting tarikh/masa berasingan untuk setiap tempahan yang masih boleh disunting (belum bermula)
  • Tempahan yang sudah bermula, dipulangkan, dibatalkan, atau ditolak akan dilangkau (skipped) semasa simpan

11.5.5 Notifikasi Selepas Sunting

  • Anda (pemilik): Menerima notifikasi pengesahan bahawa tempahan telah dikemaskini, termasuk senarai sumber dan jadual penuh untuk tempahan kumpulan
  • Admin: Menerima notifikasi untuk semakan semula (re-review) jika tempahan masih dalam status Pending
  • Peserta baru ditambah: Menerima notifikasi "You've Been Added as a Participant" dengan butiran sumber dan jadual
  • Peserta dibuang: Menerima notifikasi "Removed from Booking"
  • Peserta sedia ada (yang masih kekal): Menerima notifikasi "Booking You're Participating In Updated" hanya jika tarikh/masa atau tujuan berubah (perubahan senarai peserta sahaja tidak menghantar notifikasi ini)
Notifikasi dihantar melalui in-app, e-mel (jika SMTP aktif), dan WhatsApp (jika Wabot aktif).

11.5.6 Ralat Biasa

Jadual 11.5.3: Ralat Sunting Tempahan

RalatPunca
"This booking can no longer be edited"Tempahan sudah bermula, telah dipulangkan, dibatalkan, atau ditolak
"End time must be after start time"Tarikh/masa tamat lebih awal atau sama dengan masa mula
"Start date/time must be in the future"Tarikh/masa mula baru sudah lepas atau sama dengan masa semasa
"Selected time conflicts with another booking"Tempoh baru bertindih dengan tempahan lain pada sumber yang sama
Ralat deadline tempahanTarikh mula baru terlalu hampir — tidak memenuhi tempoh notis minima

You can edit your own booking before its start date/time without cancelling and rebooking. Editable fields depend on the booking's current status.

11.5.1 When Can You Edit?

  • Status = Pending or Approved
  • You are the booking owner
  • Booking has not started yet (current time < start date/time)
Important: Once a booking starts (status Collected), or has been Returned/Cancelled/Rejected, it can no longer be edited.

11.5.2 What Can Be Edited?

Table 11.5.1: Editable Fields by Status

FieldPendingApproved
Start & End Date/Time✓ Yes✓ Yes
Purpose✓ Yes✓ Yes
Participant List (names)✓ Yes✓ Yes
Registered Participants (users)✓ Yes✓ Yes
Resource✗ No✗ No
New date/time must be: in the future (after the current moment). The form blocks past dates/times automatically, and the system also checks for conflicts with other bookings on the same resource.

11.5.3 Edit Process

Table 11.5.2: Edit Booking Steps

StepAction
1From My Bookings or Booking Details, click the "Edit" button (yellow pencil icon)
2The edit form is displayed with current values
3Modify the allowed fields (see Table 11.5.1)
4Click "Save Changes"
5System validates: booking deadline, resource conflicts, and end > start
6You are redirected to Booking Details with a success message
Form UI helpers: The date picker only allows today onwards; past hours on today are auto-disabled in the "Start Time" dropdown. Once you pick a start time, "End Time" hours before it are also disabled.

11.5.4 Group Bookings

For group bookings, click "Edit Group" from Booking Details. The group edit form lets you:

  • Edit purpose and participant list once for all bookings in the group
  • Edit date/time separately for each booking that is still editable (not yet started)
  • Bookings that have already started, been returned, cancelled, or rejected are skipped on save

11.5.5 Notifications After Edit

  • You (owner): Receive a confirmation notification, including the resource list and full schedule for group bookings
  • Admins: Receive a re-review notification if the booking is still Pending
  • Newly added participants: Receive a "You've Been Added as a Participant" notification with full resource and schedule details
  • Removed participants: Receive a "Removed from Booking" notification
  • Existing (staying) participants: Receive a "Booking You're Participating In Updated" notification only when date/time or purpose changes (a participant-only change does not trigger this)
Notifications are delivered via in-app, email (if SMTP enabled), and WhatsApp (if Wabot enabled).

11.5.6 Common Errors

Table 11.5.3: Edit Booking Errors

ErrorCause
"This booking can no longer be edited"Booking has started, been returned, cancelled, or rejected
"End time must be after start time"End date/time is earlier than or equal to start time
"Start date/time must be in the future"New start date/time is in the past or equal to current time
"Selected time conflicts with another booking"New period overlaps another booking on the same resource
Booking deadline errorNew start date is too soon — minimum-notice rule not met

12.0 Pelanjutan Tempahan Extend Booking

Fungsi ini membolehkan anda melanjutkan tempoh tempahan sedia ada tanpa perlu membuat tempahan baru. Sistem akan menyemak ketersediaan sumber secara automatik.

12.1 Bila Boleh Extend?

  • Status = Approved atau Collected (termasuk Overdue)
  • Anda ialah pemilik tempahan
  • Tarikh/masa tamat baru mesti lebih lewat daripada tarikh/masa tamat semasa
  • Sumber mesti tersedia untuk tempoh lanjutan

12.2 Proses Pelanjutan (Individu)

Jadual 12.1: Langkah Pelanjutan Tempahan Individu

LangkahTindakan
1Dari My Bookings atau Booking Details, klik butang Extend (ikon jam)
2Modal muncul menunjukkan tarikh/masa tamat semasa
3Pilih tarikh tamat baru dan masa tamat baru
4Klik "Extend Booking" untuk mengesahkan
5Sistem menyemak ketersediaan dan melanjutkan tempahan

12.3 Pelanjutan Tempahan Kumpulan

Untuk tempahan kumpulan, anda boleh memilih mana-mana tempahan dalam kumpulan untuk dilanjutkan:

Jadual 12.2: Langkah Pelanjutan Tempahan Kumpulan

LangkahTindakan
1Klik butang Extend pada baris kumpulan
2Modal muncul dengan senarai tempahan yang boleh dilanjutkan
3Pilih tempahan yang ingin dilanjutkan (guna checkbox, boleh pilih semua)
4Pilih tarikh tamat baru dan masa tamat baru
5Klik "Extend Selected" untuk mengesahkan
Nota: Selepas pelanjutan, badge Extended akan dipaparkan bersebelahan status tempahan. Tarikh tamat asal juga disimpan untuk rujukan.

This feature allows you to extend the duration of an existing booking without creating a new one. The system will automatically check resource availability.

12.1 When Can You Extend?

  • Status = Approved or Collected (including Overdue)
  • You are the booking owner
  • New end date/time must be later than the current end date/time
  • Resource must be available for the extended period

12.2 Individual Extend Process

Table 12.1: Individual Extend Steps

StepAction
1From My Bookings or Booking Details, click the Extend button (clock icon)
2A modal appears showing the current end date/time
3Select a new end date and new end time
4Click "Extend Booking" to confirm
5System checks availability and extends the booking

12.3 Group Booking Extension

For group bookings, you can select which bookings within the group to extend:

Table 12.2: Group Extend Steps

StepAction
1Click the Extend button on the group row
2A modal appears listing all extendable bookings in the group
3Select bookings to extend (use checkboxes, select all available)
4Select a new end date and new end time
5Click "Extend Selected" to confirm
Note: After extension, an Extended badge will be displayed next to the booking status. The original end date is also saved for reference.

13.0 Permohonan Pembelian Purchase Requests

Fungsi ini membolehkan kakitangan menghantar permohonan untuk membeli item. Pihak yang meluluskan permohonan bergantung kepada jumlah keseluruhan (Grand Total) — Account akan meluluskan permohonan bernilai kecil, manakala Admin yang dilantik akan meluluskan permohonan bernilai besar.

13.1 Senarai Permohonan Saya

URL: /purchase-requests

Halaman ini memaparkan semua permohonan pembelian anda dengan penapis berikut:

Jadual 13.1: Penapis Permohonan

PenapisKeterangan
SearchCari mengikut nombor permohonan, nama vendor, item
StatusTapis mengikut status permohonan
PriorityTapis mengikut keutamaan

13.2 Cipta Permohonan Baru

URL: /purchase-requests/create

Borang permohonan terdiri daripada 5 bahagian:

Bahagian 1: Maklumat Permohonan (auto-isi)

  • Order No (auto-jana: PR-YYYYMMDD-XXXXXX)
  • Tarikh, Nama Pemohon, Jabatan (dari profil pengguna)

Bahagian 2: Maklumat Vendor / Syarikat

Jadual 13.2a: Medan Vendor

MedanKeteranganWajib?
Vendor / Company NameNama vendor atau syarikatTidak
AddressAlamat termasuk bandar, poskodTidak
TelephoneNombor telefon vendorTidak
TIN NoNombor Pengenalan CukaiTidak
EmailEmel vendorTidak

Bahagian 3: Item Yang Ingin Dibeli

Jadual dinamik — boleh tambah/buang baris item.

Jadual 13.2b: Medan Item

MedanKeteranganWajib?
QuantityBilangan unitYa
Item NumberSKU / Kod itemTidak
Item To Be PurchasedPenerangan itemYa
Unit Price (RM)Harga seunitYa
Discount (%)Diskaun dalam peratus (0-100)Tidak

Total per item dikira automatik: Qty × Unit Price × (1 - Discount/100)

Shipping Fees — yuran penghantaran (jika ada). Grand Total = Subtotal + Shipping Fees.

Bahagian 4: Nota / Catatan

  • Priority — Keutamaan: Low, Medium, High, Urgent
  • Notes / Remarks — Justifikasi untuk pembelian

Bahagian 5: Lampiran

  • Muat naik sebut harga, PO, atau dokumen berkaitan (maks 5 fail, 10MB setiap satu)
  • Format: JPG, PNG, WebP, PDF, DOC, DOCX
  • Amaran akan dipaparkan jika Grand Total mencapai RM 1,000 — sebut harga/PO menjadi wajib
  • Pratonton gambar untuk fail imej, ikon fail untuk dokumen
  • Baru: Anda boleh menampal (Ctrl+V) tangkapan skrin atau seret & lepas fail dari desktop terus ke dalam borang

13.3 Status Permohonan

Jadual 13.3: Senarai Status Permohonan

StatusWarnaKeterangan
SubmittedKuningPermohonan dihantar, menunggu kelulusan Account atau Admin (ikut jumlah)
ApprovedHijauDiluluskan
RejectedMerahDitolak (dengan sebab)
Pending PurchaseOrenDiluluskan, menunggu pembelian oleh Account
PurchasedBiruItem telah dibeli

13.4 Aliran Kelulusan (Amount-based Routing)

Pihak yang meluluskan permohonan anda bergantung kepada Grand Total berbanding ambang kelulusan semasa (RM 1,000):

Jadual 13.4: Laluan Kelulusan Mengikut Jumlah

Jumlah (Grand Total)Siapa Meluluskan?Aliran
< RM 1,000AccountAnda hantar → Account luluskan/tolak → Account proses pembelian
≥ RM 1,000Admin yang dilantikAnda hantar → Admin dilantik luluskan/tolak → Account proses pembelian
Nota: Selepas diluluskan, Account akan mengisi butiran penghantaran/pembayaran dan mengemaskini status kepada Pending Purchase atau Purchased.

13.5 Butiran Permohonan

Klik pada permohonan untuk melihat butiran penuh termasuk maklumat vendor, senarai item, lampiran, dan komen semakan.

13.6 Ubah Suai Permohonan (Baru)

URL: /purchase-requests/{id}/edit

Anda kini boleh mengubah suai permohonan pembelian sendiri dalam keadaan tertentu sahaja.

Jadual 13.6: Syarat Ubah Suai

SyaratKeterangan
PemilikHanya pemohon asal boleh ubah permohonan sendiri
StatusStatus mesti Submitted sahaja. Setelah Account/Admin meluluskan atau menolak, ubah suai tidak lagi dibenarkan

Cara Ubah Suai:

  1. Dari senarai My Requests, klik ikon pensel (Edit) pada permohonan berstatus Submitted
  2. Borang dimuatkan dengan nilai sedia ada (vendor, item, lampiran)
  3. Kemaskini mana-mana medan. Anda boleh buang lampiran lama atau tambah lampiran baru (termasuk paste/drag-drop)
  4. Klik "Update Request" untuk simpan perubahan
Jejak Audit: Setiap ubah suai direkodkan — sistem menyimpan edit_count, edited_at, dan edited_by. Account & Admin akan menerima notifikasi bahawa permohonan telah dikemaskini.
Amaran: Jika ikon Edit tidak dipaparkan, ini bermakna permohonan sudah disemak atau diluluskan — anda tidak boleh ubah lagi. Hubungi Account/Admin jika perubahan perlu dibuat.

This feature allows staff to submit requests to purchase items. The approver is determined by the Grand Total of the request — Account approves smaller requests, while an assigned Admin approves larger ones.

13.1 My Request List

URL: /purchase-requests

This page displays all your purchase requests with the following filters:

Table 13.1: Request Filters

FilterDescription
SearchSearch by request number, vendor name, items
StatusFilter by request status
PriorityFilter by priority level

13.2 Create New Request

URL: /purchase-requests/create

The form consists of 5 sections:

Section 1: Request Information (auto-filled)

  • Order No (auto-generated: PR-YYYYMMDD-XXXXXX)
  • Date, Requisition By, Department (from user profile)

Section 2: Vendor / Company Information

Table 13.2a: Vendor Fields

FieldDescriptionRequired?
Vendor / Company NameName of vendor or companyNo
AddressFull address including city, postcodeNo
TelephoneVendor phone numberNo
TIN NoTax Identification NumberNo
EmailVendor emailNo

Section 3: Items To Be Purchased

Dynamic table — add/remove item rows.

Table 13.2b: Item Fields

FieldDescriptionRequired?
QuantityNumber of unitsYes
Item NumberSKU / Item codeNo
Item To Be PurchasedItem descriptionYes
Unit Price (RM)Price per unitYes
Discount (%)Discount in percentage (0-100)No

Total per item is auto-calculated: Qty × Unit Price × (1 - Discount/100)

Shipping Fees — delivery charges (if applicable). Grand Total = Subtotal + Shipping Fees.

Section 4: Notes / Remarks

  • Priority — Low, Medium, High, Urgent
  • Notes / Remarks — Justification for purchases

Section 5: Attachments

  • Upload quotation, PO, or related documents (max 5 files, 10MB each)
  • Formats: JPG, PNG, WebP, PDF, DOC, DOCX
  • Warning alert when the Grand Total reaches RM 1,000 — quotation/PO becomes compulsory
  • Image preview for uploaded images, file icon for documents
  • New: You can paste (Ctrl+V) screenshots or drag & drop files from your desktop directly into the form

13.3 Request Statuses

Table 13.3: Request Status List

StatusColourDescription
SubmittedYellowRequest submitted, awaiting Account or Admin approval (based on amount)
ApprovedGreenRequest approved
RejectedRedRejected (with reason)
Pending PurchaseOrangeApproved, Account is processing the purchase
PurchasedBlueItem has been purchased

13.4 Approval Flow (Amount-based Routing)

The approver is determined by comparing the Grand Total against the current approval threshold (RM 1,000):

Table 13.4: Approval Path by Amount

Amount (Grand Total)ApproverFlow
< RM 1,000AccountYou submit → Account approves/rejects → Account processes purchase
≥ RM 1,000Assigned AdminYou submit → Assigned Admin approves/rejects → Account processes purchase
Note: After approval, Account fills in shipping/payment details and updates the status to Pending Purchase or Purchased.

13.5 Request Details

Click on a request to view full details including vendor info, item list, attachments, and review comments.

13.6 Edit a Request (New)

URL: /purchase-requests/{id}/edit

You can now edit your own purchase request, but only under specific conditions.

Table 13.6: Edit Conditions

ConditionDescription
OwnerOnly the original requester can edit their own request
StatusStatus must be Submitted. Once Account/Admin approves or rejects, editing is no longer allowed

How to Edit:

  1. From My Requests, click the pencil (Edit) icon on a request with Submitted status
  2. The form loads with your existing values (vendor, items, attachments)
  3. Modify any field. You can remove existing attachments or add new ones (including paste / drag & drop)
  4. Click "Update Request" to save
Audit Trail: Every edit is tracked — the system records edit_count, edited_at, and edited_by. Account & Admin receive a notification that the request has been updated.
Warning: If the Edit icon does not appear, the request has already been reviewed or approved — you cannot edit it anymore. Contact Account/Admin if changes are still needed.

13.5 Maklum Balas (Feedback) Feedback

Sistem maklum balas membolehkan anda menghantar cadangan penambahbaikan, laporan pepijat, permintaan ciri baru, atau maklum balas umum kepada pentadbir.

13.5.1 Hantar Maklum Balas

  1. Pergi ke Feedback dari menu navigasi atau sidebar
  2. Klik "New Feedback"
  3. Isi borang:

    Jadual 13.5.1: Medan Borang Maklum Balas

    MedanKeteranganWajib?
    CategoryGeneral, Improvement, Bug Report, Feature RequestYa
    TitleTajuk ringkasYa
    DescriptionPenerangan terperinciYa
    ImagesSehingga 3 gambar (JPG/PNG/WebP, maks 5MB). Baru: Tampal (Ctrl+V) atau seret & lepas disokongTidak
  4. Klik "Submit Feedback"

13.5.2 Lihat & Balas

  • Klik pada maklum balas untuk melihat butiran penuh
  • Tulis balasan di ruangan "Write a Reply" dan klik "Send Reply"
  • Admin akan diberitahu melalui notifikasi, e-mel, dan WhatsApp

13.5.3 Status Maklum Balas

Jadual 13.5.3: Status Maklum Balas

StatusKeterangan
SubmittedBaru dihantar
In ReviewSedang disemak
In ProgressSedang dilaksanakan
CompletedSelesai
RejectedTidak diterima

13.5.4 Maklum Balas Awam

Anda juga boleh menghantar maklum balas melalui halaman awam (/) → tab "Feedback". Masukkan 4 digit terakhir IC untuk pengesahan.

The feedback system allows you to submit improvement suggestions, bug reports, feature requests, or general feedback to administrators.

13.5.1 Submit Feedback

  1. Go to Feedback from the navigation menu or sidebar
  2. Click "New Feedback"
  3. Fill in the form:

    Table 13.5.1: Feedback Form Fields

    FieldDescriptionRequired?
    CategoryGeneral, Improvement, Bug Report, Feature RequestYes
    TitleBrief summaryYes
    DescriptionDetailed descriptionYes
    ImagesUp to 3 images (JPG/PNG/WebP, max 5MB each). New: Paste (Ctrl+V) or drag & drop supportedNo
  4. Click "Submit Feedback"

13.5.2 View & Reply

  • Click on a feedback to view full details
  • Write a reply in the "Write a Reply" section and click "Send Reply"
  • Admin will be notified via notification, email, and WhatsApp

13.5.3 Feedback Status

Table 13.5.3: Feedback Status

StatusDescription
SubmittedNewly submitted
In ReviewUnder review
In ProgressBeing implemented
CompletedDone
RejectedNot accepted

13.5.4 Public Feedback

You can also submit feedback from the public page (/) → "Feedback" tab. Enter your IC last 4 digits for verification.

14.0 Profil Profile

URL: /profile

13.1 Maklumat Yang Boleh Dikemaskini

Jadual 13.1: Medan Profil

MedanKeterangan
Profile PhotoMuat naik gambar (maks 5MB, format JPG/PNG/GIF)
Full NameNama penuh
IC NumberNombor IC (4 digit terakhir)
EmailAlamat e-mel
Phone NumberNombor telefon
DepartmentJabatan (pilih dari senarai)
Nota: Peranan (Role) dipaparkan tetapi tidak boleh ditukar oleh anda.

13.2 Tukar Kata Laluan

Jadual 13.2: Medan Tukar Kata Laluan

MedanKeterangan
Current PasswordKata laluan semasa
New PasswordKata laluan baru (minimum 8 aksara)
Confirm New PasswordUlang kata laluan baru

Klik "Update Profile" untuk menyimpan. Biarkan medan kata laluan kosong jika tidak mahu menukar.

URL: /profile

13.1 Editable Fields

Table 13.1: Profile Fields

FieldDescription
Profile PhotoUpload photo (max 5MB, JPG/PNG/GIF)
Full NameFull name
IC NumberIC number (last 4 digits)
EmailEmail address
Phone NumberPhone number
DepartmentDepartment (select from list)
Note: Your Role is displayed but cannot be changed by you.

13.2 Change Password

Table 13.2: Password Change Fields

FieldDescription
Current PasswordYour current password
New PasswordNew password (minimum 8 characters)
Confirm New PasswordRe-enter new password

Click "Update Profile" to save. Leave the password fields empty if you do not wish to change your password.

15.0 Notifikasi Notifications

URL: /notifications

Staff menerima notifikasi melalui e-mel dan/atau WhatsApp bergantung kepada konfigurasi yang ditetapkan oleh Superadmin. Berikut ialah senarai lengkap jenis notifikasi mengikut kategori:

15.1 Jenis Notifikasi

Jadual 15.1: Notifikasi Tempahan Individu

JenisKeterangan
New Booking CreatedTempahan baru telah dicipta
Booking Submitted for ApprovalTempahan dihantar untuk kelulusan admin
Booking ApprovedTempahan anda telah diluluskan
Booking RejectedTempahan anda telah ditolak
Booking CancelledTempahan telah dibatalkan
Resource CollectedSumber telah dikutip
Resource ReturnedSumber telah dipulangkan
Booking ReminderPeringatan 24 jam sebelum tempahan
Collection ReminderPeringatan untuk mengutip sumber apabila tempahan bermula
Return ReminderPeringatan 1 jam sebelum masa pemulangan
Overdue ReturnSumber lewat dipulangkan

Jadual 15.2: Notifikasi Tempahan Kumpulan

JenisKeterangan
Group Booking CreatedTempahan kumpulan baru dicipta
Group Booking ApprovedTempahan kumpulan diluluskan
Group Booking RejectedTempahan kumpulan ditolak
Group Booking CancelledTempahan kumpulan dibatalkan
Group Resource CollectedSumber kumpulan dikutip
Group Resource ReturnedSumber kumpulan dipulangkan

Jadual 15.3: Notifikasi Permintaan Pembelian

JenisKeterangan
Purchase Request SubmittedPermintaan pembelian baru dihantar
Purchase Request EditedPemohon telah mengubah suai permohonan berstatus Submitted (Admin & Account dimaklumkan)
Purchase Request ApprovedPermintaan pembelian diluluskan oleh Admin
Purchase Request RejectedPermintaan pembelian ditolak
Purchase Request Pending PurchasePermintaan pembelian sedang diproses untuk pembelian
Purchase Request PurchasedItem permintaan pembelian telah dibeli

Jadual 15.4: Notifikasi Lain

JenisKeterangan
Review SubmittedUlasan baru diberikan
Nota: Setiap jenis notifikasi boleh diaktifkan atau dinyahaktifkan oleh Superadmin melalui halaman Notification Configuration. Saluran penghantaran (E-mel / WhatsApp) juga dikonfigurasi di sana.

15.2 Urus Notifikasi

  • Klik pada notifikasi untuk membacanya
  • Klik "Mark as Read" untuk menandakan sebagai dibaca
  • Klik "Mark All as Read" untuk menandakan semua sebagai dibaca

URL: /notifications

Staff receive notifications via email and/or WhatsApp depending on the configuration set by the Superadmin. Below is the full list of notification types by category:

15.1 Notification Types

Table 15.1: Individual Booking Notifications

TypeDescription
New Booking CreatedA new booking has been created
Booking Submitted for ApprovalBooking submitted for admin approval
Booking ApprovedYour booking has been approved
Booking RejectedYour booking has been rejected
Booking CancelledA booking has been cancelled
Resource CollectedA resource has been collected
Resource ReturnedA resource has been returned
Booking ReminderReminder sent 24 hours before booking
Collection ReminderReminder to collect resource when booking starts
Return ReminderReminder sent 1 hour before return time
Overdue ReturnResource return is overdue

Table 15.2: Group Booking Notifications

TypeDescription
Group Booking CreatedA new group booking has been created
Group Booking ApprovedA group booking has been approved
Group Booking RejectedA group booking has been rejected
Group Booking CancelledA group booking has been cancelled
Group Resource CollectedGroup resources have been collected
Group Resource ReturnedGroup resources have been returned

Table 15.3: Purchase Request Notifications

TypeDescription
Purchase Request SubmittedA new purchase request has been submitted
Purchase Request EditedThe requester edited a Submitted request (Admin & Account are notified)
Purchase Request ApprovedA purchase request has been approved by Admin
Purchase Request RejectedA purchase request has been rejected
Purchase Request Pending PurchaseA purchase request is being processed for purchase
Purchase Request PurchasedA purchase request item has been purchased

Table 15.4: Other Notifications

TypeDescription
Review SubmittedA new review has been submitted
Note: Each notification type can be enabled or disabled by the Superadmin via the Notification Configuration page. Delivery channels (Email / WhatsApp) are also configured there.

15.2 Managing Notifications

  • Click on a notification to read it
  • Click "Mark as Read" to mark as read
  • Click "Mark All as Read" to mark all as read

16.0 Eksport & Cetak Export & Print

16.1 Eksport Tempahan

Jadual 16.1: Langkah Eksport

LangkahTindakan
1Pergi ke My Bookings (/bookings)
2Klik butang "Export"
3Fail Excel akan dimuat turun dengan senarai tempahan anda

Jadual 16.2: Lajur Fail Eksport

LajurKeterangan
NoNombor baris
Group NumberNombor kumpulan (jika tempahan kumpulan)
Booking NumberNombor tempahan
ResourceNama sumber
Start DateTarikh/masa mula
End DateTarikh/masa tamat
Original End DateTarikh/masa tamat asal sebelum pelanjutan (jika ada)
Extended ByNama dan tarikh siapa yang melanjutkan (jika ada)
PurposeTujuan tempahan
StatusStatus tempahan (termasuk Overdue)
Created AtTarikh tempahan dibuat

16.2 Cetak Butiran

Jadual 16.3: Langkah Cetak

LangkahTindakan
1Pergi ke Booking Details (/bookings/{id})
2Klik butang "Print"
3Tetingkap cetak pelayar akan muncul
4Pilih pencetak dan klik "Print"

16.1 Export Bookings

Table 16.1: Export Steps

StepAction
1Go to My Bookings (/bookings)
2Click the "Export" button
3An Excel file will be downloaded with your booking list

Table 16.2: Export File Columns

ColumnDescription
NoRow number
Group NumberGroup number (if group booking)
Booking NumberBooking number
ResourceResource name
Start DateStart date/time
End DateEnd date/time
Original End DateOriginal end date/time before extension (if extended)
Extended ByName and date of who extended (if extended)
PurposeBooking purpose
StatusBooking status (including Overdue)
Created AtBooking creation date

16.2 Print Details

Table 16.3: Print Steps

StepAction
1Go to Booking Details (/bookings/{id})
2Click the "Print" button
3The browser print dialog will appear
4Select your printer and click "Print"

17.0 Halaman Awam Public Page

Selain menggunakan sistem melalui log masuk, anda juga boleh mengakses beberapa fungsi melalui halaman awam (/) — tanpa perlu log masuk.

17.1 Halaman Utama

URL: /

Halaman utama memaparkan:

  • Logo dan nama aplikasi RD BookHub
  • Butang "Sign In" dan "Register here"

Halaman awam mempunyai 3 tab utama:

TabKeterangan
CalendarKalendar interaktif memaparkan semua tempahan mengikut bulan
Book ResourcesLayari dan tempah sumber, serta akses fungsi Collect, Return, Extend dan Cancel
User ManualManual pengguna lengkap untuk rujukan

17.2 Layari Sumber Awam

Fungsi layari sumber di halaman awam serupa dengan halaman /resources selepas log masuk.

Jadual 17.1: Penapis Sumber Awam

PenapisKeterangan
Search ResourceCari mengikut nama sumber (live search)
CategoryTapis mengikut kategori
Start Date / End DateTarikh mula dan tamat
Start Time / End TimeMasa mula dan tamat

Jadual 17.2: Petunjuk Status Penapis

BadgeKeterangan
Filters applied...Penapis telah digunakan — sumber tersedia ditunjukkan dahulu
Apply filters...Sila gunakan penapis untuk melihat ketersediaan

17.3 Tempahan Melalui Halaman Awam

Anda boleh membuat tempahan tanpa log masuk melalui halaman awam.

Jadual 17.3: Langkah Tempahan Awam

LangkahTindakan
1Di halaman awam, tetapkan tarikh dan masa menggunakan penapis (Start Date, Start Time, End Date, End Time) dan klik "Apply Filters"
2Sistem akan menunjukkan sumber yang Available dan Unavailable untuk masa tersebut
3Klik butang "Book" pada sumber yang tersedia
4Borang tempahan muncul dengan tarikh/masa dipra-isi dan dikunci
5Pilih "Add to Cart" untuk menambah lagi sumber, atau "Book Now" untuk terus ke troli
6Di halaman troli (/public-cart), semak item dan klik "Checkout"
7Modal pengesahan muncul — isi Tujuan (wajib), Peserta (pilihan), dan IC 4 Digit Terakhir
8Klik "Confirm & Checkout" — tempahan dicipta secara automatik
Penting: Anda mesti menetapkan tarikh dan masa melalui penapis di halaman layari terlebih dahulu. Tarikh/masa akan dipra-isi dan tidak boleh diubah di borang tempahan. Butang "Book" hanya muncul pada sumber yang tersedia.

Jadual 17.4: Medan Checkout Tempahan Awam

MedanKeteranganWajib?
ResourceSumber yang dipilih (dipra-isi dan dikunci)Ya (auto)
Start Date & TimeTarikh dan masa mula (dipra-isi dan dikunci dari penapis)Ya (auto)
End Date & TimeTarikh dan masa tamat (dipra-isi dan dikunci dari penapis)Ya (auto)
PurposeTujuan tempahan (diisi semasa checkout)Ya
ParticipantsSenarai peserta (diisi semasa checkout, auto-complete)Tidak
IC Last 4 DigitsPengesahan identiti (diisi semasa checkout)Ya
Pendaftaran: Jika IC anda tidak dijumpai semasa checkout, sistem akan memaparkan borang pendaftaran akaun baru. Selepas mendaftar, sahkan e-mel anda, kemudian masukkan semula IC untuk meneruskan checkout.
Nota: Troli awam disimpan dalam sesi pelayar — kekal walaupun refresh halaman, tetapi hilang apabila sesi tamat atau pelayar ditutup. Semakan tarikh akhir tempahan dan konflik masa turut dilakukan semasa Add to Cart.

17.4 Kalendar Awam

Kalendar interaktif di halaman awam menunjukkan semua tempahan:

  • Navigasi: Anak panah kiri/kanan untuk tukar bulan
  • Penapis pengguna: Dropdown "All Users" sebagai lalai
  • Info Status: Klik ikon (di sebelah kanan bar penapis) untuk melihat panduan maksud setiap status tempahan (Pending, Approved, Rejected, Cancelled, Collected, Returned, Overdue, Completed, Missed)
  • Tempahan individu dan kumpulan dipaparkan dengan badge status
  • Klik pada tempahan untuk melihat butiran dalam modal

17.5 Kutipan Melalui Halaman Awam

Jadual 17.7: Langkah Kutipan Awam

LangkahTindakan
1Klik tab "Book Resources" di halaman utama
2Klik butang "Collect"
3Masukkan IC Last 4 Digits
4Pilih tempahan yang hendak dikutip
5Isi nota keadaan dan muat naik gambar (minimum 1, maks 3)
6Klik "Confirm Collection"
Nota: Syarat kutipan sama: Status = Approved, masa semasa ≥ tarikh mula, ≤ tarikh tamat.

17.6 Pemulangan Melalui Halaman Awam

Jadual 17.8: Langkah Pemulangan Awam

LangkahTindakan
1Klik tab "Book Resources" di halaman utama
2Klik butang "Return"
3Masukkan IC Last 4 Digits
4Pilih tempahan dan tetapkan status setiap sumber (Returned / Missing)
5Isi nota pemulangan (wajib jika Missing) dan muat naik gambar
6Klik "Confirm Return"

Jadual 17.9: Keputusan Pemulangan

KeputusanIkonKeterangan
Semua dipulangkanHijau"Returned!"
Ada item hilangKuning"Returned with Missing Items"
Sebahagian gagalMerah"Partial Success"

17.7 Pelanjutan Melalui Halaman Awam

Jadual 17.10: Langkah Pelanjutan Awam

LangkahTindakan
1Klik tab "Book Resources" di halaman utama
2Klik butang "Extend"
3Masukkan IC Last 4 Digits
4Pilih tempahan yang hendak dilanjutkan (boleh pilih semua atau sebahagian)
5Tetapkan tarikh dan masa tamat baharu
6Klik "Extend Booking" atau "Extend Selected"
Nota: Hanya tempahan dengan status Approved, Collected atau Overdue boleh dilanjutkan. Sistem akan menyemak ketersediaan sumber secara automatik.

17.8 Pembatalan Melalui Halaman Awam

Jadual 17.11: Langkah Pembatalan Awam

LangkahTindakan
1Klik tab "Book Resources" di halaman utama
2Klik butang "Cancel"
3Masukkan IC Last 4 Digits
4Pilih tempahan yang hendak dibatalkan (boleh pilih semua atau sebahagian)
5Masukkan sebab pembatalan (wajib)
6Klik "Cancel Booking" atau "Cancel Selected"
Amaran: Pembatalan tidak boleh dibuat semula. Hanya tempahan dengan status Pending atau Approved boleh dibatalkan.

Besides using the system through login, you can also access some functions via the public page (/) — without logging in.

17.1 Welcome Page

URL: /

The welcome page displays:

  • Logo and application name RD BookHub
  • "Sign In" and "Register here" buttons

The public page has 3 main tabs:

TabDescription
CalendarInteractive calendar displaying all bookings by month
Book ResourcesBrowse and book resources, plus access Collect, Return, Extend and Cancel functions
User ManualComplete user manual for reference

17.2 Public Resource Browse

The public resource browsing functions similarly to the /resources page after login.

Table 17.1: Public Resource Filters

FilterDescription
Search ResourceSearch by resource name (live search)
CategoryFilter by category
Start Date / End DateStart and end dates
Start Time / End TimeStart and end times

Table 17.2: Filter Status Indicators

BadgeDescription
Filters applied...Filters have been applied — available resources shown first
Apply filters...Please apply filters to see availability

17.3 Public Booking

You can create bookings without logging in via the public page.

Table 17.3: Public Booking Steps

StepAction
1On the public page, set the date and time using the filters (Start Date, Start Time, End Date, End Time) and click "Apply Filters"
2The system will show resources that are Available and Unavailable for that time
3Click the "Book" button on an available resource
4The booking form appears with date/time pre-filled and locked
5Choose "Add to Cart" to add more resources, or "Book Now" to go directly to the cart
6On the cart page (/public-cart), review items and click "Checkout"
7A confirmation modal appears — enter Purpose (required), Participants (optional), and IC Last 4 Digits
8Click "Confirm & Checkout" — bookings are created automatically
Important: You must set the date and time via the filters on the browse page first. The date/time will be pre-filled and cannot be changed on the booking form. The "Book" button only appears on available resources.

Table 17.4: Public Booking Checkout Fields

FieldDescriptionRequired?
ResourceSelected resource (pre-filled and locked)Yes (auto)
Start Date & TimeStart date and time (pre-filled and locked from filters)Yes (auto)
End Date & TimeEnd date and time (pre-filled and locked from filters)Yes (auto)
PurposeBooking purpose (entered at checkout)Yes
ParticipantsParticipant list (entered at checkout, auto-complete)No
IC Last 4 DigitsIdentity verification (entered at checkout)Yes
Registration: If your IC is not found during checkout, the system will display a new account registration form. After registering, verify your email, then re-enter your IC to proceed with checkout.
Note: The public cart is stored in your browser session — it persists through page refreshes but is lost when the session expires or the browser is closed. Booking deadline and time conflict checks are also performed during Add to Cart.

17.4 Public Calendar

An interactive calendar on the public page displays all bookings:

  • Navigation: Left/right arrows to change month
  • User filter: Dropdown with "All Users" as default
  • Status Info: Click the icon (right side of filter bar) to view a guide explaining what each booking status means (Pending, Approved, Rejected, Cancelled, Collected, Returned, Overdue, Completed, Missed)
  • Individual and group bookings displayed with status badges
  • Click on a booking to view details in a modal

17.5 Public Collection

Table 17.7: Public Collection Steps

StepAction
1Click the "Book Resources" tab on the welcome page
2Click the "Collect" button
3Enter your IC Last 4 Digits
4Select the booking to collect
5Fill in condition notes and upload photos (min 1, max 3)
6Click "Confirm Collection"
Note: Same collection conditions apply: Status = Approved, current time ≥ start date, ≤ end date.

17.6 Public Return

Table 17.8: Public Return Steps

StepAction
1Click the "Book Resources" tab on the welcome page
2Click the "Return" button
3Enter your IC Last 4 Digits
4Select the booking and set each resource status (Returned / Missing)
5Fill in return notes (mandatory if Missing) and upload photos
6Click "Confirm Return"

Table 17.9: Return Results

ResultIconDescription
All returnedGreen"Returned!"
Missing itemsYellow"Returned with Missing Items"
Partial failureRed"Partial Success"

17.7 Public Extend

Table 17.10: Public Extend Steps

StepAction
1Click the "Book Resources" tab on the welcome page
2Click the "Extend" button
3Enter your IC Last 4 Digits
4Select bookings to extend (select all or individual)
5Set a new end date and time
6Click "Extend Booking" or "Extend Selected"
Note: Only bookings with status Approved, Collected or Overdue can be extended. The system will automatically check resource availability.

17.8 Public Cancel

Table 17.11: Public Cancel Steps

StepAction
1Click the "Book Resources" tab on the welcome page
2Click the "Cancel" button
3Enter your IC Last 4 Digits
4Select bookings to cancel (select all or individual)
5Enter a cancellation reason (required)
6Click "Cancel Booking" or "Cancel Selected"
Warning: Cancellations cannot be undone. Only bookings with status Pending or Approved can be cancelled.

18.0 Rujukan Status Status Reference

Berikut ialah senarai status tempahan yang digunakan dalam sistem RD BookHub.

Jadual 18.1: Senarai Status Tempahan

Below is the list of booking statuses used in the RD BookHub system.

Table 18.1: Booking Status List

Status WarnaColour KeteranganDescription
Pending KuningYellow Menunggu kelulusan adminAwaiting admin approval
Approved HijauGreen Diluluskan, sedia untuk kutipanApproved, ready for collection
Rejected MerahRed Tidak diluluskanNot approved
Collected Biru mudaLight Blue Sumber telah dikutipResource has been collected
Overdue Merah mudaLight Red Lewat dipulangkan (tarikh tamat sudah lepas)Past the return deadline
Completed SianCyan Tempahan selesai — sumber tanpa kutipan fizikal (cth: bilik mesyuarat) selepas tarikh tamatBooking completed — non-collection resource (e.g. meeting room) past end date
Missed OrenOrange Diluluskan tetapi tidak dikutip (tarikh tamat sudah lepas) — sumber memerlukan kutipan fizikalApproved but not collected (past end date) — resource requires physical collection
Returned BiruBlue Sumber telah dipulangkanResource has been returned
Cancelled KelabuGrey Tempahan dibatalkanBooking cancelled

18.1 Aliran Status 18.1 Status Flow

Pending Approved Collected Returned
Pending juga boleh → Rejected / Cancelled Pending may also → Rejected / Cancelled
Approved yang tidak dikutip selepas tarikh tamat → Missed (paparan sahaja, sumber memerlukan kutipan) Approved not collected after end date → Missed (display only, collection-required resources)
Approved selepas tarikh tamat (tanpa kutipan fizikal) → Completed (paparan sahaja, cth: bilik mesyuarat) Approved past end date (no physical collection) → Completed (display only, e.g. meeting rooms)

MANUAL PENGGUNA USER MANUAL

RD BookHub

Peranan: Admin Role: Admin

VersiVersion : 1.0
TarikhDate : 19 June 2026
OrganisasiOrganisation : Revenue Discovery Sdn Bhd

1.0 Pengenalan Introduction

Sebagai Admin, anda mempunyai semua keupayaan Staff ditambah dengan kuasa pentadbiran untuk mengurus sistem RD BookHub.

1.1 Keupayaan Tambahan Admin

Jadual 1.1: Fungsi Tambahan Admin

Bil. Fungsi Keterangan
1Meluluskan / Menolak TempahanMeluluskan atau menolak tempahan kakitangan
2Melihat Semua TempahanMelihat semua tempahan dari semua kakitangan
3Tempahan Bagi Pihak StaffMembuat tempahan bagi pihak kakitangan lain
4Sunting Sebarang TempahanMenyunting tempahan mana-mana kakitangan (sebelum tempahan bermula)
5Pengurusan Sumber (CRUD)Cipta, baca, kemaskini, dan padam sumber
6Pengurusan PenggunaMengurus akaun pengguna, peranan, dan jabatan
7Pengurusan Kategori & JabatanMengurus kategori sumber dan jabatan organisasi
8Penjejakan Kutipan & PemulanganMenjejak kutipan dan pemulangan untuk semua tempahan
9Pengurusan UlasanMengurus ulasan yang diberikan oleh kakitangan
Nota: Dalam Personal Mode, Admin berfungsi sama seperti Staff — semua fungsi tempahan, kutipan, pemulangan, dan ulasan adalah sama seperti yang diterangkan dalam Manual Staff.

As an Admin, you have all Staff capabilities plus administrative powers to manage the RD BookHub system.

1.1 Additional Admin Capabilities

Table 1.1: Additional Admin Functions

No. Function Description
1Approve / Reject BookingsApprove or reject staff booking requests
2View All BookingsView all bookings from all staff members
3Book on Behalf of StaffCreate bookings on behalf of other staff members
4Edit Any BookingEdit any staff member's booking (before it starts)
5Resource Management (CRUD)Create, read, update, and delete resources
6User ManagementManage user accounts, roles, and departments
7Category & Department ManagementManage resource categories and organisation departments
8Collection & Return TrackingTrack collections and returns for all bookings
9Review ManagementManage reviews submitted by staff members
Note: In Personal Mode, the Admin functions exactly like a Staff user — all booking, collection, return, and review functions are the same as described in the Staff Manual.

2.0 Log Masuk & Dashboard Login & Dashboard

2.1 Log Masuk

Proses log masuk adalah sama seperti yang diterangkan dalam Manual Staff — gunakan IC Last 4 Digits dan Password di halaman /login.

2.2 Dashboard Admin

URL: /dashboard

2.2.1 Kad Statistik (4 KPI)

Jadual 2.1: Kad Statistik Dashboard Admin

Kad Keterangan
Pending ApprovalsBilangan tempahan yang menunggu kelulusan anda (status = pending, requires_approval = true)
Approved TodayBilangan tempahan yang diluluskan hari ini
Total BookingsJumlah tempahan bulan ini. Sub-badge menunjukkan bilangan pending, approved, collected, overdue, missed dan completed
Total ProcessedJumlah keseluruhan tempahan yang telah diluluskan/ditolak

2.2.2 Kalendar Tempahan

Kalendar interaktif menunjukkan semua tempahan. Klik pada tempahan untuk melihat butiran.

2.2.3 Jadual Pending Approvals (Top 5)

Menunjukkan 5 tempahan terkini yang menunggu kelulusan:

  • Nombor tempahan
  • Maklumat pengguna (avatar, nama, e-mel)
  • Sumber dan kategori
  • Tarikh

Jadual 2.2: Butang Tindakan Pending Approvals

Butang Tindakan
ViewLihat butiran penuh tempahan
ApproveLuluskan tempahan
RejectTolak tempahan

2.2.4 Jadual Recently Processed (Top 8)

Menunjukkan 8 tempahan terkini yang telah diproses (diluluskan/ditolak) dengan status badge.

2.1 Login

The login process is the same as described in the Staff Manual — use your IC Last 4 Digits and Password at the /login page.

2.2 Admin Dashboard

URL: /dashboard

2.2.1 Statistics Cards (4 KPIs)

Table 2.1: Admin Dashboard Statistics Cards

Card Description
Pending ApprovalsNumber of bookings awaiting your approval (status = pending, requires_approval = true)
Approved TodayNumber of bookings approved today
Total BookingsTotal bookings this month. Sub-badges show pending, approved, collected, overdue, missed and completed counts
Total ProcessedTotal number of bookings that have been approved/rejected

2.2.2 Booking Calendar

An interactive calendar displays all bookings. Click on a booking to view its details.

2.2.3 Pending Approvals Table (Top 5)

Displays the 5 most recent bookings awaiting approval:

  • Booking number
  • User information (avatar, name, email)
  • Resource and category
  • Date

Table 2.2: Pending Approvals Action Buttons

Button Action
ViewView full booking details
ApproveApprove the booking
RejectReject the booking

2.2.4 Recently Processed Table (Top 8)

Displays the 8 most recently processed bookings (approved/rejected) with status badges.

3.0 Mod Paparan View Mode

Admin boleh bertukar antara 2 mod paparan di halaman /bookings.

Jadual 3.1: Mod Paparan Admin

Mod Keterangan
Admin Mode (lalai)Lihat semua tempahan dari semua kakitangan
Personal ModeLihat hanya tempahan peribadi anda — fungsi sama seperti yang diterangkan dalam Manual Staff sepenuhnya

Cara tukar: Klik butang tukar mod di halaman /bookings.

Nota: Mod disimpan dalam sesi (session) — kekal sehingga anda tukar semula atau log keluar.

Dalam Personal Mode, anda boleh:

  • Buat tempahan sendiri
  • Lihat tempahan sendiri
  • Kutip sumber
  • Pulangkan sumber
  • Beri ulasan
  • Batalkan tempahan

Admins can switch between 2 view modes on the /bookings page.

Table 3.1: Admin View Modes

Mode Description
Admin Mode (default)View all bookings from all staff members
Personal ModeView only your personal bookings — functions exactly as described in the Staff Manual

How to switch: Click the mode toggle button on the /bookings page.

Note: The mode is stored in the session — it persists until you switch again or log out.

In Personal Mode, you can:

  • Create your own bookings
  • View your own bookings
  • Collect resources
  • Return resources
  • Submit reviews
  • Cancel bookings

4.0 Semua Tempahan All Bookings

URL: /bookings (dalam Admin Mode)

Komponen: AllBookingsList

4.1 Penapis

Jadual 4.1: Penapis Semua Tempahan

Penapis Keterangan
SearchCari mengikut nombor tempahan, nama sumber, nama pengguna, atau e-mel
StatusTapis: All, Pending, Approved, Rejected, Collected, Returned, Completed, Cancelled, Missed
CategoryTapis mengikut kategori sumber

4.2 Jadual

Sama seperti jadual My Bookings dalam Manual Staff, tetapi menunjukkan tempahan semua kakitangan dengan lajur tambahan:

  • User — Nama dan e-mel pengguna yang membuat tempahan

4.3 Tindakan

Jadual 4.2: Tindakan Semua Tempahan

Butang Tindakan
ViewLihat butiran tempahan
ApproveLuluskan tempahan pending
RejectTolak tempahan pending
CollectKutip sumber (jika status Approved)
ReturnPulangkan sumber (jika status Collected)
CancelBatalkan tempahan
ExtendLanjutkan tempoh tempahan (jika status Approved/Collected/Overdue)
DeletePadam tempahan (soft delete — boleh dipulihkan)

4.4 Eksport

Klik "Export" untuk memuat turun senarai tempahan dalam format Excel.

Jadual 4.3: Lajur Fail Eksport

LajurKeterangan
NoNombor baris
Group NumberNombor kumpulan (jika tempahan kumpulan)
Booking NumberNombor tempahan
Booked ByNama pengguna yang membuat tempahan
ResourceNama sumber
Start DateTarikh/masa mula
End DateTarikh/masa tamat
Original End DateTarikh/masa tamat asal sebelum pelanjutan (jika ada)
Extended ByNama dan tarikh siapa yang melanjutkan (jika ada)
PurposeTujuan tempahan
StatusStatus tempahan (termasuk Overdue)
Created AtTarikh tempahan dibuat

URL: /bookings (in Admin Mode)

Component: AllBookingsList

4.1 Filters

Table 4.1: All Bookings Filters

Filter Description
SearchSearch by booking number, resource name, user name, or email
StatusFilter: All, Pending, Approved, Rejected, Collected, Returned, Completed, Cancelled, Missed
CategoryFilter by resource category

4.2 Table

Same as the My Bookings table described in the Staff Manual, but displays bookings from all staff members with an additional column:

  • User — Name and email of the user who made the booking

4.3 Actions

Table 4.2: All Bookings Actions

Button Action
ViewView booking details
ApproveApprove a pending booking
RejectReject a pending booking
CollectCollect resources (if status is Approved)
ReturnReturn resources (if status is Collected)
CancelCancel the booking
ExtendExtend booking duration (if status is Approved/Collected/Overdue)
DeleteDelete the booking (soft delete — can be recovered)

4.4 Export

Click "Export" to download the booking list in Excel format.

Table 4.3: Export File Columns

ColumnDescription
NoRow number
Group NumberGroup number (if group booking)
Booking NumberBooking number
Booked ByName of user who made the booking
ResourceResource name
Start DateStart date/time
End DateEnd date/time
Original End DateOriginal end date/time before extension (if extended)
Extended ByName and date of who extended (if extended)
PurposeBooking purpose
StatusBooking status (including Overdue)
Created AtBooking creation date

5.0 Tempahan Untuk Staff Booking on Behalf of Staff

Admin boleh membuat tempahan bagi pihak kakitangan lain.

5.1 Proses

Jadual 5.1: Langkah Tempahan Bagi Pihak Staff

Langkah Tindakan
1Pergi ke Browse Resources (/resources) dan pilih sumber yang dikehendaki
2Di borang tempahan, cari kakitangan di bahagian "Book for Staff" menggunakan carian nama (auto-complete)
3Pilih kakitangan dari senarai yang dipaparkan — nama akan dipaparkan sebagai badge
4Tetapkan tarikh/masa
5Klik "Book Now" atau "Add to Cart" — modal pengesahan akan muncul untuk isi tujuan dan peserta

5.2 Perbezaan Dengan Tempahan Staff Biasa

Jadual 5.2: Perbezaan Tempahan Admin vs Staff

Aspek Staff Admin (bagi pihak)
Pengesahan ICWajibTidak diperlukan
Had tempoh tempahan awal (cth: mesti tempah 2 hari awal)Wajib dipatuhiTidak dikenakan — boleh tempah pada bila-bila masa
Pemilihan kakitanganTidak berkaitanWajib

Admins can create bookings on behalf of other staff members.

5.1 Process

Table 5.1: Steps to Book on Behalf of Staff

Step Action
1Go to Browse Resources (/resources) and select the desired resource
2In the booking form, search for a staff member in the "Book for Staff" section using name search (auto-complete)
3Select the staff member from the displayed list — their name will appear as a badge
4Set date/time
5Click "Book Now" or "Add to Cart" — a confirmation modal will appear to enter purpose and participants

5.2 Differences From Regular Staff Booking

Table 5.2: Admin vs Staff Booking Differences

Aspect Staff Admin (on behalf)
IC VerificationRequiredNot required
Advance booking requirement (e.g. must book 2 days ahead)Must be followedNot enforced — can book anytime
Staff SelectionNot applicableMandatory

6.0 Kelulusan Approvals

URL: /approvals

6.1 Luluskan Tempahan (Approve)

Jadual 6.1: Langkah Kelulusan Tempahan

Langkah Tindakan
1Klik butang Approve pada tempahan pending (dari Dashboard, All Bookings, atau Booking Details)
2Modal SweetAlert2 muncul dengan medan berikut:

Jadual 6.2: Medan Modal Kelulusan

Medan Keterangan Wajib?
CommentsKomen kelulusanTidak
Langkah Tindakan
3Klik "Confirm Approval"
4Status tempahan bertukar kepada APPROVED
5Kakitangan akan menerima notifikasi

6.2 Tolak Tempahan (Reject)

Jadual 6.3: Langkah Penolakan Tempahan

Langkah Tindakan
1Klik butang Reject pada tempahan pending
2Modal SweetAlert2 muncul dengan medan berikut:

Jadual 6.4: Medan Modal Penolakan

Medan Keterangan Wajib?
Rejection ReasonSebab penolakanYa
Langkah Tindakan
3Klik "Confirm Rejection"
4Status tempahan bertukar kepada REJECTED
5Kakitangan akan menerima notifikasi dengan sebab penolakan

6.3 Laluan Kelulusan (Approval Paths)

Jadual 6.5: Laluan Kelulusan

Laluan Keterangan
Direct ApprovalAdmin meluluskan/menolak terus dari All Bookings atau Booking Details
Workflow ApprovalMelalui halaman Approvals (/approvals) dengan rekod Approval berasingan

6.4 Padam Tempahan

Admin boleh memadam tempahan dari halaman Approvals melalui butang padam. Pemadaman menggunakan soft delete.

URL: /approvals

6.1 Approve a Booking

Table 6.1: Booking Approval Steps

Step Action
1Click the Approve button on a pending booking (from Dashboard, All Bookings, or Booking Details)
2A SweetAlert2 modal appears with the following field:

Table 6.2: Approval Modal Fields

Field Description Required?
CommentsApproval commentsNo
Step Action
3Click "Confirm Approval"
4Booking status changes to APPROVED
5The staff member will receive a notification

6.2 Reject a Booking

Table 6.3: Booking Rejection Steps

Step Action
1Click the Reject button on a pending booking
2A SweetAlert2 modal appears with the following field:

Table 6.4: Rejection Modal Fields

Field Description Required?
Rejection ReasonReason for rejectionYes
Step Action
3Click "Confirm Rejection"
4Booking status changes to REJECTED
5The staff member will receive a notification with the rejection reason

6.3 Approval Paths

Table 6.5: Approval Paths

Path Description
Direct ApprovalAdmin approves/rejects directly from All Bookings or Booking Details
Workflow ApprovalThrough the Approvals page (/approvals) with a separate Approval record

6.4 Delete Booking

Admins can delete bookings from the Approvals page via the delete button. Deletion uses soft delete.

7.0 Kutipan & Pemulangan Collection & Return

Proses kutipan dan pemulangan adalah sama seperti yang diterangkan dalam Manual Staff, tetapi Admin boleh melakukannya untuk semua tempahan, bukan hanya tempahan sendiri.

7.1 Kutipan (Collection)

  • Boleh mengutip sumber bagi mana-mana kakitangan
  • Modal kutipan sama: checkbox sumber, nota keadaan, gambar (wajib)
  • Kutipan Kumpulan (Group Collect) — kutip semua sumber sekaligus

7.2 Pemulangan (Return)

  • Boleh memulangkan sumber bagi mana-mana kakitangan
  • Modal pemulangan dengan status toggle:

Jadual 7.1: Status Toggle Pemulangan

Status Keterangan
ReturnedSumber dipulangkan
MissingSumber hilang
  • Select All toggle untuk kumpulan
  • Susunan pengesahan: Nota wajib dahulu (jika Missing) kemudian Gambar wajib
Nota: "Toggle each resource status. Unchecked items will be marked as Missing."
Pintasan Muat Naik Gambar (Baru): Semasa modal Kutipan atau Pemulangan terbuka, anda boleh —
  • Klik medan untuk pilih fail
  • Tampal tangkapan skrin menggunakan Ctrl + V
  • Seret & Lepas gambar terus ke dalam modal

7.3 Paparan Gabungan (Merged View)

Dalam Booking Details, jika tempahan kumpulan dikutip dan dipulangkan pada masa yang sama:

  • Maklumat kutipan/pemulangan digabungkan dalam satu paparan
  • Timestamp dikongsi (tidak diulang)
  • Item dikumpulkan mengikut nama sumber
  • Gambar dan nota yang sama hanya ditunjukkan sekali (deduplicated)

The collection and return process is the same as described in the Staff Manual, but Admins can perform it for all bookings, not just their own.

7.1 Collection

  • Can collect resources on behalf of any staff member
  • Same collection modal: resource checkboxes, condition notes, photo (mandatory)
  • Group Collect — collect all resources at once

7.2 Return

  • Can return resources on behalf of any staff member
  • Return modal with status toggle:

Table 7.1: Return Status Toggle

Status Description
ReturnedResource has been returned
MissingResource is missing
  • Select All toggle for group returns
  • Validation sequence: Mandatory notes first (if Missing), then mandatory photo
Note: "Toggle each resource status. Unchecked items will be marked as Missing."
Photo Upload Shortcuts (New): While the Collection or Return modal is open, you can —
  • Click the field to browse files
  • Paste a screenshot with Ctrl + V
  • Drag & Drop images directly into the modal

7.3 Merged View

In Booking Details, when a group booking is collected and returned at the same time:

  • Collection/return information is merged into a single view
  • Timestamps are shared (not duplicated)
  • Items are grouped by resource name
  • Duplicate photos and notes are shown only once (deduplicated)

8.0 Pembatalan Cancellation

Admin boleh membatalkan tempahan sendiri dan melihat tempahan yang telah dibatalkan oleh kakitangan lain.

8.1 Bila Boleh Batal?

  • Status tempahan = Pending atau Approved
  • Anda ialah pemilik tempahan (tempahan sendiri sahaja)

8.2 Proses Pembatalan

Jadual 8.1: Langkah Pembatalan

LangkahTindakan
1Dari tab My Bookings atau Booking Details, klik butang "Cancel"
2Modal pengesahan muncul (nama sumber, nombor tempahan)
3Masukkan sebab pembatalan (wajib)
4Klik "Yes, Cancel" untuk mengesahkan
5Status tempahan bertukar kepada CANCELLED
Tempahan Kumpulan: Anda boleh membatalkan tempahan individu dalam kumpulan, atau membatalkan keseluruhan kumpulan sekaligus.

8.3 Melihat Tempahan Dibatalkan

Untuk melihat tempahan yang telah dibatalkan oleh mana-mana kakitangan:

  • Pergi ke tab All Bookings
  • Gunakan penapis Status dan pilih "Cancelled"
  • Senarai semua tempahan yang dibatalkan akan dipaparkan

Admins can cancel their own bookings and view bookings that have been cancelled by other staff members.

8.1 When Can You Cancel?

  • Booking status = Pending or Approved
  • You are the booking owner (own bookings only)

8.2 Cancellation Process

Table 8.1: Cancellation Steps

StepAction
1From the My Bookings tab or Booking Details, click the "Cancel" button
2A confirmation modal appears (resource name, booking number)
3Enter a cancellation reason (required)
4Click "Yes, Cancel" to confirm
5Booking status changes to CANCELLED
Group Bookings: You can cancel individual bookings within a group, or cancel the entire group at once.

8.3 Viewing Cancelled Bookings

To view bookings that have been cancelled by any staff member:

  • Go to the All Bookings tab
  • Use the Status filter and select "Cancelled"
  • All cancelled bookings will be listed

8.5 Sunting Tempahan Edit Booking

Sebagai Admin, anda boleh menyunting mana-mana tempahan kakitangan (bukan hanya tempahan sendiri) selagi tempahan masih boleh disunting. Fungsi ini berguna untuk membetulkan kesilapan kecil tanpa perlu meminta kakitangan membatalkan dan menempah semula.

8.5.1 Bila Tempahan Boleh Disunting?

  • Status = Pending atau Approved
  • Tempahan belum bermula (masa semasa < tarikh/masa mula)
Penting: Walaupun Admin mempunyai akses penuh, sistem tetap menyekat suntingan untuk tempahan yang sudah Collected, Returned, Cancelled, atau Rejected. Untuk perubahan tempoh selepas kutipan, gunakan Extend Booking (Bahagian 9.0).

8.5.2 Apa Yang Boleh Disunting?

Jadual 8.5.1: Medan Boleh Sunting Mengikut Status

MedanPendingApproved
Tarikh & Masa Mula/Tamat✓ Ya✓ Ya
Tujuan / Purpose✓ Ya✓ Ya
Senarai Peserta (nama)✓ Ya✓ Ya
Peserta Berdaftar (user)✓ Ya✓ Ya
Sumber (resource)✗ Tidak✗ Tidak
Syarat tarikh/masa baru: Mesti pada masa hadapan (selepas masa semasa). Form akan menyekat tarikh/masa lepas secara automatik, dan sistem akan menyemak konflik dengan tempahan lain pada sumber yang sama. Untuk anjakan tarikh tamat selepas tempahan dikutip, gunakan Extend Booking (Bahagian 9.0).

8.5.3 Akses Sunting

Butang "Edit" (ikon pensel kuning) dipaparkan di:

  • Tab All Bookings — pada setiap baris tempahan yang masih boleh disunting
  • Halaman Booking Details — pada bahagian butang tindakan
  • Tab My Bookings — untuk tempahan sendiri (Personal Mode)

8.5.4 Proses Sunting

Jadual 8.5.2: Langkah Sunting Tempahan

LangkahTindakan
1Klik butang "Edit" dari mana-mana lokasi di atas
2Borang sunting dipaparkan dengan nilai semasa tempahan
3Ubah medan yang dibenarkan (lihat Jadual 8.5.1)
4Klik "Save Changes"
5Sistem mengesahkan: deadline tempahan (Admin tidak tertakluk pada deadline tempoh notis), konflik sumber, dan masa tamat > masa mula
6Anda dialihkan ke halaman Booking Details dengan mesej kejayaan
Bantuan UI borang: Pemilih tarikh hanya membenarkan tarikh hari ini ke hadapan; jam yang sudah lepas pada hari ini akan dikelabukan secara automatik dalam senarai "Start Time". Selepas anda memilih masa mula, jam "End Time" sebelum masa mula juga akan dikelabukan.

8.5.5 Tempahan Kumpulan

Klik "Edit Group" untuk menyunting keseluruhan kumpulan dalam satu borang:

  • Sunting tujuan dan peserta sekali untuk semua tempahan dalam kumpulan
  • Sunting tarikh/masa berasingan bagi setiap tempahan yang masih boleh disunting (belum bermula)
  • Tempahan yang sudah bermula, dipulangkan, dibatalkan, atau ditolak akan dilangkau (skipped) semasa simpan

8.5.6 Notifikasi Selepas Sunting

  • Pemilik tempahan: Menerima notifikasi pengesahan, lengkap dengan senarai sumber dan jadual penuh untuk tempahan kumpulan
  • Semua Admin: Menerima notifikasi "Pending Booking Edited" untuk semakan semula sebelum kelulusan (jika masih Pending)
  • Peserta baru ditambah: Menerima notifikasi "You've Been Added as a Participant" dengan butiran sumber dan jadual
  • Peserta dibuang: Menerima notifikasi "Removed from Booking"
  • Peserta sedia ada (yang masih kekal): Menerima notifikasi "Booking You're Participating In Updated" hanya jika tarikh/masa atau tujuan berubah
Semua notifikasi dihantar melalui in-app, e-mel (jika SMTP aktif), dan WhatsApp (jika Wabot aktif). Template berkaitan: booking_edited_*, booking_edited_admin_*, booking_group_edited_*, booking_participant_added_*, booking_participant_removed_*. Notifikasi peserta tempahan kumpulan dan peserta yang masih kekal dijana secara dinamik (bukan dari template).

8.5.7 Amalan Terbaik Admin

  • Sebelum menyunting tempahan kakitangan lain, hubungi pemilik untuk pengesahan — terutama jika berkaitan tarikh/peserta
  • Untuk tempahan Approved, jika anda menukar tarikh/masa, ingatlah pemilik tempahan akan menerima notifikasi tentang perubahan tersebut
  • Periksa konflik sumber sebelum simpan, terutama jika menyesuaikan masa

8.5.8 Ralat Biasa

Jadual 8.5.3: Ralat Sunting Tempahan

RalatPunca
"This booking can no longer be edited"Tempahan sudah bermula, telah dipulangkan, dibatalkan, atau ditolak
"End time must be after start time"Tarikh/masa tamat lebih awal atau sama dengan masa mula
"Start date/time must be in the future"Tarikh/masa mula baru sudah lepas atau sama dengan masa semasa
"Selected time conflicts with another booking on this resource"Tempoh baru bertindih dengan tempahan lain pada sumber yang sama (tidak termasuk tempahan ini sendiri)

As an Admin, you can edit any staff booking (not just your own) as long as the booking is still editable. This is useful for fixing small mistakes without asking the staff member to cancel and rebook.

8.5.1 When Is a Booking Editable?

  • Status = Pending or Approved
  • Booking has not started yet (current time < start date/time)
Important: Even though Admins have full access, the system still blocks edits on bookings that are already Collected, Returned, Cancelled, or Rejected. To extend duration after collection, use Extend Booking (Section 9.0).

8.5.2 What Can Be Edited?

Table 8.5.1: Editable Fields by Status

FieldPendingApproved
Start & End Date/Time✓ Yes✓ Yes
Purpose✓ Yes✓ Yes
Participant List (names)✓ Yes✓ Yes
Registered Participants (users)✓ Yes✓ Yes
Resource✗ No✗ No
New date/time must be: in the future (after the current moment). The form blocks past dates/times automatically, and the system checks for conflicts with other bookings on the same resource. To extend the end date after the booking is collected, use Extend Booking (Section 9.0).

8.5.3 Where to Access Edit

The "Edit" button (yellow pencil icon) is shown in:

  • The All Bookings tab — on each booking row that is still editable
  • The Booking Details page — in the action button row
  • The My Bookings tab — for your own bookings (Personal Mode)

8.5.4 Edit Process

Table 8.5.2: Edit Booking Steps

StepAction
1Click the "Edit" button from any of the locations above
2The edit form is displayed with the booking's current values
3Modify the allowed fields (see Table 8.5.1)
4Click "Save Changes"
5System validates: booking deadline (Admin is exempt from minimum-notice rules), resource conflicts, and end > start
6You are redirected to Booking Details with a success message
Form UI helpers: The date picker only allows today onwards; past hours on today are auto-disabled in the "Start Time" dropdown. Once you pick a start time, "End Time" hours before it are also disabled.

8.5.5 Group Bookings

Click "Edit Group" to edit the entire group in one form:

  • Edit purpose and participants once for all bookings in the group
  • Edit date/time separately for each booking that is still editable (not yet started)
  • Bookings that have already started, been returned, cancelled, or rejected are skipped on save

8.5.6 Notifications After Edit

  • Booking owner: Receives a confirmation notification, including the resource list and full schedule for group bookings
  • All Admins: Receive a "Pending Booking Edited" notification for re-review before approval (if still Pending)
  • Newly added participants: Receive a "You've Been Added as a Participant" notification with full resource and schedule details
  • Removed participants: Receive a "Removed from Booking" notification
  • Existing (staying) participants: Receive a "Booking You're Participating In Updated" notification only when date/time or purpose changes
All notifications are delivered via in-app, email (if SMTP enabled), and WhatsApp (if Wabot enabled). Related templates: booking_edited_*, booking_edited_admin_*, booking_group_edited_*, booking_participant_added_*, booking_participant_removed_*. Group-participant and staying-participant notifications are generated dynamically (not from templates).

8.5.7 Admin Best Practices

  • Before editing another staff member's booking, contact the owner to confirm any change — especially around date or participants
  • For Approved bookings, remember that the owner will receive a notification about any date/time change you make
  • Check resource conflicts before saving, especially when adjusting times

8.5.8 Common Errors

Table 8.5.3: Edit Booking Errors

ErrorCause
"This booking can no longer be edited"Booking has started, been returned, cancelled, or rejected
"End time must be after start time"End date/time is earlier than or equal to start time
"Start date/time must be in the future"New start date/time is in the past or equal to the current time
"Selected time conflicts with another booking on this resource"New period overlaps another booking on the same resource (excluding this booking itself)

9.0 Pelanjutan Tempahan Extend Booking

Admin boleh melanjutkan tempoh mana-mana tempahan kakitangan. Sistem menyemak ketersediaan sumber secara automatik sebelum melanjutkan.

9.1 Bila Boleh Extend?

  • Status = Approved atau Collected (termasuk Overdue)
  • Tarikh/masa tamat baru mesti lebih lewat daripada tarikh/masa tamat semasa
  • Sumber mesti tersedia untuk tempoh lanjutan
Nota: Berbeza dengan staff yang hanya boleh extend tempahan sendiri, admin boleh extend mana-mana tempahan kakitangan.

9.2 Proses Pelanjutan (Individu)

Jadual 9.1: Langkah Pelanjutan Tempahan Individu

LangkahTindakan
1Dari tab All Bookings, My Bookings atau Booking Details, klik butang Extend (ikon jam)
2Modal muncul menunjukkan tarikh/masa tamat semasa
3Pilih tarikh tamat baru dan masa tamat baru
4Klik "Extend Booking" untuk mengesahkan
5Sistem menyemak ketersediaan dan melanjutkan tempahan

9.3 Pelanjutan Tempahan Kumpulan

Untuk tempahan kumpulan, anda boleh memilih mana-mana tempahan dalam kumpulan untuk dilanjutkan:

Jadual 9.2: Langkah Pelanjutan Tempahan Kumpulan

LangkahTindakan
1Klik butang Extend pada baris kumpulan
2Modal muncul dengan senarai tempahan yang boleh dilanjutkan
3Pilih tempahan yang ingin dilanjutkan (guna checkbox, boleh pilih semua)
4Pilih tarikh tamat baru dan masa tamat baru
5Klik "Extend Selected" untuk mengesahkan
Nota: Selepas pelanjutan, badge Extended akan dipaparkan bersebelahan status tempahan. Tarikh tamat asal dan maklumat siapa yang extend disimpan untuk rujukan.

Admins can extend the duration of any staff booking. The system automatically checks resource availability before extending.

9.1 When Can You Extend?

  • Status = Approved or Collected (including Overdue)
  • New end date/time must be later than the current end date/time
  • Resource must be available for the extended period
Note: Unlike staff who can only extend their own bookings, admins can extend any staff booking.

9.2 Individual Extend Process

Table 9.1: Individual Extend Steps

StepAction
1From the All Bookings tab, My Bookings or Booking Details, click the Extend button (clock icon)
2A modal appears showing the current end date/time
3Select a new end date and new end time
4Click "Extend Booking" to confirm
5System checks availability and extends the booking

9.3 Group Booking Extension

For group bookings, you can select which bookings within the group to extend:

Table 9.2: Group Extend Steps

StepAction
1Click the Extend button on the group row
2A modal appears listing all extendable bookings in the group
3Select bookings to extend (use checkboxes, select all available)
4Select a new end date and new end time
5Click "Extend Selected" to confirm
Note: After extension, an Extended badge will be displayed next to the booking status. The original end date and who performed the extension are saved for reference.

10.0 Pengurusan Sumber Resource Management

URL: /admin/resources/manage

10.1 Paparan

Halaman pengurusan memaparkan:

  • 4 kad statistik: Total Resources, Available, Under Maintenance, Categories
  • Penapis: Cari nama, tapis kategori
  • Grid sumber: Kad untuk setiap sumber

10.2 Cipta Sumber Baru (Create Resource)

URL: /admin/resources/create

Jadual 10.1: Borang Cipta Sumber

Bahagian Medan Keterangan
Maklumat AsasItem NameNama sumber (wajib)
CategoryKategori dari senarai (wajib)
Parent ItemJika ini sub-item sumber lain (pilihan)
ButiranQuantityBilangan unit (lalai: 1)
PriceHarga dalam RM (pilihan)
Aset & KeadaanAsset CodeKod aset (cth: CAM-001)
ConditionKeadaan: Good, Damaged, Under Maintenance, Missing
RemarksCatatan tambahan
TetapanIs Available?Adakah boleh ditempah?
Requires Approval?Adakah perlu kelulusan admin?
Requires Collection?Adakah perlu kutipan fizikal? (Bilik mesyuarat = Tidak)
GambarResource ImageMuat naik gambar (maks 5MB, JPG/PNG/GIF)

Klik "Create Resource" untuk menyimpan.

10.3 Kemaskini Sumber (Edit Resource)

URL: /admin/resources/{id}/edit

Sama seperti borang cipta, tetapi dengan nilai sedia ada. Klik "Update Resource" untuk menyimpan.

10.4 Padam Sumber (Delete Resource)

Jadual 10.2: Langkah Padam Sumber

Langkah Tindakan
1Klik butang Delete pada sumber
2Modal pengesahan muncul
3Klik "Yes, delete it!" untuk mengesahkan

10.5 Togol Ketersediaan (Toggle Availability)

Klik butang togol pada sumber untuk menukar status ketersediaan antara Available dan Unavailable tanpa perlu edit penuh.

URL: /admin/resources/manage

10.1 Overview

The management page displays:

  • 4 statistics cards: Total Resources, Available, Under Maintenance, Categories
  • Filters: Search by name, filter by category
  • Resource grid: A card for each resource

10.2 Create a New Resource

URL: /admin/resources/create

Table 10.1: Create Resource Form

Section Field Description
Basic InformationItem NameResource name (required)
CategoryCategory from the list (required)
Parent ItemIf this is a sub-item of another resource (optional)
DetailsQuantityNumber of units (default: 1)
PricePrice in RM (optional)
Asset & ConditionAsset CodeAsset code (e.g., CAM-001)
ConditionCondition: Good, Damaged, Under Maintenance, Missing
RemarksAdditional remarks
SettingsIs Available?Can the resource be booked?
Requires Approval?Does it require admin approval?
Requires Collection?Does it require physical collection? (Meeting rooms = No)
ImageResource ImageUpload image (max 5MB, JPG/PNG/GIF)

Click "Create Resource" to save.

10.3 Edit a Resource

URL: /admin/resources/{id}/edit

Same as the create form, but with pre-filled values. Click "Update Resource" to save.

10.4 Delete a Resource

Table 10.2: Delete Resource Steps

Step Action
1Click the Delete button on the resource
2A confirmation modal appears
3Click "Yes, delete it!" to confirm

10.5 Toggle Availability

Click the toggle button on a resource to switch its availability status between Available and Unavailable without opening the full edit form.

11.0 Pengurusan Pengguna User Management

URL: /admin/users

11.1 Paparan

  • 4 kad statistik: Superadmins, Admins, Account, Staff
  • Jadual pengguna dengan carian dan penapis (role, department)

11.2 Cipta Pengguna (Create User)

URL: /admin/users/create

Jadual 11.1: Borang Cipta Pengguna

Medan Keterangan Wajib?
Full NameNama penuhYa
IC NumberNombor IC (12 digit)Ya
EmailAlamat e-mel (unik)Ya
Phone NumberNombor telefonYa
DepartmentJabatanTidak
RolePeranan: Staff, Admin, Account, SuperadminYa
PasswordKata laluan (min 8 aksara)Ya
Profile PhotoGambar profil (maks 5MB)Tidak

11.3 Kemaskini Pengguna (Edit User)

  • Kemaskini semua maklumat pengguna
  • Tukar peranan
  • Tukar jabatan

11.4 Padam Pengguna (Delete User)

  • Modal pengesahan sebelum padam
  • Tidak boleh padam jika ada tempahan aktif
Amaran: Pengguna yang mempunyai tempahan aktif tidak boleh dipadam. Sila pastikan semua tempahan telah diselesaikan terlebih dahulu.

URL: /admin/users

11.1 Overview

  • 4 statistics cards: Superadmins, Admins, Account, Staff
  • User table with search and filters (role, department)

11.2 Create a User

URL: /admin/users/create

Table 11.1: Create User Form

Field Description Required?
Full NameFull nameYes
IC NumberIC number (12 digits)Yes
EmailEmail address (unique)Yes
Phone NumberPhone numberYes
DepartmentDepartmentNo
RoleRole: Staff, Admin, Account, SuperadminYes
PasswordPassword (min 8 characters)Yes
Profile PhotoProfile photo (max 5MB)No

11.3 Edit a User

  • Update all user information
  • Change role
  • Change department

11.4 Delete a User

  • Confirmation modal before deletion
  • Cannot delete if the user has active bookings
Warning: Users with active bookings cannot be deleted. Please ensure all bookings have been completed first.

12.0 Pengurusan Kategori Category Management

URL: /admin/categories

12.1 Cipta Kategori

Jadual 12.1: Borang Cipta Kategori

Medan Keterangan Wajib?
NameNama kategori (huruf kecil, cth: "equipment")Ya
LabelLabel paparan (cth: "Equipment")Ya
Badge ColorWarna lencana kategori. Pilih warna menggunakan pemilih warna — pratonton lencana akan dipaparkan secara langsungTidak

12.2 Kemaskini Kategori

Tukar nama, label, warna lencana, dan status aktif kategori sedia ada.

Nota: Lajur Badge Color pada jadual kategori memaparkan bulatan warna dan pratonton lencana bagi setiap kategori. Warna ini digunakan di seluruh sistem termasuk kad sumber, kalendar, dan senarai tempahan.

12.3 Padam Kategori

Amaran: Kategori yang masih mempunyai sumber tidak boleh dipadam. Pindahkan atau padam sumber terlebih dahulu sebelum memadamkan kategori.

URL: /admin/categories

12.1 Create a Category

Table 12.1: Create Category Form

Field Description Required?
NameCategory name (lowercase, e.g., "equipment")Yes
LabelDisplay label (e.g., "Equipment")Yes
Badge ColorCategory badge color. Pick a color using the color picker — a live badge preview is shownNo

12.2 Edit a Category

Change the name, label, badge color, and active status of an existing category.

Note: The Badge Color column in the categories table displays a color circle and badge preview for each category. This color is used throughout the system including resource cards, calendar, and booking lists.

12.3 Delete a Category

Warning: Categories that still have associated resources cannot be deleted. Move or delete the resources first before deleting the category.

13.0 Pengurusan Jabatan Department Management

URL: /admin/departments

13.1 Operasi

Jadual 13.1: Operasi Pengurusan Jabatan

Tindakan Keterangan
CiptaTambah jabatan baru (nama, penerangan, status)
KemaskiniTukar nama, penerangan, atau status
PadamPadam jabatan (tidak boleh jika ada kakitangan)
Nota: Jabatan yang masih mempunyai kakitangan tidak boleh dipadam. Pindahkan kakitangan ke jabatan lain terlebih dahulu.

URL: /admin/departments

13.1 Operations

Table 13.1: Department Management Operations

Action Description
CreateAdd a new department (name, description, status)
UpdateChange name, description, or status
DeleteDelete a department (cannot delete if staff are assigned)
Note: Departments that still have staff members assigned cannot be deleted. Move the staff to another department first.

14.0 Penjejakan Kutipan & Pemulangan Collection & Return Tracking

URL: /collection-return

14.1 Paparan

  • Penapis: Cari mengikut nombor tempahan, nama pengguna, atau nama sumber
  • Tapis status: All, Collected Only, Returned Only

14.2 Jadual Rekod

Jadual 14.1: Lajur Jadual Kutipan & Pemulangan

Lajur Keterangan
Booking #Nombor tempahan
UserNama dan e-mel pengguna
ResourceNama sumber dan kategori
CollectedTarikh/masa kutipan, siapa yang mengutip
ReturnedTarikh/masa pemulangan, siapa yang memulangkan (atau "-")
StatusCollected / Returned
ActionsLihat butiran tempahan

URL: /collection-return

14.1 Overview

  • Filters: Search by booking number, user name, or resource name
  • Status filter: All, Collected Only, Returned Only

14.2 Records Table

Table 14.1: Collection & Return Table Columns

Column Description
Booking #Booking number
UserUser name and email
ResourceResource name and category
CollectedCollection date/time, who collected it
ReturnedReturn date/time, who returned it (or "-")
StatusCollected / Returned
ActionsView booking details

15.0 Pengurusan Ulasan Review Management

URL: /admin/reviews

15.1 Paparan

Jadual 15.1: Kad Statistik Ulasan

Statistik Keterangan
Total ReviewsJumlah keseluruhan ulasan
Average RatingPurata penilaian keseluruhan
High RatedUlasan dengan penilaian 4 dan ke atas
Low RatedUlasan dengan penilaian kurang dari 3

Penapis: Tapis mengikut penilaian, sumber, atau cari teks komen.

15.2 Operasi

Jadual 15.2: Operasi Pengurusan Ulasan

Tindakan Keterangan
LihatLihat ulasan penuh (penilaian, komen, tarikh, butiran tempahan)
PadamPadam ulasan (dengan pengesahan)
Per-SumberLihat semua ulasan untuk sumber tertentu

URL: /admin/reviews

15.1 Overview

Table 15.1: Review Statistics Cards

Statistic Description
Total ReviewsTotal number of reviews
Average RatingOverall average rating
High RatedReviews with a rating of 4 and above
Low RatedReviews with a rating below 3

Filters: Filter by rating, resource, or search comment text.

15.2 Operations

Table 15.2: Review Management Operations

Action Description
ViewView full review (rating, comment, date, booking details)
DeleteDelete a review (with confirmation)
Per-ResourceView all reviews for a specific resource

16.0 Permohonan Pembelian Purchase Requests

Admin bertanggungjawab meluluskan atau menolak permohonan pembelian bernilai tinggi yang dihantar oleh Staff. Dalam mod peribadi, Admin juga boleh menghantar permohonan sendiri.

Siapa Admin yang meluluskan? Hanya seorang Admin yang dilantik (di /superadmin/approvers) boleh meluluskan/menolak permohonan bernilai ≥ RM 1,000. Permohonan < RM 1,000 diluluskan terus oleh Account tanpa campur tangan Admin.

16.1 Senarai Permohonan (Mod Admin)

URL: /purchase-requests

Dalam mod admin, halaman ini memaparkan semua permohonan daripada semua Staff.

Jadual 16.1: Lajur Senarai Permohonan

LajurKeterangan
#Nombor permohonan (cth: PR-20260227-ABC123) dan tarikh
ItemNama item dan jenama/model (jika ada)
Requested ByNama dan jabatan Staff yang membuat permohonan
CategoryKategori permohonan — dari senarai kategori aktif. Setiap kategori mempunyai warna lencana tersendiri yang ditetapkan oleh pentadbir
PriceAnggaran harga seunit (RM) dan jumlah jika kuantiti lebih dari 1
PriorityKeutamaan: Low Medium High Urgent
StatusStatus semasa permohonan

Jadual 16.2: Penapis Senarai

PenapisKeterangan
SearchCari mengikut nama item, nombor permohonan, jenama
StatusTapis mengikut status (Submitted, Approved, Rejected, dll.)
PriorityTapis mengikut keutamaan

16.2 Lulus / Tolak Permohonan (≥ RM 1,000 Sahaja)

Butang Approve dan Reject hanya dipaparkan kepada Admin yang dilantik sebagai pelulus dan hanya untuk permohonan berstatus Submitted yang Grand Total-nya ≥ RM 1,000.

Jadual 16.3: Tindakan Semakan

TindakanKeterangan
ApproveLuluskan permohonan. Komen pilihan boleh ditambah. Status bertukar kepada Approved dan Account menerima notifikasi "ready for purchase".
RejectTolak permohonan. Sebab penolakan wajib (maks 1000 aksara). Status bertukar kepada Rejected (akhir).
Tiada butang Approve/Reject? Kemungkinan: (a) anda bukan Admin yang dilantik, (b) Grand Total < ambang (Account akan uruskan), atau (c) tiada Pelulus Admin dilantik — mesej ralat akan dipaparkan.

16.3 Selepas Kelulusan

Selepas permohonan diluluskan, Account akan:

  • Mengisi bahagian "FOR ACCOUNT USE ONLY" (shipping & payment method) melalui butang Save Account Details
  • Selepas simpan Account Details, status auto ke Pending Purchase. Selepas pembelian sebenar, klik Complete Purchase untuk ke Purchased
  • Mengisi "FOR OFFICE USE ONLY" (tarikh pesanan, buyer, dsb.)

Admin menerima notifikasi FYI pada setiap peralihan status. Admin tidak menukar status selepas Approved.

Nota: Status Rejected dan Purchased adalah status akhir — tiada perubahan lanjut boleh dibuat.

16.4 Butiran Permohonan

URL: /purchase-requests/{id}

Halaman butiran memaparkan maklumat lengkap termasuk:

  • Maklumat item (nama, jenama, harga, kuantiti, kategori)
  • Keutamaan dan justifikasi
  • Pautan produk dan lampiran gambar
  • Maklumat penghantar dan tarikh
  • Maklumat penyemak, tarikh semakan, dan komen Admin
  • Butang tindakan (Approve / Reject / Complete Purchase) mengikut status semasa

16.5 Padam Permohonan

Admin boleh memadam permohonan pembelian melalui butang padam di senarai permohonan. Pemadaman menggunakan soft delete — data tidak dipadam secara kekal.

16.5a Ubah Suai Oleh Pemohon

Staff boleh mengubah suai permohonan pembelian mereka sendiri — tetapi hanya ketika status masih Submitted. Sebaik sahaja Approve atau Reject dilakukan, butang Edit hilang.

  • Admin (pelulus yang dilantik) & Account menerima notifikasi apabila permohonan diubah suai
  • Halaman butiran memaparkan metadata ubah suai: bilangan kali (edit_count), tarikh terakhir (edited_at), dan siapa yang mengubah (edited_by)
  • Semak semula maklumat terkini sebelum membuat keputusan Approve/Reject

16.6 Mod Peribadi

Dalam mod peribadi, Admin bertindak seperti Staff biasa:

  • Melihat hanya permohonan sendiri
  • Boleh mencipta permohonan baru di /purchase-requests/create
  • Borang dan medan sama seperti yang diterangkan dalam Manual Staff

Admins are responsible for approving or rejecting high-value purchase requests submitted by Staff. In personal mode, Admins can also submit their own requests.

Which Admin approves? Only one designated Admin, assigned at /superadmin/approvers, can approve/reject requests of ≥ RM 1,000. Requests below RM 1,000 are approved directly by Account without Admin involvement.

16.1 Request List (Admin Mode)

URL: /purchase-requests

In admin mode, this page displays all purchase requests from all Staff.

Table 16.1: Request List Columns

ColumnDescription
#Request number (e.g. PR-20260227-ABC123) and date
ItemItem name and brand/model (if any)
Requested ByName and department of the Staff who made the request
CategoryRequest category — from the list of active categories. Each category has its own badge color set by the admin
PriceEstimated price per unit (RM) and total if quantity exceeds 1
PriorityPriority: Low Medium High Urgent
StatusCurrent request status

Table 16.2: List Filters

FilterDescription
SearchSearch by item name, request number, brand
StatusFilter by status (Submitted, Approved, Rejected, etc.)
PriorityFilter by priority level

16.2 Approve / Reject Requests (≥ RM 1,000 Only)

The Approve and Reject buttons are shown only to the designated approver Admin, and only for Submitted requests whose Grand Total is ≥ RM 1,000.

Table 16.3: Review Actions

ActionDescription
ApproveApprove the request. Optional comments can be added. Status becomes Approved and Account receives a "ready for purchase" notification.
RejectReject the request. Rejection reason is mandatory (max 1000 chars). Status becomes Rejected (terminal).
No Approve/Reject buttons? Likely reasons: (a) you are not the designated approver, (b) the Grand Total is below the threshold (Account will handle it), or (c) no Admin approver has been assigned — an error message will be shown.

16.3 After Approval

Once a request is approved, Account will:

  • Fill in the "FOR ACCOUNT USE ONLY" section (shipping & payment method) via the Save Account Details button
  • After saving Account Details, status auto-transitions to Pending Purchase. After the actual purchase, click Complete Purchase to move to Purchased
  • Fill in the "FOR OFFICE USE ONLY" section (order dates, buyer, etc.)

Admin receives FYI notifications on each status transition. Admin does not change status after Approved.

Note: Rejected and Purchased are terminal statuses — no further changes can be made.

16.4 Request Details

URL: /purchase-requests/{id}

The details page displays complete information including:

  • Item information (name, brand, price, quantity, category)
  • Priority and justification
  • Product URL and image attachments
  • Requester information and date
  • Reviewer information, review date, and Admin comments
  • Action buttons (Approve / Reject / Complete Purchase) based on current status

16.5 Delete Request

Admins can delete purchase requests via the delete button on the request list. Deletion uses soft delete — data is not permanently removed.

16.5a Edits by the Requester

Staff can edit their own purchase requests — but only while the status is still Submitted. Once Approve or Reject is performed, the Edit button disappears.

  • Admin (designated approver) & Account receive a notification whenever a request is edited
  • The details page shows edit metadata: number of edits (edit_count), last edit timestamp (edited_at), and who edited it (edited_by)
  • Always re-check the latest values before deciding Approve/Reject on an edited request

16.6 Personal Mode

In personal mode, Admin functions like a regular Staff member:

  • Sees only their own requests
  • Can create new requests at /purchase-requests/create
  • Form and fields are the same as described in the Staff Manual

17.0 Profil & Notifikasi Profile & Notifications

17.1 Profil

Proses kemaskini profil adalah sama seperti yang diterangkan dalam Manual Staff — kemaskini maklumat peribadi di /profile.

17.2 Notifikasi

URL: /notifications

Admin menerima notifikasi melalui e-mel dan/atau WhatsApp bergantung kepada konfigurasi yang ditetapkan oleh Superadmin. Berikut ialah senarai lengkap jenis notifikasi mengikut kategori:

Jadual 17.1: Notifikasi Tempahan Individu

JenisKeterangan
New Booking CreatedTempahan baru telah dicipta
Booking Submitted for ApprovalTempahan baru menunggu kelulusan admin
Booking ApprovedTempahan telah diluluskan
Booking RejectedTempahan telah ditolak
Booking CancelledTempahan telah dibatalkan oleh pengguna
Resource CollectedSumber telah dikutip oleh pengguna
Resource ReturnedSumber telah dipulangkan oleh pengguna
Booking ReminderPeringatan 24 jam sebelum tempahan
Collection ReminderPeringatan untuk mengutip sumber apabila tempahan bermula
Return ReminderPeringatan 1 jam sebelum masa pemulangan
Overdue ReturnSumber lewat dipulangkan

Jadual 17.2: Notifikasi Tempahan Kumpulan

JenisKeterangan
Group Booking CreatedTempahan kumpulan baru dicipta
Group Booking ApprovedTempahan kumpulan diluluskan
Group Booking RejectedTempahan kumpulan ditolak
Group Booking CancelledTempahan kumpulan dibatalkan
Group Resource CollectedSumber kumpulan dikutip
Group Resource ReturnedSumber kumpulan dipulangkan

Jadual 17.3: Notifikasi Permintaan Pembelian

JenisKeterangan
Purchase Request SubmittedPermintaan pembelian baru dihantar
Purchase Request EditedPemohon mengubah suai permohonan berstatus Submitted — semak semula sebelum luluskan
Purchase Request ApprovedPermintaan pembelian diluluskan
Purchase Request RejectedPermintaan pembelian ditolak
Purchase Request Pending PurchasePermintaan pembelian menunggu pembelian
Purchase Request PurchasedPermintaan pembelian telah dibeli

Jadual 17.4: Notifikasi Lain

JenisKeterangan
Review SubmittedUlasan baru diberikan oleh pengguna
Nota: Setiap jenis notifikasi boleh diaktifkan atau dinyahaktifkan oleh Superadmin melalui halaman Notification Configuration. Saluran penghantaran (E-mel / WhatsApp) juga dikonfigurasi di sana.

17.1 Profile

The profile update process is the same as described in the Staff Manual — update personal information at /profile.

17.2 Notifications

URL: /notifications

Admins receive notifications via email and/or WhatsApp depending on the configuration set by the Superadmin. Below is the full list of notification types by category:

Table 17.1: Individual Booking Notifications

TypeDescription
New Booking CreatedA new booking has been created
Booking Submitted for ApprovalA new booking is awaiting admin approval
Booking ApprovedA booking has been approved
Booking RejectedA booking has been rejected
Booking CancelledA booking has been cancelled by user
Resource CollectedA resource has been collected by user
Resource ReturnedA resource has been returned by user
Booking ReminderReminder sent 24 hours before booking
Collection ReminderReminder to collect resource when booking starts
Return ReminderReminder sent 1 hour before return time
Overdue ReturnResource return is overdue

Table 17.2: Group Booking Notifications

TypeDescription
Group Booking CreatedA new group booking has been created
Group Booking ApprovedA group booking has been approved
Group Booking RejectedA group booking has been rejected
Group Booking CancelledA group booking has been cancelled
Group Resource CollectedGroup resources have been collected
Group Resource ReturnedGroup resources have been returned

Table 17.3: Purchase Request Notifications

TypeDescription
Purchase Request SubmittedA new purchase request has been submitted
Purchase Request EditedThe requester edited a Submitted request — re-check before approving
Purchase Request ApprovedA purchase request has been approved
Purchase Request RejectedA purchase request has been rejected
Purchase Request Pending PurchaseA purchase request is pending purchase
Purchase Request PurchasedA purchase request has been purchased

Table 17.4: Other Notifications

TypeDescription
Review SubmittedA new review has been submitted by a user
Note: Each notification type can be enabled or disabled by the Superadmin via the Notification Configuration page. Delivery channels (Email / WhatsApp) are also configured there.

18.0 Halaman Awam Public Page

Selain menggunakan sistem melalui log masuk, pengguna juga boleh mengakses beberapa fungsi melalui halaman awam (/) — tanpa perlu log masuk.

18.1 Halaman Utama

URL: /

Halaman utama memaparkan:

  • Logo dan nama aplikasi RD BookHub
  • Butang "Sign In" dan "Register here"

Halaman awam mempunyai 3 tab utama:

TabKeterangan
CalendarKalendar interaktif memaparkan semua tempahan mengikut bulan
Book ResourcesLayari dan tempah sumber, serta akses fungsi Collect, Return, Extend dan Cancel
User ManualManual pengguna lengkap untuk rujukan

18.2 Layari Sumber Awam

Fungsi layari sumber di halaman awam serupa dengan halaman /resources selepas log masuk.

Jadual 18.1: Penapis Sumber Awam

PenapisKeterangan
Search ResourceCari mengikut nama sumber (live search)
CategoryTapis mengikut kategori
Start Date / End DateTarikh mula dan tamat
Start Time / End TimeMasa mula dan tamat

Jadual 18.2: Petunjuk Status Penapis

BadgeKeterangan
Filters applied...Penapis telah digunakan — sumber tersedia ditunjukkan dahulu
Apply filters...Sila gunakan penapis untuk melihat ketersediaan

18.3 Tempahan Melalui Halaman Awam

Pengguna boleh membuat tempahan tanpa log masuk melalui halaman awam.

Jadual 18.3: Langkah Tempahan Awam

LangkahTindakan
1Di halaman awam, tetapkan tarikh dan masa menggunakan penapis (Start Date, Start Time, End Date, End Time) dan klik "Apply Filters"
2Sistem akan menunjukkan sumber yang Available dan Unavailable untuk masa tersebut
3Klik butang "Book" pada sumber yang tersedia
4Borang tempahan muncul dengan tarikh/masa dipra-isi dan dikunci
5Pilih "Add to Cart" untuk menambah lagi sumber, atau "Book Now" untuk terus ke troli
6Di halaman troli (/public-cart), semak item dan klik "Checkout"
7Modal pengesahan muncul — isi Tujuan (wajib), Peserta (pilihan), dan IC 4 Digit Terakhir
8Klik "Confirm & Checkout" — tempahan dicipta secara automatik
Penting: Pengguna mesti menetapkan tarikh dan masa melalui penapis di halaman layari terlebih dahulu. Tarikh/masa akan dipra-isi dan tidak boleh diubah di borang tempahan. Butang "Book" hanya muncul pada sumber yang tersedia.

Jadual 18.4: Medan Checkout Tempahan Awam

MedanKeteranganWajib?
ResourceSumber yang dipilih (dipra-isi dan dikunci)Ya (auto)
Start Date & TimeTarikh dan masa mula (dipra-isi dan dikunci dari penapis)Ya (auto)
End Date & TimeTarikh dan masa tamat (dipra-isi dan dikunci dari penapis)Ya (auto)
PurposeTujuan tempahan (diisi semasa checkout)Ya
ParticipantsSenarai peserta (diisi semasa checkout, auto-complete)Tidak
IC Last 4 DigitsPengesahan identiti (diisi semasa checkout)Ya
Pendaftaran: Jika IC pengguna tidak dijumpai semasa checkout, sistem akan memaparkan borang pendaftaran akaun baru. Selepas mendaftar, sahkan e-mel, kemudian masukkan semula IC untuk meneruskan checkout.
Nota: Troli awam disimpan dalam sesi pelayar — kekal walaupun refresh halaman, tetapi hilang apabila sesi tamat atau pelayar ditutup. Semakan tarikh akhir tempahan dan konflik masa turut dilakukan semasa Add to Cart.

18.4 Kalendar Awam

Kalendar interaktif di halaman awam menunjukkan semua tempahan:

  • Navigasi: Anak panah kiri/kanan untuk tukar bulan
  • Penapis pengguna: Dropdown "All Users" sebagai lalai
  • Info Status: Klik ikon (di sebelah kanan bar penapis) untuk melihat panduan maksud setiap status tempahan (Pending, Approved, Rejected, Cancelled, Collected, Returned, Overdue, Completed, Missed)
  • Tempahan individu dan kumpulan dipaparkan dengan badge status
  • Klik pada tempahan untuk melihat butiran dalam modal

18.5 Kutipan Melalui Halaman Awam

Jadual 18.5: Langkah Kutipan Awam

LangkahTindakan
1Klik tab "Book Resources" di halaman utama
2Klik butang "Collect"
3Masukkan IC Last 4 Digits
4Pilih tempahan yang hendak dikutip
5Isi nota keadaan dan muat naik gambar (minimum 1, maks 3)
6Klik "Confirm Collection"
Nota: Syarat kutipan sama: Status = Approved, masa semasa ≥ tarikh mula, ≤ tarikh tamat.

18.6 Pemulangan Melalui Halaman Awam

Jadual 18.6: Langkah Pemulangan Awam

LangkahTindakan
1Klik tab "Book Resources" di halaman utama
2Klik butang "Return"
3Masukkan IC Last 4 Digits
4Pilih tempahan dan tetapkan status setiap sumber (Returned / Missing)
5Isi nota pemulangan (wajib jika Missing) dan muat naik gambar
6Klik "Confirm Return"

Jadual 18.7: Keputusan Pemulangan

KeputusanIkonKeterangan
Semua dipulangkanHijau"Returned!"
Ada item hilangKuning"Returned with Missing Items"
Sebahagian gagalMerah"Partial Success"

18.7 Pelanjutan Melalui Halaman Awam

Jadual 18.8: Langkah Pelanjutan Awam

LangkahTindakan
1Klik tab "Book Resources" di halaman utama
2Klik butang "Extend"
3Masukkan IC Last 4 Digits
4Pilih tempahan yang hendak dilanjutkan (boleh pilih semua atau sebahagian)
5Tetapkan tarikh dan masa tamat baharu
6Klik "Extend Booking" atau "Extend Selected"
Nota: Hanya tempahan dengan status Approved, Collected atau Overdue boleh dilanjutkan. Sistem akan menyemak ketersediaan sumber secara automatik.

18.8 Pembatalan Melalui Halaman Awam

Jadual 18.9: Langkah Pembatalan Awam

LangkahTindakan
1Klik tab "Book Resources" di halaman utama
2Klik butang "Cancel"
3Masukkan IC Last 4 Digits
4Pilih tempahan yang hendak dibatalkan (boleh pilih semua atau sebahagian)
5Masukkan sebab pembatalan (wajib)
6Klik "Cancel Booking" atau "Cancel Selected"
Amaran: Pembatalan tidak boleh dibuat semula. Hanya tempahan dengan status Pending atau Approved boleh dibatalkan.

Besides using the system through login, users can also access some functions via the public page (/) — without logging in.

18.1 Welcome Page

URL: /

The welcome page displays:

  • Logo and application name RD BookHub
  • "Sign In" and "Register here" buttons

The public page has 3 main tabs:

TabDescription
CalendarInteractive calendar displaying all bookings by month
Book ResourcesBrowse and book resources, plus access Collect, Return, Extend and Cancel functions
User ManualComplete user manual for reference

18.2 Public Resource Browse

The public resource browsing functions similarly to the /resources page after login.

Table 18.1: Public Resource Filters

FilterDescription
Search ResourceSearch by resource name (live search)
CategoryFilter by category
Start Date / End DateStart and end dates
Start Time / End TimeStart and end times

Table 18.2: Filter Status Indicators

BadgeDescription
Filters applied...Filters have been applied — available resources shown first
Apply filters...Please apply filters to see availability

18.3 Public Booking

Users can create bookings without logging in via the public page.

Table 18.3: Public Booking Steps

StepAction
1On the public page, set the date and time using the filters (Start Date, Start Time, End Date, End Time) and click "Apply Filters"
2The system will show resources that are Available and Unavailable for that time
3Click the "Book" button on an available resource
4The booking form appears with date/time pre-filled and locked
5Choose "Add to Cart" to add more resources, or "Book Now" to go directly to the cart
6On the cart page (/public-cart), review items and click "Checkout"
7A confirmation modal appears — enter Purpose (required), Participants (optional), and IC Last 4 Digits
8Click "Confirm & Checkout" — bookings are created automatically
Important: Users must set the date and time via the filters on the browse page first. The date/time will be pre-filled and cannot be changed on the booking form. The "Book" button only appears on available resources.

Table 18.4: Public Booking Checkout Fields

FieldDescriptionRequired?
ResourceSelected resource (pre-filled and locked)Yes (auto)
Start Date & TimeStart date and time (pre-filled and locked from filters)Yes (auto)
End Date & TimeEnd date and time (pre-filled and locked from filters)Yes (auto)
PurposeBooking purpose (entered at checkout)Yes
ParticipantsParticipant list (entered at checkout, auto-complete)No
IC Last 4 DigitsIdentity verification (entered at checkout)Yes
Registration: If the user's IC is not found during checkout, the system will display a new account registration form. After registering, verify the email, then re-enter IC to proceed with checkout.
Note: The public cart is stored in the browser session — it persists through page refreshes but is lost when the session expires or the browser is closed. Booking deadline and time conflict checks are also performed during Add to Cart.

18.4 Public Calendar

An interactive calendar on the public page displays all bookings:

  • Navigation: Left/right arrows to change month
  • User filter: Dropdown with "All Users" as default
  • Status Info: Click the icon (right side of filter bar) to view a guide explaining what each booking status means (Pending, Approved, Rejected, Cancelled, Collected, Returned, Overdue, Completed, Missed)
  • Individual and group bookings displayed with status badges
  • Click on a booking to view details in a modal

18.5 Public Collection

Table 18.5: Public Collection Steps

StepAction
1Click the "Book Resources" tab on the welcome page
2Click the "Collect" button
3Enter IC Last 4 Digits
4Select the booking to collect
5Fill in condition notes and upload photos (min 1, max 3)
6Click "Confirm Collection"
Note: Same collection conditions apply: Status = Approved, current time ≥ start date, ≤ end date.

18.6 Public Return

Table 18.6: Public Return Steps

StepAction
1Click the "Book Resources" tab on the welcome page
2Click the "Return" button
3Enter IC Last 4 Digits
4Select the booking and set each resource status (Returned / Missing)
5Fill in return notes (mandatory if Missing) and upload photos
6Click "Confirm Return"

Table 18.7: Return Results

ResultIconDescription
All returnedGreen"Returned!"
Missing itemsYellow"Returned with Missing Items"
Partial failureRed"Partial Success"

18.7 Public Extend

Table 18.8: Public Extend Steps

StepAction
1Click the "Book Resources" tab on the welcome page
2Click the "Extend" button
3Enter IC Last 4 Digits
4Select bookings to extend (select all or individual)
5Set a new end date and time
6Click "Extend Booking" or "Extend Selected"
Note: Only bookings with status Approved, Collected or Overdue can be extended. The system will automatically check resource availability.

18.8 Public Cancel

Table 18.9: Public Cancel Steps

StepAction
1Click the "Book Resources" tab on the welcome page
2Click the "Cancel" button
3Enter IC Last 4 Digits
4Select bookings to cancel (select all or individual)
5Enter a cancellation reason (required)
6Click "Cancel Booking" or "Cancel Selected"
Warning: Cancellations cannot be undone. Only bookings with status Pending or Approved can be cancelled.

19.0 Laporan Tempahan Booking Reports

URL: /admin/reports

Halaman Laporan menyediakan analitik dan statistik tempahan secara menyeluruh. Akses melalui menu Analytics > Reports di sidebar.

19.1 Penapis

Gunakan penapis di bahagian atas untuk menapis data laporan:

  • Tahun — Pilih tahun tertentu atau "All Years"
  • Tarikh Mula / Tarikh Akhir — Julat tarikh tertentu
  • Kategori — Tapis mengikut kategori sumber

Klik Reset untuk menetapkan semula semua penapis.

19.2 Kad Statistik

Empat kad statistik dipaparkan di bahagian atas:

  • Total Bookings — Jumlah keseluruhan tempahan
  • Cancelled — Bilangan dan peratusan tempahan yang dibatalkan
  • Most Active User — Pengguna yang paling banyak membuat tempahan
  • Most Popular Resource — Sumber yang paling kerap ditempah

19.3 Carta

Tiga carta interaktif dipaparkan:

  • Bookings per Month — Carta bar menunjukkan jumlah tempahan bulanan
  • Status Distribution — Carta donut menunjukkan taburan status tempahan
  • Category Breakdown — Carta bar mendatar menunjukkan tempahan mengikut kategori

Carta dikemaskini secara automatik apabila penapis diubah.

19.4 Jadual Data

Empat jadual dipaparkan dalam dua lajur:

  • Top 10 Bookers — Senarai 10 pengguna yang paling aktif membuat tempahan
  • Top 10 Most Booked Resources — Senarai 10 sumber yang paling kerap ditempah
  • Department Breakdown — Pecahan tempahan mengikut jabatan
  • Cancelled Bookings — Senarai 20 tempahan yang dibatalkan terkini

19.5 Eksport

Dua pilihan eksport tersedia:

  • Excel — Muat turun fail .xlsx dengan semua data laporan dalam satu helaian
  • PDF — Muat turun fail .pdf (landskap A4) dengan logo RD, semua statistik dan jadual

URL: /admin/reports

The Reports page provides comprehensive booking analytics and statistics. Access it via Analytics > Reports in the sidebar.

19.1 Filters

Use the filters at the top to narrow down report data:

  • Year — Select a specific year or "All Years"
  • Date From / Date To — Specific date range
  • Category — Filter by resource category

Click Reset to clear all filters.

19.2 Statistics Cards

Four statistics cards are displayed at the top:

  • Total Bookings — Overall booking count
  • Cancelled — Number and percentage of cancelled bookings
  • Most Active User — User with the most bookings
  • Most Popular Resource — Most frequently booked resource

19.3 Charts

Three interactive charts are displayed:

  • Bookings per Month — Bar chart showing monthly booking counts
  • Status Distribution — Doughnut chart showing booking status breakdown
  • Category Breakdown — Horizontal bar chart showing bookings by category

Charts update automatically when filters are changed.

19.4 Data Tables

Four tables are displayed in a two-column layout:

  • Top 10 Bookers — Top 10 most active users
  • Top 10 Most Booked Resources — Top 10 most frequently booked resources
  • Department Breakdown — Booking count by department
  • Cancelled Bookings — Latest 20 cancelled bookings

19.5 Export

Two export options are available:

  • Excel — Download an .xlsx file with all report data in a single sheet
  • PDF — Download a .pdf file (landscape A4) with RD logo, all statistics and tables

19.5 Pengurusan Maklum Balas (Feedback Management) Feedback Management

URL: /admin/feedback

Modul pengurusan maklum balas membolehkan anda melihat, membalas, mengemas kini status, dan memadam maklum balas daripada kakitangan dan pengguna awam.

19.5.1 Lihat Semua Maklum Balas

  • Senarai semua maklum balas dipaparkan dengan penapis kategori dan status
  • Klik pada maklum balas untuk melihat butiran penuh termasuk gambar lampiran

19.5.2 Kemaskini Status

Tukar status maklum balas mengikut keperluan:

Jadual 19.5.2: Status Maklum Balas

StatusKeterangan
SubmittedBaru dihantar
In ReviewSedang disemak
In ProgressSedang dilaksanakan
CompletedSelesai
RejectedTidak diterima

19.5.3 Balas Maklum Balas

  • Tulis balasan di ruangan "Write a Reply" dan klik "Send Reply"
  • Penghantar akan diberitahu melalui notifikasi, e-mel, dan WhatsApp

19.5.4 Padam Maklum Balas

Klik butang "Delete" untuk memadam maklum balas. Tindakan ini tidak boleh dibatalkan.

URL: /admin/feedback

The feedback management module allows you to view, reply, update status, and delete feedback from staff and public users.

19.5.1 View All Feedback

  • All feedback is listed with category and status filters
  • Click on a feedback to view full details including image attachments

19.5.2 Update Status

Change the feedback status as needed:

Table 19.5.2: Feedback Status

StatusDescription
SubmittedNewly submitted
In ReviewUnder review
In ProgressBeing implemented
CompletedDone
RejectedNot accepted

19.5.3 Reply to Feedback

  • Write a reply in the "Write a Reply" section and click "Send Reply"
  • The submitter will be notified via notification, email, and WhatsApp

19.5.4 Delete Feedback

Click the "Delete" button to remove feedback. This action cannot be undone.

20.0 Rujukan Status Status Reference

Berikut ialah senarai status tempahan yang digunakan dalam sistem RD BookHub.

Jadual 20.1: Senarai Status Tempahan

Below is the list of booking statuses used in the RD BookHub system.

Table 20.1: Booking Status List

Status WarnaColour KeteranganDescription
Pending KuningYellow Menunggu kelulusan adminAwaiting admin approval
Approved HijauGreen Diluluskan, sedia untuk kutipanApproved, ready for collection
Rejected MerahRed Tidak diluluskanNot approved
Collected Biru mudaLight Blue Sumber telah dikutipResource has been collected
Overdue Merah mudaLight Red Lewat dipulangkan (tarikh tamat sudah lepas)Past the return deadline
Completed SianCyan Tempahan selesai — sumber tanpa kutipan fizikal (cth: bilik mesyuarat) selepas tarikh tamatBooking completed — non-collection resource (e.g. meeting room) past end date
Missed OrenOrange Diluluskan tetapi tidak dikutip (tarikh tamat sudah lepas) — sumber memerlukan kutipan fizikalApproved but not collected (past end date) — resource requires physical collection
Returned BiruBlue Sumber telah dipulangkanResource has been returned
Cancelled KelabuGrey Tempahan dibatalkanBooking cancelled

20.1 Aliran Status 20.1 Status Flow

Pending Approved Collected Returned
Pending juga boleh → Rejected / Cancelled Pending may also → Rejected / Cancelled
Approved yang tidak dikutip selepas tarikh tamat → Missed (paparan sahaja, sumber memerlukan kutipan) Approved not collected after end date → Missed (display only, collection-required resources)
Approved selepas tarikh tamat (tanpa kutipan fizikal) → Completed (paparan sahaja, cth: bilik mesyuarat) Approved past end date (no physical collection) → Completed (display only, e.g. meeting rooms)

MANUAL PENGGUNA USER MANUAL

RD BookHub

Peranan: Account Role: Account

VersiVersion : 1.0
TarikhDate : 19 June 2026
OrganisasiOrganisation : Revenue Discovery Sdn Bhd

1.0 Pengenalan Introduction

RD BookHub ialah sistem tempahan sumber yang juga merangkumi modul Permohonan Pembelian. Sebagai Account, anda bertanggungjawab mengurus semua permohonan pembelian yang berkaitan kewangan.

1.1 Keupayaan Account

Jadual 1.1: Fungsi Account

Bil.FungsiKeterangan
1Melihat Semua Permohonan PembelianMelihat semua permohonan dari semua kakitangan
2Meluluskan / Menolak PermohonanMeluluskan atau menolak permohonan pembelian
3Proses PembelianAuto-transition ke Pending Purchase (Save Account Details) & Complete Purchase ke Purchased
4Padam PermohonanMemadam permohonan pembelian yang tidak diperlukan
5Menghantar Permohonan SendiriMenghantar permohonan pembelian sendiri (mod peribadi)
6Tempahan SumberMenempah sumber seperti Staff (mod peribadi)
Nota: Dalam Mod Peribadi, Account berfungsi sama seperti Staff — boleh menempah sumber, menghantar permohonan pembelian, dan menghantar ulasan.

RD BookHub is a resource booking system that also includes a Purchase Request module. As an Account user, you are responsible for managing all finance-related purchase requests.

1.1 Account Capabilities

Table 1.1: Account Functions

No.FunctionDescription
1View All Purchase RequestsView all purchase requests from all staff
2Approve / Reject RequestsApprove or reject purchase requests
3Update Request StatusUpdate request status (Pending Purchase, Purchased)
4Delete RequestsDelete purchase requests that are no longer needed
5Submit Own RequestsSubmit your own purchase requests (personal mode)
6Book ResourcesBook resources like Staff (personal mode)
Note: In Personal Mode, Account users function like Staff — you can book resources, submit purchase requests, and submit reviews.

2.0 Log Masuk & Dashboard Login & Dashboard

2.1 Log Masuk

URL: /login

Masukkan e-mel dan kata laluan anda. Selepas log masuk berjaya, anda akan dibawa ke Dashboard Account.

2.2 Dashboard Account

URL: /dashboard

Dashboard memaparkan ringkasan statistik permohonan pembelian:

Jadual 2.1: Kad Statistik Dashboard

KadKeterangan
Total RequestsJumlah keseluruhan permohonan pembelian
Pending ReviewBilangan permohonan yang menunggu semakan
ApprovedBilangan permohonan yang telah diluluskan
Approved Cost (RM)Jumlah kos permohonan yang diluluskan

Di bawah kad statistik, terdapat jadual Permohonan Terkini yang memaparkan 5 permohonan terbaru dengan pautan ke halaman butiran.

2.1 Login

URL: /login

Enter your email and password. After successful login, you will be directed to the Account Dashboard.

2.2 Account Dashboard

URL: /dashboard

The dashboard displays a summary of purchase request statistics:

Table 2.1: Dashboard Stat Cards

CardDescription
Total RequestsTotal number of purchase requests
Pending ReviewNumber of requests awaiting review
ApprovedNumber of approved requests
Approved Cost (RM)Total cost of approved requests

Below the stat cards, a Recent Purchase Requests table shows the 5 most recent requests with links to their details page.

3.0 Mod Paparan View Mode

Account mempunyai dua mod paparan yang boleh ditukar melalui butang di sidebar:

Jadual 3.1: Mod Paparan

ModKeterangan
Mod AccountMelihat dan mengurus semua permohonan pembelian daripada semua kakitangan. Dashboard memaparkan statistik keseluruhan.
Mod PeribadiBerfungsi seperti Staff biasa. Melihat hanya permohonan dan tempahan sendiri. Boleh membuat tempahan dan menghantar permohonan pembelian baru.
Cara Tukar Mod: Klik butang "Personal" / "Account" pada sidebar untuk bertukar antara mod. Dashboard dan navigasi akan berubah mengikut mod yang dipilih.

Account users have two view modes that can be toggled via the sidebar button:

Table 3.1: View Modes

ModeDescription
Account ModeView and manage all purchase requests from all staff. Dashboard shows overall statistics.
Personal ModeFunctions like a regular Staff user. View only your own requests and bookings. Can create bookings and submit new purchase requests.
How to Switch: Click the "Personal" / "Account" button on the sidebar to toggle between modes. The dashboard and navigation will change according to the selected mode.

4.0 Senarai Permohonan Pembelian Purchase Request List

URL: /purchase-requests

Dalam mod account, halaman ini memaparkan semua permohonan pembelian daripada semua kakitangan.

Jadual 4.1: Lajur Senarai Permohonan

LajurKeterangan
Request #Nombor permohonan (cth: PR-20260327-ABC123) dan tarikh
VendorNama vendor / syarikat
Requested ByNama dan jabatan kakitangan yang membuat permohonan
ItemsBilangan item dan penerangan item pertama
Total (RM)Jumlah keseluruhan (Grand Total)
PriorityKeutamaan: Low Medium High Urgent
StatusStatus semasa permohonan
ActionsButang untuk melihat butiran dan memadam

URL: /purchase-requests

In account mode, this page displays all purchase requests from all staff.

Table 4.1: Request List Columns

ColumnDescription
Request #Request number (e.g. PR-20260327-ABC123) and date
VendorVendor / company name
Requested ByName and department of the requesting staff
ItemsItem count and first item description
Total (RM)Grand total amount
PriorityPriority: Low Medium High Urgent
StatusCurrent request status
ActionsButtons to view details and delete

5.0 Semak & Lulus / Tolak Permohonan Review & Approve / Reject

Klik pada permohonan untuk melihat butiran penuh. Tindakan yang tersedia bergantung kepada Grand Total permohonan berbanding ambang kelulusan semasa (RM 1,000).

Jadual 5.0: Siapa Meluluskan (Mengikut Jumlah)

JumlahTindakan Account
< RM 1,000Account meluluskan / menolak terus (butang Approve & Reject dipaparkan)
≥ RM 1,000Tunggu Admin yang dilantik luluskan. Account akan menerima notifikasi FYI, kemudian memproses pembelian selepas Approved

5.1 Lulus / Tolak Permohonan (< RM 1,000)

Untuk permohonan Submitted yang bernilai < RM 1,000:

  • Klik "Approve" untuk meluluskan. Komen pilihan boleh ditambah. Status bertukar kepada Approved.
  • Klik "Reject" untuk menolak. Sebab penolakan wajib diisi (maks 1000 aksara). Status bertukar kepada Rejected.

5.2 Semakan Account (Account Review) — Pilihan

Bahagian "FOR ACCOUNT USE ONLY" membolehkan Account merekodkan butiran penghantaran & pembayaran. Menyimpan butiran ini tidak menukar status permohonan — ia boleh dilakukan sebelum atau selepas kelulusan (asalkan status bukan Rejected atau Purchased).

Bila disabled: Untuk permohonan ≥ RM 1,000 yang masih Submitted, bahagian ini akan dikunci sehingga Admin meluluskan. Amaran akan dipaparkan: "Waiting for Admin approval." Sebaik sahaja Admin luluskan (status menjadi Approved), medan akan dibuka secara automatik.

Jadual 5.1: Medan Account Review

MedanKeteranganWajib?
Shipping MethodKaedah penghantaran: Delivery / Pick-Up / Sea ShippingYa
Payment MethodKaedah pembayaran: Cash / Credit / Online Banking / Shopee Pay / Shopee Pay Later / CardsYa
CommentsKomen atau nota tambahanTidak

Klik "Save Account Details" untuk menyimpan.

Auto-transition: Apabila status semasa ialah Approved, menyimpan butiran akan auto-mengubah status kepada Pending Purchase. Rujuk Seksyen 6 untuk aliran pembelian seterusnya.

5.3 Permohonan ≥ RM 1,000 (Kelulusan Admin)

Untuk permohonan bernilai ≥ RM 1,000, hanya Admin yang dilantik boleh meluluskan atau menolak. Account menerima notifikasi FYI semasa:

  • Permohonan dihantar (menunggu kelulusan Admin)
  • Admin meluluskan — Account kini boleh meneruskan pembelian
  • Admin menolak — tiada tindakan lanjut diperlukan
Penting: Setelah permohonan diluluskan atau ditolak, tindakan tersebut tidak boleh dibatalkan. Rejected adalah status akhir.

Selepas sebarang tindakan, notifikasi dihantar melalui:

  • Notifikasi dalam aplikasi (in-app)
  • E-mel (jika SMTP dikonfigurasi)
  • WhatsApp (jika Wabot dikonfigurasi)

5.4 Permohonan Telah Diubah Suai Oleh Pemohon

Staff boleh mengubah suai permohonan pembelian mereka sendiri selagi status masih Submitted. Apabila permohonan diubah suai:

  • Account & Admin akan menerima notifikasi (in-app, e-mel, WhatsApp jika dikonfigurasi)
  • Halaman butiran akan memaparkan metadata ubah suai: edit_count, edited_at, dan edited_by
  • Sebaik sahaja Approve atau Reject dijalankan, permohonan terkunci dan Staff tidak lagi boleh mengubah suai
Amalan Baik: Sekiranya anda melihat permohonan yang baru diubah suai, semak semula maklumat vendor, item, harga, dan lampiran terkini sebelum meluluskan atau menolak.

Click a request to view full details. The available actions depend on the request's Grand Total compared to the current approval threshold (RM 1,000).

Table 5.0: Who Approves (By Amount)

AmountAccount's Role
< RM 1,000Account approves / rejects directly (Approve & Reject buttons appear)
≥ RM 1,000Wait for the assigned Admin to approve. Account receives an FYI notification, then processes the purchase once Approved

5.1 Approve / Reject Requests (< RM 1,000)

For Submitted requests under RM 1,000:

  • Click "Approve" to approve. Optional comments can be added. Status changes to Approved.
  • Click "Reject" to reject. A rejection reason is mandatory (max 1000 characters). Status changes to Rejected.

5.2 Account Review — Optional

The "FOR ACCOUNT USE ONLY" section lets Account record shipping & payment details. Saving these details does not change the request status — it can be done before or after approval (as long as the status is not Rejected or Purchased).

When disabled: For requests ≥ RM 1,000 that are still Submitted, this section is locked until the Admin approves. A warning is shown: "Waiting for Admin approval." Fields unlock automatically once the Admin approves (status becomes Approved).

Table 5.1: Account Review Fields

FieldDescriptionRequired?
Shipping MethodDelivery method: Delivery / Pick-Up / Sea ShippingYes
Payment MethodPayment method: Cash / Credit / Online Banking / Shopee Pay / Shopee Pay Later / CardsYes
CommentsOptional comments or notesNo

Click "Save Account Details" to save.

Auto-transition: When the current status is Approved, saving these details automatically moves the status to Pending Purchase. See Section 6 for the next steps.

5.3 Requests ≥ RM 1,000 (Admin Approval)

For requests of RM 1,000 or more, only the assigned Admin may approve or reject. Account receives FYI notifications when:

  • A request is submitted (awaiting Admin approval)
  • Admin approves — Account may now proceed with the purchase
  • Admin rejects — no further action required
Important: Once a request is approved or rejected, the action cannot be undone. Rejected is a terminal status.

After any action, notifications are sent via:

  • In-app notification
  • Email (if SMTP is configured)
  • WhatsApp (if Wabot is configured)

5.4 Requester Edits a Submitted Request

Staff can edit their own purchase requests as long as the status is still Submitted. When a request is edited:

  • Account & Admin receive a notification (in-app, email, WhatsApp if configured)
  • The details page displays edit metadata: edit_count, edited_at, and edited_by
  • Once Approve or Reject is performed, the request is locked and Staff can no longer edit it
Best Practice: If you see a recently edited request, re-verify the vendor, items, pricing, and attachments before approving or rejecting.

6.0 Proses Pembelian Purchase Processing

Selepas permohonan berstatus Approved (sama ada diluluskan oleh Account untuk < RM 1,000 atau oleh Admin untuk ≥ RM 1,000), Account menguruskan proses pembelian melalui 2 langkah automatik:

6.1 Langkah 1: Approved → Pending Purchase (Auto)

Di bahagian "FOR ACCOUNT USE ONLY", pilih Shipping Method dan Payment Method, kemudian klik "Save Account Details".

Auto-transition: Apabila status semasa ialah Approved, menyimpan butiran akan auto-mengubah status kepada Pending Purchase. Staff pemohon akan menerima notifikasi.

6.2 Langkah 2: Pending Purchase → Purchased (Complete Purchase)

Selepas pembelian sebenar dibuat, isi bahagian "FOR OFFICE USE ONLY" dan klik butang biru "Complete Purchase".

Jadual 6.2: Medan Office Use

MedanKeteranganWajib untuk Complete Purchase?
Date Request ReceivedTarikh permohonan diterimaTidak
Date OrderedTarikh pesanan dibuatYa
ConfirmationNombor pengesahan pesananYa
BuyerOrang yang membuat pesananYa
How OrderedKaedah pesanan: Vendor / Shopee / PO# / OthersYa
Penting: Complete Purchase adalah tindakan akhir — sebaik sahaja status jadi Purchased, tiada perubahan boleh dibuat. Satu dialog pengesahan akan dipaparkan sebelum transition.
Butang "Save Office Use": Kalau anda mahu simpan progress tanpa tutup PR (cth: ada medan belum dapat dari vendor), klik "Save Office Use". Butang ini menyimpan semua medan tanpa mengubah status — fleksibel untuk draft.

6.3 Aliran Status Penuh

Aliran utama (< RM 1,000 — diluluskan oleh Account):

Submitted Approved Pending Purchase Purchased

Aliran utama (≥ RM 1,000 — diluluskan oleh Admin):

Submitted Approved Pending Purchase Purchased

Submitted Rejected
Nota: Status Rejected dan Purchased adalah status akhir — tiada perubahan lanjut boleh dibuat.

Once a request reaches Approved status (either approved by Account for < RM 1,000 or by Admin for ≥ RM 1,000), Account handles the purchase through 2 automated steps:

6.1 Step 1: Approved → Pending Purchase (Auto)

In the "FOR ACCOUNT USE ONLY" section, select the Shipping Method and Payment Method, then click "Save Account Details".

Auto-transition: When the current status is Approved, saving these details automatically moves the status to Pending Purchase. The requester receives a notification.

6.2 Step 2: Pending Purchase → Purchased (Complete Purchase)

Once the actual purchase is made, fill in the "FOR OFFICE USE ONLY" section and click the blue "Complete Purchase" button.

Table 6.2: Office Use Fields

FieldDescriptionRequired for Complete Purchase?
Date Request ReceivedDate the request was receivedNo
Date OrderedDate the order was placedYes
ConfirmationOrder confirmation numberYes
BuyerPerson who placed the orderYes
How OrderedOrder method: Vendor / Shopee / PO# / OthersYes
Important: Complete Purchase is a final action — once the status becomes Purchased, no further changes are possible. A confirmation dialog appears before the transition.
"Save Office Use" button: If you want to save progress without closing the PR (e.g. some fields are still pending from the vendor), click "Save Office Use". This button saves all fields without changing the status — useful for drafts.

6.3 Full Status Flow

Happy path (< RM 1,000 — approved by Account):

Submitted Approved Pending Purchase Purchased

Happy path (≥ RM 1,000 — approved by Admin):

Submitted Approved Pending Purchase Purchased

Submitted Rejected
Note: Rejected and Purchased are terminal statuses — no further changes can be made.

7.0 Butiran Permohonan Request Details

URL: /purchase-requests/{id}

Halaman butiran memaparkan maklumat lengkap termasuk:

  • Maklumat item (nama, jenama, harga, kuantiti, kategori)
  • Keutamaan dan justifikasi
  • Pautan produk dan lampiran gambar
  • Maklumat penghantar dan tarikh
  • Maklumat penyemak, tarikh semakan, dan komen
  • Butang tindakan (Approve / Reject / Complete Purchase) mengikut status semasa

7.1 Maklumat Yang Dipaparkan

Jadual 7.1: Bahagian Butiran

BahagianKeterangan
Request InformationNombor permohonan, tarikh, status, dan keutamaan
Item DetailsNama item, jenama/model, kategori, kuantiti, harga anggaran
JustificationSebab permohonan yang diberikan oleh pemohon
Product LinkPautan ke produk (jika ada)
AttachmentsGambar/fail yang dilampirkan oleh pemohon
Review InformationNama penyemak, tarikh semakan, komen (selepas disemak)

URL: /purchase-requests/{id}

The details page displays complete information including:

  • Item information (name, brand, price, quantity, category)
  • Priority and justification
  • Product link and image attachments
  • Requester information and date
  • Reviewer information, review date, and comments
  • Action buttons (Approve / Reject / Complete Purchase) based on current status

7.1 Displayed Information

Table 7.1: Detail Sections

SectionDescription
Request InformationRequest number, date, status, and priority
Item DetailsItem name, brand/model, category, quantity, estimated price
JustificationReason for the request provided by the requester
Product LinkLink to product (if provided)
AttachmentsImages/files attached by the requester
Review InformationReviewer name, review date, comments (after review)

8.0 Padam Permohonan Delete Request

Account boleh memadam permohonan pembelian melalui butang padam di senarai permohonan.

  • Klik ikon padam (tong sampah) pada baris permohonan yang ingin dipadam
  • Satu dialog pengesahan akan dipaparkan
  • Klik "Yes, delete" untuk mengesahkan pemadaman
Nota: Pemadaman menggunakan soft delete — data tidak dipadam secara kekal dan boleh dipulihkan jika diperlukan oleh pentadbir sistem.

Account users can delete purchase requests via the delete button on the request list.

  • Click the delete icon (trash bin) on the request row you want to delete
  • A confirmation dialog will appear
  • Click "Yes, delete" to confirm the deletion
Note: Deletion uses soft delete — data is not permanently removed and can be recovered if needed by system administrators.

9.0 Mod Peribadi Personal Mode

Dalam mod peribadi, Account bertindak seperti Staff biasa:

  • Melihat hanya permohonan pembelian sendiri
  • Boleh mencipta permohonan pembelian baru di /purchase-requests/create
  • Baru: Boleh mengubah suai permohonan sendiri yang masih berstatus Submitted melalui ikon pensel di senarai (/purchase-requests/{id}/edit)
  • Baru: Borang permohonan & modal kutipan/pemulangan kini menyokong Ctrl+V (tampal tangkapan skrin) dan seret & lepas fail
  • Boleh menempah sumber di /bookings/create
  • Melihat hanya tempahan sendiri
  • Boleh menghantar ulasan

9.1 Navigasi Mod Peribadi

Dalam mod peribadi, sidebar menunjukkan navigasi seperti Staff:

Jadual 9.1: Menu Mod Peribadi

MenuKeterangan
DashboardDashboard peribadi dengan ringkasan tempahan
Browse ResourcesLayari sumber yang tersedia
My BookingsSenarai tempahan anda
Purchase RequestsPermohonan pembelian anda sahaja

In personal mode, Account functions like a regular Staff user:

  • View only your own purchase requests
  • Create new purchase requests at /purchase-requests/create
  • New: Edit your own requests while they are still Submitted via the pencil icon in the list (/purchase-requests/{id}/edit)
  • New: Request forms & collection/return modals now support Ctrl+V (paste screenshots) and drag & drop file uploads
  • Book resources at /bookings/create
  • View only your own bookings
  • Submit reviews

9.1 Personal Mode Navigation

In personal mode, the sidebar shows Staff-like navigation:

Table 9.1: Personal Mode Menu

MenuDescription
DashboardPersonal dashboard with booking summary
Browse ResourcesBrowse available resources
My BookingsList of your bookings
Purchase RequestsYour purchase requests only

10.0 Profil & Notifikasi Profile & Notifications

10.1 Profil

URL: /profile

Anda boleh mengemaskini maklumat profil termasuk:

  • Nama
  • E-mel
  • Nombor telefon
  • Kata laluan

10.2 Notifikasi

Account menerima notifikasi untuk:

Jadual 10.1: Jenis Notifikasi

PeristiwaKeterangan
Purchase Request SubmittedPermohonan baru — Action Required jika < RM 1,000 (Account luluskan), FYI jika ≥ RM 1,000 (menunggu Admin)
Purchase Request ApprovedPermohonan diluluskan — jika diluluskan Admin, Account menerima notifikasi "ready for purchase" untuk teruskan pembelian
Purchase Request RejectedNotifikasi apabila permohonan ditolak
Purchase Request EditedPemohon mengubah suai permohonan yang masih Submitted
Purchase Request Pending PurchaseNotifikasi apabila status dikemaskini ke Pending Purchase
Purchase Request PurchasedNotifikasi apabila item permohonan telah dibeli

Notifikasi dipaparkan melalui ikon loceng di bahagian atas halaman. Klik ikon untuk melihat senarai notifikasi.

10.1 Profile

URL: /profile

You can update your profile information including:

  • Name
  • Email
  • Phone number
  • Password

10.2 Notifications

Account users receive notifications for:

Table 10.1: Notification Types

EventDescription
Purchase Request SubmittedNew request — Action Required if < RM 1,000 (Account approves), FYI if ≥ RM 1,000 (awaiting Admin)
Purchase Request ApprovedRequest approved — if approved by Admin, Account receives a "ready for purchase" notification to proceed
Purchase Request RejectedNotification when a request is rejected
Purchase Request EditedRequester edited a still-Submitted request
Purchase Request Pending PurchaseNotification when status is updated to Pending Purchase
Purchase Request PurchasedNotification when a request item has been purchased

Notifications are displayed via the bell icon at the top of the page. Click the icon to view the notification list.

10.5 Maklum Balas (Feedback) Feedback

Sistem maklum balas membolehkan anda menghantar cadangan penambahbaikan, laporan pepijat, permintaan ciri baru, atau maklum balas umum kepada pentadbir.

10.5.1 Hantar Maklum Balas

  1. Pergi ke Feedback dari menu navigasi atau sidebar
  2. Klik "New Feedback"
  3. Isi borang:

    Jadual 10.5.1: Medan Borang Maklum Balas

    MedanKeteranganWajib?
    CategoryGeneral, Improvement, Bug Report, Feature RequestYa
    TitleTajuk ringkasYa
    DescriptionPenerangan terperinciYa
    ImagesSehingga 3 gambar (JPG/PNG/WebP, maks 5MB)Tidak
  4. Klik "Submit Feedback"

10.5.2 Lihat & Balas

  • Klik pada maklum balas untuk melihat butiran penuh
  • Tulis balasan di ruangan "Write a Reply" dan klik "Send Reply"
  • Admin akan diberitahu melalui notifikasi, e-mel, dan WhatsApp

10.5.3 Status Maklum Balas

Jadual 10.5.3: Status Maklum Balas

StatusKeterangan
SubmittedBaru dihantar
In ReviewSedang disemak
In ProgressSedang dilaksanakan
CompletedSelesai
RejectedTidak diterima

10.5.4 Maklum Balas Awam

Anda juga boleh menghantar maklum balas melalui halaman awam (/) → tab "Feedback". Masukkan 4 digit terakhir IC untuk pengesahan.

The feedback system allows you to submit improvement suggestions, bug reports, feature requests, or general feedback to administrators.

10.5.1 Submit Feedback

  1. Go to Feedback from the navigation menu or sidebar
  2. Click "New Feedback"
  3. Fill in the form:

    Table 10.5.1: Feedback Form Fields

    FieldDescriptionRequired?
    CategoryGeneral, Improvement, Bug Report, Feature RequestYes
    TitleBrief summaryYes
    DescriptionDetailed descriptionYes
    ImagesUp to 3 images (JPG/PNG/WebP, max 5MB each)No
  4. Click "Submit Feedback"

10.5.2 View & Reply

  • Click on a feedback to view full details
  • Write a reply in the "Write a Reply" section and click "Send Reply"
  • Admin will be notified via notification, email, and WhatsApp

10.5.3 Feedback Status

Table 10.5.3: Feedback Status

StatusDescription
SubmittedNewly submitted
In ReviewUnder review
In ProgressBeing implemented
CompletedDone
RejectedNot accepted

10.5.4 Public Feedback

You can also submit feedback from the public page (/) → "Feedback" tab. Enter your IC last 4 digits for verification.

11.0 Rujukan Status Status Reference

11.1 Status Permohonan Pembelian

Jadual 11.1: Senarai Status Permohonan

StatusWarnaKeterangan
SubmittedKuningPermohonan dihantar, menunggu semakan
ApprovedHijauPermohonan diluluskan
RejectedMerahPermohonan ditolak (status akhir)
Pending PurchaseOrenMenunggu pembelian
PurchasedBiruItem telah dibeli (status akhir)

11.2 Keutamaan Permohonan

Jadual 11.2: Tahap Keutamaan

KeutamaanWarnaKeterangan
LowKelabuKeperluan tidak mendesak
MediumBiruKeperluan sederhana
HighOrenKeperluan penting
UrgentMerahKeperluan segera

11.1 Purchase Request Statuses

Table 11.1: Request Status List

StatusColourDescription
SubmittedYellowRequest submitted, awaiting review
ApprovedGreenRequest approved
RejectedRedRequest rejected (terminal)
Pending PurchaseOrangeAwaiting purchase
PurchasedBlueItem has been purchased (terminal)

11.2 Request Priorities

Table 11.2: Priority Levels

PriorityColourDescription
LowGreyNon-urgent requirement
MediumBlueModerate requirement
HighOrangeImportant requirement
UrgentRedImmediate requirement

MANUAL PENGGUNA USER MANUAL

RD BookHub

Peranan: Superadmin Role: Superadmin

VersiVersion : 1.0
TarikhDate : 19 June 2026
OrganisasiOrganisation : Revenue Discovery Sdn Bhd

1.0 Pengenalan Introduction

Superadmin ialah peranan tertinggi dalam sistem RD BookHub. Superadmin bertanggungjawab untuk konfigurasi sistem, pengurusan pengguna, dan pemantauan keseluruhan.

1.1 Apa Yang Superadmin BOLEH Lakukan

Bil.Fungsi
1Melihat semua tempahan (paparan sahaja)
2Mengurus semua sumber (CRUD penuh)
3Mengurus semua pengguna (termasuk cipta Admin/Superadmin lain)
4Mengurus kategori dan jabatan
5Melihat log audit dan aktiviti pengguna
6Mengkonfigurasi tetapan tempahan
7Mengkonfigurasi e-mel (SMTP) dan WhatsApp
8Mengurus template notifikasi
9Menjalankan operasi sistem (cache, backup, optimize)
10Melantik Pelulus Admin & menetapkan ambang kelulusan untuk Permohonan Pembelian

1.2 Apa Yang Superadmin TIDAK BOLEH Lakukan

Bil.SekatanCatatan
1Meluluskan atau menolak tempahanIni hanya untuk Admin
2Mengutip atau memulangkan sumberIni untuk Staff/Admin sahaja
3Membuat tempahanSuperadmin tidak boleh menempah sumber
4Memberi ulasanUlasan hanya untuk pengguna yang telah menempah

Superadmin is the highest role in the RD BookHub system. The Superadmin is responsible for system configuration, user management, and overall monitoring.

1.1 What Superadmin CAN Do

No.Function
1View all bookings (view-only)
2Manage all resources (full CRUD)
3Manage all users (including creating other Admin/Superadmin accounts)
4Manage categories and departments
5View audit logs and user activity
6Configure booking settings
7Configure email (SMTP) and WhatsApp
8Manage notification templates
9Run system operations (cache, backup, optimize)
10Assign the Admin approver & configure the approval threshold for Purchase Requests

1.2 What Superadmin CANNOT Do

No.RestrictionRemark
1Approve or reject bookingsThis is for Admin only
2Collect or return resourcesThis is for Staff/Admin only
3Make bookingsSuperadmin cannot book resources
4Leave reviewsReviews are only for users who have made bookings

2.0 Log Masuk & Dashboard Login & Dashboard

2.1 Log Masuk

Gunakan IC Last 4 Digits dan Password di halaman /login.

2.2 Dashboard Superadmin

URL: /dashboard

2.2.1 Baris 1: Gambaran Keseluruhan Sistem

Jadual 2.1: Kad Gambaran Keseluruhan

KadKeterangan
Total UsersJumlah semua pengguna. Badge menunjukkan pecahan: SA (Superadmin), Admin, Staff
Total BookingsJumlah semua tempahan. Badge: Pending, Active (Collected), Overdue, Missed
Audit Logs (Today)Bilangan log audit hari ini

2.2.2 Baris 2: Statistik Sumber Mengikut Kategori

4 kad menunjukkan inventori sumber:

Jadual 2.2: Kad Statistik Sumber

KadKeterangan
Aset MarketingJumlah sumber marketing (total & available)
Aset ManagementJumlah sumber management
Aset ProjectJumlah sumber project
Aset SkellUpJumlah sumber SkellUp

2.2.3 Baris 3: Konfigurasi Sistem

Jadual 2.3: Kad Konfigurasi Sistem

KadKeterangan
Email ConfigurationStatus: Active/Inactive, SMTP Host, From Address
WhatsApp ConfigurationStatus: Active/Pending Setup, API Endpoint, API Key

2.2.4 Jadual Tempahan Terkini

Menunjukkan tempahan terkini dari semua pengguna:

  • Nombor tempahan
  • Maklumat pengguna (avatar, nama, e-mel)
  • Sumber dan kategori
  • Tarikh
  • Status badge (termasuk Overdue dan Missed)
  • Butang View untuk melihat butiran

2.1 Login

Use your IC Last 4 Digits and Password on the /login page.

2.2 Superadmin Dashboard

URL: /dashboard

2.2.1 Row 1: System Overview

Table 2.1: Overview Cards

CardDescription
Total UsersTotal number of all users. Badge shows breakdown: SA (Superadmin), Admin, Staff
Total BookingsTotal number of all bookings. Badge: Pending, Active (Collected), Overdue, Missed
Audit Logs (Today)Number of audit log entries for today

2.2.2 Row 2: Resource Statistics by Category

4 cards showing resource inventory:

Table 2.2: Resource Statistics Cards

CardDescription
Marketing AssetsTotal marketing resources (total & available)
Management AssetsTotal management resources
Project AssetsTotal project resources
SkellUp AssetsTotal SkellUp resources

2.2.3 Row 3: System Configuration

Table 2.3: System Configuration Cards

CardDescription
Email ConfigurationStatus: Active/Inactive, SMTP Host, From Address
WhatsApp ConfigurationStatus: Active/Pending Setup, API Endpoint, API Key

2.2.4 Recent Bookings Table

Displays recent bookings from all users:

  • Booking number
  • User information (avatar, name, email)
  • Resource and category
  • Date
  • Status badge (including Overdue and Missed)
  • View button to see details

3.0 Pengurusan Tempahan Booking Management

URL: /bookings

Superadmin boleh melihat semua tempahan tetapi tidak boleh meluluskan atau menolak.

3.1 Penapis

Jadual 3.1: Penapis Tempahan

PenapisKeterangan
SearchCari mengikut nombor tempahan, nama sumber, nama pengguna
StatusTapis mengikut status
CategoryTapis mengikut kategori

3.2 Tindakan

Jadual 3.2: Tindakan Yang Tersedia

TindakanTersedia?
View DetailsYa
ApproveTidak
RejectTidak
CollectTidak
ReturnTidak

3.3 Eksport

Klik "Export" untuk memuat turun senarai tempahan dalam format Excel.

Nota: Superadmin hanya boleh melihat tempahan. Kelulusan dan penolakan tempahan hanya boleh dilakukan oleh Admin.

URL: /bookings

The Superadmin can view all bookings but cannot approve or reject them.

3.1 Filters

Table 3.1: Booking Filters

FilterDescription
SearchSearch by booking number, resource name, user name
StatusFilter by status
CategoryFilter by category

3.2 Actions

Table 3.2: Available Actions

ActionAvailable?
View DetailsYes
ApproveNo
RejectNo
CollectNo
ReturnNo

3.3 Export

Click "Export" to download the booking list in Excel format.

Note: The Superadmin can only view bookings. Approval and rejection of bookings can only be performed by an Admin.

4.0 Pengurusan Sumber Resource Management

URL: /superadmin/resources/manage

Fungsi pengurusan sumber untuk Superadmin adalah sama seperti yang diterangkan dalam Manual Admin.

4.1 Operasi

Jadual 4.1: Operasi Sumber

TindakanURLKeterangan
Senarai/superadmin/resources/manageLihat semua sumber dengan penapis
Cipta/superadmin/resources/createTambah sumber baru
Lihat/superadmin/resources/{id}Butiran sumber, statistik tempahan, ulasan
Kemaskini/superadmin/resources/{id}/editUbah maklumat sumber
PadamDELETE /superadmin/resources/{id}Padam sumber (dengan pengesahan)
TogolPATCH /superadmin/resources/{id}/toggle-availabilityTukar ketersediaan

4.2 Medan Sumber

Jadual 4.2: Medan Borang Sumber

MedanKeterangan
Item NameNama sumber (wajib)
CategoryKategori (wajib)
Parent ItemSumber induk jika sub-item
QuantityBilangan unit
PriceHarga (RM)
Asset CodeKod aset
ConditionKeadaan: Good, Damaged, Under Maintenance, Missing
RemarksCatatan
Is AvailableBoleh ditempah?
Requires ApprovalPerlu kelulusan?
Requires CollectionPerlu kutipan fizikal?
ImageGambar (maks 5MB)

URL: /superadmin/resources/manage

The resource management functionality for Superadmin is the same as described in the Admin Manual.

4.1 Operations

Table 4.1: Resource Operations

ActionURLDescription
List/superadmin/resources/manageView all resources with filters
Create/superadmin/resources/createAdd a new resource
View/superadmin/resources/{id}Resource details, booking statistics, reviews
Update/superadmin/resources/{id}/editEdit resource information
DeleteDELETE /superadmin/resources/{id}Delete resource (with confirmation)
TogglePATCH /superadmin/resources/{id}/toggle-availabilityToggle availability

4.2 Resource Fields

Table 4.2: Resource Form Fields

FieldDescription
Item NameResource name (required)
CategoryCategory (required)
Parent ItemParent resource if sub-item
QuantityNumber of units
PricePrice (RM)
Asset CodeAsset code
ConditionCondition: Good, Damaged, Under Maintenance, Missing
RemarksNotes
Is AvailableCan it be booked?
Requires ApprovalDoes it require approval?
Requires CollectionDoes it require physical collection?
ImageImage (max 5MB)

5.0 Pengurusan Pengguna User Management

URL: /superadmin/users

5.1 Paparan

  • 4 kad statistik: Superadmins, Admins, Account, Staff
  • Penapis: Cari nama, tapis role/department/status
  • Jadual pengguna dengan pagination

5.2 Cipta Pengguna

URL: /superadmin/users/create

Jadual 5.1: Medan Borang Cipta Pengguna

MedanKeteranganWajib?
Full NameNama penuhYa
IC NumberNombor IC penuh (12 digit)Ya
EmailE-mel (unik)Ya
PhoneNombor telefonYa
DepartmentJabatanTidak
RoleStaff / Admin / Account / SuperadminYa
PasswordMinimum 8 aksaraYa
Profile PhotoGambar (maks 5MB)Tidak
Nota: Superadmin boleh mencipta pengguna dengan mana-mana peranan termasuk Superadmin dan Admin.

5.3 Kemaskini Pengguna

  • Ubah semua maklumat termasuk peranan
  • Urus pengesahan e-mel
  • Urus Two-Factor Authentication

5.4 Padam Pengguna

  • Modal pengesahan sebelum padam
  • Semak jika pengguna mempunyai tempahan aktif

URL: /superadmin/users

5.1 Overview

  • 4 statistics cards: Superadmins, Admins, Account, Staff
  • Filters: Search by name, filter by role/department/status
  • User table with pagination

5.2 Create User

URL: /superadmin/users/create

Table 5.1: Create User Form Fields

FieldDescriptionRequired?
Full NameFull nameYes
IC NumberFull IC number (12 digits)Yes
EmailEmail (unique)Yes
PhonePhone numberYes
DepartmentDepartmentNo
RoleStaff / Admin / Account / SuperadminYes
PasswordMinimum 8 charactersYes
Profile PhotoImage (max 5MB)No
Note: Superadmin can create users with any role including Superadmin and Admin.

5.3 Update User

  • Edit all information including role
  • Manage email verification
  • Manage Two-Factor Authentication

5.4 Delete User

  • Confirmation modal before deletion
  • Check if user has active bookings

6.0 Pengurusan Kategori Category Management

URL: /superadmin/categories

6.1 Operasi

Jadual 6.1: Operasi Kategori

TindakanKeterangan
CiptaTambah kategori baru (Name + Label + Badge Color)
KemaskiniUbah nama, label, warna lencana, status aktif
PadamPadam kategori
Amaran: Kategori tidak boleh dipadam jika masih ada sumber dalam kategori tersebut.

6.2 Medan

Jadual 6.2: Medan Borang Kategori

MedanKeteranganWajib?
NameNama teknikal (huruf kecil, cth: "equipment")Ya
LabelNama paparan (cth: "Equipment")Ya
Badge ColorWarna lencana kategori. Pilih warna menggunakan pemilih warna — pratonton lencana akan dipaparkan secara langsungTidak
Is ActiveStatus aktifYa
Nota: Lajur Badge Color pada jadual kategori memaparkan bulatan warna dan pratonton lencana bagi setiap kategori. Warna ini digunakan di seluruh sistem termasuk kad sumber, kalendar, dan senarai tempahan.

URL: /superadmin/categories

6.1 Operations

Table 6.1: Category Operations

ActionDescription
CreateAdd a new category (Name + Label + Badge Color)
UpdateEdit name, label, badge color, active status
DeleteDelete category
Warning: A category cannot be deleted if there are still resources assigned to it.

6.2 Fields

Table 6.2: Category Form Fields

FieldDescriptionRequired?
NameTechnical name (lowercase, e.g. "equipment")Yes
LabelDisplay name (e.g. "Equipment")Yes
Badge ColorCategory badge color. Pick a color using the color picker — a live badge preview is shownNo
Is ActiveActive statusYes
Note: The Badge Color column in the categories table displays a color circle and badge preview for each category. This color is used throughout the system including resource cards, calendar, and booking lists.

7.0 Pengurusan Jabatan Department Management

URL: /superadmin/departments

7.1 Operasi

Jadual 7.1: Operasi Jabatan

TindakanKeterangan
CiptaTambah jabatan (nama, penerangan, status)
KemaskiniUbah maklumat jabatan
PadamPadam jabatan
Amaran: Jabatan tidak boleh dipadam jika masih ada kakitangan dalam jabatan tersebut.

URL: /superadmin/departments

7.1 Operations

Table 7.1: Department Operations

ActionDescription
CreateAdd department (name, description, status)
UpdateEdit department information
DeleteDelete department
Warning: A department cannot be deleted if there are still staff members assigned to it.

8.0 Pengurusan Pelulus Permohonan Pembelian Purchase Request Approver Management

URL: /superadmin/approvers

Permohonan pembelian menggunakan penghalaan berasaskan jumlah (amount-based routing). Superadmin mengawal dua tetapan yang menentukan siapa meluluskan permohonan:

Jadual 8.1: Tetapan Pelulus

TetapanKeterangan
Admin ApproverSeorang pengguna berperanan Admin yang dilantik untuk meluluskan/menolak permohonan bernilai tinggi. Hanya user ini yang akan melihat butang Approve/Reject untuk permohonan ≥ ambang
Approval Threshold (RM)Ambang jumlah Grand Total. Permohonan < ambang diluluskan oleh Account; permohonan ≥ ambang diluluskan oleh Pelulus Admin di atas. Semasa: RM 1,000

Cara Konfigurasi:

  1. Pergi ke Manage Approvers dari sidebar (atau URL /superadmin/approvers)
  2. Pilih pengguna Admin dari senarai dropdown
  3. Masukkan nilai ambang dalam RM (cth: 1500 untuk RM 1,500)
  4. Klik Save. Perubahan berkuat kuasa serta-merta untuk permohonan baru
Penting: Jika tiada Pelulus Admin dilantik dan satu permohonan ≥ ambang dihantar, tiada orang akan dapat meluluskannya — mesej ralat dipaparkan kepada pengguna yang cuba meluluskan. Pastikan pelulus dilantik sebelum sistem digunakan.
Nota: Perubahan ambang atau pelulus tidak mengubah laluan kelulusan untuk permohonan yang sudah dihantar — laluan ditentukan ketika butang Approve/Reject ditekan, berdasarkan nilai terkini.

URL: /superadmin/approvers

Purchase requests use amount-based routing. The Superadmin controls two settings that determine who approves each request:

Table 8.1: Approver Settings

SettingDescription
Admin ApproverAn Admin user designated to approve/reject high-value requests. Only this user sees the Approve/Reject buttons for requests ≥ threshold
Approval Threshold (RM)Grand Total cutoff. Requests < threshold are approved by Account; requests ≥ threshold are approved by the Admin Approver above. Current: RM 1,000

How to Configure:

  1. Go to Manage Approvers from the sidebar (or URL /superadmin/approvers)
  2. Select an Admin user from the dropdown
  3. Enter the threshold value in RM (e.g. 1500 for RM 1,500)
  4. Click Save. Changes take effect immediately for new requests
Important: If no Admin Approver is assigned and a request ≥ threshold is submitted, nobody can approve it — an error message is shown to the user attempting to approve. Make sure an approver is assigned before the system is used.
Note: Changing the threshold or approver does not change the approval path of already-submitted requests — the path is determined when the Approve/Reject button is clicked, using the current values.

9.0 Log Audit Audit Logs

URL: /superadmin/audit-logs

9.1 Paparan

Senarai semua aktiviti sistem termasuk:

  • Cipta, kemaskini, padam rekod
  • Kelulusan/penolakan tempahan
  • Kutipan dan pemulangan sumber
  • Perubahan konfigurasi

9.2 Penapis

Jadual 9.1: Penapis Log Audit

PenapisKeterangan
UserTapis mengikut pengguna
ActionTapis: Create, Update, Delete
Date RangeTapis mengikut julat tarikh
SearchCari mengikut nama sumber

9.3 Butiran Log

Klik pada log untuk melihat:

  • Siapa yang melakukan tindakan
  • Bila tindakan dilakukan
  • Apa yang berubah (nilai lama → nilai baru)
  • Sumber/rekod yang terkesan

URL: /superadmin/audit-logs

9.1 Overview

List of all system activities including:

  • Create, update, delete records
  • Booking approvals/rejections
  • Resource collections and returns
  • Configuration changes

9.2 Filters

Table 9.1: Audit Log Filters

FilterDescription
UserFilter by user
ActionFilter: Create, Update, Delete
Date RangeFilter by date range
SearchSearch by resource name

9.3 Log Details

Click on a log entry to view:

  • Who performed the action
  • When the action was performed
  • What changed (old value → new value)
  • The resource/record affected

10.0 Aktiviti Pengguna User Activity

URL: /superadmin/user-activity

10.1 Paparan

  • Jejak log masuk/keluar pengguna
  • Sesi aktif pengguna
  • Sejarah tindakan pengguna
  • Penapis mengikut pengguna dan jenis tindakan

URL: /superadmin/user-activity

10.1 Overview

  • Track user login/logout activity
  • Active user sessions
  • User action history
  • Filter by user and action type

11.0 Tetapan Tempahan Booking Settings

URL: /superadmin/booking-settings

11.1 Tetapan Yang Tersedia

Jadual 11.1: Tetapan Tempahan

TetapanKeterangan
Booking Deadline (Days)Berapa hari sebelum tarikh mula tempahan mesti dibuat. Cth: 2 hari bermaksud kakitangan perlu menempah sekurang-kurangnya 2 hari kerja lebih awal
Default ApprovalTetapan kelulusan lalai untuk sumber baru
Default CollectionTetapan kutipan lalai untuk sumber baru
Nota: Admin boleh melangkaui tarikh akhir tempahan (deadline), tetapi Staff tidak boleh.

URL: /superadmin/booking-settings

11.1 Available Settings

Table 11.1: Booking Settings

SettingDescription
Booking Deadline (Days)How many days before the start date a booking must be made. E.g. 2 days means staff must book at least 2 working days in advance
Default ApprovalDefault approval setting for new resources
Default CollectionDefault collection setting for new resources
Note: Admin can bypass the booking deadline, but Staff cannot.

12.0 Konfigurasi Sistem System Configuration

12.1 Konfigurasi E-mel (Email Configuration)

URL: /superadmin/notifications/configuration

Jadual 12.1: Tetapan E-mel SMTP

TetapanKeterangan
SMTP HostPelayan e-mel (cth: smtp.gmail.com)
SMTP PortPort (cth: 587)
SMTP UsernameNama pengguna e-mel
SMTP PasswordKata laluan e-mel
From AddressAlamat penghantar
From NameNama penghantar
Nota: Klik "Test Email" untuk menghantar e-mel ujian dan mengesahkan konfigurasi.

12.2 Konfigurasi WhatsApp

URL: /superadmin/whatsapp/configuration

Jadual 12.2: Tetapan WhatsApp

TetapanKeterangan
API EndpointURL Wabot.my
API KeyKunci API untuk pengesahan
StatusActive / Inactive
Nota: Klik "Test WhatsApp" untuk menghantar mesej ujian.

12.3 Template Notifikasi

URL E-mel: /superadmin/notifications/templates/email

URL WhatsApp: /superadmin/notifications/templates/whatsapp

Urus template untuk pelbagai jenis notifikasi:

  • Tempahan diluluskan/ditolak
  • Peringatan kutipan/pemulangan
  • Notifikasi overdue
  • Item hilang

12.4 Suis Acara Notifikasi (Notification Events)

URL: /superadmin/notifications/configuration (Tab: Events)

Aktifkan atau nyahaktifkan setiap jenis notifikasi. Berikut ialah senarai acara notifikasi yang tersedia:

Jadual 12.3: Acara Notifikasi Tempahan Individu

AcaraKeterangan
Booking CreatedTempahan baru dicipta
Submitted for ApprovalTempahan dihantar untuk kelulusan
Booking ApprovedTempahan diluluskan
Booking RejectedTempahan ditolak
Booking CancelledTempahan dibatalkan
Resource CollectedSumber dikutip
Resource ReturnedSumber dipulangkan
Booking ExtendedTempahan dilanjutkan
Booking ReminderPeringatan 24 jam sebelum tempahan
Collection ReminderPeringatan untuk mengutip sumber apabila tempahan bermula
Return ReminderPeringatan 1 jam sebelum masa pemulangan
Overdue ReturnSumber lewat dipulangkan

Jadual 12.4: Acara Notifikasi Tempahan Kumpulan

AcaraKeterangan
Group Booking CreatedTempahan kumpulan dicipta
Group Booking ApprovedTempahan kumpulan diluluskan
Group Booking RejectedTempahan kumpulan ditolak
Group Booking CancelledTempahan kumpulan dibatalkan
Group Resource CollectedSumber kumpulan dikutip
Group Resource ReturnedSumber kumpulan dipulangkan
Group Booking ExtendedTempahan kumpulan dilanjutkan

Jadual 12.5: Acara Notifikasi Lain

AcaraKeterangan
Purchase Request SubmittedPermohonan dihantar — diagihkan kepada Account (action) atau Pelulus Admin (action) mengikut jumlah
Purchase Request EditedPemohon mengubah suai permohonan berstatus Submitted
Purchase Request ApprovedDiluluskan — Account menerima "ready for purchase" jika diluluskan Admin
Purchase Request RejectedPermohonan ditolak
Purchase Request Pending PurchaseStatus dikemaskini ke Pending Purchase oleh Account
Purchase Request PurchasedPembelian selesai
Review SubmittedUlasan baru dihantar

12.1 Email Configuration

URL: /superadmin/notifications/configuration

Table 12.1: SMTP Email Settings

SettingDescription
SMTP HostEmail server (e.g. smtp.gmail.com)
SMTP PortPort (e.g. 587)
SMTP UsernameEmail username
SMTP PasswordEmail password
From AddressSender address
From NameSender name
Note: Click "Test Email" to send a test email and verify the configuration.

12.2 WhatsApp Configuration

URL: /superadmin/whatsapp/configuration

Table 12.2: WhatsApp Settings

SettingDescription
API EndpointWabot.my URL
API KeyAPI key for authentication
StatusActive / Inactive
Note: Click "Test WhatsApp" to send a test message.

12.3 Notification Templates

Email URL: /superadmin/notifications/templates/email

WhatsApp URL: /superadmin/notifications/templates/whatsapp

Manage templates for various notification types:

  • Booking approved/rejected
  • Collection/return reminders
  • Overdue notifications
  • Missing items

12.4 Notification Event Toggles

URL: /superadmin/notifications/configuration (Tab: Events)

Enable or disable each notification type. Below is the list of available notification events:

Table 12.3: Individual Booking Notification Events

EventDescription
Booking CreatedA new booking is created
Submitted for ApprovalBooking submitted for admin approval
Booking ApprovedBooking has been approved
Booking RejectedBooking has been rejected
Booking CancelledBooking has been cancelled
Resource CollectedResource has been collected
Resource ReturnedResource has been returned
Booking ExtendedBooking end time has been extended
Booking ReminderReminder sent 24 hours before booking
Collection ReminderReminder to collect resource when booking starts
Return ReminderReminder sent 1 hour before return time
Overdue ReturnResource return is overdue

Table 12.4: Group Booking Notification Events

EventDescription
Group Booking CreatedA group booking is created
Group Booking ApprovedA group booking has been approved
Group Booking RejectedA group booking has been rejected
Group Booking CancelledA group booking has been cancelled
Group Resource CollectedGroup resources have been collected
Group Resource ReturnedGroup resources have been returned
Group Booking ExtendedA group booking has been extended

Table 12.5: Other Notification Events

EventDescription
Purchase Request SubmittedRequest submitted — routed to Account (action) or Admin approver (action) based on amount
Purchase Request EditedRequester edited a Submitted request
Purchase Request ApprovedApproved — Account receives "ready for purchase" when approved by Admin
Purchase Request RejectedRequest rejected
Purchase Request Pending PurchaseStatus updated to Pending Purchase by Account
Purchase Request PurchasedPurchase completed
Review SubmittedA new review has been submitted

13.0 Operasi Sistem System Operations

Butang operasi tersedia di Dashboard atau halaman sistem:

Jadual 13.1: Operasi Sistem

OperasiKeterangan
Clear CacheBersihkan cache aplikasi
OptimizeOptimumkan pangkalan data dan cache
Backup DatabaseCipta salinan sandaran pangkalan data
Run SchedulerJalankan tugas berjadual secara manual
Health CheckSemak status kesihatan sistem
Amaran: Gunakan operasi ini dengan berhati-hati. Clear Cache boleh menyebabkan sesi pengguna tamat.

Operation buttons are available on the Dashboard or system page:

Table 13.1: System Operations

OperationDescription
Clear CacheClear the application cache
OptimizeOptimize the database and cache
Backup DatabaseCreate a database backup
Run SchedulerRun scheduled tasks manually
Health CheckCheck system health status
Warning: Use these operations with caution. Clear Cache may cause user sessions to expire.

14.0 Profil & Notifikasi Profile & Notifications

14.1 Profil

URL: /profile

Kemaskini maklumat peribadi sama seperti peranan lain:

  • Nama, IC, e-mel, telefon, jabatan
  • Gambar profil
  • Kata laluan

14.2 Notifikasi

URL: /notifications

Jenis notifikasi untuk Superadmin:

Jadual 14.1: Jenis Notifikasi Superadmin

JenisKeterangan
System AlertsAmaran sistem (kegagalan e-mel, isu pangkalan data)
User RegistrationPendaftaran pengguna baru
Missing ItemsSumber dilaporkan hilang
Audit AlertsAktiviti mencurigakan

14.1 Profile

URL: /profile

Update personal information, same as other roles:

  • Name, IC, email, phone, department
  • Profile photo
  • Password

14.2 Notifications

URL: /notifications

Notification types for Superadmin:

Table 14.1: Superadmin Notification Types

TypeDescription
System AlertsSystem warnings (email failures, database issues)
User RegistrationNew user registrations
Missing ItemsResources reported as missing
Audit AlertsSuspicious activity

15.0 Rujukan Status Status Reference

Berikut ialah senarai status tempahan yang digunakan dalam sistem RD BookHub.

Jadual 14.1: Senarai Status Tempahan

Below is the list of booking statuses used in the RD BookHub system.

Table 14.1: Booking Status List

Status WarnaColour KeteranganDescription
Pending KuningYellow Menunggu kelulusan adminAwaiting admin approval
Approved HijauGreen Diluluskan, sedia untuk kutipanApproved, ready for collection
Rejected MerahRed Tidak diluluskanNot approved
Collected Biru mudaLight Blue Sumber telah dikutipResource has been collected
Overdue Merah mudaLight Red Lewat dipulangkan (tarikh tamat sudah lepas)Past the return deadline
Completed SianCyan Tempahan selesai — sumber tanpa kutipan fizikal (cth: bilik mesyuarat) selepas tarikh tamatBooking completed — non-collection resource (e.g. meeting room) past end date
Missed OrenOrange Diluluskan tetapi tidak dikutip (tarikh tamat sudah lepas) — sumber memerlukan kutipan fizikalApproved but not collected (past end date) — resource requires physical collection
Returned BiruBlue Sumber telah dipulangkanResource has been returned
Cancelled KelabuGrey Tempahan dibatalkanBooking cancelled

14.1 Aliran Status 14.1 Status Flow

Pending Approved Collected Returned
Pending juga boleh → Rejected / Cancelled Pending may also → Rejected / Cancelled
Approved yang tidak dikutip selepas tarikh tamat → Missed (paparan sahaja, sumber memerlukan kutipan) Approved not collected after end date → Missed (display only, collection-required resources)
Approved selepas tarikh tamat (tanpa kutipan fizikal) → Completed (paparan sahaja, cth: bilik mesyuarat) Approved past end date (no physical collection) → Completed (display only, e.g. meeting rooms)