修改舒文,牌位预览列印
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -5,3 +5,4 @@ packages
|
|||||||
obj/
|
obj/
|
||||||
*.user
|
*.user
|
||||||
*.log
|
*.log
|
||||||
|
**website.publishproj
|
||||||
@@ -73,6 +73,39 @@ public class guadanGuestQueryController: ApiController
|
|||||||
total = totalCount,
|
total = totalCount,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[HttpGet]
|
||||||
|
[Route("api/guadan/guest/checkin/list")]
|
||||||
|
public async Task<IHttpActionResult> GetCheckInGuest([FromUri] DateTime date)
|
||||||
|
{
|
||||||
|
var today = DateTime.Now.Date;
|
||||||
|
var data = await _db.GuaDanOrderGuest
|
||||||
|
.Where(guest => guest.StatusCode == "402")
|
||||||
|
.Where(guest => guest.RegionAndRoomAndBedSchedule
|
||||||
|
.Any(s => s.ScheduleDate == date.Date && s.ScheduleDate == today) == true)
|
||||||
|
.Select(guest => new
|
||||||
|
{
|
||||||
|
name = guest.followers.u_name,
|
||||||
|
gender = guest.followers.sex,
|
||||||
|
})
|
||||||
|
.ToListAsync();
|
||||||
|
return Ok(data);
|
||||||
|
}
|
||||||
|
[HttpGet]
|
||||||
|
[Route("api/guadan/guest/booking/list")]
|
||||||
|
public async Task<IHttpActionResult> GetBookingGuest([FromUri] DateTime date)
|
||||||
|
{
|
||||||
|
var data = await _db.GuaDanOrderGuest
|
||||||
|
.Where(guest => guest.StatusCode == "402" || guest.StatusCode == "401")
|
||||||
|
.Where(guest => guest.RegionAndRoomAndBedSchedule.Any(s => s.ScheduleDate == date.Date) == true)
|
||||||
|
.Select(guest => new
|
||||||
|
{
|
||||||
|
name = guest.followers.u_name,
|
||||||
|
gender = guest.followers.sex,
|
||||||
|
})
|
||||||
|
.ToListAsync();
|
||||||
|
return Ok(data);
|
||||||
|
}
|
||||||
public string GetRoomAndBedString(RegionRoomBed bed)
|
public string GetRoomAndBedString(RegionRoomBed bed)
|
||||||
{
|
{
|
||||||
if (bed == null || bed.Room == null) return "";
|
if (bed == null || bed.Room == null) return "";
|
||||||
|
|||||||
@@ -59,6 +59,18 @@ public class guadanStatisticsTableController: ApiController
|
|||||||
? g.Count(x => x.GuaDanOrderGuest.RegionRoomBedStatus.Code == "402"
|
? g.Count(x => x.GuaDanOrderGuest.RegionRoomBedStatus.Code == "402"
|
||||||
|| x.GuaDanOrderGuest.RegionRoomBedStatus.Code == "403")
|
|| x.GuaDanOrderGuest.RegionRoomBedStatus.Code == "403")
|
||||||
: 0,
|
: 0,
|
||||||
|
checkinfemale = g.Key <= DateTime.Today
|
||||||
|
? g.Count(x => (x.GuaDanOrderGuest.RegionRoomBedStatus.Code == "402"
|
||||||
|
|| x.GuaDanOrderGuest.RegionRoomBedStatus.Code == "403")
|
||||||
|
&& x.GuaDanOrderGuest.followers.sex == "女眾")
|
||||||
|
: 0,
|
||||||
|
checkinmale = g.Key <= DateTime.Today
|
||||||
|
? g.Count(x => (x.GuaDanOrderGuest.RegionRoomBedStatus.Code == "402"
|
||||||
|
|| x.GuaDanOrderGuest.RegionRoomBedStatus.Code == "403")
|
||||||
|
&& x.GuaDanOrderGuest.followers.sex == "男眾")
|
||||||
|
: 0,
|
||||||
|
bookfemale = g.Count(x => x.GuaDanOrderGuest.followers.sex == "女眾"),
|
||||||
|
bookmale = g.Count(x => x.GuaDanOrderGuest.followers.sex == "男眾")
|
||||||
})
|
})
|
||||||
.OrderBy(x => x.date)
|
.OrderBy(x => x.date)
|
||||||
.ToList();
|
.ToList();
|
||||||
|
|||||||
@@ -22,93 +22,13 @@ public class orderdetailController:ApiController
|
|||||||
public IHttpActionResult GetList([FromBody] Model.ViewModel.pro_order q, int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.pro_order q, int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||||
{
|
{
|
||||||
int activity_num = Convert.ToInt32(q.activity_num);
|
int activity_num = Convert.ToInt32(q.activity_num);
|
||||||
|
//現在的牌位預覽只會出現功德主,修改為所有人都會出現
|
||||||
//var aIDt = _db.actItems.AsEnumerable().Where(f => f.subject.Contains(q.actItemTxt.Trim())).Select(f => f.num);//品項
|
//var aIDt = _db.actItems.AsEnumerable().Where(f => f.subject.Contains(q.actItemTxt.Trim())).Select(f => f.num);//品項
|
||||||
var OrderList = _db.pro_order.Where(u => u.activity_num == activity_num).Select(j => j.order_no).ToList();
|
//var OrderList = _db.pro_order.Where(u => u.activity_num == activity_num).Select(j => j.order_no).ToList();
|
||||||
var gdzOrderList = _db.pro_order_detail.Where(o => OrderList.Contains(o.order_no) && o.print_id.Contains("主")).Select(o => o.order_no).Distinct().ToList();
|
//var gdzOrderList = _db.pro_order_detail.Where(o => OrderList.Contains(o.order_no) && o.print_id.Contains("主")).Select(o => o.order_no).Distinct().ToList();
|
||||||
var qry = _db.pro_order.Where(u => gdzOrderList.Contains(u.order_no)).AsEnumerable();
|
//var qry = _db.pro_order.Where(u => gdzOrderList.Contains(u.order_no)).AsEnumerable();
|
||||||
if (!string.IsNullOrEmpty(q.order_no))
|
var qry = _db.pro_order.Where( u => u.activity_num == activity_num).AsEnumerable();
|
||||||
qry = qry.Where(o => o.order_no.Contains(q.order_no.Trim()));
|
|
||||||
if (!string.IsNullOrEmpty(q.keyin1))
|
|
||||||
qry = qry.Where(o => o.keyin1.Contains(q.keyin1));
|
|
||||||
if (q.f_num.HasValue && q.f_num > 0)
|
|
||||||
qry = qry.Where(o => o.f_num == q.f_num);
|
|
||||||
if (q.activity_num.HasValue && q.activity_num > 0)
|
|
||||||
qry = qry.Where(o => o.activity_num == q.activity_num);
|
|
||||||
if (q.up_time1.HasValue)
|
|
||||||
qry = qry.Where(o => o.up_time >= q.up_time1.Value);
|
|
||||||
if (q.up_time2.HasValue)
|
|
||||||
qry = qry.Where(o => o.up_time < Convert.ToDateTime(q.up_time2.Value).AddDays(1));
|
|
||||||
if (!string.IsNullOrEmpty(q.address))
|
|
||||||
qry = qry.Where(o => o.address.Contains(q.address.Trim()));
|
|
||||||
if (!string.IsNullOrEmpty(q.subject))
|
|
||||||
qry = qry.Where(o => o.activity_num.HasValue && o.activity.subject.Contains(q.subject?.Trim()));
|
|
||||||
if (!string.IsNullOrEmpty(q.u_name))
|
|
||||||
qry = qry.Where(o => o.f_num.HasValue && o.follower.u_name.Contains(q.u_name?.Trim()));
|
|
||||||
if (!string.IsNullOrEmpty(q.introducerTxt))
|
|
||||||
qry = qry.Where(o => o.introducer.HasValue && o.follower1.u_name.Contains(q.introducerTxt?.Trim()));
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.actItemTxt))
|
|
||||||
{
|
|
||||||
//qry = qry.Where(o => o.pro_order_detail.Where(f2 => f2.order_no == o.order_no && aIDt.ToArray().Contains(f2.actItem_num?.ToString())).Count() > 0);
|
|
||||||
// qry = qry.Where(o => o.pro_order_detail.Where(f2 => f2.order_no == o.order_no && aIDt.Any(x => x == f2.actItem_num)).Count() > 0);
|
|
||||||
|
|
||||||
qry = qry.Where(o => o.pro_order_detail.Where(f2 => f2.actItem_num.HasValue && f2.actItem.subject.Contains(q.actItemTxt?.Trim())).Count() > 0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!string.IsNullOrEmpty(q.country))
|
|
||||||
qry = qry.Where(o => o.f_num != null && o.follower?.country == q.country);
|
|
||||||
if (!string.IsNullOrEmpty(q.country2))
|
|
||||||
{
|
|
||||||
if (q.country2 == "1")
|
|
||||||
{
|
|
||||||
qry = qry.Where(o => o.f_num != null && o.follower?.country == "158");
|
|
||||||
}
|
|
||||||
else if (q.country2 == "2")
|
|
||||||
{
|
|
||||||
qry = qry.Where(o => o.f_num != null && o.follower?.country != "158");
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
if (sortBy.Equals("order_no"))
|
|
||||||
{
|
|
||||||
if (sortDesc)
|
|
||||||
qry = qry.OrderByDescending(o => o.order_no);
|
|
||||||
else
|
|
||||||
qry = qry.OrderBy(o => o.order_no);
|
|
||||||
}
|
|
||||||
else if (sortBy.Equals("keyin1_txt"))
|
|
||||||
{
|
|
||||||
if (sortDesc)
|
|
||||||
qry = qry.OrderByDescending(o => o.keyin1);
|
|
||||||
else
|
|
||||||
qry = qry.OrderBy(o => o.keyin1);
|
|
||||||
}
|
|
||||||
else if (sortBy.Equals("up_time"))
|
|
||||||
{
|
|
||||||
if (sortDesc)
|
|
||||||
qry = qry.OrderByDescending(o => o.up_time);
|
|
||||||
else
|
|
||||||
qry = qry.OrderBy(o => o.up_time);
|
|
||||||
}
|
|
||||||
else if (sortBy.Equals("u_name"))
|
|
||||||
{
|
|
||||||
if (sortDesc)
|
|
||||||
qry = qry.OrderByDescending(o => o.follower?.u_name);
|
|
||||||
else
|
|
||||||
qry = qry.OrderBy(o => o.follower?.u_name);
|
|
||||||
}
|
|
||||||
else if (sortBy.Equals("subject"))
|
|
||||||
{
|
|
||||||
if (sortDesc)
|
|
||||||
qry = qry.OrderByDescending(o => o.activity?.subject);
|
|
||||||
else
|
|
||||||
qry = qry.OrderBy(o => o.activity?.subject);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
qry = qry.OrderByDescending(o => o.reg_time);
|
qry = qry.OrderByDescending(o => o.reg_time);
|
||||||
|
|
||||||
var count = qry.Count(); //pageSize = count;//一次取回??
|
var count = qry.Count(); //pageSize = count;//一次取回??
|
||||||
@@ -125,7 +45,11 @@ public class orderdetailController:ApiController
|
|||||||
up_time = x.up_time,
|
up_time = x.up_time,
|
||||||
keyin1_txt = Model.pro_order.keyin1_value_to_text(x.keyin1),
|
keyin1_txt = Model.pro_order.keyin1_value_to_text(x.keyin1),
|
||||||
//detail = x.pro_order_detail.Where(u => u.printed_files != null)
|
//detail = x.pro_order_detail.Where(u => u.printed_files != null)
|
||||||
detail = new { count = x.pro_order_detail.Where(u => u.actItem.act_bom.Count() == 0).Count(),
|
detail = new { count = x.pro_order_detail
|
||||||
|
.Where(u => (u.parent_num != null)
|
||||||
|
|| u.actItem.subject.Contains("牌")
|
||||||
|
|| !string.IsNullOrEmpty(u.f_num_tablet))
|
||||||
|
.Count(),
|
||||||
actItem = x.pro_order_detail.Where(u => u.printed_files != null).FirstOrDefault()?.print_id }
|
actItem = x.pro_order_detail.Where(u => u.printed_files != null).FirstOrDefault()?.print_id }
|
||||||
}),
|
}),
|
||||||
count = count
|
count = count
|
||||||
|
|||||||
@@ -386,7 +386,7 @@ public class regionRoomBedController : ApiController
|
|||||||
// 新增每日排程
|
// 新增每日排程
|
||||||
if (allocationEnd.HasValue)
|
if (allocationEnd.HasValue)
|
||||||
{
|
{
|
||||||
for (var date = allocationStart; date <= allocationEnd.Value; date = date.AddDays(1))
|
for (var date = allocationStart; date < allocationEnd.Value; date = date.AddDays(1))
|
||||||
{
|
{
|
||||||
var newSchedule = new RegionAndRoomAndBedSchedule
|
var newSchedule = new RegionAndRoomAndBedSchedule
|
||||||
{
|
{
|
||||||
@@ -398,7 +398,8 @@ public class regionRoomBedController : ApiController
|
|||||||
CreatedBy = "系统自动分配",
|
CreatedBy = "系统自动分配",
|
||||||
CreatedAt = DateTime.Now,
|
CreatedAt = DateTime.Now,
|
||||||
GuaDanOrderNo = guest.GuaDanOrderNo,
|
GuaDanOrderNo = guest.GuaDanOrderNo,
|
||||||
Title = "掛單"
|
Title = "掛單",
|
||||||
|
GuaDanOrderGuestUuid = guest.Uuid,
|
||||||
};
|
};
|
||||||
_db.RegionAndRoomAndBedSchedule.Add(newSchedule);
|
_db.RegionAndRoomAndBedSchedule.Add(newSchedule);
|
||||||
}
|
}
|
||||||
@@ -416,7 +417,8 @@ public class regionRoomBedController : ApiController
|
|||||||
CreatedBy = "系统自动分配",
|
CreatedBy = "系统自动分配",
|
||||||
CreatedAt = DateTime.Now,
|
CreatedAt = DateTime.Now,
|
||||||
GuaDanOrderNo = guest.GuaDanOrderNo,
|
GuaDanOrderNo = guest.GuaDanOrderNo,
|
||||||
Title = "掛單"
|
Title = "掛單",
|
||||||
|
GuaDanOrderGuestUuid = guest.Uuid,
|
||||||
};
|
};
|
||||||
_db.RegionAndRoomAndBedSchedule.Add(newSchedule);
|
_db.RegionAndRoomAndBedSchedule.Add(newSchedule);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -142,13 +142,15 @@
|
|||||||
</template>
|
</template>
|
||||||
<template #item.todaytotalbookers="{item}">
|
<template #item.todaytotalbookers="{item}">
|
||||||
<span>
|
<span>
|
||||||
{{item?.todaytotalbookers + '(男' + '女)'}}
|
{{item?.todaytotalbookers + '(男: ' + item.bookmale + ', 女:' + item.bookfemale + ')'}}
|
||||||
</span>
|
</span>
|
||||||
|
<button type="button" class="btn btn-outline-primary" @click="showBookDialog(item, '已預約','booking')">查看預約人</button>
|
||||||
</template>
|
</template>
|
||||||
<template #item.checkin="{item}">
|
<template #item.checkin="{item}">
|
||||||
<span>
|
<span>
|
||||||
{{item?.checkin + '(男' + '女)'}}
|
{{item?.checkin + '(男: ' + item.checkinmale + ', 女:' + item.checkinfemale + ')'}}
|
||||||
</span>
|
</span>
|
||||||
|
<button type="button" class="btn btn-outline-primary" @click="showBookDialog(item, '已入住', 'checkin')">查看入住人</button>
|
||||||
</template>
|
</template>
|
||||||
<template #item.bedusagerate="{ item }">
|
<template #item.bedusagerate="{ item }">
|
||||||
{{ ((item.todaytotalbookers / bedcount) * 100).toFixed(2) + '%' }}
|
{{ ((item.todaytotalbookers / bedcount) * 100).toFixed(2) + '%' }}
|
||||||
@@ -161,6 +163,38 @@
|
|||||||
</template>
|
</template>
|
||||||
</v-data-table>
|
</v-data-table>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<v-dialog v-model="bookerDialog.show" max-width="500">
|
||||||
|
<v-card
|
||||||
|
style="width: 40vw; height: 50vh; display: flex; flex-direction: column;"
|
||||||
|
>
|
||||||
|
<!-- 标题 -->
|
||||||
|
<v-card-title class="text-h5" style="flex: 0 0 auto; background-color: #1976D2; color: white; padding: 16px;">
|
||||||
|
{{ bookerDialog.title }}
|
||||||
|
</v-card-title>
|
||||||
|
|
||||||
|
<!-- 内容撑满 -->
|
||||||
|
<v-card-text
|
||||||
|
style="flex: 1; overflow-y: auto;"
|
||||||
|
>
|
||||||
|
<v-data-table
|
||||||
|
:items="bookerDialog.items"
|
||||||
|
:headers="bookerDialog.headers">
|
||||||
|
|
||||||
|
</v-data-table>
|
||||||
|
</v-card-text>
|
||||||
|
|
||||||
|
<!-- 底部按钮 -->
|
||||||
|
<v-card-actions>
|
||||||
|
<v-spacer></v-spacer>
|
||||||
|
<v-btn text @click="closeBookDialog">關閉</v-btn>
|
||||||
|
</v-card-actions>
|
||||||
|
</v-card>
|
||||||
|
</v-dialog>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</asp:Content>
|
</asp:Content>
|
||||||
|
|
||||||
<asp:Content ID="Content4" ContentPlaceHolderID="offCanvasRight" Runat="Server">
|
<asp:Content ID="Content4" ContentPlaceHolderID="offCanvasRight" Runat="Server">
|
||||||
@@ -201,12 +235,60 @@
|
|||||||
guadanPeopleCurrentMale: 0,
|
guadanPeopleCurrentMale: 0,
|
||||||
guadanPeopleCurrentFemale: 0
|
guadanPeopleCurrentFemale: 0
|
||||||
},
|
},
|
||||||
|
bookerDialog: {
|
||||||
|
title: "",
|
||||||
|
show: false,
|
||||||
|
items: [],
|
||||||
|
headers: [
|
||||||
|
{ text: '姓名', value: 'name' },
|
||||||
|
{ text: "性别", value: 'gender'}
|
||||||
|
]
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
|
showBookDialog(item, title, type = null) {
|
||||||
|
this.bookerDialog.title = title;
|
||||||
|
this.bookerDialog.show = true;
|
||||||
|
if (type === 'booking') {
|
||||||
|
this.getBookerDialogBookingItems(item.date);
|
||||||
|
}
|
||||||
|
else if (type === 'checkin') {
|
||||||
|
this.getBookerDialogCheckInItems(item.date);
|
||||||
|
}
|
||||||
|
},
|
||||||
|
closeBookDialog() {
|
||||||
|
this.bookerDialog.show = false;
|
||||||
|
this.bookerDialog.title = "";
|
||||||
|
this.bookerDialog.items = [];
|
||||||
|
},
|
||||||
|
async getBookerDialogBookingItems(date) {
|
||||||
|
try {
|
||||||
|
const res = await axios.get(HTTP_HOST + 'api/guadan/guest/booking/list', {
|
||||||
|
params: {
|
||||||
|
date: date
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.bookerDialog.items = res.data;
|
||||||
|
} catch(error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
|
async getBookerDialogCheckInItems(date) {
|
||||||
|
try {
|
||||||
|
const res = await axios.get(HTTP_HOST + 'api/guadan/guest/checkin/list', {
|
||||||
|
params: {
|
||||||
|
date: date
|
||||||
|
}
|
||||||
|
});
|
||||||
|
this.bookerDialog.items = res.data;
|
||||||
|
} catch (error) {
|
||||||
|
|
||||||
|
}
|
||||||
|
},
|
||||||
async getList() {
|
async getList() {
|
||||||
try {
|
try {
|
||||||
const res = await axios.get('/api/guadan/guadanstatisticstable/list', {
|
const res = await axios.get(HTTP_HOST + 'api/guadan/guadanstatisticstable/list', {
|
||||||
params: {
|
params: {
|
||||||
start: this.startDate || '',
|
start: this.startDate || '',
|
||||||
end: this.endDate || ''
|
end: this.endDate || ''
|
||||||
|
|||||||
@@ -19,53 +19,24 @@ public partial class admin_printpw_index : MyWeb.function
|
|||||||
private string previousOrderno = "";
|
private string previousOrderno = "";
|
||||||
protected void Page_Load(object sender, EventArgs e)
|
protected void Page_Load(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
//Response.Write("item:"+Request["item"]+"<br>");
|
|
||||||
//Response.Write("file:"+Request["file"]+"<br>");
|
|
||||||
//Response.Write("list:"+Request["list"]+"<br>");
|
|
||||||
//if (!IsPostBack)
|
|
||||||
//{
|
|
||||||
this.Title = "預覽牌位";
|
this.Title = "預覽牌位";
|
||||||
if (Request.HttpMethod == "POST")
|
if (Request.HttpMethod == "POST")
|
||||||
{
|
{
|
||||||
/*if (!String.IsNullOrEmpty(Request["item"]) &&
|
|
||||||
!String.IsNullOrEmpty(Request["file"]) &&
|
|
||||||
!String.IsNullOrEmpty(Request["list"])
|
|
||||||
)*/
|
|
||||||
if (!String.IsNullOrEmpty(Request["order_no"]))
|
if (!String.IsNullOrEmpty(Request["order_no"]))
|
||||||
{
|
{
|
||||||
var order_no = Request["order_no"];
|
var order_no = Request["order_no"];
|
||||||
var oderList = _db.pro_order_detail
|
var oderList = _db.pro_order_detail
|
||||||
.Where(u => u.order_no == order_no && u.printed_files != null)
|
.Where(u => u.order_no == order_no)
|
||||||
|
.Where(u => (u.parent_num != null)
|
||||||
|
|| u.actItem.subject.Contains("牌")
|
||||||
|
|| !string.IsNullOrEmpty(u.f_num_tablet))
|
||||||
|
//因為目前在[pro_order_detail]表中,沒有辦法區分那些項目是牌位,
|
||||||
|
//只有根據某些欄位來做部分篩選,可能會篩選錯
|
||||||
|
//但是為什麼沒有欄位可以區分一個項目是不是牌位呢?
|
||||||
.Select(u => new { detail_num = u.num, actItem_num = u.actItem_num }).ToArray();
|
.Select(u => new { detail_num = u.num, actItem_num = u.actItem_num }).ToArray();
|
||||||
Repeater1.DataSource = oderList;
|
Repeater1.DataSource = oderList;
|
||||||
Repeater1.DataBind();
|
Repeater1.DataBind();
|
||||||
}
|
}
|
||||||
else if (!String.IsNullOrEmpty(Request["activity_num"]))
|
|
||||||
{
|
|
||||||
//var _details = Newtonsoft.Json.JsonConvert.DeserializeObject<int[]>(Request["list"]);
|
|
||||||
//string json = "";
|
|
||||||
//using (System.IO.StreamReader oSR = new System.IO.StreamReader(Request.InputStream))
|
|
||||||
// json = oSR.ReadToEnd();
|
|
||||||
int activity_num = Convert.ToInt32(Request["activity_num"]);
|
|
||||||
//Repeater1.DataSource = _details;
|
|
||||||
var orderList = _db.pro_order.Where(u => u.activity_num == activity_num).Select(u => u.order_no).ToList();
|
|
||||||
var gdzOrderList = _db.pro_order_detail.Where(u => orderList.Contains(u.order_no) && u.print_id.Contains("主") ).Select(u=>u.order_no).Distinct().ToArray();
|
|
||||||
var datalist = _db.pro_order_detail
|
|
||||||
.Where(u => gdzOrderList.Contains(u.order_no) && u.print_id.Contains("主") && u.parent_num != null && u.printed_files != null)
|
|
||||||
.OrderBy(o => o.order_no)
|
|
||||||
.ThenBy(o => o.actItem_num)
|
|
||||||
.ThenBy(o=>o.print_id)
|
|
||||||
.Select(u => new {detail_num=u.num ,actItem_num=u.actItem_num})
|
|
||||||
.ToArray();
|
|
||||||
//List<int> ints = new List<int>();
|
|
||||||
//ints.Add(12133);
|
|
||||||
Repeater1.DataSource = datalist;
|
|
||||||
Repeater1.DataBind();
|
|
||||||
if (!String.IsNullOrEmpty(Request["title"]))
|
|
||||||
{
|
|
||||||
this.Title += " - " + Request["title"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Response.Clear();
|
Response.Clear();
|
||||||
@@ -74,9 +45,6 @@ public partial class admin_printpw_index : MyWeb.function
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
protected void Repeater1_ItemDataBound(object sender, RepeaterItemEventArgs e)
|
||||||
@@ -248,8 +216,8 @@ public partial class admin_printpw_index : MyWeb.function
|
|||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
var msg = ex.Message;
|
var msg = ex.Message;
|
||||||
ret[0] = "??:" + msg;
|
ret[0] = "";
|
||||||
ret[1] = "??";
|
ret[1] = "";
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,8 @@
|
|||||||
@page a4l {
|
@page a4l {
|
||||||
size: a4 landscape;
|
size: a4 landscape;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
|
margin-top:6mm;
|
||||||
|
margin-left:6mm;
|
||||||
}
|
}
|
||||||
|
|
||||||
@page a5 {
|
@page a5 {
|
||||||
@@ -133,6 +135,22 @@ pre {
|
|||||||
line-height: calc(var(--fs_w) * 1.0);
|
line-height: calc(var(--fs_w) * 1.0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.text-block.fit-text.add-space {
|
||||||
|
letter-spacing: 0.5em;
|
||||||
|
}
|
||||||
|
.text-block.fit-text.mid_text.add-space {
|
||||||
|
padding-top: 0.5em;
|
||||||
|
}
|
||||||
|
.text-block.fit-text.mid_text.add-space.add-space-3 {
|
||||||
|
letter-spacing: 1.5em;
|
||||||
|
padding-top: 1.5em;
|
||||||
|
}
|
||||||
|
body.tblt-m .left_text {
|
||||||
|
--font-max: 30pt;
|
||||||
|
}
|
||||||
|
body.tblt-m .top_text_2 {
|
||||||
|
right: 8mm;
|
||||||
|
}
|
||||||
.vertical {
|
.vertical {
|
||||||
writing-mode: vertical-rl;
|
writing-mode: vertical-rl;
|
||||||
/*text-orientation: upright;*/
|
/*text-orientation: upright;*/
|
||||||
@@ -367,6 +385,10 @@ pre {
|
|||||||
left: 2mm;
|
left: 2mm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.top_text_3 {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
/*舊式紙張*/
|
/*舊式紙張*/
|
||||||
body.tablet-l {
|
body.tablet-l {
|
||||||
--page-w: 274mm;
|
--page-w: 274mm;
|
||||||
@@ -548,6 +570,9 @@ body.tblt-l.a3.l2b .mid_text {
|
|||||||
--divh: 60mm;
|
--divh: 60mm;
|
||||||
top: 40%;
|
top: 40%;
|
||||||
}
|
}
|
||||||
|
body.tblt-l.a3 .left_text {
|
||||||
|
--font-max: 36pt;
|
||||||
|
}
|
||||||
|
|
||||||
body.tblt-l.a3.l2b .mid_text_2 {
|
body.tblt-l.a3.l2b .mid_text_2 {
|
||||||
--divh: 180mm;
|
--divh: 180mm;
|
||||||
@@ -638,7 +663,8 @@ body.tblt-m.a4-mrg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body.tblt-m.a4-mrg .page {
|
body.tblt-m.a4-mrg .page {
|
||||||
--page-w: 100mm;
|
--page-w: 95mm;
|
||||||
|
margin-left:5mm;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -763,9 +789,8 @@ body.tblt-xs {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body.tblt-xs.a3-mrg .page {
|
body.tblt-xs.a3-mrg .page {
|
||||||
/*--page-w: 57mm;*/
|
--page-w: 57mm;
|
||||||
--page-w: 59mm;
|
--page-h: 98mm;
|
||||||
--page-h: 100mm;
|
|
||||||
page-break-after: auto;
|
page-break-after: auto;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
@@ -775,13 +800,11 @@ body.tblt-xs.a4l-mrg {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body.tblt-xs.a4l-mrg .page {
|
body.tblt-xs.a4l-mrg .page {
|
||||||
/* --page-w: 57mm; */
|
--page-w: 57mm;
|
||||||
--page-w: 59mm;
|
--page-h: 98mm;
|
||||||
--page-h: 100mm;
|
|
||||||
page-break-after: auto;
|
page-break-after: auto;
|
||||||
float: left;
|
float: left;
|
||||||
}
|
}
|
||||||
|
|
||||||
body.tblt-xs .top_text_1 {
|
body.tblt-xs .top_text_1 {
|
||||||
font-size: 8pt;
|
font-size: 8pt;
|
||||||
}
|
}
|
||||||
@@ -800,9 +823,9 @@ body.tblt-xs .mid_text_2 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
body.tblt-xs .right_text {
|
body.tblt-xs .right_text {
|
||||||
--divw: 12mm;
|
--divw: 10mm;
|
||||||
--divh: 60mm;
|
--divh: 60mm;
|
||||||
right: 0mm;
|
right: 2mm;
|
||||||
top: 25mm;
|
top: 25mm;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -825,8 +848,7 @@ body.tblt-xs .top_text_2{
|
|||||||
/*[標準X2B]隨喜牌位-佛力超薦-往生蓮位-A3(直)*/
|
/*[標準X2B]隨喜牌位-佛力超薦-往生蓮位-A3(直)*/
|
||||||
right: 2mm;
|
right: 2mm;
|
||||||
right: 3.0mm;
|
right: 3.0mm;
|
||||||
right: 3.5mm;
|
right: 5mm;
|
||||||
/* right: 4.0mm; */
|
|
||||||
}
|
}
|
||||||
|
|
||||||
body.tblt-xs .txt_up {
|
body.tblt-xs .txt_up {
|
||||||
@@ -1076,34 +1098,3 @@ body.prayer-h pre {
|
|||||||
* {
|
* {
|
||||||
outline:0 none !important;
|
outline:0 none !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*让自定义的分页生效,在某个div后面产生class-page从而分页,当牌位不是同一家人的时候就分页*/
|
|
||||||
@media print {
|
|
||||||
.page-break {
|
|
||||||
display: block !important;
|
|
||||||
width: 100%;
|
|
||||||
height: 1px;
|
|
||||||
visibility: hidden;
|
|
||||||
page-break-after: always;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page {
|
|
||||||
page-break-inside: auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
@page {
|
|
||||||
orphans: 1;
|
|
||||||
widows: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.d-flex {
|
|
||||||
display: block !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-break::after {
|
|
||||||
content: "";
|
|
||||||
display: block;
|
|
||||||
height: 1px;
|
|
||||||
visibility: hidden;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -32,17 +32,25 @@ function init_print() {
|
|||||||
//console.log(i, $(this).html(),$(this).text());
|
//console.log(i, $(this).html(),$(this).text());
|
||||||
//console.log(i, txt==htm);
|
//console.log(i, txt==htm);
|
||||||
//console.log(i, txt_arr, line, line_len);
|
//console.log(i, txt_arr, line, line_len);
|
||||||
line_len = Math.ceil(line_len / 5) * 5;
|
line_len = Math.ceil(line_len / 3) * 3;
|
||||||
//if(line>1){
|
//if(line>1){
|
||||||
css = $(this).attr("style")||"";
|
css = $(this).attr("style")||"";
|
||||||
if(css.length>0){
|
if(css.length>0){
|
||||||
css += ";";
|
css += ";";
|
||||||
}
|
}
|
||||||
css += "--lines:" + line + ";--line_len:" + line_len + ";";
|
css += "--lines:" + line + ";--line_len:" + line_len + ";";
|
||||||
//debugger;
|
|
||||||
|
//字少時, 加空間
|
||||||
|
let allShort = txt_arr2.every(line => line.trim().length <= 7);
|
||||||
|
let addSpaceClass = allShort ? "add-space" : "";
|
||||||
|
allShort = txt_arr2.every(line => line.trim().length <= 3);
|
||||||
|
addSpaceClass += allShort ? " add-space-3" : "";
|
||||||
|
|
||||||
htm_lines = txt_arr2.join("<br>");
|
htm_lines = txt_arr2.join("<br>");
|
||||||
$(this).attr("style", css);
|
$(this)
|
||||||
$(this).html(htm_lines);
|
.attr("style", css)
|
||||||
|
.addClass(addSpaceClass)
|
||||||
|
.html(htm_lines);
|
||||||
//}
|
//}
|
||||||
//console.log(i, line, line_len, css,txt);
|
//console.log(i, line, line_len, css,txt);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -153,6 +153,9 @@
|
|||||||
<template #item.slot_type ="{item}">
|
<template #item.slot_type ="{item}">
|
||||||
{{item.detail.actItem?.substring(0,3)}}
|
{{item.detail.actItem?.substring(0,3)}}
|
||||||
</template>
|
</template>
|
||||||
|
<template #item.up_time ="{item}">
|
||||||
|
{{item.up_time|timeString('YYYY-MM-DD')}}
|
||||||
|
</template>
|
||||||
<template #item.print="{item}">
|
<template #item.print="{item}">
|
||||||
<v-icon color="blue" class="mr-2" @click="yulan_single(item);" >
|
<v-icon color="blue" class="mr-2" @click="yulan_single(item);" >
|
||||||
mdi-printer
|
mdi-printer
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
|
<asp:Content ID="Content3" ContentPlaceHolderID="ContentPlaceHolder1" Runat="Server">
|
||||||
<div v-if="currentActivityNum">
|
<div v-if="currentActivityNum">
|
||||||
<div><h2 style="text-align:center">消災疏文</h2></div>
|
<div><h2 style="text-align:center">消災疏文</h2></div>
|
||||||
<div v-for="item in ShuWenJson.xiaozai" :key="Object.keys(item)[0]">
|
<div v-for="(item, index) in ShuWenJson?.xiaozai" :key="Object.keys(item)[0] + 'xz' + index">
|
||||||
<h4>報名信眾:{{ item[Object.keys(item)[0]].user.name }}</h4>
|
<h4>報名信眾:{{ item[Object.keys(item)[0]].user.name }}</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>{{ item[Object.keys(item)[0]]['biaoti'].join(' ') }}</li>
|
<li>{{ item[Object.keys(item)[0]]['biaoti'].join(' ') }}</li>
|
||||||
@@ -32,7 +32,7 @@
|
|||||||
<hr />
|
<hr />
|
||||||
</div>
|
</div>
|
||||||
<div><h2 style="text-align:center">超薦疏文</h2></div>
|
<div><h2 style="text-align:center">超薦疏文</h2></div>
|
||||||
<div v-for="item in ShuWenJson.chaodu" :key="Object.keys(item)[0]">
|
<div v-for="(item, index) in ShuWenJson?.chaodu" :key="Object.keys(item)[0] + 'cj' + index">
|
||||||
<h4>報名信眾:{{ item[Object.keys(item)[0]].user.name }}</h4>
|
<h4>報名信眾:{{ item[Object.keys(item)[0]].user.name }}</h4>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li>
|
||||||
@@ -113,7 +113,10 @@
|
|||||||
this.ShuWenJson = {}
|
this.ShuWenJson = {}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
this.ShuWenJson = JSON.parse(this.ShuWenItem.shuWenList)
|
this.ShuWenJson = this.ShuWenItem?.shuWenList
|
||||||
|
? JSON.parse(this.ShuWenItem.shuWenList)
|
||||||
|
: { xiaozai: [], chaodu: [] }; // 默认空对象
|
||||||
|
|
||||||
})
|
})
|
||||||
.catch(err => {
|
.catch(err => {
|
||||||
if (err.response && err.response.status === 400) {
|
if (err.response && err.response.status === 400) {
|
||||||
|
|||||||
Reference in New Issue
Block a user