320 lines
12 KiB
C#
320 lines
12 KiB
C#
using Microsoft.Owin;
|
|
using System;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Web;
|
|
using System.Web.Http;
|
|
|
|
namespace Project.Web.Controllers
|
|
{
|
|
public class JobreportController : BaseController
|
|
{
|
|
|
|
|
|
// PUT api/values/5
|
|
public void Put(int id, [FromBody] string value)
|
|
{
|
|
}
|
|
|
|
// DELETE api/values/5
|
|
public void Delete(int id)
|
|
{
|
|
}
|
|
|
|
[HttpPost]
|
|
public string Add(FormCollection tbpdate)
|
|
{
|
|
var vals = Request.GetQueryNameValuePairs();
|
|
return string.Empty;
|
|
}
|
|
|
|
//[HttpPost]
|
|
//public string Edit([FromBody] string value)
|
|
//{
|
|
// var vals = Request.GetQueryNameValuePairs();
|
|
|
|
// var req = Request.GetRequestContext();
|
|
|
|
// return string.Empty;
|
|
//}
|
|
|
|
[HttpPost]
|
|
public string Edit(FormCollection value)
|
|
{
|
|
var vals = Request.GetQueryNameValuePairs();
|
|
|
|
var req = Request.GetRequestContext();
|
|
|
|
return string.Empty;
|
|
}
|
|
|
|
[HttpGet]
|
|
public HttpResponseMessage Edit(int id)
|
|
{
|
|
//로그인이 되어있지않다면 로그인을 가져온다
|
|
MethodResult result;
|
|
result = View("/jobreport/edit");
|
|
|
|
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
|
|
|
|
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
|
|
var model = GetGlobalModel();
|
|
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
|
|
|
|
//기본값을 찾아서 없애줘야한다
|
|
var searchkey = string.Empty;
|
|
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
|
|
|
|
var tbody = new System.Text.StringBuilder();
|
|
|
|
//테이블데이터생성
|
|
var db = new dsMSSQLTableAdapters.vJobReportForUserTableAdapter();//. EEEntitiesJobreport();
|
|
var sd = DateTime.Now.ToString("yyyy-MM-01");
|
|
var ed = DateTime.Now.ToShortDateString();
|
|
var rows = db.GetData(FCOMMON.info.Login.gcode, id).FirstOrDefault();//.vJobReportForUser.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode && t.idx == id).FirstOrDefault();
|
|
|
|
var contents = result.Content;
|
|
if (rows == null)
|
|
{
|
|
//아이템이 없는 메시지를 표시한다
|
|
}
|
|
else
|
|
{
|
|
//치환작업을 진행한다
|
|
contents = contents.Replace("{pdate}", rows.pdate);
|
|
contents = contents.Replace("{status}", rows.status);
|
|
contents = contents.Replace("{name}", rows.name);
|
|
contents = contents.Replace("{package}", rows.package);
|
|
contents = contents.Replace("{process}", rows.process);
|
|
contents = contents.Replace("{type}", rows.type);
|
|
contents = contents.Replace("{userProcess}", rows.userProcess);
|
|
contents = contents.Replace("{projectName}", rows.projectName);
|
|
contents = contents.Replace("{hrs}", rows.hrs.ToString());
|
|
contents = contents.Replace("{ot}", rows.ot.ToString());
|
|
contents = contents.Replace("{requestpart}", rows.requestpart);
|
|
contents = contents.Replace("{description}", rows.description);
|
|
|
|
}
|
|
|
|
|
|
//공용값 적용
|
|
ApplyCommonValue(ref contents);
|
|
|
|
//최종문자 적용
|
|
result.Content = contents;
|
|
|
|
var resp = new HttpResponseMessage()
|
|
{
|
|
Content = new StringContent(
|
|
result.Content,
|
|
System.Text.Encoding.UTF8,
|
|
"text/html")
|
|
};
|
|
|
|
return resp;
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
public HttpResponseMessage Add()
|
|
{
|
|
//로그인이 되어있지않다면 로그인을 가져온다
|
|
MethodResult result;
|
|
result = View("/jobreport/add");
|
|
|
|
|
|
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
|
|
|
|
|
|
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
|
|
var model = GetGlobalModel();
|
|
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
|
|
|
|
//기본값을 찾아서 없애줘야한다
|
|
var searchkey = string.Empty;
|
|
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
|
|
|
|
var tbody = new System.Text.StringBuilder();
|
|
|
|
//테이블데이터생성
|
|
var itemcnt = 0;
|
|
//if (searchkey.isEmpty() == false)
|
|
{
|
|
var db = new dsMSSQLTableAdapters.vJobReportForUserTableAdapter();// EEEntitiesJobreport();
|
|
var sd = DateTime.Now.ToString("yyyy-MM-01");
|
|
var ed = DateTime.Now.ToShortDateString();
|
|
var rows = db.GetByDate(FCOMMON.info.Login.gcode, FCOMMON.info.Login.no, sd, ed);
|
|
//vJobReportForUser.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode && t.id == FCOMMON.info.Login.no && t.pdate.CompareTo(sd) >= 0 && t.pdate.CompareTo(ed) <= 1).OrderByDescending(t => t.pdate);
|
|
itemcnt = rows.Count();
|
|
foreach (var item in rows)
|
|
{
|
|
tbody.AppendLine("<tr>");
|
|
|
|
tbody.AppendLine($"<th scope='row'>{item.pdate.Substring(5)}</th>");
|
|
tbody.AppendLine($"<td>{item.ww}</td>");
|
|
tbody.AppendLine($"<td>{item.name}</td>");
|
|
|
|
if (item.status == "진행 중" || item.status.EndsWith("%"))
|
|
tbody.AppendLine($"<td class='table-info text-center'>{item.status}</td>");
|
|
else
|
|
tbody.AppendLine($"<td class='text-center'>{item.status}</td>");
|
|
|
|
tbody.AppendLine($"<td>{item.type}</td>");
|
|
tbody.AppendLine($"<td>{item.projectName}</td>");
|
|
tbody.AppendLine($"<td>{item.hrs}</td>");
|
|
tbody.AppendLine($"<td>{item.ot}</td>");
|
|
|
|
tbody.AppendLine("<td><span class='d-inline-block text-truncate' style='max-width: 150px;'>");
|
|
tbody.AppendLine(item.description);
|
|
tbody.AppendLine("</span></td>");
|
|
|
|
tbody.AppendLine("</tr>");
|
|
}
|
|
}
|
|
|
|
//아잍쳄이 없는경우
|
|
if (itemcnt == 0)
|
|
{
|
|
tbody.AppendLine("<tr>");
|
|
tbody.AppendLine("<th scope='row'>1</th>");
|
|
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
|
|
tbody.AppendLine("</tr>");
|
|
}
|
|
|
|
|
|
var contents = result.Content.Replace("{search}", searchkey);
|
|
contents = contents.Replace("{tabledata}", tbody.ToString());
|
|
contents = contents.Replace("{cnt}", itemcnt.ToString());
|
|
|
|
|
|
//공용값 적용
|
|
ApplyCommonValue(ref contents);
|
|
|
|
//최종문자 적용
|
|
result.Content = contents;
|
|
|
|
var resp = new HttpResponseMessage()
|
|
{
|
|
Content = new StringContent(
|
|
result.Content,
|
|
System.Text.Encoding.UTF8,
|
|
"text/html")
|
|
};
|
|
|
|
return resp;
|
|
}
|
|
|
|
[HttpGet]
|
|
public HttpResponseMessage Find()
|
|
{
|
|
//로그인이 되어있지않다면 로그인을 가져온다
|
|
MethodResult result;
|
|
result = View();
|
|
|
|
|
|
var gets = Request.GetQueryNameValuePairs();// GetParameters(data);
|
|
|
|
|
|
var key_search = gets.Where(t => t.Key == "search").FirstOrDefault();
|
|
var model = GetGlobalModel();
|
|
var getParams = Request.GetQueryNameValuePairs();// GetParameters(data);
|
|
|
|
//기본값을 찾아서 없애줘야한다
|
|
var searchkey = string.Empty;
|
|
if (key_search.Key != null && key_search.Value.isEmpty() == false) searchkey = key_search.Value.Trim();
|
|
|
|
var tbody = new System.Text.StringBuilder();
|
|
|
|
//테이블데이터생성
|
|
var itemcnt = 0;
|
|
if (searchkey.isEmpty() == false)
|
|
{
|
|
var db = new dsMSSQLTableAdapters.vJobReportForUserTableAdapter();// EEEntitiesJobreport();
|
|
var sd = DateTime.Now.ToShortDateString();
|
|
var rows = db.GetByToday(FCOMMON.info.Login.gcode, sd);//.vJobReportForUser.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate.CompareTo(sd) == 0).OrderBy(t => t.name);
|
|
itemcnt = rows.Count();
|
|
foreach (var item in rows)
|
|
{
|
|
tbody.AppendLine("<tr>");
|
|
tbody.AppendLine($"<th scope='row'>{item.pdate}</th>");
|
|
tbody.AppendLine($"<td>{item.status}</td>");
|
|
tbody.AppendLine($"<td>{item.name}</td>");
|
|
tbody.AppendLine($"<td>{item.projectName}</td>");
|
|
tbody.AppendLine($"<td>{item.hrs}</td>");
|
|
tbody.AppendLine($"<td>{item.ot}</td>");
|
|
tbody.AppendLine($"<td>{item.description}</td>");
|
|
|
|
|
|
if (item.description.Length > 10)
|
|
tbody.AppendLine($"<td>{item.description.Substring(0, 10)}...</td>");
|
|
else
|
|
tbody.AppendLine($"<td>{item.description}</td>");
|
|
tbody.AppendLine("</tr>");
|
|
}
|
|
}
|
|
|
|
//아잍쳄이 없는경우
|
|
if (itemcnt == 0)
|
|
{
|
|
tbody.AppendLine("<tr>");
|
|
tbody.AppendLine("<th scope='row'>1</th>");
|
|
tbody.AppendLine("<td colspan='6'>자료가 없습니다</td>");
|
|
tbody.AppendLine("</tr>");
|
|
}
|
|
|
|
|
|
var contents = result.Content.Replace("{search}", searchkey);
|
|
contents = contents.Replace("{tabledata}", tbody.ToString());
|
|
contents = contents.Replace("{cnt}", itemcnt.ToString());
|
|
|
|
|
|
//공용값 적용
|
|
ApplyCommonValue(ref contents);
|
|
|
|
//최종문자 적용
|
|
result.Content = contents;
|
|
|
|
var resp = new HttpResponseMessage()
|
|
{
|
|
Content = new StringContent(
|
|
result.Content,
|
|
System.Text.Encoding.UTF8,
|
|
"text/html")
|
|
};
|
|
|
|
return resp;
|
|
}
|
|
|
|
[HttpGet]
|
|
public HttpResponseMessage Index()
|
|
{
|
|
// 직접 파일을 읽어서 반환
|
|
var filePath = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Web", "wwwroot", "Jobreport", "index.html");
|
|
var contents = string.Empty;
|
|
|
|
if (System.IO.File.Exists(filePath))
|
|
{
|
|
contents = System.IO.File.ReadAllText(filePath, System.Text.Encoding.UTF8);
|
|
}
|
|
else
|
|
{
|
|
// 파일이 없으면 404 에러 페이지 또는 기본 메시지
|
|
contents = "<html><body><h1>404 - File Not Found</h1><p>The requested file was not found: " + filePath + "</p></body></html>";
|
|
}
|
|
|
|
//공용값 적용
|
|
ApplyCommonValue(ref contents);
|
|
|
|
var resp = new HttpResponseMessage()
|
|
{
|
|
Content = new StringContent(
|
|
contents,
|
|
System.Text.Encoding.UTF8,
|
|
"text/html")
|
|
};
|
|
|
|
return resp;
|
|
}
|
|
}
|
|
}
|