예제 #1
0
        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();
        }
예제 #2
0
 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;
 }
예제 #3
0
 internal static void AddItemTable1(Installment dataForm, WorkflowDataFields fields)
 {
     AddItemTable1(dataForm.ItemTable, dataForm, fields, dataForm.SummaryAmount);
 }
예제 #4
0
 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;
 }
예제 #5
0
 internal static void AddItemTable(DataForm dataForm, WorkflowDataFields fields)
 {
     AddItemTable(dataForm.ItemTable, dataForm,fields );
 }
예제 #6
0
        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);
        }
예제 #7
0
        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";
            }
        }
예제 #8
0
        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);
        }
예제 #9
0
        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();
        }
예제 #10
0
        /// <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);
        }
예제 #11
0
        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;
        }
예제 #12
0
 private void SetPaymentRequestUser(WorkflowDataFields fields)
 {
     fields["Applicant"] = Applicant;
     fields["Manager"] = Manager;
     fields["Approvers"] = Approvers; ;
     fields["ApproversSPUser"] = ApproversSPUser;
 }
예제 #13
0
        /// <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;
        }
예제 #14
0
        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;
        }
예제 #15
0
        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);
        }
예제 #16
0
        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;
            }
        }
예제 #17
0
        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);
        }
예제 #18
0
        /// <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;
        }
예제 #19
0
        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);
        }