using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
namespace BLL
{
    /// 
    /// 重大施工方案审批
    /// 
    public static class MajorPlanApprovalService
    {
        public static Model.SGGLDB db = Funs.DB;
        /// 
        /// 记录数
        /// 
        private static int count
        {
            get;
            set;
        }
        /// 
        /// 获取分页列表
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        /// 
        public static IEnumerable GetListData(string projectId, string unitId, string cNProfessionalId, string UnitWorkId, int startRowIndex, int maximumRows)
        {
            IQueryable q = from x in db.Comprehensive_MajorPlanApproval
                                                                  where x.ProjectId == projectId
                                                                  orderby x.ApprovalDate descending
                                                                  select x;
            if (unitId != "0")
            {
                q = q.Where(e => e.UnitId == unitId);
            }
            if (cNProfessionalId != "0")
            {
                q = q.Where(e => e.CNProfessionalId == cNProfessionalId);
            }
            if (UnitWorkId != "0")
            {
                q = q.Where(e => e.UnitWorkId.Contains(UnitWorkId));
            }
            count = q.Count();
            if (count == 0)
            {
                return new object[] { "" };
            }
            return from x in q.Skip(startRowIndex).Take(maximumRows)
                   select new
                   {
                       x.MajorPlanApprovalId,
                       x.ProjectId,
                       UnitName = (from y in db.Base_Unit where y.UnitId == x.UnitId select y.UnitName).FirstOrDefault(),
                       ProfessionalName = (from y in db.Base_CNProfessional where y.CNProfessionalId == x.CNProfessionalId select y.ProfessionalName).FirstOrDefault(),
                       x.PlanCode,
                       x.PlanName,
                       x.ReviewMan,
                       x.ApprovalDate,
                       x.AuditMan,
                       UnitWorkName = x.UnitWorkId != null ? BLL.UnitWorkService.GetUnitWorkName(x.UnitWorkId) : null,
                       x.ApprovalMan,
                       x.ImplementationDeviation,
                       x.AttachUrl
                   };
        }
        /// 
        /// 获取分页列表数
        /// 
        /// 
        /// 
        /// 
        /// 
        public static int GetListCount(string projectId, string unitId, string cNProfessionalId, string UnitWorkId)
        {
            return count;
        }
        /// 
        /// 根据主键获取重大施工方案审批
        /// 
        /// 
        /// 
        public static Model.Comprehensive_MajorPlanApproval GetMajorPlanApprovalById(string majorPlanApprovalId)
        {
            return Funs.DB.Comprehensive_MajorPlanApproval.FirstOrDefault(e => e.MajorPlanApprovalId == majorPlanApprovalId);
        }
        /// 
        /// 添加重大施工方案审批
        /// 
        /// 
        public static void AddMajorPlanApproval(Model.Comprehensive_MajorPlanApproval majorPlanApproval)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_MajorPlanApproval newMajorPlanApproval = new Model.Comprehensive_MajorPlanApproval();
            newMajorPlanApproval.MajorPlanApprovalId = majorPlanApproval.MajorPlanApprovalId;
            newMajorPlanApproval.ProjectId = majorPlanApproval.ProjectId;
            newMajorPlanApproval.UnitId = majorPlanApproval.UnitId;
            newMajorPlanApproval.CNProfessionalId = majorPlanApproval.CNProfessionalId;
            newMajorPlanApproval.PlanCode = majorPlanApproval.PlanCode;
            newMajorPlanApproval.PlanName = majorPlanApproval.PlanName;
            newMajorPlanApproval.ReviewMan = majorPlanApproval.ReviewMan;
            newMajorPlanApproval.ApprovalDate = majorPlanApproval.ApprovalDate;
            newMajorPlanApproval.ApprovalMan = majorPlanApproval.ApprovalMan;
            newMajorPlanApproval.AuditMan = majorPlanApproval.AuditMan;
            newMajorPlanApproval.ImplementationDeviation = majorPlanApproval.ImplementationDeviation;
            newMajorPlanApproval.AttachUrl = majorPlanApproval.AttachUrl;
            newMajorPlanApproval.CompileMan = majorPlanApproval.CompileMan;
            newMajorPlanApproval.CompileDate = majorPlanApproval.CompileDate;
            newMajorPlanApproval.UnitWorkId = majorPlanApproval.UnitWorkId;
            db.Comprehensive_MajorPlanApproval.InsertOnSubmit(newMajorPlanApproval);
            db.SubmitChanges();
        }
        /// 
        /// 修改重大施工方案审批
        /// 
        /// 
        public static void UpdateMajorPlanApproval(Model.Comprehensive_MajorPlanApproval majorPlanApproval)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_MajorPlanApproval newMajorPlanApproval = db.Comprehensive_MajorPlanApproval.FirstOrDefault(e => e.MajorPlanApprovalId == majorPlanApproval.MajorPlanApprovalId);
            if (newMajorPlanApproval != null)
            {
                newMajorPlanApproval.ProjectId = majorPlanApproval.ProjectId;
                newMajorPlanApproval.UnitId = majorPlanApproval.UnitId;
                newMajorPlanApproval.CNProfessionalId = majorPlanApproval.CNProfessionalId;
                newMajorPlanApproval.PlanCode = majorPlanApproval.PlanCode;
                newMajorPlanApproval.PlanName = majorPlanApproval.PlanName;
                newMajorPlanApproval.ReviewMan = majorPlanApproval.ReviewMan;
                newMajorPlanApproval.ApprovalDate = majorPlanApproval.ApprovalDate;
                newMajorPlanApproval.ApprovalMan = majorPlanApproval.ApprovalMan;
                newMajorPlanApproval.AuditMan = majorPlanApproval.AuditMan;
                newMajorPlanApproval.ImplementationDeviation = majorPlanApproval.ImplementationDeviation;
                newMajorPlanApproval.AttachUrl = majorPlanApproval.AttachUrl;
                newMajorPlanApproval.UnitWorkId = majorPlanApproval.UnitWorkId;
                db.SubmitChanges();
            }
        }
        /// 
        /// 根据主键删除重大施工方案审批
        /// 
        /// 
        public static void DeleteMajorPlanApproval(string majorPlanApprovalId)
        {
            Model.SGGLDB db = Funs.DB;
            Model.Comprehensive_MajorPlanApproval majorPlanApproval = db.Comprehensive_MajorPlanApproval.FirstOrDefault(e => e.MajorPlanApprovalId == majorPlanApprovalId);
            if (majorPlanApproval != null)
            {
                if (!string.IsNullOrEmpty(majorPlanApproval.AttachUrl))
                {
                    BLL.UploadAttachmentService.DeleteFile(Funs.RootPath, majorPlanApproval.AttachUrl);//删除附件
                }
                db.Comprehensive_MajorPlanApproval.DeleteOnSubmit(majorPlanApproval);
                db.SubmitChanges();
            }
        }
    }
}