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 StatementService
    {
        public static string IsAgree(Object type, Object res)
        {
            string result = string.Empty;
            if (type.ToString().Equals(Const.Statement_Compile) || type.ToString().Equals(Const.Statement_ReCompile))
            {
                res = null;
            }
            if (res != null)
            {
                if (Convert.ToBoolean(res))
                {
                    result = "是";
                }
                else
                {
                    result = "否";
                }
            }
            return result;
        }
        /// 
        /// 根据工程签证结算单Id删除一个工程签证结算单信息
        /// 
        /// 工程签证结算单Id
        public static void DeleteStatement(string statementId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_Statement statement = db.CQMS_Statement.First(e => e.StatementId == statementId);
            db.CQMS_Statement.DeleteOnSubmit(statement);
            db.SubmitChanges();
        }
        /// 
        /// 增加工程签证结算单信息
        /// 
        /// 工程签证结算单实体
        public static void AddStatement(Model.CQMS_Statement statement)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_Statement newStatement = new Model.CQMS_Statement();
            newStatement.StatementId = statement.StatementId;
            newStatement.ProjectId = statement.ProjectId;
            newStatement.SecretLevelId = statement.SecretLevelId;
            newStatement.StatementCode = statement.StatementCode;
            newStatement.Edition = statement.Edition;
            newStatement.ConfirmFormId = statement.ConfirmFormId;
            newStatement.UnitId = statement.UnitId;
            newStatement.ContractNo = statement.ContractNo;
            newStatement.TaskTheme = statement.TaskTheme;
            newStatement.ProductionSource = statement.ProductionSource;
            newStatement.JobContent = statement.JobContent;
            newStatement.PlanCost = statement.PlanCost;
            newStatement.AuditCost = statement.AuditCost;
            newStatement.RealCost = statement.RealCost;
            newStatement.CompileMan = statement.CompileMan;
            newStatement.CompileDate = statement.CompileDate;
            newStatement.State = statement.State;
            db.CQMS_Statement.InsertOnSubmit(newStatement);
            db.SubmitChanges();
        }
        /// 
        /// 修改工程签证结算单信息
        /// 
        /// 工程签证结算单实体
        public static void UpdateStatement(Model.CQMS_Statement statement)
        {
            Model.SGGLDB db = Funs.DB;
            Model.CQMS_Statement newStatement = db.CQMS_Statement.First(e => e.StatementId == statement.StatementId);
            newStatement.SecretLevelId = statement.SecretLevelId;
            newStatement.StatementCode = statement.StatementCode;
            newStatement.Edition = statement.Edition;
            newStatement.ConfirmFormId = statement.ConfirmFormId;
            newStatement.UnitId = statement.UnitId;
            newStatement.ContractNo = statement.ContractNo;
            newStatement.TaskTheme = statement.TaskTheme;
            newStatement.ProductionSource = statement.ProductionSource;
            newStatement.JobContent = statement.JobContent;
            newStatement.PlanCost = statement.PlanCost;
            newStatement.AuditCost = statement.AuditCost;
            newStatement.RealCost = statement.RealCost;
            newStatement.State = statement.State;
            db.SubmitChanges();
        }
        /// 
        /// 把状态转换代号为文字形式
        /// 
        /// 
        /// 
        /// 
        public static string ConvertState(object state)
        {
            if (state != null)
            {
                if (state.ToString() == BLL.Const.Statement_ReCompile)
                {
                    return "重报";
                }
                else if (state.ToString() == BLL.Const.Statement_Compile)
                {
                    return "编制";
                }
                else if (state.ToString() == BLL.Const.Statement_Audit1)
                {
                    return "分包项目经理审核";
                }
                else if (state.ToString() == BLL.Const.Statement_Audit2)
                {
                    return "费控工程师审核";
                }
                else if (state.ToString() == BLL.Const.Statement_Audit3)
                {
                    return "控制经理审核";
                }
                else if (state.ToString() == BLL.Const.Statement_Audit4)
                {
                    return "项目经理审核";
                }
                else if (state.ToString() == BLL.Const.Statement_Complete)
                {
                    return "审批完成";
                }
            }
            return "";
        }
        /// 
        /// 根据工程签证结算单Id获取一个工程签证结算单信息
        /// 
        /// 工程签证结算单Id
        /// 一个工程签证结算单实体
        public static Model.CQMS_Statement GetStatementByStatementId(string statementId)
        {
            return Funs.DB.CQMS_Statement.FirstOrDefault(x => x.StatementId == statementId);
        }
        /// 
        /// 根据工程签证结算单Id获取一个工程签证结算单信息
        /// 
        /// 工程签证结算单Id
        /// 一个工程签证结算单实体
        public static Model.CQMS_Statement GetStatementByConfirmFormId(string confirmFormId)
        {
            return Funs.DB.CQMS_Statement.FirstOrDefault(x => x.ConfirmFormId == confirmFormId);
        }
        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.Statement_Compile || state == Const.Statement_ReCompile)  //无是否同意
            {
                ListItem[] lis = new ListItem[1];
                lis[0] = new ListItem("分包项目经理审核", Const.Statement_Audit1);
                return lis;
            }
            else if (state == Const.Statement_Audit1)//有是否同意
            {
                ListItem[] lis = new ListItem[2];
                lis[0] = new ListItem("费控工程师审核", Const.Statement_Audit2);//是 加载
                lis[1] = new ListItem("重新编制", Const.Statement_ReCompile);//是 加载
                return lis;
            }
            else
                return null;
        }
        /// 
        ///  根据项目id获取工程签证结算单下拉框
        /// 
        /// 下拉框名字
        /// 是否显示请选择
        public static void InitStatementList(FineUIPro.DropDownList dropName, string projectId, bool isShowPlease)
        {
            dropName.DataValueField = "StatementId";
            dropName.DataTextField = "StatementCode";
            dropName.DataSource = GetStatementList(projectId);
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName);
            }
        }
        /// 
        /// 根据项目Id获取单位名称下拉选择项
        /// 
        /// 
        /// 
        public static List GetStatementList(string projectId)
        {
            using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString))
            {
                var q = (from x in db.CQMS_Statement
                         where x.ProjectId == projectId && x.State == BLL.Const.Statement_Complete
                         orderby x.StatementCode
                         select x).ToList();
                return q;
            }
        }
    }
}