Kaynağa Gözat

update approve can 0

MergeProblem1
CANCERYS\kw093 2 hafta önce
ebeveyn
işleme
3c014abbff
1 değiştirilmiş dosya ile 45 ekleme ve 13 silme
  1. +45
    -13
      src/components/StockTakeManagement/ApproverStockTake.tsx

+ 45
- 13
src/components/StockTakeManagement/ApproverStockTake.tsx Dosyayı Görüntüle

@@ -197,12 +197,19 @@ const ApproverStockTake: React.FC<ApproverStockTakeProps> = ({
// Approver input
const approverQtyValue = approverQty[detail.id];
const approverBadQtyValue = approverBadQty[detail.id];
if (!approverQtyValue || !approverBadQtyValue) {
onSnackbar(t("Please enter Approver QTY and Bad QTY"), "error");
if (approverQtyValue === undefined || approverQtyValue === null || approverQtyValue === "") {
onSnackbar(t("Please enter Approver QTY"), "error");
return;
}
if (approverBadQtyValue === undefined || approverBadQtyValue === null || approverBadQtyValue === "") {
onSnackbar(t("Please enter Approver Bad QTY"), "error");
return;
}
finalQty = parseFloat(approverQtyValue);
finalBadQty = parseFloat(approverBadQtyValue);
finalQty = parseFloat(approverQtyValue) || 0;
finalBadQty = parseFloat(approverBadQtyValue) || 0;
}
setSaving(true);
@@ -357,12 +364,37 @@ const ApproverStockTake: React.FC<ApproverStockTakeProps> = ({
).join(", ");
const isSubmitDisabled = useCallback((detail: InventoryLotDetailResponse): boolean => {
// Only allow editing if there's a first stock take qty
if (!detail.firstStockTakeQty || detail.firstStockTakeQty === 0) {
// 如果已经有 finalQty(已完成审批),不允许再次编辑
if (detail.finalQty != null) {
return true;
}
return false;
}, []);
// 获取当前选择模式
const hasFirst = detail.firstStockTakeQty != null && detail.firstStockTakeQty >= 0;
const hasSecond = detail.secondStockTakeQty != null && detail.secondStockTakeQty >= 0;
const selection = qtySelection[detail.id] || (hasSecond ? "second" : "first");
// 如果选择了 "approver" 模式,检查用户是否已经输入了值
if (selection === "approver") {
const approverQtyValue = approverQty[detail.id];
const approverBadQtyValue = approverBadQty[detail.id];
// 如果用户已经输入了值(包括0),允许保存
if (approverQtyValue !== undefined && approverQtyValue !== null && approverQtyValue !== "" &&
approverBadQtyValue !== undefined && approverBadQtyValue !== null && approverBadQtyValue !== "") {
return false; // 允许保存
}
// 如果用户还没有输入值,禁用按钮
return true;
}
// 对于 first 或 second 模式,需要检查是否有有效的数量(允许0)
// 只要 firstStockTakeQty 不为 null,就允许保存(即使为0)
if (detail.firstStockTakeQty == null) {
return true; // 如果 firstStockTakeQty 为 null,禁用
}
return false; // 允许保存
}, [qtySelection, approverQty, approverBadQty]);

return (
<Box>
@@ -439,10 +471,10 @@ const ApproverStockTake: React.FC<ApproverStockTakeProps> = ({
</TableRow>
) : (
filteredDetails.map((detail) => {
const submitDisabled = isSubmitDisabled(detail);
const hasFirst = detail.firstStockTakeQty != null && detail.firstStockTakeQty > 0;
const hasSecond = detail.secondStockTakeQty != null && detail.secondStockTakeQty > 0;
const selection = qtySelection[detail.id] || (hasSecond ? "second" : "first");
// const submitDisabled = isSubmitDisabled(detail);
const hasFirst = detail.firstStockTakeQty != null && detail.firstStockTakeQty >= 0;
const hasSecond = detail.secondStockTakeQty != null && detail.secondStockTakeQty >= 0; // 改为 >= 0,允许0值
const selection = qtySelection[detail.id] || (hasSecond ? "second" : "first");

return (
<TableRow key={detail.id}>
@@ -620,7 +652,7 @@ const ApproverStockTake: React.FC<ApproverStockTakeProps> = ({
size="small"
variant="contained"
onClick={() => handleSaveApproverStockTake(detail)}
disabled={saving || submitDisabled || detail.stockTakeRecordStatus === "completed"}
//disabled={saving || submitDisabled || detail.stockTakeRecordStatus === "completed"}
>
{t("Save")}
</Button>


Yükleniyor…
İptal
Kaydet