奖惩单-cs

//修改奖惩生效日期,将本月26号改至次月1号@alina 2014-12-30
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Text;
using System.IO;
using System.Data.OracleClient;
using System.Data.OleDb;
using System.Data.Odbc;
using System.Configuration;

using tw.com.dsc.dscDotNet.kernelBasePage;
using tw.com.dsc.dscDotNet.common;
using tw.com.dsc.dscDotNet.db;
using tw.com.dsc.dscDotNet.dscData;
using tw.com.dsc.dscDotNet.dscWeb;
using tw.com.dsc.dscDotNet.dscWebControls;
using tw.com.dsc.dscDotNet.grid;
using tw.com.dsc.dscDotNet.tool;
using tw.com.dsc.dscDotNet.util;

namespace tw.com.dsc.easyflowDotNet.forms
{
        /// <summary>
        /// HRF008 的摘要描述。
        /// </summary>
        public partial class HRF008 : tw.com.dsc.easyflowDotNet.kernelBasePage.EFBasePage
        {
            DBCommand m_dbCommand = DscDBData.GetDataDBCommand();
            public string sqlHRConn = ConfigurationManager.ConnectionStrings["HRSqlServer"].ConnectionString; //连接HR的数据库连接字符串
                #region Page_Load
                /// <summary>
                /// Page_Load
                /// </summary>
                protected override void Page_Load(object sender, EventArgs e)
                {
                        base.Page_Load(sender, e);
                        AjaxPro.Utility.RegisterTypeForAjax(typeof(HRF008));
                        UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
                        string tLanguageType = tClass.Language;

                        //多國語系
                        this.TabStrip1.Items[0].Text = MultiLanguage.GetComment("FD", "HRF008", "TabStrip1", tLanguageType);
                        //this.text1.Title = MultiLanguage.GetComment("FD", "HRF008", "text1", tLanguageType);
            
                        this.Title= MultiLanguage.GetComment("FD","HRF008","lblTitle",this.UserInfo.Language);

                        #region 註冊使用者自訂檢查 Javascript

                        if (base.FormStatus.ToString() == "CREATE")
                        {
                            string tParentScript = base.BtnCreateToolSendForm.Attributes["onclick"].ToString();
                            tParentScript = "if (!CustomerSaveCheck('" + base.FormStatus.ToString() + "')) {return false; }" + tParentScript + "";
                            base.BtnCreateToolSendForm.Attributes.Add("onclick", tParentScript);
                            
                            base.BtnCreateToolSendForm.Attributes["onclick"] = "SetCustomSubject();" + base.BtnCreateToolSendForm.Attributes["onclick"];
                        }
                        else if (base.FormStatus.ToString() == "APPROVE")
                        {
                            string tParentScript = base.BtnApproveToolDecide.Attributes["onclick"].ToString();
                            tParentScript = "if (!CustomerSaveCheck('" + base.FormStatus.ToString() + "')) {return false; }" + tParentScript + "";
                            base.BtnApproveToolDecide.Attributes.Add("onclick", tParentScript);

                            tParentScript = base.BtnApproveToolAgree.Attributes["onclick"].ToString();
                            tParentScript = "if (!CustomerSaveCheck('" + base.FormStatus.ToString() + "')) {return false; }" + tParentScript + "";
                            base.BtnApproveToolAgree.Attributes.Add("onclick", tParentScript);

                            tParentScript = base.BtnApproveToolDone.Attributes["onclick"].ToString();
                            tParentScript = "if (!CustomerSaveCheck('" + base.FormStatus.ToString() + "')) {return false; }" + tParentScript + "";
                            base.BtnApproveToolDone.Attributes.Add("onclick", tParentScript);
                        }

                        #endregion


                        #region 自訂排序
                        
                        #endregion 自訂排序

                        #region 限制修改欄位
                        this.hrf008003.InputEnabled = false;
                        this.hrf008004.InputEnabled = false;
                        this.hrf008005.InputEnabled = false;
                        this.hrf008007.InputEnabled = false;
                        this.hrf008008.InputEnabled = false;
                        this.hrf008009.InputEnabled = false;
                        this.hrf008010.InputEnabled = false;
                        this.hrf008011.InputEnabled = false;
                        this.hrf008012.InputEnabled = false;
                        this.hrf008043.InputEnabled = false;
                        this.hrf008032.InputEnabled = false;
                        this.hrf008033.InputEnabled = false;
                        #endregion 限制修改欄位

                        #region 增加初始設定
                        if (!IsPostBack)
                        {
                            BindData();
                        }
                        #endregion 增加初始設定
                }
                #endregion
            #region  打开页面时,绑定数据
                          public void BindData()
                           {
                               string str = checkt(hrf008006.Text);
                               hrf008036.Text = str;

                           }

            #endregion
            

                #region Web Form 設計工具產生的程式碼
                /// <summary>
                /// OnInit
                /// </summary>
                override protected void OnInit(EventArgs e)
                {
                        //
                        // CODEGEN: 此為 ASP.NET Web Form 設計工具所需的呼叫。
                        //
                        base.registChildObj(Page);
                        base.OnInit(e);
                }
                #endregion

                #region PreRender做的事
                /// <summary>
                /// Page_Prender
                /// </summary>
                protected override void Page_Prender(object sender, EventArgs e)
                {
                        string tReturnValue = "";
                        string tSQL = "";
                        



                        
                        base.Page_Prender(sender, e);

                        #region 自訂下拉選項
                        
                        #endregion
                }
                #endregion

                #region setBasicInfo , 設定表單的基本屬性
                /// <summary>
                /// 設定表單的基本屬性 (setBasicInfo)
                /// </summary>
                protected override void setBasicInfo()
                {
                        // 作業代號
                        this.TaskId = "HRF008";
                        // 表單代號
                        this.formID = "HRF008";
                        // 有幾個單身 ex.0-->單檔, 1-->雙檔(一個單身), 2-->雙檔(二個單身)
                        this.detailDepth = 0;
                }
                #endregion

                #region 屬性 (Property) 用來 Instance EasyFlow 流程引擎所需的元件
                //屬性 (Property), 基本上應該只會用到 get {} 方法, set {} 方法寫來備用的!
                private string _strProcID = null;
                private string _strConn = "";

                //EasyFlow 流程引擎元件宣告
                private PublicUTIL.DBProcessor _Processor = null;       //DB Transaction
                private EF2KWeb.Class1 _objWeb = null;
                private EF2KPublic.DataBase _objDB = null;
                private EF2KEngine.Class1 _objRE = null;

                /// <summary>
                /// get ProcessID
                /// </summary>
                protected string m_strProcID
                {
                    get
                    {
                        if (_strProcID == null)
                        {
                            _strProcID = m_objWeb.Init("Administrator", "EF.NET", 0);
                        }
                        return _strProcID;
                    }
                }

                /// <summary>
                /// get/set EF2KWeb 物件實例
                /// </summary>
                protected EF2KWeb.Class1 m_objWeb
                {
                    get
                    {
                        if (_objWeb == null)
                        {
                            _objWeb = new EF2KWeb.Class1();
                        }
                        return _objWeb;
                    }
                    set
                    {
                        if (_objWeb == value)
                            return;
                        _objWeb = value;
                    }
                }

                /// <summary>
                /// get/set EF2KPublic 物件實例
                /// </summary>
                protected EF2KPublic.DataBase m_objDB
                {
                    get
                    {
                        if (_objDB == null)
                        {
                            _objDB = new EF2KPublic.DataBase(m_strProcID, m_processor);
                        }
                        return _objDB;
                    }
                    set
                    {
                        if (_objDB == value)
                        {
                            return;
                        }
                        _objDB = value;
                    }
                }

                /// <summary>
                /// get/set EF2KEngine 物件實例
                /// </summary>
                protected EF2KEngine.Class1 m_objRE
                {
                    get
                    {
                        if (_objRE == null)
                        {
                            _objRE = new EF2KEngine.Class1(m_strProcID, m_processor);
                        }
                        return _objRE;
                    }
                    set
                    {
                        if (_objRE == value)
                        {
                            return;
                        }
                        _objRE = value;
                    }
                }

