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 VisaApplicationService
    {
        public static string IsAgree(Object type, Object res)
        {
            string result = string.Empty;
            if (type.ToString().Equals(Const.VisaApplication_Compile) || type.ToString().Equals(Const.VisaApplication_ReCompile))
            {
                res = null;
            }
            if (res != null)
            {
                if (Convert.ToBoolean(res))
                {
                    result = "是";
                }
                else
                {
                    result = "否";
                }
            }
            return result;
        }
        /// 
        /// 根据工程签证申请/评审表Id删除一个工程签证申请/评审表信息
        /// 
        /// 工程签证申请/评审表Id
        public static void DeleteVisaApplication(string visaApplicationId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_VisaApplication visaApplication = db.CQMS_VisaApplication.First(e => e.VisaApplicationId == visaApplicationId);
            db.CQMS_VisaApplication.DeleteOnSubmit(visaApplication);
            db.SubmitChanges();
        }
        /// 
        /// 增加工程签证申请/评审表信息
        /// 
        /// 工程签证申请/评审表实体
        public static void AddVisaApplication(Model.CQMS_VisaApplication visaApplication)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_VisaApplication newVisaApplication = new Model.CQMS_VisaApplication();
            newVisaApplication.VisaApplicationId = visaApplication.VisaApplicationId;
            newVisaApplication.ProjectId = visaApplication.ProjectId;
            newVisaApplication.SecretLevelId = visaApplication.SecretLevelId;
            newVisaApplication.VisaApplicationCode = visaApplication.VisaApplicationCode;
            newVisaApplication.Edition = visaApplication.Edition;
            newVisaApplication.TaskTheme = visaApplication.TaskTheme;
            newVisaApplication.ContractNo = visaApplication.ContractNo;
            newVisaApplication.ApplicableProcedures = visaApplication.ApplicableProcedures;
            newVisaApplication.UnitId = visaApplication.UnitId;
            newVisaApplication.Reasons = visaApplication.Reasons;
            newVisaApplication.JobDescription = visaApplication.JobDescription;
            newVisaApplication.CompileMan = visaApplication.CompileMan;
            newVisaApplication.CompileDate = visaApplication.CompileDate;
            newVisaApplication.EstimatedCost = visaApplication.EstimatedCost;
            newVisaApplication.ApplicableProcedures = visaApplication.ApplicableProcedures;
            newVisaApplication.State = visaApplication.State;
            db.CQMS_VisaApplication.InsertOnSubmit(newVisaApplication);
            db.SubmitChanges();
        }
        /// 
        /// 修改工程签证申请/评审表信息
        /// 
        /// 工程签证申请/评审表实体
        public static void UpdateVisaApplication(Model.CQMS_VisaApplication visaApplication)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_VisaApplication newVisaApplication = db.CQMS_VisaApplication.First(e => e.VisaApplicationId == visaApplication.VisaApplicationId);
            newVisaApplication.SecretLevelId = visaApplication.SecretLevelId;
            newVisaApplication.VisaApplicationCode = visaApplication.VisaApplicationCode;
            newVisaApplication.Edition = visaApplication.Edition;
            newVisaApplication.TaskTheme = visaApplication.TaskTheme;
            newVisaApplication.ContractNo = visaApplication.ContractNo;
            newVisaApplication.ApplicableProcedures = visaApplication.ApplicableProcedures;
            newVisaApplication.UnitId = visaApplication.UnitId;
            newVisaApplication.Reasons = visaApplication.Reasons;
            newVisaApplication.JobDescription = visaApplication.JobDescription;
            newVisaApplication.EstimatedCost = visaApplication.EstimatedCost;
            newVisaApplication.ApprovalComments = visaApplication.ApprovalComments;
            newVisaApplication.State = visaApplication.State;
            db.SubmitChanges();
        }
        /// 
        /// 把状态转换代号为文字形式
        /// 
        /// 
        /// 
        /// 
        public static string ConvertState(object state)
        {
            if (state != null)
            {
                if (state.ToString() == BLL.Const.VisaApplication_ReCompile)
                {
                    return "重报";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Compile)
                {
                    return "编制";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Audit1)
                {
                    return "专业经理审核";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Audit2)
                {
                    return "会签";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Audit3)
                {
                    return "费控工程师审核";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Audit4)
                {
                    return "控制经理审核";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Audit5)
                {
                    return "专业经理审核";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Audit6)
                {
                    return "项目经理审核";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Audit7)
                {
                    return "项目管理部审核";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Audit8)
                {
                    return "生产分管领导审核";
                }
                else if (state.ToString() == BLL.Const.VisaApplication_Complete)
                {
                    return "审批完成";
                }
            }
            return "";
        }
        /// 
        /// 根据工程签证申请/评审表Id获取一个工程签证申请/评审表信息
        /// 
        /// 工程签证申请/评审表Id
        /// 一个工程签证申请/评审表实体
        public static Model.CQMS_VisaApplication GetVisaApplicationByVisaApplicationId(string visaApplicationId)
        {
            return Funs.DB.CQMS_VisaApplication.FirstOrDefault(x => x.VisaApplicationId == visaApplicationId);
        }
        /// 
        /// 获取方案类别
        /// 
        /// 
        /// 
        public static string ConvertSolutionType(object solutionType)
        {
            if (solutionType != null)
            {
                if (solutionType.ToString() == "1")
                {
                    return "施工组织设计";
                }
                else if (solutionType.ToString() == "2")
                {
                    return "专项施工方案";
                }
                else if (solutionType.ToString() == "3")
                {
                    return "施工方案";
                }
            }
            return "";
        }
        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.VisaApplication_Compile || state == Const.VisaApplication_ReCompile)  //无是否同意
            {
                ListItem[] lis = new ListItem[1];
                lis[0] = new ListItem("专业经理审核", Const.VisaApplication_Audit1);
                return lis;
            }
            else if (state == Const.VisaApplication_Audit3)//有是否同意
            {
                ListItem[] lis = new ListItem[2];
                lis[0] = new ListItem("控制经理审核", Const.VisaApplication_Audit4);//是 加载
                lis[1] = new ListItem("重报", Const.VisaApplication_ReCompile);
                return lis;
            }
            else if (state == Const.VisaApplication_Audit4)//有是否同意
            {
                ListItem[] lis = new ListItem[2];
                lis[0] = new ListItem("专业经理审核", Const.VisaApplication_Audit5);//是 加载
                lis[1] = new ListItem("重报", Const.VisaApplication_ReCompile);
                return lis;
            }
            else if (state == Const.VisaApplication_Audit5)//有是否同意
            {
                ListItem[] lis = new ListItem[5];
                lis[0] = new ListItem("项目经理审核", Const.VisaApplication_Audit6);
                lis[1] = new ListItem("项目管理部审核", Const.VisaApplication_Audit7);
                lis[2] = new ListItem("生产分管领导审核", Const.VisaApplication_Audit8);
                lis[3] = new ListItem("审批完成", Const.VisaApplication_Complete);
                lis[4] = new ListItem("重报", Const.VisaApplication_ReCompile);
                return lis;
            }
            else if (state == Const.VisaApplication_Audit6)//有是否同意
            {
                ListItem[] lis = new ListItem[4];
                lis[0] = new ListItem("项目管理部审核", Const.VisaApplication_Audit7);
                lis[1] = new ListItem("生产分管领导审核", Const.VisaApplication_Audit8);
                lis[2] = new ListItem("审批完成", Const.VisaApplication_Complete);
                lis[3] = new ListItem("重报", Const.VisaApplication_ReCompile);
                return lis;
            }
            else if (state == Const.VisaApplication_Audit7)//有是否同意
            {
                ListItem[] lis = new ListItem[3];
                lis[0] = new ListItem("生产分管领导审核", Const.VisaApplication_Audit8);
                lis[1] = new ListItem("审批完成", Const.VisaApplication_Complete);
                lis[2] = new ListItem("重报", Const.VisaApplication_ReCompile);
                return lis;
            }
            else if (state == Const.VisaApplication_Audit8)//有是否同意
            {
                ListItem[] lis = new ListItem[2];
                lis[0] = new ListItem("审批完成", Const.VisaApplication_Complete);
                lis[1] = new ListItem("重报", Const.VisaApplication_ReCompile);
                return lis;
            }
            else
                return null;
        }
    }
}