private void Actions_ActionExecuting(object sender, ActionEventArgs e) { WorkflowDataFields fields = WorkflowContext.Current.DataFields; if (e.Action.Equals("Save", StringComparison.CurrentCultureIgnoreCase)) { WorkflowContext.Current.UpdateWorkflowVariable("isSave", true); fields["Status"] = CAWorkflowStatus.Pending; WorkflowContext.Current.UpdateWorkflowVariable("completeTaskT", "PAD Change Request needs to Submit"); WorkflowContext.Current.UpdateWorkflowVariable("editUrl", "/_Layouts/CA/WorkFlows/PADChangeRequest/EditForm.aspx"); } else { if (Convert.ToDateTime(fields["CurrentPAD"].ToString()) < Convert.ToDateTime(fields["NewPAD"].ToString())) { if (sapcommonpad.SapUpdatePAD(fields["PONumber"].ToString(), Convert.ToDateTime(fields["NewPAD"].ToString()).ToString("yyyy-MM-dd"))) { WorkflowContext.Current.UpdateWorkflowVariable("isSave", false); WorkflowContext.Current.UpdateWorkflowVariable("isSubmit", true); WorkflowContext.Current.UpdateWorkflowVariable("updateResult", true); WorkflowContext.Current.UpdateWorkflowVariable("isFree", true); fields["Status"] = CAWorkflowStatus.Completed; } else { DisplayMessage("更新SAP数据失败,请联系IT人员或稍后提交.Error:" + sapcommonpad.ErrorMsg); e.Cancel = true; return; } } else { QuickFlow.NameCollection ApproveUser = new QuickFlow.NameCollection(); var applicant = WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()); var managerEmp = WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(applicant)); //// ApproveUser.Add("ca\\function.head2"); ApproveUser.Add(managerEmp.UserAccount); var deleman = WorkFlowUtil.GetDeleman(managerEmp.UserAccount, "127"); if (deleman != null) { ApproveUser.Add(deleman); //fields["Delegates"] = deleman; } WorkflowContext.Current.UpdateWorkflowVariable("isSave", false); WorkflowContext.Current.UpdateWorkflowVariable("isSubmit", true); WorkflowContext.Current.UpdateWorkflowVariable("isFree", false); WorkflowContext.Current.UpdateWorkflowVariable("firstApproveUser", ApproveUser); WorkflowContext.Current.UpdateWorkflowVariable("ManagerApproveT", "PAD Change Request needs to Approve"); WorkflowContext.Current.UpdateWorkflowVariable("approveUrl", "/_Layouts/CA/WorkFlows/PADChangeRequest/ApproveForm.aspx"); fields["Status"] = CAWorkflowStatus.InProgress; } } WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
void actions_ActionExecuting(object sender, QuickFlow.UI.Controls.ActionEventArgs e) { //SPFieldUserValueCollection col = WorkFlowUtil.GetApproversValue(); //WorkflowContext.Current.DataFields["Approvers"] = col; AddWorkFlowStepApprovers(WorkflowContext.Current.Task.Step, WorkFlowStep.SupplierReinspectionApprovers, WorkFlowStep.SupplierReinspectionApproverLoginName); List<string> strGroupUser = WorkFlowUtil.UserListInGroup("wf_Finance_SR"); QuickFlow.NameCollection GroupUsers = new QuickFlow.NameCollection(); GroupUsers.AddRange(strGroupUser.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(WorkFlowStep.SupplierReinspectionFinanceTaskUsers, GetDelemanNameCollection(GroupUsers, Constants.CAModules.SupplierReInspectionCharge)); WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
void actions_ActionExecuting(object sender, QuickFlow.UI.Controls.ActionEventArgs e) { //SPFieldUserValueCollection col = WorkFlowUtil.GetApproversValue(); //WorkflowContext.Current.DataFields["Approvers"] = col; AddWorkFlowStepApprovers(WorkflowContext.Current.Task.Step, CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetApprovers, CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetApproverLoginName); if (WorkflowContext.Current.Task.Step == "FinanceTask") { WorkflowContext.Current.DataFields["Status"] = "Completed"; } else { WorkflowContext.Current.DataFields["Status"] = "In Progress"; } switch (WorkflowContext.Current.Task.Step) { case CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetConstructionHeadApproval: string CFOName = WorkFlowUtil.GetUserInGroup("wf_CFO"); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetCFOApprovalUser, GetDelemanNameCollection(new QuickFlow.NameCollection(CFOName), Constants.CAModules.NewStoreBudgetApplication)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetCFOApproval: string CEOName = WorkFlowUtil.GetUserInGroup("wf_CEO"); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetCEOApprovalUser, GetDelemanNameCollection(new QuickFlow.NameCollection(CEOName), Constants.CAModules.NewStoreBudgetApplication)); List<string> strGroupUser = WorkFlowUtil.UserListInGroup("wf_Finance_BA"); QuickFlow.NameCollection GroupUsers = new QuickFlow.NameCollection(); GroupUsers.AddRange(strGroupUser.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetFinanceTaskUsers, GetDelemanNameCollection(GroupUsers, Constants.CAModules.NewStoreBudgetApplication)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetCEOApproval: List<string> strGroupUser1 = WorkFlowUtil.UserListInGroup("wf_Finance_BA"); QuickFlow.NameCollection GroupUsers1 = new QuickFlow.NameCollection(); GroupUsers1.AddRange(strGroupUser1.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.StoreBudgetFinanceTaskUsers, GetDelemanNameCollection(GroupUsers1, Constants.CAModules.NewStoreBudgetApplication)); break; } WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
/// <summary> /// 获得原始审批人和其创建的代理人 /// </summary> /// <param name="approverNameCollection">原始审批人</param> /// <param name="modulesId">所属List模块ID</param> /// <returns></returns> public QuickFlow.NameCollection GetDelemanNameCollection(QuickFlow.NameCollection approverNameCollection, string modulesId) { QuickFlow.NameCollection delemanNameCollection = new QuickFlow.NameCollection(); foreach (string approver in approverNameCollection) { if (approver.IsNotNullOrWhitespace()) { delemanNameCollection.Add(approver); //一个模块只有一个代理 var deleman = WorkFlowUtil.GetDeleman(approver, modulesId); if (null != deleman) { delemanNameCollection.Add(deleman); } } } return delemanNameCollection; }
void actions_ActionExecuting(object sender, QuickFlow.UI.Controls.ActionEventArgs e) { if(e.Action.Equals("End",StringComparison.CurrentCultureIgnoreCase)) { WorkflowContext.Current.DataFields["Status"]="Cancelled"; return; } WorkflowContext.Current.DataFields["ApplyDept"] = DataForm1.Applicant.Department; WorkflowContext.Current.DataFields["ApplyDate"] = DataForm1.ApplyDate; WorkflowContext.Current.DataFields["ApplyUser"] = this.DataForm1.Applicant.UserAccount; WorkflowContext.Current.DataFields["RequestType"] = this.DataForm1.RequestType; WorkflowContext.Current.DataFields["BudgetApproved"] = this.DataForm1.BudgetApproved; WorkflowContext.Current.DataFields["CurrencyType"] = this.DataForm1.CurrencyType; WorkflowContext.Current.DataFields["CostCenter"] = this.DataForm1.CostCenter; WorkflowContext.Current.DataFields["BudgetValue"] = this.DataForm1.BudgetValue; WorkflowContext.Current.DataFields["ProduceandDeliveryDate"] = this.DataForm1.ProduceandDeliveryDate; WorkflowContext.Current.DataFields["Installation"] = this.DataForm1.Installation; WorkflowContext.Current.DataFields["Freight"] = this.DataForm1.Freight; WorkflowContext.Current.DataFields["Packaging"] = this.DataForm1.Packaging; WorkflowContext.Current.DataFields["Status"] = "In Progress"; string department = string.Empty; if (DataForm1.Applicant.Department.Contains(';')) department = DataForm1.Applicant.Department.Substring(0, DataForm1.Applicant.Department.IndexOf(';') + 1); else department = DataForm1.Applicant.Department; string departmentManager = UserProfileUtil.GetDepartmentManager(department); QuickFlow.NameCollection DepartmentHead = new QuickFlow.NameCollection(); DepartmentHead.Add(departmentManager); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingDepartmentHeadAccount, GetDelemanNameCollection(DepartmentHead, CA.WorkFlow.UI.Constants.CAModules.ConstructionPurchasingRequest)); WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
void Actions_ActionExecuting(object sender, ActionEventArgs e) { bool isCheckOK = CheckData(); if (!isCheckOK)//未能通过数据验证 { e.Cancel = true; return; } WorkflowDataFields fields = WorkflowContext.Current.DataFields; string sWorkflowNumber = fields["Title"].ToString(); if (e.Action.Equals("Save", StringComparison.CurrentCultureIgnoreCase)) { WorkflowContext.Current.UpdateWorkflowVariable("isSave", true); WorkflowContext.Current.UpdateWorkflowVariable("isSubmit", false); WorkflowContext.Current.UpdateWorkflowVariable("isFree", false); WorkflowContext.Current.UpdateWorkflowVariable("completeTaskT", "PAD Change Request needs to Submit"); WorkflowContext.Current.UpdateWorkflowVariable("editUrl", "/_Layouts/CA/WorkFlows/PADChangeRequest/BatchEditForm.aspx"); fields["Status"] = CAWorkflowStatus.InProgress; DeleteData(sWorkflowNumber); SaveDataToPADChangeRequest(sWorkflowNumber); } else//submit { bool IsNeedApprove = IsNeedWorkFlowStep();//是否需要工作流审批,只要有一个记录的原始日期大于新输入的日期,则需要进入工作流审批流程, if (!IsNeedApprove)//不需要工作流审批流程 { bool isSuccess = UpdateToSAP(sWorkflowNumber); if (isSuccess) { WorkflowContext.Current.UpdateWorkflowVariable("isSubmit", true); WorkflowContext.Current.UpdateWorkflowVariable("isFree", true); WorkflowContext.Current.UpdateWorkflowVariable("isSave", false); fields["Status"] = CAWorkflowStatus.Completed; DeleteData(sWorkflowNumber); SaveDataToPADChangeRequest(sWorkflowNumber); } else { e.Cancel = true; return; } } else//需要工作流审批流程 { QuickFlow.NameCollection ApproveUser = new QuickFlow.NameCollection(); var applicant = WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()); var managerEmp = SapCommonPADChangeRequest.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(applicant));// WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(applicant)); if (managerEmp == null) { DisplayMessage("此用户没有Level-5,Level-4级的审批用户,无法提交"); e.Cancel = true; return; } ApproveUser.Add(managerEmp.UserAccount); var deleman = WorkFlowUtil.GetDeleman(managerEmp.UserAccount, CA.WorkFlow.UI.Constants.CAModules.PADChangeRequest); if (deleman != null) { ApproveUser.Add(deleman); } WorkflowContext.Current.UpdateWorkflowVariable("isSave", false); WorkflowContext.Current.UpdateWorkflowVariable("isSubmit", true); WorkflowContext.Current.UpdateWorkflowVariable("isFree", false); WorkflowContext.Current.UpdateWorkflowVariable("firstApproveUser", ApproveUser); WorkflowContext.Current.UpdateWorkflowVariable("ManagerApproveT", "PAD Change Request needs to Approve"); WorkflowContext.Current.UpdateWorkflowVariable("approveUrl", "/_Layouts/CA/WorkFlows/PADChangeRequest/BatchApproveForm.aspx"); fields["Status"] = CAWorkflowStatus.InProgress; fields["CurrManager"] = managerEmp.UserAccount; DeleteData(sWorkflowNumber); SaveDataToPADChangeRequest(sWorkflowNumber); } } WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
void actions_ActionExecuting(object sender, QuickFlow.UI.Controls.ActionEventArgs e) { if (e.Action.Equals("End", StringComparison.CurrentCultureIgnoreCase)) { WorkflowContext.Current.DataFields["Status"] = "Cancelled"; return; } WorkflowContext.Current.DataFields["UserName"] = DataForm1.Applicant.UserAccount; WorkflowContext.Current.DataFields["Supplier"] = DataForm1.Supplier; WorkflowContext.Current.DataFields["SubDivision"] = DataForm1.SubDivision; WorkflowContext.Current.DataFields["IsMondial"] = DataForm1.IsMondia; WorkflowContext.Current.DataFields["Status"] = DataForm1.Status; WorkflowContext.Current.DataFields["Flag"] = "Submit"; WorkflowContext.Current.DataFields["RequestStatus"] = "In Progress"; string Head = WorkFlowUtil.GetEmployeeApproverInDept(DataForm1.Applicant, true, true).UserAccount; QuickFlow.NameCollection ManagerUser = new QuickFlow.NameCollection(); if (!string.IsNullOrEmpty(Head)) { ManagerUser.Add(Head); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationManager, GetDelemanNameCollection(ManagerUser, CAModules.NewSupplierCreation)); } WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
void actions_ActionExecuting(object sender, QuickFlow.UI.Controls.ActionEventArgs e) { if (WorkflowContext.Current.Step.ToString() == "ITMember") { string msg = DataForm1.ValidSavedate; if (!string.IsNullOrEmpty(msg)) { DisplayMessage(msg); e.Cancel = true; return; } } WorkflowContext.Current.DataFields["Flag"] = "Approve"; if (WorkflowContext.Current.Step.ToString() == "ITHeader") { bool strFOCO = this.DataForm1.IsFOCO; WorkflowContext.Current.UpdateWorkflowVariable("IsFOCO", strFOCO); WorkflowContext.Current.DataFields["FOCOApprove"] = DataForm1.IsFOCO; } if (WorkflowContext.Current.Step == "FOCO" && e.Action == "Approve") { WorkflowContext.Current.DataFields["Status"] = "Completed"; } else if (WorkflowContext.Current.Step == "ITHeader" && !this.DataForm1.IsFOCO && e.Action == "Approve") { WorkflowContext.Current.DataFields["Status"] = "Completed"; } else { WorkflowContext.Current.DataFields["Status"] = "In Progress"; } //SPFieldUserValueCollection col = WorkFlowUtil.GetApproversValue(); //WorkflowContext.Current.DataFields["Approvers"] = col; AddWorkFlowStepApprovers(WorkflowContext.Current.Task.Step, CA.WorkFlow.UI.Constants.WorkFlowStep.ITRequestApprovers, CA.WorkFlow.UI.Constants.WorkFlowStep.ITRequestApproverLoginName); switch (WorkflowContext.Current.Task.Step) { case CA.WorkFlow.UI.Constants.WorkFlowStep.ITRequestITMember: CA.SharePoint.Utilities.Common.Employee approver = WorkFlowUtil.GetEmployeeApprover(DataForm1.Applicant); QuickFlow.NameCollection DepartHeadUser = new QuickFlow.NameCollection(); DepartHeadUser.Add(approver.UserAccount); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ITRequestDepartHeaderAccounts, GetDelemanNameCollection(DepartHeadUser, Constants.CAModules.ItRequest)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.ITRequestDepartmentHeader: QuickFlow.NameCollection ITHeadUser = new QuickFlow.NameCollection(); string strHRHeadAccount = UserProfileUtil.GetDepartmentManager("it"); ITHeadUser.Add(strHRHeadAccount); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ITRequestITHeaderAccounts, GetDelemanNameCollection(ITHeadUser, Constants.CAModules.ItRequest)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.ITRequestITHeader: QuickFlow.NameCollection CFOUser = new QuickFlow.NameCollection(); List<string> lst = WorkFlowUtil.UserListInGroup("wf_CFO"); CFOUser.AddRange(lst.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ITRequestFOCOAccounts, GetDelemanNameCollection(CFOUser, Constants.CAModules.ItRequest)); break; } TaskOutcome = e.Action; WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
private void Actions_ActionExecuting(object sender, ActionEventArgs e) { SapCommonPADChangeRequest sapcommonpad = new SapCommonPADChangeRequest(); WorkflowDataFields fields = WorkflowContext.Current.DataFields; string sWorkflowNumber = fields["Title"].ToString(); switch (WorkflowContext.Current.Step) { case "ManagerApprove": if (e.Action.Equals("Approve", StringComparison.CurrentCultureIgnoreCase)) { ///现审请者的manager为4,则结束流程 ///现审请者的manager为5,现审请者的manager的manager为4以上,则结束 bool isNeedBD = true; Employee eCurrManager=UserProfileUtil.GetEmployeeEx(fields["CurrManager"].ToString()); int iCurrLevel = SapCommonPADChangeRequest.GetLevel(eCurrManager.JobLevel); if (iCurrLevel == 4)//当前审批者的级别为4,不需要审批 { isNeedBD = false; } else////当前审请者的级别为5 { // QuickFlow.NameCollection BDMApprover = new QuickFlow.NameCollection(); Employee eBD = WorkFlowUtil.GetNextApprover(eCurrManager); if (null == eBD)//当前审批者没有manager,不需要审批 { isNeedBD = false; } else { int iLevel = SapCommonPADChangeRequest.GetLevel(eBD.JobLevel.AsString()); if (iLevel != 4)////当前审批者的manager不为4,不需要审批 { isNeedBD = false; } } } if (!isNeedBD)//不需要下一级审批 { if (UpdateToSAP(sWorkflowNumber)) { WorkflowContext.Current.UpdateWorkflowVariable("isOnlyApp", true); WorkflowContext.Current.UpdateWorkflowVariable("updateResult", true); //fields["CurrManager"] = WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()))).UserAccount; fields["Approvers"] = ReturnAllApprovers(fields["CurrManager"].ToString()); fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", fields["CurrManager"].ToString()); if (!SPContext.Current.Web.CurrentUser.LoginName.Equals(fields["CurrManager"].ToString(), StringComparison.CurrentCultureIgnoreCase)) { fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", SPContext.Current.Web.CurrentUser.LoginName); } fields["Status"] = CAWorkflowStatus.Completed; SendNoticeMail("approved"); } else { //DisplayMessage("更新SAP数据失败,请联系IT人员或稍后审批.Error:" + sapcommonpad.ErrorMsg.Replace("'", "‘").Replace("\\n", " ")); e.Cancel = true; return; } } else///需要经过SuperManagerApprove审批 { QuickFlow.NameCollection SuperApproveUser = new QuickFlow.NameCollection(); //var applicant = WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()); Employee supmanagerEmp = WorkFlowUtil.GetNextApprover(eCurrManager);// WorkFlowUtil.GetApproverIgnoreRight(WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(applicant))); if (supmanagerEmp == null) { DisplayMessage("此用户没有Level-4级审批用户,无法提交"); e.Cancel = true; return; } SuperApproveUser.Add(supmanagerEmp.UserAccount); var deleman = WorkFlowUtil.GetDeleman(supmanagerEmp.UserAccount, "127"); if (deleman != null) { SuperApproveUser.Add(deleman); } WorkflowContext.Current.UpdateWorkflowVariable("isOnlyApp", false); WorkflowContext.Current.UpdateWorkflowVariable("secApproveU", SuperApproveUser); WorkflowContext.Current.UpdateWorkflowVariable("SuperManagerT", "PAD Change Request needs to Approve"); WorkflowContext.Current.UpdateWorkflowVariable("approveUrl", "/_Layouts/CA/WorkFlows/PADChangeRequest/BatchApproveForm.aspx"); fields["Approvers"] = ReturnAllApprovers(fields["CurrManager"].ToString()); fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", fields["CurrManager"].ToString()); if (!SPContext.Current.Web.CurrentUser.LoginName.Equals(fields["CurrManager"].ToString(), StringComparison.CurrentCultureIgnoreCase)) { fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", SPContext.Current.Web.CurrentUser.LoginName); } UpdateItemApprove(); fields["Status"] = CAWorkflowStatus.InProgress; fields["CurrManager"] = supmanagerEmp.UserAccount;// WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()))).UserAccount; } } else//Reject { UpdateItemReject(); // fields["CurrManager"] = CurrentEmployee.UserAccount;// WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()))).UserAccount; fields["Status"] = CAWorkflowStatus.Completed; fields["Approvers"] = ReturnAllApprovers(fields["CurrManager"].ToString()); fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", fields["CurrManager"].ToString()); SendNoticeMail("rejected"); } break; case "SuperManagerApprove": if (e.Action.Equals("Approve", StringComparison.CurrentCultureIgnoreCase)) { if (UpdateToSAP(sWorkflowNumber)) { WorkflowContext.Current.UpdateWorkflowVariable("updateResult", true); var applicant = WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()); var supmanagerEmp = WorkFlowUtil.GetApproverIgnoreRight(WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(applicant))); // fields["CurrManager"] = supmanagerEmp.UserAccount; fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", fields["CurrManager"].ToString()); if (!SPContext.Current.Web.CurrentUser.LoginName.Equals(fields["CurrManager"].ToString(), StringComparison.CurrentCultureIgnoreCase)) { fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", SPContext.Current.Web.CurrentUser.LoginName); } fields["Status"] = CAWorkflowStatus.Completed; SendNoticeMail("approved"); } else { e.Cancel = true; return; } } else { UpdateItemReject(); // fields["CurrManager"] = CurrentEmployee.UserAccount;// WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()))).UserAccount; fields["Status"] = CAWorkflowStatus.Completed; fields["Approvers"] = ReturnAllApprovers(fields["CurrManager"].ToString()); fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", fields["CurrManager"].ToString()); SendNoticeMail("rejected"); } break; } WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
private void Actions_ActionExecuting(object sender, ActionEventArgs e) { WorkflowDataFields fields = WorkflowContext.Current.DataFields; switch (WorkflowContext.Current.Step) { case "ManagerApprove": if (e.Action.Equals("Approve", StringComparison.CurrentCultureIgnoreCase)) { if (WorkFlowUtil.GetApproverIsLastPAD(WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()))))) { if (sapcommonpad.SapUpdatePAD(fields["PONumber"].ToString(), Convert.ToDateTime(fields["NewPAD"]).ToString("yyyy-MM-dd"))) { WorkflowContext.Current.UpdateWorkflowVariable("isOnlyApp", true); WorkflowContext.Current.UpdateWorkflowVariable("updateResult", true); fields["CurrManager"] = WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()))).UserAccount; fields["Approvers"] = ReturnAllApprovers(fields["CurrManager"].ToString()); fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", fields["CurrManager"].ToString()); if (!SPContext.Current.Web.CurrentUser.LoginName.Equals(fields["CurrManager"].ToString(), StringComparison.CurrentCultureIgnoreCase)) { fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", SPContext.Current.Web.CurrentUser.LoginName); } fields["Status"] = CAWorkflowStatus.Completed; } else { DisplayMessage("更新SAP数据失败,请联系IT人员或稍后审批.Error:" + sapcommonpad.ErrorMsg); e.Cancel = true; return; } } else { QuickFlow.NameCollection SuperApproveUser = new QuickFlow.NameCollection(); var applicant = WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()); var supmanagerEmp = WorkFlowUtil.GetApproverIgnoreRight(WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(applicant))); if (supmanagerEmp == null) { DisplayMessage("此用户没有Level-4级以上的审批用户,无法提交"); e.Cancel = true; return; } // ApproveUser.Add("ca\\function.head2"); SuperApproveUser.Add(supmanagerEmp.UserAccount); var deleman = WorkFlowUtil.GetDeleman(supmanagerEmp.UserAccount, "127"); if (deleman != null) { SuperApproveUser.Add(deleman); //fields["Delegates"] = deleman; } WorkflowContext.Current.UpdateWorkflowVariable("isOnlyApp", false); WorkflowContext.Current.UpdateWorkflowVariable("secApproveU", SuperApproveUser); WorkflowContext.Current.UpdateWorkflowVariable("SuperManagerT", "PAD Change Request needs to Approve"); WorkflowContext.Current.UpdateWorkflowVariable("approveUrl", "/_Layouts/CA/WorkFlows/PADChangeRequest/ApproveForm.aspx"); fields["CurrManager"] = WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()))).UserAccount; fields["Approvers"] = ReturnAllApprovers(fields["CurrManager"].ToString()); fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", fields["CurrManager"].ToString()); if (!SPContext.Current.Web.CurrentUser.LoginName.Equals(fields["CurrManager"].ToString(), StringComparison.CurrentCultureIgnoreCase)) { fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", SPContext.Current.Web.CurrentUser.LoginName); } fields["Status"] = CAWorkflowStatus.InProgress; } } else { fields["Status"] = CAWorkflowStatus.Completed; } break; case "SuperManagerApprove": if (e.Action.Equals("Approve", StringComparison.CurrentCultureIgnoreCase)) { if (sapcommonpad.SapUpdatePAD(fields["PONumber"].ToString(), Convert.ToDateTime(fields["NewPAD"]).ToString("yyyy-MM-dd"))) { WorkflowContext.Current.UpdateWorkflowVariable("updateResult", true); var applicant = WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()); var supmanagerEmp = WorkFlowUtil.GetApproverIgnoreRight(WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(applicant))); fields["CurrManager"] = supmanagerEmp.UserAccount; fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", fields["CurrManager"].ToString()); if (!SPContext.Current.Web.CurrentUser.LoginName.Equals(fields["CurrManager"].ToString(), StringComparison.CurrentCultureIgnoreCase)) { fields["ApproversSPUser"] = ReturnAllApproversSP("ApproversSPUser", SPContext.Current.Web.CurrentUser.LoginName); } fields["Status"] = CAWorkflowStatus.Completed; } else { DisplayMessage("更新SAP数据失败,请联系IT人员或稍后审批.Error:" + sapcommonpad.ErrorMsg); e.Cancel = true; return; } } else { fields["Status"] = CAWorkflowStatus.Completed; } break; } WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
void actions_ActionExecuting(object sender, QuickFlow.UI.Controls.ActionEventArgs e) { SPFieldUserValueCollection col = WorkFlowUtil.GetApproversValue(); switch (WorkflowContext.Current.Step.ToString()) { case "Construction": string msg = DataForm1.Validate; if (!string.IsNullOrEmpty(msg)) { DisplayMessage(msg); e.Cancel = true; return; } WorkflowContext.Current.DataFields["Installation"] = this.DataForm1.Installation; WorkflowContext.Current.DataFields["Freight"] = this.DataForm1.Freight; WorkflowContext.Current.DataFields["Packaging"] = this.DataForm1.Packaging; AddWorkFlowStepApprovers(WorkflowContext.Current.Task.Step, CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingApprovers, CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingApproverLoginName); break; case "PlacesTheOrder": CheckBox chk = DataForm1.FindControl("chkPlacesOrder") as CheckBox; if (!chk.Checked) { e.Cancel = true; Page.RegisterStartupScript("msg1", "<script>alert('Can not confirm with Places the order unchecked!')</script>"); return; } else { WorkflowContext.Current.DataFields["PlacesOrder"] = "Yes"; } //WorkflowContext.Current.DataFields["Approvers"] = col; AddWorkFlowStepApprovers(WorkflowContext.Current.Task.Step, CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingApprovers, CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingApproverLoginName); break; case "OrderHandover": CheckBox chk1 = DataForm1.FindControl("chkOrderHandover") as CheckBox; if (!chk1.Checked) { e.Cancel = true; Page.RegisterStartupScript("msg2", "<script>alert('Can not confirm with Order handover unchecked!')</script>"); return; } else { WorkflowContext.Current.DataFields["OrderHandover"] = "Yes"; } //WorkflowContext.Current.DataFields["Approvers"] = col; AddWorkFlowStepApprovers(WorkflowContext.Current.Task.Step, CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingApprovers, CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingApproverLoginName); break; default: // WorkflowContext.Current.DataFields["Approvers"] = col; AddWorkFlowStepApprovers(WorkflowContext.Current.Task.Step, CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingApprovers, CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingApproverLoginName); break; } if (WorkflowContext.Current.Step == "OrderHandover" && e.Action == "Confirm") { WorkflowContext.Current.DataFields["Status"] = "Completed"; } else { WorkflowContext.Current.DataFields["Status"] = "In Progress"; } switch (WorkflowContext.Current.Task.Step) { case CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingConstructionHead: QuickFlow.NameCollection ConstructionUser = new QuickFlow.NameCollection(); List<string> lst = WorkFlowUtil.UserListInGroup("wf_Construction"); ConstructionUser.AddRange(lst.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingConstructionAccount, GetDelemanNameCollection(ConstructionUser, Constants.CAModules.ConstructionPurchasingRequest)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingConstruction: string strConstructionHeadAccount = UserProfileUtil.GetDepartmentManager("Construction"); QuickFlow.NameCollection ConstructionHead = new QuickFlow.NameCollection(); ConstructionHead.Add(strConstructionHeadAccount); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingConstructionHeadAccount, GetDelemanNameCollection(ConstructionHead, Constants.CAModules.ConstructionPurchasingRequest)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingConstructionHeadAgain: string department = string.Empty; if (DataForm1.Applicant.Department.Contains(';')) department = DataForm1.Applicant.Department.Substring(0, DataForm1.Applicant.Department.IndexOf(';') + 1); else department = DataForm1.Applicant.Department; string departmentManager = UserProfileUtil.GetDepartmentManager(department); QuickFlow.NameCollection DepartmentHead = new QuickFlow.NameCollection(); DepartmentHead.Add(departmentManager); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingDepartmentHeadAccount, GetDelemanNameCollection(DepartmentHead, Constants.CAModules.ConstructionPurchasingRequest)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingDepartmentHead: QuickFlow.NameCollection StoreOperationTeamUser = new QuickFlow.NameCollection(); string strStoreOperations = UserProfileUtil.GetDepartmentManager("Store Operations"); StoreOperationTeamUser.Add(strStoreOperations); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingStoreOperationTeamAccount, GetDelemanNameCollection(StoreOperationTeamUser, Constants.CAModules.ConstructionPurchasingRequest)); QuickFlow.NameCollection ConstructionUser1 = new QuickFlow.NameCollection(); List<string> lst1 = WorkFlowUtil.UserListInGroup("wf_Construction"); ConstructionUser1.AddRange(lst1.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingConstructionAccount, GetDelemanNameCollection(ConstructionUser1, Constants.CAModules.ConstructionPurchasingRequest)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingStoreOperationTeam: QuickFlow.NameCollection CFOUser = new QuickFlow.NameCollection(); List<string> lst2 = WorkFlowUtil.UserListInGroup("wf_CFO"); CFOUser.AddRange(lst2.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingCFOAccount, GetDelemanNameCollection(CFOUser, Constants.CAModules.ConstructionPurchasingRequest)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingCFO: QuickFlow.NameCollection ConstructionUser2 = new QuickFlow.NameCollection(); List<string> lst3 = WorkFlowUtil.UserListInGroup("wf_Construction"); ConstructionUser2.AddRange(lst3.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.ConstructionPurchasingConstructionAccount, GetDelemanNameCollection(ConstructionUser2, Constants.CAModules.ConstructionPurchasingRequest)); break; } TaskOutcome = e.Action; WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
void StartWorkflowButton1_Excuting(object sender, System.ComponentModel.CancelEventArgs e) { if (WorkflowPerson.IsCEO(this.DataForm1.Applicant.UserAccount)) { DisplayMessage("当前流程不支持CEO提交申请,请重新填写!"); e.Cancel = true; return; } bool isCheckOK = CheckData(); if (!isCheckOK)//未能通过数据验证,如新日期,老日期为空,新日期等于老日期,所有的数据都 是Delivered { e.Cancel = true; return; } var btn = sender as StartWorkflowButton; WorkflowDataFields fields = WorkflowContext.Current.DataFields; SPUser ApplicantSPUser = SPContext.Current.Web.EnsureUser(this.DataForm1.Applicant.UserAccount); string sWorkflowNumber = HiddenFieldWorkflowNO.Value; if (string.IsNullOrEmpty(sWorkflowNumber)) { sWorkflowNumber = CreateWorkFlowNumber(); HiddenFieldWorkflowNO.Value = sWorkflowNumber; } fields["Title"] = sWorkflowNumber; fields["ApplicantSPUser"] = ApplicantSPUser; if (string.Equals(btn.Text, "Save", StringComparison.CurrentCultureIgnoreCase)) { SaveDataToPADChangeRequest(sWorkflowNumber); WorkflowContext.Current.UpdateWorkflowVariable("isSave", true); WorkflowContext.Current.UpdateWorkflowVariable("isSubmit", false); WorkflowContext.Current.UpdateWorkflowVariable("isFree", false); WorkflowContext.Current.UpdateWorkflowVariable("completeTaskT", "PAD Change Request needs to Submit"); WorkflowContext.Current.UpdateWorkflowVariable("editUrl", "/_Layouts/CA/WorkFlows/PADChangeRequest/BatchEditForm.aspx"); fields["Status"] = CAWorkflowStatus.InProgress; } else//submit { bool IsNeedApprove = IsNeedWorkFlowStep();//是否需要工作流审批,只要有一个记录的原始日期大于新输入的日期,则需要进入工作流审批流程, if (!IsNeedApprove)//不需要工作流审批流程 { bool isUpdateSucc = UpdateToSAP(sWorkflowNumber); if (isUpdateSucc) { SaveDataToPADChangeRequest(sWorkflowNumber); WorkflowContext.Current.UpdateWorkflowVariable("isSubmit", true); WorkflowContext.Current.UpdateWorkflowVariable("isFree", true); WorkflowContext.Current.UpdateWorkflowVariable("isSave", false); fields["Status"] = CAWorkflowStatus.Completed; } else { e.Cancel = true; return; } } else//需要工作流审批流程 { QuickFlow.NameCollection ApproveUser = new QuickFlow.NameCollection(); var managerEmp = SapCommonPADChangeRequest.GetApproverByLevelPAD(this.DataForm1.Applicant);// WorkFlowUtil.GetApproverByLevelPAD(this.DataForm1.Applicant); if (managerEmp == null) { DisplayMessage("此用户没有Level-5,Level-4级的审批用户,无法提交"); e.Cancel = true; return; } ApproveUser.Add(managerEmp.UserAccount); var deleman = WorkFlowUtil.GetDeleman(managerEmp.UserAccount, CA.WorkFlow.UI.Constants.CAModules.PADChangeRequest); if (deleman != null) { ApproveUser.Add(deleman); } WorkflowContext.Current.UpdateWorkflowVariable("isSave", false); WorkflowContext.Current.UpdateWorkflowVariable("isSubmit", true); WorkflowContext.Current.UpdateWorkflowVariable("isFree", false); WorkflowContext.Current.UpdateWorkflowVariable("firstApproveUser", ApproveUser); WorkflowContext.Current.UpdateWorkflowVariable("ManagerApproveT", "PAD Change Request needs to Approve"); WorkflowContext.Current.UpdateWorkflowVariable("approveUrl", "/_Layouts/CA/WorkFlows/PADChangeRequest/BatchApproveForm.aspx"); fields["Status"] = CAWorkflowStatus.InProgress; fields["CurrManager"] = managerEmp.UserAccount;// WorkFlowUtil.GetApproverByLevelPAD(UserProfileUtil.GetEmployeeEx(WorkFlowUtil.GetApplicantAccount(WorkflowContext.Current.DataFields["Applicant"].ToString()))).UserAccount; SaveDataToPADChangeRequest(sWorkflowNumber); } } WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }
void actions_ActionExecuting(object sender, QuickFlow.UI.Controls.ActionEventArgs e) { if (WorkflowContext.Current.Step.ToString() == "BSSTeam") { string strStatus = DataForm1.Status.ToString(); if (strStatus != "Factory Assessment Failed" && strStatus != "Contract Signed & System Setup OK") { e.Cancel = true; Page.RegisterStartupScript("msg", "<script>alert('Can not confirm with selected status!')</script>"); ((HtmlTableRow)DataForm1.FindControl("trShow")).Style.Add("display", ""); ((HtmlTableRow)DataForm1.FindControl("updateList")).Style.Add("display", ""); return; } else { SPListItem item = SPContext.Current.ListItem; WorkflowContext.Current.DataFields["StatusList"] = item["StatusList"] + "<br>" + DataForm1.Status.ToString() + " " + DateTime.Now.ToString("yyyy-MM-dd"); } } WorkflowContext.Current.DataFields["Flag"] = "Approve"; if (WorkflowContext.Current.Step == "BSSTeam" && e.Action == "Confirm") { WorkflowContext.Current.DataFields["RequestStatus"] = "Completed"; } else { WorkflowContext.Current.DataFields["RequestStatus"] = "In Progress"; } //SPFieldUserValueCollection col = WorkFlowUtil.GetApproversValue(); //WorkflowContext.Current.DataFields["Approvers"] = col; AddWorkFlowStepApprovers(WorkflowContext.Current.Task.Step, CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationApprovers, CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationApproverLoginName); switch (WorkflowContext.Current.Task.Step) { case CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationDivisionManagerApprove: QuickFlow.NameCollection DirectorUser = new QuickFlow.NameCollection(); Employee employee = WorkFlowUtil.GetEmployeeApproverInDept(WorkFlowUtil.GetEmployeeApproverInDept(DataForm1.Applicant, true, true), true, false); if (employee != null) { string strhead = employee.UserAccount; if (!string.IsNullOrEmpty(strhead)) { DirectorUser.Add(strhead); } } WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationBuyDirector, GetDelemanNameCollection(DirectorUser, Constants.CAModules.NewSupplierCreation)); QuickFlow.NameCollection HeadUser1 = new QuickFlow.NameCollection(); List<string> lst1 = WorkFlowUtil.UserListInGroup("wf_CommercialHead"); HeadUser1.AddRange(lst1.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationHeader, GetDelemanNameCollection(HeadUser1, Constants.CAModules.NewSupplierCreation)); QuickFlow.NameCollection BBSTeamUser1 = new QuickFlow.NameCollection(); List<string> lst2 = WorkFlowUtil.UserListInGroup("wf_BSSTeam"); BBSTeamUser1.AddRange(lst2.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationBBSTeamAccount, GetDelemanNameCollection(BBSTeamUser1, Constants.CAModules.NewSupplierCreation)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationBuyingDirector: QuickFlow.NameCollection HeadUser = new QuickFlow.NameCollection(); List<string> lst = WorkFlowUtil.UserListInGroup("wf_CommercialHead"); HeadUser.AddRange(lst.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationHeader, GetDelemanNameCollection(HeadUser, Constants.CAModules.NewSupplierCreation)); QuickFlow.NameCollection BBSTeamUser3 = new QuickFlow.NameCollection(); List<string> lst3 = WorkFlowUtil.UserListInGroup("wf_BSSTeam"); BBSTeamUser3.AddRange(lst3.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationBBSTeamAccount, GetDelemanNameCollection(BBSTeamUser3, Constants.CAModules.NewSupplierCreation)); break; case CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationCommercialHeader: QuickFlow.NameCollection BBSTeamUser = new QuickFlow.NameCollection(); lst = WorkFlowUtil.UserListInGroup("wf_BSSTeam"); BBSTeamUser.AddRange(lst.ToArray()); WorkflowContext.Current.UpdateWorkflowVariable(CA.WorkFlow.UI.Constants.WorkFlowStep.SupplierCreationBBSTeamAccount, GetDelemanNameCollection(BBSTeamUser, Constants.CAModules.NewSupplierCreation)); break; } WorkFlowUtil.UpdateWorkflowPath(WorkflowContext.Current); }