DONE: fix naming, add transaction for completion of membership application (#12)
Build Docker Image / build-backend (push) Successful in 46s
Build Docker Image / build-frontend (push) Successful in 19s

Co-authored-by: ISMAIL MASSERAN <topaz@ISMAILs-Macbook.local>
Reviewed-on: #12
This commit was merged in pull request #12.
This commit is contained in:
2026-07-15 11:35:45 +08:00
parent f7429576b9
commit 59b571d944
14 changed files with 125 additions and 256 deletions
@@ -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(() => {
<Box v-if="showManagementReview" class="p-5 sm:p-6">
<div class="font-medium">Semakan Pentadbiran</div>
<p class="mt-1 text-sm opacity-70">
Luluskan atau tolak permohonan pada peringkat pentadbiran.
Semak atau tolak permohonan pada peringkat pentadbiran.
</p>
<Field class="mt-4">
<FieldLabel for="management-remarks">Catatan</FieldLabel>
@@ -657,7 +658,7 @@ onUnmounted(() => {
<div class="mt-4 flex flex-wrap gap-2">
<Button type="button" variant="success" :disabled="reviewSubmitting || completeSubmitting"
@click="openConfirmAction({ type: 'management', decision: 'APPROVED' })">
Luluskan
Semak
</Button>
<Button type="button" variant="danger" look="outline" :disabled="reviewSubmitting || completeSubmitting"
@click="openConfirmAction({ type: 'management', decision: 'REJECTED' })">
@@ -667,9 +668,9 @@ onUnmounted(() => {
</Box>
<Box v-if="showBoardReview" class="p-5 sm:p-6">
<div class="font-medium">Semakan Lembaga</div>
<div class="font-medium">Keputusan Ahli Lembaga Koperasi (ALK)</div>
<p class="mt-1 text-sm opacity-70">
Luluskan atau gagalkan permohonan pada peringkat lembaga.
Luluskan atau gagalkan permohonan pada peringkat ALK.
</p>
<Field class="mt-4">
<FieldLabel for="board-remarks">Catatan</FieldLabel>
@@ -1030,8 +1031,8 @@ onUnmounted(() => {
</Field>
<Field v-if="pendingAction?.type === 'complete'" class="mt-4 text-left">
<FieldLabel for="detail-board-meeting-date">Tarikh Mesyuarat Lembaga</FieldLabel>
<Input id="detail-board-meeting-date" v-model="boardMeetingDate" type="date"
:disabled="completeSubmitting" @input="boardMeetingDateError = null" />
<Input id="detail-board-meeting-date" v-model="boardMeetingDate" type="date" :disabled="completeSubmitting"
@input="boardMeetingDateError = null" />
<FieldError v-if="boardMeetingDateError">{{ boardMeetingDateError }}</FieldError>
</Field>
</div>