73 lines
1.6 KiB
TypeScript
73 lines
1.6 KiB
TypeScript
/**
|
|
* 驗證相關工具函式
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
* 驗證撥補單表單資料
|
|
*/
|
|
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 };
|
|
};
|