using NFine.Application.WMS;
using System.Data;
using System.Web.Mvc;
using NFine.Code;


namespace NFine.Web.Areas.WMS.Controllers
{
    public class ProductionIssueController : ControllerBase
    {

        ProductionIssueApp App = new ProductionIssueApp();
        // GET: WMS/ProductionIssue
        public ActionResult ICSMOApplyNeg()
        {
            return View();
        }

       

        public ActionResult ICSMOApplyNegAdd()
        {
            return View();
        }

       
     public ActionResult SeachICSMO()
        {
            return View();
        }
        
   public ActionResult SeachInventory()
        {
            return View();
        }

        
   public ActionResult ICSMOApplyNegUpdate()
        {
            return View();
        }


        [HttpGet]
        public ActionResult GetICSMOApplyNeg(Pagination pagination, string queryJson)
        {
            DataTable ListData = App.GetICSMOApplyNeg(queryJson, ref pagination);
            var JsonData = new
            {
                total = pagination.total,
                page = pagination.page,
                records = pagination.records,
                rows = ListData,
            };
            return Content(JsonData.ToJson());
        }

        [HttpGet]
        [HandlerAjaxOnly]
        public ActionResult GetICSMOApplyNegDetail(string ApplyNegCode, Pagination pagination)
        {
            DataTable ListData = App.GetICSMOApplyNegDetail(ApplyNegCode, ref pagination);
            var JsonData = new
            {
                total = pagination.total,
                page = pagination.page,
                records = pagination.records,
                rows = ListData,
            };
            return Content(JsonData.ToJson());
        }

        [HttpGet]
        public ActionResult GetINV(string invcode,string Code,string Invstd,string EATTRIBUTE2, Pagination pagination)
        {
            DataTable ListData = App.GetINV(invcode, Code, Invstd, EATTRIBUTE2, ref pagination);
            var JsonData = new
            {
                total = pagination.total,
                page = pagination.page,
                records = pagination.records,
                rows = ListData,
            };
            return Content(JsonData.ToJson());
        }

        
        [HttpGet]
        public ActionResult GetICSMOPickLog(string invcode, Pagination pagination)
        {
            DataTable ListData = App.GetICSMOPickLog(invcode, ref pagination);
            var JsonData = new
            {
                total = pagination.total,
                page = pagination.page,
                records = pagination.records,
                rows = ListData,
            };
            return Content(JsonData.ToJson());
        }




        public ActionResult GetICSReturnTemporary(string rfqno, Pagination pagination)
        {
            DataTable table = App.GetICSReturnTemporary(rfqno);
            var JsonData = new
            {
                total = pagination.total,
                page = pagination.page,
                records = pagination.records,
                rows = table
            };
            return Content(JsonData.ToJson());

        }

        [HttpGet]
        [HandlerAjaxOnly]
        public ActionResult GetWHCode()
        {
            DataTable dt = App.GetWHCode();
            return Content(dt.ToJson());
        }
        //[HttpGet]
        //[HandlerAjaxOnly]
        //public ActionResult GetInvCode()
        //{
        //    DataTable dt = App.GetInvCode();
        //    return Content(dt.ToJson());
        //}

        public void AddMOApplyNegTemp(string json)
        {
            App.AddMOApplyNegTemp(json);
        }

        public ActionResult DeleteMopick(string json)
        {

            return Content(App.DeleteMopick(json));

        }


        public void ClearTemp()
        {
            App.ClearTemp();
        }

        [HttpPost]
        [HandlerAjaxOnly]
        public ActionResult SaveICSMOApplyNeg(string ICSASN)
        {
          
            string msg = App.SaveICSMOApplyNeg(ICSASN);
            if (!string.IsNullOrEmpty(msg))
            {
                return Error(msg);
            }
            else
            {
                return Success("添加成功!");
            }
        }

        [HttpPost]
        [HandlerAjaxOnly]
        public ActionResult UpdateICSMOApplyNeg(string ICSASN)
        {

            string msg = App.UpdateICSMOApplyNeg(ICSASN);
            if (!string.IsNullOrEmpty(msg))
            {
                return Error(msg);
            }
            else
            {
                return Success("修改成功!");
            }
        }

        /// <summary>
        /// 获取文本框值
        /// </summary>
        /// <param name="POCode"></param>
        /// <param name="PORow"></param>
        /// <returns></returns>
        [HttpPost]
        [HandlerAjaxOnly]
        public ActionResult GetInputValue(string ID)
        {
            DataTable ListData = App.GetInputValue(ID);
            var JsonData = new
            {
                rows = ListData,
            };
            return Content(JsonData.ToJson());
        }

        public ActionResult GetICSMOApplyNegDetailTemp(string ApplyNegCode, Pagination pagination)
        {
            DataTable table = App.GetICSMOApplyNegDetailTemp(ApplyNegCode);
            var JsonData = new
            {
                total = pagination.total,
                page = pagination.page,
                records = pagination.records,
                rows = table
            };
            return Content(JsonData.ToJson());

        }

        public void UpdateMOApplyNegTemp(string json)
        {
            App.UpdateMOApplyNegTemp(json);
        }

        [HttpPost]
        [HandlerAjaxOnly]
        public ActionResult AuditICSMOApplyNeg(string ICSASN)
        {

            string msg = App.AuditICSMOApplyNeg(ICSASN);
            if (!string.IsNullOrEmpty(msg))
            {
                return Error(msg);
            }
            else
            {
                return Success("操作成功!");
            }
        }



        [HttpPost]
        [HandlerAjaxOnly]
        [ValidateAntiForgeryToken]
        public ActionResult DeleteICSMOApplyNeg(string keyValue)
        {
            string msg = App.DeleteICSMOApplyNeg(keyValue);
            if (string.IsNullOrEmpty(msg))
            {
                return Success("删除成功!");
            }
            else
            {
                return Error(msg);
            }
        }




    }
}