diff --git a/src/constants/employers.ts b/src/constants/employers.ts
index 490b223..a170f44 100644
--- a/src/constants/employers.ts
+++ b/src/constants/employers.ts
@@ -1,7 +1,7 @@
export const EMPLOYERS = [
{
- name: 'Infra Quest Sdn. Bhd. (IQSB)',
- address: 'Lot 1045, Jalan Dato’ Lundang, 15200 Kota Bharu, Kelantan',
+ name: 'Infra Quest Sdn Bhd (IQSB)',
+ address: "Lot 1045, Jalan Dato' Lundang, 15200 Kota Bharu, Kelantan",
},
{
name: 'Permodalan Kelantan Berhad (PKB)',
@@ -14,11 +14,19 @@ export const EMPLOYERS = [
'Lot Pt 448, Tingkat 1,Jalan Kuala Krai, Batu 3, Wakaf Che Yeh, 15150 Kota Bharu, Kelantan.',
},
{
- name: "An-Nisa'",
+ name: "Pusat Perubatan An-Nisa'",
address: 'Jln Sultan Ibrahim, Bandar Kota Bharu, 15050 Kota Bharu, Kelantan.',
},
{
- name: 'Kel Infra Sdn. Bhd.',
+ name: 'Kel Infra Sdn Bhd (KISB)',
address: 'Tingkat 2 Menara Perbadanan, Jalan Tengku Petra Semerak, 15000 Kota Bharu, Kelantan.',
},
+ {
+ name: 'Xtra Biz Sdn Bhd (XBSB)',
+ address: "Lot 241, Jalan Dato' Cik Arif, Taman Mutiara 1, 15000 Kota Bharu, Kelantan.",
+ },
+ {
+ name: 'Pesara',
+ address: '-'
+ }
] as const
diff --git a/src/modules/membership-application/pages/MembershipApplication.vue b/src/modules/membership-application/pages/MembershipApplication.vue
index aefe61b..b26b912 100644
--- a/src/modules/membership-application/pages/MembershipApplication.vue
+++ b/src/modules/membership-application/pages/MembershipApplication.vue
@@ -30,6 +30,7 @@ import type {
MembershipApplicationReferenceForm,
} from '../types/membership-application.types'
import illustrationUrl from '@/assets/images/logo.svg'
+import { EMPLOYERS } from '@/constants/employers'
const MAX_FILE_SIZE_MB = 10
const MAX_FILE_SIZE_BYTES = MAX_FILE_SIZE_MB * 1024 * 1024
@@ -78,26 +79,6 @@ const RELATIONSHIP_OPTIONS: SelectOption[] = [
{ label: 'Lain-lain', value: 'Lain-lain' },
]
-// TODO: replace with API lookup
-const EMPLOYERS = [
- {
- name: 'Infra Quest Sdn. Bhd. (IQSB)',
- address: 'Lot 1045, Jalan Dato’ Lundang, 15200 Kota Bharu, Kelantan',
- },
- {
- name: 'Permodalan Kelantan Berhad (PKB)',
- address: 'Permodalan Kelantan Berhad, Tingkat 4, Wisma Permodalan Kelantan Berhad, Jalan Maju, 15000 Kota Bharu Kelantan',
- },
- {
- name: 'Koperasi Permodalan Kelantan Berhad (KOPKB)',
- address: 'Lot Pt 448, Tingkat 1,Jalan Kuala Krai, Batu 3, Wakaf Che Yeh, 15150 Kota Bharu, Kelantan.',
- },
- {
- name: "An-Nisa'",
- address: 'Jln Sultan Ibrahim, Bandar Kota Bharu, 15050 Kota Bharu, Kelantan.',
- },
-] as const
-
const EMPLOYER_OPTIONS: SelectOption[] = EMPLOYERS.map((employer) => ({
label: employer.name,
value: employer.name,
@@ -319,7 +300,7 @@ const stepTitle = computed(() => {
case 1:
return 'Maklumat Peribadi'
case 2:
- return 'Hubungan & Alamat'
+ return 'Hubungan & Alamat Rumah Semasa'
case 3:
return 'Maklumat Pekerjaan & Caruman'
case 4:
@@ -940,7 +921,7 @@ function stepLabelClass(stepId: number) {
{{ fieldErrors['documents.employer_letter']
- }}
+ }}
diff --git a/src/modules/membership-application/pages/MembershipApplicationDetail.vue b/src/modules/membership-application/pages/MembershipApplicationDetail.vue
index af07050..100acb1 100644
--- a/src/modules/membership-application/pages/MembershipApplicationDetail.vue
+++ b/src/modules/membership-application/pages/MembershipApplicationDetail.vue
@@ -168,14 +168,14 @@ const confirmDialogTitle = computed(() => {
if (pendingAction.value.type === 'management') {
return pendingAction.value.decision === 'APPROVED'
- ? 'Luluskan Permohonan?'
+ ? 'Semak Permohonan?'
: 'Tolak Permohonan?'
}
if (pendingAction.value.type === 'board') {
return pendingAction.value.decision === 'PASS'
- ? 'Luluskan?'
- : 'Gagalkan?'
+ ? 'Keputusan ALK?'
+ : 'Keputusan ALK?'
}
return 'Selesaikan Permohonan?'
@@ -186,7 +186,7 @@ const confirmDialogDescription = computed(() => {
if (pendingAction.value.type === 'management') {
return pendingAction.value.decision === 'APPROVED'
- ? 'Permohonan akan dihantar ke mesyuarat ALK.'
+ ? 'Permohonan akan dihantar ke peringkat keputusan ALK.'
: 'Permohonan akan ditolak pada peringkat pentadbiran.'
}
@@ -325,6 +325,7 @@ function getReference(type: 'PROPOSER' | 'SUPPORTER'): MembershipApplicationRefe
function reviewStageLabel(stage: string): string {
if (stage === 'MANAGEMENT') return 'Semakan Pentadbiran'
if (stage === 'BOARD') return 'Keputusan Ahli Lembaga Koperasi (ALK)'
+ if (stage === 'COMPLETION') return 'Penyelesaian & Makluman Keputusan'
return stage
}
@@ -332,11 +333,11 @@ function reviewDecisionLabel(decision: string | null, stage: string): string {
if (!decision) return '-'
if (stage === 'MANAGEMENT') {
- if (decision === 'APPROVED') return 'Diluluskan'
+ if (decision === 'APPROVED') return 'Disemak'
if (decision === 'REJECTED') return 'Ditolak'
}
- if (stage === 'BOARD') {
+ if (stage === 'BOARD' || stage === 'COMPLETION') {
if (decision === 'PASS') return 'Lulus'
if (decision === 'FAIL') return 'Gagal'
}
@@ -647,7 +648,7 @@ onUnmounted(() => {
Semakan Pentadbiran
- Luluskan atau tolak permohonan pada peringkat pentadbiran.
+ Semak atau tolak permohonan pada peringkat pentadbiran.
Catatan
@@ -657,7 +658,7 @@ onUnmounted(() => {
diff --git a/src/modules/membership-application/pages/MembershipApplicationEdit.vue b/src/modules/membership-application/pages/MembershipApplicationEdit.vue
index 7adba2f..9949187 100644
--- a/src/modules/membership-application/pages/MembershipApplicationEdit.vue
+++ b/src/modules/membership-application/pages/MembershipApplicationEdit.vue
@@ -260,6 +260,7 @@ const isPreviewPdf = computed(() => (previewDocument.value ? isPdfDocument(previ
function reviewStageLabel(stage: string): string {
if (stage === 'MANAGEMENT') return 'Semakan Pentadbiran'
if (stage === 'BOARD') return 'Keputusan Ahli Lembaga Koperasi (ALK)'
+ if (stage === 'COMPLETION') return 'Penyelesaian & Makluman Keputusan'
return stage
}
@@ -271,7 +272,7 @@ function reviewDecisionLabel(decision: string | null, stage: string): string {
if (decision === 'REJECTED') return 'Ditolak'
}
- if (stage === 'BOARD') {
+ if (stage === 'BOARD' || stage === 'COMPLETION') {
if (decision === 'PASS') return 'Lulus'
if (decision === 'FAIL') return 'Gagal'
}
@@ -867,13 +868,13 @@ onUnmounted(() => {
Jawatan Semasa
{{ fieldErrors['applicant.current_position']
- }}
+ }}
Alamat Majikan
{{ fieldErrors['applicant.employer_address']
- }}
+ }}
Tarikh Mula Berkhidmat
@@ -919,7 +920,7 @@ onUnmounted(() => {
No. Kad Pengenalan
{{ fieldErrors[`heirs.${index}.ic_number`]
- }}
+ }}
Hubungan
diff --git a/src/modules/membership-application/types/membership-application.types.ts b/src/modules/membership-application/types/membership-application.types.ts
index db8981b..c63c45e 100644
--- a/src/modules/membership-application/types/membership-application.types.ts
+++ b/src/modules/membership-application/types/membership-application.types.ts
@@ -164,7 +164,7 @@ export interface MembershipApplicationDocumentDetail {
export interface MembershipApplicationReviewDetail {
id: string
- stage: 'MANAGEMENT' | 'BOARD'
+ stage: 'MANAGEMENT' | 'BOARD' | 'COMPLETION'
decision: string | null
remarks: string | null
reviewer: { id: string; name: string } | null
diff --git a/src/modules/membership-application/utils/membership-application-badge.utils.ts b/src/modules/membership-application/utils/membership-application-badge.utils.ts
index 7030be9..e0195af 100644
--- a/src/modules/membership-application/utils/membership-application-badge.utils.ts
+++ b/src/modules/membership-application/utils/membership-application-badge.utils.ts
@@ -45,7 +45,7 @@ export function reviewDecisionBadgeVariant(
if (decision === 'REJECTED') return 'danger'
}
- if (stage === 'BOARD') {
+ if (stage === 'BOARD' || stage === 'COMPLETION') {
if (decision === 'PASS') return 'success'
if (decision === 'FAIL') return 'danger'
}
@@ -59,7 +59,7 @@ export function reviewDecisionBadgeLook(
): BadgeVariants['look'] {
if (
(stage === 'MANAGEMENT' && (decision === 'APPROVED' || decision === 'REJECTED')) ||
- (stage === 'BOARD' && (decision === 'PASS' || decision === 'FAIL'))
+ ((stage === 'BOARD' || stage === 'COMPLETION') && (decision === 'PASS' || decision === 'FAIL'))
) {
return undefined
}
diff --git a/src/modules/profile/pages/EmploymentTab.vue b/src/modules/profile/pages/EmploymentTab.vue
index 5400aec..cc16e80 100644
--- a/src/modules/profile/pages/EmploymentTab.vue
+++ b/src/modules/profile/pages/EmploymentTab.vue
@@ -28,6 +28,7 @@ import {
updateEmployment,
} from '@/modules/profile/services/employment.service'
import type { Employment, EmploymentPayload } from '@/modules/profile/types/employment.types'
+import { EMPLOYERS } from '@/constants/employers'
defineProps<{
embedded?: boolean
@@ -65,36 +66,10 @@ type SelectOption = { label: string; value: string }
const EMPLOYMENT_TYPE_OPTIONS: SelectOption[] = [
{ label: 'Tetap', value: 'Permanent' },
{ label: 'Kontrak', value: 'Contract' },
- { label: 'Latihan Industri', value: 'Internship' },
- { label: 'Freelance', value: 'Freelance' },
+ { label: 'Percubaan', value: 'Trial' },
+ { label: 'Sambilan', value: 'Part-time' },
]
-// TODO: replace with API lookup
-const EMPLOYERS = [
- {
- name: 'Infra Quest Sdn. Bhd. (IQSB)',
- address: 'Lot 1045, Jalan Dato’ Lundang, 15200 Kota Bharu, Kelantan',
- },
- {
- name: 'Permodalan Kelantan Berhad (PKB)',
- address:
- 'Permodalan Kelantan Berhad, Tingkat 4, Wisma Permodalan Kelantan Berhad, Jalan Maju, 15000 Kota Bharu Kelantan',
- },
- {
- name: 'Koperasi Permodalan Kelantan Berhad (KOPKB)',
- address:
- 'Lot Pt 448, Tingkat 1,Jalan Kuala Krai, Batu 3, Wakaf Che Yeh, 15150 Kota Bharu, Kelantan.',
- },
- {
- name: "An-Nisa'",
- address: 'Jln Sultan Ibrahim, Bandar Kota Bharu, 15050 Kota Bharu, Kelantan.',
- },
- {
- name: "Kel Infra Sdn. Bhd.",
- address: "Tingkat 2 Menara Perbadanan, Jalan Tengku Petra Semerak, 15000 Kota Bharu, Kelantan.",
- }
-] as const
-
const COMPANY_OPTIONS: SelectOption[] = EMPLOYERS.map((employer) => ({
label: employer.name,
value: employer.name,
@@ -574,13 +549,13 @@ onMounted(async () => {
{{ employmentErrors.salary }}
- Tarikh Mula
+ Tarikh Mula Perkhidmatan
{{ employmentErrors.start_date }}
- Tarikh Tamat
+ Tarikh Tamat Perkhidmatan
diff --git a/src/modules/user/pages/UserEdit.vue b/src/modules/user/pages/UserEdit.vue
index 131ce8a..42681df 100644
--- a/src/modules/user/pages/UserEdit.vue
+++ b/src/modules/user/pages/UserEdit.vue
@@ -32,6 +32,7 @@ import {
updateUserEmployment,
} from '../services/userEmployment.service'
import { getUser, updateUser } from '../services/user.service'
+import { EMPLOYERS } from '@/constants/employers'
type SelectOption = { label: string; value: string }
@@ -62,35 +63,10 @@ const MEMBER_TYPE_OPTIONS: SelectOption[] = [
const EMPLOYMENT_TYPE_OPTIONS: SelectOption[] = [
{ label: 'Tetap', value: 'Permanent' },
{ label: 'Kontrak', value: 'Contract' },
- { label: 'Latihan Industri', value: 'Internship' },
- { label: 'Freelance', value: 'Freelance' },
+ { label: 'Percubaan', value: 'Trial' },
+ { label: 'Sambilan', value: 'Part-time' },
]
-const EMPLOYERS = [
- {
- name: 'Infra Quest Sdn. Bhd. (IQSB)',
- address: 'Lot 1045, Jalan Dato’ Lundang, 15200 Kota Bharu, Kelantan',
- },
- {
- name: 'Permodalan Kelantan Berhad (PKB)',
- address:
- 'Permodalan Kelantan Berhad, Tingkat 4, Wisma Permodalan Kelantan Berhad, Jalan Maju, 15000 Kota Bharu Kelantan',
- },
- {
- name: 'Koperasi Permodalan Kelantan Berhad (KOPKB)',
- address:
- 'Lot Pt 448, Tingkat 1,Jalan Kuala Krai, Batu 3, Wakaf Che Yeh, 15150 Kota Bharu, Kelantan.',
- },
- {
- name: "An-Nisa'",
- address: 'Jln Sultan Ibrahim, Bandar Kota Bharu, 15050 Kota Bharu, Kelantan.',
- },
- {
- name: 'Kel Infra Sdn. Bhd.',
- address: 'Tingkat 2 Menara Perbadanan, Jalan Tengku Petra Semerak, 15000 Kota Bharu, Kelantan.',
- },
-] as const
-
const COMPANY_OPTIONS: SelectOption[] = EMPLOYERS.map((employer) => ({
label: employer.name,
value: employer.name,
@@ -747,13 +723,7 @@ onMounted(() => {
Tarikh Berhenti Menjadi Anggota
-
+
@@ -786,11 +756,8 @@ onMounted(() => {
Memuatkan pekerjaan...
-
+
{{ employment.company_name }}
@@ -804,46 +771,27 @@ onMounted(() => {
{{ formatSalary(employment.salary) }}
-
-
+
Tiada pekerjaan direkodkan.
-