This commit is contained in:
2026-08-06 18:00:04 +08:00
parent b30cc47184
commit e60b172b39
10 changed files with 317 additions and 285 deletions
+76 -2
View File
@@ -7,6 +7,7 @@ using System.Web;
using System.Web.Http;
using MyWeb;
using MINOM.COM.Utility;
using System.Text;
// api/pre_order
//[ezAuthorize(Roles = "admin")]//群組:*
//[ezAuthorize]
@@ -20,6 +21,71 @@ public class preOrderController: ApiController
// TODO: 在這裡新增建構函式邏輯
//
}
[HttpPost]
[Route("api/preOrder/CheckPreVsOrder")]
public IHttpActionResult CheckPreVsOrder([FromBody] Model.ViewModel.preOrder pre)
{
try
{
//用order_no去檢查pre_order登記的總數量跟pro_order_detail數量比較
var order_qry = _db.pro_order_detail.AsQueryable();
order_qry = order_qry.Where(x => x.order_no == pre.order_no);
var order = order_qry.ToList();
var pre_qry = _db.pre_order.AsQueryable();
pre_qry = pre_qry.Where(y => y.order_no == pre.order_no);
var pre_order = pre_qry.FirstOrDefault();
if (order != null && pre_order != null)
{
StringBuilder sb = new StringBuilder();
if (pre_order.total_amt != order.Sum(x => x.price * x.qty))
{
sb.Append("金額與客堂登記不符\n");
}
int order_count = order.Where(x => !x.parent_num.HasValue).ToList().Count;
if (pre_order.item_count != order_count)
{
sb.Append("功德項目數與客堂登記不符\n");
}
if (sb.Length > 0)
{
return Ok(new
{
result = "Y",
message = sb.ToString(),
});
}
else
{
return Ok(new
{
result = "Y",
message = "與客堂登記相符",
});
}
}
else
{
return Ok(new
{
result = "Y",
message = "無客堂登記資料",
});
}
}
catch (Exception ex) {
return Ok(new
{
result="N",
message=ex.Message,
});
}
}
[HttpPost]
[Route("api/preOrder/GetPreOrder")]
@@ -29,10 +95,17 @@ public class preOrderController: ApiController
var qry=_db.pre_order.AsQueryable();
if (!string.IsNullOrEmpty(pre.f_name))
{
qry = qry.Where(x => _db.followers.Where(y => y.u_name == pre.f_name).Select(y => y.num).ToList().Contains((int)x.f_num));
qry = qry.Where(x => _db.followers.Where(y => y.u_name.Contains( pre.f_name)).Select(y => y.num).ToList().Contains((int)x.f_num));
}
if (!string.IsNullOrEmpty(pre.order_no)) {
qry = qry.Where(x => x.order_no.Contains(pre.order_no));
}
if (!string.IsNullOrEmpty(pre.act_name))
{
qry = qry.Where(x => _db.activities.Where(z=>z.subject.Contains(pre.act_name)).Select(z=>z.num).ToList().Contains((int)x.act_num));
}
//sortBy = sortBy ?? string.Empty;
qry=qry.OrderByDescending(x => x.num);
qry =qry.OrderByDescending(x => x.num);
var count = qry.Count(); //pageSize = count;//一次取回??
if (pageSize == -1)
{
@@ -47,6 +120,7 @@ public class preOrderController: ApiController
x.num,x.f_num,x.admin_num,x.order_no,x.item_count,x.total_amt,x.reg_time,x.receipt_num,x.act_num,
f_name=_db.followers.Where(z=>z.num==x.f_num).Select(z=>z.u_name).FirstOrDefault(),
act_name=_db.activities.Where(w=>w.num==x.act_num).Select(w=>w.subject).FirstOrDefault(),
receipt_amt=(_db.receipt_detail.Where(rd=>_db.receipt_master.Where(rm=>rm.order_no==x.order_no).Select(rm=>rm.num).ToList().Contains((int)rd.receipt_num))).Select(rd=>rd.amt).Sum()
}).ToList(),
count = count
};