                /// <summary>
                /// get/set PublicUTIL 物件實例 (DB Transaction)
                /// </summary>
                protected PublicUTIL.DBProcessor m_processor
                {
                    get
                    {
                        if (_Processor == null)
                        {
                            _Processor = new PublicUTIL.DBProcessor(m_strConn);
                        }
                        return _Processor;
                    }
                    set
                    {
                        if (value == null)
                        {
                            return;
                        }
                        _Processor = value;
                    }
                }

                /// <summary>
                /// Connenction String
                /// </summary>
                protected string m_strConn
                {
                    get
                    {
                        if (string.IsNullOrEmpty(_strConn))
                        {
                            DBCommand dbCommand = DscDBData.GetDataDBCommand();
                            _strConn = dbCommand.DBAccess.ConnString.ToString().Trim();
                            dbCommand = null;
                        }
                        return _strConn;
                    }
                    set
                    {
                        if (value == null)
                        {
                            return;
                        }
                        _strConn = value;
                    }
                }
                #endregion

                #region AjaxMethod()
                #region GetEmployeeId
                /// <summary>
                /// 取得員工 ID
                /// </summary>
                /// <returns>回傳員工 ID(string)</returns>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string ajaxGetEmployeeId()
                {
                        return this.UserInfo.EmployeeId.ToString().Trim();
                }
                #endregion

                #region GetLoginName
                /// <summary>
                /// 取得登入者員工姓名
                /// </summary>
                /// <returns>回傳員工姓名(string)</returns>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string ajaxGetLoginName()
                {
                        return this.UserInfo.LoginName.ToString().Trim();
                }
                #endregion

                #region GetAgentID
                /// <summary>
                /// 取得代理人員工 ID
                /// </summary>
                /// <returns>回傳代理人員工 ID(string)</returns>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string ajaxGetAgentID()
                {
                        return base.StrAgentID.ToString().Trim();
                }
                #endregion

                #region GetAgentName
                /// <summary>
                /// 取得代理人姓名
                /// </summary>
                /// <returns>回傳代理人姓名(string)</returns>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string ajaxGetAgentName()
                {
                        string tAgentName = "";
                        UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
                        string mCompany = tClass.Company;
                        DBCommand dbCommand = DscDBData.GetDataDBCommand();
                        DataTable tDt = new DataTable();
                        StringBuilder tSql = new StringBuilder();
                        tSql.AppendFormat("SELECT resak002 FROM {0}..resak AS resak ", mCompany);
                        tSql.AppendFormat("WHERE resak001 = '{0}' ", base.StrAgentID.ToString().Trim());
                        tDt = dbCommand.Query(tSql.ToString());
                        if (tDt.Rows.Count > 0)
                        {
                                tAgentName = tDt.Rows[0]["resak002"].ToString().Trim();
                        }
                        return tAgentName;
                }
                #endregion

                #region GetDepartmentId
                /// <summary>
                /// 取得部門 ID
                /// </summary>
                /// <returns>回傳部門 ID(string)</returns>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string ajaxGetDepartmentId()
                {
                        string tDeptID = "";
                    UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
                    tDeptID = m_objRE.FindEmplDeptID(tClass.EmployeeId.ToString().Trim(), m_strProcID);
                    return tDeptID;
                }
                #endregion

                #region GetDepartmentName
                /// <summary>
                /// 取得部門名稱
                /// </summary>
                /// <returns>回傳部門名稱(string)</returns>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string ajaxGetDepartmentName()
                {
                        string tDeptName = "";
                string tDeptID = "";
                UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
                tDeptID = m_objRE.FindEmplDeptID(tClass.EmployeeId.ToString().Trim(), m_strProcID);
                tDeptName = m_objRE.FindDeptName(tDeptID, m_strProcID);
                return tDeptName;
                }
                #endregion

                #region GetEFDBFieldValue
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string ajaxGetEFDBFieldValue(string pSql, string pFieldName)
                {
                        string tResult = "";
                        UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
                        string mCompany = tClass.Company;
                        DBCommand dbCommand = DscDBData.GetDataDBCommand();
                        DataTable tDt = new DataTable();
                        string tSql = pSql;
                        tDt = dbCommand.Query(tSql);
                        if (tDt.Rows.Count > 0)
                        {
                                tResult = tDt.Rows[0]["\""+pFieldName+"\""].ToString().Trim();
                        }
                        return tResult;
                }
                #endregion

                #region GetOtherDBFieldValue
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string ajaxGetOtherDBFieldValue(string pDBType,string pSql,string pConn,string pFieldName)
                {
                        string tResult = "";
                        DataSet tDs = new DataSet();
                        if (pDBType == "SqlServer")
                        {
                                SqlConnection tDbConnection = new SqlConnection(pConn);
                                tDbConnection.Open();
                                SqlDataAdapter tAdpt = new SqlDataAdapter(pSql, pConn);
                                tAdpt.Fill(tDs, "Result");
                        }
                        else if (pDBType == "Oracle")
                        {
                                OracleConnection tDbConnection = new OracleConnection (pConn);
                                tDbConnection.Open();
                                OracleDataAdapter tAdpt = new OracleDataAdapter (pSql, pConn);
                                tAdpt.Fill(tDs, "Result");
                        }
                        else if (pDBType == "OleDb")
                        {
                                OleDbConnection tDbConnection = new OleDbConnection (pConn);
                                tDbConnection.Open();
                                OleDbDataAdapter tAdpt = new OleDbDataAdapter (pSql, pConn);
                                tAdpt.Fill(tDs, "Result");
                        }
                        else if (pDBType == "Odbc")
                        {
                                OdbcConnection tDbConnection = new OdbcConnection (pConn);
                                tDbConnection.Open();
                                OdbcDataAdapter tAdpt = new OdbcDataAdapter (pSql, pConn);
                                tAdpt.Fill(tDs, "Result");
                        }

                        DataTable tDt = tDs.Tables["Result"];
                        if (tDt != null)
                        {
                                if (tDt.Rows.Count > 0)
                                {
                                        tResult = tDt.Rows[0]["\""+pFieldName+"\""].ToString().Trim();
                                }
                        }
                        return tResult;
                }
                #endregion
                #endregion
                #region 自訂Ajax
                //得到入职日
                //<param name="">工号</param>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string getname(string code)
                {
                    string name = "";
                    try
                    {
                        string sql = "select CONVERT(VARCHAR(10),Date,120)Date from HR.HRMDB.dbo.Employee where Code='" + code + "'";
                        DataTable dt = new DataTable();
                        dt = m_dbCommand.Query(sql);
                        name = dt.Rows[0]["Date"].ToString();
                        //name = code;
                        return name;
                    }
                    catch (Exception ex)
                    {
                        Response.Write(ex.Message);
                        name = "";
                        return name;
                    }
                }

                //得到奖励条例
                //<param code1="">编号1</param>
                //<param code2="">编号2</param>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string getreward1(string code1,string code2)
                {
                    string remark = "";
                    string code = "9." + code1.Trim();
                    string name = code2.Trim();
                    try
                    {
                        if (code1.Trim() == "" || code2.Trim() == "")
                        {                       
                        }
                        else
                        {
                            string sql = "select Remark from HR.HRMDB.dbo.EmployeeRewardsItem where Code='" + code + "' and Name='" + name + "' and Flag='1'";
                            DataTable dt = new DataTable();
                            dt = m_dbCommand.Query(sql);
                            if (dt.Rows.Count > 0)
                            {
                                remark = dt.Rows[0]["Remark"].ToString();
                            }
                            else
                            {
                                remark = "无此奖励条款编号,请重新填写!!";
                            }
                        }
                        return remark;
                    }
                    catch (Exception ex)
                    {
                        Response.Write(ex.Message);
                        remark = "";
                        return remark;
                    }
                }

                //得到惩罚条例
                //<param code1="">编号1</param>
                //<param code2="">编号2</param>
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string getreward2(string code1, string code2)
                {
                    string remark = "";
                    string code = "10." + code1.Trim();
                    string name = code2.Trim();
                    try
                    {
                        if (code1.Trim() == "" || code2.Trim() == "")
                        {
                        }
                        else
                        {
                            string sql = "select Remark from HR.HRMDB.dbo.EmployeeRewardsItem where Code='" + code + "' and Name='" + name + "' and Flag='1'";
                            DataTable dt = new DataTable();
                            dt = m_dbCommand.Query(sql);
                            if (dt.Rows.Count > 0)
                            {
                                remark = dt.Rows[0]["Remark"].ToString();
                            }
                            else
                            {
                                remark = "无此惩罚条款编号,请重新填写!!";
                            }
                        }
                        return remark;
                    }
                    catch (Exception ex)
                    {
                        Response.Write(ex.Message);
                        remark = "";
                        return remark;
                    }
                }

