Browse Source

【修改】申请发货单,发货单

莫绍宝 3 years ago
parent
commit
032cf5ed01

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

@@ -90,7 +90,7 @@
           </template>
         </el-table-column>
         <el-table-column align="center" label="库存数" prop="stockNumber" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="180" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售订单号" prop="orderId" min-width="180" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品编码" prop="materialCode" min-width="120" show-overflow-tooltip></el-table-column>
         <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>

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

@@ -84,7 +84,7 @@
           </template>
         </el-table-column>
         <el-table-column align="center" label="库存数" prop="stockNumber" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="180" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售订单号" prop="orderId" min-width="180" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品编码" prop="materialCode" min-width="120" show-overflow-tooltip></el-table-column>
         <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>

+ 36 - 16
src/views/supply/apply/components/apply_form.vue

@@ -139,7 +139,7 @@
       <div class="table">
         <el-table :data="tableGoodsList" element-loading-text="Loading" border fit highlight-current-row stripe height="400" @selection-change="tableSelectionChange">
           <el-table-column align="center" type="selection" width="55" :selectable='checkboxSelect'></el-table-column>
-          <el-table-column align="center" label="订单号" prop="orderId" min-width="180" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="订单号" prop="mainOrderId" 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="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>
@@ -151,13 +151,18 @@
             </template>
           </el-table-column>
           <el-table-column align="center" label="已申请数量" prop="alreadyInvoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="已申请未出货数量" prop="sendQty" 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="stockAdequate" min-width="100" show-overflow-tooltip>
             <template slot-scope="scope">
-              {{scope.row.stockAdequate | stockFilter}}
+              {{stockFilter(scope.row, 1)}}
+            </template>
+          </el-table-column>
+          <el-table-column align="center" label="对应库存数量" prop="stockCorrespond" min-width="110" show-overflow-tooltip>
+            <template slot-scope="scope">
+              {{stockFilter(scope.row, 2)}}
             </template>
           </el-table-column>
-          <el-table-column align="center" label="对应库存数量" prop="stockCorrespond" min-width="110" show-overflow-tooltip></el-table-column>
         </el-table>
         <div class="pagination clearfix" style="margin-top: 10px">
           <div class="fr">
