Ejemplo n.º 1
0
        //启动流程
        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);
                }
            }
        }
Ejemplo n.º 2
0
 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;
 }
Ejemplo n.º 3
0
 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;
     }
 }