migrate to new git
This commit is contained in:
262
web/App_Code/api/bedController.cs
Normal file
262
web/App_Code/api/bedController.cs
Normal file
@@ -0,0 +1,262 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Net;
|
||||
using System.Net.Http;
|
||||
using System.Web.Http;
|
||||
using PagedList;
|
||||
using Newtonsoft.Json;
|
||||
using System.Collections;
|
||||
|
||||
[ezAuthorize]
|
||||
public class bedController : BaseApiController
|
||||
{
|
||||
// GET api/<controller>
|
||||
public IEnumerable<Model.bed_order> Get()
|
||||
{
|
||||
var list = _db.bed_order.ToList();
|
||||
if (list == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return list;
|
||||
}
|
||||
|
||||
// GET api/<controller>/5
|
||||
public Model.bed_order Get(string id)
|
||||
{
|
||||
var item = _db.bed_order.Where(q => q.bed_order_no == id).FirstOrDefault();
|
||||
if (item == null) throw new HttpResponseException(HttpStatusCode.NotFound);
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
|
||||
// POST api/<controller>
|
||||
public void Post([FromBody] string value)
|
||||
{
|
||||
}
|
||||
|
||||
// PUT api/<controller>/5
|
||||
public void Put(int id, [FromBody] string value)
|
||||
{
|
||||
}
|
||||
|
||||
// DELETE api/<controller>/5
|
||||
public void Delete(string id)
|
||||
{
|
||||
var prod = _db.bed_order.AsEnumerable().Where(q => q.bed_order_no == id).FirstOrDefault(); //刪除該筆資料
|
||||
if (prod != null)
|
||||
{
|
||||
//刪除訂單明細
|
||||
_db.bed_order_detail.RemoveRange(prod.bed_order_detail);
|
||||
//var prod2 = _db.bed_order_detail.AsEnumerable().Where(q => q.bed_order_no == prod.bed_order_no).ToList();
|
||||
//if (prod2.Count > 0)
|
||||
//{
|
||||
// //查詢結果全部刪除
|
||||
// _db.bed_order_detail.RemoveRange(prod2);
|
||||
// _db.SaveChanges();
|
||||
//}
|
||||
|
||||
_db.bed_order.Remove(prod);
|
||||
_db.SaveChanges();//執行
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
public static readonly object Locker = new object();
|
||||
[HttpPost]
|
||||
[Route("api/bed/CreateBedList")]
|
||||
public IHttpActionResult CreateBedList([FromBody] Model.pro_order_detail item)
|
||||
{
|
||||
string order_no = "";
|
||||
|
||||
if (item.num > 0)
|
||||
{
|
||||
Model.bed_order chkOrder = _db.bed_order.Where(q => q.order_no == item.order_no && q.o_detail_id == item.num).FirstOrDefault();
|
||||
if (chkOrder == null)
|
||||
{
|
||||
lock (Locker)
|
||||
{
|
||||
order_no = "ED" + DateTime.Now.ToString("yyMMdd");
|
||||
|
||||
var qry = _db.companies.AsEnumerable();
|
||||
var prod = qry.Where(q => q.num == 1).FirstOrDefault();
|
||||
if (prod != null)
|
||||
{
|
||||
if (!string.IsNullOrEmpty(prod.bed_order_no) && prod.bed_order_no.Contains(order_no))
|
||||
{
|
||||
int tmp = Convert.ToInt32(prod.bed_order_no.Replace(order_no, "")) + 1;
|
||||
order_no = order_no + tmp.ToString("0000");
|
||||
}
|
||||
else
|
||||
order_no = order_no + "0001";
|
||||
|
||||
prod.bed_order_no = order_no;
|
||||
_db.SaveChanges();
|
||||
}
|
||||
else
|
||||
order_no = "";
|
||||
}
|
||||
|
||||
if (order_no != "")
|
||||
{
|
||||
//建立掛單表單
|
||||
Model.bed_order order = new Model.bed_order();//新增
|
||||
order.bed_order_no = order_no;
|
||||
order.order_no = item.order_no;
|
||||
order.o_detail_id = item.num;
|
||||
order.keyin1 = "A1"; //預設未入住
|
||||
order.reg_time = DateTime.Now;
|
||||
_db.bed_order.Add(order);
|
||||
|
||||
//建立掛單表單明細 count == item.qty
|
||||
for (int i = 0; i < item.qty.Value; i++)
|
||||
{
|
||||
Model.bed_order_detail detail = new Model.bed_order_detail();//新增
|
||||
detail.bed_order_no = order_no;
|
||||
_db.bed_order_detail.Add(detail);
|
||||
}
|
||||
|
||||
_db.SaveChanges();
|
||||
|
||||
return Ok();
|
||||
}
|
||||
else
|
||||
return NotFound();
|
||||
}
|
||||
else
|
||||
{
|
||||
//check detail qty ?
|
||||
int _needQty = chkOrder.pro_order_detail.qty??0;
|
||||
int _nowQty = chkOrder.bed_order_detail.Count;
|
||||
|
||||
for(int i=0; i< _needQty- _nowQty;i++)
|
||||
{
|
||||
//建立掛單表單明細 count == item.qty
|
||||
Model.bed_order_detail detail = new Model.bed_order_detail();//新增
|
||||
detail.bed_order_no = chkOrder.bed_order_no;
|
||||
_db.bed_order_detail.Add(detail);
|
||||
}
|
||||
|
||||
_db.SaveChanges();
|
||||
return Ok(); //已建立
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
else
|
||||
return NotFound();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/bed/GetDetailList")]
|
||||
public IHttpActionResult GetDetailList([FromBody] Model.bed_order q,
|
||||
int page, int pageSize = 10, string sortBy = "", bool sortDesc = false)
|
||||
{
|
||||
var qry = _db.bed_order_detail.AsEnumerable();
|
||||
qry = qry.Where(o => o.bed_order_no == q.bed_order_no);
|
||||
|
||||
qry = qry.OrderBy(o => o.checkIn_date ).ThenBy(o => o.num);
|
||||
|
||||
int i = 1;
|
||||
var tdesc = publicFun.enum_desc<Model.bed_kind.bed_type>();
|
||||
var ret = new
|
||||
{
|
||||
list = qry.ToPagedList(page, pageSize).Select(x => new
|
||||
{
|
||||
id = i++,
|
||||
num = x.num,
|
||||
u_name = x.bed_order.pro_order_detail.f_num.HasValue? (x.bed_order.pro_order_detail.follower.u_name) :"",
|
||||
sex = x.bed_order.pro_order_detail.f_num.HasValue? x.bed_order.pro_order_detail.follower.sex :"",
|
||||
checkIn_date = x.checkIn_date,
|
||||
|
||||
//bed_kind1 -> column
|
||||
//bed_kind2 -> column
|
||||
//bed_kind -> table
|
||||
//bed_kind3 -> table
|
||||
|
||||
bed_kind1_selected = new //樓層
|
||||
{
|
||||
text = x.bed_kind1.HasValue ? x.bed_kind.kind : "",
|
||||
val = x.bed_kind1.HasValue ? x.bed_kind1.Value : 0,
|
||||
},
|
||||
bed_kind2_selected = new //房號/房名
|
||||
{
|
||||
text = x.bed_kind2.HasValue ? x.bed_kind3.kind : "",
|
||||
val = x.bed_kind2.HasValue ? x.bed_kind2.Value : 0,
|
||||
},
|
||||
bed_kind_detail_id_selected = new //床位編號
|
||||
{
|
||||
text = x.bed_kind_detail_id.HasValue ? x.bed_kind_detail.bed_name : "",
|
||||
val = x.bed_kind_detail_id.HasValue ? x.bed_kind_detail_id.Value : 0,
|
||||
bed_type = x.bed_kind_detail_id.HasValue ? tdesc[x.bed_kind_detail.bed_type ?? 1] : "",
|
||||
},
|
||||
license = x.license,
|
||||
}),
|
||||
count = qry.Count()
|
||||
|
||||
};
|
||||
return Ok(ret);
|
||||
}
|
||||
|
||||
|
||||
|
||||
[HttpPost]
|
||||
[Route("api/bed/SaveBedDetail")]
|
||||
public IHttpActionResult SaveActKindDetail([FromBody] Model.bed_order_detail item)
|
||||
{
|
||||
if (item.bed_order_no !="")
|
||||
{
|
||||
if (item.num > 0)
|
||||
{
|
||||
Model.bed_order_detail _detail = _db.bed_order_detail.Where(q => q.num == item.num).FirstOrDefault();//修改
|
||||
if (_detail != null)
|
||||
{
|
||||
if(item.checkIn_date.HasValue) _detail.checkIn_date = item.checkIn_date.Value;
|
||||
if(item.bed_kind1.HasValue) _detail.bed_kind1 = item.bed_kind1.Value;
|
||||
if(item.bed_kind2.HasValue) _detail.bed_kind2 = item.bed_kind2.Value;
|
||||
if(item.bed_kind_detail_id.HasValue) _detail.bed_kind_detail_id = item.bed_kind_detail_id.Value;
|
||||
_detail.license = item.license;
|
||||
|
||||
_db.SaveChanges();
|
||||
var ret = _detail.num;
|
||||
return Ok(ret);
|
||||
|
||||
}
|
||||
else
|
||||
return NotFound();
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
return NotFound();
|
||||
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return NotFound();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
[HttpDelete]
|
||||
[Route("api/bed/DeleteBedDetail/{id}")]//刪除detail
|
||||
public void DeleteBedDetail(int id)
|
||||
{
|
||||
var prod = _db.bed_order_detail.AsEnumerable().Where(q => q.num == id).FirstOrDefault(); //刪除該筆資料
|
||||
if (prod != null)
|
||||
{
|
||||
|
||||
_db.bed_order_detail.Remove(prod);
|
||||
_db.SaveChanges(); //執行
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user