From 95fc2c4e16e4760e7309193bf07795abc209258f Mon Sep 17 00:00:00 2001 From: wjh Date: Fri, 19 Apr 2024 14:17:03 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=BB=93=E7=AE=97=E5=8D=95=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=85=B7=E4=BD=93=E8=A7=84=E6=A0=BC=E9=80=BB=E8=BE=91?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20(#770)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Reviewed-on: https://git.daoyoucloud.com/daoyoucloud/tachybase/pulls/770 Co-authored-by: wjh Co-committed-by: wjh --- .../src/server/services/settlement-service.ts | 84 ++++++++----------- 1 file changed, 36 insertions(+), 48 deletions(-) diff --git a/packages/plugins/@hera/plugin-rental/src/server/services/settlement-service.ts b/packages/plugins/@hera/plugin-rental/src/server/services/settlement-service.ts index 768cf52ed..80b771516 100644 --- a/packages/plugins/@hera/plugin-rental/src/server/services/settlement-service.ts +++ b/packages/plugins/@hera/plugin-rental/src/server/services/settlement-service.ts @@ -107,7 +107,7 @@ export class SettlementService { //租赁天数 历史订单就存开始日期到结束日期 当前订单存储订单日期到结束日期 days: day, is_excluded: false, - item_count: product.count, + item_count: 0, count: recordItem.weight * Number(movement), unit_price: rule.unit_price * 1000, amount: recordItem.weight * (rule.unit_price * 1000) * day * Number(movement), @@ -171,59 +171,47 @@ export class SettlementService { settlementAbout.end_date, ); const movement = item.movement === '-1' ? '1' : '-1'; + + const data = { + settlement_id: settlementsId, //合同ID + movement: item.movement, //出入库状态 + date: item.date, //时间 + name: productLength > 1 ? rule.comment ?? '' : recordItem.product.name, //名称 + label: productLength > 1 ? rule.comment ?? '' : recordItem.product.name, //规格 + category: item.category, //费用类别 + //租赁天数 历史订单就存开始日期到结束日期 当前订单存储订单日期到结束日期 + days: day, + is_excluded: false, + count: item.weight * Number(movement), + unit_price: rule.unit_price * 1000, + amount: item.weight * (rule.unit_price * 1000) * day * Number(movement), + unit_name: '吨', + productCategory, + }; const item_count = item.record_items.reduce((prev, curr) => { - if ( - countRule.find( - (productRule) => - (productRule.product_id > RulesNumber && - productRule.product_id - RulesNumber === curr.product.category_id) || - productRule.product_id === curr?.product_id, - ) - ) { + const item = countRule.find( + (productRule) => + (productRule.product_id > RulesNumber && + productRule.product_id - RulesNumber === curr.product.category_id) || + productRule.product_id === curr?.product_id, + ); + if (productLength > 1 && item) { + const itemData = { ...data }; + itemData['item_count'] = curr.count * Number(movement); + itemData['label'] = + `${rule.comment}-${curr.product.label}$$` ?? '' + `-${curr.product.label}$$`; + itemData['count'] = 0; + itemData['amount'] = 0; + createLeasDatas.push(itemData); + return prev + curr.count; + } else if (productLength <= 1 && !item) { return prev + curr.count; } else { return prev + 0; } }, 0); - if (productLength > 1) { - createLeasDatas.push({ - settlement_id: settlementsId, //合同ID - movement: item.movement, //出入库状态 - date: item.date, //时间 - name: rule.comment ?? '', //名称 - label: rule.comment ?? '', //规格 - category: item.category, //费用类别 - //租赁天数 历史订单就存开始日期到结束日期 当前订单存储订单日期到结束日期 - days: day, - is_excluded: false, - item_count: productLength > 1 ? item_count : recordItem.count * Number(movement), - count: item.weight * Number(movement), - unit_price: rule.unit_price * 1000, - amount: item.weight * (rule.unit_price * 1000) * day * Number(movement), - unit_name: '吨', - productCategory, - }); - } - createLeasDatas.push({ - settlement_id: settlementsId, //合同ID - movement: item.movement, //出入库状态 - date: item.date, //时间 - name: productLength > 1 ? rule.comment ?? '' : recordItem.product.name, //名称 - label: - productLength > 1 - ? `${rule.comment}-${recordItem.product.name}$$` ?? '' + `-${recordItem.product.name}$$` - : recordItem.product.name, //规格 - category: item.category, //费用类别 - //租赁天数 历史订单就存开始日期到结束日期 当前订单存储订单日期到结束日期 - days: day, - is_excluded: false, - item_count: productLength > 1 ? item_count : recordItem.count * Number(movement), - count: productLength > 1 ? 0 : item.weight * Number(movement), - unit_price: rule.unit_price * 1000, - amount: productLength > 1 ? 0 : item.weight * (rule.unit_price * 1000) * day * Number(movement), - unit_name: '吨', - productCategory, - }); + data['item_count'] = productLength > 1 ? 0 : item_count * Number(movement); + createLeasDatas.push(data); } } } else {