//启动流程 public APResult CreateProcess(APParameter app) { APResult result = new APResult(); string email = string.Empty; string l_strtitle = ""; StuffUserBLL stuffuserbll = new StuffUserBLL(); StringBuilder l_strbody = new StringBuilder(); OUTreeBLL outreebll = new OUTreeBLL(); string Deptment = outreebll.GetFlowParameter(app.OrganizationUnitID); Dictionary<string, object> Dictionary = app.Dic; Dictionary["Department"] = Deptment; AuthorizationDS.PositionRow position = outreebll.GetPositionById(app.PositionID); if (position.IsFlowLevelNull()) { Dictionary["FlowLevel"] = ""; } else { Dictionary["FlowLevel"] = position.FlowLevel; } string ProcID = AP.createProcess(app.FormNo + ":" + DateTime.Now.ToString(), new AuthorizationBLL().GetFlowTemplateNameByFormTypeAndUserID(app.FormTypeID, app.UserID), Dictionary); result.ProcID = ProcID; string[] InTurn = AP.startProcess(ProcID, app.OrganizationUnitID, ref email).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();//职位 } result.ApprovedDate = DateTime.Now; result.InTurnUserIds = ids;//下一步的人员 result.InTurnPositionIds = pids;//下一步的人员职位 result.StatusID = (int)SystemEnums.FormStatus.Awaiting; //自动审批下一个节点是自己的 if (!(ids.IndexOf("27") >= 0)) { if (ids.IndexOf(app.UserID.ToString()) > 0) { APResult approveresult = ApproveForm(app, app.FormID, app.UserID, stuffuserbll.GetStuffUserById(app.UserID)[0].StuffName, true, "", "", ProcID); result.InTurnUserIds = approveresult.InTurnUserIds; result.InTurnPositionIds = approveresult.InTurnPositionIds; } } try { if (!string.IsNullOrEmpty(email)) { //QueryDS.FormViewRow l_drformView = new FormQueryBLL().GetFormViewByID(app.FormID); l_strtitle = "有一份单据编号为:" + app.FormNo + ",等待您的审批!"; l_strbody.Append("您好,<br>"); l_strbody.Append(" 您有一份" + new StuffUserBLL().GetStuffUserById(app.UserID)[0].StuffName + "提交的单据,编号为:" + app.FormNo + ",等待您的审批!"); l_strbody.Append("<br>此邮件请勿回复!"); mailBody = string.Format(mailBody, l_strbody.ToString()); sendMail(email, "", l_strtitle, mailBody); //AP.sendMail(emailTo, "", l_strtitle, mailBody); } } catch { } return result; }
public string GetStuffNameByID(object stuffUserID) { int id = Convert.ToInt32(stuffUserID); StuffUserBLL bll = new StuffUserBLL(); if (bll.GetStuffUserById(id).Count != 0) { return bll.GetStuffUserById(id)[0].StuffName; } else { return string.Empty; } }
/// <summary> /// 个人费用报销 /// </summary> /// <param name="FormID"></param> /// <returns></returns> private bool ExportPersonalReimburseDataByFormID(int FormID, int logId) { ExportDataDS.ExportDataDataTable l_dtExportData = new ExportDataDS.ExportDataDataTable(); FormDS.FormPersonalReimburseDetailDataTable l_dtPersonalReimburseDetail = new FormDS.FormPersonalReimburseDetailDataTable(); FormMarketingBLL formmarkbll = new FormMarketingBLL(); FormTEBLL formtebll = new FormTEBLL(); StuffUserBLL stuffuserdll = new StuffUserBLL(); MasterDataBLL masterdatabll = new MasterDataBLL(); FormDS.FormDataTable l_dtform = formmarkbll.GetFormByID(FormID); FormDS.FormRow l_drform = l_dtform.NewFormRow(); try { if (l_dtform.Rows.Count > 0) { l_drform = l_dtform[0]; if (l_drform.IsFinanceRemarkNull()) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:财务摘要为空,导出失败!"); return false; } l_dtPersonalReimburseDetail = formtebll.GetFormPersonalReimburseDetailByFormPersonalReimburseID(l_drform.FormID); int i = 0; FormDS.FormPersonalReimburseDataTable l_dtPersonalReimburse = formtebll.GetFormPersonalReimburseByID(l_drform.FormID); foreach (FormDS.FormPersonalReimburseDetailRow l_drtemp in l_dtPersonalReimburseDetail) { ExportDataDS.ExportDataRow l_drExportData = l_dtExportData.NewExportDataRow(); l_drExportData.FormID = FormID; l_drExportData.VendorCode = stuffuserdll.GetStuffUserById(l_drform.UserID)[0].VendorCode; l_drExportData.CompanyCode = masterdatabll.GetCompanyById(masterdatabll.GetCostCenterById(l_drform.CostCenterID).CompanyID).CompanyCode; if (l_drExportData.IsVendorCodeNull() || string.IsNullOrEmpty(l_drExportData.VendorCode)) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:Vendor Code为空,无法导出!"); return false; } //如果Vendor Code的公司和成本中心的公司不一致,则报错 MasterData.VendorDataTable tbVendor = new BusinessObjects.MasterDataTableAdapters.VendorTableAdapter().GetDataByVendorCode(l_drExportData.VendorCode); if (tbVendor.Rows.Count > 0) { string vendorCompanyCode = masterdatabll.GetCompanyById(tbVendor[0].CompanyID).CompanyCode; if (l_drExportData.CompanyCode != vendorCompanyCode) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:Company Code不符,请检查!"); return false; } } l_drExportData.Reference = ""; l_drExportData.Invoice = l_drform.FormNo; l_drExportData.Invoicedate = l_drform.SubmitDate.ToString("yyyyMMdd"); l_drExportData.TotalMoney = l_dtPersonalReimburse[0].Amount; //l_drExportData.Currency = masterdatabll.GetCurrencyByID(l_drtemp.CurrencyID).CurrencyShortName; //l_drExportData.ExchangeRate = l_drtemp.ExchangeRate; l_drExportData.ManageExpenseItem = masterdatabll.GetManageExpenseItemById(l_drtemp.ManageExpenseItemID).ManageExpenseItemName; l_drExportData.CostCenter = masterdatabll.GetCostCenterById(l_drform.CostCenterID).CostCenterCode; l_drExportData.AccountCode = masterdatabll.GetAccountingCodeByExpenseItemAndCostCenter(l_drtemp.ManageExpenseItemID, l_drform.CostCenterID); l_drExportData.DetailMoney = l_drtemp.RMB; l_drExportData.PONumber = 0; l_drExportData.POLineNumber = "0"; l_drExportData.FinanceRemark = l_drform.FinanceRemark; l_drExportData.FormNo = l_drform.FormNo; l_drExportData.TaxRateCode = masterdatabll.GetVatTypeById(1)[0].VatTypeName; l_drExportData.TaxAmt = 0; l_dtExportData.AddExportDataRow(l_drExportData); i++; } if (l_dtExportData.Rows.Count == 0) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:无明细数据,无法导出!"); return false; } if (l_dtExportData.Rows.Count == l_dtPersonalReimburseDetail.Rows.Count) { ExportByFormView(l_dtExportData); } else { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:导出数据与明细数据数量不一致!"); return false; } } } catch (Exception e) { logbll.InsertExportLogDetail(logId, "单据编号:" + l_drform.FormNo + ",提交人:" + new StuffUserBLL().GetStuffUserById(l_drform.UserID)[0].StuffName + ",错误信息:" + e.Message); return false; } return true; }