Forráskód Böngészése

【新增】
1.商用工程订单
2.工程发货申请单

莫绍宝 3 éve
szülő
commit
a3358dcaf0

+ 27 - 0
src/api/supply/apply.js

@@ -137,6 +137,15 @@ export function getEnginGoodsList(params) {
   })
 }
 
+// 工程发货申请单 - 获取产品详情
+export function getEnginGoodsDetail(params) {
+  return request({
+    url: '/invoice/listProjectOrderDetail',
+    method: 'get',
+    params
+  })
+}
+
 // 工程发货申请单 - 新增
 export function addEngin(params) {
   return request({
@@ -162,4 +171,22 @@ export function examineEngin(params) {
     method: 'post',
     data: params
   })
+}
+
+// 工程发货申请单 - 申请/撤回
+export function submitEngin(params) {
+  return request({
+    url: '/invoice/submitProject',
+    method: 'post',
+    params
+  })
+}
+
+// 工程发货申请单 - 删除
+export function deleteEngin(params) {
+  return request({
+    url: '/invoice/deleteProject',
+    method: 'post',
+    params
+  })
 }

+ 2 - 2
src/views/supply/apply/apply_list.vue

@@ -86,7 +86,7 @@
             <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="计量单位" prop="unit" min-width="100" show-overflow-tooltip></el-table-column>
-            <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="数量" prop="refundableQty" min-width="100" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="备注信息" prop="remark" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="制单人" prop="createBy" min-width="100" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="制单日期" prop="createTime" min-width="160" show-overflow-tooltip></el-table-column>
@@ -108,7 +108,7 @@
                 <el-button type="text" @click="toForm(scope.row)" v-if="scope.row.examineStatus === 'SAVE'">编辑</el-button>
                 <el-button type="text" @click="toExamine(scope.row)" v-if="scope.row.examineStatus === 'WAIT'">审单</el-button>
                 <el-button type="text" @click="toDetail(scope.row)">详情</el-button>
-                <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @onConfirm="handleDelete(scope.row.id)" >
+                <el-popconfirm style="margin-left: 10px;" title="确定删除吗?" @onConfirm="handleDelete(scope.row.id)"  v-if="scope.row.examineStatus !== 'OK'">
                   <el-button slot="reference" type="text">删除</el-button>
                 </el-popconfirm>
               </template>

+ 1 - 1
src/views/supply/apply/components/apply_form.vue

@@ -480,7 +480,7 @@ export default {
             remark: this.mainForm.remark,
             fileUrl: this.fileList && this.fileList.length > 0 ? this.fileList[0].url : '',
             fileName: this.fileList && this.fileList.length > 0 ? this.fileList[0].name : '',
-            orderType: 1, // 1零售单 2家用工程 3商用工程
+            // orderType: 1, // 1零售单 2家用工程 3商用工程
             correspondId: this.screenForm.warehouse,
             correspondName,
             orders: this.goodsList,

+ 50 - 6
src/views/supply/apply/components/engin_form.vue

@@ -225,7 +225,7 @@
               {{scope.row.orderType | orderTypeFilter}}
             </template>
           </el-table-column>
-          <el-table-column align="center" label="工程登录编号" prop="enginOrderNo" min-width="180" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="工程登录编号" prop="enginOrderNo" min-width="200" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="销售类型" prop="saleTypeName" min-width="100" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="物料代码" prop="materialOldNumber" min-width="160" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="产品编码" prop="materialCode" min-width="160" show-overflow-tooltip></el-table-column>
@@ -275,7 +275,7 @@
 </template>
 
 <script>
-import { getEnginDetail, addEngin, editEngin, getEnginGoodsList, getWarehouseList, getDealerList } from "@/api/supply/apply";
+import { getEnginDetail, addEngin, editEngin, getEnginGoodsList, getWarehouseList, getDealerList, getEnginGoodsDetail } from "@/api/supply/apply";
 import { getDictList } from '@/api/common'
 import { findElem } from '@/utils/util'
 import fileUpload from '@/components/Common/file-upload.vue'
@@ -397,15 +397,26 @@ export default {
       getEnginDetail({id: this.listItem.id}).then(res => {
         let data = res.data;
         this.mainForm.orderNum = data.id;
-        this.mainForm.date = data.orderTime;
+        this.mainForm.orderDate = data.orderTime.slice(0, 10);
         this.mainForm.jxsNum = data.customerNumber;
         this.mainForm.jxsName = data.customerName;
+        this.mainForm.loginNum = data.enginOrderNo;
+        this.mainForm.enginName = data.refProjectName;
+        this.mainForm.loginType = data.enginOrderType;
+        this.mainForm.factoryNum = data.refFactoryNo;
+        this.mainForm.company = data.refUseUnit;
+        this.mainForm.saleType = data.saleTypeId;
+        this.mainForm.contactMan = data.refLinkman;
+        this.mainForm.tel = data.refTel;
+        this.mainForm.phone = data.refPhone;
+        this.mainForm.address = data.refInstallAddress;
         this.mainForm.createMan = data.createBy;
+        this.mainForm.createDate = data.createTime;
         this.mainForm.remark = data.remark;
         this.screenForm.warehouse = data.correspondId;
         this.fileList = data.fileUrl ? [{
           url: data.fileUrl,
-          name: data.fileName
+          name: data.fileName,
         }] : [];
         data.orders.forEach(item => {
           item.orderId = item.id;
@@ -548,6 +559,17 @@ export default {
       return newArr;
     },
 
+    // 检查是否一致
+    isAllEqual(array) {
+      if (array.length > 0) {
+        return !array.some(function(item, index) {
+          return item.enginOrderNo !== array[0].enginOrderNo;
+        });
+      } else {
+        return true;
+      }
+    },
+
     // 确定 添加产品
     submitAddGoods() {
       let allList = this.tableGoodsList;
@@ -556,16 +578,38 @@ export default {
 
       for(let i = 0; i < allList.length; i++) {
         for(let j = 0; j < selectList.length; j++) {
-          if(selectList[j].orderId == allList[i].orderId){
+          if(selectList[j].enginOrderNo == allList[i].enginOrderNo){
             submitList.push(allList[i]);
           }
         }
       }
       // this.goodsList = this.goodsList.concat(submitList);
 
+      if(!this.isAllEqual(submitList)) {
+        return this.$errorMsg('只能选择同一个工程编号的订单');
+      }
+
       this.goodsList = this.delRepeat(submitList, this.goodsList);
       this.isShowDialog = false;
       this.tableGoodsList = [];
+
+      this.getEnginGoodsDetail(submitList[0].enginOrderNo);
+    },
+
+    getEnginGoodsDetail(enginOrderNo) {
+      getEnginGoodsDetail({enginOrderNo}).then(res => {
+        let data = res.data;
+        this.mainForm.loginNum = data.refEnginRecordNo;
+        this.mainForm.enginName = data.refProjectName;
+        this.mainForm.loginType = data.refPromiseStatus;
+        this.mainForm.factoryNum = data.refFactoryNo;
+        this.mainForm.company = data.refUseUnit;
+        this.mainForm.saleType = data.saleTypeId;
+        this.mainForm.contactMan = data.refLinkman;
+        this.mainForm.tel = data.refTel;
+        this.mainForm.phone = data.refPhone;
+        this.mainForm.address = data.refInstallAddress;
+      })
     },
 
     // 删除产品
@@ -598,7 +642,7 @@ export default {
 
           let correspondName = this.warehouseList[findElem(this.warehouseList, 'id', this.screenForm.warehouse)].name;
           let params = {
-            orderTime: this.mainForm.date + ' 00:00:00',
+            orderTime: this.mainForm.orderDate + ' 00:00:00',
             remark: this.mainForm.remark,
             enginOrderNo: this.mainForm.loginNum,
             refProjectName: this.mainForm.enginName,

+ 1 - 0
src/views/supply/engin/commerce_list.vue

@@ -199,6 +199,7 @@ export default {
       dataList: null, // 列表数据
       listLoading: false, // 列表加载loading
       screenForm: { // 筛选表单数据
+        status: '',
         orderNum: '',
         enginNum: '',
         loginNum: '',

+ 16 - 17
src/views/supply/engin/components/commerce_form.vue

@@ -152,7 +152,7 @@
         <el-table-column align="center" label="规格型号" prop="specification" min-width="160" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="单位" prop="baseUnitId" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="工程登录数量" prop="enginNum" min-width="120" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="工程信息数量" prop="enginNum" min-width="120" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="数量" prop="qty" min-width="100" show-overflow-tooltip>
           <template slot-scope="scope">
             <el-input v-model="scope.row.qty" size="small"></el-input>
@@ -281,7 +281,7 @@
           max-height="270">
           <el-table-column align="center" label="" width="100">
             <template slot-scope="scope">
-              <el-button type="primary" size="small" @click="chooseItem(scope.row.enginInfoNo)">选择</el-button>
+              <el-button type="primary" size="small" @click="chooseItem(scope.row.enginInfoId)">选择</el-button>
             </template>
           </el-table-column>
           <el-table-column align="center" prop="checkTime" label="工程登录日期" show-overflow-tooltip></el-table-column>
@@ -552,29 +552,29 @@ export default {
       getComLoginDetail({id}).then(res => {
         this.isShowDialog = false;
         let data = res.data;
-        this.mainForm.type = data.productCategory;
-        this.mainForm.saleType = '';
+        this.mainForm.type = data.productCategoryId;
         this.mainForm.enginNum = data.enginInfoNo;
         this.mainForm.enginName = data.projectName;
-        this.mainForm.loginType = data.promiseStatus;
+        this.mainForm.loginType = data.enginSignType;
         this.mainForm.company = data.useUnit;
-        this.mainForm.contactMan = data.buyUnitCallMen;
-        this.mainForm.tel = data.buyUnitTel;
-        this.mainForm.phone = data.buyUnitPhone;
+        this.mainForm.contactMan = data.linkman;
+        this.mainForm.tel = data.tel;
+        this.mainForm.phone = data.phone;
         this.mainForm.address = data.installAddress;
 
         this.goodsList = data.items.map(item => {
           return {
             useRefCount: '',
-            saleTypeName: '',
-            materialNumber: '',
-            materialOldNumber: item.code,
-            materialName: item.name,
+            saleTypeName: item.saleTypeName,
+            materialId: item.materialId,
+            materialNumber: item.materialNumber,
+            materialOldNumber: item.materialOldNumber,
+            materialName: item.materialName,
             specification: item.machine,
-            baseUnitId: '',
+            baseUnitId: item.unit,
             price: item.price,
             enginNum: '',
-            qty: item.num,
+            qty: item.qty,
             customerWalletId2: '',
             rebateRate: '',
             discAmount: '',
@@ -582,8 +582,8 @@ export default {
             isDirectTransfer: false,
             directTransferQty: '',
             hasSendQty: '',
-            remark: item.discri,
-            tax: '',
+            remark: item.remark,
+            tax: item.taxRate,
             status1: '',
             status2: '',
           }
@@ -666,7 +666,6 @@ export default {
             mainId: this.mainForm.type || '',
             refEnginRecordNo: this.mainForm.enginNum || '',
             refFactoryNo: this.mainForm.factoryNum || '',
-            buyUnitPhone: this.mainForm.phone,
             note2: this.mainForm.greeRemark || '',
             note1: this.mainForm.greeReply || '',
             remark: this.mainForm.remark || '',

+ 0 - 1
src/views/supply/engin/components/home_form.vue

@@ -700,7 +700,6 @@ export default {
             saleTypeId: this.mainForm.saleType,
             saleTypeCode: saleTypeItem.saleCode,
             saleTypeName: saleTypeItem.saleName,
-            buyUnitPhone: this.mainForm.phone,
             note2: this.mainForm.greeRemark || '',
             note1: this.mainForm.greeReply || '',
             remark: this.mainForm.remark || '',

+ 1 - 0
src/views/supply/engin/home_list.vue

@@ -199,6 +199,7 @@ export default {
       dataList: null, // 列表数据
       listLoading: false, // 列表加载loading
       screenForm: { // 筛选表单数据
+        status: '',
         orderNum: '',
         enginNum: '',
         loginNum: '',