public override void Finish(TaskWorkStatus status, TaskWork task) { using (var scope = new TransactionScope()) { switch (status) { case TaskWorkStatus.K2ProcessApproved: ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_WOCheckList, NodeCode.Closure_WOCheckList_Approve, ProjectStatus.Finished); //ProjectInfo.UpdateProjectStatus(this.ProjectId, FlowCode.Closure_WOCheckList, ProjectStatus.Finished); //如果是从ClosurePackage Edit之后撤回Task的,添加ClosurePackage的Task if (TaskWork.Count(i => i.RefID == task.RefID && i.TypeCode == FlowCode.Closure_ClosurePackage && i.Status == TaskWorkStatus.Cancel) > 0) { if (ProjectInfo.Any(e => e.ProjectId == task.RefID && e.Status == ProjectStatus.Finished && e.FlowCode == FlowCode.Closure_LegalReview)) { var package = new ClosurePackage(); package.GeneratePackageTask(task.RefID); } } //如果是从ExecutiveSummary Edit之后撤回Task的,添加ExecutiveSummary的Task else if (TaskWork.Count(i => i.RefID == task.RefID && i.TypeCode == FlowCode.Closure_ExecutiveSummary && i.Status == TaskWorkStatus.Cancel) > 0) { var executiveSummary = new ClosureExecutiveSummary(); executiveSummary.GenerateExecutiveSummaryTask(task.RefID); } break; } scope.Complete(); } }
public static int UpdateEntity(ClosureTool entity) { if (!entity.CreateTime.HasValue) { entity.CreateTime = DateTime.Now; } if (string.IsNullOrEmpty(entity.CreateUserAccount)) { entity.CreateUserAccount = ClientCookie.UserCode; } entity.LastUpdateTime = DateTime.Now; entity.LastUpdateUserAccount = ClientCookie.UserCode; entity.LastUpdateUserNameENUS = ClientCookie.UserNameENUS; entity.LastUpdateUserNameZHCN = ClientCookie.UserNameZHCN; if (entity.IsOptionOffered.HasValue && !entity.IsOptionOffered.Value) { entity.LeaseTerm = null; entity.Investment = null; entity.NPVRestaurantCashflows = null; entity.Yr1SOI = null; entity.IRR = null; entity.CompAssumption = null; entity.CashflowGrowth = null; } var result = Update(entity); var closureInfo = ClosureInfo.GetByProjectId(entity.ProjectId); if (closureInfo != null) { closureInfo.UpdateRelocation(entity.IsOptionOffered ?? false); } var closurePackage = ClosurePackage.Get(entity.ProjectId); if (closurePackage != null) { closurePackage.UpdateRelocation(entity.IsOptionOffered ?? false); } return(result); }
public override void Finish(TaskWorkStatus status, TaskWork task) { switch (status) { case TaskWorkStatus.K2ProcessApproved: ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_LegalReview, NodeCode.Closure_LegalReview_LegalConfirm, ProjectStatus.Finished); //ProjectInfo.UpdateProjectStatus(this.ProjectId, FlowCode.Closure_LegalReview, ProjectStatus.Finished); if (ProjectInfo.Any(e => e.ProjectId == ProjectId && e.Status == ProjectStatus.Finished && e.FlowCode == FlowCode.Closure_ExecutiveSummary)) { var package = new ClosurePackage(); package.GeneratePackageTask(ProjectId); package.GeneratePackage(ProjectId); } break; } }
/// <summary> /// Edit准备 /// </summary> /// <param name="projectId"></param> /// <returns></returns> public bool PreEdit(string projectId) { //如果流程已经到了ClosurePackage审批环节就不能Edit if (ProjectInfo.IsFlowStarted(projectId, FlowCode.Closure_ClosurePackage)) { return(false); } else { #region Package撤回 var needWidthDraw = TaskWork.Count(i => i.TypeCode == FlowCode.Closure_ClosurePackage && i.RefID == projectId && i.Status == TaskWorkStatus.UnFinish) > 0; if (needWidthDraw) { //任务取消 var taskList = TaskWork.Search(i => i.TypeCode == FlowCode.Closure_ClosurePackage && i.RefID == projectId && i.Status != TaskWorkStatus.Cancel).ToArray(); foreach (var taskItem in taskList) { taskItem.Status = TaskWorkStatus.Cancel; } if (taskList.Length > 0) { TaskWork.Update(taskList); } //Package数据isHistory置成true var package = ClosurePackage.Search(i => i.ProjectId == projectId && i.IsHistory == false).ToArray(); foreach (var pacItem in package) { pacItem.IsHistory = true; pacItem.LastUpdateTime = DateTime.Now; pacItem.LastUpdateUserAccount = ClientCookie.UserCode; } if (package.Length > 0) { ClosurePackage.Update(package); } } #endregion return(true); } }
public override void Finish(TaskWorkStatus status, TaskWork task) { using (var scope = new TransactionScope()) { switch (status) { case TaskWorkStatus.K2ProcessApproved: ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_ExecutiveSummary, NodeCode.Closure_ExecutiveSummary_Generate, ProjectStatus.Finished); if (ProjectInfo.Any(e => e.ProjectId == ProjectId && e.Status == ProjectStatus.Finished && e.FlowCode == FlowCode.Closure_LegalReview)) { var package = new ClosurePackage(); package.GeneratePackageTask(ProjectId); package.GeneratePackage(ProjectId); } break; } scope.Complete(); } }
public void Save(bool pushOrNot) { using (TransactionScope tranScope = new TransactionScope()) { var projectInfo = ProjectInfo.Get(Id); if (projectInfo == null) { ProjectId = ProjectInfo.CreateDLProject(Id, FlowCode.Closure, USCode, NodeCode.Start, ClientCookie.UserCode, pushOrNot); var closureInfo = new ClosureInfo(); closureInfo.Id = Guid.NewGuid(); closureInfo.ProjectId = ProjectId; closureInfo.USCode = USCode; closureInfo.ActualCloseDate = CloseDate; closureInfo.ClosureTypeCode = ClosureTypeCode; closureInfo.ClosureReasonCode = ClosureReasonCode; closureInfo.ClosureReasonRemark = ClosureReasonRemark; closureInfo.RelocationCode = RelocationCode; closureInfo.CreateDate = DateTime.Now; closureInfo.CreateUserAccount = ClientCookie.UserCode; closureInfo.CreateUserNameENUS = ClientCookie.UserNameENUS; closureInfo.CreateUserNameZHCN = ClientCookie.UserNameZHCN; closureInfo.Add(); var closurePackage = new ClosurePackage(); closurePackage.Id = Guid.NewGuid(); closurePackage.ProjectId = ProjectId; closurePackage.RelocationPipelineID = RelocatedPipelineID; closurePackage.IsHistory = false; closurePackage.CreateUserAccount = ClientCookie.UserCode; closurePackage.CreateTime = DateTime.Now; closurePackage.Add(); var closureConsInvtChecking = new ClosureConsInvtChecking(); closureConsInvtChecking.Id = Guid.NewGuid(); closureConsInvtChecking.ProjectId = ProjectId; closureConsInvtChecking.IsHistory = false; closureConsInvtChecking.CreateTime = DateTime.Now; closureConsInvtChecking.TotalActual = Closure_WO_Total_Act; closureConsInvtChecking.ClosingCostActual = Closure_ClosingCost_Act; closureConsInvtChecking.Add(); var closureMemo = new ClosureMemo(); closureMemo.Id = Guid.NewGuid(); closureMemo.ProjectId = ProjectId; closureMemo.CreateTime = DateTime.Now; closureMemo.ClosureNature = ClosureNatureType.Permanent; closureMemo.Status = true; closureMemo.Compensation = Closure_Compensation_Act; closureMemo.Add(); } else { ProjectId = projectInfo.ProjectId; projectInfo.IsPushed = pushOrNot; projectInfo.Update(); var closureInfo = ClosureInfo.FirstOrDefault(i => i.ProjectId == ProjectId); if (closureInfo != null) { closureInfo.ActualCloseDate = CloseDate; closureInfo.ClosureTypeCode = ClosureTypeCode; closureInfo.ClosureReasonCode = ClosureReasonCode; closureInfo.ClosureReasonRemark = ClosureReasonRemark; closureInfo.RelocationCode = RelocationCode; closureInfo.Update(); } else { closureInfo = new ClosureInfo(); closureInfo.Id = Guid.NewGuid(); closureInfo.ProjectId = ProjectId; closureInfo.USCode = USCode; closureInfo.ActualCloseDate = CloseDate; closureInfo.ClosureTypeCode = ClosureTypeCode; closureInfo.ClosureReasonCode = ClosureReasonCode; closureInfo.ClosureReasonRemark = ClosureReasonRemark; closureInfo.RelocationCode = RelocationCode; closureInfo.CreateDate = DateTime.Now; closureInfo.CreateUserAccount = ClientCookie.UserCode; closureInfo.CreateUserNameENUS = ClientCookie.UserNameENUS; closureInfo.CreateUserNameZHCN = ClientCookie.UserNameZHCN; closureInfo.Add(); } var closurePackage = ClosurePackage.Get(ProjectId); if (closurePackage != null) { closurePackage.RelocationPipelineID = RelocatedPipelineID; closurePackage.Update(); } else { closurePackage = new ClosurePackage(); closurePackage.Id = Guid.NewGuid(); closurePackage.ProjectId = ProjectId; closurePackage.RelocationPipelineID = RelocatedPipelineID; closurePackage.IsHistory = false; closurePackage.CreateUserAccount = ClientCookie.UserCode; closurePackage.CreateTime = DateTime.Now; closurePackage.Add(); } var closureConsInvtChecking = ClosureConsInvtChecking.Get(ProjectId); if (closureConsInvtChecking != null) { closureConsInvtChecking.TotalActual = Closure_WO_Total_Act; closureConsInvtChecking.ClosingCostActual = Closure_ClosingCost_Act; closureConsInvtChecking.Update(); } else { closureConsInvtChecking = new ClosureConsInvtChecking(); closureConsInvtChecking.Id = Guid.NewGuid(); closureConsInvtChecking.ProjectId = ProjectId; closureConsInvtChecking.IsHistory = false; closureConsInvtChecking.CreateTime = DateTime.Now; closureConsInvtChecking.TotalActual = Closure_WO_Total_Act; closureConsInvtChecking.ClosingCostActual = Closure_ClosingCost_Act; closureConsInvtChecking.Add(); } var closureMemo = ClosureMemo.FirstOrDefault(i => i.ProjectId == ProjectId); if (closureMemo != null) { closureMemo.Compensation = Closure_Compensation_Act; closureMemo.Update(); } else { closureMemo = new ClosureMemo(); closureMemo.Id = Guid.NewGuid(); closureMemo.ProjectId = ProjectId; closureMemo.CreateTime = DateTime.Now; closureMemo.ClosureNature = ClosureNatureType.Permanent; closureMemo.Status = true; closureMemo.Compensation = Closure_Compensation_Act; closureMemo.Add(); } } tranScope.Complete(); } }