using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
    /// 
    /// 无损委托
    /// 
    public static class Batch_BatchTrustService
    {        
        /// 
        /// 根据主键获取无损委托
        /// 
        /// 
        /// 
        public static Model.HJGL_Batch_BatchTrust GetBatchTrustById(string trustBatchId)
        {
            Model.SGGLDB db = Funs.DB;
            return db.HJGL_Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == trustBatchId);
        }
        /// 
        /// 根据主键获取无损委托视图
        /// 
        /// 
        /// 
        public static Model.View_Batch_BatchTrust GetBatchTrustViewById(string trustBatchId)
        {
            Model.SGGLDB db = Funs.DB;
            return db.View_Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == trustBatchId);
        }
        #region 更新委托单 检测状态
        /// 
        /// 更新委托单 检测状态
        /// 
        /// 
        /// 
        public static void UpdatTrustBatchtState(string trustBatchId, bool? isCheck)
        {
            Model.SGGLDB db = Funs.DB;
            Model.HJGL_Batch_BatchTrust update = db.HJGL_Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == trustBatchId);
            if (update != null)
            {
                update.IsCheck = isCheck;
                db.SubmitChanges();
            }
        }
        #endregion
        /// 
        /// 添加无损委托
        /// 
        /// 
        public static void AddBatchTrust(Model.HJGL_Batch_BatchTrust batchTrust)
        {
            Model.SGGLDB db = Funs.DB;
            Model.HJGL_Batch_BatchTrust newBatchTrust = new Model.HJGL_Batch_BatchTrust
            {
                TrustBatchId = batchTrust.TrustBatchId,
                TrustBatchCode = batchTrust.TrustBatchCode,
                TrustDate = batchTrust.TrustDate,
                ProjectId = batchTrust.ProjectId,
                UnitId = batchTrust.UnitId,
                UnitWorkId = batchTrust.UnitWorkId,
                DetectionRateId = batchTrust.DetectionRateId,
                NDEUuit=batchTrust.NDEUuit,
                TrustType = batchTrust.TrustType,
                DetectionTypeId = batchTrust.DetectionTypeId,
                IsCheck = batchTrust.IsCheck,
                TopointBatch = batchTrust.TopointBatch,
                IsAudit = true
        };
            db.HJGL_Batch_BatchTrust.InsertOnSubmit(newBatchTrust);
            db.SubmitChanges();
        }
        /// 
        /// 修改无损委托
        /// 
        /// 
        public static void UpdateBatchTrust(Model.HJGL_Batch_BatchTrust batchTrust)
        {
            Model.SGGLDB db = Funs.DB;
            Model.HJGL_Batch_BatchTrust newBatchTrust = db.HJGL_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.UnitWorkId = batchTrust.UnitWorkId;
                newBatchTrust.DetectionRateId = batchTrust.DetectionRateId;
                newBatchTrust.NDEUuit = batchTrust.NDEUuit;
                newBatchTrust.TrustType = batchTrust.TrustType;
                newBatchTrust.DetectionTypeId = batchTrust.DetectionTypeId;
                newBatchTrust.IsCheck = batchTrust.IsCheck;
                newBatchTrust.TopointBatch = batchTrust.TopointBatch;
                db.SubmitChanges();
            }
        }
        public static void UpdateBatchTrustAudit(string batchTrustId, bool isAudit)
        {
            Model.SGGLDB db = Funs.DB;
            Model.HJGL_Batch_BatchTrust newBatchTrust = db.HJGL_Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == batchTrustId);
            if (newBatchTrust != null)
            {
                newBatchTrust.IsAudit = isAudit;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除无损委托
        /// 
        /// 
        public static void DeleteBatchTrustById(string trustBatchId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.HJGL_Batch_BatchTrust batchTrust = db.HJGL_Batch_BatchTrust.FirstOrDefault(e => e.TrustBatchId == trustBatchId);
            if (batchTrust != null)
            {
                db.HJGL_Batch_BatchTrust.DeleteOnSubmit(batchTrust);
                db.SubmitChanges();
            }
        }
        /// 
        /// 无损委托委托单编号是否存在
        /// 
        /// 
        /// 
        /// 
        public static bool IsExistTrustCode(string trustBatchCode, string trustBatchId, string projectId)
        {
            var q = Funs.DB.HJGL_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 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.DetectionTypeId == detectionTypeId
                          && x.CheckTrustBatchId == null
                    select x;       // 管线TODO
            dropName.DataSource = q;
            dropName.DataBind();
            if (isShowPlease)
            {
                Funs.FineUIPleaseSelect(dropName, itemText);
            }
        }
        #endregion
    }
}