public static ConsInfoDTO <RenewalInfo, RenewalConsInfo> InitPage(string projectId, string id = "") { RenewalInfo info = RenewalInfo.Get(projectId); var consInfo = RenewalConsInfo.Get(projectId, id); if (consInfo == null) { consInfo = new RenewalConsInfo(); consInfo.ProjectId = projectId; } var isOriginator = ClientCookie.UserCode == info.PMAccount; consInfo.IsProjectFreezed = consInfo.CheckIfFreezeProject(projectId); var nextRefTableId = new Guid(FlowInfo.GetRefTableId("RenewalTool", projectId)); var nextFlowStarted = ProjectInfo.IsFlowStarted(projectId, FlowCode.Renewal_Tool); var haveTask = TaskWork.Any(t => t.RefID == projectId && t.TypeCode == FlowCode.Renewal_Tool && t.Status == TaskWorkStatus.UnFinish && t.ReceiverAccount == ClientCookie.UserCode); var projectComment = ProjectComment.GetSavedComment(consInfo.Id, "RenewalConsInfo", ClientCookie.UserCode); if (string.IsNullOrEmpty(id)) { consInfo.HasReinvenstment = info.NeedProjectCostEst; } ConsInfoDTO <RenewalInfo, RenewalConsInfo> dto = new ConsInfoDTO <RenewalInfo, RenewalConsInfo>(); dto.Entity = consInfo; dto.Info = info; dto.ReinBasicInfo = ReinvestmentBasicInfo.GetByConsInfoId(consInfo.Id); dto.ReinCost = ReinvestmentCost.GetByConsInfoId(consInfo.Id); dto.WriteOff = WriteOffAmount.GetByConsInfoId(consInfo.Id); dto.ProjectComment = projectComment != null ? projectComment.Content : ""; dto.Editable = ProjectInfo.IsFlowEditable(projectId, FlowCode.Renewal_ConsInfo); dto.Recallable = ProjectInfo.IsFlowRecallable(projectId, FlowCode.Renewal_ConsInfo); dto.Savable = ProjectInfo.IsFlowSavable(projectId, FlowCode.Renewal_ConsInfo) && string.IsNullOrEmpty(id); return(dto); }
public void Resubmit(string comment, string SerialNumber, Action onExecuting = null) { var task = TaskWork.FirstOrDefault(t => t.RefID == this.ProjectId && t.TypeCode == this.WorkflowCode && t.ReceiverAccount == ClientCookie.UserCode && t.Status == TaskWorkStatus.UnFinish); var dataFields = SetWorkflowDataFields(task); K2FxContext.Current.ApprovalProcess(SerialNumber, ClientCookie.UserCode, "Resubmit", comment, dataFields); using (TransactionScope tranScope = new TransactionScope()) { this.CreateUserAccount = ClientCookie.UserCode; this.Update(); if (this.HasReinvenstment) { SaveApprovers(); } ProjectInfo.FinishNode(this.ProjectId, this.WorkflowCode, NodeCode.Renewal_ConsInfo_Input); ProjectComment.AddComment( ProjectCommentAction.ReSubmit, comment, this.Id, this.TableName, FlowCode.Renewal, this.ProcInstId, ProjectCommentStatus.Submit ); if (onExecuting != null) { onExecuting(); } tranScope.Complete(); } }
public static void GeneratePackageTask(string projectId) { var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.TempClosure; taskWork.SourceNameENUS = taskWork.SourceCode; taskWork.SourceNameZHCN = taskWork.SourceCode; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = ClientCookie.UserCode; var tempClosure = TempClosureInfo.FirstOrDefault(i => i.ProjectId == projectId); if (tempClosure == null) { return; } taskWork.Title = TaskWork.BuildTitle(projectId, tempClosure.StoreNameENUS, tempClosure.StoreNameZHCN); taskWork.TypeCode = FlowCode.TempClosure_ClosurePackage; taskWork.TypeNameENUS = "Closure Package"; taskWork.TypeNameZHCN = "Closure Package"; taskWork.ReceiverAccount = tempClosure.AssetActorAccount; taskWork.ReceiverNameENUS = tempClosure.AssetActorNameENUS; taskWork.ReceiverNameZHCN = tempClosure.AssetActorNameZHCN; taskWork.Url = string.Format(@"/TempClosure/Main#/ClosurePackage?projectId={0}", projectId); taskWork.StoreCode = tempClosure.USCode; taskWork.ActivityName = "Start"; TaskWork.Add(taskWork); }
public static void Submit(GBMemo memo) { string strFlowCode = ""; string strNodeCode = ""; string strTypeCode = ""; if (memo.ProjectId.ToLower().IndexOf("rebuild") != -1) { strFlowCode = FlowCode.Rebuild; strNodeCode = NodeCode.Finish; strTypeCode = FlowCode.Rebuild_GBMemo; } else if (memo.ProjectId.ToLower().IndexOf("reimage") != -1) { strFlowCode = FlowCode.Reimage; strNodeCode = NodeCode.Finish; strTypeCode = FlowCode.Reimage_GBMemo; } var task = TaskWork.GetTaskWork(memo.ProjectId, ClientCookie.UserCode, TaskWorkStatus.UnFinish, strFlowCode, strTypeCode); task.Status = TaskWorkStatus.Finished; task.FinishTime = DateTime.Now; string taskUrl = "/" + strFlowCode + "/Main#/GBMemo/Process/View?projectId=" + memo.ProjectId; task.Url = taskUrl; using (var scope = new TransactionScope()) { TaskWork.Update(task); SaveGBMemo(memo); ProjectInfo.UpdateProjectNode(memo.ProjectId, strTypeCode, strNodeCode); scope.Complete(); } }
public override string Edit() { using (var tranScope = new TransactionScope()) { var letter = Duplicator.AutoCopy(this); letter.Id = Guid.NewGuid(); letter.IsHistory = false; letter.CreateUserAccount = ClientCookie.UserCode; letter.Add(); IsHistory = true; this.Update(); ProjectInfo.Reset(ProjectId, this.WorkflowCode); var attachments = Attachment.GetList(this.TableName, Id.ToString(), string.Empty); attachments.ForEach(att => { att.RefTableID = letter.Id.ToString(); att.ID = Guid.NewGuid(); }); Attachment.Add(attachments.ToArray()); var assetActor = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == ProjectId && pu.RoleCode == ProjectUserRoleCode.AssetActor); var oldTasks = TaskWork.Search(t => t.RefID == ProjectId && t.Status == TaskWorkStatus.UnFinish && (t.TypeCode == this.WorkflowCode || t.TypeCode == FlowCode.Renewal_ConsInfo)).ToList(); oldTasks.ForEach(t => { t.Status = TaskWorkStatus.Cancel; }); TaskWork.Update(oldTasks.ToArray()); var latestTask = TaskWork.FirstOrDefault(t => t.RefID == ProjectId && t.TypeCode == this.WorkflowCode); string url = "/Renewal/Main#/Letter?projectId=" + ProjectId; TaskWork.SendTask(ProjectId, latestTask.Title, latestTask.StoreCode, url, assetActor, FlowCode.Renewal, this.WorkflowCode, "Start"); tranScope.Complete(); return(url); } }
public override List <ProcessDataField> SetWorkflowDataFields(TaskWork task) { string destMgrs = AppUsers.MarketMgr.Code; if (AppUsers.RegionalMgr != null) { destMgrs += ";" + AppUsers.RegionalMgr.Code; } var processDataFields = new List <ProcessDataField>() { new ProcessDataField("dest_MarketMgr", destMgrs), new ProcessDataField("dest_GMApprovers", string.Concat(AppUsers.DD.Code, ";", AppUsers.GM.Code, ";", AppUsers.FC.Code, AppUsers.RDD == null?"":";" + AppUsers.RDD.Code)), new ProcessDataField("dest_VPGM", AppUsers.VPGM.Code), new ProcessDataField("dest_CDO", AppUsers.CDO != null?AppUsers.CDO.Code:""), new ProcessDataField("dest_CFO", AppUsers.CFO != null?AppUsers.CFO.Code:""), new ProcessDataField("dest_MngDirector", AppUsers.ManagingDirector.Code), new ProcessDataField("ProcessCode", WorkflowProcessCode), }; if (task != null) { processDataFields.Add(new ProcessDataField("dest_Creator", ClientCookie.UserCode)); processDataFields.Add(new ProcessDataField("ProjectTaskInfo", JsonConvert.SerializeObject(task))); } return(processDataFields); }
public void Submit() { var task = TaskWork.GetTaskWork(ProjectId, LastUpdateUserAccount, TaskWorkStatus.UnFinish, FlowCode.Rebuild, FlowCode.Rebuild_ConsInfo); //task.Status = TaskWorkStatus.Finished; task.FinishTime = DateTime.Now; string taskUrl = "/Rebuild/Main#/ConsInfo/Process/View?projectId=" + ProjectId; task.Url = taskUrl; ProcInstID = StartProcess(task); using (var scope = new TransactionScope()) { TaskWork.Update(task); Save("Submit"); ProjectInfo.FinishNode(ProjectId, FlowCode.Rebuild_ConsInfo, NodeCode.Rebuild_ConsInfo_Input); //var rbdPackage = new RebuildChangePackage(); //rbdPackage.GeneratePackageTask(ProjectId); //var rbdConsInvtChecking = new RebuildConsInvtChecking(); //rbdConsInvtChecking.GenerateConsInvtCheckingTask(ProjectId); scope.Complete(); } }
private int StartProcess(TaskWork task) { CreateUserAccount = LastUpdateUserAccount; var processDataFields = SetWorkflowDataFields(task); return(K2FxContext.Current.StartProcess(WorkflowProcessCode, CreateUserAccount, processDataFields)); }
protected override void UpdateProjectTaskUser(TaskWork taskWork, ProjectTeamMembers projectTeamMembers) { switch (taskWork.TypeCode) { case FlowCode.Rebuild_Package: case FlowCode.Rebuild_LegalReview: if (projectTeamMembers.AssetActor != null) { taskWork.ReceiverAccount = projectTeamMembers.AssetActor.UserAccount; taskWork.ReceiverNameENUS = projectTeamMembers.AssetActor.UserNameENUS; taskWork.ReceiverNameZHCN = projectTeamMembers.AssetActor.UserNameZHCN; } break; case FlowCode.Rebuild_FinanceAnalysis: taskWork.ReceiverAccount = projectTeamMembers.Finance.UserAccount; taskWork.ReceiverNameENUS = projectTeamMembers.Finance.UserNameENUS; taskWork.ReceiverNameZHCN = projectTeamMembers.Finance.UserNameZHCN; break; case FlowCode.Rebuild_ConsInvtChecking: case FlowCode.Rebuild_ConsInfo: taskWork.ReceiverAccount = projectTeamMembers.PM.UserAccount; taskWork.ReceiverNameENUS = projectTeamMembers.PM.UserNameENUS; taskWork.ReceiverNameZHCN = projectTeamMembers.PM.UserNameZHCN; break; } }
public void GenerateConsInvtCheckingTask(bool isScheduled = false) { var rbdInfo = RebuildInfo.Search(e => e.ProjectId.Equals(ProjectId)).AsNoTracking().FirstOrDefault(); if (rbdInfo == null) { throw new Exception("Could not find the Rebuild Info, please check it!"); } var taskUrl = string.Format(@"/Rebuild/Main#/ConsInvtChecking?projectId={0}", ProjectId); var task = rbdInfo.GenerateTaskWork(WorkflowCode, WorkflowCode, WorkflowCode, taskUrl); task.ActivityName = NodeCode.Start; task.ActionName = SetTaskActionName(ProjectId); if (!isScheduled) { TaskWork.Add(task); } else { if (rbdInfo.ConstCompletionDate.HasValue) { ScheduleLog.GenerateTaskSchedule(rbdInfo.ConstCompletionDate.Value.AddDays(60), task, ClientCookie.UserCode, ProjectId, FlowCode.Rebuild_ConsInvtChecking, rbdInfo.USCode); } } }
public override string Edit() { var info = RenewalInfo.Get(this.ProjectId); using (var tranScope = new TransactionScope()) { var legalApproval = Duplicator.AutoCopy(this); legalApproval.Id = Guid.NewGuid(); legalApproval.IsHistory = false; legalApproval.LegalComments = ""; legalApproval.CreateUserAccount = ClientCookie.UserCode; legalApproval.Add(); IsHistory = true; this.Update(); ProjectInfo.Reset(ProjectId, this.WorkflowCode); var attachments = Attachment.GetList(this.TableName, Id.ToString(), string.Empty); attachments.ForEach(att => { att.RefTableID = legalApproval.Id.ToString(); att.ID = Guid.NewGuid(); }); Attachment.Add(attachments.ToArray()); var assetActor = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == ProjectId && pu.RoleCode == ProjectUserRoleCode.AssetActor); TaskWork.Cancel(t => t.RefID == ProjectId && t.Status == TaskWorkStatus.UnFinish); var task = info.GenerateSubmitTask(this.WorkflowCode); tranScope.Complete(); return(task.Url); } }
public void Submit() { var task = TaskWork.GetTaskWork(ProjectId, ClientCookie.UserCode, TaskWorkStatus.UnFinish, FlowCode.Reimage, WorkflowCode); task.Status = TaskWorkStatus.Finished; task.FinishTime = DateTime.Now; var taskUrl = "/Reimage/Main#/Summary/Process/View?projectId=" + ProjectId; task.Url = taskUrl; ProcInstId = StartProcess(task); task.ProcInstID = ProcInstId; using (var scope = new TransactionScope()) { TaskWork.Update(task); Save("Submit"); ProjectInfo.FinishNode(ProjectId, WorkflowCode, NodeCode.Reimage_Summary_Input); //var reimagePackage = new ReimagePackage(); //reimagePackage.GeneratePackageTask(ProjectId); //var majorLeaseConsInvtChecking = new MajorLeaseConsInvtChecking(); //majorLeaseConsInvtChecking.GenerateConsInvtCheckingTask(ProjectId); scope.Complete(); } }
public override string Edit() { using (TransactionScope tranScope = new TransactionScope()) { var info = RenewalInfo.Get(ProjectId); this.IsHistory = true; this.Update(); var entity = Duplicator.AutoCopy(this); entity.Id = Guid.NewGuid(); entity.IsHistory = false; entity.Add(); var attachments = Attachment.GetList(this.TableName, Id.ToString(), string.Empty); attachments.ForEach(att => { att.RefTableID = entity.Id.ToString(); att.ID = Guid.NewGuid(); }); Attachment.Add(attachments.ToArray()); TaskWork.Cancel(e => e.TypeCode == this.WorkflowCode && e.RefID == ProjectId && e.Status == TaskWorkStatus.UnFinish); ProjectInfo.Reset(ProjectId, this.WorkflowCode); var task = info.GenerateSubmitTask(this.WorkflowCode); tranScope.Complete(); return(task.Url); } }
public void GenerateConsInvtCheckingTask(bool isScheduled = false) { if (CheckIfNeedGenerateConsInvtCheckingTask()) { var taskUrl = string.Format("/MajorLease/Main#/ConsInvtChecking?projectId={0}", ProjectId); var majorLeaseInfo = MajorLeaseInfo.Search(e => e.ProjectId.Equals(ProjectId)).AsNoTracking().FirstOrDefault(); if (majorLeaseInfo == null) { throw new Exception("Could not find the Major Lease Info, please check it!"); } var task = majorLeaseInfo.GenerateTaskWork(WorkflowCode, WorkflowCode, WorkflowCode, taskUrl); task.ActivityName = NodeCode.Start; task.ActionName = SetTaskActionName(ProjectId); task.CreateTime = DateTime.Now; if (!isScheduled) { TaskWork.Add(task); } else { var consInfoRepos = new MajorLeaseConsInfo(); var consInfo = consInfoRepos.GetConsInfo(ProjectId); //到达Cons Info中的工程完工时间后60天 发出任务 if (consInfo.ReinBasicInfo != null && consInfo.ReinBasicInfo.ConsCompletionDate.HasValue) { ScheduleLog.GenerateTaskSchedule(consInfo.ReinBasicInfo.ConsCompletionDate.Value.AddDays(60), task, ClientCookie.UserCode, ProjectId, WorkflowCode, majorLeaseInfo.USCode); } } } }
public override void Recall(string comment) { using (TransactionScope tranScope = new TransactionScope()) { ProjectInfo.Reset(this.ProjectId, this.WorkflowCode, ProjectStatus.Recalled); ProjectComment.AddComment( ProjectCommentAction.Recall, comment, this.Id, this.TableName, FlowCode.TempClosure, this.ProcInstId, ProjectCommentStatus.Submit ); var actor = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == this.ProjectId && pu.RoleCode == ProjectUserRoleCode.AssetActor); var legal = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == this.ProjectId && pu.RoleCode == ProjectUserRoleCode.Legal); var oldUnfinishTasks = TaskWork.Search(t => t.RefID == this.ProjectId && t.TypeCode == FlowCode.TempClosure_LegalReview && t.Status == TaskWorkStatus.UnFinish).ToList(); oldUnfinishTasks.ForEach(t => { t.Status = TaskWorkStatus.Cancel; }); TaskWork.Update(oldUnfinishTasks.ToArray()); tranScope.Complete(); } string comments = ClientCookie.UserNameZHCN + "进行了流程撤回操作"; K2FxContext.Current.GoToActivityAndRecord( this.ProcInstId.Value, this.WorkflowActOriginator, ClientCookie.UserCode, ProjectAction.Recall, comments ); //ProjectInfo.Reset(this.ProjectId, WorkflowCode); }
public override void Finish(TaskWorkStatus status, TaskWork task) { using (var scope = new TransactionScope()) { switch (status) { case TaskWorkStatus.K2ProcessApproved: //ClosureTool的最后一步在K2中,但不属于审批 task.ActionName = ""; task.Update(); ProjectInfo.FinishNode(this.ProjectId, FlowCode.Closure_ClosureTool, NodeCode.Closure_ClosureTool_Generate, ProjectStatus.Finished); if (!ClosureExecutiveSummary.Any(i => i.ProjectId == this.ProjectId && i.IsHistory == false)) { var esEntity = new ClosureExecutiveSummary(); esEntity.ProjectId = this.ProjectId; esEntity.Id = Guid.NewGuid(); esEntity.CreateTime = DateTime.Now; esEntity.CreatorAccount = ClientCookie.UserCode; ClosureExecutiveSummary.Add(esEntity); } break; } scope.Complete(); } }
public string GeneratePackageTask(string projectId) { if (!TaskWork.Any(i => i.RefID == projectId && i.TypeCode == FlowCode.Closure_ClosurePackage && i.Status == TaskWorkStatus.UnFinish)) { var taskWork = new TaskWork(); taskWork.SourceCode = FlowCode.Closure; taskWork.SourceNameENUS = taskWork.SourceCode; taskWork.SourceNameZHCN = "关店流程"; taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; taskWork.RefID = projectId; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.CreateUserAccount = ClientCookie.UserCode; var closureInfo = ClosureInfo.GetByProjectId(projectId); taskWork.Title = TaskWork.BuildTitle(projectId, closureInfo.StoreNameZHCN, closureInfo.StoreNameENUS); taskWork.TypeCode = WorkflowCode; taskWork.TypeNameENUS = "ClosurePackage"; taskWork.TypeNameZHCN = "ClosurePackage"; taskWork.ReceiverAccount = closureInfo.AssetActorAccount; taskWork.ReceiverNameENUS = closureInfo.AssetActorNameENUS; taskWork.ReceiverNameZHCN = closureInfo.AssetActorNameZHCN; taskWork.ActivityName = "Start"; taskWork.Url = string.Format(@"/Closure/Main#/ClosurePackage?projectId={0}", projectId); taskWork.StoreCode = closureInfo.USCode; TaskWork.Add(taskWork); return(taskWork.Url); } return(""); }
public override void PrepareTask(TaskWork taskWork) { if (taskWork.ActivityName == "Asset Rep Upload") { ProjectInfo.FinishNode(ProjectId, FlowCode.Closure_ClosurePackage, NodeCode.Closure_ClosurePackage_OnlineApprove); } }
public void Submit(string comment, Action onExecuting = null) { var legal = ProjectUsers.FirstOrDefault(pu => pu.ProjectId == this.ProjectId && pu.RoleCode == ProjectUserRoleCode.Legal); var task = TaskWork.GetTaskWork(this.ProjectId, ClientCookie.UserCode, TaskWorkStatus.UnFinish, FlowCode.TempClosure, this.WorkflowCode); task.Status = TaskWorkStatus.Finished; task.FinishTime = DateTime.Now; List <ProcessDataField> dataFields = new List <ProcessDataField> { new ProcessDataField("dest_Creator", this.CreateUserAccount), new ProcessDataField("dest_Legal", legal.UserAccount), new ProcessDataField("ProcessCode", this.WorkflowProcessCode), new ProcessDataField("ProjectTaskInfo", JsonConvert.SerializeObject(task)) }; var procInstId = K2FxContext.Current.StartProcess(WorkflowProcessCode, ClientCookie.UserCode, dataFields); if (procInstId > 0) { using (TransactionScope tranScope = new TransactionScope()) { TaskWork.Update(task); this.ProcInstId = procInstId; this.CreateTime = DateTime.Now; this.CreateUserAccount = ClientCookie.UserCode; this.Update(); var project = ProjectInfo.Get(this.ProjectId, this.WorkflowCode); project.CreateUserAccount = ClientCookie.UserCode; project.Update(); var SavedComment = ProjectComment.GetSavedComment(this.Id, this.TableName, ClientCookie.UserCode); if (SavedComment != null) { SavedComment.Status = ProjectCommentStatus.Submit; SavedComment.Content = comment; SavedComment.CreateTime = DateTime.Now; SavedComment.Update(); } else { ProjectComment.AddComment( ProjectCommentAction.Submit, comment, this.Id, this.TableName, FlowCode.TempClosure, procInstId, ProjectCommentStatus.Submit ); } ProjectInfo.FinishNode(this.ProjectId, this.WorkflowCode, NodeCode.TempClosure_LegalReview_Input); if (onExecuting != null) { onExecuting(); } tranScope.Complete(); } } }
public override void Finish(TaskWorkStatus status, TaskWork task) { switch (status) { case TaskWorkStatus.K2ProcessApproved: ProjectInfo.FinishNode(ProjectId, FlowCode.TempClosure_LegalReview, NodeCode.TempClosure_LegalReview_Approve, ProjectStatus.Finished); break; } }
public override string Edit() { var taskUrl = string.Format("/MajorLease/Main#/LegalReview?projectId={0}", ProjectId); using (var scope = new TransactionScope()) { var majorLeaseInfo = MajorLeaseInfo.Search(e => e.ProjectId.Equals(ProjectId)).FirstOrDefault(); if (majorLeaseInfo == null) { throw new Exception("Could not find the Major Lease Info, please check it!"); } TaskWork.Cancel(t => t.RefID == ProjectId && t.Status == TaskWorkStatus.UnFinish && t.TypeCode == this.WorkflowCode);//取消老的流程实例的所有未完成任务 var task = majorLeaseInfo.GenerateTaskWork(WorkflowCode, "LegalReview", "LegalReview", taskUrl); task.ActivityName = NodeCode.Start; task.ActionName = SetTaskActionName(ProjectId); TaskWork.Add(task); var package = MajorLeaseChangePackage.GetMajorPackageInfo(ProjectId); if (package != null) { package.ProjectId = ProjectId; package.CompleteActorPackageTask(majorLeaseInfo.AssetActorAccount); } IsHistory = true; Update(this); var attachments = Attachment.Search(e => e.RefTableID == Id.ToString() && e.RefTableName == WFMajorLeaseLegalReview.TableName).ToList(); ProjectInfo.Reset(ProjectId, WorkflowCode); Mapper.CreateMap <MajorLeaseLegalReview, MajorLeaseLegalReview>(); var newMajorLeaseLR = Mapper.Map <MajorLeaseLegalReview>(this); newMajorLeaseLR.Id = Guid.Empty; newMajorLeaseLR.ProcInstID = null; newMajorLeaseLR.IsHistory = false; newMajorLeaseLR.Comments = null; newMajorLeaseLR.Save(); var newAttachmentList = new List <Attachment>(); Mapper.CreateMap <Attachment, Attachment>(); foreach (var attachment in attachments) { var newAttachment = Mapper.Map <Attachment>(attachment); newAttachment.RefTableID = newMajorLeaseLR.Id.ToString(); newAttachment.ID = Guid.NewGuid(); newAttachmentList.Add(newAttachment); } Attachment.Add(newAttachmentList.ToArray()); scope.Complete(); } return(taskUrl); }
public void Submit(string comment, Action onExecuting = null) { try { RenewalInfo info = RenewalInfo.Get(this.ProjectId); var task = TaskWork.GetTaskWork(ProjectId, ClientCookie.UserCode, TaskWorkStatus.UnFinish, FlowCode.Renewal, WorkflowCode); var dataFields = SetWorkflowDataFields(task); var procInstId = K2FxContext.Current.StartProcess(WorkflowProcessCode, ClientCookie.UserCode, dataFields); if (procInstId > 0) { using (var tranScope = new TransactionScope()) { task.Finish(); this.ProcInstId = procInstId; this.CreateTime = DateTime.Now; this.CreateUserAccount = ClientCookie.UserCode; this.Update(); var project = ProjectInfo.Get(this.ProjectId, this.WorkflowCode); project.CreateUserAccount = ClientCookie.UserCode; project.Update(); var SavedComment = ProjectComment.GetSavedComment(this.Id, this.TableName, ClientCookie.UserCode); if (SavedComment != null) { SavedComment.Status = ProjectCommentStatus.Submit; SavedComment.Content = comment; SavedComment.CreateTime = DateTime.Now; SavedComment.Update(); } else { ProjectComment.AddComment( ProjectCommentAction.Submit, comment, this.Id, this.TableName, FlowCode.Renewal, procInstId, ProjectCommentStatus.Submit ); } ProjectInfo.FinishNode(this.ProjectId, this.WorkflowCode, NodeCode.Renewal_Tool_Input); if (onExecuting != null) { onExecuting(); } tranScope.Complete(); } } } catch (Exception ex) { Log4netHelper.WriteInfo("[[Renewal Too]]:" + JsonConvert.SerializeObject(ex)); throw ex; } }
public override List <ProcessDataField> SetWorkflowDataFields(TaskWork task) { string destMgrs = AppUsers.MarketMgr.Code; if (AppUsers.RegionalMgr != null) { destMgrs += ";" + AppUsers.RegionalMgr.Code; } string dest_GMApprovers = ""; if (AppUsers.MDD != null) { dest_GMApprovers += AppUsers.MDD.Code + ";"; } if (AppUsers.GM != null) { dest_GMApprovers += AppUsers.GM.Code + ";"; } if (AppUsers.FC != null) { dest_GMApprovers += AppUsers.FC.Code + ";"; } if (AppUsers.RDD != null) { dest_GMApprovers += AppUsers.RDD.Code + ";"; } if (dest_GMApprovers.Length > 1) { dest_GMApprovers = dest_GMApprovers.Substring(0, dest_GMApprovers.Length - 1); } var processDataFields = new List <ProcessDataField>() { new ProcessDataField("dest_MarketMgr", destMgrs), new ProcessDataField("dest_GMApprovers", dest_GMApprovers), new ProcessDataField("dest_VPGM", AppUsers.VPGM.Code), new ProcessDataField("dest_MCCLAssetDir", AppUsers.MCCLAssetDtr.Code), new ProcessDataField("dest_CDO", AppUsers.CDO != null?AppUsers.CDO.Code:""), new ProcessDataField("dest_MngDirector", AppUsers.ManagingDirector.Code), new ProcessDataField("ProcessCode", WorkflowProcessCode), new ProcessDataField("IsNeedCDOApproval", CheckIfNeedCDOApproval().ToString(), "BOOLEAN"), new ProcessDataField("IsNeedUpload", CheckIfNeedUpload().ToString(), "BOOLEAN") }; if (task != null) { processDataFields.Add(new ProcessDataField("dest_Creator", ClientCookie.UserCode)); /*Linda Lu*/ processDataFields.Add(new ProcessDataField("dest_AssetRep", ConfigurationManager.AppSettings["AssetMgrCode"])); processDataFields.Add(new ProcessDataField("ProjectTaskInfo", JsonConvert.SerializeObject(task))); } return(processDataFields); }
public override void PrepareTask(TaskWork taskWork) { switch (taskWork.ActivityName) { case "Asset Rep Upload": ProjectInfo.FinishNode(ProjectId, WorkflowCode, NodeCode.Renewal_Package_Approval); break; } }
public void Confirm() { var tempClosureInfo = TempClosureInfo.Get(this.ProjectId); var url = "/TempClosure/Main#/ClosureMemo?projectId=" + this.ProjectId; var title = TaskWork.BuildTitle(this.ProjectId, tempClosureInfo.StoreNameZHCN, tempClosureInfo.StoreNameENUS); TaskWork.Finish(t => t.ReceiverAccount == ClientCookie.UserCode && t.RefID == this.ProjectId && t.Status == TaskWorkStatus.UnFinish && t.TypeCode == FlowCode.TempClosure_ClosurePackage); ProjectInfo.FinishNode(ProjectId, FlowCode.TempClosure_ClosurePackage, NodeCode.TempClosure_ClosurePackage_Upload, ProjectStatus.Finished); }
public override string Edit() { var taskWork = TaskWork.FirstOrDefault(e => e.ReceiverAccount == ClientCookie.UserCode && e.SourceCode == FlowCode.Closure && e.TypeCode == FlowCode.Closure_ExecutiveSummary && e.RefID == this.ProjectId); taskWork.Status = TaskWorkStatus.UnFinish; taskWork.StatusNameZHCN = "任务"; taskWork.StatusNameENUS = "任务"; var closureEntity = ClosureInfo.GetByProjectId(this.ProjectId); taskWork.ReceiverAccount = closureEntity.AssetActorAccount; taskWork.ReceiverNameENUS = closureEntity.AssetActorNameENUS; taskWork.ReceiverNameZHCN = closureEntity.AssetActorNameZHCN; taskWork.Id = Guid.NewGuid(); taskWork.CreateTime = DateTime.Now; taskWork.Url = TaskWork.BuildUrl(FlowCode.Closure_ExecutiveSummary, this.ProjectId, ""); taskWork.ActivityName = NodeCode.Start; taskWork.ProcInstID = null; taskWork.FinishTime = null; taskWork.ActionName = SetTaskActionName(ProjectId); TaskWork.Add(taskWork); this.IsHistory = true; this.Save(); var objectCopy = new ObjectCopy(); var newEntity = objectCopy.AutoCopy(this); newEntity.Id = Guid.NewGuid(); newEntity.ProcInstID = 0; newEntity.IsHistory = false; newEntity.Add(); var projectEntity = ProjectInfo.Get(this.ProjectId, FlowCode.Closure_ExecutiveSummary); projectEntity.Status = ProjectStatus.UnFinish; ProjectInfo.Update(projectEntity); ProjectInfo.Reset(ProjectId, FlowCode.Closure_ExecutiveSummary); ProjectInfo.Reset(ProjectId, FlowCode.Closure); var attList = Attachment.Search(e => e.RefTableID == this.Id.ToString() && e.RefTableName == ClosureExecutiveSummary.TableName).AsNoTracking().ToList(); var newList = new List <Attachment>(); foreach (var att in attList) { var newAtt = objectCopy.AutoCopy(att); newAtt.RefTableID = newEntity.Id.ToString(); newAtt.ID = Guid.NewGuid(); newList.Add(newAtt); } Attachment.Add(newList.ToArray()); return(taskWork.Url); }
public override string Edit() { var taskUrl = string.Format("/MajorLease/Main#/ConsInfo?projectId={0}", ProjectId); using (var scope = new TransactionScope()) { var majorLeaseInfo = MajorLeaseInfo.FirstOrDefault(e => e.ProjectId.Equals(ProjectId)); if (majorLeaseInfo == null) { throw new Exception("Could not find the Major Lease Info, please check it!"); } var task = majorLeaseInfo.GenerateTaskWork(FlowCode.MajorLease_ConsInfo, "ConsInfo", "ConsInfo", taskUrl); task.ActivityName = NodeCode.Start; task.ActionName = SetTaskActionName(ProjectId); TaskWork.Add(task); var package = MajorLeaseChangePackage.GetMajorPackageInfo(ProjectId); if (package != null) { package.ProjectId = ProjectId; package.CompleteActorPackageTask(majorLeaseInfo.AssetActorAccount); } IsHistory = true; Update(this); var attachments = Attachment.Search(e => e.RefTableID == Id.ToString() && e.RefTableName == WFMajorLeaseConsInfo.TableName).AsNoTracking().ToList(); ProjectInfo.Reset(ProjectId, FlowCode.MajorLease_ConsInfo); Mapper.CreateMap <MajorLeaseConsInfo, MajorLeaseConsInfo>(); var form = Mapper.Map <MajorLeaseConsInfo>(this); form.Id = Guid.Empty; form.ProcInstID = null; form.IsHistory = false; form.Comments = null; form.Save("Edit"); var newAttachmentList = new List <Attachment>(); Mapper.CreateMap <Attachment, Attachment>(); foreach (var attachment in attachments) { var newAttachment = Mapper.Map <Attachment>(attachment); newAttachment.RefTableID = form.Id.ToString(); newAttachment.ID = Guid.NewGuid(); newAttachmentList.Add(newAttachment); } Attachment.Add(newAttachmentList.ToArray()); scope.Complete(); } return(taskUrl); }
public void Submit(string comment, Action onExecuting = null) { var actor = ProjectUsers.GetProjectUser(this.ProjectId, ProjectUserRoleCode.AssetActor); var task = TaskWork.GetTaskWork(ProjectId, ClientCookie.UserCode, TaskWorkStatus.UnFinish, FlowCode.Renewal, WorkflowCode); var dataFields = SetWorkflowDataFields(task); var procInstId = K2FxContext.Current.StartProcess(WorkflowProcessCode, ClientCookie.UserCode, dataFields); if (procInstId > 0) { using (TransactionScope tranScope = new TransactionScope()) { this.ProcInstId = procInstId; this.CreateTime = DateTime.Now; this.CreateUserAccount = ClientCookie.UserCode; this.Update(); var approveDialogUser = new ApproveDialogUser(); approveDialogUser.Id = Guid.NewGuid(); approveDialogUser.LegalCode = AppUsers.Legal.Code; approveDialogUser.ProjectId = this.ProjectId; approveDialogUser.FlowCode = this.WorkflowCode; approveDialogUser.RefTableID = this.Id.ToString(); approveDialogUser.Add(); var project = ProjectInfo.Get(this.ProjectId, this.WorkflowCode); project.CreateUserAccount = ClientCookie.UserCode; project.Update(); var SavedComment = ProjectComment.GetSavedComment(this.Id, this.TableName, ClientCookie.UserCode); if (SavedComment != null) { SavedComment.Status = ProjectCommentStatus.Submit; SavedComment.Content = comment; SavedComment.CreateTime = DateTime.Now; SavedComment.Update(); } else { ProjectComment.AddComment( ProjectCommentAction.Submit, comment, this.Id, this.TableName, FlowCode.Renewal, procInstId, ProjectCommentStatus.Submit ); } ProjectInfo.FinishNode(this.ProjectId, this.WorkflowCode, NodeCode.Renewal_LegalApproval_Input); if (onExecuting != null) { onExecuting(); } tranScope.Complete(); } } }
public void Submit(string comment, Action onExecuting = null) { var task = TaskWork.GetTaskWork(ProjectId, ClientCookie.UserCode, TaskWorkStatus.UnFinish, FlowCode.Renewal, WorkflowCode); var dataFields = SetWorkflowDataFields(task); var procInstId = K2FxContext.Current.StartProcess(WorkflowProcessCode, ClientCookie.UserCode, dataFields); if (procInstId > 0) { using (TransactionScope tranScope = new TransactionScope()) { task.Finish(); this.ProcInstId = procInstId; this.CreateTime = DateTime.Now; this.CreateUserAccount = ClientCookie.UserCode; this.Update(); if (this.HasReinvenstment) { SaveApprovers(); } var project = ProjectInfo.Get(this.ProjectId, this.WorkflowCode); project.CreateUserAccount = ClientCookie.UserCode; project.Update(); var SavedComment = ProjectComment.GetSavedComment(this.Id, this.TableName, ClientCookie.UserCode); if (SavedComment != null) { SavedComment.Status = ProjectCommentStatus.Submit; SavedComment.Content = comment; SavedComment.CreateTime = DateTime.Now; SavedComment.Update(); } else { ProjectComment.AddComment( ProjectCommentAction.Submit, comment, this.Id, this.TableName, FlowCode.Renewal, procInstId, ProjectCommentStatus.Submit ); } if (HasReinvenstment) { ProjectInfo.FinishNode(this.ProjectId, this.WorkflowCode, NodeCode.Renewal_ConsInfo_Input); } if (onExecuting != null) { onExecuting(); } tranScope.Complete(); } } }
public TaskWork GenerateSubmitTask(string flowCode) { TaskWork.Cancel(t => t.TypeCode == flowCode && t.ActivityName == "Start" && t.RefID == this.ProjectId); TaskWork taskWork = new TaskWork(); var url = TaskWork.BuildUrl(flowCode, this.ProjectId); switch (flowCode) { case FlowCode.Renewal_Letter: taskWork = GenerateTask(flowCode, url, AssetActorAccount, AssetActorNameENUS, AssetActorNameZHCN, "Start"); break; case FlowCode.Renewal_LLNegotiation: taskWork = GenerateTask(flowCode, url, AssetActorAccount, AssetActorNameENUS, AssetActorNameZHCN, "Start"); break; case FlowCode.Renewal_ConsInfo: taskWork = GenerateTask(flowCode, url, PMAccount, PMNameENUS, PMNameZHCN, "Start"); break; case FlowCode.Renewal_Tool: taskWork = GenerateTask(flowCode, url, FinanceAccount, FinanceNameENUS, FinanceNameZHCN, "Start"); break; case FlowCode.Renewal_Analysis: taskWork = GenerateTask(flowCode, url, AssetActorAccount, AssetActorNameENUS, AssetActorNameZHCN, "Start"); break; case FlowCode.Renewal_ClearanceReport: taskWork = GenerateTask(flowCode, url, AssetActorAccount, AssetActorNameENUS, AssetActorNameZHCN, "Start"); break; case FlowCode.Renewal_ConfirmLetter: taskWork = GenerateTask(flowCode, url, AssetActorAccount, AssetActorNameENUS, AssetActorNameZHCN, "Start"); break; case FlowCode.Renewal_LegalApproval: taskWork = GenerateTask(flowCode, url, AssetActorAccount, AssetActorNameENUS, AssetActorNameZHCN, "Start"); break; case FlowCode.Renewal_Package: taskWork = GenerateTask(flowCode, url, AssetActorAccount, AssetActorNameENUS, AssetActorNameZHCN, "Start"); break; case FlowCode.Renewal_ContractInfo: taskWork = GenerateTask(flowCode, url, AssetActorAccount, AssetActorNameENUS, AssetActorNameZHCN, "Start"); break; case FlowCode.Renewal_SiteInfo: taskWork = GenerateTask(flowCode, url, PMAccount, PMNameENUS, PMNameZHCN, "Start"); break; } return(taskWork); }