298 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			298 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using System.Collections.Generic;
 | |
| using System.ComponentModel;
 | |
| using System.Data;
 | |
| using System.Drawing;
 | |
| using System.Linq;
 | |
| using System.Text;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace Project._Common
 | |
| {
 | |
|     public partial class fAddNewUser : Form // FCOMMON.fBase
 | |
|     {
 | |
|         string p_dept = string.Empty;
 | |
|         string p_id = string.Empty;
 | |
|         short deflevel = 1;
 | |
|         public fAddNewUser(string dept, string id, short _deflevel = 1)
 | |
|         {
 | |
|             InitializeComponent();
 | |
|             p_dept = dept;
 | |
|             p_id = id;
 | |
|             this.deflevel = _deflevel;
 | |
| 
 | |
|             this.tbDept.Text = dept;
 | |
|             this.StartPosition = FormStartPosition.CenterScreen;
 | |
|             this.tbId.Text = id;
 | |
| 
 | |
|             //자료를 불러와서 먼저 불러온다
 | |
|             if (id.isEmpty() == false)
 | |
|             {
 | |
|                 tbId.Enabled = false;
 | |
|                 button1.Enabled = false;
 | |
|                 btChangePW.Enabled = true;
 | |
| 
 | |
| 
 | |
|                 var db = new EEEntitiesMain();
 | |
|                 var db_user = db.Users.Where(t => t.id == id).FirstOrDefault();
 | |
|                 var db_guser = db.EETGW_GroupUser.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.uid == id).FirstOrDefault();
 | |
|                 if (db_user != null)
 | |
|                 {
 | |
|                     tbNameK.Text = db_user.name;
 | |
|                     tbNameE.Text = db_user.nameE;
 | |
|                     tbDept.Text = db_user.dept;
 | |
|                     tbEmail.Text = db_user.email;
 | |
|                     tbTel.Text = db_user.tel;
 | |
|                     tbHp.Text = db_user.hp;
 | |
|                     tbDateIn.Text = db_user.indate;
 | |
|                     tbDateO.Text = db_user.outdate;
 | |
|                     tbGrade.Text = db_user.grade;
 | |
|                     tbMemo.Text = db_user.memo;
 | |
| 
 | |
|                 }
 | |
|                 if (db_guser != null)
 | |
|                 {
 | |
|                     tbProcess.Text = db_guser.Process;
 | |
|                     tbState.Text = db_guser.state;
 | |
| 
 | |
|                     //this.chkJobReport.Checked = (db_guser.useJobReport == null ? false : (bool)db_guser.useJobReport);
 | |
|                     this.chkJobReport.Checked = (db_guser.useJobReport == null ? false : (bool)db_guser.useJobReport);
 | |
|                     this.chkUseState.Checked = (db_guser.useUserState == null ? false : (bool)db_guser.useUserState);
 | |
|                     this.chkExceptHoly.Checked = (db_guser.exceptHoly == null ? false : (bool)db_guser.exceptHoly);
 | |
|                 }
 | |
| 
 | |
|                 this.Text = "사용자 정보 변경";
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 this.Text = "사용자 정보 추가";
 | |
|                 btChangePW.Enabled = false;
 | |
|             }
 | |
| 
 | |
|         }
 | |
| 
 | |
| 
 | |
|         private void fUserInfo_Load(object sender, EventArgs e)
 | |
|         {
 | |
|             int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.account));
 | |
|        
 | |
|             if(this.deflevel < 1)
 | |
|             {
 | |
|                 chkExceptHoly.Visible = false;
 | |
|                 chkJobReport.Visible = false; 
 | |
|                 chkUseState.Visible = false;
 | |
| 
 | |
|                 chkExceptHoly.Checked = false;
 | |
|                 chkJobReport.Checked = false; ;
 | |
|                 chkUseState.Checked = false;
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 chkExceptHoly.Enabled = curLevel > 4;
 | |
|                 chkJobReport.Enabled = curLevel > 4;
 | |
|                 chkUseState.Enabled = curLevel > 4;
 | |
|             }
 | |
|           
 | |
|         }
 | |
|         private void button1_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             //입력한 id확인해서 잇으면 해당 자료를 표시해준다.
 | |
|             var id = this.tbId.Text.Trim();
 | |
|             if (id.isEmpty())
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("id를 입력하세요");
 | |
|                 this.tbId.SelectAll();
 | |
|                 this.tbId.Focus();
 | |
|                 return;
 | |
|             }
 | |
| 
 | |
|             var db = new EEEntitiesMain();
 | |
|             var dr_user = db.Users.Where(t => t.id == id).FirstOrDefault();
 | |
