//启动流程 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 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); } } }
protected void OpenForm(int formID) { FormTableAdapter taForm = new FormTableAdapter(); FormDS.FormRow rowForm = taForm.GetDataByID(formID)[0]; FormContractTableAdapter taFormContract = new FormContractTableAdapter(); FormDS.FormContractRow rowFormContract = taFormContract.GetDataById(formID)[0]; //赋值 TextBox txtBeginDate = (TextBox)(this.UCPeriodBegin.FindControl("txtDate")); TextBox txtEndDate = (TextBox)(this.UCPeriodEnd.FindControl("txtDate")); this.txtFirstCompany.Text = rowFormContract.FirstCompany; if (!rowFormContract.IsSecondCompanyNull()) { this.txtSecondCompany.Text = rowFormContract.SecondCompany; } if (!rowFormContract.IsThirdCompanyNull()) { this.txtThirdCompany.Text = rowFormContract.ThirdCompany; } this.txtContractName.Text = rowFormContract.ContractName; this.txtContractAmount.Text = rowFormContract.ContractAmount.ToString(); this.txtPageNumber.Text = rowFormContract.PageNumber.ToString(); this.dplContractType.SelectedValue = rowFormContract.ContractTypeID.ToString(); if (!rowFormContract.IsPaymentTypeNull()) { this.txtPaymentType.Text = rowFormContract.PaymentType; } if (!rowFormContract.IsBeginDateNull()) { txtBeginDate.Text = rowFormContract.BeginDate.ToShortDateString(); } if (!rowFormContract.IsEndDateNull()) { txtEndDate.Text = rowFormContract.EndDate.ToShortDateString(); } if (!rowFormContract.IsMainContentNull()) { this.txtMainContent.Text = rowFormContract.MainContent; } if (!rowFormContract.IsChangePartNull()) { this.txtChangePart.Text = rowFormContract.ChangePart; } if (!rowFormContract.IsAttachedFileNameNull()) { this.UCFileUpload.AttachmentFileName = rowFormContract.AttachedFileName; } if (!rowFormContract.IsRealAttachedFileNameNull()) { this.UCFileUpload.RealAttachmentFileName = rowFormContract.RealAttachedFileName; } }
//审批方法 public void ApproveForm(APHelper AP, int formID, int stuffUserId, string stuffName, bool pass, string comment, string ProxyStuffName, int OrganizationUnitID) { string email = string.Empty; SqlTransaction transaction = null; try { FormTableAdapter TAMainForm = new FormTableAdapter(); transaction = TableAdapterHelper.BeginTransaction(TAMainForm); FormDS.FormRow formRow = TAMainForm.GetDataByID(formID)[0]; string returnValue = AP.approve(pass, comment, stuffUserId.ToString(), stuffName, formRow.ProcID, ProxyStuffName, formRow.OrganizationUnitID, ref email); string[] approveinfo = AP.GetProcessApproveUser(formRow.ProcID); if (AP.GetProcessIsEnd(formRow.ProcID)) { formRow.LastApprover = stuffUserId.ToString(); formRow.Comment = comment; formRow.ApprovedDate = Convert.ToDateTime(approveinfo[0]); } formRow.ApproverIds = approveinfo[3]; if (returnValue == null) { formRow.InTurnUserIds = "P"; formRow.InTurnPositionIds = "P"; //formRow.SubmitDate = DateTime.Now; if (pass) { //如果审批通过且返回值为空则该流程结束 formRow.StatusID = (int)SystemEnums.FormStatus.ApproveCompleted; //mailTitle = string.Format("您申请的编号为{0}的单据已经通过审批", formRow.FormNo); //mailBody = string.Format(mailBody, formRow.FormNo); //email = AP.getUserEmailByID(formRow.UserID); //AP.sendMail(email, "", mailTitle, mailBody); } else { //如果不通过则为驳回 formRow.StatusID = (int)SystemEnums.FormStatus.Rejected; //mailTitle = string.Format("您有单据申请被{0}退回", stuffName); //mailBody = string.Format(mailBody, formRow.FormNo); //email = AP.getUserEmailByID(formRow.UserID); //AP.sendMail(email, "", mailTitle, mailBody); } } else { string[] InTurn = returnValue.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; //下一步的人员职位 //mailTitle = string.Format(mailTitle, stuffName, formRow.FormNo); //mailBody = string.Format(mailBody, formRow.FormNo); //AP.sendMail(email, "", mailTitle,mailBody); } TAMainForm.Update(formRow); transaction.Commit(); } catch (Exception ex) { if (transaction != null) { transaction.Rollback(); } throw ex; } finally { if (transaction != null) { transaction.Dispose(); } } //System.Threading.Thread.Sleep(3000); }
protected void OpenForm(int formID) { FormTableAdapter taForm = new FormTableAdapter(); FormDS.FormRow rowForm = taForm.GetDataByID(formID)[0]; FormContractTableAdapter taFormContract = new FormContractTableAdapter(); FormDS.FormContractRow rowFormContract = taFormContract.GetDataById(formID)[0]; //��ֵ TextBox txtBeginDate = (TextBox)(this.UCPeriodBegin.FindControl("txtDate")); TextBox txtEndDate = (TextBox)(this.UCPeriodEnd.FindControl("txtDate")); this.txtFirstCompany.Text = rowFormContract.FirstCompany; if (!rowFormContract.IsSecondCompanyNull()) { this.txtSecondCompany.Text = rowFormContract.SecondCompany; } if (!rowFormContract.IsThirdCompanyNull()) { this.txtThirdCompany.Text = rowFormContract.ThirdCompany; } this.txtContractName.Text = rowFormContract.ContractName; this.txtContractAmount.Text = rowFormContract.ContractAmount.ToString(); this.txtPageNumber.Text = rowFormContract.PageNumber.ToString(); this.dplContractType.SelectedValue = rowFormContract.ContractTypeID.ToString(); if (!rowFormContract.IsPaymentTypeNull()) { this.txtPaymentType.Text = rowFormContract.PaymentType; } if (!rowFormContract.IsBeginDateNull()) { txtBeginDate.Text = rowFormContract.BeginDate.ToShortDateString(); } if (!rowFormContract.IsEndDateNull()) { txtEndDate.Text = rowFormContract.EndDate.ToShortDateString(); } if (!rowFormContract.IsMainContentNull()) { this.txtMainContent.Text = rowFormContract.MainContent; } if (!rowFormContract.IsChangePartNull()) { this.txtChangePart.Text = rowFormContract.ChangePart; } if (!rowFormContract.IsAttachedFileNameNull()) { this.UCFileUpload.AttachmentFileName = rowFormContract.AttachedFileName; } if (!rowFormContract.IsRealAttachedFileNameNull()) { this.UCFileUpload.RealAttachmentFileName = rowFormContract.RealAttachedFileName; } }
//审批方法 public void ApproveForm(int formID, int stuffUserId, string stuffName, bool pass, string comment, string ProxyStuffName,bool CheckPeriod = false) { string email = string.Empty; SqlTransaction transaction = null; try { string l_strtitle = ""; StringBuilder l_strbody = new StringBuilder(); FormTableAdapter TAMainForm = new FormTableAdapter(); transaction = TableAdapterHelper.BeginTransaction(TAMainForm); FormDS.FormRow formRow = TAMainForm.GetDataByID(formID)[0]; string returnValue = AP.approve(pass, comment, stuffUserId.ToString(), stuffName, formRow.ProcID, ProxyStuffName, formRow.OrganizationUnitID, ref email,CheckPeriod); // UtilityBLL ubll = new UtilityBLL(); string[] approveinfo = AP.GetProcessApproveUser(formRow.ProcID); if (AP.GetProcessIsEnd(formRow.ProcID)) { formRow.LastApprover = stuffUserId; formRow.Comment = comment; formRow.ApprovedDate = Convert.ToDateTime(approveinfo[0]); } formRow.ApproverIds = approveinfo[3]; if (returnValue == null) { formRow.InTurnUserIds = "P"; formRow.InTurnPositionIds = "P"; formRow.ApprovedDate = DateTime.Now; if (pass) { //如果审批通过且返回值为空则该流程结束 formRow.StatusID = (int)SystemEnums.FormStatus.ApproveCompleted; } else { //如果不通过则为驳回 formRow.StatusID = (int)SystemEnums.FormStatus.Rejected; } } else { string[] InTurn = returnValue.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;//下一步的人员职位 } TAMainForm.Update(formRow); transaction.Commit(); #region 发送邮件 try { QueryDS.FormViewRow l_drformView = new FormQueryBLL().GetFormViewByID(formID); if (pass) { if (!string.IsNullOrEmpty(returnValue)) { l_strtitle = "有一份" + l_drformView.FormTypeName + "单据,编号为:" + l_drformView.FormNo + ",等待您的审批!"; l_strbody.Append("您好,<br>"); l_strbody.Append(" 有一份" + l_drformView.StuffName + "提交的" + l_drformView.FormTypeName + "单据,编号:" + l_drformView.FormNo + ",等待您的审批!"); l_strbody.Append("<br>此邮件请勿回复!"); mailBody = string.Format(mailBody, l_strbody.ToString()); sendMail(email, "", l_strtitle, mailBody); //AP.sendMail(emailTo, "", l_strtitle, mailBody); } else { l_strtitle = "您的" + l_drformView.FormTypeName + "单据,编号为:" + l_drformView.FormNo + ",已审批完成!"; l_strbody.Append("您好,<br>"); l_strbody.Append(" 您于" + l_drformView.SubmitDate.ToString("yyyy-MM-dd") + "提交的" + l_drformView.FormTypeName + "单据,编号:" + l_drformView.FormNo + ",已经审批通过!"); l_strbody.Append("<br>此邮件请勿回复!"); mailBody = string.Format(mailBody, l_strbody.ToString()); sendMail(AuthorizationBLL.GetStuffUserById(formRow.UserID).EMail, "", l_strtitle, mailBody); //AP.sendMail(emailTo, "", l_strtitle, mailBody); } } else { l_strtitle = "您的" + l_drformView.FormTypeName + "单据,编号为:" + l_drformView.FormNo + ",被驳回!"; l_strbody.Append("您好,<br>"); l_strbody.Append(" 您于" + l_drformView.SubmitDate.ToString("yyyy-MM-dd") + "提交的" + l_drformView.FormTypeName + "单据,编号:" + l_drformView.FormNo + ",被" + stuffName + "驳回!"); l_strbody.Append("<br>此邮件请勿回复!"); mailBody = string.Format(mailBody, l_strbody.ToString()); sendMail(AuthorizationBLL.GetStuffUserById(formRow.UserID).EMail, "", l_strtitle, mailBody); //AP.sendMail(emailTo, "", l_strtitle, mailBody); } } catch (Exception e1) { } #endregion } catch (Exception ex) { if (transaction != null) { transaction.Rollback(); } throw ex; } finally { if (transaction != null) { transaction.Dispose(); } } }
static void Main(string[] args) { //FormReimburseInvoiceTableAdapter taInvoice = new FormReimburseInvoiceTableAdapter(); //FormTableAdapter taForm = new FormTableAdapter(); //FormDS.FormReimburseInvoiceDataTable tbInvoice = taInvoice.GetData(); //foreach (FormDS.FormReimburseInvoiceRow item in tbInvoice) { // if (!item.IsSystemInfoNull()) { // string SystemInfo = item.SystemInfo; // string[] FormNos = SystemInfo.Split(','); // string RepeatFormStr = ""; // if (FormNos.Length > 0) { // foreach (string FormNo in FormNos) { // if (!string.IsNullOrEmpty(FormNo)) { // FormDS.FormDataTable tbForm = taForm.GetDataByFormNo(FormNo); // if (tbForm != null && tbForm.Count > 0) { // RepeatFormStr += "P" + tbForm[0].FormID + ":" + tbForm[0].FormNo + "P"; // } // } // } // } // item.SystemInfo = RepeatFormStr; // taInvoice.Update(item); // } //} //FormReimburseInvoiceTableAdapter taInvoice = new FormReimburseInvoiceTableAdapter(); //FormTableAdapter taForm = new FormTableAdapter(); //FormDS.FormReimburseInvoiceDataTable tbInvoice = taInvoice.GetData(); //foreach (FormDS.FormReimburseInvoiceRow item in tbInvoice) { // if (!item.IsSystemInfoNull()) { // string SystemInfo = item.SystemInfo; // SystemInfo = SystemInfo.Replace("PP", "P"); // string[] FormNos = SystemInfo.Split('P'); // string RepeatFormStr = ""; // if (FormNos.Length > 0) { // foreach (string FormNo in FormNos) { // if (!string.IsNullOrEmpty(FormNo)) { // FormDS.FormDataTable tbForm = taForm.GetDataByID(int.Parse(FormNo.Split(':')[0])); // if (tbForm != null && tbForm.Count > 0) { // RepeatFormStr += "P" + tbForm[0].FormID + ":" + tbForm[0].FormNo + "P"; // } // } // } // } // item.SystemInfo = RepeatFormStr; // taInvoice.Update(item); // } //} FormReimburseInvoiceTableAdapter taInvoice = new FormReimburseInvoiceTableAdapter(); FormTableAdapter taForm = new FormTableAdapter(); FormDS.FormReimburseInvoiceDataTable tbInvoice = taInvoice.GetData(); foreach (FormDS.FormReimburseInvoiceRow item in tbInvoice) { if (!item.IsSystemInfoNull()) { string SystemInfo = item.SystemInfo; SystemInfo = SystemInfo.Replace("PP", "P"); string[] FormNos = SystemInfo.Split('P'); string RepeatFormStr = ""; if (FormNos.Length > 0) { foreach (string FormNo in FormNos) { if (!string.IsNullOrEmpty(FormNo)) { FormDS.FormDataTable tbForm = taForm.GetDataByID(int.Parse(FormNo.Split(':')[0])); if (tbForm != null && tbForm.Count > 0) { RepeatFormStr += "P" + tbForm[0].FormID + ":" + tbForm[0].FormNo + ":" + tbForm[0].PageType + "P"; } } } } item.SystemInfo = RepeatFormStr; taInvoice.Update(item); } } }
//审批方法 public void ApproveForm(APHelper AP, int formID, int stuffUserId, string stuffName, bool pass, string comment, string ProxyStuffName, int OrganizationUnitID) { string email = string.Empty; SqlTransaction transaction = null; try { FormTableAdapter TAMainForm = new FormTableAdapter(); transaction = TableAdapterHelper.BeginTransaction(TAMainForm); FormDS.FormRow formRow = TAMainForm.GetDataByID(formID)[0]; string returnValue = AP.approve(pass, comment, stuffUserId.ToString(), stuffName, formRow.ProcID, ProxyStuffName, formRow.OrganizationUnitID, ref email); string[] approveinfo = AP.GetProcessApproveUser(formRow.ProcID); if (AP.GetProcessIsEnd(formRow.ProcID)) { formRow.LastApprover = stuffUserId.ToString(); formRow.Comment = comment; formRow.ApprovedDate = Convert.ToDateTime(approveinfo[0]); } formRow.ApproverIds = approveinfo[3]; if (returnValue == null) { formRow.InTurnUserIds = "P"; formRow.InTurnPositionIds = "P"; //formRow.SubmitDate = DateTime.Now; if (pass) { //如果审批通过且返回值为空则该流程结束 formRow.StatusID = (int)SystemEnums.FormStatus.ApproveCompleted; //mailTitle = string.Format("您申请的编号为{0}的单据已经通过审批", formRow.FormNo); //mailBody = string.Format(mailBody, formRow.FormNo); //email = AP.getUserEmailByID(formRow.UserID); //AP.sendMail(email, "", mailTitle, mailBody); } else { //如果不通过则为驳回 formRow.StatusID = (int)SystemEnums.FormStatus.Rejected; //mailTitle = string.Format("您有单据申请被{0}退回", stuffName); //mailBody = string.Format(mailBody, formRow.FormNo); //email = AP.getUserEmailByID(formRow.UserID); //AP.sendMail(email, "", mailTitle, mailBody); } } else { string[] InTurn = returnValue.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;//下一步的人员职位 //mailTitle = string.Format(mailTitle, stuffName, formRow.FormNo); //mailBody = string.Format(mailBody, formRow.FormNo); //AP.sendMail(email, "", mailTitle,mailBody); } TAMainForm.Update(formRow); transaction.Commit(); } catch (Exception ex) { if (transaction != null) transaction.Rollback(); throw ex; } finally { if (transaction != null) transaction.Dispose(); } //System.Threading.Thread.Sleep(3000); }