于继渤 1 год назад
Родитель
Сommit
05471adce1

+ 1 - 0
api/pages/ivt/inboundReturn.js

@@ -45,6 +45,7 @@ module.exports = {
       chooseStaff: { key: 'chooseStaff', url: '/package-base-select/pages/select-data/select-data',type:'staff'  },
       chooseOrg: { key: 'chooseOrg',url: '/package-base-select/pages/select-data/select-data',type:'org' }, 
       selectSourcePurchaseOrder:{  key:'selectSourcePurchaseOrder',url:'/package-base-select/pages/select-source-purchase-order/select-source-purchase-order' },
+      printedBill: { key: 'printedBill', method: 'printedBill', primaryKey: 'rpId', image:'btn-printing.png' },
     }
   } 
 };

+ 11 - 0
components/dkbase/dk-form-bill/dk-form-bill.js

@@ -1232,7 +1232,11 @@ Component({
       if (this.data.readonly) {
         return;
       }
+
       let item = e.currentTarget.dataset;
+      if (item.item.readonlyItem) {
+        return;
+      }
       this.setData({
         showDate: true,
         index: item.index,
@@ -1541,6 +1545,13 @@ Component({
      * @date   : 2024/2/2 11:46
      */
     clearDate(e) {
+      if (this.data.readonly) {
+        return;
+      }
+      let item = e.currentTarget.dataset;
+      if (item.item.readonlyItem) {
+        return;
+      }
       let ds = e.currentTarget.dataset
       let key = ds.key
       let form = this.data.form

+ 1 - 1
components/dkbase/dk-form-bill/dk-form-bill.wxml

@@ -253,7 +253,7 @@
             <dk-number-phone-input wx:if="{{item.type=='phone'  && (item.show || item.show == undefined)}}" data-key="{{item.code}}" data-item="{{item}}" data-index="{{index}}" data-card="{{card.name}}" readonly="{{!!readonly || !!item.readonly}}" label-class="{{(!!readonly || !!item.readonly)?'readonly-label':'nomal-label'}}" required="{{item.required?true:false }}" clearable rightIcon="phone" model:value="{{ form[item.code]}}" bind:changeField="changePhone" bind:changeFieldblur="changePhoneblur" bind:clear="clearField" errorMessage="{{item.errMsg}}" id="{{item.code}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.code)}}"></dk-number-phone-input>
             <!--日期-->
             <van-field wx:if="{{item.type=='date'  && (item.show || item.show == undefined)}}" required="{{item.required?true:false }}" is-link value="{{ form[item.code]}}" label="{{item.title?item.title:$t[item.code]}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" data-item="{{item}}" data-key="{{item.code}}" data-index="{{index}}" clearable data-card="{{card.name}}" errorMessage="{{item.errMsg}}" border="{{ false }}" readonly="{{true}}" label-class="{{(!!readonly || !!item.readonly)?'readonly-label':'nomal-label'}}" input-class="dk-cell-value-class" catchtap="openDatePop">
-              <van-icon wx:if="{{!readonly && form[item.code]}}" slot="icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearDate"></van-icon>
+              <van-icon wx:if="{{!readonly && form[item.code]}}" data-item="{{item}}" slot="icon" name="clear" color="#c8c9cc;" data-key="{{item.code}}" catchtap="clearDate"></van-icon>
             </van-field>
             <!--数字类-->
             <dk-number-input wx:if="{{item.type=='number'  && (item.show || item.show == undefined)}}" sign="{{(item.sign || item.sign == '')?item.sign:'¥'}}" digits="{{(item.digits || item.digits == 0)?item.digits:2}}" fontSize="14" left="30rpx" data-key="{{item.code}}" required="{{item.required?true:false }}" data-item="{{item}}" data-index="{{index}}" data-card="{{card.name}}" center="left" readonly="{{!!readonly || !!item.readonly}}" placeholder="{{wxmlUtil.setPlaceholder($t,item.title?item.title:item.code)}}" errorMessage="{{item.errMsg}}" titleValue="{{item.title?item.title:$t[item.code]}}" inputColor="#FF7B1A" titleFontWeight="normal" titleColor="{{!!item.readonly?'#95A8CB':'#002340'}}" inputValue="{{form[item.code]}}" negative="{{item.negative}}" maxFlag="{{item.maxFlag}}" max="{{item.max}}" bind:triggerBindBlur="changeNumberBlur" bind:triggerBindValue="changeNumberField" min="{{item.min}}"></dk-number-input>

+ 5 - 6
package-base-select/pages/select-source-purchase-order/select-source-purchase-order.js

@@ -125,11 +125,10 @@ Page({
       if (res.inboundItemList && res.inboundItemList.length > 0) {
         res.inboundItemList.forEach(item => {
           if (item.checked) {
-            item.itemQty = Number(item.canReturnQty )
-            item.itemQtyMin = Number(item.canReturnQty)
-            item.itemQtyMax = Number(-1)
-            item.priceReturn = Number(item.priceInto )
-            item.itemAmt = Number(item.canReturnQty * item.priceInto)
+            // item.itemQty = Number(item.canReturnQty )
+            // item.itemQtyMin = Number(item.canReturnQty)
+            // item.itemQtyMax = Number(-1)
+            // item.itemAmt = Number(item.canReturnQty * item.priceInto)
             choooseInboundItemList.push(item)
           }
         })
@@ -137,7 +136,7 @@ Page({
     })
     if (choooseInboundItemList && choooseInboundItemList.length > 0) {
       choooseInboundItemList.forEach(res => {
-        returnTotalAmount += Number(res.rejectQty * res.priceInto)
+        returnTotalAmount += Number(res.intoingQty * res.priceInto)
       })
     }
 

+ 54 - 21
package-purchase/pages/purchase-return/add/add.js

@@ -169,16 +169,14 @@ Page({
   setParams(params) {
     let itemIndex = 0
     let formData = JSON.parse(this.data.formData)
-
-
     params.fromNo = (params.fromNo && params.fromNo.length > 0) ? params.fromNo[0] : null
     //采购订单ID
     params.fromId = this.data.item ? (this.data.item.fromId ? this.data.item.fromId : null) : null
     params.sPurId = this.data.item ? (this.data.item.sPurId ? this.data.item.sPurId : null) : null
     params.factAmt = params.intoingAmt
     params.intoQty = this.convertToNegative(params.intoQty) ? this.convertToNegative(params.intoQty) : 0
-    params.intoAmt = this.convertToNegative(params.intoAmt) ?  this.convertToNegative(params.intoAmt) : 0
-    params.returnQty = Math.abs(params.sumQuantity) 
+    params.intoAmt = this.convertToNegative(params.intoAmt) ? this.convertToNegative(params.intoAmt) : 0
+    params.returnQty = Math.abs(params.sumQuantity)
     params.returnAmt = Math.abs(params.sumAmount)
     if (this.data.formMode == 'edit') {
       delete params['intoType']
@@ -195,8 +193,9 @@ Page({
       res.factAmt = res.intoingAmt
       res.costAmt = Number(res.intoingQty * res.costPrice)
       res.itemIndex = itemIndex++
-      res.returnQty = Math.abs(params.intoingQty) 
-      res.returnAmt = Math.abs(params.intoingAmt)
+      res.intoingQty = Number(res.intoingQty)
+      res.returnQty = Math.abs(res.intoingQty)
+      res.returnAmt = Math.abs(res.intoingAmt)
     })
     let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
     params.flgAutoHandle = btnFormData ? btnFormData.flag : false //自动出库标识 
@@ -223,7 +222,11 @@ Page({
     params['salesChannel'] = params.channelId
     delete params['goodsList']
     delete params['orderItemResponseList']
-
+    //保存接口并没有计算,因此前台计算
+    if (this.data.formMode == Constants.formMode.edit) { //只有编辑的时候 才会去 校验哪些编辑了 哪些没编辑
+      let changeList = this.searchEditList(this.data.searchEditList, params.itemList)
+      params.itemList = changeList
+    }
     //大小编辑判断
     if (params.itemList.length > 0) {
       params.limitEdit = true
@@ -288,9 +291,7 @@ Page({
         intoingQty: Number(element.intoingQty),
         priceInto: element.priceInto,
         whId: element.whId,
-        nonStdCode: element.nonStdCode,
-        flgGift: element.flgGift,
-        remarks: element.remarks,
+        nonStdCode: element.nonStdCode
       })
     });
     newList_.forEach(element => {
@@ -302,11 +303,12 @@ Page({
         intoingQty: Number(element.intoingQty),
         priceInto: element.priceInto,
         whId: element.whId,
-        nonStdCode: element.nonStdCode,
-        flgGift: element.flgGift,
-        remarks: element.remarks,
+        nonStdCode: element.nonStdCode
       })
     });
+    console.log('oldList', oldList)
+    console.log('newList', newList)
+    console.log('newList_', newList_)
     return this.findChangedItems(oldList, newList, newList_)
   },
 
@@ -343,13 +345,19 @@ Page({
   isEqualFormData(oldData_, newData_) {
     //因为isEqual 对比方法 的对象 要一样内容对比 
     let oldData = {
-      supId: newData_.supId || '',
-      supName: newData_.supName || '',
-      remarks: newData_.remarks || '',
+      supId: oldData_.supId || '',
+      supName: oldData_.supName || '',
+      intoDate: oldData_.intoDate || '',
+      returnAddress: oldData_.returnAddress || '',
+      addressFull: oldData_.address.addressFull || '',
+      remarks: oldData_.remarks || '',
     }
     let newData = {
       supId: newData_.supId || '',
       supName: newData_.supName || '',
+      intoDate: newData_.intoDate || '',
+      returnAddress: newData_.returnAddress || '',
+      addressFull: newData_.address.addressFull || '',
       remarks: newData_.remarks || '',
     }
     //验证总单上的 附件list
@@ -392,9 +400,8 @@ Page({
     * @author : 于继渤
     */
   saveData() {
-    // return
     if (this.data.formMode == Constants.formMode.edit) {
-      return this.excute(this.data.inboundPurchaseReturnService, this.data.inboundPurchaseReturnService.inboundUpdate, this.data.params);
+      return this.excute(this.data.service, this.data.service.update, this.data.params);
     } else {
       return this.excute(this.data.service, this.data.service.insert, this.data.params);
     }
@@ -424,6 +431,14 @@ Page({
       cardList: cardList,
       contentSaveList: contentSaveList
     })
+
+    if (this.data.formMode == Constants.formMode.edit) { //编辑
+      var pages = getCurrentPages();
+      var prevPage = pages[pages.length - 2]; //上一个页面
+      prevPage.setData({
+        refreshByAdd: true
+      })
+    }
   },
 
   //展开
@@ -642,8 +657,8 @@ Page({
     formData = data.data
     //处理地址
     formData.address = {
-      address: data.returnAddress,
-      addressFull: data.returnAddress
+      address: data.data.returnAddress,
+      addressFull: data.data.returnAddress
     }
     formData['staff'] = {
       text: formData.staffName ? formData.staffName : app.globalData.user.staffName,
@@ -698,6 +713,7 @@ Page({
       formData: JSON.stringify(formData),
       initialFormData: JSON.stringify(formData)
     })
+    console.log('formData',formData)
     this.calculateTotal()
     setTimeout(() => {
       // 刷新商品明细 显示 查看更多
@@ -752,7 +768,7 @@ Page({
           goodsList: data.choooseInboundItemList
         }
         let item = data.item ? JSON.parse(data.item) : null
-        console.log('item', item)
+        console.log('onLoaditem', item)
         if (item) {
           formData.fromNo = item.fromNo
           formData.supId = item.supId
@@ -859,6 +875,23 @@ Page({
         formData: JSON.stringify(formData)
       })
     }
+    if (this.data.formMode == Constants.formMode.edit) { //编辑
+      wx.setNavigationBarTitle({
+        title: '编辑采购退货'
+      })
+      let contentObj = this.data.contentObj
+      if (this.data.gradeCode == Constants.gradeCode.STD) {
+        contentObj.main = [
+          { code: 'supId', name: 'supName', title: mixins.$t("supplier"), type: 'choose', required: true, urlKey: 'chooseSupplier', readonly: true ,readonlyItem:true},
+          { code: 'address', type: 'address', title: mixins.$t('returnAddress'), required: true, readonly: true,readonlyItem:true },
+          { code: 'intoDate', type: 'date', required: false, title: mixins.$t("returnDate"), readonly: true,readonlyItem:true },
+        ]
+      }
+      this.setData({
+        satffAndOrgReadonly: true,
+        contentObj: contentObj
+      })
+    }
     let contentObj = this.data.contentObj
     // 标准版,自动出库办理标识默认勾上
     if (this.data.gradeCode == Constants.gradeCode.STD) {

+ 4 - 1
package-purchase/pages/purchase-return/detail/detail.js

@@ -136,6 +136,7 @@ Page({
         item['imagesUrl'] = item.skuImages.length > 0 ? item.skuImages[0].url : null
       }
       item.intoingQty_min = item.canReturnQty ? item.canReturnQty : item.invQty * -1 //可出库最大值
+      console.log('item',item)
     })
     formData.goodsList = data.dataItem
     let searchEditList = data.dataItem
@@ -192,6 +193,8 @@ Page({
     })
   },
 
-
+  getData(){
+    this._detail(this.data.id)
+  },
 
 })

+ 52 - 41
package-purchase/pages/purchase-return/purchase-return.js

@@ -1,6 +1,7 @@
 const Constants = require('@/utils/Constants.js');
 const util = require('@/utils/util.js')
 const mixins = require('@/mixins/index.js')
+import Dialog from '@/dist/dialog/dialog.js';
 const app = getApp()
 Page({
   mixins: [mixins],
@@ -10,9 +11,9 @@ Page({
   data: {
     isfirst: true,
     inboundPurchaseReturnService: app.globalData['inboundPurchaseReturnService'],
-     // 系统参数
-     flgHandleSetting: app.globalData.setting[Constants.settingCode.IVT001] == "true" ? true : false,
-     tagList: [{ title: mixins.$t("all"), code: '' }, { title: mixins.$t("inBoundingIntoStatusName"), code: mixins.$t("inBoundingIntoStatus")  }, { title: mixins.$t("inBoundedIntoStatusName"), code: mixins.$t("inBoundedIntoStatus")  }],
+    // 系统参数
+    flgHandleSetting: app.globalData.setting[Constants.settingCode.IVT001] == "true" ? true : false,
+    tagList: [{ title: mixins.$t("all"), code: '' }, { title: mixins.$t("inBoundingIntoStatusName"), code: mixins.$t("inBoundingIntoStatus") }, { title: mixins.$t("inBoundedIntoStatusName"), code: mixins.$t("inBoundedIntoStatus") }],
     // 查询条件
     searchContent: [{ code: 'createtime', title: mixins.$t("pastThirthtyDays"), defaultValue: 5, searchType: Constants.searchType.date }, { code: 'choose', title: mixins.$t("choose"), searchType: Constants.searchType.pick }],
     // 查询条件-筛选
@@ -24,10 +25,10 @@ Page({
       { code: 'addressFull', dataType: '' },
       { code: 'makingTime', dataType: 'date' }, { code: 'deliveryTime', dataType: 'date' }],
     // 列表区(脚部金额)
-    footerAmount: { name: 'returnAmt', title: mixins.$t("totalAmount") },
+    footerAmount: { name: 'intoAmt', title: mixins.$t("totalAmount") },
     // 列表区(脚部信息)
-    footerInfo: [{ name: 'returnQty', title: mixins.$t("piece"), prefix: mixins.$t("together"), }],
-    intoStatus:null,
+    footerInfo: [{ name: 'intoQty', title: mixins.$t("piece"), prefix: mixins.$t("together"), }],
+    intoStatus: null,
     // 列表区(内容)
     contentList: [
       { name: 'intoNo', title: mixins.$t("saleOrderNo") },
@@ -61,11 +62,11 @@ Page({
     }],
   },
 
-    /**
-   * @desc :   跳转供應商详情
-   * @date :   2024年5月27日
-   * @author : 于繼渤
-   */
+  /**
+ * @desc :   跳转供應商详情
+ * @date :   2024年5月27日
+ * @author : 于繼渤
+ */
   toTitle(e) {
     let cusId = e.detail.item.supId
     wx.navigateTo({
@@ -90,17 +91,19 @@ Page({
     if (!item.flgValid) { //作废
       buttonList = [{
         name: 'printedBill',
-        title: mixins.$t("printedBill")
-      }, ] //打印
+        title: mixins.$t("printedBill"),
+        image:'btn-printing.png'
+      },] //打印
     } else {
       // 弹出按钮
       buttonList = [{
         name: 'editInto',
         title: mixins.$t('edit'),
-      }, { name: 'invalid', title: mixins.$t("invaidOrder") },{
+      }, { name: 'invalid', title: mixins.$t("invaidOrder") }, {
         name: 'printedBill',
-        title: mixins.$t("printedBill")
-      }, ]
+        title: mixins.$t("printedBill"),
+        image:'btn-printing.png'
+      },]
     }
     this.setData({
       // 弹出按钮
@@ -140,13 +143,13 @@ Page({
  * @date : 2024/2/1 15:49
  * @author : 于继渤
  */
-onChangeTabs(e) {
-  let code = e.detail.detail.code
-  this.setData({
-    intoStatus: code,
-  })
-  this.searchData()
-},
+  onChangeTabs(e) {
+    let code = e.detail.detail.code
+    this.setData({
+      intoStatus: code,
+    })
+    this.searchData()
+  },
   /**
    * @desc : 设置查询参数
    * @date : 2024/2/1 15:49
@@ -164,7 +167,7 @@ onChangeTabs(e) {
     // }
     params.intoStatus = this.data.intoStatus == 'all' ? '' : this.data.intoStatus
     if (this.data.flgHandleSetting) {
-      params.intoStatus = mixins.$t("inBoundedIntoStatus") 
+      params.intoStatus = mixins.$t("inBoundedIntoStatus")
     }
     //采购订单明细 跳转到采购退货  
     let isfirst = this.data.isfirst
@@ -219,8 +222,8 @@ onChangeTabs(e) {
     let sumAmount = Number(0)
     let sumQuantity = Number(0)
     tableData.forEach(res => {
-      sumAmount += res.returnAmt
-      sumQuantity += res.returnQty
+      sumAmount += res.intoAmt
+      sumQuantity += res.intoQty
     })
     contentSaveList[0].content = sumAmount
     contentSaveList[1].bill = tableData.length
@@ -236,24 +239,32 @@ onChangeTabs(e) {
   * @author : 于继渤
   */
   invalid(e) {
-
-    this.setData({
-      loading: true
-    })
-    return this.excute(this.data.inboundPurchaseReturnService, this.data.inboundPurchaseReturnService.inboundRepeal+e.intoId, {}).then(res => {
-      if (res.data.code == Constants.SUCESS_CODE) {
-        wx.showToast({
-          title: mixins.$t('invalidSuccessfully'),
-          image: '/static/image/success.png',
-          duration: 1000
+    let that = this
+    // 是否弹出询问框
+    Dialog.confirm({
+      message: mixins.$t('isInvalidDetail'),
+    }).then(() => {
+      that.setData({
+        loading: true
+      })
+      return that.excute(that.data.service, that.data.service.cancel, { intoId: e.intoId }).then(res => {
+        that.setData({
+          loading: false
         })
-        // 查询
-        this.searchData();
-      }
-      this.setData({
-        loading: false
+        if (res.data.code == Constants.SUCESS_CODE) {
+          wx.showToast({
+            title: mixins.$t('invalidSuccessfully'),
+            image: '/static/image/success.png',
+            duration: 1000
+          })
+          // 查询
+          that.searchData();
+        }
+
       })
+    }).catch(() => {
     })
+
   },
   /**
    * 生命周期函数--监听页面加载

+ 1 - 1
package-purchase/pages/purchase-return/purchase-return.wxml

@@ -9,7 +9,7 @@
   <dk-tabs wx:if="{{!flgHandleSetting}}" active="{{active}}" list="{{tagList}}" bind:onChange="onChangeTabs"> </dk-tabs>
 </van-sticky>
 
-
+<van-dialog id="van-dialog" />  
 <!-- 列表区 -->
 <dk-list list="{{tableData}}" flgSubFormatDate="{{true}}" titleCorner="" title="supName" status="intoStatusName" content="{{contentList}}" collectCol="collectStatus" contentObj="{{contentObj}}" contentCol="" footerAmount="{{footerAmount}}" footerInfo="{{footerInfo}}" bind:toDetail="toDetail" bind:toTitle="toTitle" bind:toStatus="toStatus" bind:toPoint="toPoint" routeObjName="{{routeObjName}}" buttonList="{{buttonList}}" bind:open="open"></dk-list>
 <view style="height: 200rpx;"></view>