QuotationMaker/Controllers/ApiController.cs

449 lines
17 KiB
C#

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using static DbTableClass;
using static resultClass;
using System.Data.SqlClient;
using Dapper.Contrib.Extensions;
using Dapper;
using Newtonsoft.Json;
using Org.BouncyCastle.Bcpg.OpenPgp;
using NPOI.OpenXmlFormats.Shared;
namespace QuotationMaker.Controllers
{
[Route("Api")]
public class ApiController : ControllerBase
{
private readonly IHttpContextAccessor _httpContextAccessor;
DbConn dbConn = new DbConn();
SqlConnection conn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:SQLConnectionString"));
SqlConnection elabConn = new SqlConnection(GlobalClass.appsettings("ConnectionStrings:ElabConnectionString"));
public ApiController(IHttpContextAccessor httpContextAccessor)
{
this._httpContextAccessor = httpContextAccessor;
}
[Route("deptList")]
public ActionResult DeptList(IFormCollection obj)
{
deptListResult ret = new deptListResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string sqlString = "select * from depts order by dept_order";
if (token.user_id != GlobalClass.appsettings("Admin:id"))
{
sqlString = "select * from depts where dept_uid in (select dept_uid from userDept where user_uid = '" + token.user_uid + "' ) order by dept_order ";
}
ret.depts = conn.Query<depts>(sqlString).ToList();
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("projectViewList")]
public ActionResult ProjectViewList(IFormCollection obj) {
projectViewResult ret = new projectViewResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string user_uid = token.user_uid;
string user_perm = token.user_perm;
string dept_uid = obj["dept_uid"].ToString();
string start_txt = obj["start_txt"].ToString();
string end_txt = obj["end_txt"].ToString();
DateTime startDateTime = DateTime.Parse(start_txt + "/1");
DateTime endDateTime = DateTime.Parse(end_txt + "/1").AddMonths(1).AddDays(-1);
string user_uid_list = "'" + user_uid + "'";
if (user_perm == "system" && token.user_id != GlobalClass.appsettings("Admin:id")) {
groupUser gpUser = conn.QueryFirstOrDefault<groupUser>("select * from groupUser where dept_uid = @dept_uid and user_uid = @user_uid ", new { dept_uid = dept_uid, user_uid = user_uid });
if (gpUser != null) {
List<groupUser> groupUsers = conn.Query<groupUser>("select * from groupUser where group_uid = @group_uid", new { group_uid = gpUser.group_uid }).ToList();
foreach (groupUser groupUser in groupUsers)
{
user_uid_list += ", '" + groupUser.user_uid + "'";
}
}
}
if (user_perm == "system" && token.user_id == GlobalClass.appsettings("Admin:id"))
{
List<groupUser> groupUsers = conn.Query<groupUser>("select * from groupUser where dept_uid = @dept_uid", new { dept_uid = dept_uid }).ToList();
foreach (groupUser groupUser in groupUsers)
{
user_uid_list += ", '" + groupUser.user_uid + "'";
}
}
ret.projectViews = conn.Query<projectView>("select * from projectView where project_lastmodify_uid in (@user_list) and project_createdate >= @start_date and project_createdate <= @end_date", new { user_list = user_uid_list, start_date = startDateTime.ToString("yyyy/MM/dd"), end_date = endDateTime.ToString("yyyy/MM/dd 23:59:59") } ).ToList();
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("addEditDelGetContactPerson")]
public ActionResult AddEditDelContactPerson(IFormCollection obj)
{
contactPersonListResult ret = new contactPersonListResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string company_uid = obj["company_uid"].ToString();
string contactPerson_uid = obj["contactPerson_uid"].ToString();
string contactPerson_name = obj["contactPerson_name"].ToString();
string contactPerson_email = obj["contactPerson_email"].ToString();
string contactPerson_tel = obj["contactPerson_tel"].ToString();
string contactPerson_fax = obj["contactPerson_fax"].ToString();
string method = obj["method"].ToString();
if (method == "")
{
ret.ret = "no";
ret.err_code = "0001";
ret.message = "沒有method!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "add")
{
if (contactPerson_name.Trim() == "")
{
ret.ret = "no";
ret.err_code = "0003";
ret.message = "沒有contactPerson_name!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
contactPerson_uid = GlobalClass.CreateRandomCode(24);
contactPerson newItem = new contactPerson();
newItem.contactPerson_name = contactPerson_name;
newItem.contactPerson_uid = contactPerson_uid;
newItem.company_uid = company_uid;
newItem.contactPerson_tel = contactPerson_tel;
newItem.contactPerson_email = contactPerson_email;
newItem.contactPerson_fax = contactPerson_fax;
newItem.contactPerson_lastmodify_uid = token.user_uid;
newItem.contactPerson_createdate = DateTime.Now;
newItem.contactPerson_modifydate = DateTime.Now;
conn.Insert(newItem);
ret.contactPersons.Add(newItem);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (contactPerson_uid.Trim() == "")
{
ret.ret = "no";
ret.err_code = "0002";
ret.message = "沒有contactPerson_uid!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
contactPerson editItem = conn.QueryFirstOrDefault<contactPerson>("select * from contactPerson where contactPerson_isdel = 'N' and contactPerson_uid = @contactPerson_uid ", new { contactPerson_uid = contactPerson_uid });
if (editItem == null)
{
ret.ret = "no";
ret.err_code = "0004";
ret.message = "沒有contactPerson_uid此筆資料!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "edit")
{
if (contactPerson_name.Trim() == "")
{
ret.ret = "no";
ret.err_code = "0002";
ret.message = "沒有contactPerson_name!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
editItem.contactPerson_name = contactPerson_name;
editItem.contactPerson_tel = contactPerson_tel;
editItem.contactPerson_email = contactPerson_email;
editItem.contactPerson_fax = contactPerson_fax;
editItem.contactPerson_lastmodify_uid = token.user_uid;
editItem.contactPerson_modifydate = DateTime.Now;
conn.Update(editItem);
ret.contactPersons.Add(editItem);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "get")
{
ret.contactPersons.Add(editItem);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "del")
{
editItem.contactPerson_isdel = "Y";
editItem.contactPerson_lastmodify_uid = token.user_uid;
editItem.contactPerson_modifydate = DateTime.Now;
conn.Execute("update contactPerson set contactPerson_isdel = 'Y' where contactPerson_uid = @contactPerson_uid ", new { contactPerson_uid = contactPerson_uid });
conn.Update(editItem);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("contactPersonList")]
public ActionResult ContactPersonList(IFormCollection obj)
{
contactPersonListResult ret = new contactPersonListResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string company_uid = obj["company_uid"].ToString();
ret.contactPersons = conn.Query<contactPerson>("select * from contactPerson where contactPerson_isdel = 'N' and company_uid = @company_uid ", new { company_uid = company_uid }).ToList();
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("addEditDelGetCompany")]
public ActionResult AddEditDelSubItem(IFormCollection obj)
{
companyListResult ret = new companyListResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
string company_uid = obj["company_uid"].ToString();
string company_name = obj["company_name"].ToString();
string company_serialNo = obj["company_serialNo"].ToString();
string company_address = obj["company_address"].ToString();
string company_tel = obj["company_tel"].ToString();
string company_fax = obj["company_fax"].ToString();
string method = obj["method"].ToString();
if (method == "")
{
ret.ret = "no";
ret.err_code = "0001";
ret.message = "沒有method!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "add")
{
if (company_name.Trim() == "")
{
ret.ret = "no";
ret.err_code = "0003";
ret.message = "沒有company_name!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
company_uid = GlobalClass.CreateRandomCode(24);
company newItem = new company();
newItem.company_name = company_name;
newItem.company_uid = company_uid;
newItem.company_serialNo = company_serialNo;
newItem.company_address = company_address;
newItem.company_tel = company_tel;
newItem.company_fax = company_fax;
newItem.company_lastmodify_uid = token.user_uid;
newItem.company_createdate = DateTime.Now;
newItem.company_modifydate = DateTime.Now;
conn.Insert(newItem);
ret.companys.Add(newItem);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (company_uid.Trim() == "")
{
ret.ret = "no";
ret.err_code = "0002";
ret.message = "沒有company_uid!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
company editItem = conn.QueryFirstOrDefault<company>("select * from company where company_isdel = 'N' and company_uid = @company_uid ", new { company_uid = company_uid });
if (editItem == null)
{
ret.ret = "no";
ret.err_code = "0004";
ret.message = "沒有company_uid此筆資料!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "edit")
{
if (company_name.Trim() == "")
{
ret.ret = "no";
ret.err_code = "0002";
ret.message = "沒有company_name!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
editItem.company_name = company_name;
editItem.company_serialNo = company_serialNo;
editItem.company_address = company_address;
editItem.company_tel = company_tel;
editItem.company_fax = company_fax;
editItem.company_lastmodify_uid = token.user_uid;
editItem.company_modifydate = DateTime.Now;
conn.Update(editItem);
ret.companys.Add(editItem);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "get")
{
ret.companys.Add(editItem);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
if (method == "del")
{
editItem.company_isdel = "Y";
editItem.company_lastmodify_uid = token.user_uid;
editItem.company_modifydate = DateTime.Now;
conn.Execute("update contactPerson set contactPerson_isdel = 'Y' where company_uid = @company_uid ", new { company_uid = company_uid });
conn.Update(editItem);
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
[Route("companyList")]
public ActionResult AuthSubItemList(IFormCollection obj)
{
companyListResult ret = new companyListResult();
authToken token = new authToken(this._httpContextAccessor);
if (token.user_isLogin == false)
{
HttpContext.Response.Cookies.Delete("token_key");
ret.ret = "no";
ret.err_code = "99999";
ret.message = "非登入狀態!";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
ret.companys = conn.Query<company>("select * from company where company_isdel = 'N' ").ToList();
ret.ret = "yes";
return Content(JsonConvert.SerializeObject(ret), "application/json;charset=utf-8");
}
}
}