員工離職

来源:互联网 发布:谷歌世界地图mac 编辑:程序博客网 时间:2024/06/07 00:51

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using CHAS.HRMS.BLL.Tables;

namespace CHAS.HRMS.WEB
{
    public partial class EmployeeDeparture : System.Web.UI.Page
    {
        private string defaultDateFormat = ConfigurationManager.AppSettings["DefaultDateFormat"];
        CHAS.HRMS.BLL.DepartureType departureType = new CHAS.HRMS.BLL.DepartureType();
        CHAS.HRMS.BLL.Employee employee = new CHAS.HRMS.BLL.Employee();
        CHAS.HRMS.BLL.Parameter parameter = new CHAS.HRMS.BLL.Parameter();
        private string strUserName = HttpContext.Current.User.Identity.Name;

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GetDptEmp();
            }

            btnDepartue.Attributes.Add("onclick", "javascript:return ClickConfirm();");
        }

        private void GetDptEmp()
        {
            gvEmpDpt.DataSource = Session["empDepartureTable"];
            gvEmpDpt.DataKeyNames = new string[] { "INDEX_KEY" };
            gvEmpDpt.DataBind();
        }

        protected void gvEmpDpt_RowDataBound(object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowIndex > -1)
            {
                DropDownList selDepartureType = (DropDownList)e.Row.FindControl("selDepartureType");
                TextBox txtDepartureDate = (TextBox)e.Row.FindControl("txtDepartureDate");

                selDepartureType.DataSource = departureType.GetDepartureType();
                selDepartureType.DataTextField = "TYPE";
                selDepartureType.DataValueField = "INDEX_KEY";
                selDepartureType.DataBind();

                selDepartureType.SelectedValue = parameter.GetParameter("DEFAULT_DEPARTURETYPE").Tables[0].Rows[0]["VALUE1"].ToString();

                txtDepartureDate.Text = DateTime.Now.ToString(defaultDateFormat);
            }
        }

        protected void gvEmpDpt_RowDeleting(object sender, GridViewDeleteEventArgs e)
        {
            string indexKey = gvEmpDpt.DataKeys[e.RowIndex].Value.ToString();
            DataTable empTable = (DataTable)Session["empDepartureTable"];
            DataRow[] removeRow = empTable.Select("INDEX_KEY=" + indexKey);
            for (int i = 0; i < removeRow.Length; i++)
            {
                empTable.Rows.Remove(removeRow[i]);
            }

            Session["empDepartureTable"] = empTable;

            GetDptEmp();
        }

        private void GetEmpDeparture(string empCode)
        {
            DataTable empDepartureTable = employee.GetEmployee(empCode, 0).Tables[0];
            DataTable empTable = new DataTable();

            if (empDepartureTable.Rows.Count != 0)
            {
                DataRow empDepartureRow = empDepartureTable.Rows[0];

                if (Session["empDepartureTable"] != null)
                {
                    empTable = (DataTable)Session["empDepartureTable"];
                }
                else
                {
                    empTable.Columns.Add("INDEX_KEY");
                    empTable.Columns.Add("EMP_CODE");
                    empTable.Columns.Add("NAME");
                    empTable.Columns.Add("COMPANY_CODE");
                    empTable.Columns.Add("DEPT_CODE");
                    empTable.Columns.Add("POSITION");
                    empTable.Columns.Add("ENTRY_DATE");
                    empTable.Columns.Add("SEX");
                    empTable.Columns.Add("SAL_TYPE");
                }
                string QueryString = "EMP_CODE = '" + empDepartureRow["EMP_CODE"].ToString() + "'";
                DataRow[] FindRow = empTable.Select(QueryString);
                if (FindRow.Length == 0)
                {
                    DataRow newRow = empTable.NewRow();

                    newRow["INDEX_KEY"] = empDepartureRow["INDEX_KEY"].ToString();
                    newRow["EMP_CODE"] = empDepartureRow["EMP_CODE"].ToString();
                    newRow["NAME"] = empDepartureRow["NAME"].ToString();
                    newRow["COMPANY_CODE"] = empDepartureRow["COMPANY_CODE"].ToString();
                    newRow["DEPT_CODE"] = empDepartureRow["DEPARTMENT_CODE"].ToString();
                    newRow["POSITION"] = empDepartureRow["POSITION"].ToString();
                    newRow["ENTRY_DATE"] = Convert.ToDateTime(empDepartureRow["ENTRY_DATE"]).ToString(defaultDateFormat);
                    newRow["SEX"] = GetGlobalResourceObject("Resource", empDepartureRow["SEX"].ToString());
                    newRow["SAL_TYPE"] = empDepartureRow["SALARY_TYPE_NAME"].ToString();

                    empTable.Rows.Add(newRow);

                    Session["empDepartureTable"] = empTable;
                }
                else
                {
                    lblMessage.Text = "已添加此員工";
                }
            }
            else
            {
                lblMessage.Text = "員工不存在";
            }
        }

        protected void btnDeparture_Click(object sender, EventArgs e)
        {
            DepartureEmployeeTable departureEmployeeTable = new DepartureEmployeeTable();
            DateTime createTime = DateTime.Now;
            int departureTypeIndexKey = 0;
            int blackListEmployee = 0;
            string empCode = "";
            string departureDate = "";
            string departureReason = "";
            string createBy = strUserName;
           
            for (int i = 0; i < gvEmpDpt.Rows.Count; i++)
            {
                empCode = gvEmpDpt.Rows[i].Cells[0].Text;
                departureTypeIndexKey = Convert.ToInt32((gvEmpDpt.Rows[i].FindControl("selDepartureType") as DropDownList).SelectedValue);
                departureDate = (gvEmpDpt.Rows[i].FindControl("txtDepartureDate") as TextBox).Text;
                departureReason = (gvEmpDpt.Rows[i].FindControl("txtDepartureReason") as TextBox).Text;
                blackListEmployee = (gvEmpDpt.Rows[i].FindControl("chkBlackListEmployee") as CheckBox).Checked == true ? 1 : 0;

                departureEmployeeTable.InsertRow(empCode, departureTypeIndexKey, departureDate, departureReason, blackListEmployee);
            }

            if (departureEmployeeTable.Rows.Count > 0)
            {
                Session.Remove("empDepartureTable");

                string failedCode = employee.Termination(departureEmployeeTable, createBy, createTime);

                LitMessage.Text = "<script language='javascript'>alert('" + GetGlobalResourceObject("Resource", failedCode).ToString() + "');window.location='EmployeeQuery.aspx';</script>";
            }
        }

        protected void txtEmpCode_TextChanged(object sender, EventArgs e)
        {
            lblMessage.Text = "";
            string empCode = txtEmpCode.Text.Trim().ToUpper();
            GetEmpDeparture(empCode);
            GetDptEmp();
            txtEmpCode.Text = "";
            txtEmpCode.Focus();
        }

        protected void btnAdd_Click(object sender, EventArgs e)
        {
            lblMessage.Text = "";
            string empCode = txtEmpCode.Text.Trim().ToUpper();
            GetEmpDeparture(empCode);
            GetDptEmp();
            txtEmpCode.Text = "";
            txtEmpCode.Focus();
        }
    }
}

原创粉丝点击