소스 검색

收付款单

姜永辉 2 년 전
부모
커밋
df52fdb158

+ 36 - 9
package-accounts-manage/pages/payment-order/add-return/add-return.js

@@ -133,9 +133,13 @@ Page({
       formType: 'refund'
     }
     this.excute(this.data.accountService, this.data.accountService.getPayableAccountItem, params).then(res => {
-      console.log("chooseObjTypeData-res", res);
-      formData.cancelAmount = true
+      if (res.data.data.length == 0) {
+        formData.cancelAmount = false
+      } else {
+        formData.cancelAmount = true
+      }
       formData.sumWaiveAmt = 0
+      formData.sumAmtRec = 0.00
       formData.payableList = res.data.data
       let payableResidue = res.data.data.sum("amtResidue")
 
@@ -238,6 +242,14 @@ Page({
     let cancelAmount = e.detail.data.cancelAmount
     let formData = JSON.parse(this.data.formData)
     let contentObj = this.data.contentObj
+    // 应收为0
+    if (this.data.payableList == undefined || this.data.payableList.length == 0) {
+      formData.cancelAmount = false
+      this.setData({
+        formData: JSON.stringify(formData)
+      })
+      return
+    }
     if (cancelAmount) {
       formData.payableList = this.data.payableList
       this.setForm(formData, contentObj, this.data.payableResidue, this.data.paymentResidue, this.data.bill)
@@ -354,6 +366,10 @@ Page({
         //单数和金额
         itcard.bill = bill
         itcard.amount = payableResidue //总应付
+      } else if (itcard.code === 'sumWaiveAmt'
+        || itcard.code === 'currentPayableResidue') {
+        //优惠 本次核销是否只读
+        itcard.readonly = Number(formData.currentPayableResidue) == 0 ? true : false
       }
     })
     this.setData({
@@ -380,13 +396,13 @@ Page({
       msgError = '本次核销金额和本次付款不能同时为0'
     }
 
-    // // 预存+本次收款 + 优惠》= 本次核销
-    // if (Number(formData.sumAmtPay)
-    //   + Number(formData.paymentResidue)
-    //   + Number(formData.sumWaiveAmt)
-    //   < Number(formData.currentPayableResidue)) {
-    //   msgError = '本次核销金额不能大于付款和预付金额之和'
-    // }
+    // 本次退款 + 优惠》= 本次核销 + 预付 
+    if (Math.abs(Number(formData.sumAmtPay))
+      + Math.abs(Number(formData.sumWaiveAmt))
+      > Math.abs(Number(formData.currentPayableResidue))
+      + Math.abs(Number(formData.paymentResidue))) {
+      msgError = '退款金额超出应退金额'
+    }
 
     if (msgError != null) {
       util.showToast(msgError);
@@ -477,6 +493,17 @@ Page({
   },
 
   /**
+ * @desc :处理保存后续
+ * @date : 2024/2/1 15:49
+ * @author : 姜永辉
+ */
+  handleData() {
+    this.setData({
+      formData: JSON.stringify({ accDate: new Date().toDateStr() })
+    })
+  },
+
+  /**
   * @desc : 保存数据服务
   * @date : 2024/2/1 15:49
   * @author : 姜永辉

+ 60 - 14
package-accounts-manage/pages/payment-order/add/add.js

@@ -183,12 +183,16 @@ Page({
       objectId: supId,
     }
     this.excute(this.data.accountService, this.data.accountService.getPayableAccountItem, params).then(res => {
-      console.log("chooseObjTypeData-res",res);
-      formData.cancelAmount = true
+      if (res.data.data.length == 0) {
+        formData.cancelAmount = false
+      } else {
+        formData.cancelAmount = true
+      }
       formData.sumWaiveAmt = 0
+      formData.sumAmtPay = 0.00
       formData.payableList = res.data.data
       _this.setForm(formData, contentObj, objInfo.payableResidue,
-        objInfo.paymentResidue, res.data.data)
+        objInfo.paymentResidue, res.data.data.length)
       _this.setData({
         payableList: res.data.data,
         objInfo,
@@ -209,6 +213,14 @@ Page({
     let cancelAmount = e.detail.data.cancelAmount
     let formData = JSON.parse(this.data.formData)
     let contentObj = this.data.contentObj
+    // 应收为0
+    if (this.data.payableList == undefined || this.data.payableList.length == 0) {
+      formData.cancelAmount = false
+      this.setData({
+        formData: JSON.stringify(formData)
+      })
+      return
+    }
     if (cancelAmount) {
       formData.payableList = this.data.payableList
       this.setForm(formData, contentObj, this.data.payableResidue, this.data.paymentResidue, this.data.bill)
@@ -252,12 +264,16 @@ Page({
     if (code == "sumWaiveAmt") {
       formData.sumWaiveAmt = data
     }
-    // 预付扣减
-    if (formData.currentPayableResidue > this.data.paymentResidue) {
-      formData.paymentResidue = this.data.paymentResidue
-    } else {
-      formData.paymentResidue = formData.currentPayableResidue
-    }
+    // 预付扣减 
+     // 预付扣减 =   绝对值(本退款 +  优惠 )- 绝对值(本次核销)和 预付金额 两者 的最小值
+     let cAmount = Math.abs(Number(formData.sumAmtPay ? formData.sumAmtPay : 0))
+     + Math.abs(Number(formData.sumWaiveAmt))
+   if (Math.abs(cAmount - Number(formData.currentPayableResidue)) > Math.abs(Number(this.data.paymentResidue))) {
+     formData.paymentResidue = cAmount - Math.abs(Number(formData.currentPayableResidue)) > 0 ? 0 : Math.abs(Number(this.data.paymentResidue))
+   } else {
+
+     formData.paymentResidue = cAmount - Math.abs(Number(formData.currentPayableResidue)) < 0 ? cAmount - Math.abs(Number(formData.currentPayableResidue))   : 0
+   }
     // 本次付款 +  优惠 + 预付扣减 > 本次核销 == 转预付金额
     let toAdvancePrepaidAmount = Number(formData.sumAmtPay) + Number(formData.sumWaiveAmt) + Number(formData.paymentResidue) - Number(formData.currentPayableResidue)
     if (toAdvancePrepaidAmount > 0) {
@@ -289,10 +305,15 @@ Page({
     formData.payableResidue = payableResidue  // 待核销金额
     formData.currentPayableResidue = payableResidue  // 本次核销金额
     formData.totalWriteOffAmount = payableResidue  // 核销总额
-    if (payableResidue > paymentResidue) {
-      formData.paymentResidue = paymentResidue  // 预付
+ 
+    // 预存扣减金额 =   绝对值(本退款 +  优惠 )- 绝对值(本次核销)和 预存金额 两者 的最小值
+    let cAmount = Math.abs(Number(formData.sumAmtPay ? formData.sumAmtPay : 0))
+      + Math.abs(Number(formData.sumWaiveAmt))
+    if (Math.abs(cAmount - Number(formData.currentPayableResidue)) > Math.abs(Number(paymentResidue))) {
+      formData.paymentResidue = cAmount - Math.abs(Number(formData.currentPayableResidue)) > 0 ? 0 : Math.abs(Number(paymentResidue))
     } else {
-      formData.paymentResidue = payableResidue  // 预存 (用总剩余应收来负值)
+
+      formData.paymentResidue = cAmount - Math.abs(Number(formData.currentPayableResidue)) < 0 ? Math.abs(Number(formData.currentPayableResidue)) - cAmount : 0
     }
     // 本次收款 +  优惠 + 预收扣减 > 本次核销 == 转预收金额
     let toAdvancePrepaidAmount = Number(formData.sumAmtPay) + Number(formData.sumWaiveAmt) + Number(formData.paymentResidue) - Number(formData.currentPayableResidue)
@@ -313,7 +334,11 @@ Page({
         //单数和金额
         itcard.bill = bill
         itcard.amount = payableResidue //总应付
-      }
+      } else if (itcard.code === 'sumWaiveAmt'
+      || itcard.code === 'currentPayableResidue') {
+      //优惠 本次核销是否只读
+      itcard.readonly = Number(formData.currentPayableResidue) == 0 ? true : false
+    }
     })
     this.setData({
       contentObj,
@@ -334,8 +359,18 @@ Page({
       > Number(formData.payableResidue)) {
       msgError = '本次核销不能大于待核销金额'
     }
+    let bill = 0
+    let contentObj = this.data.contentObj
+    contentObj['bill'].forEach(itcard => {
+      if (itcard.code === 'cancelAmount') {
+        //单数和金额
+        bill  = itcard.bill  
+      } 
+    })
     if (Number(formData.currentPayableResidue) == 0
-      && Number(formData.sumAmtPay) == 0) {
+      && Number(formData.sumAmtPay) == 0
+      && Number(bill) == 0
+      ) {
       msgError = '本次核销金额和本次付款不能同时为0'
     }
 
@@ -435,6 +470,17 @@ Page({
 
   },
 
+    /**
+  * @desc :处理保存后续
+  * @date : 2024/2/1 15:49
+  * @author : 姜永辉
+  */
+ handleData() {
+  this.setData({
+    formData: JSON.stringify({ accDate: new Date().toDateStr() })
+  })
+},
+
   /**
   * @desc : 保存数据服务
   * @date : 2024/2/1 15:49

+ 39 - 18
package-accounts-manage/pages/receipt/add-return/add-return.js

@@ -8,8 +8,7 @@
  *******************************************************************************/
 const mixins = require('@/mixins/index.js')
 const Constants = require('@/utils/Constants.js');
-const util = require('@/utils/util.js')
-import Dialog from '@/dist/dialog/dialog.js';
+const util = require('@/utils/util.js') 
 const app = getApp();
 Page({
   mixins: [mixins],
@@ -137,12 +136,17 @@ Page({
       formType: 'refund'
     }
     this.excute(this.data.accountService, this.data.accountService.getReceivableAccountItem, params).then(res => {
-      console.log("loadInit-getReceivableAccountItem", res);
-      formData.cancelAmount = true
+      if (res.data.data.length == 0) {
+        formData.cancelAmount = false
+      } else {
+        formData.cancelAmount = true
+      }
       formData.sumWaiveAmt = 0
+      formData.sumAmtRec = 0.00
       formData.receivableList = res.data.data
       let receivableResidue = res.data.data.sum("amtResidue")
 
+
       _this.setForm(formData, contentObj, receivableResidue,
         objInfo.receiptResidue, res.data.data.length)
       _this.setData({
@@ -242,6 +246,14 @@ Page({
     let cancelAmount = e.detail.data.cancelAmount
     let formData = JSON.parse(this.data.formData)
     let contentObj = this.data.contentObj
+    // 应收为0
+    if (this.data.receivableList == undefined || this.data.receivableList.length == 0) {
+      formData.cancelAmount = false
+      this.setData({
+        formData: JSON.stringify(formData)
+      })
+      return
+    }
     if (cancelAmount) {
       formData.receivableList = this.data.receivableList
       this.setForm(formData, contentObj, this.data.receivableResidue, this.data.receiptResidue, this.data.bill)
@@ -351,6 +363,10 @@ Page({
         //单数和金额
         itcard.bill = bill
         itcard.amount = receivableResidue //总应收
+      } else if (itcard.code === 'sumWaiveAmt'
+        || itcard.code === 'currentReceivableResidue') {
+        //优惠 本次核销是否只读
+        itcard.readonly = Number(formData.currentReceivableResidue) == 0 ? true : false
       }
     })
     this.setData({
@@ -376,7 +392,13 @@ Page({
       && Number(formData.sumAmtRec) == 0) {
       msgError = '本次核销金额和本次收款不能同时为0'
     }
-    
+    //  本次收款 + 优惠》= 本次核销 + 预存
+    if (Math.abs(Number(formData.sumAmtRec))
+      + Math.abs(Number(formData.sumWaiveAmt))
+      > Math.abs(Number(formData.currentReceivableResidue))
+      + Math.abs(Number(formData.receiptResidue))) {
+        msgError = '退款金额超出应退金额' 
+    }
 
     if (msgError != null) {
       util.showToast(msgError);
@@ -466,6 +488,17 @@ Page({
   },
 
   /**
+ * @desc :处理保存后续
+ * @date : 2024/2/1 15:49
+ * @author : 姜永辉
+ */
+  handleData() {
+    this.setData({
+      formData: JSON.stringify({ accDate: new Date().toDateStr() })
+    })
+  },
+
+  /**
   * @desc : 保存数据服务
   * @date : 2024/2/1 15:49
   * @author : 姜永辉
@@ -476,19 +509,7 @@ Page({
     if (formData.sumAmtRec == 0) {
       return this.excute(this.data.service, this.data.service.insertReceivableReceipt, this.data.params)
     } else {
-      //  本次收款 + 优惠》= 本次核销 + 预存
-      if (Math.abs(Number(formData.sumAmtRec))
-        + Math.abs(Number(formData.sumWaiveAmt))
-        > Math.abs(Number(formData.currentReceivableResidue) )
-        + Math.abs(Number(formData.receiptResidue))) {
-          Dialog.confirm({
-            message: '退款金额超出应退金额,请检查退款金额是否正确?',
-          }).then(() => {
-            this.open()
-          }).catch(() => {
-            console.log("保存数据服务取消");
-          })
-      }      
+      this.open()
     }
   },
 

+ 1 - 3
package-accounts-manage/pages/receipt/add-return/add-return.wxml

@@ -3,8 +3,6 @@
 <dk-form-more-items id="{{formName}}" routeObjName="{{routeObjName}}" objCol="customerId" objLabel="{{$t['cusName']}}" objType="customer" cardList="{{cardList}}" contentObj="{{contentObj}}" model:value="{{formData}}" bind:chooseData="chooseData" table="{{table}}" bind:chooseObjTypeData="chooseObjTypeData" totalObj="{{totalObj}}" amountArr="{{amountArr}}" bind:onCheckChange="onCheckChange" bind:changeNumber="changeNumber">
 </dk-form-more-items>
 
-<view style="height: 220rpx;"></view>
-<!-- 客户资料 -->
-<van-dialog id="van-dialog" />
+<view style="height: 220rpx;"></view> 
 <!-- 新建按钮 -->
 <dk-save-button model:value="{{btnFormData}}" btnAutoWidthFlag="{{false}}" btnRightFlag="{{true}}" buttonList="{{buttonList}}" contentList="{{contentList}}" bind:open="save"></dk-save-button>

+ 23 - 11
package-accounts-manage/pages/receipt/add/add.js

@@ -259,7 +259,7 @@ Page({
       })
     }
     // 本次核销金额
-    if (code == "currentReceivableResidue") { 
+    if (code == "currentReceivableResidue") {
       formData.currentReceivableResidue = data
       formData.totalWriteOffAmount = data
     }
@@ -270,11 +270,12 @@ Page({
     // 预存扣减金额 =   绝对值(本退款 +  优惠 )- 绝对值(本次核销)和 预存金额 两者 的最小值
     let cAmount = Math.abs(Number(formData.sumAmtRec ? formData.sumAmtRec : 0))
       + Math.abs(Number(formData.sumWaiveAmt))
-    if (returnAmount - Math.abs(Number(formData.currentReceivableResidue)) > Math.abs(Number(receiptResidue))) {
-      formData.receiptResidue = Math.abs(Number(receiptResidue))
+    if (Math.abs(cAmount - Number(formData.currentReceivableResidue)) > Math.abs(Number(this.data.receiptResidue))) {
+      formData.receiptResidue = cAmount - Math.abs(Number(formData.currentReceivableResidue)) > 0 ? 0 : Math.abs(Number(this.data.receiptResidue))
     } else {
-      formData.receiptResidue = Math.abs(returnAmount - Number(formData.currentReceivableResidue))  
-    } 
+
+      formData.receiptResidue = cAmount - Math.abs(Number(formData.currentReceivableResidue)) < 0 ? Math.abs(Number(formData.currentReceivableResidue)) - cAmount : 0
+    }
     // 本次收款 +  优惠 + 预收扣减 > 本次核销 == 转预收金额
     let toAdvancePaymentAmount = Number(formData.sumAmtRec) + Number(formData.sumWaiveAmt) + Number(formData.receiptResidue) - Number(formData.currentReceivableResidue)
     if (toAdvancePaymentAmount > 0) {
@@ -309,11 +310,12 @@ Page({
     // 预存扣减金额 =   绝对值(本退款 +  优惠 )- 绝对值(本次核销)和 预存金额 两者 的最小值
     let cAmount = Math.abs(Number(formData.sumAmtRec ? formData.sumAmtRec : 0))
       + Math.abs(Number(formData.sumWaiveAmt))
-    if (returnAmount - Math.abs(Number(formData.currentReceivableResidue)) > Math.abs(Number(receiptResidue))) {
-      formData.receiptResidue = Math.abs(Number(receiptResidue))
+    if (Math.abs(cAmount - Number(formData.currentReceivableResidue)) > Math.abs(Number(receiptResidue))) {
+      formData.receiptResidue = cAmount - Math.abs(Number(formData.currentReceivableResidue)) > 0 ? 0 : Math.abs(Number(receiptResidue))
     } else {
-      formData.receiptResidue = Math.abs(returnAmount - Number(formData.currentReceivableResidue))  
-    } 
+
+      formData.receiptResidue = cAmount - Math.abs(Number(formData.currentReceivableResidue)) < 0 ? Math.abs(Number(formData.currentReceivableResidue)) - cAmount : 0
+    }
     // 本次收款 +  优惠 + 预收扣减 > 本次核销 == 转预收金额
     let toAdvancePaymentAmount = Number(formData.sumAmtRec) + Number(formData.sumWaiveAmt) + Number(formData.receiptResidue) - Number(formData.currentReceivableResidue)
     if (toAdvancePaymentAmount > 0) {
@@ -342,7 +344,7 @@ Page({
 
     })
     this.setData({
-      contentObj,
+      contentObj, 
       formData: JSON.stringify(formData)
     })
   },
@@ -360,8 +362,18 @@ Page({
       > Number(formData.receivableResidue)) {
       msgError = '本次核销不能大于待核销金额'
     }
+    let bill = 0
+    let contentObj = this.data.contentObj
+    contentObj['bill'].forEach(itcard => {
+      if (itcard.code === 'cancelAmount') {
+        //单数和金额
+        bill  = itcard.bill  
+      } 
+    })
     if (Number(formData.currentReceivableResidue) == 0
-      && Number(formData.sumAmtRec) == 0) {
+      && Number(formData.sumAmtRec) == 0
+      && Number(bill) == 0
+      ) {
       msgError = '本次核销金额和本次收款不能同时为0'
     }
     // 预存+本次收款 + 优惠》= 本次核销