                //员工本年度奖惩记录
                [AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.ReadWrite)]
                public string checkt(string code)
                {
                    StringBuilder str = new StringBuilder();
                    string err = "";
                    string btime = DateTime.Now.Year.ToString() + "-01-01";
                    string etime = DateTime.Now.AddYears(1).Year.ToString() + "-01-01";
                    string strsql = " select Deptname, Code,User_name,Ondate, Offdate,Type_dg,Type_kdg,Type_xg,Type_jg,Type_bgg,Type_bxg,Type_bjg,Type_jy " +
                  "  from  " +

                  " (select c.Name as Deptname " +
                  " ,b.Code as Code,b.CnName as User_name  " +
                  " ,CONVERT(VARCHAR(10),b.JobDate,111) as Ondate  " +

                  " ,(CASE When b.LastWorkDate < '9999-12-31' Then  CONVERT(VARCHAR(10),b.LastWorkDate,111) Else  Null End )  as Offdate  " +

                  " ,(CASE When b.LastWorkDate < '9999-12-31' Then 2  Else 1  End )  as Jobstatus  " +

                  " , sum(case when d.Name= N'大过' then a.Times  else 0 end ) as Type_dg   " +
                  " , sum(case when d.Name= N'旷工大过' then a.Times  else 0 end ) as Type_kdg   " +
                  " , sum(case when d.Name= N'小过' then a.Times  else 0 end ) as Type_xg  " +
                  " , sum(case when d.Name= N'警告' then a.Times  else 0 end ) as Type_jg  " +
                  " , sum(case when d.Name= N'大功' then a.Times  else 0 end ) as Type_bgg  " +
                  " , sum(case when d.Name= N'小功' then a.Times  else 0 end ) as Type_bxg  " +
                  " , sum(case when d.Name= N'嘉奖' then a.Times  else 0 end ) as Type_bjg   " +
                  " ,  sum(case when d.Name= N'违纪解约' then a.Times  else 0 end) as Type_jy " +
                  " from HR.HRMDB.dbo.EmployeeRewards a    " +
                  " left join HR.HRMDB.dbo.Employee b on a.EmployeeId=b.EmployeeId    " +
                  " left join HR.HRMDB.dbo.Department c on c.DepartmentId=b.DepartmentId    " +
                  " left join HR.HRMDB.dbo.EmployeeRewardsItem d on d.EmployeeRewardsItemId=a.EmployeeRewardsItemId    " +
                  " where  b.Code like '%" + code + "%'" +
                  " AND a.InureDate>= '" + btime + "'" +
                  " AND a.InureDate< '" + etime + "'" +
                  " group by  c.Name,b.Code,b.CnName,b.JobDate,b.LastWorkDate )  as qq ";
                    DataTable dt = new DataTable();
                    dt = m_dbCommand.Query(strsql);
                    DataTable dt_new = new DataTable();
                    dt_new.Columns.Add("工号");
                    dt_new.Columns.Add("姓名");
                    dt_new.Columns.Add("大过");
                    dt_new.Columns.Add("旷工大过");
                    dt_new.Columns.Add("小过");
                    dt_new.Columns.Add("警告");
                    dt_new.Columns.Add("大功");
                    dt_new.Columns.Add("小功");
                    dt_new.Columns.Add("嘉奖");
                    dt_new.Columns.Add("违纪解约");
                    if (dt.Rows.Count > 0)
                    {
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            DataRow dr_new = dt_new.NewRow();
                            dr_new["工号"] = dt.Rows[i]["Code"].ToString();
                            dr_new["姓名"] = dt.Rows[i]["User_name"].ToString();
                            dr_new["大过"] = dt.Rows[i]["Type_dg"].ToString();
                            dr_new["旷工大过"] = dt.Rows[i]["Type_kdg"].ToString();
                            dr_new["小过"] = dt.Rows[i]["Type_xg"].ToString();
                            dr_new["警告"] = dt.Rows[i]["Type_jg"].ToString();
                            dr_new["大功"] = dt.Rows[i]["Type_bgg"].ToString();
                            dr_new["小功"] = dt.Rows[i]["Type_bxg"].ToString();
                            dr_new["嘉奖"] = dt.Rows[i]["Type_bjg"].ToString();
                            dr_new["违纪解约"] = dt.Rows[i]["Type_jy"].ToString();
                            dt_new.Rows.Add(dr_new);
                            //str.Append("人员本年度已生效的奖惩记录:");
                            //str.Append("<table  border=\"1\">");
                            //str.Append(" <tr>");
                            //for (int j = 0; j < dt_new.Columns.Count; j++)
                            //{
                            //    str.Append("<td>");
                            //    str.Append(dt_new.Columns[j].ColumnName.ToString());
                            //    str.Append("</td>");
                            //}
                            //str.Append(" </tr>");
                            //for (int t = 0; t < dt_new.Rows.Count; t++)
                            //{
                            //    str.Append("<tr>");
                            //    //列的循环,把内容填进来
                            //    for (int k = 0; k < dt_new.Columns.Count; k++)
                            //    {
                            //        str.Append("<td>");
                            //        str.Append(dt_new.Rows[t][k].ToString());
                            //        str.Append("</td>");
                            //    }
                            //    str.Append(" </tr>");
                            //}
                            for (int j = 0; j < dt_new.Columns.Count; j++)
                            {
                                str.Append(dt_new.Columns[j].ColumnName.ToString());
                                for (int t = 0; t < dt_new.Rows.Count; t++)
                                {
                                    str.Append(dt_new.Rows[t][j].ToString());
                                    str.Append(";");
                                }

                            }
                        }
                    }
                    else
                    {
                        str.Append("该人员本年度无奖惩记录");
                    }
                 
