using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BLL
{
    public class PMITrustManageService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        private static int count
        {
            get;
            set; 
        }
        /// 
        /// 定义变量
        /// 
        private static IQueryable qq = from x in db.PMI_TrustManage orderby x.PMITrustId select x;
        /// 
        /// 增加委托信息
        /// 
        /// 委托实体
        public static void AddCH_Trust(Model.PMI_TrustManage cH_Trust)
        {
            Model.SGGLDB db = Funs.DB;
            Model.PMI_TrustManage newCH_Trust = new Model.PMI_TrustManage();
            newCH_Trust.PMITrustId = cH_Trust.PMITrustId;
            newCH_Trust.PMIProjectName = cH_Trust.PMIProjectName;
            newCH_Trust.PMIUnitWorksName = cH_Trust.PMIUnitWorksName;
            newCH_Trust.SerialNum = cH_Trust.SerialNum;
            newCH_Trust.TestMethod = cH_Trust.TestMethod;
            newCH_Trust.TestStandard = cH_Trust.TestStandard;
            newCH_Trust.TesTratio = cH_Trust.TesTratio;
            newCH_Trust.QualifiedRequire = cH_Trust.QualifiedRequire;
            newCH_Trust.EntrustmentNo = cH_Trust.EntrustmentNo;
            //newCH_Trust.ConstructionUnitName = cH_Trust.ConstructionUnitName;
            //newCH_Trust.ConstructionHandledPeople = cH_Trust.ConstructionHandledPeople;
            //newCH_Trust.ConstructionTime = cH_Trust.ConstructionTime;
            //newCH_Trust.SupervisionUnitName = cH_Trust.SupervisionUnitName;
            //newCH_Trust.SupervisionEngineerPeople = cH_Trust.SupervisionEngineerPeople;
            //newCH_Trust.SupervisionTime = cH_Trust.SupervisionTime;
            //newCH_Trust.DepartMentName = cH_Trust.DepartMentName;
            //newCH_Trust.DepartEngineerPeople = cH_Trust.DepartEngineerPeople;
            //newCH_Trust.DepartTime = cH_Trust.DepartTime;
            //newCH_Trust.TestUnitName = cH_Trust.TestUnitName;
            //newCH_Trust.TestReceivePeople = cH_Trust.TestReceivePeople;
            //newCH_Trust.TestTime = cH_Trust.TestTime;
            newCH_Trust.CreateTime = DateTime.Now;
            newCH_Trust.ProjectId = cH_Trust.ProjectId;
            newCH_Trust.UnitCode = cH_Trust.UnitCode;
            newCH_Trust.AreaIdCode = cH_Trust.AreaIdCode;
            db.PMI_TrustManage.InsertOnSubmit(newCH_Trust);
            db.SubmitChanges();
        }
        /// 
        /// 修改焊接信息
        /// 
        /// 焊接实体
        public static void UpdateCH_Trust(Model.PMI_TrustManage cH_Trust)
        {
            Model.SGGLDB db = Funs.DB;
            Model.PMI_TrustManage newCH_Trust = db.PMI_TrustManage.First(e => e.PMITrustId == cH_Trust.PMITrustId);
            newCH_Trust.PMITrustId = cH_Trust.PMITrustId;
            newCH_Trust.PMIProjectName = cH_Trust.PMIProjectName;
            newCH_Trust.PMIUnitWorksName = cH_Trust.PMIUnitWorksName;
            newCH_Trust.SerialNum = cH_Trust.SerialNum;
            newCH_Trust.TestMethod = cH_Trust.TestMethod;
            newCH_Trust.TestStandard = cH_Trust.TestStandard;
            newCH_Trust.TesTratio = cH_Trust.TesTratio;
            newCH_Trust.QualifiedRequire = cH_Trust.QualifiedRequire;
            newCH_Trust.EntrustmentNo = cH_Trust.EntrustmentNo;
            //newCH_Trust.ConstructionUnitName = cH_Trust.ConstructionUnitName;
            //newCH_Trust.ConstructionHandledPeople = cH_Trust.ConstructionHandledPeople;
            //newCH_Trust.ConstructionTime = cH_Trust.ConstructionTime;
            //newCH_Trust.SupervisionUnitName = cH_Trust.SupervisionUnitName;
            //newCH_Trust.SupervisionEngineerPeople = cH_Trust.SupervisionEngineerPeople;
            //newCH_Trust.SupervisionTime = cH_Trust.SupervisionTime;
            //newCH_Trust.DepartMentName = cH_Trust.DepartMentName;
            //newCH_Trust.DepartEngineerPeople = cH_Trust.DepartEngineerPeople;
            //newCH_Trust.DepartTime = cH_Trust.DepartTime;
            //newCH_Trust.TestUnitName = cH_Trust.TestUnitName;
            //newCH_Trust.TestReceivePeople = cH_Trust.TestReceivePeople;
            //newCH_Trust.TestTime = cH_Trust.TestTime;
            //newCH_Trust.CreateTime = cH_Trust.CreateTime;
            newCH_Trust.ProjectId = cH_Trust.ProjectId;
            newCH_Trust.UnitCode = cH_Trust.UnitCode;
            newCH_Trust.AreaIdCode = cH_Trust.AreaIdCode;
            db.SubmitChanges();
        }
        /// 
        /// 根据主键删除委托信息
        /// 
        /// 委托主键
        public static void DeleteCH_TrustByCH_TrustID(string cH_TrustID)
        {
            
            var cH_Trust = from x in db.PMI_TrustManage where x.PMITrustId == cH_TrustID select x;
            db.PMI_TrustManage.DeleteAllOnSubmit(cH_Trust);
            db.SubmitChanges();
        }
        /// 
        /// 根据主键删除委托信息明细
        /// 
        /// 委托主键
        public static void DeleteCH_TrustItemByCH_TrustID(string cH_TrustID)
        {
            Model.SGGLDB db = Funs.DB;
            var cH_Trust = from x in db.PMI_TrustManage where x.PMITrustId == cH_TrustID select x;
            if (cH_Trust != null)
            {
                foreach (var item in cH_Trust)
                {
                    var jo = from x in db.PMI_TrustMangeItem where x.PMITrustID == item.PMITrustId select x;
                    if (jo!=null)
                    {
                        db.PMI_TrustMangeItem.DeleteAllOnSubmit(jo);
                    }                  
                }
                db.PMI_TrustManage.DeleteAllOnSubmit(cH_Trust);
                db.SubmitChanges();
            }
        }
        /// 
        /// 委托单号是否存在
        /// 
        /// 
        /// 
        /// 
        public static bool IsExistTrustCode(string projectId, string trustCode)
        {
            Model.SGGLDB db = Funs.DB;
            var q = from x in db.PMI_TrustManage where x.ProjectId == projectId && x.EntrustmentNo == trustCode select x;
            if (q.Count() > 0)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        public static Model.PMI_TrustManage GetCH_TrustByID(string CH_TrustID)
        {
            Model.SGGLDB db = Funs.DB;
            var view = db.PMI_TrustManage.FirstOrDefault(e => e.PMITrustId == CH_TrustID);
            return view;
        }
    }
}