first commit
This commit is contained in:
72
resources/js/utils/validation.ts
Normal file
72
resources/js/utils/validation.ts
Normal file
@@ -0,0 +1,72 @@
|
||||
/**
|
||||
* 驗證相關工具函式
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 驗證撥補單表單資料
|
||||
*/
|
||||
export const validateTransferOrder = (formData: {
|
||||
sourceWarehouseId: string;
|
||||
targetWarehouseId: string;
|
||||
productId: string;
|
||||
quantity: number;
|
||||
}): { isValid: boolean; error?: string } => {
|
||||
if (!formData.sourceWarehouseId) {
|
||||
return { isValid: false, error: "請選擇來源倉庫" };
|
||||
}
|
||||
|
||||
if (!formData.targetWarehouseId) {
|
||||
return { isValid: false, error: "請選擇目標倉庫" };
|
||||
}
|
||||
|
||||
if (formData.sourceWarehouseId === formData.targetWarehouseId) {
|
||||
return { isValid: false, error: "來源倉庫與目標倉庫不能相同" };
|
||||
}
|
||||
|
||||
if (!formData.productId) {
|
||||
return { isValid: false, error: "請選擇撥補商品" };
|
||||
}
|
||||
|
||||
if (formData.quantity <= 0) {
|
||||
return { isValid: false, error: "撥補數量必須大於0" };
|
||||
}
|
||||
|
||||
return { isValid: true };
|
||||
};
|
||||
|
||||
/**
|
||||
* 驗證撥補數量是否超過可用庫存
|
||||
*/
|
||||
export const validateTransferQuantity = (
|
||||
quantity: number,
|
||||
availableQuantity: number
|
||||
): { isValid: boolean; error?: string } => {
|
||||
if (quantity > availableQuantity) {
|
||||
return {
|
||||
isValid: false,
|
||||
error: `撥補數量不能超過可用庫存 (${availableQuantity})`,
|
||||
};
|
||||
}
|
||||
return { isValid: true };
|
||||
};
|
||||
|
||||
/**
|
||||
* 驗證倉庫表單資料
|
||||
*/
|
||||
export const validateWarehouse = (formData: {
|
||||
code: string;
|
||||
name: string;
|
||||
address: string;
|
||||
}): { isValid: boolean; error?: string } => {
|
||||
if (!formData.name.trim()) {
|
||||
return { isValid: false, error: "倉庫名稱為必填欄位" };
|
||||
}
|
||||
|
||||
if (!formData.address.trim()) {
|
||||
return { isValid: false, error: "倉庫地址為必填欄位" };
|
||||
}
|
||||
|
||||
return { isValid: true };
|
||||
};
|
||||
Reference in New Issue
Block a user