|             if (dr_user == null)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("등록된 자료가 없습니다");
 | |
|                 tbNameK.Focus();
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 tbNameK.Text = dr_user.name;
 | |
|                 tbNameE.Text = dr_user.nameE;
 | |
|                 if (tbDept.Text.isEmpty()) tbDept.Text = dr_user.dept;
 | |
|                 tbEmail.Text = dr_user.email;
 | |
|                 tbTel.Text = dr_user.tel;
 | |
|                 tbHp.Text = dr_user.hp;
 | |
|                 tbDateIn.Text = dr_user.indate;
 | |
|                 tbDateO.Text = dr_user.outdate;
 | |
|                 tbGrade.Text = dr_user.grade;
 | |
|                 tbMemo.Text = dr_user.memo;
 | |
|                 tbProcess.Text = string.Empty;
 | |
| 
 | |
|                 //부서가잇다면 해당 부서에서 해당 사용자의 공정을 찾는다
 | |
|                 if (tbDept.Text.isEmpty() == false)
 | |
|                 {
 | |
|                     var drGrp = db.vGroupUser.Where(t => t.id == id).FirstOrDefault();
 | |
|                     if (drGrp != null)
 | |
|                     {
 | |
|                         tbProcess.Text = drGrp.processs;
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         private void button2_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             this.Validate();
 | |
|             var db = new EEEntitiesMain();
 | |
| 
 | |
|             //해당 그룹에 데이터를 추가한다.
 | |
|             //var drDept = db.UserGroup.Where(t => t.dept == tbDept.Text).FirstOrDefault();
 | |
|             //if (drDept == null)
 | |
|             //{
 | |
|             //    FCOMMON.Util.MsgE("해당 부서정보가 존재하지 않습니다\n\n부서를 신규로 추가할 수는 없습니다\n관리자에 문의하세요");
 | |
|             //    return;
 | |
|             //}
 | |
| 
 | |
|             //해당 그룹에 해당 사용자가 존재하는지 확이한다.
 | |
|             var gcode = FCOMMON.info.Login.gcode;
 | |
|             var uid = (p_id.isEmpty() ? tbId.Text.Trim() : p_id);
 | |
|             var drGuser = db.EETGW_GroupUser.Where(t => t.gcode == gcode && t.uid == uid).FirstOrDefault();
 | |
|             if (drGuser != null)
 | |
|             {
 | |
|                 drGuser.Process = this.tbProcess.Text.Trim();
 | |
|                 drGuser.state = this.tbState.Text.Trim();
 | |
| 
 | |
|                 if(deflevel > 0)
 | |
|                 {
 | |
|                     drGuser.useJobReport = chkJobReport.Checked;
 | |
|                     drGuser.useUserState = chkUseState.Checked;
 | |
|                     drGuser.exceptHoly = chkExceptHoly.Checked;
 | |
|                 }
 | |
|          
 | |
|                 FCOMMON.Util.MsgI($"이미 존재하는 사용자 정보입니다\n"+"기존 정보가 업데이트 됩니다");
 | |
|             }
 | |
|             else
 | |
|             {
 | |
|                 //불러온경우
 | |
|                 if (tbId.Enabled == false)
 | |
|                 {
 | |
|                     FCOMMON.Util.MsgE("사용자 ID정보가 없어 진행할 수 없습니다");
 | |
|                     return;
 | |
|                 }
 | |
| 
 | |
|                 drGuser = new EETGW_GroupUser();
 | |
|                 drGuser.wuid = FCOMMON.info.Login.no;
 | |
|                 drGuser.wdate = DateTime.Now;
 | |
|                 drGuser.gcode = gcode;
 | |
|                 drGuser.level = this.deflevel;
 | |
|                 drGuser.uid = this.tbId.Text.Trim();
 | |
|                 drGuser.state = this.tbState.Text.Trim();
 | |
|                 drGuser.Process = this.tbProcess.Text.Trim();
 | |
|                 //drGuser.useJobReport = this.chkJobReport.Checked;
 | |
|                 drGuser.useJobReport = this.chkJobReport.Checked;
 | |
|                 drGuser.useUserState = this.chkUseState.Checked;
 | |
|                 drGuser.exceptHoly = this.chkExceptHoly.Checked;
 | |
|                 db.EETGW_GroupUser.Add(drGuser);
 | |
|             }
 | |
| 
 | |
| 
 | |
| 
 | |
|             //사용자 목록에 없다면 추가한다
 | |
|             var drUser = db.Users.SingleOrDefault(t => t.id == uid);
 | |
|             if (drUser == null)
 | |
|             {
 | |
|                 drUser = new Users();
 | |
|                 drUser.wuid = FCOMMON.info.Login.no;
 | |
|                 drUser.wdate = DateTime.Now;
 | |
|                 drUser.gcode = gcode;
 | |
|                 drUser.level = this.deflevel;
 | |
|                 drUser.id = tbId.Text.Trim();
 | |
|                 drUser.password = newpassword;// "B6589FC6AB0DC82CF12099D1C2D40AB994E8410C"; //기본값0
 | |
| 
 | |
|                 drUser.name = tbNameK.Text.Trim();
 | |
|                 drUser.nameE = tbNameE.Text.Trim();
 | |
|                 drUser.dept = this.tbDept.Text.Trim();
 | |
|                 drUser.email = tbEmail.Text;
 | |
|                 drUser.tel = tbTel.Text;
 | |
|                 drUser.hp = tbHp.Text;
 | |
|                 drUser.indate = tbDateIn.Text;
 | |
|                 drUser.outdate = tbDateO.Text;
 | |
|                 drUser.memo = tbMemo.Text;
 | |
|                 drUser.processs = tbProcess.Text;
 | |
|                 drUser.grade = tbGrade.Text.Trim();
 | |
|                 db.Users.Add(drUser);
 | |
|             }
 | |
| 
 | |
|             else
 | |
|             {
 | |
|                 if(string.IsNullOrEmpty(drUser.password) || newpassword.isEmpty()==false)
 | |
|                     drUser.password =   newpassword;// "B6589FC6AB0DC82CF12099D1C2D40AB994E8410C";
 | |
| 
 | |
|                 drUser.name = tbNameK.Text.Trim();
 | |
|                 drUser.nameE = tbNameE.Text.Trim();
 | |
|                 drUser.dept = this.tbDept.Text.Trim();
 | |
|                 drUser.email = tbEmail.Text;
 | |
|                 drUser.tel = tbTel.Text;
 | |
|                 drUser.hp = tbHp.Text;
 | |
|                 drUser.indate = tbDateIn.Text;
 | |
|                 drUser.outdate = tbDateO.Text;
 | |
|                 drUser.memo = tbMemo.Text;
 | |
|                 drUser.processs = tbProcess.Text;
 | |
|                 drUser.grade = tbGrade.Text.Trim();
 | |
| 
 | |
|             }
 | |
| 
 | |
|             try
 | |
|             {
 | |
|                 db.SaveChanges();
 | |
|                 this.DialogResult = DialogResult.OK;
 | |
|             }
 | |
|             catch (Exception ex)
 | |
|             {
 | |
|                 FCOMMON.Util.MsgE("save error\n" + ex.Message);
 | |
|             }
 | |
| 
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void chkUserSt_CheckedChanged(object sender, EventArgs e)
 | |
|         {
 | |
| 
 | |
|         }
 | |
| 
 | |
|         private void chkJobReport_CheckedChanged(object sender, EventArgs e)
 | |
|         {
 | |
|         }
 | |
| 
 | |
|         string newpassword = "B6589FC6AB0DC82CF12099D1C2D40AB994E8410C"; //기본값 0
 | |
|         private void btChangePW_Click(object sender, EventArgs e)
 | |
|         {
 | |
|             var f = new fNewPassword(this.tbId.Text);
 | |
|             if (f.ShowDialog() == DialogResult.OK)
 | |
|             {
 | |
|                 var opass = Pub.MakePasswordEnc( f.tbPassO.Text);
 | |
| 
 | |
|                 //해당 그룹에 해당 사용자가 존재하는지 확이한다.
 | |
|                 var gcode = FCOMMON.info.Login.gcode;
 | |
|                 var uid = tbId.Text;
 | |
|                 var db = new EEEntitiesMain();
 | |
|                 var drUser = db.Users.SingleOrDefault(t => t.id == uid);
 | |
|                 if (drUser != null)
 | |
|                 {
 | |
|                     if (opass.Equals(drUser.password)==false)
 | |
|                     {
 | |
|                         Util.MsgE("기존 암호가 일치하지 않습니다");
 | |
|                         return;
 | |
|                     }
 | |
|                 }
 | |
|                 else {
 | |
|                     Util.MsgE("사용자 정보가 없어 처리할 수 없습니다");
 | |
|                     return;
 | |
|                 }
 | |
| 
 | |
|                 newpassword = Pub.MakePasswordEnc(f.newpassword);
 | |
|                 Util.MsgI($"암호가 변경되었습니다.[저장] 버튼을 누르면 적용 됩니다");
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 | 
