using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace BLL
{
    /// <summary>
    /// 季度工程项目质量信息表
    /// </summary>
    public static class ProjectQuarterlyProjectQualityService
    {
        /// <summary>
        /// 根据主键获取季度工程项目质量信息表
        /// </summary>
        /// <param name="quarterlyProjectQualityId"></param>
        /// <returns></returns>
        public static Model.InformationProject_QuarterlyProjectQuality GetQuarterlyProjectQualityById(string quarterlyProjectQualityId)
        {
            return Funs.DB.InformationProject_QuarterlyProjectQuality.FirstOrDefault(e => e.QuarterlyProjectQualityId == quarterlyProjectQualityId);
        }

        /// <summary>
        /// 季度工程项目质量信息表
        /// </summary>
        /// <param name="unitId">单位Id</param>
        /// <param name="year">年度</param>
        /// <returns>季度工程项目质量信息表</returns>
        public static Model.InformationProject_QuarterlyProjectQuality GetQuarterlyProjectQualityByUnitIdAndYearAndQuarter(string unitId, int year,int quarter)
        {
            return Funs.DB.InformationProject_QuarterlyProjectQuality.FirstOrDefault(e => e.UnitId == unitId && e.Year == year && e.Quarter == quarter);
        }
        
        /// <summary>
        /// 添加季度工程项目质量信息表
        /// </summary>
        /// <param name="quarterlyProjectQuality"></param>
        public static void AddQuarterlyProjectQuality(Model.InformationProject_QuarterlyProjectQuality quarterlyProjectQuality)
        {
            Model.InformationProject_QuarterlyProjectQuality newQuarterlyProjectQuality = new Model.InformationProject_QuarterlyProjectQuality
            {
                QuarterlyProjectQualityId = quarterlyProjectQuality.QuarterlyProjectQualityId,
                ProjectId = quarterlyProjectQuality.ProjectId,
                UnitId = quarterlyProjectQuality.UnitId,
                Year=quarterlyProjectQuality.Year,
                Quarter = quarterlyProjectQuality.Quarter,
                QualityManagePersonNum=quarterlyProjectQuality.QualityManagePersonNum,
                AdvancedTitlePersonNum=quarterlyProjectQuality.AdvancedTitlePersonNum,
                IntermediateTitlePersonNum=quarterlyProjectQuality.IntermediateTitlePersonNum,
                BeImplementedProjectNum=quarterlyProjectQuality.BeImplementedProjectNum,
                StartImplementedProjectNum=quarterlyProjectQuality.StartImplementedProjectNum,
                AccumulativeStartImplemented=quarterlyProjectQuality.AccumulativeStartImplemented,
                CompleteProjectNum=quarterlyProjectQuality.CompleteProjectNum,
                YearCompleteProjectNum = quarterlyProjectQuality.YearCompleteProjectNum,
                QuarterTotal= quarterlyProjectQuality.QuarterTotal,
                QuarterFirstPassNum=quarterlyProjectQuality.QuarterFirstPassNum,
                QuarterFirstPassRate=quarterlyProjectQuality.QuarterFirstPassRate,
                YearTotal=quarterlyProjectQuality.YearTotal,
                YearFirstPassNum=quarterlyProjectQuality.YearFirstPassNum,
                YearFirstPassRate=quarterlyProjectQuality.YearFirstPassRate,
                QuaterCheckSuperviseNum=quarterlyProjectQuality.QuaterCheckSuperviseNum,
                QuaterCorrectiveNoticeNum=quarterlyProjectQuality.QuaterCorrectiveNoticeNum,
                QuaterQualityProblemNum=quarterlyProjectQuality.QuaterQualityProblemNum,
                QuaterClosedQualityProblemNum=quarterlyProjectQuality.QuaterClosedQualityProblemNum,
                YearCheckSuperviseNum = quarterlyProjectQuality.YearCheckSuperviseNum,
                YearCorrectiveNoticeNum=quarterlyProjectQuality.YearCorrectiveNoticeNum,
                YearQualityProblemNum = quarterlyProjectQuality.YearQualityProblemNum,
                YearClosedQualityProblemNum=quarterlyProjectQuality.YearClosedQualityProblemNum,
                QuaterQualityAccidentNum = quarterlyProjectQuality.QuaterQualityAccidentNum,
                QuaterDirectEconomicLoss = quarterlyProjectQuality.QuaterDirectEconomicLoss,
                YearQualityAccidentNum = quarterlyProjectQuality.YearQualityAccidentNum,
                YearDirectEconomicLoss=quarterlyProjectQuality.YearDirectEconomicLoss,
                ResponsiblePerson=quarterlyProjectQuality.ResponsiblePerson,
                CompileMan = quarterlyProjectQuality.CompileMan,
                CompileDate = quarterlyProjectQuality.CompileDate,
                Tel=quarterlyProjectQuality.Tel
            };
            Funs.DB.InformationProject_QuarterlyProjectQuality.InsertOnSubmit(newQuarterlyProjectQuality);
            Funs.DB.SubmitChanges();
        }

        /// <summary>
        /// 修改季度工程项目质量信息表
        /// </summary>
        /// <param name="quarterlyProjectQuality"></param>
        public static void UpdateQuarterlyProjectQuality(Model.InformationProject_QuarterlyProjectQuality quarterlyProjectQuality)
        {
            Model.InformationProject_QuarterlyProjectQuality newQuarterlyProjectQuality = Funs.DB.InformationProject_QuarterlyProjectQuality.FirstOrDefault(e => e.QuarterlyProjectQualityId == quarterlyProjectQuality.QuarterlyProjectQualityId);
            if (newQuarterlyProjectQuality != null)
            {
                newQuarterlyProjectQuality.UnitId = quarterlyProjectQuality.UnitId;
                newQuarterlyProjectQuality.Year = quarterlyProjectQuality.Year;
                newQuarterlyProjectQuality.Quarter = quarterlyProjectQuality.Quarter;
                newQuarterlyProjectQuality.QualityManagePersonNum = quarterlyProjectQuality.QualityManagePersonNum;
                newQuarterlyProjectQuality.AdvancedTitlePersonNum = quarterlyProjectQuality.AdvancedTitlePersonNum;
                newQuarterlyProjectQuality.IntermediateTitlePersonNum = quarterlyProjectQuality.IntermediateTitlePersonNum;
                newQuarterlyProjectQuality.BeImplementedProjectNum = quarterlyProjectQuality.BeImplementedProjectNum;
                newQuarterlyProjectQuality.StartImplementedProjectNum = quarterlyProjectQuality.StartImplementedProjectNum;
                newQuarterlyProjectQuality.AccumulativeStartImplemented = quarterlyProjectQuality.AccumulativeStartImplemented;
                newQuarterlyProjectQuality.CompleteProjectNum = quarterlyProjectQuality.CompleteProjectNum;
                newQuarterlyProjectQuality.YearCompleteProjectNum = quarterlyProjectQuality.YearCompleteProjectNum;
                newQuarterlyProjectQuality.QuarterTotal = quarterlyProjectQuality.QuarterTotal;
                newQuarterlyProjectQuality.QuarterFirstPassNum = quarterlyProjectQuality.QuarterFirstPassNum;
                newQuarterlyProjectQuality.QuarterFirstPassRate = quarterlyProjectQuality.QuarterFirstPassRate;
                newQuarterlyProjectQuality.YearTotal = quarterlyProjectQuality.YearTotal;
                newQuarterlyProjectQuality.YearFirstPassNum = quarterlyProjectQuality.YearFirstPassNum;
                newQuarterlyProjectQuality.YearFirstPassRate = quarterlyProjectQuality.YearFirstPassRate;
                newQuarterlyProjectQuality.QuaterCheckSuperviseNum = quarterlyProjectQuality.QuaterCheckSuperviseNum;
                newQuarterlyProjectQuality.QuaterCorrectiveNoticeNum = quarterlyProjectQuality.QuaterCorrectiveNoticeNum;
                newQuarterlyProjectQuality.QuaterQualityProblemNum = quarterlyProjectQuality.QuaterQualityProblemNum;
                newQuarterlyProjectQuality.QuaterClosedQualityProblemNum = quarterlyProjectQuality.QuaterClosedQualityProblemNum;
                newQuarterlyProjectQuality.YearCheckSuperviseNum = quarterlyProjectQuality.YearCheckSuperviseNum;
                newQuarterlyProjectQuality.YearCorrectiveNoticeNum = quarterlyProjectQuality.YearCorrectiveNoticeNum;
                newQuarterlyProjectQuality.YearQualityProblemNum = quarterlyProjectQuality.YearQualityProblemNum;
                newQuarterlyProjectQuality.YearClosedQualityProblemNum = quarterlyProjectQuality.YearClosedQualityProblemNum;
                newQuarterlyProjectQuality.QuaterQualityAccidentNum = quarterlyProjectQuality.QuaterQualityAccidentNum;
                newQuarterlyProjectQuality.QuaterDirectEconomicLoss = quarterlyProjectQuality.QuaterDirectEconomicLoss;
                newQuarterlyProjectQuality.YearQualityAccidentNum = quarterlyProjectQuality.YearQualityAccidentNum;
                newQuarterlyProjectQuality.YearDirectEconomicLoss = quarterlyProjectQuality.YearDirectEconomicLoss;
                newQuarterlyProjectQuality.ResponsiblePerson = quarterlyProjectQuality.ResponsiblePerson;
                newQuarterlyProjectQuality.CompileMan = quarterlyProjectQuality.CompileMan;
                newQuarterlyProjectQuality.CompileDate = quarterlyProjectQuality.CompileDate;
                newQuarterlyProjectQuality.Tel = quarterlyProjectQuality.Tel;

                Funs.DB.SubmitChanges();
            }
        }

        /// <summary>
        /// 根据主键删除季度工程项目质量信息表
        /// </summary>
        /// <param name="QuarterlyProjectQualityId"></param>
        public static void DeleteQuarterlyProjectQualityById(string QuarterlyProjectQualityId)
        {
            Model.InformationProject_QuarterlyProjectQuality quarterlyProjectQuality = Funs.DB.InformationProject_QuarterlyProjectQuality.FirstOrDefault(e => e.QuarterlyProjectQualityId == QuarterlyProjectQualityId);
            if (quarterlyProjectQuality != null)
            {
                Funs.DB.InformationProject_QuarterlyProjectQuality.DeleteOnSubmit(quarterlyProjectQuality);
                Funs.DB.SubmitChanges();
            }
        }
    }
}