Exemplo n.º 1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!X.IsAjaxRequest)
            {
                //检查是否登录超时
                if (Request.Cookies.Get("eReimUserID") == null)
                {
                    if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                    {
                        X.AddScript("Ext.Msg.show({ title: '提示', msg: '登录超时,将刷新页面.', buttons: { ok: 'Ok' }, fn: function (btn) { parent.location.reload(); } });");
                    }
                    else
                    {
                        X.AddScript("Ext.Msg.show({ title: 'Message', msg: 'Time out,reloading...', buttons: { ok: 'Ok' }, fn: function (btn) { parent.location.reload(); } });");
                    }
                    return;
                }
                if (Request.QueryString["RequestID"] != null)//判断链接地址是否正确
                {
                    string ID = Request.QueryString["RequestID"].ToString();
                    System.Text.RegularExpressions.Regex reg1 = new System.Text.RegularExpressions.Regex(@"^\d*$");
                    if (reg1.IsMatch(ID))
                    {
                        string sql = "select * from ETravel where ID='" + ID + "'";
                        cs.DBCommand dbc = new cs.DBCommand();
                        DataTable dt = new DataTable();
                        dt = dbc.GetData("eReimbursement", sql);
                        if (dt != null && dt.Rows.Count == 1)
                        {
                            string sqldetail2 = "select min(convert(varchar(10),Tdate0,111)) as Tdate0,max(convert(varchar(10),Tdate,111)) as Tdate1 from ETraveleDetail where [No]=" + ID + "";
                            DataTable dtder = dbc.GetData("eReimbursement", sqldetail2);

                            LabelPerson.Text = dt.Rows[0]["Person"].ToString();
                            LabelStation.Text = dt.Rows[0]["Station"].ToString();
                            LabelDepartment.Text = dt.Rows[0]["Department"].ToString();
                            LabelBdate.Text = dtder.Rows[0]["Tdate0"].ToString() == "" ? "" : Convert.ToDateTime(dtder.Rows[0]["Tdate0"].ToString()).ToString("yyyy/MM/dd");
                            LabelEdate.Text = dtder.Rows[0]["Tdate1"].ToString() == "" ? "" : Convert.ToDateTime(dtder.Rows[0]["Tdate1"].ToString()).ToString("yyyy/MM/dd");
                            if (dt.Rows[0]["ReportFile"].ToString() != "")
                            {
                                LinkReport.Text = dt.Rows[0]["ReportFile"].ToString();
                                LinkReport.NavigateUrl = "./Upload/" + dt.Rows[0]["ReportFile"].ToString();
                            }
                            if (dt.Rows[0]["Attach"].ToString() != "")
                            {
                                LinkScanFile.Text = dt.Rows[0]["Attach"].ToString();
                                LinkScanFile.NavigateUrl = "./Upload/" + dt.Rows[0]["Attach"].ToString();
                            }
                            LabelSum.Text = dt.Rows[0]["Tamount"].ToString() == "" ? "0" : Convert.ToDecimal(dt.Rows[0]["Tamount"].ToString()).ToString("#,##0.00");
                            LabelPSum.Text = dt.Rows[0]["Pamout"].ToString() == "" ? "0" : Convert.ToDecimal(dt.Rows[0]["Pamout"].ToString()).ToString("#,##0.00");
                            LabelCSum.Text = dt.Rows[0]["Camount"].ToString() == "" ? "0" : Convert.ToDecimal(dt.Rows[0]["Camount"].ToString()).ToString("#,##0.00");
                            LabelRemark.Text = dt.Rows[0]["Remark"].ToString();

                            //160119 垫付
                            LabelBehalfPersonName.Text = dt.Rows[0]["OnBehalfPersonName"].ToString();
                            LabelBehalfCost.Text = dt.Rows[0]["OnBehalfPersonCostCenter"].ToString();

                            //组合数据
                            DataTable dtnew = new DataTable();
                            Store2.Reader[0].Fields.Add("Category", RecordFieldType.String);
                            dtnew.Columns.Add("Category", typeof(String));
                            dtnew.Columns.Add("TotalP", typeof(String));
                            dtnew.Columns.Add("TotalC", typeof(String));
                            //默认12行
                            for (int i = 0; i < 12; i++)
                            {
                                DataRow dr = dtnew.NewRow();
                                dtnew.Rows.Add(dr);
                            }
                            //默认第一列是标题
                            dtnew.Rows[0][0] = "1. Air Ticket - Int'l";
                            dtnew.Rows[1][0] = "Air Ticket - Domestic";
                            dtnew.Rows[2][0] = "2. Hotel Bill";
                            dtnew.Rows[3][0] = "3. Meals";
                            dtnew.Rows[4][0] = "4. Entertainment";
                            dtnew.Rows[5][0] = "5. Car Rental/Transportation";
                            dtnew.Rows[6][0] = "6. Communication";
                            dtnew.Rows[7][0] = "7. Local Trip Allowance";
                            dtnew.Rows[8][0] = "8. Overseas Trip Allowance";
                            dtnew.Rows[9][0] = "9. Airport Tax/Travel Insurance";
                            dtnew.Rows[10][0] = "10. Others";
                            dtnew.Rows[11][0] = "Total";

                            string sqlf = "select distinct Tocity from ETraveleDetail where [No]='" + ID + "'";
                            DataTable dtf = dbc.GetData("eReimbursement", sqlf);
                            
                            string sqld = "select * from ETraveleDetail where [No]='" + ID + "' order by id";
                            DataTable dtall = new DataTable();
                            dtall = dbc.GetData("eReimbursement", sqld);
                            LabelCur.Text = dtall.Rows[0]["Cur"].ToString();
                            //预算
                            DataTable dtbudget = new DataTable();
                            //StoreBudget添加Field
                            StoreBudget.Reader[0].Fields.Add("EName", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("COACode", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("Current", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("PU", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("PB", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("PPercent", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("DU", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("DB", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("DPercent", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("SU", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("SB", RecordFieldType.String);
                            StoreBudget.Reader[0].Fields.Add("SPercent", RecordFieldType.String);
                            //取得Budget_Complete中数据
                            DataTable dtnn = new DataTable();
                            string sqlbu = "select EName,COACode,LocalAmount as [Current],PU,PB,PPercent,DU,DB,DPercent,SU,SB,SPercent from Budget_Complete where FormType='T' and RequestID=" + ID;
                            dtnn = dbc.GetData("eReimbursement", sqlbu);
                            if ((dt.Rows[0]["Status"].ToString() == "2" || dt.Rows[0]["Status"].ToString() == "3") && dtnn.Rows.Count > 0)
                            {
                                dtbudget = dtnn;
                                bool PB = false, DB = false, SB = false;
                                //计算%,取得名称,预算转换为本地汇率
                                for (int i = 0; i < dtbudget.Rows.Count; i++)
                                {
                                    if (Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()) != 0)//如果Budget不为0,则计算%
                                    {
                                        if (!PB)
                                        {
                                            PB = true;
                                        }
                                    }
                                    if (Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()) != 0)//如果Budget不为0,则计算%
                                    {
                                        if (!DB)
                                        {
                                            DB = true;
                                        }
                                    }
                                    if (Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()) != 0)//如果Budget不为0,则计算%
                                    {
                                        if (!SB)
                                        {
                                            SB = true;
                                        }
                                    }
                                }
                                //添加数据列
                                var cmBudget = GridPanelBudget.ColumnModel;
                                cmBudget.Columns.Add(new Column
                                {
                                    DataIndex = "EName",
                                    Header = "Expense Item",
                                    Sortable = false,
                                    Resizable = false,
                                    MenuDisabled = true,
                                    Width = 100
                                });
                                cmBudget.Columns.Add(new Column
                                {
                                    DataIndex = "Current",
                                    Header = "Current",
                                    Renderer = new Renderer { Fn = "GetNumber" },
                                    Sortable = false,
                                    Resizable = false,
                                    MenuDisabled = true,
                                    Width = 100
                                });
                                //显示个人预算部分
                                if (PB)
                                {
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "PU",
                                        Header = "Personal Used",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "PB",
                                        Header = "Personal Budget",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "PPercent",
                                        Header = "%(Current+Used/Budget)",
                                        Renderer = new Renderer { Fn = "GetNumberPercent" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                }
                                if (DB)
                                {
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "DU",
                                        Header = "Department Used",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "DB",
                                        Header = "Department Budget",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "DPercent",
                                        Header = "%(Current+Used/Budget)",
                                        Renderer = new Renderer { Fn = "GetNumberPercent" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                }
                                if (SB)
                                {
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "SU",
                                        Header = "Unit Used",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "SB",
                                        Header = "Unit Budget",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "SPercent",
                                        Header = "%(Current+Used/Budget)",
                                        Renderer = new Renderer { Fn = "GetNumberPercent" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                }
                            }
                            //140226 显示预算
                            else
                            {
                                dtbudget.Columns.Add("EName", typeof(System.String));
                                dtbudget.Columns.Add("COACode", typeof(System.String));
                                dtbudget.Columns.Add("Current", typeof(System.Decimal));
                                dtbudget.Columns.Add("PU", typeof(System.Decimal));
                                dtbudget.Columns.Add("PB", typeof(System.Decimal));
                                dtbudget.Columns.Add("PPercent", typeof(System.Decimal));
                                dtbudget.Columns.Add("DU", typeof(System.Decimal));
                                dtbudget.Columns.Add("DB", typeof(System.Decimal));
                                dtbudget.Columns.Add("DPercent", typeof(System.Decimal));
                                dtbudget.Columns.Add("SU", typeof(System.Decimal));
                                dtbudget.Columns.Add("SB", typeof(System.Decimal));
                                dtbudget.Columns.Add("SPercent", typeof(System.Decimal));

                                //取得预算日期
                                string sqlA = "select convert(varchar(10),min(Tdate0),111) as BudgetDate from ETraveleDetail where No='" + ID + "'";
                                DataTable dtA = dbc.GetData("eReimbursement", sqlA);
                                //取得本币与成本中心汇率转换
                                decimal rate = 1;
                                string CurLocal = dtall.Rows[0]["Cur"].ToString();
                                string CurBudget = DIMERCO.SDK.Utilities.LSDK.GetStationCurrencyByCode(dt.Rows[0]["Station2"].ToString());
                                if (CurLocal != CurBudget)
                                {
                                    rate = DIMERCO.SDK.Utilities.LSDK.GetBudgetConverRate(CurLocal, CurBudget, Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year);
                                }

                                //取得4大类合计
                                //string sqlB = "select sum(T1) as T1,sum(T2) as T2,sum(T3) as T3,sum(T4) as T4 from (select case when AccountCode='62012000' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T1],case when AccountCode='62010900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T2],case when AccountCode='62011900' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T3],case when AccountCode='62010500' then isnull(Pamount,0)+isnull(Camount,0) else 0 end as [T4] from ETraveleDetail where No=" + ID + ") t";
                                string sqlB = "select isnull(sum(isnull(Pamount,0)+isnull(Camount,0)),0) as Amount,'62012000' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62012000' union all select isnull(sum(isnull(Pamount,0)+isnull(Camount,0)),0) as Amount,'62010900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010900' union all select isnull(sum(isnull(Pamount,0)+isnull(Camount,0)),0) as Amount,'62011900' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62011900' union all select isnull(sum(isnull(Pamount,0)+isnull(Camount,0)),0) as Amount,'62010500' as COACode from ETraveleDetail where No=" + ID + " and AccountCode='62010500'";
                                DataTable dtB = dbc.GetData("eReimbursement", sqlB);
                                //取得传递预算的参数
                                //160119 垫付
                                string userid = dt.Rows[0]["OnBehalfPersonID"].ToString() == "" ? dt.Rows[0]["PersonID"].ToString() : dt.Rows[0]["OnBehalfPersonID"].ToString();
                                string dpt = dt.Rows[0]["OnBehalfPersonID"].ToString() == "" ? dt.Rows[0]["Department"].ToString() : dt.Rows[0]["OnBehalfPersonDept"].ToString();
                                string ostation = dt.Rows[0]["Station2"].ToString();//预算站点,与基本信息中的CostCenter一致(Station2)
                                string tstation = ostation;//Etravel表中的Station2,目前与预算站点一致,不允许更改
                                string year = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Year.ToString();
                                string month = Convert.ToDateTime(dtA.Rows[0]["BudgetDate"].ToString()).Month.ToString();
                                string accountcode = "";
                                for (int g = 0; g < dtB.Rows.Count; g++)
                                {
                                    if (Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString()) != 0)
                                    {
                                        DataRow dr = dtbudget.NewRow();
                                        dr["Current"] = Convert.ToDecimal(dtB.Rows[g]["Amount"].ToString());
                                        dr["COACode"] = dtB.Rows[g]["COACode"].ToString();
                                        accountcode = dtB.Rows[g]["COACode"].ToString();
                                        DataTable dtC = new DataTable();
                                        dtC = Comm.ExRtnEB(userid, dpt, ostation, tstation, accountcode, year, month, "T", ID);

                                        for (int i = 0; i < dtC.Rows.Count; i++)
                                        {
                                            if (dtC.Rows[i]["Type"].ToString() == "全年个人")
                                            {
                                                dr["PU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString());
                                                dr["PB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString());
                                            }
                                            else if (dtC.Rows[i]["Type"].ToString() == "全年部门")
                                            {
                                                dr["DU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString());
                                                dr["DB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString());
                                            }
                                            else if (dtC.Rows[i]["Type"].ToString() == "全年站点")
                                            {
                                                dr["SU"] = Convert.ToDecimal(dtC.Rows[i]["Used"].ToString());
                                                dr["SB"] = Convert.ToDecimal(dtC.Rows[i]["Budget"].ToString());
                                            }
                                        }
                                        dtbudget.Rows.Add(dr);
                                    }
                                }
                                bool PB = false, DB = false, SB = false;
                                //计算%,取得名称,预算转换为本地汇率
                                for (int i = 0; i < dtbudget.Rows.Count; i++)
                                {
                                    if (Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()) != 0)//如果Budget不为0,则计算%
                                    {
                                        dtbudget.Rows[i]["PPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[i]["Current"].ToString()) + Convert.ToDecimal(dtbudget.Rows[i]["PU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()), 2);
                                        if (!PB)
                                        {
                                            PB = true;
                                        }
                                    }
                                    if (Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()) != 0)//如果Budget不为0,则计算%
                                    {
                                        dtbudget.Rows[i]["DPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[i]["Current"].ToString()) + Convert.ToDecimal(dtbudget.Rows[i]["DU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()), 2);
                                        if (!DB)
                                        {
                                            DB = true;
                                        }
                                    }
                                    if (Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()) != 0)//如果Budget不为0,则计算%
                                    {
                                        dtbudget.Rows[i]["SPercent"] = System.Math.Round((Convert.ToDecimal(dtbudget.Rows[i]["Current"].ToString()) + Convert.ToDecimal(dtbudget.Rows[i]["SU"].ToString())) * 100 / Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()), 2);
                                        if (!SB)
                                        {
                                            SB = true;
                                        }
                                    }
                                    if (dtbudget.Rows[i]["COACode"].ToString() == "62012000")
                                    {
                                        dtbudget.Rows[i]["EName"] = "Travel expense";
                                    }
                                    else if (dtbudget.Rows[i]["COACode"].ToString() == "62010900")
                                    {
                                        dtbudget.Rows[i]["EName"] = "Entertainment";
                                    }
                                    else if (dtbudget.Rows[i]["COACode"].ToString() == "62011900")
                                    {
                                        dtbudget.Rows[i]["EName"] = "Transportation";
                                    }
                                    else if (dtbudget.Rows[i]["COACode"].ToString() == "62010500")
                                    {
                                        dtbudget.Rows[i]["EName"] = "Communication";
                                    }
                                    dtbudget.Rows[i]["PU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["PU"].ToString()), 2);
                                    dtbudget.Rows[i]["PB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["PB"].ToString()), 2);
                                    dtbudget.Rows[i]["DU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["DU"].ToString()), 2);
                                    dtbudget.Rows[i]["DB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["DB"].ToString()), 2);
                                    dtbudget.Rows[i]["SU"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["SU"].ToString()), 2);
                                    dtbudget.Rows[i]["SB"] = System.Math.Round(rate * Convert.ToDecimal(dtbudget.Rows[i]["SB"].ToString()), 2);
                                }
                                //添加数据列
                                var cmBudget = GridPanelBudget.ColumnModel;
                                cmBudget.Columns.Add(new Column
                                {
                                    DataIndex = "EName",
                                    Header = "Expense Item",
                                    Sortable = false,
                                    Resizable = false,
                                    MenuDisabled = true,
                                    Width = 100
                                });
                                cmBudget.Columns.Add(new Column
                                {
                                    DataIndex = "Current",
                                    Header = "Current",
                                    Renderer = new Renderer { Fn = "GetNumber" },
                                    Sortable = false,
                                    Resizable = false,
                                    MenuDisabled = true,
                                    Width = 100
                                });
                                //显示个人预算部分
                                if (PB)
                                {
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "PU",
                                        Header = "Personal Used",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "PB",
                                        Header = "Personal Budget",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "PPercent",
                                        Header = "%(Current+Used/Budget)",
                                        Renderer = new Renderer { Fn = "GetNumberPercent" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                }
                                if (DB)
                                {
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "DU",
                                        Header = "Department Used",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "DB",
                                        Header = "Department Budget",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "DPercent",
                                        Header = "%(Current+Used/Budget)",
                                        Renderer = new Renderer { Fn = "GetNumberPercent" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                }
                                if (SB)
                                {
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "SU",
                                        Header = "Unit Used",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "SB",
                                        Header = "Unit Budget",
                                        Renderer = new Renderer { Fn = "GetNumber" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                    cmBudget.Columns.Add(new Column
                                    {
                                        DataIndex = "SPercent",
                                        Header = "%(Curren+Used/Budget)",
                                        Renderer = new Renderer { Fn = "GetNumberPercent" },
                                        Sortable = false,
                                        Resizable = false,
                                        MenuDisabled = true,
                                        Width = 100
                                    });
                                }
                            }


                            string sqlflow = "select * from V_Eflow_ETravel where RequestID='" + ID + "' and [Type]='T' order by Step,FlowID";
                            DataTable dtflow = new DataTable();
                            dtflow = dbc.GetData("eReimbursement", sqlflow);
                            //160119 垫付,如果登录用户是被垫付人审批人之一,则显示预算,否则不显示
                            //if (dtflow != null && dtflow.Rows.Count > 0 && dtflow.Select("ApproverID='" + Request.Cookies.Get("eReimUserID").Value + "' and FPersonID=OnBehalfPersonID").Count() > 0)
                            //{
                            //    StoreBudget.DataSource = dtbudget;
                            //    StoreBudget.DataBind();
                            //}
                            if (dtflow != null && dtflow.Rows.Count > 0)
                            {
                                if (dtflow.Select("ApproverID='" + Request.Cookies.Get("eReimUserID").Value + "' and FPersonID=OnBehalfPersonID").Count() > 0 || dtflow.Select("ApproverID='" + Request.Cookies.Get("eReimUserID").Value + "' and OnBehalfPersonID is null").Count() > 0)
                                {
                                    StoreBudget.DataSource = dtbudget;
                                    StoreBudget.DataBind();
                                }

                            }


                            for (int i = 0; i < dtall.Rows.Count; i++)
                            {
                                if (i % 11 == 0)
                                {
                                    string colname = "Station_" + (i / 11).ToString() + "_P";
                                    Store2.Reader[0].Fields.Add(colname, RecordFieldType.String);
                                    dtnew.Columns.Add(colname, typeof(String));
                                    colname = "Station_" + (i / 11).ToString() + "_C";
                                    Store2.Reader[0].Fields.Add(colname, RecordFieldType.String);
                                    dtnew.Columns.Add(colname, typeof(String));
                                }
                                dtnew.Rows[i % 11][3 + i / 11 * 2] = dtall.Rows[i]["Pamount"].ToString();
                                dtnew.Rows[i % 11][3 + i / 11 * 2 + 1] = dtall.Rows[i]["Camount"].ToString();
                                //列合计
                                string df = dtnew.Rows[11][3 + i / 11 * 2].ToString() == "" ? "0" : dtnew.Rows[11][3 + i / 11 * 2].ToString();
                                string cf = dtall.Rows[i]["Pamount"].ToString() == "" ? "0" : dtall.Rows[i]["Pamount"].ToString();
                                dtnew.Rows[11][3 + i / 11 * 2] = Convert.ToDecimal(df) + Convert.ToDecimal(cf) == 0 ? "" : (Convert.ToDecimal(df) + Convert.ToDecimal(cf)).ToString();

                                string bf = dtnew.Rows[11][3 + i / 11 * 2 + 1].ToString() == "" ? "0" : dtnew.Rows[11][3 + i / 11 * 2 + 1].ToString();
                                string af = dtall.Rows[i]["Camount"].ToString() == "" ? "0" : dtall.Rows[i]["Camount"].ToString();
                                dtnew.Rows[11][3 + i / 11 * 2 + 1] = Convert.ToDecimal(bf) + Convert.ToDecimal(af) == 0 ? "" : (Convert.ToDecimal(bf) + Convert.ToDecimal(af)).ToString();
                                //行合计
                                string df1 = dtnew.Rows[i % 11][1].ToString() == "" ? "0" : dtnew.Rows[i % 11][1].ToString();
                                dtnew.Rows[i % 11][1] = Convert.ToDecimal(df1) + Convert.ToDecimal(cf) == 0 ? "" : (Convert.ToDecimal(df1) + Convert.ToDecimal(cf)).ToString();
                                string bf1 = dtnew.Rows[i % 11][2].ToString() == "" ? "0" : dtnew.Rows[i % 11][2].ToString();
                                dtnew.Rows[i % 11][2] = Convert.ToDecimal(bf1) + Convert.ToDecimal(af) == 0 ? "" : (Convert.ToDecimal(bf1) + Convert.ToDecimal(af)).ToString();
                                //总合计
                                string tf = dtnew.Rows[11][1].ToString() == "" ? "0" : dtnew.Rows[11][1].ToString();
                                dtnew.Rows[11][1] = Convert.ToDecimal(tf) + Convert.ToDecimal(cf) == 0 ? "" : (Convert.ToDecimal(tf) + Convert.ToDecimal(cf)).ToString();
                                string ff = dtnew.Rows[11][2].ToString() == "" ? "0" : dtnew.Rows[11][2].ToString();
                                dtnew.Rows[11][2] = Convert.ToDecimal(ff) + Convert.ToDecimal(af) == 0 ? "" : (Convert.ToDecimal(ff) + Convert.ToDecimal(af)).ToString();
                            }
                            Store2.Reader[0].Fields.Add("TotalP", RecordFieldType.String);
                            Store2.Reader[0].Fields.Add("TotalC", RecordFieldType.String);
                            int colc = dtall.Rows.Count / 11;
                            //140226
                            //第一行组列
                            var continentGroupRow = new HeaderGroupRow();
                            continentGroupRow.Columns.Add(new HeaderGroupColumn
                            {
                                Header = ""
                                //Align = Alignment.Center,
                                //ColSpan = cities.Length * products.Length
                            });
                            for (int i = 0; i < colc; i++)//准备复制已有信息
                            {
                                continentGroupRow.Columns.Add(new HeaderGroupColumn
                                {
                                    Header = "Reimbursement",
                                    Align = Alignment.Center
                                });
                                continentGroupRow.Columns.Add(new HeaderGroupColumn
                                {
                                    Header = "Company Paid",
                                    Align = Alignment.Center
                                });
                            }
                            continentGroupRow.Columns.Add(new HeaderGroupColumn
                            {
                                Header = ""
                            });
                            continentGroupRow.Columns.Add(new HeaderGroupColumn
                            {
                                Header = ""
                            });
                            //第二行组列
                            var cityGroupRow = new HeaderGroupRow();
                            cityGroupRow.Columns.Add(new HeaderGroupColumn
                            {
                                Header = "Destination:"
                            });
                            for (int i = 0; i < colc; i++)//准备复制已有信息
                            {
                                cityGroupRow.Columns.Add(new HeaderGroupColumn
                                {
                                    Header = dtall.Rows[i * 11]["Tocity"].ToString(),
                                    Align = Alignment.Center,
                                    ColSpan = 2
                                });
                            }
                            cityGroupRow.Columns.Add(new HeaderGroupColumn
                            {
                                Header = ""
                            });
                            cityGroupRow.Columns.Add(new HeaderGroupColumn
                            {
                                Header = ""
                            });
                            //第三行组列
                            var HeaderGroupRow3 = new HeaderGroupRow();
                            HeaderGroupRow3.Columns.Add(new HeaderGroupColumn
                            {
                                Header = "Cost Center:"
                            });
                            for (int i = 0; i < colc; i++)//准备复制已有信息
                            {
                                HeaderGroupRow3.Columns.Add(new HeaderGroupColumn
                                {
                                    Header = dtall.Rows[i * 11]["TSation"].ToString(),
                                    Align = Alignment.Center,
                                    ColSpan = 2
                                });
                            }
                            HeaderGroupRow3.Columns.Add(new HeaderGroupColumn
                            {
                                Header = ""
                            });
                            HeaderGroupRow3.Columns.Add(new HeaderGroupColumn
                            {
                                Header = ""
                            });
                            //添加数据列
                            var cm = GridPanel2.ColumnModel;
                            cm.Columns.Add(new Column
                            {
                                DataIndex = "Category",
                                Header = "Travel Period:",
                                Sortable = false,
                                Resizable = false,
                                MenuDisabled = true,
                                Width = 180
                            });
                            for (int i = 0; i < colc; i++)//准备复制已有信息
                            {
                                string dtfroms = dtall.Rows[i * 11]["Tdate0"].ToString() == "" ? "" : Convert.ToDateTime(dtall.Rows[i * 11]["Tdate0"].ToString()).ToString("yyyy/MM/dd");
                                string dtfroms1 = dtall.Rows[i * 11]["Tdate"].ToString() == "" ? "" : Convert.ToDateTime(dtall.Rows[i * 11]["Tdate"].ToString()).ToString("yyyy/MM/dd");
                                    
                                string fieldPName = "Station_" + i.ToString() + "_P";
                                string fieldCName = "Station_" + i.ToString() + "_C";
                                cm.Columns.Add(new Column
                                {
                                    DataIndex = fieldPName,
                                    Header = dtfroms,
                                    Sortable = false,
                                    Resizable = false,
                                    MenuDisabled = true,
                                    Width = 100
                                });
                                cm.Columns.Add(new Column
                                {
                                    DataIndex = fieldCName,
                                    Header = dtfroms1,
                                    Sortable = false,
                                    Resizable = false,
                                    MenuDisabled = true,
                                    Width = 100
                                });
                            }
                            cm.Columns.Add(new Column
                            {
                                DataIndex = "TotalP",
                                Header = "Total(Personal paid)",
                                Sortable = false,
                                Resizable = false,
                                MenuDisabled = true,
                                Width = 100
                            });
                            cm.Columns.Add(new Column
                            {
                                DataIndex = "TotalC",
                                Header = "Total(Company)",
                                Sortable = false,
                                Resizable = false,
                                MenuDisabled = true,
                                Width = 100
                            });
                            GridPanel2.View[0].HeaderGroupRows.Add(continentGroupRow);
                            GridPanel2.View[0].HeaderGroupRows.Add(cityGroupRow);
                            GridPanel2.View[0].HeaderGroupRows.Add(HeaderGroupRow3);


                            Store2.DataSource = dtnew;
                            Store2.DataBind();


                            if (dtflow != null && dtflow.Rows.Count > 0)
                            {
                                string html = "";
                                int countdiv = 0;
                                bool tijiao = false;
                                string status1 = ""; string status2 = ""; string status3 = ""; string status4 = ""; string status5 = ""; string status6 = "";
                                if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                                {
                                    status1 = "待提交";
                                    status2 = "提交申请";
                                    status3 = "待批";
                                    status4 = "已批准";
                                    status5 = "已拒绝";
                                    status6 = "完成";
                                }
                                else
                                {
                                    status1 = "Pending.";
                                    status2 = "Applied by";
                                    status3 = "Waiting for app.";
                                    status4 = "Approved.";
                                    status5 = "Rejected by";
                                    status6 = "Complete.";
                                }
                                for (int i = 0; i < dtflow.Rows.Count; i++)
                                {
                                    if (dtflow.Rows[i]["Step"].ToString() == "0")
                                    {
                                        html += "<div class=\"StatusIcon Pending\">";
                                        html += "<span class=\"spanIcon\">" + status1 + "<br />";
                                        html += dtflow.Rows[i]["Person"].ToString();
                                        html += "</span><b class=\"bIcon bIcon1\"></b>";
                                        html += "</div>";
                                        countdiv++;
                                        break;
                                    }
                                    else
                                    {
                                        if (dtflow.Rows[i]["Step"].ToString() == "1" && !tijiao)
                                        {
                                            html += "<div class=\"StatusIcon StatusIcon0\">";
                                            html += "<span class=\"spanIcon\">" + status2 + "<br />";
                                            html += dtflow.Rows[i]["CreadedBy"].ToString();
                                            html += dtflow.Rows[i]["CreadedDate"].ToString() == "" ? "" : "<br />" + Convert.ToDateTime(dtflow.Rows[i]["CreadedDate"].ToString()).ToString("yyyy/MM/dd");
                                            html += "</span><b class=\"bIcon bIcon1\"></b>";
                                            html += "</div>";
                                            tijiao = true;
                                            countdiv++;
                                        }
                                        //if (dtflow.Rows[i]["Status"].ToString() == "1")
                                        //{
                                        //    html += "<div class=\"StatusIcon Pending\">";
                                        //    html += "<span class=\"spanIcon\">" + status3 + "<br />";
                                        //    html += dtflow.Rows[i]["Approver"].ToString();
                                        //    html += "</span><b class=\"bIcon bIcon1\"></b>";
                                        //    html += "</div>";
                                        //    countdiv++;
                                        //}
                                        //else if (dtflow.Rows[i]["Status"].ToString() == "2")
                                        //{
                                        //    html += "<div class=\"StatusIcon Approve\">";
                                        //    html += "<span class=\"spanIcon\">" + status4 + "<br />";
                                        //    html += dtflow.Rows[i]["Approver"].ToString();
                                        //    html += dtflow.Rows[i]["ApproveDate"].ToString() == "" ? "" : "<br />" + Convert.ToDateTime(dtflow.Rows[i]["ApproveDate"].ToString()).ToString("yyyy/MM/dd");
                                        //    html += "</span><b class=\"bIcon bIcon1\"></b>";
                                        //    html += "</div>";
                                        //    countdiv++;
                                        //}
                                        if (dtflow.Rows[i]["Status"].ToString() == "1")
                                        {
                                            string msg = "";
                                            if (dtflow.Rows[i]["FlowFn"].ToString().ToLower() == "verifier")
                                            {
                                                if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                                                {
                                                    msg = "待查.";
                                                }
                                                else
                                                {
                                                    msg = "To Be Verified by";
                                                }
                                            }
                                            else if (dtflow.Rows[i]["FlowFn"].ToString().ToLower() == "issuer")
                                            {
                                                if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                                                {
                                                    msg = "待发放.";
                                                }
                                                else
                                                {
                                                    msg = "To Be Issued by";
                                                }
                                            }
                                            else
                                            {
                                                if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                                                {
                                                    msg = "待批.";
                                                }
                                                else
                                                {
                                                    msg = "Waiting for Approval by";
                                                }
                                            }

                                            html += "<div class=\"StatusIcon Pending\">";
                                            html += "<span class=\"spanIcon\">" + msg + "<br />";
                                            html += dtflow.Rows[i]["Approver"].ToString();
                                            html += "</span><b class=\"bIcon bIcon1\"></b>";
                                            html += "</div>";
                                            countdiv++;
                                        }
                                        else if (dtflow.Rows[i]["Status"].ToString() == "2")
                                        {
                                            string msg = "";
                                            if (dtflow.Rows[i]["FlowFn"].ToString().ToLower() == "verifier")
                                            {
                                                if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                                                {
                                                    msg = "已查.";
                                                }
                                                else
                                                {
                                                    msg = "Verified by";
                                                }
                                            }
                                            else if (dtflow.Rows[i]["FlowFn"].ToString().ToLower() == "issuer")
                                            {
                                                if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                                                {
                                                    msg = "已发放.";
                                                }
                                                else
                                                {
                                                    msg = "Issued by";
                                                }
                                            }
                                            else
                                            {
                                                if (Request.Cookies["lang"] != null && Request.Cookies["lang"].Value.ToLower() == "zh-cn")
                                                {
                                                    msg = "已批.";
                                                }
                                                else
                                                {
                                                    msg = "Approved by";
                                                }
                                            }

                                            html += "<div class=\"StatusIcon Approve\">";
                                            html += "<span class=\"spanIcon\">" + msg + "<br />";
                                            html += dtflow.Rows[i]["Approver"].ToString();
                                            html += dtflow.Rows[i]["ApproveDate"].ToString() == "" ? "" : "<br />" + Convert.ToDateTime(dtflow.Rows[i]["ApproveDate"].ToString()).ToString("yyyy/MM/dd");
                                            html += "</span><b class=\"bIcon bIcon1\"></b>";
                                            html += "</div>";
                                            countdiv++;
                                        }
                                        else if (dtflow.Rows[i]["Status"].ToString() == "3")
                                        {
                                            html += "<div class=\"StatusIcon Reject\">";
                                            html += "<span class=\"spanIcon\">" + status5 + "<br />";
                                            html += dtflow.Rows[i]["Approver"].ToString();
                                            html += dtflow.Rows[i]["ApproveDate"].ToString() == "" ? "" : "<br />" + Convert.ToDateTime(dtflow.Rows[i]["ApproveDate"].ToString()).ToString("yyyy/MM/dd");
                                            html += "</span><b class=\"bIcon bIcon1\"></b>";
                                            html += "</div>";
                                            countdiv++;
                                        }
                                        if (dtflow.Rows[i]["Active"].ToString() == "2")
                                        {
                                            html += "<div class=\"StatusIcon Complete\">";
                                            html += "<span class=\"spanIcon\">" + status6;
                                            html += "</span><b class=\"bIcon bIcon1\"></b>";
                                            html += "</div>";
                                            countdiv++;
                                            break;
                                        }
                                    }
                                }
                                if (countdiv > 7)
                                {
                                    int width = countdiv * 110;
                                    html = "'<div style=\"width:" + width.ToString() + "px\">" + html;
                                }
                                else
                                {
                                    html = "'<div>" + html;
                                }
                                html += "</div>'";
                                X.AddScript("setFlow(" + html + ");Container2.show();");
                            }

                            if (Request.QueryString["Status"].ToString()!="1")
                            {
                                X.AddScript("Button1.disable();Button2.disable();Button3.disable();");
                            }
                            if (Request.QueryString["ID"] != null)
                            {
                                string Status = Request.QueryString["ID"].ToString();
                                System.Text.RegularExpressions.Regex reg2 = new System.Text.RegularExpressions.Regex(@"^\d*$");
                                if (reg2.IsMatch(Status))
                                {
                                    //string lingsql = "select * from V_Eflow_ETravel where FlowID=" + Status;
                                    //DataTable dtlink = new DataTable();
                                    //dtlink = dbc.GetData("eReimbursement", lingsql);
                                    //if (dtlink != null && dtlink.Rows.Count == 1)
                                    //{
                                    //    if (Request.Cookies.Get("eReimUserID").Value != dtlink.Rows[0]["ApproverID"].ToString())
                                    //    {
                                    //        ErrorHandle("No right."); return;
                                    //    }
                                    //    txtRemark.Text = dtlink.Rows[0]["RemarkFlow"].ToString();
                                    //}
                                    //string sqlr = "select * from V_Eflow_ETravel where [Type]='T' and RequestID=(select RequestID from V_Eflow_ETravel where FlowID=" + Status + " and Type='T') order by cast(Step as int)";
                                    //DataTable dtr = new DataTable();
                                    //dtr = dbc.GetData("eReimbursement", sqlr);
                                    //if (dtr != null)
                                    //{
                                    //    string remark = "";
                                    //    for (int i = 0; i < dtr.Rows.Count; i++)
                                    //    {
                                    //        if (dtr.Rows[i]["FlowID"].ToString() == Status)
                                    //        {
                                    //            if (Request.Cookies.Get("eReimUserID").Value != dtr.Rows[i]["ApproverID"].ToString())
                                    //            {
                                    //                ErrorHandle("No right.");
                                    //                X.AddScript("Button1.disable();Button2.disable();Button3.disable();");
                                    //                return;
                                    //            }
                                    //            txtRemark.Text = dtr.Rows[i]["RemarkFlow"].ToString();
                                    //            break;
                                    //        }
                                    //        else if (dtr.Rows[i]["RemarkFlow"].ToString().Trim().Length!= 0)
                                    //        {
                                    //            remark += dtr.Rows[i]["Approver"].ToString() + ":" + dtr.Rows[i]["RemarkFlow"].ToString() + " ";
                                    //        }
                                    //    }
                                    //    if (remark.Length == 0)
                                    //    {
                                    //        Label8.Text = "";
                                    //    }
                                    //    else
                                    //    {
                                    //        LabelRemarkFlow.Text = remark;
                                    //    }
                                    //}
                                    if (dtflow != null)
                                    {
                                        //151029,如果登陆人是历史审批人,则有权查看
                                        if (dtflow.Select("ApproverID='" + Request.Cookies.Get("eReimUserID").Value + "'").Count() > 0)
                                        {
                                            string remark = "";
                                            for (int i = 0; i < dtflow.Rows.Count; i++)
                                            {
                                                if (dtflow.Rows[i]["FlowID"].ToString() == Status)
                                                {
                                                    if (dtflow.Rows[i]["Active"].ToString() == "1")
                                                    {
                                                        if (Request.Cookies.Get("eReimUserID").Value == dtflow.Rows[i]["ApproverID"].ToString())
                                                        {
                                                            //txtRemark.Text = dtflow.Rows[i]["RemarkFlow"].ToString();
                                                            //if (dtflow.Rows[i]["RemarkFlow"].ToString().Trim().Length != 0)
                                                            //{
                                                            //    remark += dtflow.Rows[i]["Approver"].ToString() + ":" + dtflow.Rows[i]["RemarkFlow"].ToString() + " ";
                                                            //}
                                                            //X.AddScript("Button1.enable();Button2.enable();Button3.enable();");
                                                            if (dtflow.Rows[0]["OnBehalfPersonID"].ToString() == "")
                                                            {
                                                                X.AddScript("Button1.enable();Button2.enable();Button3.enable();");
                                                            }
                                                            else
                                                            {
                                                                X.AddScript("Button1.enable();Button2.enable();Button3.disable();");
                                                            }
                                                        }
                                                        else
                                                        {
                                                            X.AddScript("Button1.disable();Button2.disable();Button3.disable();");
                                                        }
                                                    }
                                                    else
                                                    {
                                                        txtRemark.Text = dtflow.Rows[i]["RemarkFlow"].ToString();
                                                        if (dtflow.Rows[i]["RemarkFlow"].ToString().Trim().Length != 0)
                                                        {
                                                            remark += dtflow.Rows[i]["Approver"].ToString() + ":" + dtflow.Rows[i]["RemarkFlow"].ToString() + " ";
                                                        }
                                                        X.AddScript("Button1.disable();Button2.disable();Button3.disable();");
                                                    }
                                                }
                                                else
                                                {
                                                    if (dtflow.Rows[i]["RemarkFlow"].ToString().Trim().Length != 0)
                                                    {
                                                        remark += dtflow.Rows[i]["Approver"].ToString() + ":" + dtflow.Rows[i]["RemarkFlow"].ToString() + " ";
                                                    }
                                                }
                                            }
                                            if (remark.Length == 0)
                                            {
                                                Label2.Text = "";
                                            }
                                            else
                                            {
                                                LabelRemarkFlow.Text = remark;
                                            }
                                        }
                                        else
                                        {
                                            ErrorHandle("No right.");
                                            X.AddScript("Button1.disable();Button2.disable();Button3.disable();");
                                            return;
                                        }

                                    }
                                }
                            }
                            hdTravelRequestID.Value = Request.QueryString["RequestID"].ToString();
                        }
                    }
                }
            }
        }