|
|
@@ -294,7 +294,7 @@ const open = async (id, row) => {
|
|
|
res.items = res.items.filter((item) => item.isShow == 1)
|
|
|
res.items.map((item) => {
|
|
|
if (item.expenseSource == 'long_term_care_insurance') {
|
|
|
- longTermAmount.value += item.actualPrice
|
|
|
+ longTermAmount.value += formatLongCareAmount(item.actualPrice)
|
|
|
item.payStatus = 0
|
|
|
flag = true
|
|
|
// 遍历长护险
|
|
|
@@ -350,16 +350,18 @@ const open = async (id, row) => {
|
|
|
if (res.expenseSubsidyDO && res.expenseSubsidyDO.length) {
|
|
|
let num = 0
|
|
|
res.expenseSubsidyDO.map((item) => {
|
|
|
- num += item.amount
|
|
|
+ // 按长护险抹零配置取数
|
|
|
+ const amount = formatLongCareAmount(item.amount)
|
|
|
+ num += amount
|
|
|
|
|
|
dataForm.value.items.push({
|
|
|
expenseSource: 'long_term_care_insurance',
|
|
|
itemCategoryName: '长护险',
|
|
|
itemName: '长护险抵扣',
|
|
|
description: item.remarks ? item.remarks : item.month + '长护险抵扣',
|
|
|
- roundAmount: -item.amount,
|
|
|
- roundTwoDecimalAmount: -item.amount,
|
|
|
- totalAmount: -item.amount,
|
|
|
+ roundAmount: -amount,
|
|
|
+ roundTwoDecimalAmount: -amount,
|
|
|
+ totalAmount: -amount,
|
|
|
createdTime: item.month,
|
|
|
payTime: '',
|
|
|
payStatus: item.status
|
|
|
@@ -388,20 +390,20 @@ const handleClick = (val) => {
|
|
|
if (rounding.value) {
|
|
|
// 取整
|
|
|
monthNum +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundAmount)
|
|
|
} else if (fixed2Num.value) {
|
|
|
// 四舍五入
|
|
|
monthNum +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundTwoDecimalAmount)
|
|
|
} else {
|
|
|
// 应收
|
|
|
monthNum +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(formatNum(item.totalAmount))
|
|
|
}
|
|
|
} else {
|
|
|
@@ -410,20 +412,20 @@ const handleClick = (val) => {
|
|
|
if (rounding.value) {
|
|
|
// 取整
|
|
|
otherNum +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundAmount)
|
|
|
} else if (fixed2Num.value) {
|
|
|
// 四舍五入
|
|
|
otherNum +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundTwoDecimalAmount)
|
|
|
} else {
|
|
|
// 应收
|
|
|
otherNum +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(formatNum(item.totalAmount))
|
|
|
}
|
|
|
}
|
|
|
@@ -453,8 +455,28 @@ const fixed2Num = computed(() => {
|
|
|
return settingStore.getFix2Num
|
|
|
})
|
|
|
|
|
|
-const getConsumerVoucherAmountNumber = (item) => {
|
|
|
- const ruleValue = settingStore.getCouponRuleValue
|
|
|
+/** 按长护险抹零配置处理后的补贴金额 */
|
|
|
+const formatLongCareAmount = (amount) => {
|
|
|
+ const ruleValue = settingStore.getLongCareRuleValue
|
|
|
+ if (ruleValue == 2 || ruleValue == '2') {
|
|
|
+ return Number(formatRound(amount || 0))
|
|
|
+ }
|
|
|
+ return Number(formatNum(amount || 0))
|
|
|
+}
|
|
|
+
|
|
|
+/** 消费券/长护险都按各自的抹零配置单独取数 */
|
|
|
+const hasSourceRule = (item) =>
|
|
|
+ item.expenseSource == 'consumer_voucher' || item.expenseSource == 'long_term_care_insurance'
|
|
|
+
|
|
|
+/** 取对应来源的抹零规则:2=取整,其它=保留两位小数 */
|
|
|
+const getSourceRuleValue = (item) =>
|
|
|
+ item.expenseSource == 'consumer_voucher'
|
|
|
+ ? settingStore.getCouponRuleValue
|
|
|
+ : settingStore.getLongCareRuleValue
|
|
|
+
|
|
|
+/** 按来源规则取金额(数字) */
|
|
|
+const getSourceAmountNumber = (item) => {
|
|
|
+ const ruleValue = getSourceRuleValue(item)
|
|
|
const rawAmount = item?.totalAmount ?? 0
|
|
|
if (ruleValue == 2 || ruleValue == '2') {
|
|
|
return Number(formatRound(rawAmount))
|
|
|
@@ -462,8 +484,9 @@ const getConsumerVoucherAmountNumber = (item) => {
|
|
|
return Number(formatNum(rawAmount))
|
|
|
}
|
|
|
|
|
|
-const getConsumerVoucherAmountText = (item) => {
|
|
|
- const ruleValue = settingStore.getCouponRuleValue
|
|
|
+/** 按来源规则取金额(展示用字符串) */
|
|
|
+const getSourceAmountText = (item) => {
|
|
|
+ const ruleValue = getSourceRuleValue(item)
|
|
|
const rawAmount = item?.totalAmount ?? 0
|
|
|
if (ruleValue == 2 || ruleValue == '2') {
|
|
|
return formatRound(rawAmount)
|
|
|
@@ -480,53 +503,53 @@ const totalPayAmount = computed(() => {
|
|
|
dataForm.value.items.map((item) => {
|
|
|
if (item.itemName != '长护险护理补贴费用') {
|
|
|
num1 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundAmount)
|
|
|
num2 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundTwoDecimalAmount)
|
|
|
if (item.isMonthlyExpense == 1 && dataForm.value.type == 1) {
|
|
|
if (settingStore.getAdmissionBill == 2) {
|
|
|
// 向上取整
|
|
|
num3 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(formatCeil(item.totalAmount))
|
|
|
} else if (settingStore.getAdmissionBill == 3) {
|
|
|
// 四舍五入保留两位
|
|
|
num3 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundTwoDecimalAmount)
|
|
|
} else if (settingStore.getAdmissionBill == 4) {
|
|
|
// 四舍五入取整
|
|
|
num3 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundAmount)
|
|
|
} else {
|
|
|
num3 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.totalAmount)
|
|
|
}
|
|
|
} else {
|
|
|
if (rounding.value) {
|
|
|
num3 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundAmount)
|
|
|
} else if (fixed2Num.value) {
|
|
|
num3 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundTwoDecimalAmount)
|
|
|
} else {
|
|
|
num3 +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.totalAmount)
|
|
|
}
|
|
|
}
|
|
|
@@ -564,8 +587,8 @@ const tableRowPrice = (row) => {
|
|
|
|
|
|
// 表格1总额单项小计
|
|
|
const tableRowPay = (row) => {
|
|
|
- if (row.expenseSource == 'consumer_voucher') {
|
|
|
- return getConsumerVoucherAmountText(row)
|
|
|
+ if (hasSourceRule(row)) {
|
|
|
+ return getSourceAmountText(row)
|
|
|
}
|
|
|
if (dataForm.value.type == '1' && row.isMonthlyExpense == 1) {
|
|
|
if (settingStore.getAdmissionBill == 2) {
|
|
|
@@ -599,43 +622,43 @@ const tableSubtotal = computed(() => {
|
|
|
if (settingStore.getAdmissionBill == 2) {
|
|
|
// 向上取整
|
|
|
num +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(formatCeil(item.totalAmount))
|
|
|
} else if (settingStore.getAdmissionBill == 3) {
|
|
|
// 四舍五入保留两位
|
|
|
num +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundTwoDecimalAmount)
|
|
|
} else if (settingStore.getAdmissionBill == 4) {
|
|
|
// 四舍五入取整
|
|
|
num +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundAmount)
|
|
|
} else {
|
|
|
// 应收
|
|
|
num +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.totalAmount)
|
|
|
}
|
|
|
} else {
|
|
|
if (rounding.value) {
|
|
|
num +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundAmount)
|
|
|
} else if (fixed2Num.value) {
|
|
|
num +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.roundTwoDecimalAmount)
|
|
|
} else {
|
|
|
num +=
|
|
|
- item.expenseSource == 'consumer_voucher'
|
|
|
- ? getConsumerVoucherAmountNumber(item)
|
|
|
+ hasSourceRule(item)
|
|
|
+ ? getSourceAmountNumber(item)
|
|
|
: Number(item.totalAmount)
|
|
|
}
|
|
|
}
|