fix: 结算表无关联费用支持其他类型 (#799)

Co-authored-by: sealday <zhanglin@daoyoucloud.com>
Reviewed-on: daoyoucloud/tachybase#799
Co-authored-by: wjh <wwwjh0710@163.com>
Co-committed-by: wjh <wwwjh0710@163.com>
This commit is contained in:
wjh 2024-04-22 17:36:45 +08:00 committed by sealday
parent 75b4dae712
commit eeed385ea1
6 changed files with 40 additions and 5 deletions

View File

@ -0,0 +1,5 @@
---
"@hera/plugin-rental": patch
---
结算表无关联费用支持其他类型

View File

@ -116,6 +116,10 @@ export const excelDataHandle = (excelData) => {
name: '装卸运费',
key: 'name',
},
{
name: '其他',
key: 'name',
},
{
name: '税率',
key: 'name',
@ -144,6 +148,7 @@ export const excelDataHandle = (excelData) => {
parseFloat(calc.n_compensate.toFixed(2)),
parseFloat(calc.h_compensate.toFixed(2)),
parseFloat(calc.loadfreight.toFixed(2)),
parseFloat(calc.other.toFixed(2)),
formatPercent(calc.tax, 2),
parseFloat(calc.current_expenses.toFixed(2)),
parseFloat(calc.accumulate.toFixed(2)),

View File

@ -13,6 +13,7 @@ export interface Settlement {
loadfreight: number;
h_compensate: number;
n_compensate: number;
other: number;
maintenance: number;
rent: number;
current_expenses: number;

View File

@ -179,6 +179,7 @@ const PreviewDocument = ({
无物赔偿: calc.n_compensate ?? 0.0,
有物赔偿: calc.h_compensate ?? 0.0,
装卸运费: calc.loadfreight ?? 0.0,
其他: calc.other ?? 0.0,
税率: calc.tax ?? 0.0,
本期费用: calc.current_expenses ?? 0.0,
累计费用: calc.accumulate ?? 0.0,
@ -270,6 +271,7 @@ const PreviewDocument = ({
<Text style={styles.tableCellTitle}></Text>
<Text style={styles.tableCellTitle}></Text>
<Text style={styles.tableCellTitle}></Text>
<Text style={styles.tableCellTitle}></Text>
<Text style={styles.tableCellTitle}></Text>
<Text style={styles.tableCellTitle}></Text>
<Text style={styles.tableCellTitle}></Text>
@ -282,6 +284,7 @@ const PreviewDocument = ({
<Text style={styles.tableCell}>{formatCurrency(group['无物赔偿'], 2)}</Text>
<Text style={styles.tableCell}>{formatCurrency(group['有物赔偿'], 2)}</Text>
<Text style={styles.tableCell}>{formatCurrency(group['装卸运费'], 2)}</Text>
<Text style={styles.tableCell}>{formatCurrency(group['其他'], 2)}</Text>
<Text style={styles.tableCell}>{formatPercent(group['税率'], 2)}</Text>
<Text style={styles.tableCell}>{formatCurrency(group['本期费用'], 2)}</Text>
<Text style={styles.tableCell}>{formatCurrency(group['累计费用'], 2)} </Text>

View File

@ -439,12 +439,15 @@ export class SettlementService {
let conversion = false;
const spec = rule.product.spec;
const name = rule.product.name;
const category = ['装卸运费', '维修人工', '无物赔偿', '有物赔偿'].includes(rule.product.name)
? rule.product.name
: '其他';
const data = {
settlement_id: settlementsId,
date: dayjs(settlementAbout.end_date).add(1, 'day').add(-1, 'minute'),
name: spec,
label: spec,
category: name,
name: `${name}[${spec}]`,
label: `${name}[${spec}]`,
category: category,
movement: '0',
count: 0,
item_count: 0,
@ -536,8 +539,16 @@ export class SettlementService {
const feeItem = item?.record_items.filter((value) => value.product_id === rule.fee_product_id);
if (feeItem.length) {
feeItem.forEach((value) => {
data.count = data.count + value.count;
conversion = true;
if (category === '其他') {
data.movement = item.movement;
data.count = value.count * Number(item.movement === '-1' ? '1' : '-1');
data.date = item.date;
data.amount = data.count * data.unit_price;
createFeesDatas.push(data);
} else {
data.count = data.count + value.count;
conversion = true;
}
});
}
if (item.fee_item.length) {
@ -736,6 +747,7 @@ export class SettlementService {
n_compensate: 0.0, //无物赔偿
h_compensate: 0.0, //有物赔偿
loadfreight: 0.0, //装卸运费
other: 0.0,
current_expenses: 0.0, //本期费用
tax: 0.0, //税率
accumulate: 0.0, //累计费用
@ -758,6 +770,9 @@ export class SettlementService {
case Itemcategory.loadFreight:
summaryPeriod.loadfreight += value.amount;
break;
case Itemcategory.other:
summaryPeriod.other += value.amount;
break;
}
});
settlementAbout.settlement_add_items.forEach((value) => {
@ -787,6 +802,7 @@ export class SettlementService {
summaryPeriod.maintenance +
summaryPeriod.n_compensate +
summaryPeriod.h_compensate +
summaryPeriod.other +
summaryPeriod.loadfreight) *
(summaryPeriod.tax + 1);
const settlement = settlementAbout.settlements?.filter((value) =>
@ -821,6 +837,7 @@ export class SettlementService {
n_compensate: settlementAbout.n_compensate, //无物赔偿
h_compensate: settlementAbout.h_compensate, //有物赔偿
loadfreight: settlementAbout.loadfreight, //装卸运费
other: settlementAbout.other, //其他
current_expenses: settlementAbout.current_expenses, //本期费用
tax: settlementAbout.tax, //税率
accumulate: settlementAbout.accumulate, //累计费用

View File

@ -123,6 +123,10 @@ export enum Itemcategory {
*
*/
rent = '租金',
/**
*
*/
other = '其他',
}
export enum countCource {