|
@@ -1,3 +1,11 @@
|
|
|
|
|
+/*******************************************************************************
|
|
|
|
|
+ * Copyright(c) 2022 dongke All rights reserved. / Confidential
|
|
|
|
|
+ * 类的信息:
|
|
|
|
|
+ * 1.程序名称: 新建收款单
|
|
|
|
|
+ * 编辑履历:
|
|
|
|
|
+ * 作者 日期 版本 修改内容
|
|
|
|
|
+ * 姜永辉 2024-03-22 1.00
|
|
|
|
|
+ *******************************************************************************/
|
|
|
const mixins = require('@/mixins/index.js')
|
|
const mixins = require('@/mixins/index.js')
|
|
|
const Constants = require('@/utils/Constants.js');
|
|
const Constants = require('@/utils/Constants.js');
|
|
|
const app = getApp();
|
|
const app = getApp();
|
|
@@ -43,9 +51,9 @@ Page({
|
|
|
|
|
|
|
|
],
|
|
],
|
|
|
bill: [
|
|
bill: [
|
|
|
- { code: 'cancelAmount', type: 'cancel', title: '核销应收', bill: 4, amount: 500 },
|
|
|
|
|
|
|
+ { code: 'cancelAmount', type: 'cancel', title: '核销应收', bill: 0, amount: 0 },
|
|
|
{ code: 'receivableResidue', type: 'number', title: '待核销金额', readonly: true, },
|
|
{ code: 'receivableResidue', type: 'number', title: '待核销金额', readonly: true, },
|
|
|
- { code: 'receiptResidue', type: 'number', title: '使用预存', },
|
|
|
|
|
|
|
+ { code: 'receiptResidue', type: 'number', title: '使用预存', readonly: true, },
|
|
|
{ code: 'sumWaiveAmt', type: 'number', title: '优惠金额', },
|
|
{ code: 'sumWaiveAmt', type: 'number', title: '优惠金额', },
|
|
|
{ code: 'currentReceivableResidue', type: 'number', title: '本次核销', required: true },
|
|
{ code: 'currentReceivableResidue', type: 'number', title: '本次核销', required: true },
|
|
|
],
|
|
],
|
|
@@ -75,6 +83,7 @@ Page({
|
|
|
receiptResidue: 0,
|
|
receiptResidue: 0,
|
|
|
bill: 0,
|
|
bill: 0,
|
|
|
objInfo: {},
|
|
objInfo: {},
|
|
|
|
|
+ table: Constants.tables.recPay,
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -102,13 +111,15 @@ Page({
|
|
|
formData.orgName = data.name
|
|
formData.orgName = data.name
|
|
|
}
|
|
}
|
|
|
if (code == "bill") { //选取应收的返回值
|
|
if (code == "bill") { //选取应收的返回值
|
|
|
- _this.setData({
|
|
|
|
|
|
|
+ formData.receivableList = data.receivableList
|
|
|
|
|
+ this.setData({
|
|
|
|
|
+ receivableList: data.receivableList,
|
|
|
objInfo: data.objInfo,
|
|
objInfo: data.objInfo,
|
|
|
receivableResidue: data.receivableResidue,
|
|
receivableResidue: data.receivableResidue,
|
|
|
receiptResidue: data.receiptResidue,
|
|
receiptResidue: data.receiptResidue,
|
|
|
- bill: data.itemLists.length,
|
|
|
|
|
|
|
+ bill: data.receivableList.length,
|
|
|
})
|
|
})
|
|
|
- this.setForm(formData, contentObj, data.receivableResidue, data.receiptResidue, data.itemLists.length)
|
|
|
|
|
|
|
+ this.setForm(formData, contentObj, data.receivableResidue, data.receiptResidue, data.receivableList.length)
|
|
|
return
|
|
return
|
|
|
}
|
|
}
|
|
|
this.setData({
|
|
this.setData({
|
|
@@ -134,15 +145,18 @@ Page({
|
|
|
accItemType: '账款类型-应收',
|
|
accItemType: '账款类型-应收',
|
|
|
amtResidueFlg: true,
|
|
amtResidueFlg: true,
|
|
|
}
|
|
}
|
|
|
- this.excute(this.data.accountService, this.data.accountService.getReceivableAccountItemCount, params).then(res => {
|
|
|
|
|
|
|
+ this.excute(this.data.accountService, this.data.accountService.getReceivableAccountItem, params).then(res => {
|
|
|
|
|
+ console.log("getReceivableAccountItem", res);
|
|
|
formData.cancelAmount = true
|
|
formData.cancelAmount = true
|
|
|
|
|
+ formData.receivableList = res.data.data
|
|
|
_this.setForm(formData, contentObj, objInfo.receivableResidue,
|
|
_this.setForm(formData, contentObj, objInfo.receivableResidue,
|
|
|
- objInfo.receiptResidue, res.data.data)
|
|
|
|
|
|
|
+ objInfo.receiptResidue, res.data.data.length)
|
|
|
_this.setData({
|
|
_this.setData({
|
|
|
objInfo,
|
|
objInfo,
|
|
|
|
|
+ receivableList: res.data.data,
|
|
|
receivableResidue: objInfo.receivableResidue,
|
|
receivableResidue: objInfo.receivableResidue,
|
|
|
receiptResidue: objInfo.receiptResidue,
|
|
receiptResidue: objInfo.receiptResidue,
|
|
|
- bill: res.data.data
|
|
|
|
|
|
|
+ bill: res.data.data.length
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
})
|
|
})
|
|
@@ -158,26 +172,78 @@ Page({
|
|
|
let formData = JSON.parse(this.data.formData)
|
|
let formData = JSON.parse(this.data.formData)
|
|
|
let contentObj = this.data.contentObj
|
|
let contentObj = this.data.contentObj
|
|
|
if (cancelAmount) {
|
|
if (cancelAmount) {
|
|
|
|
|
+ formData.receivableList = this.data.receivableList
|
|
|
this.setForm(formData, contentObj, this.data.receivableResidue, this.data.receiptResidue, this.data.bill)
|
|
this.setForm(formData, contentObj, this.data.receivableResidue, this.data.receiptResidue, this.data.bill)
|
|
|
} else {
|
|
} else {
|
|
|
-
|
|
|
|
|
|
|
+ formData.receivableList = []
|
|
|
this.setForm(formData, contentObj, 0, 0, 0)
|
|
this.setForm(formData, contentObj, 0, 0, 0)
|
|
|
}
|
|
}
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
|
+ * @desc : 设置表单的数据
|
|
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
|
|
+ * @author : 姜永辉
|
|
|
|
|
+ */
|
|
|
|
|
+ changeNumber(e) {
|
|
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
|
|
+ let code = e.detail.code
|
|
|
|
|
+ let data = e.detail.data
|
|
|
|
|
+ console.log(code, data, e);
|
|
|
|
|
+ // 本次收款金额
|
|
|
|
|
+ if (code == "sumAmtRec") {
|
|
|
|
|
+ formData.sumAmtRec = data
|
|
|
|
|
+ formData.sumAmount = data
|
|
|
|
|
+ let contentList = this.data.contentList
|
|
|
|
|
+ contentList.forEach(it => {
|
|
|
|
|
+ if (it.type == 'number') {
|
|
|
|
|
+ it.content = data
|
|
|
|
|
+ }
|
|
|
|
|
+ })
|
|
|
|
|
+ this.setData({
|
|
|
|
|
+ contentList,
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+ // 本次核销金额
|
|
|
|
|
+ if (code == "currentReceivableResidue") {
|
|
|
|
|
+ formData.currentReceivableResidue = data
|
|
|
|
|
+ }
|
|
|
|
|
+ // 优惠金额
|
|
|
|
|
+ if (code == "sumWaiveAmt") {
|
|
|
|
|
+ formData.sumWaiveAmt = data
|
|
|
|
|
+ }
|
|
|
|
|
+ this.setData({
|
|
|
|
|
+ formData: JSON.stringify(formData)
|
|
|
|
|
+ })
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
* @desc : 设置表单的数据
|
|
* @desc : 设置表单的数据
|
|
|
* @date : 2024/2/1 15:49
|
|
* @date : 2024/2/1 15:49
|
|
|
* @author : 姜永辉
|
|
* @author : 姜永辉
|
|
|
*/
|
|
*/
|
|
|
setForm(formData, contentObj, receivableResidue, receiptResidue, bill) {
|
|
setForm(formData, contentObj, receivableResidue, receiptResidue, bill) {
|
|
|
|
|
+ if (receivableResidue == null) {
|
|
|
|
|
+ receivableResidue = 0
|
|
|
|
|
+ }
|
|
|
|
|
+ if (receiptResidue == null) {
|
|
|
|
|
+ receiptResidue = 0
|
|
|
|
|
+ }
|
|
|
|
|
+ if (bill == null) {
|
|
|
|
|
+ bill = 0
|
|
|
|
|
+ }
|
|
|
formData.receivableResidue = receivableResidue // 总剩余应收
|
|
formData.receivableResidue = receivableResidue // 总剩余应收
|
|
|
- formData.currentReceivableResidue = receivableResidue // 总剩余应收
|
|
|
|
|
- formData.receivableResidue = receivableResidue // 总剩余应收
|
|
|
|
|
- formData.receiptResidue = receiptResidue // 预存
|
|
|
|
|
|
|
+ formData.currentReceivableResidue = receivableResidue // 总剩余应收
|
|
|
|
|
+ if (receivableResidue > receiptResidue) {
|
|
|
|
|
+ formData.receiptResidue = receiptResidue // 预存
|
|
|
|
|
+ } else {
|
|
|
|
|
+ formData.receiptResidue = receivableResidue // 预存 (用总剩余应收来负值)
|
|
|
|
|
+ }
|
|
|
if (formData.staffId == null) {
|
|
if (formData.staffId == null) {
|
|
|
formData.staffId = app.globalData.user.staffId
|
|
formData.staffId = app.globalData.user.staffId
|
|
|
formData.orgId = app.globalData.user.orgId
|
|
formData.orgId = app.globalData.user.orgId
|
|
|
|
|
+ formData.staffName = app.globalData.user.staffName
|
|
|
|
|
+ formData.orgName = app.globalData.user.orgName
|
|
|
}
|
|
}
|
|
|
contentObj['bill'].forEach(itcard => {
|
|
contentObj['bill'].forEach(itcard => {
|
|
|
if (itcard.code === 'cancelAmount') {
|
|
if (itcard.code === 'cancelAmount') {
|
|
@@ -205,6 +271,10 @@ Page({
|
|
|
> Number(formData.receivableResidue)) {
|
|
> Number(formData.receivableResidue)) {
|
|
|
msgError = '本次核销不能大于待核销金额'
|
|
msgError = '本次核销不能大于待核销金额'
|
|
|
}
|
|
}
|
|
|
|
|
+ if (Number(formData.currentReceivableResidue) == 0
|
|
|
|
|
+ && Number(formData.sumAmtRec) == 0) {
|
|
|
|
|
+ msgError = '本次核销金额和本次收款不能同时为0'
|
|
|
|
|
+ }
|
|
|
// 预存+本次收款》= 本次核销
|
|
// 预存+本次收款》= 本次核销
|
|
|
if (Number(formData.sumAmtRec) + Number(formData.receiptResidue)
|
|
if (Number(formData.sumAmtRec) + Number(formData.receiptResidue)
|
|
|
< Number(formData.currentReceivableResidue)) {
|
|
< Number(formData.currentReceivableResidue)) {
|
|
@@ -217,22 +287,22 @@ Page({
|
|
|
icon: 'none'
|
|
icon: 'none'
|
|
|
})
|
|
})
|
|
|
return false
|
|
return false
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
return true
|
|
return true
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
-
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* @desc : 保存的參數設置
|
|
* @desc : 保存的參數設置
|
|
|
* @date : 2024/2/1 15:49
|
|
* @date : 2024/2/1 15:49
|
|
|
* @author : 姜永辉
|
|
* @author : 姜永辉
|
|
|
*/
|
|
*/
|
|
|
setParams(params) {
|
|
setParams(params) {
|
|
|
- let btnFormData = this.data.btnFormData ? JSON.parse(this.data.btnFormData) : ''
|
|
|
|
|
- let formData = JSON.parse(this.data.formData)
|
|
|
|
|
|
|
|
|
|
|
|
+ let formData = JSON.parse(this.data.formData)
|
|
|
|
|
+ if (Number(formData.sumAmtRec) != 0) {
|
|
|
|
|
+ return params
|
|
|
|
|
+ }
|
|
|
//收付款类型-收款的查询参数
|
|
//收付款类型-收款的查询参数
|
|
|
params.rpType = Constants.rpType.receipt
|
|
params.rpType = Constants.rpType.receipt
|
|
|
params.orgId = formData.orgId //组织部门
|
|
params.orgId = formData.orgId //组织部门
|
|
@@ -246,8 +316,8 @@ Page({
|
|
|
// 合计优惠金额
|
|
// 合计优惠金额
|
|
|
params.sumWaiveAmt = formData.sumWaiveAmt
|
|
params.sumWaiveAmt = formData.sumWaiveAmt
|
|
|
// 预存的使用
|
|
// 预存的使用
|
|
|
- params.receiptResidue = formData.receiptResidue
|
|
|
|
|
- params.annexPaths = {}
|
|
|
|
|
|
|
+ params.receiptResidue = formData.receiptResidue
|
|
|
|
|
+ params.annexPaths = formData.annexPaths || [] //附件
|
|
|
// params.biznisType = null
|
|
// params.biznisType = null
|
|
|
// params.biznisId = null
|
|
// params.biznisId = null
|
|
|
// params.biznisNo = null
|
|
// params.biznisNo = null
|
|
@@ -256,10 +326,53 @@ Page({
|
|
|
params.makeStaff = app.globalData.user.staffId // 制单人
|
|
params.makeStaff = app.globalData.user.staffId // 制单人
|
|
|
|
|
|
|
|
params.itemList = [] //明细
|
|
params.itemList = [] //明细
|
|
|
|
|
+ let rlsit = this.setReturnReceivableList(formData.receivableList || [], formData.sumWaiveAmt, formData.currentReceivableResidue, formData.receivableResidue)
|
|
|
|
|
+ params.receivableList = rlsit //应收收款的明细
|
|
|
|
|
+
|
|
|
return params
|
|
return params
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
|
|
|
+ * @desc : 将优惠和本次核销的金额分摊到应收单据的明细里
|
|
|
|
|
+ * @date : 2024/2/1 15:49
|
|
|
|
|
+ * @author : 姜永辉
|
|
|
|
|
+ */
|
|
|
|
|
+ setReturnReceivableList(list, sumWaiveAmt, currentReceivableResidue, totalAmount) {
|
|
|
|
|
+ let retList = []
|
|
|
|
|
+ if (sumWaiveAmt == null || sumWaiveAmt == undefined) {
|
|
|
|
|
+ sumWaiveAmt = 0
|
|
|
|
|
+ }
|
|
|
|
|
+ if (currentReceivableResidue == null || currentReceivableResidue == null) {
|
|
|
|
|
+ currentReceivableResidue = 0
|
|
|
|
|
+ }
|
|
|
|
|
+ if (currentReceivableResidue == 0 && sumWaiveAmt == 0 || list == null) {
|
|
|
|
|
+ return retList
|
|
|
|
|
+ }
|
|
|
|
|
+ let finalAmout = currentReceivableResidue
|
|
|
|
|
+ let finalSumWaiveAmt = sumWaiveAmt
|
|
|
|
|
+ for (let index = 0; index < list.length; index++) {
|
|
|
|
|
+ const element = list[index];
|
|
|
|
|
+ // 应收冲抵金额 == 明细的剩余金额 默认
|
|
|
|
|
+ let amtReceivableHandle = (finalAmout < element.amtResidue ? finalAmout : element.amtResidue)
|
|
|
|
|
+ let amtWaive = Number(parseFloat(element.amtResidue / totalAmount * sumWaiveAmt).toFixed(2))
|
|
|
|
|
+ finalAmout -= amtReceivableHandle
|
|
|
|
|
+ finalSumWaiveAmt -= amtWaive
|
|
|
|
|
+
|
|
|
|
|
+ retList.push({
|
|
|
|
|
+ accDate: list.accDate,
|
|
|
|
|
+ accItemId: element.accItemId,
|
|
|
|
|
+ // 应收冲抵金额
|
|
|
|
|
+ amtReceivableHandle: amtReceivableHandle,
|
|
|
|
|
+ // 优惠金额-分摊之后 最后一条的数据取剩余的值
|
|
|
|
|
+ amtWaive: (index == list.length - 1 ? finalSumWaiveAmt : amtWaive),
|
|
|
|
|
+ })
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ return retList
|
|
|
|
|
+
|
|
|
|
|
+ },
|
|
|
|
|
+
|
|
|
|
|
+ /**
|
|
|
* @desc : 保存数据服务
|
|
* @desc : 保存数据服务
|
|
|
* @date : 2024/2/1 15:49
|
|
* @date : 2024/2/1 15:49
|
|
|
* @author : 姜永辉
|
|
* @author : 姜永辉
|
|
@@ -275,7 +388,6 @@ Page({
|
|
|
|
|
|
|
|
},
|
|
},
|
|
|
|
|
|
|
|
-
|
|
|
|
|
/**
|
|
/**
|
|
|
* @desc : 保存数据服务-跳转收款页面
|
|
* @desc : 保存数据服务-跳转收款页面
|
|
|
* @date : 2024/2/1 15:49
|
|
* @date : 2024/2/1 15:49
|