using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace BLL
{
    /// 
    /// 无损委托明细
    /// 
    public static class Batch_BatchTrustItemService
    {
        /// 
        /// 根据主键获取无损委托明细
        /// 
        /// 
        /// 
        public static Model.HJGL_Batch_BatchTrustItem GetBatchTrustItemById(string trustBatchItemId)
        {
            Model.SGGLDB db = Funs.DB;
            return db.HJGL_Batch_BatchTrustItem.FirstOrDefault(e => e.TrustBatchItemId == trustBatchItemId);
        }
        /// 
        /// 根据无损委托Id获取相关明细信息
        /// 
        /// 
        /// 
        public static List GetBatchTrustItemByTrustBatchId(string trustBatchId)
        {
            Model.SGGLDB db = Funs.DB;
            return (from x in db.HJGL_Batch_BatchTrustItem where x.TrustBatchId == trustBatchId select x).ToList();
        }
        /// 
        /// 添加无损委托明细
        /// 
        /// 
        public static void AddBatchTrustItem(Model.HJGL_Batch_BatchTrustItem batchTrustItem)
        {
            Model.SGGLDB db = Funs.DB;
            Model.HJGL_Batch_BatchTrustItem newTrustBatchItem = new Model.HJGL_Batch_BatchTrustItem
            {
                TrustBatchItemId = batchTrustItem.TrustBatchItemId,
                TrustBatchId = batchTrustItem.TrustBatchId,
                PointBatchItemId = batchTrustItem.PointBatchItemId,
                RepairRecordId = batchTrustItem.RepairRecordId,
                WeldJointId = batchTrustItem.WeldJointId,
                CreateDate = batchTrustItem.CreateDate,
                RepairNum = batchTrustItem.RepairNum,
            };
            db.HJGL_Batch_BatchTrustItem.InsertOnSubmit(newTrustBatchItem);
            db.SubmitChanges();
            UpdateTrustNum(batchTrustItem.TrustBatchItemId, 1);
        }
        /// 
        /// 修改无损委托
        /// 
        /// 
        public static void UpdateBatchTrustItem(Model.HJGL_Batch_BatchTrustItem batchTrustItem)
        {
            Model.SGGLDB db = Funs.DB;
            Model.HJGL_Batch_BatchTrustItem newBatchTrustItem = db.HJGL_Batch_BatchTrustItem.FirstOrDefault(e => e.TrustBatchItemId == batchTrustItem.TrustBatchItemId);
            if (newBatchTrustItem != null)
            {
                newBatchTrustItem.PointBatchItemId = batchTrustItem.PointBatchItemId;
                newBatchTrustItem.WeldJointId = batchTrustItem.WeldJointId;
                newBatchTrustItem.CreateDate = batchTrustItem.CreateDate;
                newBatchTrustItem.RepairNum = batchTrustItem.RepairNum;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据无损委托Id获取相关明细视图信息
        /// 
        /// 
        /// 
        /// 
        public static List GetViewBatchTrustItem(string trustBatchId)
        {
            Model.SGGLDB db = Funs.DB;
            return (from x in db.View_Batch_BatchTrustItem where x.TrustBatchId == trustBatchId select x).ToList();
        }
 
	/// 
        /// 根据Id删除明细信息
        /// 
        /// 
        public static void DeleteTrustItemByTrustBatchItemId(string trustBatchItemId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.HJGL_Batch_BatchTrustItem trustItem = db.HJGL_Batch_BatchTrustItem.FirstOrDefault(e => e.TrustBatchItemId == trustBatchItemId);
            if (trustItem != null)
            {
                UpdateTrustNum(trustBatchItemId, -1);
                db.HJGL_Batch_BatchTrustItem.DeleteOnSubmit(trustItem);
                db.SubmitChanges();
            }
        }
        /// 
        /// 更新委托次数
        /// 
        /// 委托批明细ID
        /// 
        public static void UpdateTrustNum(string trustBatchItemId, int num)
        {
            Model.SGGLDB db = Funs.DB;
            var trustBatchItem = db.HJGL_Batch_BatchTrustItem.FirstOrDefault(x => x.TrustBatchItemId == trustBatchItemId);
            if (trustBatchItem != null)
            {
                trustBatchItem.TrustNum = trustBatchItem.TrustNum ?? 0 + num;
                if (trustBatchItem.TrustNum < 0)
                {
                    trustBatchItem.TrustNum = 0;
                }
            }
            db.SubmitChanges();
        }
        #region 是否满足生成委托条件
        /// 
        /// 是否满足生成委托条件
        /// 
        /// 
        public static bool GetIsGenerateTrust(string pointBatchItemId)
        {
            bool isShow = true;
            var trustBatchItem = Funs.DB.HJGL_Batch_BatchTrustItem.FirstOrDefault(x => x.PointBatchItemId == pointBatchItemId);
            if (trustBatchItem != null)
            {
                var checkItem = Funs.DB.HJGL_Batch_NDEItem.FirstOrDefault(x => x.TrustBatchItemId == trustBatchItem.TrustBatchItemId && x.CheckResult == "1");
                if (checkItem != null)
                {
                    isShow = false;
                }
            }
            return isShow;
        }
        #endregion
    }
}