STAGE 3-4

This commit is contained in:
2025-11-12 18:57:51 +08:00
parent 744eddcd77
commit ae09a6f487
17 changed files with 80 additions and 35 deletions

View File

@@ -16,6 +16,8 @@ public class FilesSetController : ApiController
{
private Model.ezEntities _db = new Model.ezEntities();
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有文件到內存(可能數百筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.file> Get()
{
var list = _db.files.ToList();

View File

@@ -19,6 +19,8 @@ public class FollowerController : ApiController
{
private Model.ezEntities _db = new Model.ezEntities();
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有信眾到內存(可能數千筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.follower> Get()
{
var list = _db.followers.ToList();

View File

@@ -17,6 +17,8 @@ using static TreeView;
public class accountingController : BaseApiController
{
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有會計資料到內存(可能數千筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.accounting> Get()
{
var list = _db.accountings.ToList();

View File

@@ -224,7 +224,7 @@ public class activityController : ApiController
public IHttpActionResult GetList([FromBody] Model.ViewModel.activity q, int page, int pageSize = 10,
string sortBy = "", bool sortDesc = false)
{
var qry = _db.activities.AsEnumerable();
var qry = _db.activities.AsQueryable();
if (!string.IsNullOrEmpty(q.subject))
qry = qry.Where(o => o.subject.Contains(q.subject));
if (q.kind.HasValue && q.kind > 0)
@@ -348,7 +348,7 @@ public class activityController : ApiController
////var qry = _db.actItems.Where(a => a.IsDel == false).AsEnumerable();////不確定是否新增欄位? 先註解
var qry = _db.actItems.AsEnumerable();
var qry = _db.actItems.AsQueryable();
if (!string.IsNullOrEmpty(q.subject))
qry = qry.Where(o => o.subject.Contains(q.subject.Trim()));
@@ -1326,7 +1326,7 @@ public class activityController : ApiController
string sortBy = "", bool sortDesc = false)
{
var qry = _db.activity_check.AsEnumerable();
var qry = _db.activity_check.AsQueryable();
if (!string.IsNullOrEmpty(q.activityTxt))
qry = qry.Where(o => o.activity.subject.Contains(q.activityTxt.Trim()));

View File

@@ -12,6 +12,8 @@ using System.Collections;
public class bedController : BaseApiController
{
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有掛單到內存(可能數千筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.bed_order> Get()
{
var list = _db.bed_order.ToList();

View File

@@ -13,6 +13,8 @@ using static TreeView;
public class memberController : BaseApiController
{
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有會員到內存(可能數百筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.member> Get()
{
var list = _db.members.ToList();

View File

@@ -14,6 +14,8 @@ using DocumentFormat.OpenXml.Office2010.Excel;
public class newsController : BaseApiController
{
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有消息到內存(可能數百筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.news> Get()
{
var list = _db.news.ToList();

View File

@@ -21,6 +21,9 @@ public class orderController : ApiController
{
private Model.ezEntities _db = new Model.ezEntities();
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有訂單到內存(可能數千筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
// 或改為return _db.pro_order.AsQueryable(); 讓客戶端決定如何處理
public IEnumerable<Model.pro_order> Get()
{
var list = _db.pro_order.ToList();
@@ -57,17 +60,17 @@ public class orderController : ApiController
// DELETE api/<controller>/5
public void Delete(string id)
{
var prod = _db.pro_order.AsEnumerable().Where(q => q.order_no == id).FirstOrDefault(); //刪除該筆資料
var prod = _db.pro_order.Where(q => q.order_no == id).FirstOrDefault(); //刪除該筆資料
if (prod != null)
{
//刪除掛單表單
var prod3 = _db.bed_order.AsEnumerable().Where(q => q.order_no == id).ToList();
var prod3 = _db.bed_order.Where(q => q.order_no == id).ToList();
if (prod3.Count > 0)
{
//刪除掛單明細
foreach (var item3 in prod3)
{
var prod4 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_order_no == item3.bed_order_no).ToList();
var prod4 = _db.bed_order_detail.Where(q => q.bed_order_no == item3.bed_order_no).ToList();
if (prod4.Count > 0)
{
_db.bed_order_detail.RemoveRange(prod4); //查詢結果全部刪除
@@ -103,13 +106,13 @@ public class orderController : ApiController
if (prod != null)
{
//刪除掛單表單
var prod3 = _db.bed_order.AsEnumerable().Where(q => q.order_no == prod.order_no).ToList();
var prod3 = _db.bed_order.Where(q => q.order_no == prod.order_no).ToList();
if (prod3.Count > 0) //count = 1
{
//刪除掛單明細
foreach (var item3 in prod3)
{
var prod4 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_order_no == item3.bed_order_no).ToList();
var prod4 = _db.bed_order_detail.Where(q => q.bed_order_no == item3.bed_order_no).ToList();
if (prod4.Count > 0)
{
_db.bed_order_detail.RemoveRange(prod4); //查詢結果全部刪除
@@ -137,17 +140,17 @@ public class orderController : ApiController
var prod = _db.pro_order.Where(q => ids.Contains(q.order_no)).ToList();
if (prod.Count() > 0)
{
var prod2 = _db.pro_order_detail.AsEnumerable().Where(q => ids.Contains(Convert.ToString(q.order_no))).ToList();
var prod2 = _db.pro_order_detail.Where(q => ids.Contains(Convert.ToString(q.order_no))).ToList();
if (prod2.Count > 0)
{
foreach (var item2 in prod2)
{
var prod3 = _db.bed_order.AsEnumerable().Where(q => q.order_no == item2.order_no && q.o_detail_id == item2.num).ToList();
var prod3 = _db.bed_order.Where(q => q.order_no == item2.order_no && q.o_detail_id == item2.num).ToList();
if (prod3.Count > 0)
{
foreach (var item3 in prod3)
{
var prod4 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_order_no == item3.bed_order_no).ToList();
var prod4 = _db.bed_order_detail.Where(q => q.bed_order_no == item3.bed_order_no).ToList();
if (prod4.Count > 0)
{
_db.bed_order_detail.RemoveRange(prod4);
@@ -327,7 +330,7 @@ public class orderController : ApiController
{
int activity = prod.activity_num.HasValue ? prod.activity_num.Value : 0; //活動
var bedDt = _db.bed_order_detail.AsEnumerable().Where(b => b.bed_order.order_no == order_no); ;//掛單明細
var bedDt = _db.bed_order_detail.Where(b => b.bed_order.order_no == order_no); ;//掛單明細
//var qry1 = _db.pro_order_detail.AsEnumerable();
@@ -1080,7 +1083,7 @@ public class orderController : ApiController
if (detail_num > 0)
{
//檢查
var prod = _db.pro_order_record.AsEnumerable().Where(o => o.detail_num == detail_num)
var prod = _db.pro_order_record.Where(o => o.detail_num == detail_num)
.OrderByDescending(o => o.pay_date).ToList();
int i = 1;
@@ -1134,8 +1137,8 @@ public class orderController : ApiController
{
if (item.detail_num > 0)
{
float total = _db.pro_order_detail.AsEnumerable().Where(x => x.num == item.detail_num).Select(x => x.price.Value * x.qty.Value).Sum();
float pay = _db.pro_order_record.AsEnumerable().Where(x => x.detail_num == item.detail_num).Select(x => x.price.Value).Sum();
float total = _db.pro_order_detail.Where(x => x.num == item.detail_num).Select(x => x.price.Value * x.qty.Value).Sum();
float pay = _db.pro_order_record.Where(x => x.detail_num == item.detail_num).Select(x => x.price.Value).Sum();
if (pay + item.price.Value <= total)
{

View File

@@ -13,6 +13,8 @@ using static TreeView;
public class projectController : BaseApiController
{
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有專案到內存(可能數百筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.project> Get()
{
var list = _db.projects.ToList();

View File

@@ -19,6 +19,8 @@ using DocumentFormat.OpenXml.Office2010.Excel;
public class stockController : BaseApiController
{
// GET api/<controller>
// TODO: CRITICAL - 無參數 Get() 會載入所有庫存到內存(可能數千筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.stock> Get()
{
var list = _db.stocks.ToList();

View File

@@ -15,6 +15,8 @@ using iTextSharp.text.pdf.qrcode;
public class supplierController : BaseApiController
{
// GET api/<controller>
// TODO: REVIEW - 無參數 Get() 會載入所有供應商到內存
// 若供應商數量少(<100可接受若會成長建議停用此方法
public IEnumerable<Model.supplier> Get()
{
var list = _db.suppliers.ToList();

View File

@@ -17,6 +17,8 @@ public class transfer_registerController : ApiController
private Model.ezEntities _db = new Model.ezEntities();
// GET api/transfer_register
// TODO: CRITICAL - 無參數 Get() 會載入所有登記到內存(可能數千筆)
// 建議:停用此方法,強制使用分頁版本 Get(page, pageSize)
public IEnumerable<Model.transfer_register> Get()
{
var list = _db.transfer_register.ToList();