Standup 8 Oct 2026 · SP evidence 9 Oct
Applicant merge · QR generation · Fee/payment from CMS SPs
Read.ai action: analyze the merged Applicant campus/letters work, document QR-code generation (automated + manual ops), and document fee-payment mechanisms from campus stored procedures. Canonical Markdown: applicant-qr-fee-mechanisms.md.
1. Merged Applicant portal
Faid 9e007f2 (campus + Eligibility→Offer) on main; production SPA
532d6f0 (8 Oct evening redeploy). Portal API Demo includes
confirmApplicationEligibility and auto Offer release until Staff owns release.
What shipped vs still open
| Shipped | Still open |
|---|---|
| Campus selector · Alumni Previous Student ID · Bursary/QA desks · Eligibility→Confirm→Offer→Accept · Progress rows · handoff v2 | Staff-owned Offer release · durable letter URLs · LGCSE/LSL · real Lesotho catalogue · Live CMS writes |
Flow compare: CMS vs Applicant.
2. QR-code generation
Automated (in CMS code)
sequenceDiagram
actor Staff as Registry
participant REG as qrcode_gen.php
participant QR as qr.limkokwing.net
participant VER as verification.limkokwing.net
participant CMS as campus2_cambodia
Staff->>REG: StdProgramID · StudentID · ProgramCode
REG->>QR: POST create_qrcode_api
Note over REG,QR: short_code KHM-PNH_… · verify URL
QR-->>REG: PNG (encodes /qrcode/slug)
actor Public as Scanner
Public->>QR: GET /qrcode/slug
QR-->>Public: 302 → /cambodia/token
Public->>VER: GET token
VER->>CMS: CALL GetStudentCertInfo
CMS-->>VER: cert metadata + blob
Full pack inventory: certificate-qr.html.
Manual ops (standup — not in code)
sequenceDiagram
participant KH as Cambodia campus
participant CY as Cyberjaya ops
Note over KH,CY: Dexter — manual exchange still happens
KH->>CY: Certificates / QR PNGs / student data pack
CY->>CY: Print / stamp / process
CY-->>KH: Return physical certificates
Note over KH: Scan path still Verification → Cambodia SP
Do not invent a Portal API courier method. Document as ops; M5 owns automated create/scan only.
3. Three fee / payment planes
| Plane | When | CMS | Raisd today |
|---|---|---|---|
| A. Application fee | Admissions | b_zapplicationfee* · proof via b_paymentverification |
Applicant Fee step + Bursary Demo |
| B. Online enrolment proof | After offer / term reg | sp_onlinenrollment_* + sp_payment_verification_insert |
Student CAP-46 Demo |
| C. Semester / module calc | Enrolled billing | b_Update_Student · b_Update_billing (NMDS) |
Student Finance Demo |
4. Online enrolment payment SPs — currency matrix
Shared insert shape across Lesotho / Eswatini / Cambodia. Currency and institution are hard-coded in the SP — Raisd campus finance profile must mirror this.
| Campus | InstitutionID | PaymentCurrency | RequestSource |
|---|---|---|---|
| Lesotho | 1 | M (Loti) | OnlineEnrollment |
| Eswatini | 1 | R | OnlineEnrollment |
| Cambodia | 30 | MYR | OnlineEnrollment |
flowchart LR
A[Student pays / uploads proof] --> B[sp_onlinenrollment_insert]
B --> C[online_enrollment row]
C --> D[sp_payment_verification_insert]
D --> E[b_paymentverification]
E --> F[Bursary BurStatus / FacultyStatus]
Application-fee Live must not assume MYR. Lesotho application screenshots show M VERIFIED amounts (e.g. M300).
5. Semester fee cases — b_Update_Student (Lesotho)
Distilled from the Lesotho procedure body for Faid’s configurable fee work. Cambodia shares the skeleton with different hardcodes (e.g. repeat 150/250).
| ID | Case | Key |
|---|---|---|
| C1 | Zero fee when AD/module status non-chargeable | *chargable='N' |
| C2 | Historical Exempted before 2011-07 | termcode |
| C3 | Semester fee from f_semester.semesterfee | UseModularFee='N' |
| C4 | Modular = sum stdmodfee | UseModularFee='Y' |
| C5 | Repeat/ADD → semmodaddfees (Lesotho hardcodes e.g. 600 / 375) | repeat% |
| C6 | Resource fees with many exemptions | stdsemresfees |
| C7 | Deferred zeroes / def fees | Deferred |
| C8 | stdsemtotfees ≈ add + res + rep | totals |
| C9 | Invoice lines → b_invoicedetail | ledger |
| C10 | PayStatus Partial/Full vs outstanding | r_student |
NMDS assist billing (separate)
b_Update_billing stamps Lesotho assist bill nos
LSO/{YYMM}/FAID|FDSI|FBS|FCM/… for AssistProviderCode='nmds'.
Not Applicant application fee. Cambodia dump has no b_Update_billing.
6. Follow-ups (9 Oct)
- Done (seed) — Campus finance profile + C1–C10: campus-finance-profile.html · campus-finance-profiles.yaml (Faid Accept pending).
- Done (path) — Online-enrolment proof → CAP-53 W1: cap53-online-enrolment.html (implement next).
- Open — Applicant: Staff-owned Offer release · LGCSE/LSL · real catalogue.
- Open — Vara: Sierra Leone
b_calcmodule/ cross-campus SP case matrix.
Markdown detail: applicant-qr-fee-mechanisms.md · QR: certificate-qr.html · CMS vs Applicant: cms-vs-applicant.html.