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();
}
}
}