using DBUtility;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Http;
using WebAPI.Models;
namespace WebAPI.Controllers.SCGL
{
    public class JIT_CompleteController : ApiController
    {
        private json objJsonResult = new json();
        SQLHelper.ClsCN oCN = new SQLHelper.ClsCN();
        DataSet ds;
        #region 齐套分析信息明细列表
        /// 
        /// 
        /// 
        /// 查询条件
        /// 生产订单明细表id
        /// 
        [Route("JIT_Complete/JIT_CompleteDetailList")]
        [HttpGet]
        public object JIT_CompleteDetailList(string sWhere, string HMainICMOEntryID,string HMainICMOInterID,string HICMOInterID)
        {
            try
            {
                string sql = "";
                if (HMainICMOEntryID != "-1" && HMainICMOInterID != "-1" && HICMOInterID != "-1")
                {
                    sql = "and 主生产订单子内码 = '" + HMainICMOEntryID + "' and 主生产订单主内码='" + HMainICMOInterID + "' and 日计划订单主内码='" + HICMOInterID + "'";
                }
                ds = oCN.RunProcReturn("select * from h_v_JIT_MOMaterReadysBill where 1=1 " +sql + sWhere + "  order by 日计划日期,物料ID  desc ", "h_v_JIT_MOMaterReadysBill");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 齐套分析物料占用明细列表
        /// 
        /// 
        /// 
        /// 查询条件
        /// 物料ID
        /// 
        [Route("JIT_Complete/JIT_CompleteMaterialDetailList")]
        [HttpGet]
        public object JIT_CompleteMaterialDetailList(string sWhere, string HMaterID)
        {
            try
            {
                ds = oCN.RunProcReturn("select * from h_v_JIT_MOMaterReadysBill where 物料ID = '" + HMaterID + "' " + sWhere + " ORDER BY 日计划日期 ASC,可用数量 DESC,生产车间 ", "h_v_JIT_MOMaterReadysBill");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 即时库存列表
        /// 
        /// 
        /// 
        /// 查询条件
        /// 
        [Route("JIT_Complete/JIT_InventoryList")]
        [HttpGet]
        public object JIT_InventoryList(string sWhere)
        {
            try
            {
                ds = oCN.RunProcReturn("select * from h_v_STK_Inventory where 1=1 " + sWhere + "", "h_v_STK_Inventory");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
        #region 齐套分析报表
        public class ReportMOMaterReadysBill
        {
            public int? HORGID;//组织
            public int? HMATERIALID;//物料
            public int? HDeptID;//生产车间
            public int? HSCZYID;//生产资源
            public string HXQD;//需求单号
            public string HMOBILLNO;//生产订单号
        }
        /// 
        /// 
        /// 
        /// 
        [Route("JIT_Complete/ReportMOMaterReadysBillList")]
        [HttpGet]
        public object ReportMOMaterReadysBillList(string sWhere)
        {
            try
            {
                ReportMOMaterReadysBill Report = JsonConvert.DeserializeObject(sWhere);
                ds = oCN.RunProcReturn($"exec  PR_Complete_Report '{Report.HXQD}','{Report.HMOBILLNO}',{Report.HORGID},{Report.HDeptID},{Report.HSCZYID},{Report.HMATERIALID}", "PR_Complete_Report");
                objJsonResult.code = "1";
                objJsonResult.count = 1;
                objJsonResult.Message = "Sucess!";
                objJsonResult.data = ds.Tables[0];
                return objJsonResult;
            }
            catch (Exception e)
            {
                objJsonResult.code = "0";
                objJsonResult.count = 0;
                objJsonResult.Message = e.ToString();
                objJsonResult.data = null;
                return objJsonResult;
            }
        }
        #endregion
    }
}