From d6c817475c84bdb96cf360b10eb6b81664063d99 Mon Sep 17 00:00:00 2001 From: minom Date: Tue, 4 Aug 2026 18:06:23 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=A2=E5=A0=82=E7=99=BB=E8=A8=98=E5=A0=B1?= =?UTF-8?q?=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/App_Code/Model/ViewModel/preOrder.cs | 31 ++++ web/App_Code/api/preOrderController.cs | 101 +++++++++++- web/App_Code/autoNum.cs | 52 ++++++ web/admin/order/pre_order.vue | 85 +++++++++- web/admin/order/pre_order_reg.vue | 196 +++++++++++++++++++---- web/admin/order/reg.aspx | 42 ++++- 6 files changed, 465 insertions(+), 42 deletions(-) create mode 100644 web/App_Code/Model/ViewModel/preOrder.cs create mode 100644 web/App_Code/autoNum.cs diff --git a/web/App_Code/Model/ViewModel/preOrder.cs b/web/App_Code/Model/ViewModel/preOrder.cs new file mode 100644 index 0000000..f938ce7 --- /dev/null +++ b/web/App_Code/Model/ViewModel/preOrder.cs @@ -0,0 +1,31 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +namespace Model.ViewModel +{ + /// + /// preOrder 的摘要描述 + /// + public class preOrder + { + public preOrder() + { + // + // TODO: 在這裡新增建構函式邏輯 + // + } + + public int? num { get; set; } + public Nullable f_num { get; set; } + public string order_no { get; set; } + public Nullable item_count { get; set; } + public Nullable total_amt { get; set; } + public Nullable act_num { get; set; } + public Nullable admin_num { get; set; } + public Nullable reg_time { get; set; } + public Nullable receipt_num { get; set; } + public string f_name { get; set; } + + } +} \ No newline at end of file diff --git a/web/App_Code/api/preOrderController.cs b/web/App_Code/api/preOrderController.cs index 13a89a4..90668d7 100644 --- a/web/App_Code/api/preOrderController.cs +++ b/web/App_Code/api/preOrderController.cs @@ -5,7 +5,8 @@ using System.Linq; using System.Net; using System.Web; using System.Web.Http; - +using MyWeb; +using MINOM.COM.Utility; // api/pre_order //[ezAuthorize(Roles = "admin")]//群組:* //[ezAuthorize] @@ -30,7 +31,8 @@ public class preOrderController: ApiController { qry = qry.Where(x => _db.followers.Where(y => y.u_name == pre.f_name).Select(y => y.num).ToList().Contains((int)x.f_num)); } - sortBy = sortBy ?? string.Empty; + //sortBy = sortBy ?? string.Empty; + qry=qry.OrderByDescending(x => x.num); var count = qry.Count(); //pageSize = count;//一次取回?? if (pageSize == -1) { @@ -52,4 +54,99 @@ public class preOrderController: ApiController return Ok(ret); } + [HttpPost] + [Route("api/preOrder/SavePreOrder")] + public IHttpActionResult SavePreOrder([FromBody] Model.ViewModel.preOrder pre) + { + try + { + //要檢查有無報過名 + var qry1 = _db.pro_order.AsQueryable(); + qry1 = qry1.Where(y=>y.f_num==pre.f_num&&y.activity_num==pre.act_num); + var o=qry1.FirstOrDefault(); + if (o != null && !string.IsNullOrEmpty(o.order_no)) + { + throw new Exception("已經報過名,請勿重複報名"); + } + + var qry = _db.followers.AsQueryable(); + qry = qry.Where(x => x.num == pre.f_num); + var f = qry.FirstOrDefault(); + //寫入pre_order,同時寫入pro_order + pre.order_no = new MyWeb.autoNum().createOrderNumber(); + Model.pre_order preO = new Model.pre_order(); + Model.pro_order proO = new Model.pro_order(); + preO.order_no = pre.order_no; + preO.act_num = pre.act_num; + preO.f_num = pre.f_num; + preO.item_count = pre.item_count; + + preO.total_amt = pre.total_amt; + preO.reg_time = DateTime.Now; + + proO.up_time= DateTime.Now; + proO.reg_time = DateTime.Now; + proO.order_no = preO.order_no; + proO.activity_num = pre.act_num; + proO.f_num = pre.f_num; + proO.keyin1 = "A01"; + proO.phone = f.phone; + proO.address = f.address??""; + proO.demo = ""; + + _db.pre_order.Add(preO); + _db.pro_order.Add(proO); + _db.SaveChanges(); + return Ok(new {result="Y",message="新增成功"}); + } + catch (Exception ex) + { + LogUtility log = new LogUtility(); + log.writeErrorPath(ex.Message+ex.StackTrace); + return Ok(new { result = "N", message = $"新增失敗 {ex.Message}" }); + + } + + + } + + [HttpPost] + [Route("api/preOrder/GetPreOrderByNum")] + + public IHttpActionResult GetPreOrderByNum([FromBody] Model.ViewModel.preOrder pre) + { + var qry = _db.pre_order.AsQueryable(); + + qry = qry.Where(x => x.order_no==pre.order_no); + //sortBy = sortBy ?? string.Empty; + qry = qry.OrderByDescending(x => x.num); + + var ret = new + { + data=qry.Select(x => new + { + 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(), + }).FirstOrDefault() + }; + if (ret.data == null) { + return Ok(new {result="N",message=""}); + } + ; + return Ok(new + { + result = "Y", + ret + }); + + } } \ No newline at end of file diff --git a/web/App_Code/autoNum.cs b/web/App_Code/autoNum.cs new file mode 100644 index 0000000..57d3b68 --- /dev/null +++ b/web/App_Code/autoNum.cs @@ -0,0 +1,52 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; + +namespace MyWeb +{ + /// + /// autoNum 的摘要描述 + /// + public class autoNum + { + private Model.ezEntities _db = new Model.ezEntities(); + public autoNum() + { + // + // TODO: 在這裡新增建構函式邏輯 + // + } + public string createOrderNumber() + { + //Application.Lock(); + string order_no = "AA" + DateTime.Now.ToString("yyMMdd"); + + var qry = _db.companies.AsQueryable(); + //var prod = qry.Where(q => q.last_order_no.Contains(order_no)).FirstOrDefault(); + var prod = qry.Where(q => q.num == 1).FirstOrDefault(); + if (prod != null) + { + if (!string.IsNullOrEmpty(prod.last_order_no) && prod.last_order_no.Contains(order_no)) + { + int tmp = Convert.ToInt32(prod.last_order_no.Replace(order_no, "")) + 1; + order_no = order_no + tmp.ToString("0000"); + } + else + { + order_no = order_no + "0001"; + } + + prod.last_order_no = order_no; + _db.SaveChanges(); + } + else + order_no = ""; + + //Application.UnLock(); + + return order_no; + } + + } +} \ No newline at end of file diff --git a/web/admin/order/pre_order.vue b/web/admin/order/pre_order.vue index 27f2141..b400116 100644 --- a/web/admin/order/pre_order.vue +++ b/web/admin/order/pre_order.vue @@ -10,13 +10,13 @@ :server-items-length="data_table.count" :loading="data_table.loading" :single-select="data_table.singleSelect" - show-select hide-default-footer :page.sync="data_table.page" :items-per-page.sync="data_table.pageSize" class="elevation-1"> @@ -42,16 +42,42 @@ + + + + + \ No newline at end of file + + + \ No newline at end of file diff --git a/web/admin/order/pre_order_reg.vue b/web/admin/order/pre_order_reg.vue index 2fcde44..805dd7a 100644 --- a/web/admin/order/pre_order_reg.vue +++ b/web/admin/order/pre_order_reg.vue @@ -3,7 +3,7 @@ -
客堂報名
+
客堂登錄
儲存 返回 @@ -49,34 +49,78 @@ + + + + + + + + {{ snackbar.text }} + + +
- - - + \ No newline at end of file diff --git a/web/admin/order/reg.aspx b/web/admin/order/reg.aspx index 11ee41a..9d385ea 100644 --- a/web/admin/order/reg.aspx +++ b/web/admin/order/reg.aspx @@ -229,6 +229,7 @@ select(item, t) { } }, search8: { + id: 'search8', id: 'search8', title: '牌位標題:陽上', text_prop: 'title', @@ -394,6 +395,11 @@ customize_data_comb: [], printed_files: '', }, + preOrder: { + order_no: "", + item_count: 0, + total_amt: 0 + }, keyin1_items: [{ //報名狀態 text: "請選擇", val: 0 @@ -601,6 +607,10 @@ this.tablet_edit_new.initialized = true; }; } + + if (this.order_no != "" ) { + this.getPreOrder(); + } }, watch: { options: { @@ -666,6 +676,20 @@ } }, methods: { + + getPreOrder() { + let search = { order_no: this.order_no } + axios + .post(HTTP_HOST + 'api/preOrder/GetPreOrderByNum', search) + .then(response => { + console.log(response) + if (response.data.result === "Y") { + this.preOrder.order_no = response.data.ret.data.order_no; + this.preOrder.item_count = response.data.ret.data.item_count; + this.preOrder.total_amt = response.data.ret.data.total_amt; + } + }); + }, dataDialogClose() { }, @@ -892,7 +916,7 @@ form.appendChild(hiddenField); }; // Add form fields - console.log(item.actitem_num_selected, item.num, JSON.stringify(list)); + //console.log(item.actitem_num_selected, item.num, JSON.stringify(list)); addHiddenField("item", item.actitem_num_selected.val); addHiddenField("file", item.num); addHiddenField("list", JSON.stringify(list)); @@ -913,7 +937,7 @@ this.editedItem = $.extend(true, {}, item); //console.log("editTabletNew:",this.editedItem,item) try { - console.log("editTabletNew:",this.editItem) + //console.log("editTabletNew:",this.editItem) //document.getElementById("tablet_edit_new_iframe").contentWindow.location.reload(); // 如果是新項目,先保存 if (this.editedItem.num <= 0 || this.editedItem.num === null || this.editedItem.num === undefined) { @@ -2051,6 +2075,19 @@
+ +
+
+
+ 客堂登記功德項目數:{{ preOrder.item_count }} +
+
+ 客堂登記總金額:{{ preOrder.total_amt }} +
+
+
+
+
> +