Browse Source

收费报表修改

bjmzak
wxd 2 years ago
parent
commit
74317db2c5
  1. 28
      src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeSummaryDto.cs
  2. 60
      src/Shentun.Peis.Application/ChargeReports/ChargeReportAppService.cs
  3. 2
      src/Shentun.Peis.Domain/DataHelper.cs

28
src/Shentun.Peis.Application.Contracts/ChargeReports/GetPersonalFeeDetailsReportInFeeSummaryDto.cs

@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.Text;
using System.Text.Json.Serialization;
namespace Shentun.Peis.ChargeReports
{
@ -35,6 +36,12 @@ namespace Shentun.Peis.ChargeReports
public class GetPersonalFeeDetailsReportInFeeSummary_Detail
{
/// <summary>
/// 收费ID
/// </summary>
public Guid ChargeId { get; set; }
/// <summary>
/// 档案号
/// </summary>
@ -76,7 +83,7 @@ namespace Shentun.Peis.ChargeReports
/// <summary>
/// 实收金额
/// </summary>
public decimal ReceivedChargeMoney { get; set; }
public decimal TotalReceivedChargeMoney { get; set; }
/// <summary>
/// 收费人
@ -94,10 +101,21 @@ namespace Shentun.Peis.ChargeReports
/// </summary>
public string ChargeFlagName { get; set; }
/// <summary>
/// 支付方式
/// </summary>
public string PayModeName { get; set; }
/// <summary>
/// 支付方式明细
/// 实收金额
/// </summary>
public decimal ReceivedChargeMoney { get; set; }
[JsonIgnore]
public List<GetPersonalFeeDetailsReportInFeeSummary_PayMode> PayModes { get; set; }
}
public class GetPersonalFeeDetailsReportInFeeSummary_PayMode
@ -112,4 +130,10 @@ namespace Shentun.Peis.ChargeReports
/// </summary>
public decimal ReceivedChargeMoney { get; set; }
}
}

60
src/Shentun.Peis.Application/ChargeReports/ChargeReportAppService.cs

@ -616,10 +616,9 @@ namespace Shentun.Peis.ChargeReports
// };
#endregion
var query = from a in (await _chargeRepository.GetQueryableAsync()).Include(x => x.ChargePays).ThenInclude(x => x.PayMode)
join b in await _chargeAsbitemRepository.GetQueryableAsync() on a.Id equals b.ChargeId
@ -646,6 +645,8 @@ namespace Shentun.Peis.ChargeReports
};
if (input.UserIds.Any())
{
query = query.Where(m => input.UserIds.Contains(m.a.CreatorId.Value));
@ -667,12 +668,10 @@ namespace Shentun.Peis.ChargeReports
query = query.Where(m => m.PatientNo == input.PatientNo);
}
var sqlstr = query.ToQueryString();
var personalFeeDetailsReportInFeeSummary_Details = query.GroupBy(g => g.b.ChargeId).Select(s => new GetPersonalFeeDetailsReportInFeeSummary_Detail
{
ChargeId = s.Key,
Age = s.FirstOrDefault().Age,
BookKeepingName = s.FirstOrDefault().BookKeepingName,
BookkeepingTiem = s.FirstOrDefault().a.CreationTime.ToString("yyyy-MM-dd HH:mm"),
@ -681,7 +680,7 @@ namespace Shentun.Peis.ChargeReports
PatientNo = s.FirstOrDefault().PatientNo,
SexName = s.FirstOrDefault().SexName,
ChargeMoney = DataHelper.DecimalRetainDecimals(s.Sum(ss => ss.c.ChargePrice * ss.c.Amount), 2),
ReceivedChargeMoney = DataHelper.DecimalRetainDecimals(s.Sum(ss => ss.b.ChargePrice * ss.b.Amount), 2),
TotalReceivedChargeMoney = DataHelper.DecimalRetainDecimals(s.Sum(ss => ss.b.ChargePrice * ss.b.Amount), 2),
DiscountMoney = DataHelper.DecimalRetainDecimals(s.Sum(ss => ss.c.ChargePrice * ss.c.Amount), 2) - DataHelper.DecimalRetainDecimals(s.Sum(ss => ss.b.ChargePrice * ss.b.Amount), 2),
PayModes = s.FirstOrDefault().a.ChargePays.Select(ss => new GetPersonalFeeDetailsReportInFeeSummary_PayMode
{
@ -691,14 +690,57 @@ namespace Shentun.Peis.ChargeReports
}).OrderBy(o => o.PatientName).ToList();
decimal sumChargeMoney = personalFeeDetailsReportInFeeSummary_Details.Any() ? DataHelper.DecimalRetainDecimals(personalFeeDetailsReportInFeeSummary_Details.Sum(s => s.ChargeMoney), 2) : 0;
decimal sumDiscountMoney = personalFeeDetailsReportInFeeSummary_Details.Any() ? DataHelper.DecimalRetainDecimals(personalFeeDetailsReportInFeeSummary_Details.Sum(s => s.DiscountMoney), 2) : 0;
decimal sumReceivedChargeMoney = personalFeeDetailsReportInFeeSummary_Details.Any() ? DataHelper.DecimalRetainDecimals(personalFeeDetailsReportInFeeSummary_Details.Sum(s => s.ReceivedChargeMoney), 2) : 0;
decimal sumReceivedChargeMoney = personalFeeDetailsReportInFeeSummary_Details.Any() ? DataHelper.DecimalRetainDecimals(personalFeeDetailsReportInFeeSummary_Details.Sum(s => s.TotalReceivedChargeMoney), 2) : 0;
//支付方式整合到上级
List<GetPersonalFeeDetailsReportInFeeSummary_Detail> personalFeeDetailsReportInFeeSummary_Details_new = new List<GetPersonalFeeDetailsReportInFeeSummary_Detail>();
foreach (var item in personalFeeDetailsReportInFeeSummary_Details)
{
var temp = new GetPersonalFeeDetailsReportInFeeSummary_Detail();
foreach (var payMode in item.PayModes)
{
temp = new GetPersonalFeeDetailsReportInFeeSummary_Detail()
{
ChargeId = item.ChargeId,
Age = item.Age,
BookKeepingName = item.BookKeepingName,
BookkeepingTiem = item.BookkeepingTiem,
ChargeFlagName = item.ChargeFlagName,
PatientName = item.PatientName,
PatientNo = item.PatientNo,
SexName = item.SexName,
ChargeMoney = item.ChargeMoney,
TotalReceivedChargeMoney = item.TotalReceivedChargeMoney,
DiscountMoney = item.DiscountMoney,
PayModeName = payMode.PayModeName,
ReceivedChargeMoney = payMode.ReceivedChargeMoney,
};
personalFeeDetailsReportInFeeSummary_Details_new.Add(temp);
}
}
var personalFeeDetailsReportInFeeSummaryDto = new GetPersonalFeeDetailsReportInFeeSummaryDto
{
ChargeCount = personalFeeDetailsReportInFeeSummary_Details.Count,
Details = personalFeeDetailsReportInFeeSummary_Details,
Details = personalFeeDetailsReportInFeeSummary_Details_new,
SumChargeMoney = sumChargeMoney,
SumDiscountMoney = sumDiscountMoney,
SumReceivedChargeMoney = sumReceivedChargeMoney

2
src/Shentun.Peis.Domain/DataHelper.cs

@ -368,7 +368,7 @@ namespace Shentun.Peis
decimal newValue = 0;
if (value != null)
{
Math.Round(value.Value, decimalLength);
newValue = Math.Round(value.Value, decimalLength);
}
return newValue;
}

Loading…
Cancel
Save