91 lines
3.7 KiB
C#
91 lines
3.7 KiB
C#
using com.itextpdf.text.pdf;
|
|
using Model;
|
|
using Newtonsoft.Json;
|
|
using Newtonsoft.Json.Linq;
|
|
using PagedList;
|
|
using System;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using System.Data.Entity;
|
|
using System.Data.SqlClient;
|
|
using System.Linq;
|
|
using System.Net;
|
|
using System.Net.Http;
|
|
using System.Web.Http;
|
|
using static TreeView;
|
|
|
|
/// <summary>
|
|
/// orderdetail 的摘要说明
|
|
/// </summary>
|
|
public class orderdetailController:ApiController
|
|
{
|
|
private Model.ezEntities _db = new Model.ezEntities();
|
|
|
|
[HttpPost]
|
|
[Route("api/orderdetail/GetList")]
|
|
public IHttpActionResult GetList([FromBody] Model.ViewModel.pro_order q, int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
|
{
|
|
int activity_num = Convert.ToInt32(q.activity_num);
|
|
//現在的牌位預覽只會出現功德主,修改為所有人都會出現
|
|
//var aIDt = _db.actItems.AsEnumerable().Where(f => f.subject.Contains(q.actItemTxt.Trim())).Select(f => f.num);//品項
|
|
//var OrderList = _db.pro_order.Where(u => u.activity_num == activity_num).Select(j => j.order_no).ToList();
|
|
//var gdzOrderList = _db.pro_order_detail.Where(o => OrderList.Contains(o.order_no) && o.print_id.Contains("主")).Select(o => o.order_no).Distinct().ToList();
|
|
//var qry = _db.pro_order.Where(u => gdzOrderList.Contains(u.order_no)).AsEnumerable();
|
|
var qry = _db.pro_order.Where( u => u.activity_num == activity_num).OrderByDescending(o => o.reg_time);
|
|
|
|
var count = qry.Count(); //pageSize = count;//一次取回??
|
|
var qryList = (pageSize > 0) ? qry.ToPagedList(page, pageSize).ToList() : qry.ToList();
|
|
|
|
var ret = new
|
|
{
|
|
list = qryList.Select(x => new
|
|
{
|
|
order_no = x.order_no,
|
|
f_num = x.f_num,
|
|
u_name = x.f_num.HasValue ? x.follower.u_name : "",
|
|
activity_num = x.activity_num,
|
|
subject = x.activity_num.HasValue ? x.activity.subject : "",
|
|
keyin1 = x.keyin1,
|
|
up_time = x.up_time,
|
|
keyin1_txt = Model.pro_order.keyin1_value_to_text(x.keyin1),
|
|
//detail = x.pro_order_detail.Where(u => u.printed_files != null)
|
|
detail = new { count = x.pro_order_detail
|
|
.Where(u => (u.parent_num != null)
|
|
|| u.actItem.subject.Contains("牌")
|
|
|| !string.IsNullOrEmpty(u.f_num_tablet))
|
|
.Count(),
|
|
actItem = x.pro_order_detail.Where(u => u.printed_files != null).Select(u => u.print_id).FirstOrDefault() }
|
|
}),
|
|
count = count
|
|
};
|
|
|
|
|
|
if (ret.list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
|
return Ok(ret);
|
|
}
|
|
|
|
[HttpPost]
|
|
[Route("api/orderdetail/GetDetailToPrint")]
|
|
public IHttpActionResult GetDetailToPrint([FromBody] dynamic data)
|
|
{
|
|
if (data.param is Newtonsoft.Json.Linq.JArray items)
|
|
{
|
|
string[] details = new string[items.Count];
|
|
int i = 0;
|
|
foreach (var item in items)
|
|
{
|
|
details[i] = item["order_no"] + item["num"].ToString();
|
|
i++;
|
|
}
|
|
string sql = @"select * from pro_order_detail where order_no+convert(varchar,num) in ({0}) ";
|
|
//var p =new SqlParameter[]{ new SqlParameter("p0", String.Join(",", details))};
|
|
var ret = _db.Database.SqlQuery<pro_order_detail>(sql, String.Join(",", details)).ToList();
|
|
if (ret == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
|
return Ok(ret);
|
|
}
|
|
else
|
|
{
|
|
throw new HttpResponseException(HttpStatusCode.NotFound);
|
|
}
|
|
}
|
|
} |