diff --git a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs index 73c1f35..e5db191 100644 --- a/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs +++ b/netcore/src/Modularity/Extend/NCC.Extend/LqKdKdjlbService.cs @@ -20,15 +20,17 @@ using NCC.Extend.Entitys.Dto.Common; using NCC.Extend.Entitys.Dto.LqKdDeductinfo; using NCC.Extend.Entitys.Dto.LqKdKdjlb; using NCC.Extend.Entitys.Enum; +using NCC.Extend.Entitys.lq_hytk_hytk; using NCC.Extend.Entitys.lq_hytk_mx; using NCC.Extend.Entitys.lq_jinsanjiao_user; using NCC.Extend.Entitys.lq_kd_deductinfo; +using NCC.Extend.Entitys.lq_xh_hyhk; +using NCC.Extend.Entitys.lq_xh_pxmx; using NCC.Extend.Entitys.lq_kd_jksyj; using NCC.Extend.Entitys.lq_kd_kdjlb; using NCC.Extend.Entitys.lq_kd_kjbsyj; using NCC.Extend.Entitys.lq_kd_pxmx; using NCC.Extend.Entitys.lq_khxx; -using NCC.Extend.Entitys.lq_xh_pxmx; using NCC.Extend.Entitys.lq_xmzl; using NCC.Extend.Interfaces.LqKdKdjlb; using NCC.Extend.Utils; @@ -841,6 +843,22 @@ namespace NCC.Extend.LqKdKdjlb { //开启事务 _db.BeginTran(); + // 检查是否有消耗记录 + var billingItemIds = await _db.Queryable().Where(p => ids.Contains(p.Glkdbh)).Select(p => p.Id).ToListAsync(); + if (billingItemIds.Any()) + { + var consumeRecords = await _db.Queryable().Where(x => x.IsEffective == StatusEnum.有效.GetHashCode()).Where(x => billingItemIds.Contains(x.BillingItemId)).AnyAsync(); + if (consumeRecords) + { + throw NCCException.Oh("选中的开单记录中有已消耗的记录,不能删除"); + } + } + // 检查是否有储扣记录 + var deductRecords = await _db.Queryable().Where(x => ids.Contains(x.BillingId) && x.IsEffective == StatusEnum.有效.GetHashCode()).AnyAsync(); + if (deductRecords) + { + throw NCCException.Oh("选中的开单记录中有储扣记录,不能删除"); + } //批量删除开单记录表 await _db.Deleteable().In(d => d.Id, ids).ExecuteCommandAsync(); @@ -1038,6 +1056,26 @@ namespace NCC.Extend.LqKdKdjlb { //开启事务 _db.BeginTran(); + //先查询开单品项明细 + var lqPxmxList = _db.Queryable().Where(x => x.Glkdbh == id).ToList(); + //判断是否有对应的消耗记录 + var consumeRecords = await _db.Queryable().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.BillingItemId)).AnyAsync(); + if (consumeRecords) + { + throw NCCException.Oh("选中的开单记录中有已消耗的记录,不能删除"); + } + //判断是否有对应的退卡记录 + var refundRecords = await _db.Queryable().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.BillingItemId)).AnyAsync(); + if (refundRecords) + { + throw NCCException.Oh("选中的开单记录中有退卡记录,不能删除"); + } + //判断是否有对应的储扣记录 + var deductRecords = await _db.Queryable().Where(x => lqPxmxList.Select(y => y.Id).Contains(x.DeductId)).AnyAsync(); + if (deductRecords) + { + throw NCCException.Oh("选中的开单记录中有储扣记录,不能删除"); + } //删除开单记录表记录 await _db.Deleteable().Where(d => d.Id == id).ExecuteCommandAsync();