string filename = "顾客消费账单";
string[] heaer = new string[] { "商店", "商品", "原价", "数量", "实付" };
QuestPDF.Settings.License = LicenseType.Community;
var bytes = QuestPDF.Fluent.Document.Create(container =>
{
container.Page(page =>
{
page.Size(PageSizes.A4);
page.Margin(0.3f, QuestPDF.Infrastructure.Unit.Inch);
page.Header().PaddingBottom(10)
.Text(@$"{_dbContext.BaseSetting.FirstOrDefault().CourseName}")
.FontSize(10)
.Bold()
.FontColor(Colors.Black);
page.Content().Column(column =>
{
column.Item().BorderBottom(1).PaddingBottom(10).Text(filename).FontSize(16).Bold().FontColor(Colors.Black).AlignCenter();
column.Item().PaddingBottom(5).PaddingTop(5).Text($"客人信息 {gdl.GuestInfo.Date.Value.ToString("yyyy-MM-dd")}").Bold();
column.Item().PaddingBottom(5).Text($"姓名:{gdl.GuestInfo.GuestName} 身份类型:{gdl.GuestInfo.GeustType}").Bold();
column.Item().PaddingBottom(5).Text($"商品消费({gdl.ConsumeMdses.LastOrDefault().PrePrice + battingFee + drFee})").Bold();
column.Item().Table(table =>
{
table.ColumnsDefinition(columns =>
{
columns.RelativeColumn(2);
columns.RelativeColumn(3);
columns.RelativeColumn(1.5f);
columns.RelativeColumn(1);
columns.RelativeColumn(1.5f);
});
table.Header(header =>
{
foreach (var item in heaer)
{
header.Cell().Border(0.5f).Text(item).Bold().AlignCenter();
}
});
if (battingFee > 0)
{
table.Cell().Border(0.5f).Text(shopName).AlignCenter();
table.Cell().Border(0.5f).Text("击球消费").AlignCenter();
table.Cell().Border(0.5f).Text(battingFee.ToString()).AlignCenter();
table.Cell().Border(0.5f).Text(1.ToString()).AlignCenter();
table.Cell().Border(0.5f).Text(battingFee.ToString()).AlignCenter();
}
if (drFee > 0)
{
foreach (var item in gdl.DrPlayConsumes)
{
table.Cell().Border(0.5f).Text(shops.FirstOrDefault(t => t.Id == item.ShopId).Name).AlignCenter();
table.Cell().Border(0.5f).Text(item.PlayName + "-" + item.PlayTypeName).AlignCenter();
table.Cell().Border(0.5f).Text(item.OriPrice.ToString()).AlignCenter();
table.Cell().Border(0.5f).Text(item.Count.ToString()).AlignCenter();
table.Cell().Border(0.5f).Text(item.Money.ToString()).AlignCenter();
}
}
column.Item().PaddingBottom(5).PaddingTop(5).Text($"付款信息").Bold();
foreach (var item in gdl.PayInfoBirefness)
{
column.Item().Text($"{item.PaymentName}").Bold();
}
});
page.Footer().PaddingTop(10).Row(row =>
{
row.RelativeItem(20).AlignLeft().Text($@"制表人:{name}");
row.RelativeItem(40).AlignCenter().Text($@"制表时间:{DateTime.Now.ToString("yyyy-MM-dd HH:mm")}");
row.RelativeItem(20).AlignRight().Text(x =>
{
x.Span("第");
x.CurrentPageNumber();
x.Span("页,总共");
x.TotalPages();
x.Span("页");
});
});
});
}).GeneratePdf();