From 2bd5971bf7b3e90ec2c928510b506aefeecfdfe0 Mon Sep 17 00:00:00 2001
From: yaowanxin <3588231647@qq.com>
Date: 星期二, 23 十二月 2025 10:33:11 +0800
Subject: [PATCH] 发货前校验产品库存修改
---
src/views/salesManagement/salesLedger/index.vue | 73 +++++++++++++++++++++++++-----------
1 files changed, 50 insertions(+), 23 deletions(-)
diff --git a/src/views/salesManagement/salesLedger/index.vue b/src/views/salesManagement/salesLedger/index.vue
index 8c7c448..8b0e963 100644
--- a/src/views/salesManagement/salesLedger/index.vue
+++ b/src/views/salesManagement/salesLedger/index.vue
@@ -72,7 +72,7 @@
<el-table-column label="绛捐鏃ユ湡" prop="executionDate" width="120" show-overflow-tooltip />
<el-table-column fixed="right" label="鎿嶄綔" min-width="200" align="center">
<template #default="scope">
- <el-button link type="primary" size="small" :disabled="scope.row.invoiceTotal>0 || scope.row.entryPersonName !== userStore.nickName" @click="openForm('edit', scope.row)">缂栬緫</el-button>
+ <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>
@@ -215,9 +215,6 @@
<el-row :gutter="30">
<el-col :span="24">
<el-form-item label="浜у搧澶х被锛�" prop="productCategory">
- <!-- <el-select v-model="productForm.productCategory" placeholder="璇烽�夋嫨" clearable>
- <el-option v-for="item in userList" :key="item.nickName" :label="item.nickName" :value="item.nickName"/>
- </el-select> -->
<el-tree-select v-model="productForm.productCategory" placeholder="璇烽�夋嫨" clearable check-strictly
@change="getModels" :data="productOptions" :render-after-expand="false" style="width: 100%" />
</el-form-item>
@@ -472,11 +469,12 @@
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";
import dayjs from "dayjs";
+import { ElMessage } from 'element-plus'
const userStore = useUserStore();
const { proxy } = getCurrentInstance();
@@ -559,18 +557,18 @@
{ required: true, message: "璇烽�夋嫨", trigger: "change" },
],
unit: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
- quantity: [{ required: true, message: "璇疯緭鍏�", trigger: "blur" }],
+ quantity: [{ required: false, message: "璇疯緭鍏�", trigger: "blur" }],
taxInclusiveUnitPrice: [
- { required: true, message: "璇疯緭鍏�", trigger: "blur" },
+ { required: false, message: "璇疯緭鍏�", trigger: "blur" },
],
- taxRate: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ taxRate: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
taxInclusiveTotalPrice: [
- { required: true, message: "璇疯緭鍏�", trigger: "blur" },
+ { required: false, message: "璇疯緭鍏�", trigger: "blur" },
],
taxExclusiveTotalPrice: [
- { required: true, message: "璇疯緭鍏�", trigger: "blur" },
+ { required: false, message: "璇疯緭鍏�", trigger: "blur" },
],
- invoiceType: [{ required: true, message: "璇烽�夋嫨", trigger: "change" }],
+ invoiceType: [{ required: false, message: "璇烽�夋嫨", trigger: "change" }],
},
});
const { productForm, productRules } = toRefs(productFormData);
@@ -860,13 +858,25 @@
const submitProduct = () => {
proxy.$refs["productFormRef"].validate((valid) => {
if (valid) {
+ // 澶勭悊绋庣巼銆侀噾棰濆拰鏁伴噺瀛楁锛屽鏋滀负绌哄垯璁剧疆涓�0
+ const processedForm = { ...productForm.value };
+
+ // 闇�瑕佸鐞嗙殑瀛楁鍒楄〃
+ const numericFields = ['taxRate', 'taxInclusiveUnitPrice', 'taxInclusiveTotalPrice', 'taxExclusiveTotalPrice', 'quantity'];
+
+ numericFields.forEach(field => {
+ if (processedForm[field] === '' || processedForm[field] === null || processedForm[field] === undefined) {
+ processedForm[field] = 0;
+ }
+ });
+
if (operationType.value === "edit") {
submitProductEdit();
} else {
if(productOperationType.value === "add"){
- productData.value.push({ ...productForm.value });
+ productData.value.push(processedForm);
}else{
- productData.value[productIndex.value] = { ...productForm.value }
+ productData.value[productIndex.value] = processedForm;
}
closeProductDia();
}
@@ -874,9 +884,22 @@
});
};
const submitProductEdit = () => {
- productForm.value.salesLedgerId = currentId.value;
- productForm.value.type = 1
- addOrUpdateSalesLedgerProduct(productForm.value).then((res) => {
+ // 澶勭悊绋庣巼銆侀噾棰濆拰鏁伴噺瀛楁锛屽鏋滀负绌哄垯璁剧疆涓�0
+ const processedForm = { ...productForm.value };
+
+ // 闇�瑕佸鐞嗙殑瀛楁鍒楄〃
+ const numericFields = ['taxRate', 'taxInclusiveUnitPrice', 'taxInclusiveTotalPrice', 'taxExclusiveTotalPrice', 'quantity'];
+
+ numericFields.forEach(field => {
+ if (processedForm[field] === '' || processedForm[field] === null || processedForm[field] === undefined) {
+ processedForm[field] = 0;
+ }
+ });
+
+ processedForm.salesLedgerId = currentId.value;
+ processedForm.type = 1;
+
+ addOrUpdateSalesLedgerProduct(processedForm).then((res) => {
proxy.$modal.msgSuccess("鎻愪氦鎴愬姛");
closeProductDia();
getSalesLedgerWithProducts({ id: currentId.value, type: 1 }).then((res) => {
@@ -1524,14 +1547,18 @@
// 鎵撳紑鍙戣揣寮规
const openDeliveryForm = (row) => {
- currentDeliveryRow.value = row;
- deliveryForm.value = {
- shippingDate: getCurrentDate(),
- shippingCarNumber: "",
- };
- deliveryFormVisible.value = true;
-};
+ getProductInventory({ salesLedgerId: row.id, type:1 }).then((res) => {
+ currentDeliveryRow.value = row;
+ deliveryForm.value = {
+ shippingDate: getCurrentDate(),
+ shippingCarNumber: "",
+ };
+ deliveryFormVisible.value = true;
+ }).catch(err => {
+ ElMessage.error(err.msg);
+ });
+};
// 鎻愪氦鍙戣揣琛ㄥ崟
const submitDelivery = () => {
proxy.$refs["deliveryFormRef"].validate((valid) => {
--
Gitblit v1.9.3