                    return str.ToString();

                }
                #endregion 自訂Ajax

                #region settingClientFunction , 註冊onclick、onblur、onchange事件
                /// <summary>
                /// 註冊onclick、onblur、onchange事件
                /// </summary>
                protected override void settingClientFunction()
                {
                    hrf008006.Attributes.Add("onblur", "check()");
                    hrf008006.Attributes.Add("onclick", "check()");
                    hrf008006.Attributes.Add("onchange", "check()");
                    hrf008006.Attributes.Add("onkeydown", "check()");

                    hrf008017.Attributes.Add("onblur", "check1()");
                    hrf008017.Attributes.Add("onclick", "check1()");
                    hrf008017.Attributes.Add("onchange", "check1()");
                    hrf008017.Attributes.Add("onkeydown", "check1()");
                    hrf008017.Attributes.Add("onkeyup", "check1()");

                    hrf008020.Attributes.Add("onblur", "check2()");
                    hrf008020.Attributes.Add("onclick", "check2()");
                    hrf008020.Attributes.Add("onchange", "check2()");
                    hrf008020.Attributes.Add("onkeydown", "check2()");
                    hrf008020.Attributes.Add("onkeyup", "check2()");

                    hrf008006.HtmImg.Attributes.Add("onclick", MIMJUtil.getClickParams("MasterPage_MasterPageContent_hrf008006_btn", "MasterPage_MasterPageContent_hrf008006_txt", "S"));
                    hrf008006.TxtInput.Attributes.Add("onblur", MIMJUtil.getBlurParams("MasterPage_MasterPageContent_hrf008006_txt", "hrf008006_人员信息",
                        "MasterPage_MasterPageContent_hrf008006_txt"));
                    hrf008006.TxtInput.Attributes.Add("onchange", "AddtoHash('MasterPage_MasterPageContent_hrf008006_txt')");

                }//settingClientFunction結尾

                /// <summary>
                /// %%必填%%
                /// </summary>
                /// <param name="pMiMjManager"></param>
                protected override void buildMiMjManager(Hashtable pMiMjManager)
                {
                        //IsStoredMIMJ
if ( FormStatus == EFFormStatus.CREATE ) {

}
                }
                #endregion

                #region SetDefaultValue , 設定表單欄位的初始值
                protected override void SetDefaultValue(Hashtable defalutHash)
                {

                    defalutHash.Add("hrf008001", this.formID);
                    defalutHash.Add("hrf008002", this.SheetNo);
                    defalutHash.Add("hrf008005", DateTime.Now.ToString("yyyy-MM-dd")); //申请日期
                    defalutHash.Add("hrf008003", this.UserInfo.EmployeeId); //填单工号
                    defalutHash.Add("hrf008004", this.UserInfo.LoginName); //填单姓名

                    defalutHash.Add("hrf008008", this.UserInfo.DepartmentId); //部门ID
                    defalutHash.Add("hrf008009", this.UserInfo.DepartmentName);  //部门名称

                    defalutHash.Add("hrf008006", this.UserInfo.EmployeeId); //申请工号
                    defalutHash.Add("hrf008007", this.UserInfo.LoginName); //申请姓名
                    defalutHash.Add("hrf008027", "0"); //
                    defalutHash.Add("hrf008029", "0"); //
                    defalutHash.Add("hrf008031", "0"); //
                    defalutHash.Add("hrf008038", "0"); //
                    defalutHash.Add("hrf008040", "0"); //
                    defalutHash.Add("hrf008042", "0"); //

                    //取登录人在HR中的职位代号
                    string strEmployeeId = this.UserInfo.EmployeeId;
                    string strSql = " select B.Code as JobCode,B.JobId as JobId,B.Name as JobName  from Employee A " +
                               " left join Job B on B.JobId = A.JobId" +
                               " where A.Code='" + strEmployeeId + "'";
                    string strJobId = createSQLSERVERDataTable(strSql, sqlHRConn, "JobCode", "JobName");
                    defalutHash.Add("hrf008010", strJobId.Split('Φ')[0].ToString());//职等
                    defalutHash.Add("hrf008011", strJobId.Split('Φ')[1].ToString());//职称
                    string strSql1 = " select convert(varchar(10),JobDate,120)JobDate,Code  from Employee  " +
                             " where Code='" + strEmployeeId + "'";
                    string strJobdate = createSQLSERVERDataTable(strSql1, sqlHRConn, "JobDate", "Code");
                    defalutHash.Add("hrf008012", strJobdate.Split('Φ')[0].ToString());//入职日
                    //判断生效日期
                    double day = 0;
                    double hour = 0;
                    double minute = 0;
                    double month = 0;
                    string sxdate = "";
                    month = double.Parse(DateTime.Now.Month.ToString());
                    day = double.Parse(DateTime.Now.Day.ToString());
                    hour = double.Parse(DateTime.Now.Hour.ToString());
                    minute = double.Parse(DateTime.Now.Minute.ToString());
                    if (day > 1)
                    {
                        sxdate = DateTime.Now.ToString("yyyy-MM") + "-01";
                    }
                    if (day == 1)
                    {
                        if (hour < 20)
                        {
                            //sxdate = DateTime.Now.ToString("yyyy-MM") + "-01";
                            if (month > 1)
                            {
                                sxdate = DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01";
                            }
                            else
                            {
                                sxdate = DateTime.Now.AddYears(-1).ToString("yyyy") + "-12-01";
                            }
                        }
                        if (hour == 20)
                        {
                            if (minute == 0)
                            {
                                //sxdate = DateTime.Now.ToString("yyyy-MM") + "-01";
                                if (month > 1)
                                {
                                    sxdate = DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01";
                                }
                                else
                                {
                                    sxdate = DateTime.Now.AddYears(-1).ToString("yyyy") + "-12-01";
                                }
                            }
                            else
                            {
                               
                                    sxdate = DateTime.Now.ToString("yyyy-MM") + "-01";
                            }
                        }
                        if (hour > 20)
                        {
                            sxdate = DateTime.Now.ToString("yyyy-MM") + "-01";
                        }
                        
                    }
                    defalutHash.Add("hrf008043", sxdate); //生效日期

                }

                //草稿儲存後要將主旨清除
                protected override void AfterCreateToolSaveForm()
                {
                    base.TxtCreateToolSubject.Text = String.Empty;
                }
                
                #endregion

                #region DB 相關 Method
                #region 取得EasyFlow資料庫欄位(1欄位)
                /// <summary>
                /// 取得EasyFlow資料庫欄位(1欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pValue">欄位 ID</param>
                /// <returns>欄位值</returns>
                public string getEasyFlowDataFieldValue(string pSQLString,string pValue)
                {
                    string tResult = "";
                    try
                    {
                                UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
                                DBCommand dbCommand = DscDBData.GetDataDBCommand();
                                //2010/12/27:3.2.1.15:hiro:Q00-20101227002:修正下拉選單預設值中包含「+」、「-」字元,無法新增表單↓
                                //pSQLString = pSQLString.ToLower().Replace("from", "from " + tClass.Company.ToString().Trim() + "..");
                                bool bHaveTwinSpace = true;
                                while(bHaveTwinSpace){
                                        if(pSQLString.IndexOf("  ")!=-1 || pSQLString.IndexOf("\r\n")!=-1){
                                                pSQLString=pSQLString.Replace("\r\n"," ").Replace("  "," ");
                                        }
                                        else{
                                                bHaveTwinSpace=false;
                                        }
                                }
                                int intFromPosition = pSQLString.ToLower().IndexOf("from");
                                pSQLString = pSQLString.Substring(0, intFromPosition) + "from " + tClass.Company.ToString().Trim() + ".." +pSQLString.Substring(intFromPosition+5);
                                //2010/12/27:3.2.1.15:hiro:Q00-20101227002:修正下拉選單預設值中包含「+」、「-」字元,無法新增表單↑
                                DataTable tDt = dbCommand.Query(pSQLString);
                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        tResult = tDt.Rows[0]["" + pValue + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得EasyFlow資料庫欄位(2欄位)
                /// <summary>
                /// 取得EasyFlow資料庫欄位(2欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pValue">欄位 ID</param>
                /// <param name="pText">欄位 ID</param>
                /// <returns>欄位值(以 § 分隔)</returns>
                public string createEasyFlowDataTable(string pSQLString, string pValue, string pText)
                {
                    string tResult = "";
                    try
                    {
                                UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
                                DBCommand dbCommand = DscDBData.GetDataDBCommand();
                                //2010/12/27:3.2.1.15:hiro:Q00-20101227002:修正下拉選單預設值中包含「+」、「-」字元,無法新增表單↓
                                //pSQLString = pSQLString.ToLower().Replace("from ", "from " + tClass.Company.ToString().Trim() + "..");
                                bool bHaveTwinSpace = true;
                                while(bHaveTwinSpace){
                                        if(pSQLString.IndexOf("  ")!=-1 || pSQLString.IndexOf("\r\n")!=-1){
                                                pSQLString=pSQLString.Replace("\r\n"," ").Replace("  "," ");
                                        }
                                        else{
                                                bHaveTwinSpace=false;
                                        }
                                }
                                int intFromPosition = pSQLString.ToLower().IndexOf("from");
                                pSQLString = pSQLString.Substring(0, intFromPosition) + "from " + tClass.Company.ToString().Trim() + ".." +pSQLString.Substring(intFromPosition+5);
                                //2010/12/27:3.2.1.15:hiro:Q00-20101227002:修正下拉選單預設值中包含「+」、「-」字元,無法新增表單↑

                                DataTable tDt = dbCommand.Query(pSQLString);
                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        if (i != tDt.Rows.Count - 1)
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim() + "§";
                                        else
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得EasyFlow資料庫欄位自訂連線字串(1欄位)
                /// <summary>
                /// 取得EasyFlow資料庫欄位自訂連線字串(1欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pConn">連線字串</param>
                /// <param name="pValue">欄位 ID</param>
                /// <returns>欄位值</returns>
                public string getSQLSERVERDataField(string pSQLString, string pConn, string pValue)
                {
                    string tResult = "";
                    try
                    {
                                DataSet tDs = new DataSet();
                                SqlConnection tDbConnection = new SqlConnection(pConn);//來源資料庫連線資訊
                                tDbConnection.Open();
                                SqlDataAdapter tAdpt = new SqlDataAdapter(pSQLString, pConn);//來源資料表配接器
                                tAdpt.Fill(tDs, "Result");
                                DataTable tDt = tDs.Tables["Result"];//離線來源資料"表"生出
                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        tResult = tDt.Rows[0]["" + pValue + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得EasyFlow資料庫欄位自訂連線字串(2欄位)
                /// <summary>
                /// 取得EasyFlow資料庫欄位自訂連線字串(2欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pConn">連線字串</param>
                /// <param name="pValue">欄位 ID</param>
                /// <param name="pText">欄位 ID</param>
                /// <returns>欄位值(以 § 分隔)</returns>
                public string createSQLSERVERDataTable(string pSQLString, string pConn, string pValue, string pText)
                {
                    string tResult = "";
                    try
                    {
                                DataSet tDs = new DataSet();
                                SqlConnection tDbConnection = new SqlConnection(pConn);//來源資料庫連線資訊
                                tDbConnection.Open();
                                SqlDataAdapter tAdpt = new SqlDataAdapter(pSQLString, pConn);//來源資料表配接器
                                tAdpt.Fill(tDs, "Result");
                                DataTable tDt = tDs.Tables["Result"];//離線來源資料"表"生出

                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        if (i != tDt.Rows.Count - 1)
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim() + "§";
                                        else
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得Oracle資料庫(1欄位)
                /// <summary>
                /// 取得Oracle資料庫欄位(1欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pConn">連線字串</param>
                /// <param name="pValue">欄位 ID</param>
                /// <returns>欄位值</returns>
                public string getOracleDataField(string pSQLString, string pConn, string pValue)
                {
                    string tResult = "";
                    try
                    {
                                DataSet tDs = new DataSet();
                                OracleConnection tDbConnection = new OracleConnection(pConn);//來源資料庫連線資訊
                                tDbConnection.Open();
                                OracleDataAdapter tAdpt = new OracleDataAdapter(pSQLString, pConn);//來源資料表配接器
                                tAdpt.Fill(tDs, "Result");
                                DataTable tDt = tDs.Tables["Result"];//離線來源資料"表"生出

                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        tResult = tDt.Rows[0]["" + pValue + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得Oracle資料庫(2欄位)
                /// <summary>
                /// 取得Oracle資料庫欄位(2欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pConn">連線字串</param>
                /// <param name="pValue">欄位 ID</param>
                /// <param name="pText">欄位 ID</param>
                /// <returns>欄位值(以 § 分隔)</returns>
                public string createOracleDataTable(string pSQLString, string pConn, string pValue, string pText)
                {
                    string tResult = "";
                    try
                    {
                                DataSet tDs = new DataSet();
                                OracleConnection tDbConnection = new OracleConnection(pConn);//來源資料庫連線資訊
                                tDbConnection.Open();
                                OracleDataAdapter tAdpt = new OracleDataAdapter(pSQLString, pConn);//來源資料表配接器
                                tAdpt.Fill(tDs, "Result");
                                DataTable tDt = tDs.Tables["Result"];//離線來源資料"表"生出

                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        if (i != tDt.Rows.Count - 1)
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim() + "§";
                                        else
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得Access資料庫欄位(1欄位)
                /// <summary>
                /// 取得Access資料庫欄位(1欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pConn">連線字串</param>
                /// <param name="pValue">欄位 ID</param>
                /// <returns>欄位值</returns>
                public string getAccessDataField(string pSQLString, string pConn, string pValue)
                {
                    string tResult = "";
                    try
                    {
                                DataSet tDs = new DataSet();
                                OleDbConnection tDbConnection = new OleDbConnection(pConn);//來源資料庫連線資訊
                                tDbConnection.Open();
                                OleDbDataAdapter tAdpt = new OleDbDataAdapter(pSQLString, pConn);//來源資料表配接器
                                tAdpt.Fill(tDs, "Result");
                                DataTable tDt = tDs.Tables["Result"];//離線來源資料"表"生出
                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        tResult = tDt.Rows[0]["" + pValue + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得Access資料庫欄位(2欄位)
                /// <summary>
                /// 取得Access資料庫欄位(2欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pConn">連線字串</param>
                /// <param name="pValue">欄位 ID</param>
                /// <param name="pText">欄位 ID</param>
                /// <returns>欄位值(以 § 分隔)</returns>
                public string createAccessDataTable(string pSQLString, string pConn, string pValue, string pText)
                {
                    string tResult = "";
                    try
                    {
                                DataSet tDs = new DataSet();
                                OleDbConnection tDbConnection = new OleDbConnection(pConn);//來源資料庫連線資訊
                                tDbConnection.Open();
                                OleDbDataAdapter tAdpt = new OleDbDataAdapter(pSQLString, pConn);//來源資料表配接器
                                tAdpt.Fill(tDs, "Result");
                                DataTable tDt = tDs.Tables["Result"];//離線來源資料"表"生出

                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        if (i != tDt.Rows.Count - 1)
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim() + "§";
                                        else
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得ODBC資料庫欄位(1欄位)
                /// <summary>
                /// 取得ODBC資料庫欄位(1欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pConn">連線字串</param>
                /// <param name="pValue">欄位 ID</param>
                /// <returns>欄位值</returns>
                public string getODBCDataField(string pSQLString, string pConn, string pValue)
                {
                    string tResult = "";
                    try
                    {
                                DataSet tDs = new DataSet();
                                OdbcConnection tDbConnection = new OdbcConnection(pConn);//來源資料庫連線資訊
                                tDbConnection.Open();
                                OdbcDataAdapter tAdpt = new OdbcDataAdapter(pSQLString, pConn);//來源資料表配接器
                                tAdpt.Fill(tDs, "Result");
                                DataTable tDt = tDs.Tables["Result"];//離線來源資料"表"生出

                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        tResult = tDt.Rows[0]["" + pValue + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion

                #region 取得ODBC資料庫欄位(2欄位)
                /// <summary>
                /// 取得ODBC資料庫欄位(2欄位)
                /// </summary>
                /// <param name="pSQLString">SQL Command</param>
                /// <param name="pConn">連線字串</param>
                /// <param name="pValue">欄位 ID</param>
                /// <param name="pText">欄位 ID</param>
                /// <returns>欄位值(以 § 分隔)</returns>
                public string createODBCDataTable(string pSQLString, string pConn, string pValue, string pText)
                {
                    string tResult = "";
                    try
                    {
                                DataSet tDs = new DataSet();
                                OdbcConnection tDbConnection = new OdbcConnection(pConn);//來源資料庫連線資訊
                                tDbConnection.Open();
                                OdbcDataAdapter tAdpt = new OdbcDataAdapter(pSQLString, pConn);//來源資料表配接器
                                tAdpt.Fill(tDs, "Result");
                                DataTable tDt = tDs.Tables["Result"];//離線來源資料"表"生出

                                if (tDt != null)
                                {
                                    for (int i = 0; i < tDt.Rows.Count; i++)
                                    {
                                        if (i != tDt.Rows.Count - 1)
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim() + "§";
                                        else
                                            tResult += tDt.Rows[i]["" + pValue + ""].ToString().Trim() + "Φ" + tDt.Rows[i]["" + pText + ""].ToString().Trim();
                                    }
                                }
                    }
                    catch (Exception e)
                    {
                    }
                    return tResult;
                }
                #endregion
                #endregion

                #region createSelectItemFromDB 產生下拉式選項的值
                /// <summary>
                /// 產生下拉式選項的值
                /// </summary>
                /// <param name="pReturnValue">要產生的選項字串</param>
                /// <param name="pDDL">DropDownList 控制項 ID</param>
                /// <returns>true=成功; false=失敗</returns>
                public bool createSelectItemFromDB(string pReturnValue, DscDropDownList pDDL)
                {
                    bool tRet = false;
                    string[] temptArray = pReturnValue.Split('§');
                    string[] tArray;
                    string tValue = "";
                    string tText = "";
                    int iCount = temptArray.Length;
                    ListItem tList = null;
                    try
                    {
                                for (int i = 0; i < temptArray.Length; i++)
                                {
                                    tArray = temptArray[i].Split('Φ');
                                    tValue = tArray[0].Trim();  //Value (內存)
                                    tText = tArray[1].Trim();   //Text  (外顯)
                                    if (!string.IsNullOrEmpty(tValue))
                                    {
                                                tList = new ListItem(tText, tValue);
                                                pDDL.Items.Add(tList);
                                    }
                                }
                                tRet = true;
                    }
                    catch (Exception e)
                    {
                                tRet = false;
                    }
                    return tRet;
                }
                #endregion

                #region ReGetCondValue , 設定條件欄位陣列
        
                protected override void ReGetCondValue(object[,] pAryCondValue)
                {
                    string tValue = string.Empty;
                    string tTemp = string.Empty;
                    double tDbl = 0;
                
                    base.ReGetCondValue(pAryCondValue);
                }
        
                #endregion

                #region 重設表單代理人, 表單關係人
        
                //重設表單代理人
                protected override string ReGetAgentID()
                {
                    return base.AryFormProperty.Filler.ToString().Trim();;
                }
        
                //重設表單關係人
                protected override string ReGetParserRoleID()
                {
                    return base.AryFormProperty.Filler.ToString().Trim();;
                }
        
                #endregion

                
                
                
protected override void BeforePrint(ref string pReport, ref string pReportID, ref string pWhere, ref string pOrder, ref string pReportDirectory)
        {
            pReport = "HRF008";
            pReportID = "HRF008_02";//憑證式
            pWhere = "AND (hrf008001='" + this.formID + "') AND (hrf008002='" + this.SheetNo + "')";
            pReportDirectory = "HRF008";
            base.BeforePrint(ref pReportID, ref pWhere, ref pOrder, ref pOrder, ref pReportDirectory);
        }
/// <summary>
/// 审批完成后所作的操作
/// </summary>
protected override void AfterApprove()
{
    //判断是否结案
    if (this.BlnCaseClosed)
    {

        switch (AryFlowProperty.SerialSignResult)
        {
            case "2"://同意
                //dbComment.ExeNonQuery(sql.ToString());//执行SQL语句将数据插入TotalInfo表中
                try
                {
                    //要INSERT的sql语句
                    StringBuilder sql = GetInsertSql(this.formID, this.SheetNo);

                    InsertLog(sql.ToString()); //写Log                           

                    string issucess = getSQLSERVERDataField(sql.ToString(), sqlHRConn, "AttendanceCollectId");

                    Response.Write("<script>alert('数据已经全部送到HR!!!')</script>");
                }
                catch
                {

                }

                break;
        }
    }
}
/// <summary>
/// 把要塞入HR的SQL语句写进来
/// </summary>
/// <param name="sql"></param>
public void InsertLog(string sql)
{
    sql = sql.Replace("'", "''");
    StringBuilder sqlInsert = new StringBuilder();
    sqlInsert.Append("Insert into " + this.UserInfo.Company + "..hrformslog(");
    sqlInsert.Append("hrformslog001,"); //表单代号
    sqlInsert.Append("hrformslog002,");//表单单号
    sqlInsert.Append("hrformslog003,");//登录人
    sqlInsert.Append("hrformslog004,");//时间
    sqlInsert.Append("hrformslog005");//sql语句

    sqlInsert.Append(")values(");

    sqlInsert.Append("N'" + this.formID + "',");
    sqlInsert.Append("N'" + this.SheetNo + "',");
    sqlInsert.Append("N'" + this.UserInfo.LoginId + "',");
    sqlInsert.Append("N'" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',");
    sqlInsert.Append("N'" + sql + "')");

    // this.m_dbCommand.Query(sqlInsert.ToString());

    this.m_dbCommand.ExeNonQuery(sqlInsert.ToString());
}
/// <summary>
/// 根据员工工号,得到employeeid
/// </summary>
/// <param name="Code"></param>
/// <returns></returns>
public string GetEmployeeId(string Code)
{
    string strSql = "";
    strSql = "select EmployeeId,Code from HR.HRMDB.dbo.Employee where Code='" + Code + "'";
    string employeeid = "";
    DataTable dt = new DataTable();
    dt = m_dbCommand.Query(strSql);
    if (dt.Rows.Count > 0)
    {
        employeeid = dt.Rows[0]["EmployeeId"].ToString();
    }
    return employeeid;
}
/// <summary>
/// 根据年月,得到薪资月
/// </summary>
/// <param name="Code"></param>
/// <returns></returns>
public string GetSalaryMonthId(string year, string month)
{
    string strSql = "";
    strSql = " select SalaryMonthId from HR.HRMDB.dbo.SalaryMonth where SalaryYear='" + year + "' and Month='" + month + "'";
    DataTable dt = new DataTable();
    dt = m_dbCommand.Query(strSql);
    string SalaryMonthId = "";
    if (dt.Rows.Count > 0)
    {
        SalaryMonthId = dt.Rows[0]["SalaryMonthId"].ToString();
    }
    return SalaryMonthId;
}

public StringBuilder GetInsertSql(string hrf008001, string hrf008002)
{
    //得到个人奖惩单的表单数据
    string strsql = "";
    strsql = " select * from " + this.UserInfo.Company + "..hrf008 where hrf008001='" + hrf008001 + "' and hrf008002='" + hrf008002 + "'";
    DataTable dt_hrf008 = new DataTable();
    dt_hrf008 = m_dbCommand.Query(strsql);
    string hrf008026 = dt_hrf008.Rows[0]["hrf008026"].ToString();
    string hrf008028 = dt_hrf008.Rows[0]["hrf008028"].ToString();
    string hrf008030 = dt_hrf008.Rows[0]["hrf008030"].ToString();
    string hrf008037 = dt_hrf008.Rows[0]["hrf008037"].ToString();
    string hrf008039 = dt_hrf008.Rows[0]["hrf008039"].ToString();
    string hrf008041 = dt_hrf008.Rows[0]["hrf008041"].ToString();
    string hrf008051 = dt_hrf008.Rows[0]["hrf008051"].ToString();
    string hrf008043 = dt_hrf008.Rows[0]["hrf008043"].ToString();
    string EmployeeId = GetEmployeeId(dt_hrf008.Rows[0]["hrf008006"].ToString());
    string RecordDate = dt_hrf008.Rows[0]["hrf008005"].ToString();
    string IsSalary = "1";
    //string InureDate = DateTime.Parse(RecordDate).Year.ToString() + "-" + DateTime.Parse(RecordDate).Month.ToString() + "-01";
    string InureDate = hrf008043;
    string Remark = dt_hrf008.Rows[0]["hrf008013"].ToString();
    string year = DateTime.Parse(InureDate).Year.ToString();
    string month = DateTime.Parse(InureDate).Month.ToString();
    string BeginMonth = GetSalaryMonthId(year, month);
    string EndMonth = BeginMonth;
    string Flag = "1";
    string CreateDate = RecordDate;
    string CreateBy = GetEmployeeId(dt_hrf008.Rows[0]["hrf008003"].ToString());
    StringBuilder sql = new StringBuilder();
    if (hrf008026 == "Y")
    {
        string EmployeeRewardsId = dt_hrf008.Rows[0]["hrf008001"].ToString() + dt_hrf008.Rows[0]["hrf008002"].ToString() + "01";
        string EmployeeRewardsItemId = "1252476218318db794b359ea12c95d3b7ccb2";
        string Times = dt_hrf008.Rows[0]["hrf008045"].ToString();
        double money1 = 0;
        money1 = double.Parse(Times) * 50 + double.Parse(dt_hrf008.Rows[0]["hrf008027"].ToString());
        string Money = money1.ToString();
        sql.Append(" INSERT INTO EmployeeRewards(");
        sql.Append(" EmployeeRewardsId,"); //Id
        sql.Append(" EmployeeId,"); //
        sql.Append(" EmployeeRewardsItemId,"); //
        sql.Append(" RecordDate,"); //
        sql.Append(" IsSalary,"); //
        sql.Append(" InureDate,"); //
        sql.Append(" Remark,"); //
        sql.Append(" BeginMonth,"); //
        sql.Append(" EndMonth,"); //
        sql.Append(" Flag,"); //
        sql.Append(" CreateDate,"); //
        sql.Append(" CreateBy,"); //
        sql.Append(" Times,"); //
        sql.Append(" Money "); //
        sql.Append(")values(");//
        sql.Append("N'" + EmployeeRewardsId + "',");//
        sql.Append("N'" + EmployeeId + "',");//
        sql.Append("N'" + EmployeeRewardsItemId + "',");//
        sql.Append("N'" + RecordDate + "',");//
        sql.Append("N'" + IsSalary + "',");//
        sql.Append("N'" + InureDate + "',");//
        sql.Append("N'" + Remark + "',");//
        sql.Append("N'" + BeginMonth + "',");//
        sql.Append("N'" + EndMonth + "',");//
        sql.Append("N'" + Flag + "',");//
        sql.Append("N'" + CreateDate + "',");//
        sql.Append("N'" + CreateBy + "',");//
        sql.Append("N'" + Times + "',");//
        sql.Append("N'" + Money + "')");//
        sql.Append("\r\n");
    }
    if (hrf008028 == "Y")
    {
        string EmployeeRewardsId = dt_hrf008.Rows[0]["hrf008001"].ToString() + dt_hrf008.Rows[0]["hrf008002"].ToString() + "02";
        string EmployeeRewardsItemId = "125249250382f4b8a4997b41950826596e4f8";
        string Times = dt_hrf008.Rows[0]["hrf008046"].ToString();
        double money1 = 0;
        money1 = double.Parse(Times) * 100 + double.Parse(dt_hrf008.Rows[0]["hrf008029"].ToString());
        string Money = money1.ToString();
        sql.Append(" INSERT INTO EmployeeRewards(");
        sql.Append(" EmployeeRewardsId,"); //Id
        sql.Append(" EmployeeId,"); //
        sql.Append(" EmployeeRewardsItemId,"); //
        sql.Append(" RecordDate,"); //
        sql.Append(" IsSalary,"); //
        sql.Append(" InureDate,"); //
        sql.Append(" Remark,"); //
        sql.Append(" BeginMonth,"); //
        sql.Append(" EndMonth,"); //
        sql.Append(" Flag,"); //
        sql.Append(" CreateDate,"); //
        sql.Append(" CreateBy,"); //
        sql.Append(" Times,"); //
        sql.Append(" Money "); //
        sql.Append(")values(");//
        sql.Append("N'" + EmployeeRewardsId + "',");//
        sql.Append("N'" + EmployeeId + "',");//
        sql.Append("N'" + EmployeeRewardsItemId + "',");//
        sql.Append("N'" + RecordDate + "',");//
        sql.Append("N'" + IsSalary + "',");//
        sql.Append("N'" + InureDate + "',");//
        sql.Append("N'" + Remark + "',");//
        sql.Append("N'" + BeginMonth + "',");//
        sql.Append("N'" + EndMonth + "',");//
        sql.Append("N'" + Flag + "',");//
        sql.Append("N'" + CreateDate + "',");//
        sql.Append("N'" + CreateBy + "',");//
        sql.Append("N'" + Times + "',");//
        sql.Append("N'" + Money + "')");//
        sql.Append("\r\n");
    }
    if (hrf008030 == "Y")
    {
        string EmployeeRewardsId = dt_hrf008.Rows[0]["hrf008001"].ToString() + dt_hrf008.Rows[0]["hrf008002"].ToString() + "03";
        string EmployeeRewardsItemId = "125243d69c95762424b7685afa62cec1a784e";
        string Times = dt_hrf008.Rows[0]["hrf008047"].ToString();
        double money1 = 0;
        money1 = double.Parse(Times) * 200 + double.Parse(dt_hrf008.Rows[0]["hrf008031"].ToString());
        string Money = money1.ToString();
        sql.Append(" INSERT INTO EmployeeRewards(");
        sql.Append(" EmployeeRewardsId,"); //Id
        sql.Append(" EmployeeId,"); //
        sql.Append(" EmployeeRewardsItemId,"); //
        sql.Append(" RecordDate,"); //
        sql.Append(" IsSalary,"); //
        sql.Append(" InureDate,"); //
        sql.Append(" Remark,"); //
        sql.Append(" BeginMonth,"); //
        sql.Append(" EndMonth,"); //
        sql.Append(" Flag,"); //
        sql.Append(" CreateDate,"); //
        sql.Append(" CreateBy,"); //
        sql.Append(" Times,"); //
        sql.Append(" Money "); //
        sql.Append(")values(");//
        sql.Append("N'" + EmployeeRewardsId + "',");//
        sql.Append("N'" + EmployeeId + "',");//
        sql.Append("N'" + EmployeeRewardsItemId + "',");//
        sql.Append("N'" + RecordDate + "',");//
        sql.Append("N'" + IsSalary + "',");//
        sql.Append("N'" + InureDate + "',");//
        sql.Append("N'" + Remark + "',");//
        sql.Append("N'" + BeginMonth + "',");//
        sql.Append("N'" + EndMonth + "',");//
        sql.Append("N'" + Flag + "',");//
        sql.Append("N'" + CreateDate + "',");//
        sql.Append("N'" + CreateBy + "',");//
        sql.Append("N'" + Times + "',");//
        sql.Append("N'" + Money + "')");//
        sql.Append("\r\n");
    }
    if (hrf008037 == "Y")
    {
        string EmployeeRewardsId = dt_hrf008.Rows[0]["hrf008001"].ToString() + dt_hrf008.Rows[0]["hrf008002"].ToString() + "04";
        string EmployeeRewardsItemId = "1252423f5906b904a40a38d683ca265bc71d8";
        string Times = dt_hrf008.Rows[0]["hrf008048"].ToString();
        double money1 = 0;
        money1 = double.Parse(Times) * 50 + double.Parse(dt_hrf008.Rows[0]["hrf008038"].ToString());
        string Money = money1.ToString();
        sql.Append(" INSERT INTO EmployeeRewards(");
        sql.Append(" EmployeeRewardsId,"); //Id
        sql.Append(" EmployeeId,"); //
        sql.Append(" EmployeeRewardsItemId,"); //
        sql.Append(" RecordDate,"); //
        sql.Append(" IsSalary,"); //
        sql.Append(" InureDate,"); //
        sql.Append(" Remark,"); //
        sql.Append(" BeginMonth,"); //
        sql.Append(" EndMonth,"); //
        sql.Append(" Flag,"); //
        sql.Append(" CreateDate,"); //
        sql.Append(" CreateBy,"); //
        sql.Append(" Times,"); //
        sql.Append(" Money "); //
        sql.Append(")values(");//
        sql.Append("N'" + EmployeeRewardsId + "',");//
        sql.Append("N'" + EmployeeId + "',");//
        sql.Append("N'" + EmployeeRewardsItemId + "',");//
        sql.Append("N'" + RecordDate + "',");//
        sql.Append("N'" + IsSalary + "',");//
        sql.Append("N'" + InureDate + "',");//
        sql.Append("N'" + Remark + "',");//
        sql.Append("N'" + BeginMonth + "',");//
        sql.Append("N'" + EndMonth + "',");//
        sql.Append("N'" + Flag + "',");//
        sql.Append("N'" + CreateDate + "',");//
        sql.Append("N'" + CreateBy + "',");//
        sql.Append("N'" + Times + "',");//
        sql.Append("N'" + Money + "')");//
        sql.Append("\r\n");
    }
    if (hrf008039 == "Y")
    {
        string EmployeeRewardsId = dt_hrf008.Rows[0]["hrf008001"].ToString() + dt_hrf008.Rows[0]["hrf008002"].ToString() + "05";
        string EmployeeRewardsItemId = "12524ec0526e4995643f7b26a7825e6a3310b";
        string Times = dt_hrf008.Rows[0]["hrf008049"].ToString();
        double money1 = 0;
        money1 = double.Parse(Times) * 100 + double.Parse(dt_hrf008.Rows[0]["hrf008040"].ToString());
        string Money = money1.ToString();
        sql.Append(" INSERT INTO EmployeeRewards(");
        sql.Append(" EmployeeRewardsId,"); //Id
        sql.Append(" EmployeeId,"); //
        sql.Append(" EmployeeRewardsItemId,"); //
        sql.Append(" RecordDate,"); //
        sql.Append(" IsSalary,"); //
        sql.Append(" InureDate,"); //
        sql.Append(" Remark,"); //
        sql.Append(" BeginMonth,"); //
        sql.Append(" EndMonth,"); //
        sql.Append(" Flag,"); //
        sql.Append(" CreateDate,"); //
        sql.Append(" CreateBy,"); //
        sql.Append(" Times,"); //
        sql.Append(" Money "); //
        sql.Append(")values(");//
        sql.Append("N'" + EmployeeRewardsId + "',");//
        sql.Append("N'" + EmployeeId + "',");//
        sql.Append("N'" + EmployeeRewardsItemId + "',");//
        sql.Append("N'" + RecordDate + "',");//
        sql.Append("N'" + IsSalary + "',");//
        sql.Append("N'" + InureDate + "',");//
        sql.Append("N'" + Remark + "',");//
        sql.Append("N'" + BeginMonth + "',");//
        sql.Append("N'" + EndMonth + "',");//
        sql.Append("N'" + Flag + "',");//
        sql.Append("N'" + CreateDate + "',");//
        sql.Append("N'" + CreateBy + "',");//
        sql.Append("N'" + Times + "',");//
        sql.Append("N'" + Money + "')");//
        sql.Append("\r\n");
    }
    if (hrf008041 == "Y")
    {
        string EmployeeRewardsId = dt_hrf008.Rows[0]["hrf008001"].ToString() + dt_hrf008.Rows[0]["hrf008002"].ToString() + "06";
        string EmployeeRewardsItemId = "12524545c094a4e3d49e48e9a967090a63a66";
        string Times = dt_hrf008.Rows[0]["hrf008050"].ToString();
        double money1 = 0;
        money1 = double.Parse(Times) * 200 + double.Parse(dt_hrf008.Rows[0]["hrf008042"].ToString());
        string Money = money1.ToString();
        sql.Append(" INSERT INTO EmployeeRewards(");
        sql.Append(" EmployeeRewardsId,"); //Id
        sql.Append(" EmployeeId,"); //
        sql.Append(" EmployeeRewardsItemId,"); //
        sql.Append(" RecordDate,"); //
        sql.Append(" IsSalary,"); //
        sql.Append(" InureDate,"); //
        sql.Append(" Remark,"); //
        sql.Append(" BeginMonth,"); //
        sql.Append(" EndMonth,"); //
        sql.Append(" Flag,"); //
        sql.Append(" CreateDate,"); //
        sql.Append(" CreateBy,"); //
        sql.Append(" Times,"); //
        sql.Append(" Money "); //
        sql.Append(")values(");//
        sql.Append("N'" + EmployeeRewardsId + "',");//
        sql.Append("N'" + EmployeeId + "',");//
        sql.Append("N'" + EmployeeRewardsItemId + "',");//
        sql.Append("N'" + RecordDate + "',");//
        sql.Append("N'" + IsSalary + "',");//
        sql.Append("N'" + InureDate + "',");//
        sql.Append("N'" + Remark + "',");//
        sql.Append("N'" + BeginMonth + "',");//
        sql.Append("N'" + EndMonth + "',");//
        sql.Append("N'" + Flag + "',");//
        sql.Append("N'" + CreateDate + "',");//
        sql.Append("N'" + CreateBy + "',");//
        sql.Append("N'" + Times + "',");//
        sql.Append("N'" + Money + "')");//
        sql.Append("\r\n");
    }
    if (hrf008051 == "Y")
    {
        string EmployeeRewardsId = dt_hrf008.Rows[0]["hrf008001"].ToString() + dt_hrf008.Rows[0]["hrf008002"].ToString() + "07";
        string EmployeeRewardsItemId = "138292dbacda3a9514e7eb70e383759de86ea";
        string Times = "1";
        double money1 = 0;
        string Money = money1.ToString();
        sql.Append(" INSERT INTO EmployeeRewards(");
        sql.Append(" EmployeeRewardsId,"); //Id
        sql.Append(" EmployeeId,"); //
        sql.Append(" EmployeeRewardsItemId,"); //
        sql.Append(" RecordDate,"); //
        sql.Append(" IsSalary,"); //
        sql.Append(" InureDate,"); //
        sql.Append(" Remark,"); //
        sql.Append(" BeginMonth,"); //
        sql.Append(" EndMonth,"); //
        sql.Append(" Flag,"); //
        sql.Append(" CreateDate,"); //
        sql.Append(" CreateBy,"); //
        sql.Append(" Times,"); //
        sql.Append(" Money "); //
        sql.Append(")values(");//
        sql.Append("N'" + EmployeeRewardsId + "',");//
        sql.Append("N'" + EmployeeId + "',");//
        sql.Append("N'" + EmployeeRewardsItemId + "',");//
        sql.Append("N'" + RecordDate + "',");//
        sql.Append("N'" + IsSalary + "',");//
        sql.Append("N'" + InureDate + "',");//
        sql.Append("N'" + Remark + "',");//
        sql.Append("N'" + BeginMonth + "',");//
        sql.Append("N'" + EndMonth + "',");//
        sql.Append("N'" + Flag + "',");//
        sql.Append("N'" + CreateDate + "',");//
        sql.Append("N'" + CreateBy + "',");//
        sql.Append("N'" + Times + "',");//
        sql.Append("N'" + Money + "')");//
        sql.Append("\r\n");
    }

    return sql;
}

// <summary>
/// 根据工号得到对应级别的所有主管
/// </summary>
/// <param name="resak001"></param>
/// <returns></returns>
protected ArrayList get_leads(string para_user_no)
{
    UserInfoClass tClass = (UserInfoClass)Session["UserInfo"];
    ArrayList arr = new ArrayList();
    //arr.Add(para_user_no);
    string user_no = para_user_no;
    DataTable dt_dep = new DataTable();
    dt_dep = m_dbCommand.Query("select substring(b.Code,1,4)depCode from HR.HRMDB.dbo.Employee a left join HR.HRMDB.dbo.Department b on a.DepartmentId=b.DepartmentId where a.Code='" + user_no + "'");
    int level = 0;
    string depcode = dt_dep.Rows[0][0].ToString();   
    while (level <= 1301)
    {
        DataTable dt = new DataTable();
        //得到直属主管的工号,职等
        dt = m_dbCommand.Query("select b.resak001,b.resak006,a.resak001,a.resak006 from " + tClass.Company + "..resak a," + tClass.Company
                             + "..resak b where a.resak013=b.resak001 and a.resak001='" + user_no + "'");
        if (dt.Rows.Count > 0)
        {
            user_no = dt.Rows[0][0].ToString();
            level = Int16.Parse(dt.Rows[0][1].ToString());
            if (level <= 1301)
            {
                arr.Add(user_no);
            }
        }
        else
        {
            level = 99999;
        }       
    }
    if (depcode == "C0HR")
    {
        arr.Add("CY100116");
    }
    if (depcode == "C0GS")
    {
        arr.Add("CY100025");
    }
    return arr;
}
/// 表单送签后塞的流程
protected override void BeforeSendNewFormAddFlow(tw.com.dsc.easyflowDotNet.kernelBasePage.EFBasePage.TRFlowRESDB[] xFlowData, ref bool xBlnFlowChanged)
{
    xBlnFlowChanged = false;
    ArrayList list = new ArrayList();

    list = get_leads(hrf008006.Text);

    xFlowData = new TRFlowRESDB[list.Count];
    for (int i = 0; i < list.Count; i++)
    {
        xFlowData[i].resdb001 = this.formID;
        xFlowData[i].resdb002 = this.SheetNo;
        xFlowData[i].resdb003 = (i + 1).ToString("0000");
        xFlowData[i].resdb004 = "0010";
        xFlowData[i].resdb005 = 1;
        xFlowData[i].resdb006 = 1;
        xFlowData[i].resdb007 = list[i].ToString();//工号
        xFlowData[i].resdb008 = "";
        xFlowData[i].resdb009 = "";
        xFlowData[i].resdb010 = "";
        xFlowData[i].resdb011 = 0;
        xFlowData[i].resdb012 = "N";
        xFlowData[i].resdb013 = "0";
        xFlowData[i].resdb014 = "Y";
        xFlowData[i].resdb015 = "N";
        xFlowData[i].resdb016 = "N";
        xFlowData[i].resdb017 = "Y";
        xFlowData[i].resdb018 = "Y";
        xFlowData[i].resdb019 = "Y";
        xFlowData[i].resdb020 = "Y";
        xFlowData[i].resdb021 = "Y";//是否可以增加附档
        xFlowData[i].resdb022 = "N";
        xFlowData[i].resdb023 = "N";
        xFlowData[i].resdb024 = "Y";
        xFlowData[i].resdb025 = "N";
        xFlowData[i].resdb026 = "N";
        xFlowData[i].resdb027 = "";
        xFlowData[i].resdb028 = "";
        xFlowData[i].resdb029 = "";
        xFlowData[i].resdb030 = "Y";//是否必填签核意见
    }
    base.BeforeSendNewFormAddFlow(xFlowData, ref xBlnFlowChanged);
}


                
        }
}

posted @ 2015-03-27 13:48  小河叮咚  阅读(548)  评论(0编辑  收藏  举报