summaryrefslogtreecommitdiff
path: root/src-migrate/validations
diff options
context:
space:
mode:
authorit-fixcomart <it@fixcomart.co.id>2025-03-12 14:30:25 +0700
committerit-fixcomart <it@fixcomart.co.id>2025-03-12 14:30:25 +0700
commit6a682891b755a6f8d91edafe54a62047afcb5492 (patch)
treef8fee880ed7129093f21dc069074767eafce261f /src-migrate/validations
parentf4adb008ae55e4b340c58c32d45af6d0eaf6eb57 (diff)
parentd36a21cb0a6e95323fa9dd868a79bf1a318968e3 (diff)
Merge branch 'new-release' into CR/repeat-order
Diffstat (limited to 'src-migrate/validations')
-rw-r--r--src-migrate/validations/tempo.ts110
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' }),