diff --git a/app/handlers/division.handler.ts b/app/handlers/division.handler.ts index 8b14ca86..31e24411 100644 --- a/app/handlers/division.handler.ts +++ b/app/handlers/division.handler.ts @@ -6,7 +6,16 @@ import { removeDivisionPosition, } from '~/services/division-position.service' +function normalizeParentId(payload: any) { + if (payload.parent_id !== undefined && payload.parent_id !== null && payload.parent_id !== '') { + payload.parent_id = Number(payload.parent_id) + if (isNaN(payload.parent_id)) payload.parent_id = null + } + return payload +} + function selectPost(payload: any) { + payload = normalizeParentId(payload) if (payload.division_id && Number(payload.division_id) > 0) { return postDivisionPosition } @@ -15,6 +24,7 @@ function selectPost(payload: any) { } function selectPatch(id: number | string, payload: any) { + payload = normalizeParentId(payload) if (payload.division_id && Number(payload.division_id) > 0) { return patchDivisionPosition } diff --git a/app/schemas/division.schema.ts b/app/schemas/division.schema.ts index 08e156f6..9095ab09 100644 --- a/app/schemas/division.schema.ts +++ b/app/schemas/division.schema.ts @@ -4,8 +4,8 @@ import type { Division, DivisionPosition } from '~/models/division' const DivisionSchema = z.object({ code: z.string({ required_error: 'Kode harus diisi' }).min(1, 'Kode minimum 1 karakter'), name: z.string({ required_error: 'Nama harus diisi' }).min(1, 'Nama minimum 1 karakter'), - parent_id: z.number({ required_error: 'Divisi Induk harus diisi' }).optional().nullable(), - division_id: z.number({ required_error: 'Divisi Induk harus diisi' }).optional().nullable(), + parent_id: z.string({ required_error: 'Divisi Induk harus diisi' }).optional().nullable(), + division_id: z.string({ required_error: 'Divisi Induk harus diisi' }).optional().nullable(), }) type DivisionFormData = z.infer & (Division | DivisionPosition)