using System;
using System.Linq;
using System.Net.Http;
using System.Web.Http;

namespace Project
{
    public class PurchaseController : BaseController
    {


        // PUT api/values/5
        public void Put(int id, [FromBody] string value)
        {
        }

        // DELETE api/values/5
        public void Delete(int id)
        {
        }

        [HttpGet]
        public string Test()
        {
            return "test";
        }

        [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 EEEntitiesMain();
                var rows = db.vFindSID.Where(t => t.sid.Contains(searchkey) || t.name.Contains(searchkey) || t.manu.Contains(searchkey) || t.model.Contains(searchkey));
                itemcnt = rows.Count();
                foreach (var item in rows)
                {
                    tbody.AppendLine("<tr>");
                    tbody.AppendLine($"<th scope='row'>{item.Location}</th>");
                    tbody.AppendLine($"<td>{item.sid}</td>");
                    tbody.AppendLine($"<td>{item.name}</td>");
                    tbody.AppendLine($"<td>{item.model}</td>");

                    if (item.price == null)
                        tbody.AppendLine($"<td>--</td>");
                    else
                    {
                        var price = (double)item.price / 1000.0;

                        tbody.AppendLine($"<td>{price.ToString("N0")}</td>");
                    }


                    tbody.AppendLine($"<td>{item.manu}</td>");
                    tbody.AppendLine($"<td>{item.supply}</td>");

                    if (item.remark.Length > 10)
                        tbody.AppendLine($"<td>{item.remark.Substring(0, 10)}...</td>");
                    else
                        tbody.AppendLine($"<td>{item.remark}</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()
        {
            //로그인이 되어있지않다면 로그인을 가져온다
            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 EEEntitiesPurchase();
            var sd = DateTime.Now.ToString("yyyy-MM-01");
            var rows = db.vPurchase.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate.CompareTo(sd) >= 0).OrderByDescending(t => t.pdate);
            itemcnt = rows.Count();
            foreach (vPurchase item in rows)
            {
                tbody.AppendLine("<tr>");
                tbody.AppendLine($"<th scope='row'>{item.pdate.Substring(5)}</th>");

                if (item.state == "---") tbody.AppendLine($"<td class='table-info'>{item.state}</td>");
                else if (item.state == "Received") tbody.AppendLine($"<td class='table-success'>{item.state}</td>");
                else tbody.AppendLine($"<td>{item.state}</td>");

                tbody.AppendLine($"<td>{item.name}</td>");
                tbody.AppendLine($"<td>{item.sid}</td>");
                tbody.AppendLine($"<td>{item.pumname}</td>");

                if (item.pumscale.Length > 10) tbody.AppendLine($"<td>{item.pumscale.Substring(0, 10)}...</td>");
                else tbody.AppendLine($"<td>{item.pumscale}</td>");

                tbody.AppendLine($"<td>{item.pumqty}</td>");
                tbody.AppendLine($"<td>{item.pumprice}</td>");
                tbody.AppendLine($"<td>{item.pumamt}</td>");
                tbody.AppendLine($"<td>{item.supply}</td>");
                if (item.project != null && item.project.Length > 10) tbody.AppendLine($"<td>{item.project.Substring(0, 10)}...</td>");
                else tbody.AppendLine($"<td>{item.project}</td>");

                if (item.bigo.Length > 10) tbody.AppendLine($"<td>{item.bigo.Substring(0, 10)}...</td>");
                else tbody.AppendLine($"<td>{item.bigo}</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;
        }

    }
}
