Selaa lähdekoodia

Merge branch 'master' of http://git.dongkesoft.com:9001/iBOSS-2.0-Mini/iboss_wx_app

姜永辉 2 vuotta sitten
vanhempi
commit
263e218749

+ 67 - 23
package-purchase/pages/purchase-order/add/add.js

@@ -202,6 +202,7 @@ Page({
         data.goodsList = data.purchaseItemResponseList
         data.goodsList.forEach(element => {
             element.chooseFlg = "biu" //辨别选品标识
+            element.purDiscount =  (Number(element.pricePurchase) / Number(element.priceStandard)) * 100;
         });
         data.supName = data.supplierName
         let cardList_ = this.data.cardList
@@ -209,10 +210,7 @@ Page({
 
         cardList_.forEach(card => {
             if (card.name === 'items') {
-                card.itemAmt = data.goodsList.sum("itemAmt")
-                card.itemQty = data.goodsList.sum("itemQty") //商品数量合计
-                card.priceStd = data.goodsList.sum("priceStd") //标价合计 
-                card.purDiscount = data.goodsList.sum("purDiscount") //折扣
+                card.itemAmt = data.goodsList.sum("itemAmt") 
             }
         })
         contentList_.forEach(card => {
@@ -230,7 +228,42 @@ Page({
             formData: JSON.stringify(data)
         })
     },
-
+    /**
+     * @desc : 保存数据服务--校验
+     * @date : 2024/2/1 15:49
+     * @author : 王英杰
+     */
+    validData() {
+        let formData = JSON.parse(this.data.formData)
+        let that = this
+        if (formData.goodsList == null || formData.goodsList.length == 0) {
+            wx.showToast({
+                title: "请选择商品明细",
+                icon: 'none'
+            })
+            return false
+        }
+        // 明细的数量和仓库不能为空
+        for (let index = 0; index < formData.goodsList.length; index++) {
+            const element = formData.goodsList[index];
+            if (element.whId == null) {
+                wx.showToast({
+                    title: mixins.$t("chooseWh"),
+                    icon: 'none'
+                })
+                return false
+            }
+          
+            if (element.itemQty == null || element.itemQty == '' || element.itemQty == 0) {
+                wx.showToast({
+                    title: mixins.$t("inputWords") + "[" + element.skuCode + "]" + mixins.$t("count"),
+                    icon: 'none'
+                })
+                return false
+            }
+        }
+        return true
+    },
     /**
      * @desc : 保存的參數設置
      * @date : 2024/2/1 15:49
@@ -238,15 +271,12 @@ Page({
      */
     setParams(params) {
         let cardList_ = this.data.cardList
-        let formData = JSON.parse(this.data.formData)
-        cardList_.forEach(card => { //循环出商品总共价格
-            if (card.name === 'items') {
-                params.sumAmount = card.itemAmt //合计金额 
-                params.sumStandard = card.priceStd // 标价合计
-                params.sumQuantity = card.itemQty //商品总数量
-                params.purDiscount = card.purDiscount //折扣
-            }
-        })
+        let formData = JSON.parse(this.data.formData) 
+   
+        params.sumAmount = formData.sum("itemAmt") //合计金额 
+        params.sumStandard = formData.sum("priceStandard") // 标价合计
+        params.sumQuantity = formData.sum("itemQty") //商品总数量
+        params.purDiscount = formData.sum("purDiscount") //折扣
         params.pickupDate = formData.pickupDate
         params.orgId = app.globalData.user.orgId //组织部门
         params.staffId = app.globalData.user.staffId // 员工
@@ -268,26 +298,40 @@ Page({
         console.log("save", this.data.params);
         return params
     },
-    /**
+      /**
      * @desc : 外露设置产品方法 
      * @date : 2024/2/1 15:49
      * @author : 王英杰
      */
     setGoods(e) {
-        let contentList_ = this.data.contentList        
+        let contentList_ = this.data.contentList
+        let cardList = this.data.cardList
         let formData = JSON.parse(this.data.formData)
-        console.log("this.data.cardList",this.data.cardList,formData);
-        let totalAmout = 0.00
-        formData.goodsList.forEach(it=>{
-            totalAmout += it.pricePurchase * it.itemQty
-        })
+        let totalAmout = Number(0)
+        // 各个明细的金额数量
+        formData.goodsList.forEach(element => { //循环出商品总共价格  
+            element.itemAmt = element.pricePurchase * element.itemQty 
+            element.purDiscount =  (Number(element.pricePurchase) / Number(element.priceStandard)) * 100;
+            totalAmout += Number(element.pricePurchase * element.itemQty)
+        })  
+        // 左下角的合计金额
         contentList_.forEach(card => {
             if (card.code === 'amount') {
-                card.content = totalAmout 
+                card.content = totalAmout
             }
-        }) 
+        })
+        // 明细的合计金额
+        cardList.forEach(card => { //循环出商品总共价格
+            if (card.name === 'items') {
+                //合计金额
+                card.itemAmt = totalAmout
+            }
+        })
+        console.log(formData.goodsList);
         this.setData({
             contentList: contentList_,
+            cardList,
+            formData: JSON.stringify(formData)
         })
     },
     /**

+ 2 - 1
package-purchase/pages/purchase-order/add/add.wxml

@@ -6,7 +6,8 @@
 <!-- <dk-form id="{{formName}}" cardList="{{cardList}}" contentObj="{{contentObj}}" model:value="{{formData}}" bind:chooseData="chooseData">
 </dk-form> -->
 
-<dk-form-bill type="pur" id="dk-form-bill" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleTagCol="shortName" titleCol="skuCode" descCol="skuModel" priceCol="pricePur" quantityCol="itemQty" sumAmountCol="itemAmt" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="{{$t['wholesalePrice']}}:" bind:setGoods ="setGoods">
+<dk-form-bill type="pur" id="dk-form-bill" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleTagCol="shortName" titleCol="skuCode" descCol="skuModel" priceCol="pricePurchase" quantityCol="itemQty" sumAmountCol="itemAmt" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="{{$t['wholesalePrice']}}:" bind:editItems="setGoods" 
+bind:delItem="setGoods" bind:setGoods="setGoods">
 </dk-form-bill>
 
 

+ 105 - 47
package-purchase/pages/purchase-receipt/add/add.js

@@ -12,15 +12,15 @@ Page({
         // 弹出按钮
         buttonList: [{
             name: 'merge',
-            title:  mixins.$t("save"),//'保存'
+            title: mixins.$t("save"), //'保存'
         }],
         contentList: [{
             code: 'flag',
-            title:  mixins.$t("antoHandle"),//'自动入库办理',
+            title: mixins.$t("antoHandle"), //'自动入库办理',
             type: 'checkbox'
         }, {
             code: 'need',
-            title: mixins.$t("totalAmount"),//'合计金额',
+            title: mixins.$t("totalAmount"), //'合计金额',
             type: 'str'
         }, {
             code: 'amount',
@@ -31,25 +31,25 @@ Page({
         popContent: [{
                 code: 'itemQty',
                 type: 'step',
-                title: mixins.$t("count"),//'数量',
+                title: mixins.$t("count"), //'数量',
                 required: true
             },
             {
                 code: 'whId',
                 name: 'whName',
-                title:  mixins.$t("warehouseId"),//'仓库',
+                title: mixins.$t("warehouseId"), //'仓库',
                 type: 'drop',
                 dropType: 'warehouse'
             },
             {
                 code: 'skuSpec',
-                title: mixins.$t("goodSpec"),//'规格',
+                title: mixins.$t("goodSpec"), //'规格',
                 type: 'str',
                 readonly: true,
             },
             {
                 code: 'nonStdCode',
-                title: mixins.$t("goodsBatch"),//'商品批次',
+                title: mixins.$t("goodsBatch"), //'商品批次',
                 type: 'str',
             },
         ],
@@ -63,20 +63,20 @@ Page({
             },
             {
                 name: 'items',
-                title:  mixins.$t("goodsDetail"),//'商品明细',
-                info: '('+mixins.$t("warehousingProcessing")+')',
+                title: mixins.$t("goodsDetail"), //'商品明细',
+                info: '(' + mixins.$t("warehousingProcessing") + ')',
                 color: '#E4002B',
                 displayNum: 2
             }, {
                 name: 'other',
-                title:  mixins.$t("otherInfo"),// '其他信息'
+                title: mixins.$t("otherInfo"), // '其他信息'
             }
         ],
         contentObj: {
             main: [{
                     code: 'supId',
                     name: 'supName',
-                    title:  mixins.$t("supplier"),//'供应商',
+                    title: mixins.$t("supplier"), //'供应商',
                     type: 'choose',
                     required: true,
                     urlKey: 'chooseSupplier'
@@ -84,13 +84,13 @@ Page({
                 {
                     code: 'staffId',
                     name: 'staffName',
-                    title: mixins.$t("procureStaff"),//'采购人',
+                    title: mixins.$t("procureStaff"), //'采购人',
                     type: 'choose',
                     urlKey: 'chooseStaff'
                 }, {
                     code: 'orgId',
                     name: 'orgName',
-                    title: mixins.$t("procureOrg"),//'采购部门',
+                    title: mixins.$t("procureOrg"), //'采购部门',
                     type: 'choose',
                     urlKey: 'chooseOrg'
                 },
@@ -100,7 +100,7 @@ Page({
                 name: 'whName',
                 type: 'choose',
                 required: true,
-                title:  mixins.$t("enterWhName"),//'入库仓库',
+                title: mixins.$t("enterWhName"), //'入库仓库',
                 urlKey: 'chooseWh'
             }],
             relation: [{
@@ -108,7 +108,7 @@ Page({
                 name: 'fromNo',
                 type: 'choose',
                 controlChooseFlag: true,
-                title: mixins.$t("sourceOrder"),//'关联源单',
+                title: mixins.$t("sourceOrder"), //'关联源单',
                 urlKey: 'choosePurchaseOrder'
             }],
             items: [{
@@ -120,19 +120,19 @@ Page({
             }, {
                 code: 'collectAmount',
                 type: 'number',
-                title: mixins.$t("amountCollected"),//'收款金额',
+                title: mixins.$t("amountCollected"), //'收款金额',
                 required: true
             }],
 
             other: [{
                 code: 'remarks',
                 type: 'textarea',
-                title: mixins.$t("remarks"),//'备注',
+                title: mixins.$t("remarks"), //'备注',
                 readonly: false
             }, {
                 code: 'file',
                 type: 'uploader',
-                title: mixins.$t("uploader"),//'附件'
+                title: mixins.$t("uploader"), //'附件'
             }]
         },
         // 路由
@@ -165,6 +165,10 @@ Page({
         if (code == "whId") { //仓库
             formData.whId = data.id
             formData.whName = data.name
+            formData.goodsList.forEach(element => { //总单的入库仓库 作为一个总开关 直接改变 所以品的仓库
+                element.whId = data.id
+                element.whName = data.whName
+            });
         }
         if (code == "sourceNo") { //来源单  
             this.calculateTotal(data.chooosepurchaseItemResponseList)
@@ -193,14 +197,7 @@ Page({
         // 将数组元素转换为逗号分隔的字符串
         formData.fromNo = purNoArray.join(','); //来源单号
         purIdArray_ = purIdArray.join(',');
-        cardList_.forEach(card => { //循环出商品总共价格
-            if (card.name === 'items') {
-                card.itemAmt = formData.goodsList.sum("itemAmt")
-                card.itemQty = formData.goodsList.sum("itemQty")
-                card.intoAmt = formData.goodsList.sum("intoAmt")
-                card.intoQty = formData.goodsList.sum("intoQty")
-            }
-        })
+
         formData.goodsList.forEach(element => {
             element.intoingAmt = element.itemAmt
             element.intoingQty = element.itemQty
@@ -209,7 +206,7 @@ Page({
             element.fromId = element.purId
             element.fromItemId = element.itemId
             element.priceInto = element.pricePur
-            element.nonStdCode = '' // 色号  批次号 
+            element.nonStdCode = element.nonStdCode ? element.nonStdCode : '' // 色号  批次号 
             element.outQty = 0
             delete element.opAppCode
             delete element.opCreateTime
@@ -219,8 +216,12 @@ Page({
             delete element.opUpdateTime
             delete element.opUpdateUserId
         });
-
-        contentList_.forEach(card => {
+        cardList_.forEach(card => { //循环出商品总共价格 展示用
+            if (card.name === 'items') {
+                card.itemAmt = formData.goodsList.sum("itemAmt")
+            }
+        })
+        contentList_.forEach(card => { //底部按钮 展示价格 用
             if (card.code === 'amount') {
                 card.content = formData.goodsList.sum("itemAmt")
             }
@@ -238,23 +239,86 @@ Page({
      * @author : 王英杰
      */
     setGoods(e) {
-        let contentList_ = this.data.contentList        
+        let contentList_ = this.data.contentList
+        let cardList = this.data.cardList
         let formData = JSON.parse(this.data.formData)
-        console.log("this.data.cardList",this.data.cardList,formData);
-        let totalAmout = 0.00
-        formData.goodsList.forEach(it=>{
-            totalAmout += it.pricePurchase * it.itemQty
+        let totalAmout = Number(0)
+        // 各个明细的金额数量
+        formData.goodsList.forEach(element => { //循环出商品总共价格 
+            element.intoingAmt = element.pricePurchase * element.itemQty
+            element.intoingQty = element.itemQty
+            element.pricePur = element.pricePurchase
+            element.priceInto = element.pricePurchase
+            element.intoAmt = 0 //  已入库金额
+            element.intoQty = 0 //  已入库数量
+            totalAmout += Number(element.pricePurchase * element.itemQty)
         })
+        // 左下角的合计金额
         contentList_.forEach(card => {
             if (card.code === 'amount') {
-                card.content = totalAmout 
+                card.content = totalAmout
+            }
+        })
+        // 明细的合计金额
+        cardList.forEach(card => { //循环出商品总共价格
+            if (card.name === 'items') {
+                //合计金额
+                card.itemAmt = totalAmout
             }
-        }) 
+        })
+        console.log(formData.goodsList);
         this.setData({
             contentList: contentList_,
+            cardList,
+            formData: JSON.stringify(formData)
         })
     },
     /**
+     * @desc : 保存数据服务--校验
+     * @date : 2024/2/1 15:49
+     * @author : 王英杰
+     */
+    validData() {
+        let formData = JSON.parse(this.data.formData)
+        let that = this
+        if (formData.goodsList == null || formData.goodsList.length == 0) {
+            wx.showToast({
+                title: "请选择商品明细",
+                icon: 'none'
+            })
+            return false
+        }
+        // 明细的数量和仓库不能为空
+        for (let index = 0; index < formData.goodsList.length; index++) {
+            const element = formData.goodsList[index];
+            if (element.whId == null) {
+                wx.showToast({
+                    title: mixins.$t("chooseWh"),
+                    icon: 'none'
+                })
+                return false
+            }
+            //如果 设置了总单的仓库 然后又进行选品 没设置一样的仓库 那就把总单上的仓库清空
+            if (formData.whId ) {
+                if( element.whId != formData.whId){
+                    formData.whId = null
+                    formData.whName = ""
+                    that.setData({
+                        formData
+                    })
+                } 
+            }
+            if (element.itemQty == null || element.itemQty == '' || element.itemQty == 0) {
+                wx.showToast({
+                    title: mixins.$t("inputWords") + "[" + element.skuCode + "]" + mixins.$t("count"),
+                    icon: 'none'
+                })
+                return false
+            }
+        }
+        return true
+    },
+    /**
      * @desc : 保存的參數設置
      * @date : 2024/2/1 15:49
      * @author : 王英杰
@@ -262,17 +326,11 @@ Page({
     setParams(params) {
         let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
 
-        let cardList_ = this.data.cardList
         let formData = JSON.parse(this.data.formData)
-        cardList_.forEach(card => { //循环出商品总共价格
-            if (card.name === 'items') {
-                params.intoingQty = card.itemAmt //采购价格
-                params.intoingAmt = card.itemQty //一共的商品数量
-                params.intoAmt = card.intoAmt // 采购订单 已入库金额
-                params.intoQty = card.intoQty //采购订单 已入库数量
-
-            }
-        })
+        params.intoingAmt = formData.goodsList.sum("intoingAmt") //金额
+        params.intoingQty = formData.goodsList.sum("intoingQty") //一共的商品数量
+        params.intoAmt = 0 //  已入库金额
+        params.intoQty = 0 //  已入库数量         
         params.automaticFlg = btnFormData ? btnFormData.flag : false //自动出入库标识 
         params.fromId = this.data.purIdArray //来源id
         params.fromNo = formData.fromNo //来源单号
@@ -281,7 +339,7 @@ Page({
         params.supId = formData.supId // 供应商
         params.whId = formData.whId // 仓库
         params.remarks = formData.remarks // 备注
-        params.makeStaff = app.globalData.user.staffId// 制单人
+        params.makeStaff = app.globalData.user.staffId // 制单人
         params.itemList = formData.goodsList //商品明细
         console.log("save", this.data.params);
         return params

+ 2 - 1
package-purchase/pages/purchase-receipt/add/add.wxml

@@ -6,7 +6,8 @@
 <!-- <dk-form id="{{formName}}" cardList="{{cardList}}" contentObj="{{contentObj}}" model:value="{{formData}}" bind:chooseData="chooseData">
 </dk-form> -->
 
-<dk-form-bill type="pur" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleTagCol="shortName" titleCol="skuCode" descCol="skuModel" priceCol="pricePur" quantityCol="itemQty" sumAmountCol="itemAmt" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="批发价:">
+<dk-form-bill type="pur" id="{{formName}}" routeObjName="{{routeObjName}}" cardList="{{cardList}}" titleTagCol="shortName" titleCol="skuCode" descCol="skuModel" priceCol="pricePur" quantityCol="itemQty" sumAmountCol="itemAmt" contentObj="{{contentObj}}" model:value="{{formData}}" popContent="{{popContent}}" bind:chooseData="chooseData" popType="sale" priceTitle="批发价:" bind:editItems="setGoods" 
+bind:delItem="setGoods" bind:setGoods="setGoods">
 </dk-form-bill>