429 lines
17 KiB
C#
429 lines
17 KiB
C#
using System;
|
||
using System.Collections;
|
||
using System.Collections.Generic;
|
||
using System.Data;
|
||
using System.Data.OleDb;
|
||
using System.Web;
|
||
using System.Web.UI;
|
||
using System.Web.UI.WebControls;
|
||
using System.Configuration;
|
||
using System.IO;
|
||
using System.Linq;
|
||
using System.Data.Entity.Infrastructure;
|
||
|
||
public partial class admin_hr_reg : MyWeb.config
|
||
{
|
||
private Model.ezEntities _db = new Model.ezEntities();
|
||
public string _admin_id = "";
|
||
|
||
protected void Page_Load(object sender, EventArgs e)
|
||
{
|
||
CallAjax();
|
||
if (!IsPostBack)
|
||
{
|
||
|
||
if (isStrNull(Request["num"]))
|
||
{
|
||
|
||
}
|
||
else
|
||
{
|
||
int _num = Val(Request["num"]);
|
||
var qry = _db.members.AsEnumerable();
|
||
var prod = qry.Where(q => q.num == _num).FirstOrDefault();
|
||
//var prod = _db.members.Where(q => q.num == _num).ToList();
|
||
if (prod != null)
|
||
//if (prod.Count>0)
|
||
{
|
||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||
|
||
|
||
object[] ctrlist = { f_num, m_number, u_name, sex, id_code, birthday, blood, educational, refugedate, refuge_name,refuge_area, demo
|
||
, takedate, leavedate, salary, group_kind, title_kind, phone, com_email, email, contact, address1, address2 };
|
||
|
||
|
||
try
|
||
{
|
||
foreach (Control obj in ctrlist)
|
||
{
|
||
if (obj is TextBox)
|
||
{
|
||
var ObjValue = prod.GetType().GetProperty(obj.ID).GetValue(prod, null);
|
||
if (!isStrNull(ObjValue))
|
||
{
|
||
var textBox = (TextBox)obj;
|
||
if (textBox.TextMode == TextBoxMode.Date)
|
||
{
|
||
textBox.Text = Convert.ToDateTime(ObjValue).ToString("yyyy-MM-dd");
|
||
}
|
||
else if (!isStrNull(textBox.Attributes["data-encrypt"]) && ValString(textBox.Attributes["data-encrypt"]).Equals("Y"))
|
||
textBox.Text = encrypt.DecryptAutoKey(ObjValue.ToString());
|
||
else
|
||
{
|
||
textBox.Text = ObjValue.ToString();
|
||
}
|
||
}
|
||
}
|
||
else if (obj is DropDownList && ((DropDownList)obj).SelectedIndex == 0)
|
||
{
|
||
var ObjValue = prod.GetType().GetProperty(obj.ID).GetValue(prod, null);
|
||
if (!isStrNull(ObjValue))
|
||
{
|
||
var dropDown = (DropDownList)obj;
|
||
dropDown.SelectedValue = ObjValue.ToString();
|
||
}
|
||
}
|
||
}
|
||
}
|
||
catch (Exception)
|
||
{
|
||
}
|
||
for (int i = 1; i <= Model.member.picMax; i++)
|
||
{
|
||
if (prod.pic1 != "")
|
||
{
|
||
((CheckBox)Panel1.FindControl("CheckBox" + i.ToString())).Visible = true;
|
||
ViewState["pic" + i.ToString()] = prod.pic1;
|
||
Image img = (Image)Panel1.FindControl("Image" + i.ToString());
|
||
img.Visible = true;
|
||
img.ImageUrl = "../../App_Script/DisplayCut.ashx?file=" + Model.member.Dir.Replace("~/upload/","") + "/" + prod.pic1 + "&w=150&h=150";
|
||
}
|
||
}
|
||
if (prod.f_num.HasValue)
|
||
{
|
||
f_num_txt.Value = prod.follower.f_number.ToString();
|
||
f_num.Value = prod.f_num.ToString();
|
||
}
|
||
if (prod.admin_num.HasValue)
|
||
{
|
||
admin_num_txt.Value = prod.admin.u_id.ToString();
|
||
admin_num.Value = prod.admin_num.ToString();
|
||
_admin_id = prod.admin_num.ToString();
|
||
}
|
||
if (prod.group_kind.HasValue)
|
||
{
|
||
group_kind_txt.Value = prod.member_group.kind.ToString();
|
||
group_kind.Value = prod.group_kind.ToString();
|
||
}
|
||
if (prod.title_kind.HasValue)
|
||
{
|
||
title_kind_txt.Value = prod.member_title.kind.ToString();
|
||
title_kind.Value = prod.title_kind.ToString();
|
||
}
|
||
|
||
|
||
edit.Visible = true;
|
||
goback.Visible = true;
|
||
add.Visible = false;
|
||
|
||
}
|
||
else
|
||
{
|
||
Response.Redirect("index.aspx");
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
protected void goback_Click(object sender, EventArgs e)
|
||
{
|
||
Response.Redirect("index.aspx?page=" + Convert.ToString(Request["page"]));
|
||
}
|
||
|
||
|
||
|
||
#region 資料新增
|
||
|
||
protected void add_Click(object sender, EventArgs e)
|
||
{
|
||
if (Page.IsValid) {
|
||
|
||
L_msg.Text = "";
|
||
|
||
if (chk_pro_num(m_number.Text))
|
||
{
|
||
MyWeb.fileSystem fileSystem = new MyWeb.fileSystem();
|
||
string[] pic_name = fileSystem.UploadPhoto(Model.member.Dir, 800, admin.info.num); //縮圖的寬高不得超過800象素,如果不是圖片也會傳
|
||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||
|
||
|
||
Model.member member = new Model.member();//新增
|
||
|
||
object[] ctrlist = { f_num, m_number, u_name, sex, id_code, birthday, blood, educational, refugedate, refuge_name,refuge_area, demo
|
||
, admin_num, takedate, leavedate, salary, group_kind, title_kind, phone, com_email, email, contact, address1, address2 };
|
||
|
||
member.pic1 = pic_name[0];
|
||
try
|
||
{
|
||
foreach (Control obj in ctrlist)
|
||
{
|
||
if (obj is TextBox)
|
||
{
|
||
var ObjValue = member.GetType().GetProperty(obj.ID);
|
||
var textBox = (TextBox)obj;
|
||
if (!isStrNull(textBox.Text))
|
||
{
|
||
if (textBox.TextMode == TextBoxMode.Date)
|
||
ObjValue.SetValue(member, selectDate(textBox));
|
||
else if (!isStrNull(((TextBox)obj).Attributes["data-encrypt"]) && ValString(textBox.Attributes["data-encrypt"]).Equals("Y"))
|
||
ObjValue.SetValue(member, encrypt.EncryptAutoKey(textBox.Text.Trim()));
|
||
else
|
||
ObjValue.SetValue(member, ((TextBox)obj).Text.Trim());
|
||
}
|
||
else
|
||
ObjValue.SetValue(member, null);
|
||
|
||
}
|
||
else if (obj is DropDownList)
|
||
{
|
||
var ObjValue = member.GetType().GetProperty(obj.ID);
|
||
var dropDown = (DropDownList)obj;
|
||
if (!isStrNull(dropDown.SelectedValue))
|
||
{
|
||
if (!isStrNull(dropDown.Attributes["data-int"]) && ValString(dropDown.Attributes["data-int"]).Equals("Y"))
|
||
ObjValue.SetValue(member, Val(dropDown.SelectedValue));
|
||
else
|
||
ObjValue.SetValue(member, dropDown.SelectedValue);
|
||
}
|
||
else
|
||
ObjValue.SetValue(member, null);
|
||
|
||
}
|
||
else if (obj is HiddenField)
|
||
{
|
||
var ObjValue = member.GetType().GetProperty(obj.ID);
|
||
var dropDown = (HiddenField)obj;
|
||
if (!isStrNull(dropDown.Value))
|
||
{
|
||
ObjValue.SetValue(member, Val(dropDown.Value));
|
||
}
|
||
else
|
||
ObjValue.SetValue(member, null);
|
||
|
||
}
|
||
|
||
}
|
||
|
||
_db.members.Add(member);
|
||
_db.SaveChanges();
|
||
Model.admin_log admin_log = new Model.admin_log();
|
||
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.HR, (int)Model.admin_log.Status.Insert, m_number.Text+ u_name.Text);
|
||
|
||
Response.Redirect("index.aspx");
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
//L_msg.Text = ex.Message;
|
||
}
|
||
|
||
|
||
}
|
||
else
|
||
{
|
||
L_msg.Type = alert_type.danger;
|
||
L_msg.Text = "人員編號重複";
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
#region 資料修改
|
||
|
||
protected void edit_Click(object sender, EventArgs e)
|
||
{
|
||
if (Page.IsValid)
|
||
{
|
||
L_msg.Text = "";
|
||
int _num = Val(Request["num"]);
|
||
if (chk_pro_num(m_number.Text, _num))
|
||
{
|
||
|
||
MyWeb.fileSystem fileSystem = new MyWeb.fileSystem();
|
||
string[] pic_name = fileSystem.UploadPhoto(Model.member.Dir, 800, admin.info.num); //縮圖的寬高不得超過800象素,如果不是圖片也會傳
|
||
MyWeb.encrypt encrypt = new MyWeb.encrypt();
|
||
|
||
Model.member member = _db.members.Where(q => q.num == _num).FirstOrDefault();//修改
|
||
if (member != null)
|
||
{
|
||
object[] ctrlist = { f_num, m_number, u_name, sex, id_code, birthday, blood, educational, refugedate, refuge_name,refuge_area, demo
|
||
, admin_num, takedate, leavedate, salary, group_kind, title_kind, phone, com_email, email, contact, address1, address2 };
|
||
|
||
try
|
||
{
|
||
foreach (Control obj in ctrlist)
|
||
{
|
||
if (obj is TextBox)
|
||
{
|
||
var ObjValue = member.GetType().GetProperty(obj.ID);
|
||
var textBox = (TextBox)obj;
|
||
if (!isStrNull(textBox.Text))
|
||
{
|
||
if (textBox.TextMode == TextBoxMode.Date)
|
||
ObjValue.SetValue(member, selectDate(textBox));
|
||
else if (!isStrNull(((TextBox)obj).Attributes["data-encrypt"]) && ValString(textBox.Attributes["data-encrypt"]).Equals("Y"))
|
||
ObjValue.SetValue(member, encrypt.EncryptAutoKey(textBox.Text.Trim()));
|
||
else
|
||
ObjValue.SetValue(member, ((TextBox)obj).Text.Trim());
|
||
}
|
||
else
|
||
ObjValue.SetValue(member, null);
|
||
|
||
}
|
||
else if (obj is DropDownList)
|
||
{
|
||
var ObjValue = member.GetType().GetProperty(obj.ID);
|
||
var dropDown = (DropDownList)obj;
|
||
if (!isStrNull(dropDown.SelectedValue))
|
||
{
|
||
if (!isStrNull(dropDown.Attributes["data-int"]) && ValString(dropDown.Attributes["data-int"]).Equals("Y"))
|
||
ObjValue.SetValue(member, Val(dropDown.SelectedValue));
|
||
else
|
||
ObjValue.SetValue(member, dropDown.SelectedValue);
|
||
}
|
||
else
|
||
ObjValue.SetValue(member, null);
|
||
|
||
}
|
||
else if (obj is HiddenField)
|
||
{
|
||
var ObjValue = member.GetType().GetProperty(obj.ID);
|
||
var dropDown = (HiddenField)obj;
|
||
if (!isStrNull(dropDown.Value))
|
||
{
|
||
ObjValue.SetValue(member, Val(dropDown.Value));
|
||
}
|
||
else
|
||
ObjValue.SetValue(member, null);
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
L_msg.Text = ex.Message;
|
||
}
|
||
for (int i = 1; i <= fileSystem.Count(); i++)
|
||
{
|
||
CheckBox ck = (CheckBox)Panel1.FindControl("CheckBox" + i.ToString());
|
||
if (pic_name[i - 1] != "" | ck.Checked)
|
||
{
|
||
member.pic1 = pic_name[i - 1].ToString();
|
||
if (!isStrNull(ViewState["pic" + i.ToString()]))
|
||
{
|
||
fileSystem.Delete(Model.member.Dir + "/" + ViewState["pic" + i.ToString()]);
|
||
}
|
||
}
|
||
}
|
||
|
||
try
|
||
{
|
||
if (isStrNull(L_msg.Text))
|
||
{
|
||
_db.SaveChanges();
|
||
Model.admin_log admin_log = new Model.admin_log();
|
||
admin_log.writeLog(admin.info.u_id, (int)Model.admin_log.Systems.HR, (int)Model.admin_log.Status.Update, m_number.Text + u_name.Text);
|
||
|
||
Response.Redirect("index.aspx?page=" + Convert.ToString(Request["page"]));
|
||
}
|
||
}
|
||
catch (Exception ex)
|
||
{
|
||
L_msg.Type = alert_type.danger;
|
||
//L_msg.Text = ex.InnerException.Message;
|
||
L_msg.Text = "操作失敗";
|
||
}
|
||
|
||
}
|
||
else
|
||
{
|
||
L_msg.Type = alert_type.danger;
|
||
L_msg.Text = "查無資料";
|
||
}
|
||
|
||
}
|
||
else
|
||
{
|
||
L_msg.Type = alert_type.danger;
|
||
L_msg.Text = "人員編號重複";
|
||
|
||
}
|
||
|
||
|
||
}
|
||
}
|
||
|
||
#endregion
|
||
|
||
|
||
|
||
|
||
#region 人員編號
|
||
protected bool chk_pro_num(string txt,int num=0)
|
||
{
|
||
bool success=false;
|
||
var qry = _db.members.AsEnumerable();
|
||
qry = qry.Where(q => q.m_number == txt);
|
||
if (num > 0)
|
||
qry = qry.Where(q => q.num != num);
|
||
|
||
var prod = qry.FirstOrDefault();
|
||
|
||
success = (prod == null);
|
||
|
||
return success;
|
||
}
|
||
#endregion
|
||
|
||
|
||
|
||
#region Ajax
|
||
protected void CallAjax()
|
||
{
|
||
if (!isStrNull(Request["type"]))
|
||
{
|
||
Response.Clear();
|
||
Response.ContentType = "application/json";
|
||
AjaxInfo info = new AjaxInfo();
|
||
info.isOk = false;
|
||
|
||
info.msg = "";
|
||
|
||
if (ValString(Request["type"]) == "chkNo")
|
||
{
|
||
if (!isStrNull(Request["txt"]) )
|
||
{
|
||
info.isOk = chk_pro_num(ValString(Request["txt"]), !isStrNull(Request["id"]) ? Val(Request["id"]) : 0);
|
||
if (!info.isOk)
|
||
info.msg = "人員編號重複";
|
||
|
||
}
|
||
else
|
||
{
|
||
info.isOk = true;
|
||
info.msg = "";
|
||
}
|
||
}
|
||
else
|
||
{
|
||
info.msg = "參數不正確";
|
||
}
|
||
|
||
Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(info));
|
||
Response.End();
|
||
}
|
||
}
|
||
public class AjaxInfo
|
||
{
|
||
public bool isOk { get; set; }
|
||
public string msg { get; set; }
|
||
|
||
}
|
||
#endregion
|
||
|
||
|
||
} |