批次報名 統計報表修正

This commit is contained in:
2026-06-03 16:36:52 +08:00
parent 8affaaf344
commit 08d8e27bc9
10 changed files with 449 additions and 56 deletions
+1
View File
@@ -34,6 +34,7 @@ namespace Model.ViewModel
public string is_reconcile { get; set; }
public string up_time1 { get; set; }
public string up_time2 { get; set; }
public string deadline { get; set; }
}
+3
View File
@@ -45,6 +45,9 @@ namespace Model.ViewModel
public follower f_user { get; set; }
public List<string> orders { get; set; }
public Nullable<int> old_activity_num { get; set; }
}
public class pro_order_detail
-33
View File
@@ -1,33 +0,0 @@
using DocumentFormat.OpenXml.Spreadsheet;
using Model.ViewModel;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using NPOI.SS.UserModel;
using NPOI.XSSF.UserModel;
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.IO;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Http;
using System.Web.Http.Results;
/// <summary>
/// StatisticController 的摘要描述
/// </summary>
public class StatisticController : BaseApiController
{
public StatisticController()
{
//
// TODO: 在這裡新增建構函式邏輯
//
}
}
+35
View File
@@ -236,6 +236,41 @@ public class activityController : ApiController
return count;
}
[HttpPost]
[Route("api/activity/CopyActivity")]
public IHttpActionResult CopyActivity([FromBody] Model.ViewModel.activity act)
{
try
{
var activity = _db.activities.Where(x => x.num == act.num).AsNoTracking().FirstOrDefault();
var relations = _db.activity_relating.AsNoTracking().Where(x => x.activity_num == act.num).AsNoTracking().ToList();
activity.num = 0;
activity.subject = act.subject;
activity.startDate_solar = DateTime.Parse(act.up_time1);
activity.endDate_solar = DateTime.Parse(act.up_time2);
activity.dueDate = DateTime.Parse(act.deadline);
_db.activities.Add(activity);
_db.SaveChanges();
foreach (var item in relations)
{
item.num = 0;
item.activity_num = activity.num;
item.reg_time = DateTime.Now;
_db.activity_relating.Add(item);
}
_db.SaveChanges();
return Ok(new { result = "Y", message =$"完成 {activity.num} " });
}
catch (Exception ex)
{
return Ok(new {result="N",message=ex.Message});
// throw;
}
}
[HttpPost]
[Route("api/activity/GetListNew")]
public IHttpActionResult GetListNew([FromBody] Model.ViewModel.activity q, int page, int pageSize = 10,
+92
View File
@@ -9,11 +9,13 @@ using System;
using System.Activities.Expressions;
using System.Collections;
using System.Collections.Generic;
using System.Data.Entity;
using System.Diagnostics;
using System.IdentityModel.Metadata;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Text;
using System.Web.Helpers;
using System.Web.Http;
using static TreeView;
@@ -206,6 +208,90 @@ public class orderController : ApiController
return count;
}
[HttpPost]
[Route("api/order/BatchSave")]
public IHttpActionResult BatchSave([FromBody] Model.ViewModel.pro_order po)
{
try
{
var query = _db.pro_order.AsNoTracking().Where(x => x.activity_num == po.old_activity_num).AsQueryable();
query = query.Include(x => x.pro_order_detail).AsNoTracking();
query = query.Where(x => po.orders.Contains(x.order_no));
var list = query.ToList();
List<Model.pro_order> orders = new List<Model.pro_order>();
List<Model.pro_order_detail> order_details = new List<pro_order_detail>();
var act=_db.activities.Where(x=>x.num==po.activity_num).FirstOrDefault();
var hasList = _db.pro_order.AsNoTracking().Where(x => x.activity_num == po.activity_num).AsNoTracking().ToList();
List<int> rp=new List<int>();
//要檢查是否已經報名
foreach (var item in list)
{
var already=hasList.Where(x => x.f_num == item.f_num).FirstOrDefault();
if (already != null&&!string.IsNullOrEmpty(already.order_no))
{
rp.Add((int)already.f_num);
continue;
}
//Model.pro_order order = new Model.pro_order();
//order.phone = item.phone;
//order.follower1 = item.follower1;
//order.address = item.address;
//order.activity_num = po.activity_num;
//order.up_time = DateTime.Now;
//order.reg_time = DateTime.Now;
////order.follower = item.follower;//加了會去寫followers
//order.f_num = item.f_num;
//order.keyin1 = item.keyin1;
//order.introducer = item.introducer;
//order.send_receipt = item.send_receipt;
//order.receipt_title = item.receipt_title;
//order.order_no = createOrderNumber();
item.reg_time= DateTime.Now;
item.up_time= DateTime.Now;
item.order_no= createOrderNumber();
item.activity_num= po.activity_num;
_db.pro_order.Add(item);
orders.Add(item);
foreach (var detail in item.pro_order_detail)
{
//Model.pro_order_detail order_detail = new Model.pro_order_detail();
//order_detail.order_no = order.order_no;
//order_detail.actItem_num = detail.actItem_num;
//order_detail.parent_num = detail.parent_num;
//order_detail.print_id = detail.print_id;
//order_detail.f_num = detail.f_num;
//order_detail.f_num_tablet = detail.f_num_tablet;
//order_detail.from_id = detail.from_id;
//order_detail.from_id_tablet = detail.from_id_tablet;
//order_detail.price = detail.price;
//order_detail.qty = detail.qty;
//order_detail.printed_files = detail.printed_files;
//order_detail.style = detail.style;
//order_detail.UpdateTime=DateTime.Now;
//order_details.Add(order_detail);
detail.order_no=item.order_no;
detail.UpdateTime= DateTime.Now;
detail.start_date= act.startDate_solar;
detail.due_date= act.endDate_solar;
_db.pro_order_detail.Add(detail);
}
}
//_db.pro_order.AddRange(orders);
//_db.SaveChanges();
//_db.pro_order_detail.AddRange(order_details);
_db.SaveChanges();
return Ok(new {result="Y",message="完成",data=rp});
}
catch (Exception ex)
{
return Ok(new { result = "Y",message=ex.Message+ex.StackTrace });
}
}
[HttpPost]
[Route("api/order/AddOrderWithDetail")]
public IHttpActionResult AddOrderWithDetail([FromBody] Model.ViewModel.pro_order q)
@@ -461,6 +547,12 @@ public class orderController : ApiController
qry = qry.OrderByDescending(o => o.reg_time);
var count = qry.Count(); //pageSize = count;//一次取回??
if (pageSize==-1)
{
pageSize = count;
}
if(pageSize==0)
pageSize = 10;
var ret = new
{
list = qry.ToPagedList(page, pageSize).Select(x => new
+21 -7
View File
@@ -225,17 +225,31 @@ public class statisticsController: ApiController
{
if (items.draft != null)
{
var jj = JsonConvert.DeserializeObject<JArray>(items.draft);
log.writeLogPath(jj.ToString());
foreach (var j in jj)
if (items.draft .StartsWith("["))
{
if (item.subject == j["activity_name"].ToString() &&
item.item_subject == j["actitem_name"].ToString())
var jj = JsonConvert.DeserializeObject<JArray>(items.draft);
log.writeLogPath(jj.ToString());
foreach (var j in jj)
{
payed = payed + decimal.Parse(j["reconcile"].ToString());
if (item.subject == j["activity_name"].ToString() &&
item.item_subject == j["actitem_name"].ToString())
{
payed = payed + decimal.Parse(j["reconcile"].ToString());
}
}
}
else
{
var jj = JsonConvert.DeserializeObject<JObject>(items.draft);
foreach (var j in jj["pro_order_detail_items"])
{
if (item.subject == j["activity_name"].ToString() &&
item.item_subject == j["actitem_name"].ToString())
{
payed = payed + decimal.Parse(j["reconcile"].ToString());
}
}
}
}
}
ws.Cells[i, 7].Value = payed;