modify
This commit is contained in:
@@ -2,16 +2,20 @@
|
||||
using MINOM.COM.Utility;
|
||||
using Model;
|
||||
using Newtonsoft.Json;
|
||||
using OfficeOpenXml;
|
||||
using Org.BouncyCastle.Crypto;
|
||||
using Org.BouncyCastle.Crypto.Tls;
|
||||
using PagedList;
|
||||
using System;
|
||||
using System.Collections;
|
||||
using System.Collections.Generic;
|
||||
using System.Data.Entity;
|
||||
using System.Diagnostics;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web;
|
||||
using System.Web.Http;
|
||||
using System.Web.Services;
|
||||
using static TreeView;
|
||||
@@ -2165,4 +2169,78 @@ string sortBy = "", bool sortDesc = false)
|
||||
}
|
||||
}
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/activity/ComparePreAndOrder")]
|
||||
public IHttpActionResult ComparePreAndOrder([FromBody] Model.ViewModel.activity act)
|
||||
{
|
||||
//用活動撈pre_order
|
||||
//檢查pro_order_detail 的數量跟金額與pre_order登記是否相符
|
||||
var qry = _db.pre_order.AsQueryable();
|
||||
qry = qry.Where(x => x.act_num == act.num);
|
||||
var dqry = _db.pro_order_detail.AsQueryable();
|
||||
dqry = dqry.Where(y => _db.pro_order.Where(z => z.activity_num == act.num).Select(z => z.order_no).ToList().Contains(y.order_no));
|
||||
|
||||
var list = qry.Select(x => new
|
||||
{
|
||||
x.num,
|
||||
x.order_no,
|
||||
x.reg_time,
|
||||
x.receipt_num,
|
||||
x.item_count,
|
||||
x.f_num,
|
||||
x.total_amt,
|
||||
x.admin_num,
|
||||
act_name=_db.activities.Where(w=>w.num==act.num).Select(w=>w.subject).FirstOrDefault(),
|
||||
f_name=_db.followers.Where(z=>z.num==x.f_num).Select(z=>z.u_name).FirstOrDefault(),
|
||||
order_amt=dqry.Where(y=>y.order_no==x.order_no).Sum(y=>y.qty*y.price),
|
||||
order_count=dqry.Where(y=> y.order_no == x.order_no&&!y.parent_num.HasValue).ToList().Count(),
|
||||
}).ToList();
|
||||
string rootPath = HttpRuntime.AppDomainAppPath;
|
||||
string name = $"output{DateTime.Now.ToString("yyyyMMddHHmmss")}.xlsx";
|
||||
string fileName = Path.Combine(new string[] { rootPath, "rpt", name });
|
||||
|
||||
var file = new FileInfo($"{fileName}"); // 檔案路徑
|
||||
using (var excel = new ExcelPackage())
|
||||
{
|
||||
LogUtility log = new LogUtility();
|
||||
// 建立分頁
|
||||
var ws = excel.Workbook.Worksheets.Add("MySheet");
|
||||
int i = 0;
|
||||
i++;
|
||||
ws.Cells[i, 1].Value = "序號";
|
||||
ws.Cells[i, 2].Value = "法會名稱";
|
||||
ws.Cells[i, 3].Value = "信眾";
|
||||
ws.Cells[i, 4].Value = "登記數量";
|
||||
ws.Cells[i, 5].Value = "登記金額";
|
||||
ws.Cells[i, 6].Value = "報名數量";
|
||||
ws.Cells[i, 7].Value = "報名金額";
|
||||
ws.Cells[i, 8].Value = "是否相符";
|
||||
i++;
|
||||
foreach (var data in list)
|
||||
{
|
||||
ws.Cells[i, 1].Value = i-1;
|
||||
ws.Cells[i, 2].Value =data.act_name;
|
||||
ws.Cells[i, 3].Value = data.f_name;
|
||||
ws.Cells[i, 4].Value = data.item_count;
|
||||
ws.Cells[i, 5].Value = data.total_amt;
|
||||
ws.Cells[i, 6].Value = data.order_count;
|
||||
ws.Cells[i, 7].Value = data.order_amt;
|
||||
|
||||
if (data.total_amt != data.order_amt || data.item_count != data.order_count)
|
||||
{
|
||||
ws.Cells[i, 8].Value = "否";
|
||||
}
|
||||
else
|
||||
{
|
||||
ws.Cells[i, 8].Value = "是";
|
||||
}
|
||||
}
|
||||
excel.SaveAs(file);
|
||||
}
|
||||
|
||||
return Ok(new { result = "Y", filename = $"rpt/{name}" });
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user