|
|
@@ -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
|