From b02312bc17dcfd15f4852efc5145c3551e69b9aa Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期二, 23 十二月 2025 10:31:44 +0800
Subject: [PATCH] 发货前校验产品库存修改

---
 src/api/salesManagement/salesLedger.js          |    8 ++++
 src/views/salesManagement/salesLedger/index.vue |   58 +++++++----------------------
 2 files changed, 22 insertions(+), 44 deletions(-)

diff --git a/src/api/salesManagement/salesLedger.js b/src/api/salesManagement/salesLedger.js
index 3a2fa22..6548927 100644
--- a/src/api/salesManagement/salesLedger.js
+++ b/src/api/salesManagement/salesLedger.js
@@ -109,3 +109,11 @@
     params: query,
   });
 }
+// 閿�鍞彴璐﹂〉闈㈠彂璐э紝鏌ヨ搴撳瓨鏄惁鍏呰冻
+export function getProductInventory(query) {
+    return request({
+        url: "/sales/ledger/getProductInventory",
+        method: "get",
+        params: query,
+    });
+}
\ No newline at end of file
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 351cefd..d4fbe20 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -56,11 +56,11 @@
               <el-table-column label="鍚◣鍗曚环(鍏�)" prop="taxInclusiveUnitPrice" :formatter="formattedNumber" width="160" />
               <el-table-column label="鍚◣鎬讳环(鍏�)" prop="taxInclusiveTotalPrice" :formatter="formattedNumber" width="180" />
               <el-table-column label="涓嶅惈绋庢�讳环(鍏�)" prop="taxExclusiveTotalPrice" :formatter="formattedNumber" width="180" />
-              <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">
-                <template #default="scope">
-                  <el-button link type="primary" size="small" @click="openDeliveryForm(props.row, scope.row)">鍙戣揣</el-button>
-                </template>
-              </el-table-column>
+<!--              <el-table-column fixed="right" label="鎿嶄綔" width="150" align="center">-->
+<!--                <template #default="scope">-->
+<!--                  <el-button link type="primary" size="small" @click="openDeliveryForm(props.row, scope.row)">鍙戣揣</el-button>-->
+<!--                </template>-->
+<!--              </el-table-column>-->
             </el-table>
           </template>
         </el-table-column>
@@ -81,6 +81,7 @@
             <el-button link type="primary" size="small" @click="openForm('edit', scope.row)">缂栬緫</el-button>
 <!--            <el-button link type="primary" size="small" @click="openForm('view', scope.row)">璇︽儏</el-button>-->
             <el-button link type="primary" size="small" @click="downLoadFile(scope.row)">闄勪欢</el-button>
+            <el-button link type="primary" size="small" @click="openDeliveryForm(scope.row)">鍙戣揣</el-button>
           </template>
         </el-table-column>
       </el-table>
@@ -464,7 +465,7 @@
 import pagination from "@/components/PIMTable/Pagination.vue";
 import {onMounted, ref} from "vue";
 import { addShippingInfo } from "@/api/salesManagement/deliveryLedger.js";
-import { ElMessageBox } from "element-plus";
+import {ElMessage, ElMessageBox} from "element-plus";
 import useUserStore from "@/store/modules/user";
 import { userListNoPage } from "@/api/system/user.js";
 import FileList from "./fileList.vue";
@@ -477,7 +478,7 @@
   delLedger,
   addOrUpdateSalesLedgerProduct,
   delProduct,
-  delLedgerFile,
+  delLedgerFile, getProductInventory,
 } from "@/api/salesManagement/salesLedger.js";
 import { modelList, productTreeList } from "@/api/basicData/product.js";
 import useFormData from "@/hooks/useFormData.js";
@@ -1532,48 +1533,17 @@
 }
 
 // 鎵撳紑鍙戣揣寮规
-const openDeliveryForm = async (parentRow, productRow) => {
-  // productRow鐨刴inStock鍜宷uantity
-  console.log('22222', productRow)
-
-  // 妫�鏌ヤ骇鍝佸簱瀛樻槸鍚﹁冻澶�
-  const requiredQuantity = productRow.quantity || 0;  // 闇�瑕佸彂璐х殑鏁伴噺
-
-  try {
-    // 绛夊緟鑾峰彇搴撳瓨淇℃伅
-    const res = await getStockInPage({
-      current: 1,
-      size: 100
-    });
-    // console.log('res33333', res.data.records)
-    // 閫氳繃 productRow.id 杩囨护鍑哄搴旂殑搴撳瓨璁板綍
-    const matchingStockRecords = res.data?.records?.filter(record =>
-        record.salesLedgerProductId === productRow.id
-    ) || [];
-
-    // 璁$畻鍖归厤璁板綍鐨勬�诲簱瀛樻暟閲�
-    const currentStock = matchingStockRecords.reduce((total, record) => {
-      return total + (record.inboundNum0 || 0);
-    }, 0);
-    // 妫�鏌ュ簱瀛樻槸鍚﹀厖瓒�
-    if (currentStock < requiredQuantity) {
-      // 搴撳瓨涓嶈冻鎻愮ず
-      proxy.$modal.msgWarning(`浜у搧搴撳瓨涓嶈冻`);
-      return;
-    }
-
-    // 搴撳瓨鍏呰冻锛岀户缁墦寮�鍙戣揣寮规
-    currentDeliveryContext.value = { parentRow, productRow };
+const openDeliveryForm = (row) => {
+  getProductInventory({ salesLedgerId: row.id, type:1 }).then((res) => {
+    currentDeliveryRow.value = row;
     deliveryForm.value = {
       shippingDate: getCurrentDate(),
       shippingCarNumber: "",
     };
     deliveryFormVisible.value = true;
-
-  } catch (error) {
-    console.error('鑾峰彇搴撳瓨淇℃伅澶辫触:', error);
-    proxy.$modal.msgError("鑾峰彇搴撳瓨淇℃伅澶辫触锛岃閲嶈瘯");
-  }
+  }).catch(err => {
+    ElMessage.error(err.msg);
+  });
 };
 
 // 鎻愪氦鍙戣揣琛ㄥ崟

--
Gitblit v1.9.3