using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web.UI.WebControls;
namespace BLL
{
    public class WorkOrderService
    {
        public static string IsAgree(Object type, Object res)
        {
            string result = string.Empty;
            if (type.ToString().Equals(Const.WorkOrder_Compile) || type.ToString().Equals(Const.WorkOrder_ReCompile))
            {
                res = null;
            }
            if (res != null)
            {
                if (Convert.ToBoolean(res))
                {
                    result = "是";
                }
                else
                {
                    result = "否";
                }
            }
            return result;
        }
        /// 
        /// 根据工程签证工作委托单Id删除一个工程签证工作委托单信息
        /// 
        /// 工程签证工作委托单Id
        public static void DeleteWorkOrder(string workOrderId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_WorkOrder workOrder = db.CQMS_WorkOrder.First(e => e.WorkOrderId == workOrderId);
            db.CQMS_WorkOrder.DeleteOnSubmit(workOrder);
            db.SubmitChanges();
        }
        /// 
        /// 增加工程签证工作委托单信息
        /// 
        /// 工程签证工作委托单实体
        public static void AddWorkOrder(Model.CQMS_WorkOrder workOrder)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_WorkOrder newWorkOrder = new Model.CQMS_WorkOrder();
            newWorkOrder.WorkOrderId = workOrder.WorkOrderId;
            newWorkOrder.ProjectId = workOrder.ProjectId;
            newWorkOrder.SecretLevelId = workOrder.SecretLevelId;
            newWorkOrder.WorkOrderCode = workOrder.WorkOrderCode;
            newWorkOrder.Edition = workOrder.Edition;
            newWorkOrder.UnitId = workOrder.UnitId;
            newWorkOrder.ContractNo = workOrder.ContractNo;
            newWorkOrder.TaskTheme = workOrder.TaskTheme;
            newWorkOrder.ContentDescription = workOrder.ContentDescription;
            newWorkOrder.ImplementationRequirements = workOrder.ImplementationRequirements;
            newWorkOrder.CompileMan = workOrder.CompileMan;
            newWorkOrder.CompileDate = workOrder.CompileDate;
            newWorkOrder.State = workOrder.State;
            db.CQMS_WorkOrder.InsertOnSubmit(newWorkOrder);
            db.SubmitChanges();
        }
        /// 
        /// 修改工程签证工作委托单信息
        /// 
        /// 工程签证工作委托单实体
        public static void UpdateWorkOrder(Model.CQMS_WorkOrder workOrder)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_WorkOrder newWorkOrder = db.CQMS_WorkOrder.First(e => e.WorkOrderId == workOrder.WorkOrderId);
            newWorkOrder.SecretLevelId = workOrder.SecretLevelId;
            newWorkOrder.WorkOrderCode = workOrder.WorkOrderCode;
            newWorkOrder.Edition = workOrder.Edition;
            newWorkOrder.UnitId = workOrder.UnitId;
            newWorkOrder.ContractNo = workOrder.ContractNo;
            newWorkOrder.TaskTheme = workOrder.TaskTheme;
            newWorkOrder.ContentDescription = workOrder.ContentDescription;
            newWorkOrder.ImplementationRequirements = workOrder.ImplementationRequirements;
            newWorkOrder.State = workOrder.State;
            db.SubmitChanges();
        }
        /// 
        /// 把状态转换代号为文字形式
        /// 
        /// 
        /// 
        /// 
        public static string ConvertState(object state)
        {
            if (state != null)
            {
                if (state.ToString() == BLL.Const.WorkOrder_ReCompile)
                {
                    return "重报";
                }
                else if (state.ToString() == BLL.Const.WorkOrder_Compile)
                {
                    return "编制";
                }
                else if (state.ToString() == BLL.Const.WorkOrder_Audit1)
                {
                    return "专业经理审核";
                }
                else if (state.ToString() == BLL.Const.WorkOrder_Complete)
                {
                    return "审批完成";
                }
            }
            return "";
        }
        /// 
        /// 根据工程签证工作委托单Id获取一个工程签证工作委托单信息
        /// 
        /// 工程签证工作委托单Id
        /// 一个工程签证工作委托单实体
        public static Model.CQMS_WorkOrder GetWorkOrderByWorkOrderId(string workOrderId)
        {
            return Funs.DB.CQMS_WorkOrder.FirstOrDefault(x => x.WorkOrderId == workOrderId);
        }
        public static void Init(FineUIPro.DropDownList dropName, string state, bool isShowPlease)
        {
            dropName.DataValueField = "Value";
            dropName.DataTextField = "Text";
            dropName.DataSource = GetDHandleTypeByState(state);
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        /// 
        /// 根据状态选择下一步办理类型
        /// 
        /// 
        /// 
        public static ListItem[] GetDHandleTypeByState(string state)
        {
            if (state == Const.WorkOrder_Compile || state == Const.WorkOrder_ReCompile)  //无是否同意
            {
                ListItem[] lis = new ListItem[1];
                lis[0] = new ListItem("专业经理审核", Const.WorkOrder_Audit1);
                return lis;
            }
            else if (state == Const.WorkOrder_Audit1)//有是否同意
            {
                ListItem[] lis = new ListItem[2];
                lis[0] = new ListItem("审批完成", Const.WorkOrder_Complete);//是 加载
                lis[1] = new ListItem("重新编制", Const.WorkOrder_ReCompile);//是 加载
                return lis;
            }
            else
                return null;
        }
        /// 
        ///  根据项目id获取工程签证工作委托单下拉框
        /// 
        /// 下拉框名字
        /// 是否显示请选择
        public static void InitWorkOrderList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease)
        {
            dropName.DataValueField = "WorkOrderId";
            dropName.DataTextField = "WorkOrderCode";
            dropName.DataSource = GetWorkOrderList(projectId);
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        /// 
        /// 根据项目Id获取单位名称下拉选择项
        /// 
        /// 
        /// 
        public static List GetWorkOrderList(string projectId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var q = (from x in db.CQMS_WorkOrder
                         where x.ProjectId == projectId && x.State == BLL.Const.WorkOrder_Complete
                         orderby x.WorkOrderCode
                         select x).ToList();
                return q;
            }
        }
    }
}