Browse Source

🐞 fix(【drp-价格申报单】): 修改供应商未修改子表对应价格

单号:JG202406280159 最近含税单价为5 供应商为:	圣湘生物科技股份有限公司 物料:501-01-01-000300 单号:JG202406280161 供应商为:天鉴国际工程管理有限公司湘乡分公司   物料:501-01-01-000300  同物料换了供应商后 该供应商没有历史价格,最近价格应该为0,目前取的最近价格还是圣湘生物科技股份有限公司的价格

20240619384  -v2
002390 11 months ago
parent
commit
469b8ed9df

+ 8 - 0
src/api/business/purchase/apply.js

@@ -83,4 +83,12 @@ export function BATCHPRICE(data) {
     method: "POST",
     data: data,
   });
+}
+// 复制批量获取调价类型、单价差、涨幅、预计年影响金额
+export function BATCHPRICEISEXIST(data) {
+  return request({
+    url: `/pu/price/catalogue/batchPriceIsExist`,
+    method: "POST",
+    data: data,
+  });
 }

+ 39 - 1
src/views/purchase/apply/add/index.vue

@@ -1,7 +1,12 @@
 <script>
 import useColumns from "./columns";
 import { EXIST } from "@/api/business/purchase/catalogue";
-import { SAVE, PRICE, BATCHPRICE } from "@/api/business/purchase/apply";
+import {
+  SAVE,
+  PRICE,
+  BATCHPRICE,
+  BATCHPRICEISEXIST,
+} from "@/api/business/purchase/apply";
 import { tax, unit, currency } from "@/components/popover-select-v2/fetch";
 // 用于回显参照框数据
 import { getRefer } from "@/api/purchase/basic.js";
@@ -529,6 +534,29 @@ export default {
         this.loading = false;
       }
     },
+    // 供应商改变
+    async changeSupplierName(prop) {
+      const { priceApplyItems, puOrg, supplier } = this.params;
+      if (priceApplyItems.length) {
+        try {
+          this.loading = true;
+          const params = {
+            priceVoItems: [...priceApplyItems],
+            puOrg,
+            supplier,
+          };
+          let { code, data } = await BATCHPRICEISEXIST({
+            ...params,
+          });
+          if (code === 200) {
+            this.params.priceApplyItems = data;
+          }
+        } catch (error) {
+        } finally {
+          this.loading = false;
+        }
+      }
+    },
   },
   created() {},
   mounted() {},
@@ -572,6 +600,16 @@ export default {
         label-position="right"
         style="padding: 18px"
       >
+        <template slot="supplierName" slot-scope="scope">
+          <component
+            v-bind="scope.attr"
+            v-model="scope.row[scope.item.key]"
+            :size="$attrs.size"
+            :source.sync="scope.row"
+            @change="changeSupplierName(scope.row)"
+          >
+          </component>
+        </template>
       </el-super-form>
       <el-tabs v-model="tabName" style="padding: 0 18px 18px">
         <el-tab-pane

+ 34 - 1
src/views/purchase/apply/copy/index.vue

@@ -1,7 +1,7 @@
 <script>
 import useColumns from "./columns";
 import { EXIST } from "@/api/business/purchase/catalogue";
-import { ITEM, SAVE, PRICE, BATCHPRICE } from "@/api/business/purchase/apply";
+import { ITEM, SAVE, PRICE, BATCHPRICE,BATCHPRICEISEXIST } from "@/api/business/purchase/apply";
 import { tax, unit, currency } from "@/components/popover-select-v2/fetch";
 // 用于回显参照框数据
 import { getRefer } from "@/api/purchase/basic.js";
@@ -582,6 +582,29 @@ export default {
         this.loading = false;
       }
     },
+    // 供应商改变
+    async changeSupplierName(prop) {
+      const { priceApplyItems, puOrg, supplier } = this.params;
+      if (priceApplyItems.length) {
+        try {
+          this.loading = true;
+          const params = {
+            priceVoItems: [...priceApplyItems],
+            puOrg,
+            supplier,
+          };
+          let { code, data } = await BATCHPRICEISEXIST({
+            ...params,
+          });
+          if (code === 200) {
+            this.params.priceApplyItems = data;
+          }
+        } catch (error) {
+        } finally {
+          this.loading = false;
+        }
+      }
+    },
   },
   created() {},
   mounted() {},
@@ -630,6 +653,16 @@ export default {
         label-position="right"
         style="padding: 18px"
       >
+      <template slot="supplierName" slot-scope="scope">
+          <component
+            v-bind="scope.attr"
+            v-model="scope.row[scope.item.key]"
+            :size="$attrs.size"
+            :source.sync="scope.row"
+            @change="changeSupplierName(scope.row)"
+          >
+          </component>
+        </template>
       </el-super-form>
       <el-tabs v-model="tabName" style="padding: 0 18px 18px">
         <el-tab-pane

+ 40 - 1
src/views/purchase/apply/edit/index.vue

@@ -1,7 +1,13 @@
 <script>
 import useColumns from "./columns";
 import { EXIST } from "@/api/business/purchase/catalogue";
-import { ITEM, SAVE, PRICE, BATCHPRICE } from "@/api/business/purchase/apply";
+import {
+  ITEM,
+  SAVE,
+  PRICE,
+  BATCHPRICE,
+  BATCHPRICEISEXIST,
+} from "@/api/business/purchase/apply";
 import { tax, unit, currency } from "@/components/popover-select-v2/fetch";
 // 用于回显参照框数据
 import { getRefer } from "@/api/purchase/basic.js";
@@ -596,6 +602,29 @@ export default {
         this.loading = false;
       }
     },
+    // 供应商改变
+    async changeSupplierName(prop) {
+      const { priceApplyItems, puOrg, supplier } = this.params;
+      if (priceApplyItems.length) {
+        try {
+          this.loading = true;
+          const params = {
+            priceVoItems: [...priceApplyItems],
+            puOrg,
+            supplier,
+          };
+          let { code, data } = await BATCHPRICEISEXIST({
+            ...params,
+          });
+          if (code === 200) {
+            this.params.priceApplyItems = data;
+          }
+        } catch (error) {
+        } finally {
+          this.loading = false;
+        }
+      }
+    },
   },
   created() {},
   mounted() {},
@@ -644,6 +673,16 @@ export default {
         label-position="right"
         style="padding: 18px"
       >
+        <template slot="supplierName" slot-scope="scope">
+          <component
+            v-bind="scope.attr"
+            v-model="scope.row[scope.item.key]"
+            :size="$attrs.size"
+            :source.sync="scope.row"
+            @change="changeSupplierName(scope.row)"
+          >
+          </component>
+        </template>
       </el-super-form>
       <el-tabs v-model="tabName" style="padding: 0 18px 18px">
         <el-tab-pane