diff options
| author | it-fixcomart <it@fixcomart.co.id> | 2025-03-12 14:30:25 +0700 |
|---|---|---|
| committer | it-fixcomart <it@fixcomart.co.id> | 2025-03-12 14:30:25 +0700 |
| commit | 6a682891b755a6f8d91edafe54a62047afcb5492 (patch) | |
| tree | f8fee880ed7129093f21dc069074767eafce261f /src-migrate/validations | |
| parent | f4adb008ae55e4b340c58c32d45af6d0eaf6eb57 (diff) | |
| parent | d36a21cb0a6e95323fa9dd868a79bf1a318968e3 (diff) | |
Merge branch 'new-release' into CR/repeat-order
Diffstat (limited to 'src-migrate/validations')
| -rw-r--r-- | src-migrate/validations/tempo.ts | 110 |
1 files changed, 72 insertions, 38 deletions
diff --git a/src-migrate/validations/tempo.ts b/src-migrate/validations/tempo.ts index f019275c..e39f0f8b 100644 --- a/src-migrate/validations/tempo.ts +++ b/src-migrate/validations/tempo.ts @@ -8,7 +8,7 @@ export const TempoSchema = z.object({ state: z.string().min(1, { message: 'Provinsi harus dipilih' }), city: z.string().min(1, { message: 'Kota harus dipilih' }), district: z.string().min(1, { message: 'Kecamatan harus dipilih' }), - subDistrict: z.string().min(1, { message: 'Kelurahan harus dipilih' }), + subDistrict: z.string().optional(), mobile: z .string() .min(1, { message: 'Nomor telepon harus diisi' }) @@ -33,50 +33,81 @@ 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 +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'], + } + ) + .refine( + (data) => + !data.direkturEmail || + (data.direkturEmail !== data.financeEmail && + data.direkturEmail !== data.purchasingEmail), + { + message: + 'Email Direktur tidak boleh sama dengan Email Finance atau Purchasing', + path: ['direkturEmail'], + } + ); +export const TempoSchemaPengiriman = z.object({ + PICTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), + PICName: z.string().min(1, { message: 'Nama harus diisi' }), + streetPengiriman: z.string().min(1, { message: 'Alamat harus diisi' }), + statePengiriman: z.string().min(1, { message: 'Provinsi harus dipilih' }), + cityPengiriman: z.string().min(1, { message: 'Kota harus dipilih' }), + districtPengiriman: z.string().min(1, { message: 'Kecamatan harus dipilih' }), + subDistrictPengiriman: z.string().optional(), + zipPengiriman: z.string().min(1, { message: 'Kode pos harus diisi' }), + PICBarangMobile: 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 + invoicePicMobile: 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 TempoSchemaPengiriman = z.object({ - PICTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), - PICName: z.string().min(1, { message: 'Nama harus diisi' }), - streetPengiriman: z.string().min(1, { message: 'Alamat harus diisi' }), - statePengiriman: z.string().min(1, { message: 'Provinsi harus dipilih' }), - cityPengiriman: z.string().min(1, { message: 'Kota harus dipilih' }), - districtPengiriman: z.string().min(1, { message: 'Kecamatan harus dipilih' }), - subDistrictPengiriman: z - .string() - .min(1, { message: 'Kelurahan harus dipilih' }), - zipPengiriman: z.string().min(1, { message: 'Kode pos harus diisi' }), invoicePicTittle: z.string().min(1, { message: 'Tittle harus dipilih' }), invoicePic: z.string().min(1, { message: 'Nama pic invoice harus diisi' }), streetInvoice: z.string().min(1, { message: 'Alamat invoice harus diisi' }), @@ -87,9 +118,7 @@ export const TempoSchemaPengiriman = z.object({ districtInvoice: z .string() .min(1, { message: 'Kecamatan invoice harus dipilih' }), - subDistrictInvoice: z - .string() - .min(1, { message: 'Kelurahan invoice harus dipilih' }), + subDistrictInvoice: z.string().optional(), zipInvoice: z.string().min(1, { message: 'Kode pos harus diisi' }), isSameAddrees: z.string(), isSameAddreesStreet: z.string(), @@ -99,6 +128,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' }), |
