//启动流程 public void ApplyForm(APHelper AP, FormTableAdapter FormTA, int? RejectedFormID, FormDS.FormRow formRow, int OrganizationUnitID, string ProcessTemplateName, SystemEnums.FormStatus StatusID, Dictionary<string, object> map) { string email = string.Empty; if (StatusID == SystemEnums.FormStatus.Awaiting) { string ProcID = AP.createProcess(formRow.FormNo + ":" + DateTime.Now.ToString(), ProcessTemplateName, map); formRow.ProcID = ProcID; String inTurnStr = AP.startProcess(ProcID, OrganizationUnitID, ref email, formRow.UserID.ToString(), new AuthorizationBLL().GetStuffUserById(formRow.UserID).StuffName); string[] InTurn = inTurnStr.Split('&');//不同流程角色下的人员和职位 string ids = ""; string pids = ""; for (int a = 0; a < InTurn.Length; a++) { ids += InTurn[a].Split('$')[0].ToString();///人员 pids += InTurn[a].Split('$')[1].ToString();//职位 } formRow.InTurnUserIds = ids;//下一步的人员 formRow.InTurnPositionIds = pids;//下一步的人员职位 formRow.StatusID = (int)SystemEnums.FormStatus.Awaiting; FormTA.Update(formRow); } //作废之前的单据 if (RejectedFormID != null) { FormDS.FormRow oldRow = FormTA.GetDataByID(RejectedFormID.GetValueOrDefault())[0]; if (oldRow.StatusID == (int)SystemEnums.FormStatus.Rejected) { ScrapForm(oldRow.FormID); } } }
public static string GenerateRepeatFormStr(FormDS.FormDataTable tbForm) { string systemInfo = ""; if (tbForm != null && tbForm.Count > 0) { foreach (FormDS.FormRow formRow in tbForm) { systemInfo += "P" + formRow.FormID + ":" + formRow.FormNo + ":" + formRow.PageType + "P"; } } return systemInfo; }
public static void InitSplitRate(FormDS.FormApplySplitRateDataTable tbSplitRate, DateTime BeginPeriod, DateTime EndPeriod) { int MonthCount = EndPeriod.Month - BeginPeriod.Month; if (MonthCount < 0 && MonthCount + 12 > 0 && MonthCount + 12 <= 12) { MonthCount += 12; } int UsedRate = 0; if (BeginPeriod != null && EndPeriod != null && MonthCount > 0) { for (int i = 0; i < MonthCount + 1; i++) { FormDS.FormApplySplitRateRow rowSplitRate = tbSplitRate.NewFormApplySplitRateRow(); rowSplitRate.FormApplyID = 0; if (i == MonthCount) { rowSplitRate.Rate = 100 - UsedRate; } else { decimal a = 100; rowSplitRate.Rate = decimal.ToInt32((decimal)100 / (decimal)(MonthCount + 1)); UsedRate += rowSplitRate.Rate; } rowSplitRate.Period = BeginPeriod.AddMonths(i); tbSplitRate.AddFormApplySplitRateRow(rowSplitRate); } } if (MonthCount > 0) { int tempRate = tbSplitRate[MonthCount].Rate; tbSplitRate[MonthCount].Rate = tbSplitRate[0].Rate; tbSplitRate[0].Rate = tempRate; } }