@@ -195,15 +200,6 @@ export default {
   name: 'ApplyForm',
   componentName: 'ApplyForm',
   props: ['listItem'],
-  filters: {
-    stockFilter(val) {
-      const MAP = {
-        0: '不充足',
-        1: '充足'
-      }
-      return MAP[val]
-    }
-  },
   data() {
     return {
       mainForm: {
@@ -233,6 +229,7 @@ export default {
       currentPage: 1,
       listTotal: 0,
       typeList: [],
+      stockList: [],
       
       tableGoodsList: [],
       tableSelection: [],
@@ -307,6 +304,9 @@ export default {
       getDictList({sysDictEnum: 'PRODUCT_TYPE'}).then(res => {
         this.typeList = res.data;
       })
+      getDictList({sysDictEnum: 'STOCK_ORDER'}).then(res => {
+        this.stockList = res.data;
+      })
     },
 
     // 获取经销商列表
@@ -319,6 +319,17 @@ export default {
         this.dealerList = res.data.records;
       })
     },
+    
+    // 库存字段
+    stockFilter(item, type) {
+      let STOCK_ORDER_INVOICE = this.stockList.find(o => o.dictCode == 'STOCK_ORDER_INVOICE').dictValue;
+      if(type === 1) {
+        return item.stockAdequate > STOCK_ORDER_INVOICE ? '充足' : item.stockAdequate;
+      }
+      if(type === 2) {
+        return item.stockCorrespond > STOCK_ORDER_INVOICE ? '充足' : item.stockCorrespond;
+      }
+    },
 
     // 获取商品列表
     getGoodsList() {
@@ -423,6 +434,17 @@ export default {
 
     // 确定 添加产品
     submitAddGoods() {
+      for(let i=0; i<this.tableSelection.length; i++) {
+        if(!this.tableSelection[i].invoiceNum) {
+          this.$errorMsg('请输入申请数量');
+          return;
+        }
+        if(this.tableSelection[i].invoiceNum > this.tableSelection[i].refundableQty) {
+          this.$errorMsg('申请数量不能大于未申请数量');
+          return;
+        }
+      }
+
       let allList = this.tableGoodsList;
       let selectList = this.tableSelection;
       let submitList = [];
@@ -461,10 +483,8 @@ export default {
               this.$errorMsg('请输入申请数量');
               return;
             }
-          }
-          for(let i=0; i<this.goodsList.length; i++) {
-            if(this.goodsList[i].invoiceNum > this.goodsList[i].qty) {
-              this.$errorMsg('申请数量不能大于总数量');
+            if(this.goodsList[i].invoiceNum > this.goodsList[i].refundableQty) {
+              this.$errorMsg('申请数量不能大于未申请数量');
               return;
             }
           }

+ 2 - 2
src/views/supply/apply/components/engin_detail.vue

@@ -120,8 +120,8 @@
       <el-table :data="detailData.orders" element-loading-text="Loading" border fit highlight-current-row stripe max-height="400">
         <el-table-column align="center" label="序号" type="index" width="50"></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="theTime" min-width="100" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="180" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="订单日期" prop="theTime" min-width="160" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售订单号" prop="orderId" min-width="180" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="物料代码" prop="materialOldNumber" min-width="120" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品编码" prop="materialCode" min-width="120" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>

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

@@ -129,7 +129,7 @@
         </el-table-column>
         <el-table-column align="center" label="库存数" prop="stockNumber" min-width="100" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="订单日期" prop="theTime" min-width="160" show-overflow-tooltip></el-table-column>
-        <el-table-column align="center" label="销售订单号" prop="retailOrderId" min-width="180" show-overflow-tooltip></el-table-column>
+        <el-table-column align="center" label="销售订单号" prop="orderId" min-width="180" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="物料代码" prop="materialOldNumber" min-width="120" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品编码" prop="materialCode" min-width="120" show-overflow-tooltip></el-table-column>
         <el-table-column align="center" label="产品名称" prop="materialName" min-width="160" show-overflow-tooltip></el-table-column>

+ 42 - 14
src/views/supply/apply/components/engin_form.vue

@@ -234,6 +234,7 @@
           <el-table-column align="center" label="单位" prop="unit" min-width="80" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="订单数量" prop="qty" min-width="80" show-overflow-tooltip></el-table-column>
           <el-table-column align="center" label="已申请数量" prop="alreadyInvoiceNum" min-width="100" show-overflow-tooltip></el-table-column>
+          <el-table-column align="center" label="已申请未出货数量" prop="sendQty" 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="invoiceNum" min-width="110" show-overflow-tooltip>
             <template slot-scope="scope">
@@ -242,12 +243,12 @@
           </el-table-column>
           <el-table-column align="center" label="总库存数量" prop="stockAdequate" min-width="100" show-overflow-tooltip>
             <template slot-scope="scope">
-              {{scope.row.stockAdequate | stockFilter}}
+              {{stockFilter(scope.row, 1)}}
             </template>
           </el-table-column>
           <el-table-column align="center" label="对应库存数量" prop="stockCorrespond" min-width="110" show-overflow-tooltip>
             <template slot-scope="scope">
-              {{scope.row.stockCorrespond | stockFilter}}
+              {{stockFilter(scope.row, 1)}}
             </template>
           </el-table-column>
         </el-table>
@@ -289,15 +290,18 @@ export default {
   props: ['listItem'],
   filters: {
     orderTypeFilter(val) {
-      
-    },
-    stockFilter(val) {
-      if(val > 50) {
-        return '充足';
-      }else {
-        return '紧缺';
+      const MAP = {
+        TRADE: '商用',
+        HOME: '家用',
+        RETAIL: '零售单',
+        RETAIL_POLICY: '销售政策单',
+        PERMU_HOME: '置换单家用',
+        PERMU_TRADE: '置换商用',
+        PERMU_RETAIL: '置换零售',
+        PERMU_RETAIL_POLICY: '置换销售政策单',
       }
-    }
+      return MAP[val];
+    },
   },
   data() {
     return {
@@ -338,6 +342,7 @@ export default {
       currentPage: 1,
       listTotal: 0,
       typeList: [],
+      stockList: [],
       
       tableGoodsList: [],
       tableSelection: [],
@@ -439,6 +444,9 @@ export default {
       getDictList({sysDictEnum: 'PRODUCT_TYPE'}).then(res => {
         this.typeList = res.data;
       })
+      getDictList({sysDictEnum: 'STOCK_ORDER'}).then(res => {
+        this.stockList = res.data;
+      })
     },
 
     // 获取经销商列表
@@ -452,6 +460,17 @@ export default {
       })
     },
 
+    // 库存字段
+    stockFilter(item, type) {
+      let STOCK_ORDER_INVOICE = this.stockList.find(o => o.dictCode == 'STOCK_ORDER_INVOICE').dictValue;
+      if(type === 1) {
+        return item.stockAdequate > STOCK_ORDER_INVOICE ? '充足' : item.stockAdequate;
+      }
+      if(type === 2) {
+        return item.stockCorrespond > STOCK_ORDER_INVOICE ? '充足' : item.stockCorrespond;
+      }
+    },
+
     // 获取商品列表
     getGoodsList() {
       getEnginGoodsList({
@@ -572,6 +591,17 @@ export default {
         return this.$errorMsg('只能选择同一个工程编号的订单');
       }
 
+      for(let i=0; i<this.tableSelection.length; i++) {
+        if(!this.tableSelection[i].invoiceNum) {
+          this.$errorMsg('请输入申请数量');
+          return;
+        }
+        if(this.tableSelection[i].invoiceNum > this.tableSelection[i].refundableQty) {
+          this.$errorMsg('申请数量不能大于未申请数量');
+          return;
+        }
+      }
+
       let allList = this.tableGoodsList;
       let selectList = this.tableSelection;
       let submitList = [];
@@ -628,10 +658,8 @@ export default {
               this.$errorMsg('请输入申请数量');
               return;
             }
-          }
-          for(let i=0; i<this.goodsList.length; i++) {
-            if(this.goodsList[i].invoiceNum > this.goodsList[i].qty) {
-              this.$errorMsg('申请数量不能大于总数量');
+            if(this.goodsList[i].invoiceNum > this.goodsList[i].refundableQty) {
+              this.$errorMsg('申请数量不能大于未申请数量');
               return;
             }
           }

+ 1 - 1
src/views/supply/apply/engin_list.vue

@@ -89,7 +89,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>

+ 53 - 49
src/views/supply/deliver/components/deliver_detail.vue

@@ -10,111 +10,99 @@
         <el-row :gutter="0">
           <el-col :span="8" class="item">
             <div class="label">发货单号</div>
-            <div class="value">{{detailData.retreatOrderNo}}</div>
+            <div class="value">{{detailData.id}}</div>
           </el-col>
           <el-col :span="8" class="item">
             <div class="label">发货日期</div>
-            <div class="value">{{detailData.shipTime}}</div>
+            <div class="value">{{detailData.orderTime}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">业务类型</div>
-            <div class="value">{{detailData.type}}</div>
+            <div class="label">单据状态</div>
+            <div class="value">{{detailData.type | statusFilter}}</div>
           </el-col>
           <el-col :span="8" class="item">
             <div class="label">销售类型</div>
             <div class="value">{{detailData.salesType}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">订单号</div>
-            <div class="value">{{detailData.orderNo}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">发票号</div>
-            <div class="value">{{detailData.billNumber}}</div>
+            <div class="label">发货申请单号</div>
+            <div class="value">{{detailData.invoiceOrderNo}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">客户名称</div>
-            <div class="value">{{detailData.clientName}}</div>
+            <div class="label">订单类型</div>
+            <div class="value">{{detailData.orderType | orderTypeFilter}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">销售部门</div>
-            <div class="value">{{detailData.salesDep}}</div>
+            <div class="label">经销商编码</div>
+            <div class="value">{{detailData.customerNumber}}</div>
           </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">业务员</div>
-            <div class="value">{{detailData.salesman}}</div>
+          <el-col :span="16" class="item">
+            <div class="label">经销商名称</div>
+            <div class="value">{{detailData.customerName}}</div>
           </el-col>
           <el-col :span="8" class="item">
             <div class="label">工程编号</div>
             <div class="value">{{detailData.projectNumber}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">币种</div>
-            <div class="value">{{detailData.currency}}</div>
+            <div class="label">厂工程编码</div>
+            <div class="value">{{detailData.factoryNumber}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">订单类型</div>
-            <div class="value">{{detailData.orderType}}</div>
+            <div class="label">项目名称</div>
+            <div class="value">{{detailData.projectName}}</div>
           </el-col>
           <el-col :span="8" class="item">
             <div class="label">仓库</div>
-            <div class="value">{{detailData.stockName}}</div>
+            <div class="value">{{detailData.correspondName}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">发货申请单号</div>
-            <div class="value">{{detailData.invoiceOrderNo}}</div>
+            <div class="label">税率</div>
+            <div class="value">{{detailData.taxRate}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">台账备注</div>
-            <div class="value">{{detailData.iedgerRemark}}</div>
+            <div class="label">发票号</div>
+            <div class="value">{{detailData.billNumber}}</div>
           </el-col>
           <el-col :span="16" class="item">
             <div class="label">备注</div>
             <div class="value">{{detailData.remark}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">项目名称</div>
-            <div class="value">{{detailData.projectName}}</div>
+            <div class="label">币种</div>
+            <div class="value">{{detailData.currency}}</div>
           </el-col>
           <el-col :span="8" class="item">
             <div class="label">外仓印刷单号</div>
             <div class="value">{{detailData.printingSheet}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">厂工程编码</div>
-            <div class="value">{{detailData.factoryNumber}}</div>
+            <div class="label">制单人</div>
+            <div class="value">{{detailData.createBy}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">开票日期</div>
-            <div class="value">{{detailData.billingTime}}</div>
+            <div class="label">制单日期</div>
+            <div class="value">{{detailData.createTime}}</div>
           </el-col>
           <el-col :span="16" class="item">
             <div class="label">文件编号</div>
             <div class="value">{{detailData.fileNumber}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">税率</div>
-            <div class="value">{{detailData.taxRate}}</div>
-          </el-col>
-          <el-col :span="8" class="item">
-            <div class="label">订单日期</div>
-            <div class="value">{{detailData.createTime}}</div>
+            <div class="label">出库日期</div>
+            <div class="value">{{detailData.outTime}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">制单人</div>
-            <div class="value">{{detailData.createBy}}</div>
+            <div class="label">审核人</div>
+            <div class="value">{{detailData.approvalName}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">制单时间</div>
-            <div class="value">{{detailData.createTime}}</div>
+            <div class="label">审核日期</div>
+            <div class="value">{{detailData.approvalTime}}</div>
           </el-col>
           <el-col :span="8" class="item">
-            <div class="label">审核人</div>
-            <div class="value">{{detailData.retreatOrderNo}}</div>
-          </el-col>
-          <el-col :span="16" class="item">
-            <div class="label">审核时间</div>
-            <div class="value">{{detailData.retreatOrderNo}}</div>
+            <div class="label">开票日期</div>
+            <div class="value">{{detailData.billingTime}}</div>
           </el-col>
         </el-row>
       </div>
@@ -147,7 +135,7 @@
     
     <div class="page-footer">
       <div class="footer" :class="classObj">
-        <el-button  type="primary" icon="el-icon-printer" v-print="printObj">打 印</el-button>
+        <!-- <el-button  type="primary" icon="el-icon-printer" v-print="printObj">打 印</el-button> -->
         <el-popconfirm title="确定关闭吗?" @onConfirm="goBack" style="margin-left: 10px;">
           <el-button slot="reference">关 闭</el-button>
         </el-popconfirm>
@@ -168,6 +156,22 @@ export default {
   directives: {
     print
   },
+  filters: {
+    statusFilter(val) {
+      const MAP = {
+        1: '已受理'
+      }
+      return MAP[val];
+    },
+    orderTypeFilter(val) {
+      const MAP = {
+        1: '零售订单',
+        2: '家用工程订单',
+        3: '商用工程订单',
+      }
+      return MAP[val];
+    }
+  },
   data() {
     return {
       printObj: {

+ 5 - 5
src/views/supply/deliver/deliver_list.vue

@@ -21,8 +21,8 @@
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
-              <el-form-item label="存货名称" prop="chName">
-                <el-input v-model="screenForm.chName" placeholder="请输入存货名称"></el-input>
+              <el-form-item label="产品名称" prop="chName">
+                <el-input v-model="screenForm.chName" placeholder="请输入产品名称"></el-input>
               </el-form-item>
             </el-col>
             <el-col :xs="24" :sm="12" :lg="6">
@@ -62,16 +62,16 @@
         </div>
         <div class="table">
           <el-table v-loading="listLoading" :data="dataList" element-loading-text="Loading" border fit highlight-current-row stripe>
-            <el-table-column align="center" label="发货单号" prop="id" min-width="160" show-overflow-tooltip></el-table-column>
+            <el-table-column align="center" label="发货单号" prop="id" min-width="180" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="发货日期" prop="orderTime" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="仓库" prop="correspondName" min-width="160" show-overflow-tooltip></el-table-column>
             <el-table-column align="center" label="经销商" prop="customerName" min-width="160" show-overflow-tooltip></el-table-column>
             <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="totalPrice" 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 align="center" label="无税金额" min-width="100" show-overflow-tooltip>
               <template slot-scope="scope">
-                {{ scope.row.qty * scope.row.price }}
+                {{ scope.row.qty * (scope.row.price * 1000) / 1000 }}
               </template>
             </el-table-column>
             <el-table-column align="center" label="无税单价" prop="price" min-width="100" show-overflow-tooltip></el-table-column>