using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
    /// 
    /// 无损委托
    /// 
    public static class Batch_BatchTrustService
    {        
        /// 
        /// 根据主键获取无损委托
        /// 
        /// 
        /// 
        public static Model.Batch_BatchTrust GetBatchTrustById(string trustBatchId)
        {
            Model.HJGLDB db = Funs.DB;
            return db.Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == trustBatchId);
        }
        /// 
        /// 根据主键获取无损委托视图
        /// 
        /// 
        /// 
        public static Model.View_Batch_BatchTrust GetBatchTrustViewById(string trustBatchId)
        {
            Model.HJGLDB db = Funs.DB;
            return db.View_Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == trustBatchId);
        }
        #region 更新委托单 检测状态
        /// 
        /// 更新委托单 检测状态
        /// 
        /// 
        /// 
        public static void UpdatTrustBatchtState(string trustBatchId, bool isCheck)
        {
            Model.HJGLDB db = Funs.DB;
            Model.Batch_BatchTrust update = db.Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == trustBatchId);
            if (update != null)
            {
                update.IsCheck = isCheck;
                db.SubmitChanges();
            }
        }
        #endregion
        /// 
        /// 添加无损委托
        /// 
        /// 
        public static void AddBatchTrust(Model.Batch_BatchTrust batchTrust)
        {
            Model.HJGLDB db = Funs.DB;
            Model.Batch_BatchTrust newBatchTrust = new Model.Batch_BatchTrust
            {
                TrustBatchId = batchTrust.TrustBatchId,
                TrustBatchCode = batchTrust.TrustBatchCode,
                TrustDate = batchTrust.TrustDate,
                ProjectId = batchTrust.ProjectId,
                UnitId = batchTrust.UnitId,
                InstallationId = batchTrust.InstallationId,
                WorkAreaId = batchTrust.WorkAreaId,
                PipelineId = batchTrust.PipelineId,
                WeldingMethodId = batchTrust.WeldingMethodId,
                GrooveTypeId=batchTrust.GrooveTypeId,
                IsWelderFirst=batchTrust.IsWelderFirst,
                TrustType = batchTrust.TrustType,
                DetectionTypeId = batchTrust.DetectionTypeId,
                IsCheck = batchTrust.IsCheck,
                TopointBatch = batchTrust.TopointBatch
            };
            db.Batch_BatchTrust.InsertOnSubmit(newBatchTrust);
            db.SubmitChanges();
        }
        /// 
        /// 修改无损委托
        /// 
        /// 
        public static void UpdateBatchTrust(Model.Batch_BatchTrust batchTrust)
        {
            Model.HJGLDB db = Funs.DB;
            Model.Batch_BatchTrust newBatchTrust = db.Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == batchTrust.TrustBatchId);
            if (newBatchTrust != null)
            {
                newBatchTrust.TrustBatchCode = batchTrust.TrustBatchCode;
                newBatchTrust.TrustDate = batchTrust.TrustDate;
                newBatchTrust.ProjectId = batchTrust.ProjectId;
                newBatchTrust.UnitId = batchTrust.UnitId;
                newBatchTrust.InstallationId = batchTrust.InstallationId;
                newBatchTrust.WorkAreaId = batchTrust.WorkAreaId;
                newBatchTrust.PipelineId = batchTrust.PipelineId;
                newBatchTrust.WeldingMethodId = batchTrust.WeldingMethodId;
                newBatchTrust.GrooveTypeId = batchTrust.GrooveTypeId;
                newBatchTrust.IsWelderFirst = batchTrust.IsWelderFirst;
                newBatchTrust.TrustType = batchTrust.TrustType;
                newBatchTrust.DetectionTypeId = batchTrust.DetectionTypeId;
                newBatchTrust.IsCheck = batchTrust.IsCheck;
                newBatchTrust.TopointBatch = batchTrust.TopointBatch;
                db.SubmitChanges();
            }
        }
        public static void BatchTrustNDEUnit(string batchTrustId, string ndeUnit,string trustBatchCode, string surfaceState, string detectionTiming, string quaCertFile,string acceptStandard,DateTime? trustDate)
        {
            Model.HJGLDB db = Funs.DB;
            Model.Batch_BatchTrust newBatchTrust = db.Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == batchTrustId);
            if (newBatchTrust != null)
            {
                newBatchTrust.TrustBatchCode = trustBatchCode;
                newBatchTrust.NDEUuit = ndeUnit;
                newBatchTrust.SurfaceState = surfaceState;
                newBatchTrust.DetectionTiming = detectionTiming;
                newBatchTrust.QuaCertFile = quaCertFile;
                newBatchTrust.AcceptStandard = acceptStandard;
                newBatchTrust.TrustDate = trustDate;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除无损委托
        /// 
        /// 
        public static void DeleteBatchTrustById(string trustBatchId)
        {
            Model.HJGLDB db = Funs.DB;
            Model.Batch_BatchTrust batchTrust = db.Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == trustBatchId);
            if (batchTrust != null)
            {
                db.Batch_BatchTrust.DeleteOnSubmit(batchTrust);
                db.SubmitChanges();
            }
        }
        /// 
        /// 无损委托委托单编号是否存在
        /// 
        /// 
        /// 
        /// 
        public static bool IsExistTrustCode(string trustBatchCode, string trustBatchId, string projectId)
        {
            var q = Funs.DB.Batch_BatchTrust.FirstOrDefault(x => x.TrustBatchCode == trustBatchCode && x.ProjectId == projectId && x.TrustBatchId != trustBatchId);
            if (q != null)
            {
                return true;
            }
            else
            {
                return false;
            }
        }
        #region 委托单下拉项
        /// 
        /// 委托单下拉项
        /// 
        /// 下拉框名称
        /// 是否显示请选择
        /// 耗材类型
        public static void InitTrustBatchDropDownList(FineUIPro.DropDownList dropName, bool isShowPlease, string unitId, string installationId, string detectionTypeId, string pipelineCode, string itemText)
        {
            dropName.DataValueField = "TrustBatchId";
            dropName.DataTextField = "TrustBatchCode";
            var q = from x in Funs.DB.View_Batch_BatchTrust
                    where x.UnitId == unitId && x.InstallationId == installationId && x.DetectionTypeId == detectionTypeId
                          && x.CheckTrustBatchId == null
                    select x;
            if (!string.IsNullOrEmpty(pipelineCode))
            {
                q = from x in Funs.DB.View_Batch_BatchTrust
                    where x.UnitId == unitId && x.InstallationId == installationId && x.DetectionTypeId == detectionTypeId
                          && x.PipelineCode.Contains(pipelineCode) && x.CheckTrustBatchId == null
                    select x;
            }
            dropName.DataSource = q;
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName, itemText);
            }
        }
        #endregion
    }
}