diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2025-03-06 11:30:26 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2025-03-06 11:30:26 +0700 |
| commit | dc7fcad0885e4cde8ba510817a69b759607524c7 (patch) | |
| tree | 2cbf9f2a776df6c74b4d1ce3a2aaa04951377e4b /src-migrate | |
| parent | 9b22da67a1a397ca43ff80abb8ef4bbefef9b448 (diff) | |
<iman> update code
Diffstat (limited to 'src-migrate')
| -rw-r--r-- | src-migrate/modules/register/stores/usePengajuanTempoStore.ts | 12 | ||||
| -rw-r--r-- | src-migrate/types/tempo.ts | 1 | ||||
| -rw-r--r-- | src-migrate/validations/tempo.ts | 81 |
3 files changed, 60 insertions, 34 deletions
diff --git a/src-migrate/modules/register/stores/usePengajuanTempoStore.ts b/src-migrate/modules/register/stores/usePengajuanTempoStore.ts index 5f6e4974..79ab3612 100644 --- a/src-migrate/modules/register/stores/usePengajuanTempoStore.ts +++ b/src-migrate/modules/register/stores/usePengajuanTempoStore.ts @@ -171,7 +171,7 @@ type StatePengiriman = { }; type ActionPengiriman = { updateFormPengiriman: (name: string, value: string) => void; - + updateDokumenProsedur: (name: string, format: string, base64: string) => void; validatePengiriman: () => void; }; export const usePengajuanTempoStorePengiriman = create< @@ -204,12 +204,21 @@ export const usePengajuanTempoStorePengiriman = create< dokumenPengirimanInput: '', dokumenKirimInput: '', dokumenPengirimanInvoice: '', + dokumenProsedur: { name: '', format: '', base64: '' }, }, updateFormPengiriman: (name, value) => set((state) => ({ formPengiriman: { ...state.formPengiriman, [name]: value }, })), + updateDokumenProsedur: (name, format, base64) => + set((state) => ({ + formPengiriman: { + ...state.formPengiriman, + dokumenProsedur: { name, format, base64 }, + }, + })), + errorsPengiriman: {}, validatePengiriman: () => { try { @@ -262,6 +271,7 @@ export const usePengajuanTempoStoreDokumen = create< dokumenLaporanKeuangan: { name: '', format: '', base64: '' }, dokumenFotoKantor: { name: '', format: '', base64: '' }, dokumenTempatBekerja: { name: '', format: '', base64: '' }, + dokumenProsedur: { name: '', format: '', base64: '' }, }, // Memperbarui dokumen dengan name, format, dan base64 diff --git a/src-migrate/types/tempo.ts b/src-migrate/types/tempo.ts index f28cfdef..27b0c67e 100644 --- a/src-migrate/types/tempo.ts +++ b/src-migrate/types/tempo.ts @@ -54,6 +54,7 @@ export type tempoPropsPengiriman = { dokumenPengirimanInput: string; dokumenPengirimanInvoice: string; dokumenPengirimanInvoiceInput: string; + dokumenProsedur: string; }; export type tempoPropsSupplier = { supplier: string; diff --git a/src-migrate/validations/tempo.ts b/src-migrate/validations/tempo.ts index 4dc810a1..469f351d 100644 --- a/src-migrate/validations/tempo.ts +++ b/src-migrate/validations/tempo.ts @@ -33,39 +33,49 @@ export const TempoSchema = z.object({ .min(1, { message: 'Category produk harus dipilih' }), }); -export const TempoSchemaKontakPerson = z.object({ - direkturName: z.string().min(1, { message: 'Nama harus diisi' }), - direkturTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), - financeName: z.string().min(1, { message: 'Nama harus diisi' }), - direkturMobile: z.string().optional(), - financeMobile: z - .string() - .min(1, { message: 'Nomor telepon harus diisi' }) - .refine((val) => /^\d{10,12}$/.test(val), { - message: 'Format nomor telepon tidak valid, contoh: 081234567890', - }), - purchasingTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), - financeTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), - purchasingMobile: z - .string() - .min(1, { message: 'Nomor telepon harus diisi' }) - .refine((val) => /^\d{10,12}$/.test(val), { - message: 'Format nomor telepon tidak valid, contoh: 081234567890', - }), - direkturEmail: z - .string() - .min(1, { message: 'Email harus diisi' }) - .email({ message: 'Email harus menggunakan format example@mail.com' }), - purchasingEmail: z - .string() - .min(1, { message: 'Email harus diisi' }) - .email({ message: 'Email harus menggunakan format example@mail.com' }), - financeEmail: z - .string() - .min(1, { message: 'Email harus diisi' }) - .email({ message: 'Email harus menggunakan format example@mail.com' }), - purchasingName: z.string().min(1, { message: 'Nama harus diisi' }), -}); +export const TempoSchemaKontakPerson = z + .object({ + direkturName: z.string().min(1, { message: 'Nama harus diisi' }), + direkturTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), + financeName: z.string().min(1, { message: 'Nama harus diisi' }), + direkturMobile: z.string().optional(), + financeMobile: z + .string() + .min(1, { message: 'Nomor telepon harus diisi' }) + .refine((val) => /^\d{10,12}$/.test(val), { + message: 'Format nomor telepon tidak valid, contoh: 081234567890', + }), + purchasingTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), + financeTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), + purchasingMobile: z + .string() + .min(1, { message: 'Nomor telepon harus diisi' }) + .refine((val) => /^\d{10,12}$/.test(val), { + message: 'Format nomor telepon tidak valid, contoh: 081234567890', + }), + direkturEmail: z + .string() + .min(1, { message: 'Email harus diisi' }) + .email({ message: 'Email harus menggunakan format example@mail.com' }), + purchasingEmail: z + .string() + .min(1, { message: 'Email harus diisi' }) + .email({ message: 'Email harus menggunakan format example@mail.com' }), + financeEmail: z + .string() + .min(1, { message: 'Email harus diisi' }) + .email({ message: 'Email harus menggunakan format example@mail.com' }), + purchasingName: z.string().min(1, { message: 'Nama harus diisi' }), + }) + .refine( + (data) => + !data.financeEmail || // Jika financeEmail kosong, tidak perlu validasi + data.financeEmail !== data.purchasingEmail, // Validasi jika financeEmail ada + { + message: 'Email Finance tidak boleh sama dengan Email Purchasing', + path: ['financeEmail'], + } + ); export const TempoSchemaPengiriman = z.object({ PICTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), PICName: z.string().min(1, { message: 'Nama harus diisi' }), @@ -111,6 +121,11 @@ export const TempoSchemaPengiriman = z.object({ dokumenPengirimanInput: z.string().optional(), dokumenKirimInput: z.string().optional(), dokumenPengirimanInvoiceInput: z.string().optional(), + dokumenProsedur: z.object({ + name: z.string().min(1, { message: 'Nama file harus diisi' }), + format: z.string().optional(), + base64: z.string().optional(), + }), }); export const TempoSchemaSupplier = z.object({ supplier: z.string().min(1, { message: 'Nama supplier harus diisi' }), |
