public void DataDataFields(WorkflowDataFields fields) { lblMonth.Text = fields["Month"].AsString(); this.txtDepartment.Text = fields["Department"].AsString(); this.txtRequestedBy.Text = fields["Applicant"].AsString(); rbtAttachInvoice.SelectedValue = fields["InvoiceStatus"].AsString(); // this.SummaryExpenseType = fields["SummaryExpenseType"].ToString(); }
private void DataBindFields(WorkflowDataFields fields) { fields["Company"] = this.DataForm1.Company; fields["Department"] = this.DataForm1.Department; fields["Applicant"] = this.DataForm1.Applicant.UserAccount; fields["ApplicantSPUser"] = this.EnsureUser(this.DataForm1.Applicant.UserAccount); fields["Purpose"] = this.DataForm1.Purpose; fields["Amount"] = this.DataForm1.Amount; fields["Term"] = this.DataForm1.Term; fields["CashAdvanceType"] = this.DataForm1.CashAdvanceType; fields["Remark"] = this.DataForm1.Remark; fields["WorkflowNumber"] = CreateWorkflowNumber(); fields["SAPNo"] = fields["WorkflowNumber"].ToString(); fields["UrgentRemark"] = this.DataForm1.UrgentRemark; }
internal static void AddItemTable1(Installment dataForm, WorkflowDataFields fields) { AddItemTable1(dataForm.ItemTable, dataForm, fields, dataForm.SummaryAmount); }
internal static void AddItemTable(DataTable itemTable, DataForm dataForm, WorkflowDataFields fields) { DataTable dt = new DataTable(); dt.Columns.Add("ExpenseType"); dt.Columns.Add("ItemAmount"); dt.Columns.Add("CostCenter"); dt.Columns.Add("GLAccount"); dt.Columns.Add("PRWorkFlowNumber"); dt.Columns.Add("SubPRNo"); dt.Columns.Add("Title"); dt.Columns.Add("FANO"); dt.Columns.Add("ItemInstallmentAmount"); foreach (DataRow dr in itemTable.Rows) { DataRow newdr = dt.Rows.Add(); newdr["ExpenseType"] = dr["ExpenseType"].ToString(); newdr["GLAccount"] = dr["GLAccount"].ToString(); newdr["CostCenter"] = dr["CostCenter"].ToString(); newdr["ItemAmount"] = dr["ItemAmount"].ToString(); newdr["PRWorkFlowNumber"] = fields["Title"].ToString(); newdr["SubPRNo"] = fields["SubPRNo"].ToString(); newdr["Title"] = fields["SubPRNo"].ToString(); newdr["FANO"] = dr["FANO"].AsString(); newdr["ItemInstallmentAmount"] = dr["ItemAmount"].ToString(); } dataForm.ItemTable = dt; }
internal static void AddItemTable(DataForm dataForm, WorkflowDataFields fields) { AddItemTable(dataForm.ItemTable, dataForm,fields ); }
public void AddEmployeeExpenseClaimSAPWorkFlow(WorkflowDataFields fields) { SPSite site = SPContext.Current.Site; SPList sAPList = CA.SharePoint.SharePointUtil.GetList("Employee Expense Claim SAP WorkFlow"); SPList sAPItemsList = CA.SharePoint.SharePointUtil.GetList("EmployeeExpenseClaimSAPItemsWorkFlow"); SPListItem sAPListItem = sAPList.Items.Add(); sAPListItem["WorkflowNumber"] = CreateWorkflowNumber(); sAPListItem["CashAdvanceAmount"] = fields["CashAdvance"] == null ? "" : fields["CashAdvance"].ToString(); sAPListItem["TotalAmount"] =Math.Round(double.Parse(fields["TotalAmount"].ToString()),2).ToString(); sAPListItem["PreTotalAmount"] = Math.Round(double.Parse(fields["AmountDue"].ToString()), 2).ToString(); sAPListItem["Applicant"] = fields["RequestedBy"].ToString(); sAPListItem["ExpenseDescription"] = fields["ExpenseDescription"].ToString(); string name = fields["RequestedBy"].ToString(); string useraccount = name.Substring(name.IndexOf('(') + 1, name.IndexOf(')') - name.IndexOf('(') - 1); sAPListItem["ApplicantSPUser"] = this.EnsureUser(useraccount); sAPListItem["Status"] = CAWorkflowStatus.InProgress; sAPListItem["EECWWorkflowNumber"] = fields["WorkflowNumber"].ToString(); sAPListItem["PostSAPStatus"] = "0"; sAPListItem["CashAdvanceWorkFlowNumber"] = fields["CashAdvanceIDAndAmount"] == null ? "" : fields["CashAdvanceIDAndAmount"].ToString(); NameCollection acAccounts = WorkFlowUtil.GetUsersInGroup(WorkflowGroupName.WF_Accountants); NameCollection financeConfirmAccounts = WorkFlowUtil.GetUsersInGroup(WorkflowGroupName.WF_FinanceManager); System.Text.StringBuilder strStepAndUsers = new System.Text.StringBuilder(); strStepAndUsers.AppendFormat("{0}:{1};", "ACReviewTask", acAccounts.JoinString(",")); strStepAndUsers.AppendFormat("{0}:{1};", "FinanceConfirmTask", financeConfirmAccounts.JoinString(",")); sAPListItem["WorkFlowStepsAndUsers"] = strStepAndUsers.ToString(); sAPListItem.Web.AllowUnsafeUpdates = true; sAPListItem.Update(); string regexText = @"\{[^\{-\}]*\}"; Regex regex = new Regex(regexText); string set = fields["SummaryExpenseType"].ToString().Trim(); if (set.Length < 5) { throw new Exception("系统出错,请重试,或者联系管理员!"); } DataTable dt = WorkFlowUtil.GetCollectionByList("Employee Expense Claim Type").GetDataTable(); Hashtable ht = new Hashtable(); foreach (DataRow dr in dt.Rows) { ht.Add(dr["NewExpenseType"].ToString(), dr["ExpenseType"].ToString()); } MatchCollection mc = regex.Matches(fields["SummaryExpenseType"].ToString()); foreach (Match m in mc) { List<string> itemList = m.Value.Replace("{", "").Replace("}", "").Split(',').ToList<string>(); SPListItem sAPItemsListItem = sAPItemsList.Items.Add(); sAPItemsListItem["WorkflowNumber"] = sAPListItem["WorkflowNumber"].ToString(); string et = itemList[0].Replace("name:'", "").Replace("'", "").Trim(); if (ht[et] != null) { et = ht[et].ToString(); } sAPItemsListItem["ExpenseType"] = et; sAPItemsListItem["ItemAmount"] = itemList[1].Replace("val:'", "").Replace("'", "").Trim(); sAPItemsListItem["CostCenter"] = itemList[2].Replace("costcenter:'", "").Replace("'", "").Trim(); sAPItemsListItem["Status"] = "0"; sAPItemsListItem["ErrorMsg"] = ""; sAPItemsListItem.Web.AllowUnsafeUpdates = true; sAPItemsListItem.Update(); } WorkflowVariableValues vs = new WorkflowVariableValues(); vs["ACReviewUsers"] = GetDelemanNameCollection(acAccounts, Constants.CAModules.EmployeeExpenseClaimSAP); vs["FinanceConfirmUsers"] = GetDelemanNameCollection(financeConfirmAccounts, Constants.CAModules.EmployeeExpenseClaimSAP); var aCReviewTaskFormUrl = "/_Layouts/CA/WorkFlows/EmployeeExpenseClaim2/ACReview.aspx"; var financeConfirmTaskFormUrl = "/_Layouts/CA/WorkFlows/EmployeeExpenseClaim2/FinanceConfirm.aspx"; vs["ACReviewTaskFormUrl"] = aCReviewTaskFormUrl; vs["FinanceConfirmTaskFormUrl"] = financeConfirmTaskFormUrl; vs["ACReviewTitle"] = fields["RequestedBy"].ToString() + "'s Employee Expense Claim"; vs["FinanceConfirmTitle"] = fields["RequestedBy"].ToString() + "'s Employee Expense Claim"; var eventData = SerializeUtil.Serialize(vs); var wfName = "Employee Expense Claim SAP WorkFlow"; var wfAss = sAPList.WorkflowAssociations.GetAssociationByName(wfName, System.Globalization.CultureInfo.CurrentCulture); site.WorkflowManager.StartWorkflow(sAPListItem, wfAss, eventData); WorkFlowUtil.UpdateWorkflowPath(sAPListItem, eventData); }
private void SetCRText(WorkflowDataFields fields) { //bool isSystemGR = false; //DataTable dt = PaymentRequestSAPCommon.GetEmployeeExpenseClaimSAPItemsByPONumber("Purchase Order Workflow", pONo).GetDataTable(); //if (dt != null && dt.Rows.Count > 0) //{ // string systemGR = dt.Rows[0]["IsSystemGR"].ToString(); // if (systemGR == "1") // { // isSystemGR = true; // } //} if (fields["FromPOStatus"].ToString() == "1") { this.lblCRText.Text = "GRIR vendor code"; } else { this.lblCRText.Text = "OP-Non-trade vendor"; } }
public void AddExpatriateBenefitClaimSAPWorkflow(WorkflowDataFields fields) { SPSite site = SPContext.Current.Site; SPList sAPList = CA.SharePoint.SharePointUtil.GetList("Expatriate Benefit Claim SAP Workflow"); SPList sAPItemsList = CA.SharePoint.SharePointUtil.GetList("ExpatriateBenefitClaimSAPItems"); SPListItem sAPListItem = sAPList.Items.Add(); sAPListItem["WorkflowNumber"] = CreateWorkflowNumber(); sAPListItem["CashAdvanceAmount"] = fields["CashAdvanceAmount"].AsString(); sAPListItem["TotalAmount"] = Math.Round(double.Parse(fields["TotalAmount"].AsString()), 2).ToString(); sAPListItem["PreTotalAmount"] = Math.Round(double.Parse(fields["AmountDue"].AsString()), 2).ToString(); sAPListItem["Applicant"] = fields["Applicant"].AsString(); sAPListItem["ExpenseDescription"] = fields["ExpenseDescription"].AsString(); string name = fields["Applicant"].AsString(); string useraccount = name.Substring(name.IndexOf('(') + 1, name.IndexOf(')') - name.IndexOf('(') - 1); sAPListItem["ApplicantSPUser"] = this.EnsureUser(useraccount); sAPListItem["Status"] = CAWorkflowStatus.InProgress; sAPListItem["EBCWorkflowNumber"] = fields["WorkflowNumber"].ToString(); sAPListItem["PostSAPStatus"] = "0"; sAPListItem["CashAdvanceWorkFlowNumber"] = fields["CashAdvanceIDAndAmount"].AsString(); NameCollection acAccounts = WorkFlowUtil.GetUsersInGroup(ExpatriateBenefitClaimConstants.wf_EBC_Accountants); NameCollection financeConfirmAccounts = WorkFlowUtil.GetUsersInGroup(ExpatriateBenefitClaimConstants.wf_EBC_FinanceManager); System.Text.StringBuilder strStepAndUsers = new System.Text.StringBuilder(); strStepAndUsers.AppendFormat("{0}:{1};", "ACReviewTask", acAccounts.JoinString(",")); strStepAndUsers.AppendFormat("{0}:{1};", "FinanceConfirmTask", financeConfirmAccounts.JoinString(",")); sAPListItem["WorkFlowStepsAndUsers"] = strStepAndUsers.ToString(); sAPListItem.Web.AllowUnsafeUpdates = true; sAPListItem.Update(); string regexText = @"\{[^\{-\}]*\}"; Regex regex = new Regex(regexText); MatchCollection mc = regex.Matches(fields["SummaryExpenseType"].ToString()); foreach (Match m in mc) { List<string> itemList = m.Value.Replace("{", "").Replace("}", "").Split(',').ToList<string>(); SPListItem sAPItemsListItem = sAPItemsList.Items.Add(); sAPItemsListItem["WorkflowNumber"] = sAPListItem["WorkflowNumber"].ToString(); sAPItemsListItem["ExpenseType"] = itemList[0].Replace("name:'", "").Replace("'", "").Trim(); sAPItemsListItem["ItemAmount"] = itemList[1].Replace("val:'", "").Replace("'", "").Trim(); sAPItemsListItem["CostCenter"] = itemList[2].Replace("costcenter:'", "").Replace("'", "").Trim(); sAPItemsListItem["Status"] = "0"; sAPItemsListItem.Web.AllowUnsafeUpdates = true; sAPItemsListItem.Update(); } WorkflowVariableValues vs = new WorkflowVariableValues(); vs["ACReviewUsers"] = GetDelemanNameCollection(acAccounts, ExpatriateBenefitClaimConstants.ExpatriateBenefitClaimSAP); vs["FinanceConfirmUsers"] = GetDelemanNameCollection(financeConfirmAccounts, ExpatriateBenefitClaimConstants.ExpatriateBenefitClaimSAP); var aCReviewTaskFormUrl = "/_Layouts/CA/WorkFlows/ExpatriateBenefitClaim/ACReview.aspx"; var financeConfirmTaskFormUrl = "/_Layouts/CA/WorkFlows/ExpatriateBenefitClaim/FinanceConfirm.aspx"; vs["ACReviewTaskFormUrl"] = aCReviewTaskFormUrl; vs["FinanceConfirmTaskFormUrl"] = financeConfirmTaskFormUrl; vs["ACReviewTitle"] = fields["Applicant"].ToString() + "'s Expatriate Benefit Claim"; vs["FinanceConfirmTitle"] = fields["Applicant"].ToString() + "'s Expatriate Benefit Claim"; var eventData = SerializeUtil.Serialize(vs); var wfName = "Expatriate Benefit Claim SAP Workflow"; var wfAss = sAPList.WorkflowAssociations.GetAssociationByName(wfName, System.Globalization.CultureInfo.CurrentCulture); site.WorkflowManager.StartWorkflow(sAPListItem, wfAss, eventData); }
public void DataDataFields(WorkflowDataFields fields) { string name = fields["Applicant"].AsString(); string userAccount = name.Substring(name.IndexOf('(') + 1, name.IndexOf(')') - name.IndexOf('(') - 1); foreach(ListItem li in this.ddlEmployeeList.Items) { if (userAccount.Equals(li.Value, StringComparison.CurrentCultureIgnoreCase)) { li.Selected = true; } } this.lblDepartment.Text = fields["Department"].AsString(); this.lblRequestedBy.Text = fields["Applicant"].AsString(); this.rbtAttachInvoice.SelectedValue = fields["InvoiceStatus"].AsString(); this.RMBSummaryExpenseType = fields["RMBSummaryExpenseType"].AsString(); this.USDSummaryExpenseType = fields["USDSummaryExpenseType"].AsString(); }
/// <summary> /// Start Payment Request SAP WorkFlow /// </summary> /// <param name="fields"></param> private void AddPaymentRequestSAPWorkFlow(WorkflowDataFields fields) { SPSite site = SPContext.Current.Site; SPList sAPList = CA.SharePoint.SharePointUtil.GetList("Payment Request SAP WorkFlow"); SPList sAPItemsList = CA.SharePoint.SharePointUtil.GetList("Payment Request SAP Items WorkFlow"); SPListItem sAPListItem = sAPList.Items.Add(); string workFlowNumber = "PRSAP_" + WorkFlowUtil.CreateWorkFlowNumber("PaymentRequestSAPWorkFlow").ToString("000000"); sAPListItem["WorkflowNumber"] = workFlowNumber; //sAPListItem["PreTotalAmount"] = Math.Round(double.Parse(fields["TotalAmount"].ToString()) * (double.Parse(fields["PaidThisTime"].ToString()) / 100), 2); sAPListItem["Applicant"] = fields["Applicant"].ToString(); sAPListItem["VendorNo"] = fields["VendorNo"].AsString(); sAPListItem["FromPOStatus"] = bool.Parse(fields["IsFromPO"].ToString()) == true ? "1" : "0"; string name = fields["Applicant"].ToString(); string useraccount = name.Substring(name.IndexOf('(') + 1, name.IndexOf(')') - name.IndexOf('(') - 1); sAPListItem["ApplicantSPUser"] = this.EnsureUser(useraccount); sAPListItem["Status"] = CAWorkflowStatus.InProgress; sAPListItem["PRWorkflowNumber"] = fields["SubPRNo"].AsString(); sAPListItem["PostSAPStatus"] = "0"; sAPListItem["SystemPONo"] = fields["SystemPONo"].AsString(); sAPListItem["PaidThisTime"] = fields["PaidThisTime"].AsString(); sAPListItem["VendorName"] = fields["VendorName"].AsString(); sAPListItem["PONo"] = fields["PONo"].AsString(); sAPListItem["PaymentDesc"] = fields["PaymentDesc"].AsString(); sAPListItem["RequestType"] = fields["RequestType"].AsString(); sAPListItem["VendorCity"] = fields["VendorCity"].AsString(); sAPListItem["VendorCountry"] = fields["VendorCountry"].AsString(); sAPListItem["BankCity"] = fields["BankCity"].AsString(); sAPListItem["SwiftCode"] = fields["SwiftCode"].AsString();//BankAccount sAPListItem["BankAccount"] = fields["BankAccount"].AsString(); sAPListItem["TaxPrice"] = fields["TaxPrice"].AsString(); sAPListItem["BankName"] = fields["BankName"].AsString(); sAPListItem["ExchRate"] = fields["ExchRate"].AsString(); sAPListItem["Currency"] = fields["Currency"].AsString(); NameCollection acAccounts = null; NameCollection financeConfirmAccounts = null; if (bool.Parse(fields["IsFromPO"].ToString())==true) { if (fields["RequestType"].ToString().ToLower() == "opex") { acAccounts = WorkFlowUtil.GetUsersInGroup(PaymentRequestGroupNames.Opex_ConstructionPO_SAPReview); financeConfirmAccounts = WorkFlowUtil.GetUsersInGroup(PaymentRequestGroupNames.Opex_ConstructionPO_SAPConfirm); } else { acAccounts = WorkFlowUtil.GetUsersInGroup(PaymentRequestGroupNames.Capex_ConstructionPO_SAPReview); financeConfirmAccounts = WorkFlowUtil.GetUsersInGroup(PaymentRequestGroupNames.Capex_ConstructionPO_SAPConfirm); } } else { if (fields["RequestType"].ToString().ToLower() == "opex") { acAccounts = WorkFlowUtil.GetUsersInGroup(PaymentRequestGroupNames.Opex_GeneralPO_SAPReview); financeConfirmAccounts = WorkFlowUtil.GetUsersInGroup(PaymentRequestGroupNames.Opex_GeneralPO_SAPConfirm); } } System.Text.StringBuilder strStepAndUsers = new System.Text.StringBuilder(); strStepAndUsers.AppendFormat("{0}:{1};", "ACReviewTask", acAccounts.JoinString(",")); strStepAndUsers.AppendFormat("{0}:{1};", "FinanceConfirmTask", financeConfirmAccounts.JoinString(",")); sAPListItem["WorkFlowStepsAndUsers"] = strStepAndUsers.ToString(); Hashtable ht = GetExpenseTypeHashtable(); DataTable itemDetails = PaymentRequestComm.GetDataTable(fields["SubPRNo"].AsString()); double totalAmount = 0; foreach (DataRow dr in itemDetails.Rows) { SPListItem sAPItemsListItem = sAPItemsList.Items.Add(); sAPItemsListItem["WorkflowNumber"] = sAPListItem["WorkflowNumber"].ToString(); sAPItemsListItem["PRWorkflowNumber"] = sAPListItem["PRWorkflowNumber"].ToString(); sAPItemsListItem["ExpenseType"] = dr["ExpenseType"].ToString(); sAPItemsListItem["AssetNo"] = dr["FANO"].AsString(); sAPItemsListItem["BusinessArea"] = ""; //sAPItemsListItem["ItemAmount"] = Math.Round(double.Parse(dr["ItemAmount"].ToString()) * (double.Parse(dr["ItemAmount"].ToString()) / 100), 2); if (dr["ItemInstallmentAmount"].AsString() == "") { if ((bool)fields["IsFromPO"] == false && GetString(fields["PaidInd"]).IsNotNullOrWhitespace() == true && int.Parse(GetString(fields["PaidInd"])) == 1) { sAPItemsListItem["ItemAmount"] = Math.Round(double.Parse(dr["ItemAmount"].ToString()) * (double.Parse(fields["PaidThisTime"].ToString()) / 100), 2); ; } else { sAPItemsListItem["ItemAmount"] = Math.Round(double.Parse(dr["ItemAmount"].ToString()), 2); } } else { sAPItemsListItem["ItemAmount"] = Math.Round(double.Parse(dr["ItemInstallmentAmount"].ToString()), 2); } sAPItemsListItem["CostCenter"] = dr["CostCenter"].AsString(); sAPItemsListItem["Status"] = "0"; sAPItemsListItem["GLAccount"] = ht[dr["ExpenseType"].ToString()] != null ? ht[dr["ExpenseType"].ToString()].ToString() : ""; sAPItemsListItem.Web.AllowUnsafeUpdates = true; sAPItemsListItem.Update(); if (dr["ItemInstallmentAmount"].AsString() == "") { if ((bool)fields["IsFromPO"] == false && GetString(fields["PaidInd"]).IsNotNullOrWhitespace() == true && int.Parse(GetString(fields["PaidInd"])) == 1) { totalAmount += Math.Round(double.Parse(dr["ItemAmount"].ToString()) * (double.Parse(fields["PaidThisTime"].ToString()) / 100), 2); } else { totalAmount += Math.Round(double.Parse(dr["ItemAmount"].ToString()), 2); } } else { totalAmount += Math.Round(double.Parse(dr["ItemInstallmentAmount"].ToString()), 2); } } sAPListItem["PreTotalAmount"] = Math.Round(totalAmount, 2); //sAPListItem["PreTotalAmount"] = Math.Round(totalAmount * (double.Parse(fields["PaidThisTime"].ToString()) / 100), 2); ; sAPListItem.Web.AllowUnsafeUpdates = true; sAPListItem.Update(); WorkflowVariableValues vs = new WorkflowVariableValues(); vs["ACReviewUsers"] = GetDelemanNameCollection(acAccounts, "129"); vs["FinanceConfirmUsers"] = GetDelemanNameCollection(financeConfirmAccounts, "129"); var aCReviewTaskFormUrl = "/_Layouts/CA/WorkFlows/PaymentRequestSAP/ACReview.aspx"; var financeConfirmTaskFormUrl = "/_Layouts/CA/WorkFlows/PaymentRequestSAP/FinanceConfirm.aspx"; vs["ACReviewTaskFormUrl"] = aCReviewTaskFormUrl; vs["FinanceConfirmTaskFormUrl"] = financeConfirmTaskFormUrl; string taskTitle = fields["SubPRNo"].AsString() + " " + PaymentRequestDataView.VendorNameText + " " + PaymentRequestDataView.ApproveAmount + " " + fields["Applicant"].AsString() + "'s Payment Request "; vs["ACReviewTitle"] = taskTitle; vs["FinanceConfirmTitle"] = taskTitle ; var eventData = SerializeUtil.Serialize(vs); var wfName = "PaymentRequestSAPWorkFlow"; var wfAss = sAPList.WorkflowAssociations.GetAssociationByName(wfName, System.Globalization.CultureInfo.CurrentCulture); site.WorkflowManager.StartWorkflow(sAPListItem, wfAss, eventData); WorkFlowUtil.UpdateWorkflowPath(sAPListItem, eventData); }
public bool SavePeymentRequestData(Installment installmentForm, WorkflowDataFields fields) { if (Session["ContractPONo"] == null || (Session["ContractPONo"] != null && Session["ContractPONo"].ToString() != txtContractPO.Text)) { DataTable dTable = PaymentRequestComm.GetPaymentRequestInfoByContractPONo(txtContractPO.Text.ToUpper()).GetDataTable(); if (dTable != null && dTable.Rows.Count > 0) { ErrorMessage = " 您输入的合同编号已经存在,请重新输入 "; return false; } } if ((PaymentRequestMode)Session["PRMode"] == PaymentRequestMode.New) { if (ViewState["PrDict"] == null) { CreateWorkFlowNumber(); } if (((Dictionary<string, string>)ViewState["PrDict"])["PIIndex"].ToString() == "1") { SetPaymentRequestInfo(); } else { PaymentRequestComm.SetPaymentRequestInfo(PONO, new List<object[]>() { new object[] { "Status", PaymentRequestStatus.InProcess }, new object[] { "ContractPO", txtContractPO.Text } }); } SetPaymentRequestUser(fields); } string paidInd = string.Empty; if (ViewState["Installment"] != null) { paidInd = (ViewState["Installment"] as DataTable).Rows[0]["PaidInd"].ToString(); } if ((ViewState["Installment"] == null || paidInd == "1") && IsFromPO == false) { SetInstallmentInfo(installmentForm); } SetPaymentRequestItemsInfo(fields); return true; }
private void SetPaymentRequestUser(WorkflowDataFields fields) { fields["Applicant"] = Applicant; fields["Manager"] = Manager; fields["Approvers"] = Approvers; ; fields["ApproversSPUser"] = ApproversSPUser; }
/// <summary> /// /// </summary> /// <param name="fields"></param> private void SetPaymentRequestItemsInfo(WorkflowDataFields fields) { if ((PaymentRequestMode)Session["PRMode"] == PaymentRequestMode.New) { Dictionary<string, string> dict = (Dictionary<string, string>)ViewState["PrDict"]; fields["Company"] = "CA"; fields["Title"] = dict["PRNO"]; fields["PRNo"] = dict["PRNO"]; fields["SubPRNo"] = dict["PRNO"] + "_" + dict["PIIndex"]; fields["PONo"] = dict["PONO"]; } SPSecurity.RunWithElevatedPrivileges(delegate() { SPListItemCollection spListItems = PaymentRequestComm.GetPaymentRequestInfo(fields["PONo"].AsString()); foreach (SPListItem spListItem in spListItems) { spListItem["TotalAmount"] = (radioInstallment.SelectedIndex == 0 ? txtTotalAmount.Text : txtTotalAmount1.Text); spListItem["PaymentReason"] = txtPaymentReason.Text; spListItem["VendorName"] = txtVenderName.Text; spListItem["ApplicantSPUser"] = this.EnsureUser(ApplicantEmployee.UserAccount); spListItem["Approvers"] = ReturnAllApproversSPByPR("Approvers", fields["PONo"].AsString(), new string[] { ApplicantEmployee.UserAccount, SPContext.Current.Web.CurrentUser.LoginName }); spListItem.Web.AllowUnsafeUpdates = true; spListItem.Update(); } }); fields["IsFromPO"] = IsFromPO; fields["Dept"] = txtDept.Text; fields["VendorNo"] = txtVenderCode.Text; fields["VendorName"] = txtVenderName.Text; fields["BankName"] = txtBankName.Text; fields["BankAccount"] = txtBankAC.Text; fields["SwiftCode"] = txtSwiftCode.Text; fields["PaymentDesc"] = txtPaymentDesc.Text; fields["CostCenter"] = dropCostCenter.SelectedValue; fields["TotalAmount"] = (radioInstallment.SelectedIndex == 0 ? txtTotalAmount.Text : txtTotalAmount1.Text); fields["IsContractPO"] = (radioContractPO.SelectedIndex + 1) % 2; fields["IsSystemPO"] = (radioSystemPO.SelectedIndex + 1) % 2; fields["IsNeedGR"] = (radioNeedGR.SelectedIndex + 1) % 2; fields["IsAllSystemGR"] = (radioSystemGR.SelectedIndex + 1) % 2; fields["IsInstallment"] = (radioInstallment.SelectedIndex + 1) % 2; fields["IsAttachedInvoice"] = (radioInvoice.SelectedIndex + 1) % 2; fields["InvoiceRemark"] = txtRemark.Text; fields["PaymentReason"] = txtPaymentReason.Text; fields["SubmitDate"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); fields["ContractPONo"] = txtContractPO.Text.ToUpper(); fields["SystemPONo"] = txtSystemPO.Text; fields["Status"] = CAWorkflowStatus.InProgress; if (ViewState["Installment"] != null) { //fields["PaidBefore"] = ((ViewState["Installment"] as DataTable).Rows[0]["PaidBefore"].ToString()); fields["PaidBefore"] = ((ViewState["Installment"] as DataTable).Rows[0]["NewPaidBefore"].ToString()); fields["PaidThisTime"] = ((ViewState["Installment"] as DataTable).Rows[0]["PaidThisTime"].ToString()); fields["Balance"] = ((ViewState["Installment"] as DataTable).Rows[0]["Balance"].ToString()); fields["PaidInd"] = ((ViewState["Installment"] as DataTable).Rows[0]["PaidInd"].ToString()); } fields["VendorCity"] = this.txtVendorCity.Text.Trim(); //fields["VendorCountry"] = this.txtVendorCountry.Text.Trim(); fields["VendorCountry"] = this.ddlVendorCountry.SelectedValue; //fields["BankCity"] = this.txtBankCity.Text.Trim(); fields["BankCity"] = this.ddlBankCountry.SelectedValue; }
internal static void AddItemTable1(DataTable itemTable, Installment dataForm, WorkflowDataFields fields, string summaryAmount) { List<string> list = summaryAmount.Split(';').ToList<string>(); list.Remove(""); DataTable dt = new DataTable(); dt.Columns.Add("ExpenseType"); dt.Columns.Add("ItemAmount"); dt.Columns.Add("CostCenter"); dt.Columns.Add("GLAccount"); dt.Columns.Add("PRWorkFlowNumber"); dt.Columns.Add("SubPRNo"); dt.Columns.Add("Title"); dt.Columns.Add("FANO"); dt.Columns.Add("ItemInstallmentAmount"); //foreach (DataRow dr in itemTable.Rows) //{ // DataRow newdr = dt.Rows.Add(); // newdr["ExpenseType"] = dr["ExpenseType"].ToString(); // newdr["GLAccount"] = dr["GLAccount"].ToString(); // newdr["CostCenter"] = dr["CostCenter"].ToString(); // newdr["ItemAmount"] = dr["ItemAmount"].ToString(); // newdr["PRWorkFlowNumber"] = fields["Title"].ToString(); // newdr["SubPRNo"] = fields["SubPRNo"].ToString(); // newdr["Title"] = fields["SubPRNo"].ToString(); // newdr["FANO"] = dr["FANO"].AsString(); //} for (int i = 0; i < itemTable.Rows.Count;i++ ) { DataRow newdr = dt.Rows.Add(); newdr["ExpenseType"] = itemTable.Rows[i]["ExpenseType"].ToString(); newdr["GLAccount"] = itemTable.Rows[i]["GLAccount"].ToString(); newdr["CostCenter"] = itemTable.Rows[i]["CostCenter"].ToString(); newdr["ItemAmount"] = itemTable.Rows[i]["ItemAmount"].ToString(); newdr["PRWorkFlowNumber"] = fields["Title"].ToString(); newdr["SubPRNo"] = fields["SubPRNo"].ToString(); newdr["Title"] = fields["SubPRNo"].ToString(); newdr["FANO"] = itemTable.Rows[i]["FANO"].AsString(); newdr["ItemInstallmentAmount"] = list[i].Trim(); } dataForm.ItemTable = dt; }
public void AddExpenseClaimSAPWorkFlow(WorkflowDataFields fields) { SPSite site = SPContext.Current.Site; SPList sAPList = CA.SharePoint.SharePointUtil.GetList("Credit Card Claim SAP Workflow"); SPList sAPItemsList = CA.SharePoint.SharePointUtil.GetList("Credit Card Claim SAP Detail"); SPListItem sAPListItem = sAPList.Items.Add(); sAPListItem["WorkflowNumber"] = CreateWorkflowNumber(); //sAPListItem["CashAdvanceAmount"] = fields["CashAdvance"].ToString(); sAPListItem["TotalAmount"] = fields["PreTotalAmount"].ToString(); //sAPListItem["PreTotalAmount"] = fields["AmountDue"].ToString(); sAPListItem["Applicant"] = fields["Applicant"].ToString(); sAPListItem["ExpenseDescription"] = fields["ExpenseDescription"].ToString(); string name = fields["Applicant"].ToString(); string useraccount = name.Substring(name.IndexOf('(') + 1, name.IndexOf(')') - name.IndexOf('(') - 1); sAPListItem["ApplicantSPUser"] = this.EnsureUser(useraccount); sAPListItem["Status"] = CAWorkflowStatus.InProgress; sAPListItem["CCCWWorkflowNumber"] = fields["WorkflowNumber"].ToString(); NameCollection acAccounts = WorkFlowUtil.GetUsersInGroup(WorkflowGroupName.wf_FinanceConfirm_CreditCard); NameCollection financeConfirmAccounts = WorkFlowUtil.GetUsersInGroup(WorkflowGroupName.WF_FinanceManager_CreditCard); System.Text.StringBuilder strStepAndUsers = new System.Text.StringBuilder(); strStepAndUsers.AppendFormat("{0}:{1};", "ACReviewTask", acAccounts.JoinString(",")); strStepAndUsers.AppendFormat("{0}:{1};", "FinanceConfirmTask", financeConfirmAccounts.JoinString(",")); sAPListItem["WorkFlowStepsAndUsers"] = strStepAndUsers.ToString(); sAPListItem["PostSAPStatus"] = "0"; string postSAPType = ""; if (fields["RMBSummaryExpenseType"].ToString().Length > 2) { postSAPType += "RMB;"; } if (fields["USDSummaryExpenseType"].ToString().Length > 2) { postSAPType += "USD;"; } sAPListItem["PostSAPType"] = postSAPType; sAPListItem.Web.AllowUnsafeUpdates = true; sAPListItem.Update(); string regexText = @"\{[^\{-\}]*\}"; Regex regex = new Regex(regexText); if (fields["RMBSummaryExpenseType"].ToString().Length > 2) { MatchCollection mcRMB = regex.Matches(fields["RMBSummaryExpenseType"].ToString()); foreach (Match m in mcRMB) { List<string> itemList = m.Value.Replace("{", "").Replace("}", "").Split(',').ToList<string>(); SPListItem sAPItemsListItem = sAPItemsList.Items.Add(); sAPItemsListItem["WorkflowNumber"] = sAPListItem["WorkflowNumber"].ToString(); sAPItemsListItem["ExpenseType"] = itemList[0].Replace("name:'", "").Replace("'", "").Trim(); sAPItemsListItem["DealAmount"] = itemList[1].Replace("val:'", "").Replace("'", "").Trim(); sAPItemsListItem["CostCenter"] = itemList[2].Replace("costcenter:'", "").Replace("'", "").Trim(); sAPItemsListItem["DepositAmount"] = itemList[3].Replace("depositamt:'", "").Replace("'", "").Trim(); sAPItemsListItem["PayAmount"] = itemList[4].Replace("payamt:'", "").Replace("'", "").Trim(); sAPItemsListItem["TransactionDescription"] = itemList[5].Replace("transdesc:'", "").Replace("'", "").Trim(); sAPItemsListItem["CreditCardBillID"] = itemList[6].Replace("creditCardBillID:'", "").Replace("'", "").Trim(); sAPItemsListItem["AmountType"] = "RMB"; sAPItemsListItem["Status"] = "0"; sAPItemsListItem["ErrorMsg"] = ""; sAPItemsListItem.Web.AllowUnsafeUpdates = true; sAPItemsListItem.Update(); } } if (fields["USDSummaryExpenseType"].ToString().Length > 2) { MatchCollection mcUSD = regex.Matches(fields["USDSummaryExpenseType"].ToString()); foreach (Match m in mcUSD) { List<string> itemList = m.Value.Replace("{", "").Replace("}", "").Split(',').ToList<string>(); SPListItem sAPItemsListItem = sAPItemsList.Items.Add(); sAPItemsListItem["WorkflowNumber"] = sAPListItem["WorkflowNumber"].ToString(); sAPItemsListItem["ExpenseType"] = itemList[0].Replace("name:'", "").Replace("'", "").Trim(); sAPItemsListItem["DealAmount"] = itemList[1].Replace("val:'", "").Replace("'", "").Trim(); sAPItemsListItem["CostCenter"] = itemList[2].Replace("costcenter:'", "").Replace("'", "").Trim(); sAPItemsListItem["DepositAmount"] = itemList[3].Replace("depositamt:'", "").Replace("'", "").Trim(); sAPItemsListItem["PayAmount"] = itemList[4].Replace("payamt:'", "").Replace("'", "").Trim(); sAPItemsListItem["TransactionDescription"] = itemList[5].Replace("transdesc:'", "").Replace("'", "").Trim(); sAPItemsListItem["CreditCardBillID"] = itemList[6].Replace("creditCardBillID:'", "").Replace("'", "").Trim(); sAPItemsListItem["AmountType"] = "USD"; sAPItemsListItem["Status"] = "0"; sAPItemsListItem["ErrorMsg"] = ""; sAPItemsListItem.Web.AllowUnsafeUpdates = true; sAPItemsListItem.Update(); } } WorkflowVariableValues vs = new WorkflowVariableValues(); vs["ACReviewUsers"] = GetDelemanNameCollection(acAccounts, Constants.CAModules.CreditCardClaimSAP); vs["FinanceConfirmUsers"] = GetDelemanNameCollection(financeConfirmAccounts, Constants.CAModules.CreditCardClaimSAP); var aCReviewTaskFormUrl = "/_Layouts/CA/WorkFlows/CreditCardClaim/ACReview.aspx"; var financeConfirmTaskFormUrl = "/_Layouts/CA/WorkFlows/CreditCardClaim/FinanceConfirm.aspx"; vs["ACReviewTaskFormUrl"] = aCReviewTaskFormUrl; vs["FinanceConfirmTaskFormUrl"] = financeConfirmTaskFormUrl; vs["ACReviewTitle"] = fields["Applicant"].ToString() + "'s Credit Card Claim"; vs["FinanceConfirmTitle"] = fields["Applicant"].ToString() + "'s Credit Card Claim"; var eventData = SerializeUtil.Serialize(vs); var wfName = "CreditCardClaimSAP"; var wfAss = sAPList.WorkflowAssociations.GetAssociationByName(wfName, System.Globalization.CultureInfo.CurrentCulture); site.WorkflowManager.StartWorkflow(sAPListItem, wfAss, eventData); WorkFlowUtil.UpdateWorkflowPath(sAPListItem, eventData); }
private void PostCashAdvancedToSAP(WorkflowDataFields fields) { string accountName = string.Empty; SPFieldUser fieldUser = SPContext.Current.ListItem.Fields["ApplicantSPUser"] as SPFieldUser; if (fieldUser != null) { SPFieldUserValue fieldUserValue = fieldUser.GetFieldValue(fields["ApplicantSPUser"].AsString()) as SPFieldUserValue; accountName = fieldUserValue.User.LoginName; } Employee emp = UserProfileUtil.GetEmployee(accountName); if (emp != null) { List<SapParameter> mSapParametersCD = new List<SapParameter>(); SapParameter mSapParameters = new SapParameter() { BusAct = "RFBU", CompCode = "CA10", DocType = "KR", BusArea = "0001", Currency = "RMB", EmployeeID = emp.EmployeeID, EmployeeName = emp.DisplayName, ExchRate = 1, Header = emp.EmployeeID + "CashAdvanced - OR", RefDocNo = fields["Title"].AsString(), CashAmount = decimal.Parse(fields["CashAdvanced"].AsString()) }; if (mSapParameters.CashAmount <= 2000) { mSapParameters.PymtMeth = "E"; } mSapParametersCD.Add(mSapParameters); string sAPNumber = ""; string errorMsg = ""; bool postResult = false; ISapExchange sapExchange = SapExchangeFactory.GetCashAdvance(); List<object[]> result = sapExchange.ImportDataToSap(mSapParametersCD); //if (null == result) //{ // errorMsg += hfEmployeeName + "-" + DateTime.Now.ToShortDateString() + ":" + "Connection failed."; //} if (null == result) { this.Page.ClientScript.RegisterStartupScript(typeof(DataForm), "alert", "<script type=\"text/javascript\">alert('Connection failed !'); window.location = window.location;</script>"); return; } else { for (int i = 0; i < result.Count; i++) { SapParameter sp = (SapParameter)result[i][0]; bool bl = (bool)result[i][2]; if (bl) { SapResult sr = (SapResult)result[i][1]; sAPNumber = sr.OBJ_KEY; postResult = true; } else { if (result[i][1] is string) { errorMsg += emp.DisplayName + "-" + DateTime.Now.ToShortDateString() + ":" + result[i][1].ToString() + " \n "; } else { string wfID = sp.RefDocNo; SapResult sr = (SapResult)result[i][1]; foreach (SAP.Middleware.Table.RETURN ret in sr.RETURN_LIST) { errorMsg += emp.DisplayName + "-" + DateTime.Now.ToShortDateString() + ":" + ret.MESSAGE + " \n "; } } } } } var delegationList = CA.SharePoint.SharePointUtil.GetList(WorkflowListName.TravelRequestWorkflow2); SPQuery query = new SPQuery(); query.Query = string.Format("<Where><Eq><FieldRef Name='Title' /><Value Type='Text'>{0}</Value></Eq></Where>", fields["Title"].AsString()); SPListItemCollection trListItem = delegationList.GetItems(query); SPListItem trItem = trListItem[0]; string emsg = trItem["ErrorMsg"].AsString(); emsg += errorMsg; if (postResult) { trItem["SAPNumber"] = sAPNumber; } else { trItem["ErrorMsg"] = emsg; } trItem.Web.AllowUnsafeUpdates = true; trItem.Update(); trItem.Web.AllowUnsafeUpdates = false; } }
private void AddCashAdvanceSAP(WorkflowDataFields fields) { SPSite site = SPContext.Current.Site; SPList sAPList = CA.SharePoint.SharePointUtil.GetList("CashAdvanceRequestSAP"); SPListItem sAPListItem = sAPList.Items.Add(); sAPListItem["WorkflowNumber"] = CreateWorkflowNumber(); sAPListItem["CAWorkflowNumber"] = fields["WorkflowNumber"].ToString(); sAPListItem["Amount"] = fields["Amount"].ToString(); sAPListItem["Department"] = fields["Department"].ToString(); sAPListItem["Status"] = CAWorkflowStatus.InProgress; sAPListItem["SAPStatus"] = "0"; sAPListItem["AdvanceType"] = Int32.Parse(fields["Amount"].ToString()) > 2000 ? "Transfer" : "Cash"; sAPListItem["AdvanceRemark"] = fields["Purpose"].AsString() + ";" + fields["UrgentRemark"].AsString() + ";" + fields["Remark"].AsString(); Employee employee = UserProfileUtil.GetEmployee(fields["Applicant"].ToString()); sAPListItem["EmployeeID"] = employee.EmployeeID; sAPListItem["EmployeeName"] = employee.DisplayName; sAPListItem["Applicant"] = fields["Applicant"].ToString(); sAPListItem["ApplicantSPUser"] = this.EnsureUser(fields["Applicant"].ToString()); NameCollection acAccounts = WorkFlowUtil.GetUsersInGroup(WorkflowGroupName.WF_Accountants); NameCollection financeConfirmAccounts = WorkFlowUtil.GetUsersInGroup(WorkflowGroupName.WF_FinanceManager); System.Text.StringBuilder strStepAndUsers = new System.Text.StringBuilder(); strStepAndUsers.AppendFormat("{0}:{1};", "ACReviewTask", acAccounts.JoinString(",")); strStepAndUsers.AppendFormat("{0}:{1};", "FinanceConfirmTask", financeConfirmAccounts.JoinString(",")); sAPListItem["WorkFlowStepsAndUsers"] = strStepAndUsers.ToString(); sAPListItem.Web.AllowUnsafeUpdates = true; sAPListItem.Update(); WorkflowVariableValues vs = new WorkflowVariableValues(); vs["ACReviewUsers"] = GetDelemanNameCollection(acAccounts, Constants.CAModules.CashAdvanceRequestSAP); vs["FinanceConfirmUsers"] = GetDelemanNameCollection(financeConfirmAccounts, Constants.CAModules.CashAdvanceRequestSAP); var aCReviewTaskFormUrl = "/_Layouts/CA/WorkFlows/CashAdvanceRequest/ACReview.aspx"; var financeConfirmTaskFormUrl = "/_Layouts/CA/WorkFlows/CashAdvanceRequest/FinanceConfirm.aspx"; vs["ACReviewTaskFormUrl"] = aCReviewTaskFormUrl; vs["FinanceConfirmTaskFormUrl"] = financeConfirmTaskFormUrl; vs["ACReviewTitle"] = fields["Applicant"].ToString() + "'s Cash Advance Request"; vs["FinanceConfirmTitle"] = fields["Applicant"].ToString() + "'s Cash Advance Request"; var eventData = SerializeUtil.Serialize(vs); var wfName = "CashAdvanceRequestSAP"; var wfAss = sAPList.WorkflowAssociations.GetAssociationByName(wfName, System.Globalization.CultureInfo.CurrentCulture); site.WorkflowManager.StartWorkflow(sAPListItem, wfAss, eventData); WorkFlowUtil.UpdateWorkflowPath(sAPListItem, eventData); }
/// <summary> /// 添加支付相关链接 /// </summary> /// <param name="fields"></param> void AddPaymentLink(WorkflowDataFields fields) { string sPONO = fields["PONumber"].ToString(); if (sPONO.EndsWith("R", StringComparison.InvariantCultureIgnoreCase)) { return; } SPFieldUrlValue linkInstall = new SPFieldUrlValue(); linkInstall.Description = "Payment"; linkInstall.Url = string.Concat("/WorkFlowCenter/lists/PaymentRequestItems/NewForm.aspx?PONO=", sPONO, "&IsFromPO=ture"); SPFieldUrlValue linkHistory = new SPFieldUrlValue(); linkHistory.Description = "Payment History"; linkHistory.Url = string.Concat("/WorkFlowCenter/_layouts/ca/workflows/PaymentRequest/HistoryForm.aspx?PONO=" , sPONO, "&IsFromPO=ture"); fields["Installment"] = linkInstall; fields["InstallmentHistory"] = linkHistory; }
private void StartSAPWorkflow(WorkflowDataFields fields) { SPList list = SPContext.Current.Web.Lists[WorkflowListName.TravelExpenseClaimForSAP]; SPListItem item = list.Items.Add(); List<string> fieldsList = new List<string>() { "ApplicantSPUser", "EnglishName"}; string SAPWorkflowNumber = TravelExpenseClaimCommon.SaveListFields(fields, item, fieldsList); fieldsList.Clear(); fieldsList = new List<string>(){"ExpenseType", "CostCenter", "RmbAmt", "ApprovedRmbAmt" }; DataTable detailsDataTable = WorkFlowUtil.GetDataTableSource(fields["WorkflowNumber"].AsString(), WorkflowListName.TravelExpenseClaimDetails, fieldsList); WorkFlowUtil.BatchInsertDataTable(WorkflowListName.TravelExpenseClaimDetailsForSAP, SAPWorkflowNumber, detailsDataTable, null); item["Status"] = CAWorkflowStatus.InProgress; item.Update(); WorkflowVariableValues vs = new WorkflowVariableValues(); vs["ConfirmTaskFormURL"] = "/_Layouts/CA/Workflows/TravelExpenseClaimForSAP/NewForm.aspx"; vs["ConfirmTaskTitle"] = fields["WorkflowNumber"].AsString() + ":Please confirm the Travel Expense Claim Info"; vs["ConfirmTaskUsers"] = TravelExpenseClaimCommon.GetTaskUsersWithoutDeleman(WorkflowGroupName.WF_Accountants); vs["IsConfirm"] = true; var eventData = SerializeUtil.Serialize(vs); var wfAss = list.WorkflowAssociations.GetAssociationByName(WorkflowConfigName.TravelExpenseClaimForSAP, CultureInfo.CurrentCulture); SPContext.Current.Site.WorkflowManager.StartWorkflow(item, wfAss, eventData); WorkFlowUtil.UpdateWorkflowPath(item, eventData); }