public void CancelAdjust() { using (TransactionScope ts = new TransactionScope()) { var adjustID = Convert.ToInt32(Request.GetString("AdjustID").Trim()); var adjust = Database.Adjusts.GetByID(adjustID); var adjustBeforeDetailList = Database.BeforeAdjustDetails.Where(c => c.Adjust == adjust).ToList(); //还原于调整前明细相关的已调整设备为未调整状态 unmarkBeforeAdjustDetail(adjust.Stage, adjustBeforeDetailList, Database); AdjustHistoryState state = new AdjustHistoryState(); state.Adjust = adjust; state.OperateTime = System.DateTime.Now; state.Operator = User; state.State = AdjustState.Canceled; state.Suggestion = Request.GetString("Content"); state.Save(Database); adjust.CurrentState = AdjustState.Canceled; adjust.Save(Database); ts.Complete(); } }
public void CancerPassAdjust() { using (TransactionScope ts = new TransactionScope()) { var adjustID = Convert.ToInt32(Request.GetString("AdjustID").Trim()); var adjust = Database.Adjusts.GetByID(adjustID); var type = Request.GetString("Type").Trim(); if (type == "Pass") { //如果是负责人 if (User.IsProjectManager(Database)) { if (adjust.CurrentState == AdjustState.WaitingManagerCensor && adjust.GetProject(Database).Manager == User) { AdjustHistoryState state = new AdjustHistoryState(); state.Adjust = adjust; state.OperateTime = System.DateTime.Now; state.Operator = User; state.State = AdjustState.WaitingCollegeCensor; state.Suggestion = Request.GetString("Content"); state.Save(Database); adjust.CurrentState = AdjustState.WaitingCollegeCensor; adjust.Save(Database); Message.SendMessage("设备调整审核结果", string.Format("您对项目{0}的设备调整已经由项目负责人{1}审核通过,请查看信息。下一步将进入学院审核阶段。", adjust.Project.ProjectName, User.Name), User, adjust.Operator, Database, MessageType.System); } } //如果是学院用户 if (User.IsCollege(Database)) { if (adjust.CurrentState == AdjustState.WaitingCollegeCensor) { AdjustHistoryState state = new AdjustHistoryState(); state.Adjust = adjust; state.OperateTime = System.DateTime.Now; state.Operator = User; state.State = AdjustState.WaitingOfficeCensor; state.Suggestion = Request.GetString("Content"); state.Save(Database); adjust.CurrentState = AdjustState.WaitingOfficeCensor; adjust.Save(Database); Message.SendMessage("设备调整审核结果", string.Format("您对项目{0}的设备调整已经由学院管理员{1}审核通过,请查看信息。下一步将进入985办公室审核阶段。", adjust.Project.ProjectName, User.Name), User, adjust.Operator, Database, MessageType.System); } } //如果是985 if (User.Is985(Database)) { if (adjust.CurrentState == AdjustState.WaitingOfficeCensor) { if (adjust.Stage < 1) { var beforeAdjustDetailList = Database.BeforeAdjustDetails.Where(c => c.Adjust == adjust).ToList(); //处理受影响的条目,不可逆 createAdjustInfluencedItemsAndRedirectTaskToNewPlan(adjust.Stage, beforeAdjustDetailList, Database); AdjustHistoryState state = new AdjustHistoryState(); state.Adjust = adjust; state.OperateTime = System.DateTime.Now; state.Operator = User; state.State = AdjustState.OfficeAgree; state.Suggestion = Request.GetString("Content"); state.Save(Database); adjust.CurrentState = AdjustState.OfficeAgree; adjust.Save(Database); var before = Database.BeforeAdjustDetails.Where(c => c.Adjust == adjust); foreach (var item in before) { item.ConstructPlanItem.IsBeforeAdjustPassed = true; item.ConstructPlanItem.Save(Database); } var after = Database.AfterAdjustDetails.Where(c => c.Adjust == adjust); foreach (var item in after) { item.ConstructPlanItem.IsAfterAdjustPassed = true; item.ConstructPlanItem.Save(Database); } Message.SendMessage("设备调整审核结果", string.Format("您对项目{0}的设备调整已经由985办公室管理员{1}审核通过,请查看信息。您提交的设备调整将从此生效!", adjust.Project.ProjectName, User.Name), User, adjust.Operator, Database, MessageType.System); } else { AdjustHistoryState state = new AdjustHistoryState(); state.Adjust = adjust; state.OperateTime = System.DateTime.Now; state.Operator = User; state.State = AdjustState.WaitingStateAssetOfficeCensor; state.Suggestion = Request.GetString("Content"); state.Save(Database); adjust.CurrentState = AdjustState.WaitingStateAssetOfficeCensor; adjust.Save(Database); Message.SendMessage("设备调整审核结果", string.Format("您对项目{0}的设备设备调整已经由学院管理员{1}审核通过,请查看信息。下一步将进入国资处审核阶段。", adjust.Project.ProjectName, User.Name), User, adjust.Operator, Database, MessageType.System); } } } //如果是国资处 if (User.IsStateAssetOffice(Database)) { if (adjust.CurrentState == AdjustState.WaitingStateAssetOfficeCensor && !adjust.IsPassed(Database)) { if (adjust.Stage == 2 || adjust.Stage == 1) { var beforeAdjustDetailList = Database.BeforeAdjustDetails.Where(c => c.Adjust == adjust).ToList(); //处理受影响的条目,不可逆 createAdjustInfluencedItemsAndRedirectTaskToNewPlan(adjust.Stage, beforeAdjustDetailList, Database); } AdjustHistoryState state = new AdjustHistoryState(); state.Adjust = adjust; state.OperateTime = System.DateTime.Now; state.Operator = User; state.State = AdjustState.StateAssetOfficeAgree; state.Suggestion = Request.GetString("Content"); state.Save(Database); adjust.CurrentState = AdjustState.StateAssetOfficeAgree; adjust.Save(Database); var before = Database.BeforeAdjustDetails.Where(c => c.Adjust == adjust); foreach (var item in before) { item.ConstructPlanItem.IsBeforeAdjustPassed = true; item.ConstructPlanItem.Save(Database); if (item.ConstructTaskItem != null) { item.ConstructTaskItem.IsBeforeAdjustPassed = true; item.ConstructTaskItem.Save(Database); } if (item.PurchasePlanItem != null) { item.PurchasePlanItem.IsBeforeAdjustPassed = true; item.PurchasePlanItem.Save(Database); } if (item.BidFailedResultItem != null) { item.BidFailedResultItem.IsBeforeAdjustPassed = true; item.BidFailedResultItem.Save(Database); } } var after = Database.AfterAdjustDetails.Where(c => c.Adjust == adjust); foreach (var item in after) { item.ConstructPlanItem.IsAfterAdjustPassed = true; item.ConstructPlanItem.Save(Database); if (item.ConstructTaskItem != null) { item.ConstructTaskItem.IsAfterAdjustPassed = true; item.ConstructTaskItem.Save(Database); } } Message.SendMessage("设备调整审核结果", string.Format("您对项目{0}的设备调整已经由国资处管理员{1}审核通过,请查看信息。您提交的设备调整将从此生效!", adjust.Project.ProjectName, User.Name), User, adjust.Operator, Database, MessageType.System); } } } else { if (!adjust.IsPassed(Database)) { AdjustHistoryState state = new AdjustHistoryState(); state.Adjust = adjust; state.OperateTime = System.DateTime.Now; state.Operator = User; state.State = AdjustState.MemberUnSubmit; state.Suggestion = Request.GetString("Content"); state.Save(Database); adjust.CurrentState = AdjustState.MemberUnSubmit; adjust.Save(Database); Message.SendMessage("设备调整审核结果", string.Format("您对项目{0}的设备调整已被管理员{1}驳回,请查看信息。请修改后重新提交调整!", adjust.Project.ProjectName, User.Name), User, adjust.Operator, Database, MessageType.System); } } ts.Complete(); } }