휴가 신청시 - 입력 불가하도록

This commit is contained in:
chi
2022-11-28 13:06:16 +09:00
parent e61d37ba18
commit 78bf436089
3 changed files with 383 additions and 336 deletions

View File

@@ -170,6 +170,8 @@ namespace JobReportMailService
if (.CompareTo(str_dt) < 1) continue; if (.CompareTo(str_dt) < 1) continue;
} }
//이 대상의 이메일이 받는 사람에 제외되어있다면 처리하지 않는다. //이 대상의 이메일이 받는 사람에 제외되어있다면 처리하지 않는다.
if (MailJW.exceptmail == null) MailJW.exceptmail = string.Empty; if (MailJW.exceptmail == null) MailJW.exceptmail = string.Empty;
var exxptolist = MailJW.exceptmail.ToUpper().Split(';'); var exxptolist = MailJW.exceptmail.ToUpper().Split(';');

View File

@@ -32,5 +32,5 @@ using System.Runtime.InteropServices;
// 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로 // 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호가 자동으로
// 지정되도록 할 수 있습니다. // 지정되도록 할 수 있습니다.
// [assembly: AssemblyVersion("1.0.*")] // [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("22.09.13.0900")] [assembly: AssemblyVersion("22.11.28.1100")]
[assembly: AssemblyFileVersion("22.09.13.0900")] [assembly: AssemblyFileVersion("22.11.28.1100")]

View File

@@ -10,398 +10,443 @@ using System.Windows.Forms;
namespace FPJ0000.OtConfirm namespace FPJ0000.OtConfirm
{ {
public partial class fHolyRequestAdd : Form public partial class fHolyRequestAdd : Form
{ {
DSKuntae.EETGW_HolydayRequestRow dr; DSKuntae.EETGW_HolydayRequestRow dr;
Boolean binit = false; Boolean binit = false;
public fHolyRequestAdd(DSKuntae.EETGW_HolydayRequestRow dr_) public fHolyRequestAdd(DSKuntae.EETGW_HolydayRequestRow dr_)
{ {
InitializeComponent(); InitializeComponent();
dr = dr_; dr = dr_;
var = FCOMMON.DBM.getCodeList("50"); var = FCOMMON.DBM.getCodeList("50");
var = FCOMMON.DBM.getCodeList("51"); var = FCOMMON.DBM.getCodeList("51");
var = FCOMMON.DBM.getCodeList("52"); var = FCOMMON.DBM.getCodeList("52");
var = FCOMMON.DBM.getCodeList("53"); var = FCOMMON.DBM.getCodeList("53");
tbCate.Items.Clear(); tbCate.Items.Clear();
tbReason.Items.Clear(); tbReason.Items.Clear();
tbLocation.Items.Clear(); tbLocation.Items.Clear();
tbBackup.Items.Clear(); tbBackup.Items.Clear();
foreach (var item in ) tbCate.Items.Add(item.Value); foreach (var item in ) tbCate.Items.Add(item.Value);
foreach (var item in ) tbReason.Items.Add(item.Value); foreach (var item in ) tbReason.Items.Add(item.Value);
foreach (var item in ) tbLocation.Items.Add(item.Value); foreach (var item in ) tbLocation.Items.Add(item.Value);
foreach (var item in ) tbBackup.Items.Add(item.Value); foreach (var item in ) tbBackup.Items.Add(item.Value);
var userlist = FCOMMON.DBM.getUserTable(); var userlist = FCOMMON.DBM.getUserTable();
this.cmbUser.DataSource = userlist; this.cmbUser.DataSource = userlist;
this.cmbUser.ValueMember = "id"; this.cmbUser.ValueMember = "id";
this.cmbUser.DisplayMember = "dispname"; this.cmbUser.DisplayMember = "dispname";
if (dr.RowState == DataRowState.Detached) if (dr.RowState == DataRowState.Detached)
{ {
this.Text = "휴가신청 추가"; this.Text = "휴가신청 추가";
cmbUser.Text = $"{FCOMMON.info.Login.nameK}({FCOMMON.info.Login.no})"; cmbUser.Text = $"{FCOMMON.info.Login.nameK}({FCOMMON.info.Login.no})";
//tbProcess.Text = FCOMMON.info.Login.process; //tbProcess.Text = FCOMMON.info.Login.process;
//tbTel.Text = FCOMMON.info.Login.tel; //tbTel.Text = FCOMMON.info.Login.tel;
} }
else else
{ {
this.Text = "휴가신청 편집"; this.Text = "휴가신청 편집";
cmbUser.Text = $"{dr.name}({dr.uid})"; //dr.name; cmbUser.Text = $"{dr.name}({dr.uid})"; //dr.name;
////.Text = dr.processs; ////.Text = dr.processs;
// tbTel.Text = dr.tel; // tbTel.Text = dr.tel;
} }
if (dr.conf == 1) rad1.Checked = true; if (dr.conf == 1) rad1.Checked = true;
else if (dr.conf == 2) rad2.Checked = true; else if (dr.conf == 2) rad2.Checked = true;
else rad0.Checked = true; else rad0.Checked = true;
tbCate.Text = dr.cate; tbCate.Text = dr.cate;
tbRemark.Text = dr.Remark; tbRemark.Text = dr.Remark;
tbResponse.Text = dr.Response; tbResponse.Text = dr.Response;
tbSD.Value = DateTime.Parse(dr.sdate); tbSD.Value = DateTime.Parse(dr.sdate);
tbED.Value = DateTime.Parse(dr.edate); tbED.Value = DateTime.Parse(dr.edate);
tbReason.Text = dr.HolyReason; tbReason.Text = dr.HolyReason;
tbLocation.Text = dr.HolyLocation; tbLocation.Text = dr.HolyLocation;
tbBackup.Text = dr.HolyBackup; tbBackup.Text = dr.HolyBackup;
tbDays.Text = dr.HolyDays.ToString(); //211224 tbDays.Text = dr.HolyDays.ToString(); //211224
tbTimes.Text = dr.HolyTimes.ToString(); tbTimes.Text = dr.HolyTimes.ToString();
if (dr.cate == "대체") if (dr.cate == "대체")
{ {
tbTimes.Enabled = true; tbTimes.Enabled = true;
tbDays.Enabled = false; tbDays.Enabled = false;
tbCate.Enabled = false; tbCate.Enabled = false;
radTime.Checked = true; radTime.Checked = true;
} }
else else
{ {
tbCate.Enabled = true; tbCate.Enabled = true;
tbTimes.Enabled = false; tbTimes.Enabled = false;
tbDays.Enabled = true; tbDays.Enabled = true;
radioButton2.Checked = true; radioButton2.Checked = true;
} }
} }
int curLevel = 0; int curLevel = 0;
private void fHolyRequestAdd_Load(object sender, EventArgs e) private void fHolyRequestAdd_Load(object sender, EventArgs e)
{ {
curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.holyreq)); curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.holyreq));
//관리자라면 관리자패널을 활성해준다. //관리자라면 관리자패널을 활성해준다.
if (dr.RowState == DataRowState.Detached) if (dr.RowState == DataRowState.Detached)
{ {
cmbUser.Enabled = curLevel >= 5; cmbUser.Enabled = curLevel >= 5;
grpAdmin.Enabled = false; grpAdmin.Enabled = false;
grpAdmin.Text = "관리자(추가작업시에는 사용할 수 없습니다)"; grpAdmin.Text = "관리자(추가작업시에는 사용할 수 없습니다)";
UpdateStatus(); UpdateStatus();
} }
else else
{ {
cmbUser.Enabled = false; cmbUser.Enabled = false;
grpAdmin.Enabled = curLevel >= 5; grpAdmin.Enabled = curLevel >= 5;
if (curLevel >= 5) if (curLevel >= 5)
{ {
grpUser.Text = "신청자(편집상태에서는 사용자를 변경할 수 없습니다)"; grpUser.Text = "신청자(편집상태에서는 사용자를 변경할 수 없습니다)";
}
var = FCOMMON.DBM.getCodeList("54");
cmbPreset.Items.Clear();
cmbPreset.Items.Add(" -- 저장된 문구를 선택하세요(공용:54) --");
cmbPreset.Items.AddRange(.Select(t => t.Value).ToArray());
cmbPreset.SelectedIndex = 0;
}
if(curLevel >= 5) }
{ var = FCOMMON.DBM.getCodeList("54");
tbCate.DropDownStyle = ComboBoxStyle.DropDown; cmbPreset.Items.Clear();
} cmbPreset.Items.Add(" -- 저장된 문구를 선택하세요(공용:54) --");
else cmbPreset.Items.AddRange(.Select(t => t.Value).ToArray());
{ cmbPreset.SelectedIndex = 0;
tbCate.DropDownStyle = ComboBoxStyle.DropDownList; }
}
binit = true; if (curLevel >= 5)
} {
tbCate.DropDownStyle = ComboBoxStyle.DropDown;
}
else
{
tbCate.DropDownStyle = ComboBoxStyle.DropDownList;
}
private void button1_Click(object sender, EventArgs e) binit = true;
{ }
var cate = tbCate.Text.Trim();
if (radTime.Checked) cate = "대체";
var remark = tbRemark.Text.Trim(); private void button1_Click(object sender, EventArgs e)
var response = tbResponse.Text.Trim(); {
if (string.IsNullOrEmpty(cate)) var cate = tbCate.Text.Trim();
{ if (radTime.Checked) cate = "대체";
FCOMMON.Util.MsgE("구분을 입력하세요");
tbCate.Focus();
return;
}
//일반사용인데 내용이 대체 라는 문자라면 오류로 한다 220627 var remark = tbRemark.Text.Trim();
if (radTime.Checked == false && cate.Equals("대체")) var response = tbResponse.Text.Trim();
{ if (string.IsNullOrEmpty(cate))
FCOMMON.Util.MsgE("일반 휴가 사용에 '대체' 문자는 입력할 수 없습니다\n대체 시간을 사용하는 경우 라면 '대체시간사용'을 입력하세요"); {
tbCate.Focus(); FCOMMON.Util.MsgE("구분을 입력하세요");
return; tbCate.Focus();
} return;
}
if (tbED.Value.ToShortDateString().CompareTo(tbSD.Value.ToShortDateString()) < 0) //일반사용인데 내용이 대체 라는 문자라면 오류로 한다 220627
{ if (radTime.Checked == false && cate.Equals("대체"))
FCOMMON.Util.MsgE("시작일~종료일 범위를 확인하세요"); {
return; FCOMMON.Util.MsgE("일반 휴가 사용에 '대체' 문자는 입력할 수 없습니다\n대체 시간을 사용하는 경우 라면 '대체시간사용'을 입력하세요");
} tbCate.Focus();
var vDay = 0; return;
var vTime = 0f; }
if (tbDays.Enabled == false) tbDays.Text = string.Empty; if (tbED.Value.ToShortDateString().CompareTo(tbSD.Value.ToShortDateString()) < 0)
if (tbTimes.Enabled == false) tbTimes.Text = string.Empty; {
FCOMMON.Util.MsgE("시작일~종료일 범위를 확인하세요");
return;
}
var vDay = 0;
var vTime = 0f;
if (double.TryParse(tbDays.Text, out double val_days)) vDay = int.Parse(tbDays.Text.Trim()); if (tbDays.Enabled == false) tbDays.Text = string.Empty;
if (double.TryParse(tbTimes.Text, out double val_times)) vTime = float.Parse(tbTimes.Text.Trim()); if (tbTimes.Enabled == false) tbTimes.Text = string.Empty;
//라디오버튼에 따른 시간 값 할당 if (double.TryParse(tbDays.Text, out double val_days)) vDay = int.Parse(tbDays.Text.Trim());
if (radTime.Checked) vDay = 0; if (double.TryParse(tbTimes.Text, out double val_times)) vTime = float.Parse(tbTimes.Text.Trim());
else vTime = 0;
if (vDay > 0 && vTime > 0) //라디오버튼에 따른 시간 값 할당
{ if (radTime.Checked) vDay = 0;
FCOMMON.Util.MsgE("사용일/시간을 동시에 입력할 수는 없습니다.\r\n" + else vTime = 0;
"대체휴가의 경우에만 시간을 입력하시기 바랍니다");
return;
}
if (vDay < 1 && vTime < 0.1 && curLevel < 5) if (vDay > 0 && vTime > 0)
{ {
var dlg = FCOMMON.Util.MsgQ("사용 일/시간 값을 입력해주세요\n대체휴가에는 시간을 입력하세요\n값을 입력하지 않고 계속할까요?"); FCOMMON.Util.MsgE("사용일/시간을 동시에 입력할 수는 없습니다.\r\n" +
if (dlg != DialogResult.Yes) return; "대체휴가의 경우에만 시간을 입력하시기 바랍니다");
} return;
}
//하나도 입력안했다면 경고한다 if (vDay < 1 && vTime < 0.1 && curLevel < 5)
if (String.IsNullOrEmpty(tbReason.Text) && String.IsNullOrEmpty(tbLocation.Text) && String.IsNullOrEmpty(tbBackup.Text) && String.IsNullOrEmpty(tbRemark.Text)) {
{ var dlg = FCOMMON.Util.MsgQ("사용 일/시간 값을 입력해주세요\n대체휴가에는 시간을 입력하세요\n값을 입력하지 않고 계속할까요?");
FCOMMON.Util.MsgE("비고를 입력해주세요"); if (dlg != DialogResult.Yes) return;
tbRemark.Focus(); }
return;
}
var uid = this.cmbUser.SelectedValue;
if (uid == null)
{
FCOMMON.Util.MsgE("사용자가 선택되지 않았습니다");
return;
}
if (tbRemark.Text.StartsWith("테스트") && chkSendMail.Checked)
{
FCOMMON.Util.MsgI("테스트라 메일 체크를 끕니다");
chkSendMail.Checked = false;
}
//동일날짜에 등록된 자료가있다면 오류로 처리한다.
if (dr.RowState == DataRowState.Detached)
{
var db = new EEEntities();
string chkdt = tbSD.Value.ToShortDateString();
var existdb = db.EETGW_HolydayRequest.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.uid == uid.ToString() && t.sdate == chkdt).Any();
if (existdb)
{
FCOMMON.Util.MsgE("동일 날짜에 등록된 자료가 있습니다");
return;
}
}
//마감확인 220501
if (FCOMMON.DBM.GetMagamStatus(tbSD.Value))
{
FCOMMON.Util.MsgE("마감된 월 입니다. 입력할 수 없습니다");
return;
}
if (FCOMMON.DBM.GetMagamStatus(tbED.Value))
{
FCOMMON.Util.MsgE("마감된 월 입니다. 입력할 수 없습니다");
return;
}
if (dr.RowState == DataRowState.Detached) var uid = this.cmbUser.SelectedValue;
{ if (uid == null)
var dlg = FCOMMON.Util.MsgQ("입력을 완료하시겠습니까?\r\n관리자에게 메일로 알림이 발생 합니다"); {
if (dlg != DialogResult.Yes) return; FCOMMON.Util.MsgE("사용자가 선택되지 않았습니다");
} return;
}
if (curLevel >= 5 && rad2.Checked) //사용시간여부 확인
{ var minmsg = "해당 항목 [{0}]의 신청 가능 일(시간)이 없습니다\n\n남은 일(시간) : {1} \n\n관리자 문의 하세요";
if (string.IsNullOrEmpty(response)) bool oktime = false;
{ if (radTime.Checked) //대체사용
FCOMMON.Util.MsgE("거절 사유를 입력 해주세요"); {
tbResponse.Focus(); minmsg = minmsg.Replace("{0}", "대체");
return; if (holydata.ContainsKey("대체"))
} {
} var data = holydata["대체"].Split('|');
var = float.Parse(data[3]);
var = float.Parse(data[4]);
var = float.Parse(data[5]);
if (vTime < ) oktime = true;
else minmsg = minmsg.Replace("{1}", .ToString());
}
else minmsg = minmsg.Replace("{1}", "(자료없음)");
}
else
{
var = tbCate.Text;
minmsg = minmsg.Replace("{0}", );
if (holydata.ContainsKey())
{
var data = holydata[].Split('|');
var = float.Parse(data[0]);
var = float.Parse(data[1]);
var = float.Parse(data[2]);
if (vDay < ) oktime = true;
else minmsg = minmsg.Replace("{1}", .ToString());
}
else minmsg = minmsg.Replace("{1}", "(자료없음)");
}
if (oktime == false)
{
FCOMMON.Util.MsgE(minmsg);
return;
}
dr.uid = uid.ToString();
dr.HolyReason = tbReason.Text.Trim();
dr.HolyLocation = tbLocation.Text.Trim();
dr.HolyBackup = tbBackup.Text.Trim();
dr.cate = cate;// tbCate.Text.Trim();
if ( dr.RowState == DataRowState.Detached && dr.Remark.Contains(richTextBox1.Text) == false) // return;
dr.Remark = tbRemark.Text.Trim() + "\r\n" + this.richTextBox1.Text;
else
dr.Remark = tbRemark.Text.Trim();
dr.Response = tbResponse.Text.Trim(); //하나도 입력안했다면 경고한다
dr.sdate = tbSD.Value.ToShortDateString(); if (String.IsNullOrEmpty(tbReason.Text) && String.IsNullOrEmpty(tbLocation.Text) && String.IsNullOrEmpty(tbBackup.Text) && String.IsNullOrEmpty(tbRemark.Text))
dr.edate = tbED.Value.ToShortDateString(); {
dr.sendmail = chkSendMail.Checked; //220104 FCOMMON.Util.MsgE("비고를 입력해주세요");
tbRemark.Focus();
return;
}
dr.HolyDays = vDay; if (tbRemark.Text.StartsWith("테스트") && chkSendMail.Checked)
dr.HolyTimes = vTime;// {
FCOMMON.Util.MsgI("테스트라 메일 체크를 끕니다");
chkSendMail.Checked = false;
}
if (rad0.Checked) dr.conf = 0; //동일날짜에 등록된 자료가있다면 오류로 처리한다.
else if (rad1.Checked) dr.conf = 1; if (dr.RowState == DataRowState.Detached)
else if (rad2.Checked) dr.conf = 2; {
else dr.conf = 0; var db = new EEEntities();
dr.EndEdit(); string chkdt = tbSD.Value.ToShortDateString();
var existdb = db.EETGW_HolydayRequest.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.uid == uid.ToString() && t.sdate == chkdt).Any();
if (existdb)
{
FCOMMON.Util.MsgE("동일 날짜에 등록된 자료가 있습니다");
return;
}
DialogResult = DialogResult.OK; }
}
private void cmbPreset_SelectedIndexChanged(object sender, EventArgs e)
{
if (cmbPreset.SelectedIndex > 0)
tbResponse.Text = cmbPreset.Text;
}
private void tbED_ValueChanged(object sender, EventArgs e) //마감확인 220501
{ if (FCOMMON.DBM.GetMagamStatus(tbSD.Value))
UpdateStatus(); {
FCOMMON.Util.MsgE("마감된 월 입니다. 입력할 수 없습니다");
return;
}
if (FCOMMON.DBM.GetMagamStatus(tbED.Value))
{
FCOMMON.Util.MsgE("마감된 월 입니다. 입력할 수 없습니다");
return;
}
} if (dr.RowState == DataRowState.Detached)
{
var dlg = FCOMMON.Util.MsgQ("입력을 완료하시겠습니까?\r\n관리자에게 메일로 알림이 발생 합니다");
if (dlg != DialogResult.Yes) return;
}
void UpdateStatus() if (curLevel >= 5 && rad2.Checked)
{ {
//해당 값이 오늘보다 이전이라면 메일전송을 자동 해제하낟. if (string.IsNullOrEmpty(response))
var v = tbED.Value.ToShortDateString(); {
var s = tbSD.Value.ToShortDateString(); FCOMMON.Util.MsgE("거절 사유를 입력 해주세요");
tbResponse.Focus();
return;
}
}
var c = DateTime.Now.ToShortDateString(); dr.uid = uid.ToString();
if (v.CompareTo(c) < 0) dr.HolyReason = tbReason.Text.Trim();
chkSendMail.Checked = false; dr.HolyLocation = tbLocation.Text.Trim();
else dr.HolyBackup = tbBackup.Text.Trim();
chkSendMail.Checked = true; dr.cate = cate;// tbCate.Text.Trim();
//일수계산 if (dr.RowState == DataRowState.Detached && dr.Remark.Contains(richTextBox1.Text) == false)
//var term = tbED.Value - tbSD.Value; dr.Remark = tbRemark.Text.Trim() + "\r\n" + this.richTextBox1.Text;
//var days = term.Days + 1; else
//if (radTime.Checked == false) dr.Remark = tbRemark.Text.Trim();
//{
// //if(tbDays.Text.isEmpty() || tbDays.Text=="0")
// {
// tbDays.Text = (days).ToString();
// }
//} dr.Response = tbResponse.Text.Trim();
//else dr.sdate = tbSD.Value.ToShortDateString();
//{ dr.edate = tbED.Value.ToShortDateString();
// //여기는 시간 dr.sendmail = chkSendMail.Checked; //220104
// //if (tbTimes.Text.isEmpty() || tbTimes.Text == "0")
// {
// tbTimes.Text = (days * 8).ToString();
// }
//}
}
private void radioButton1_CheckedChanged(object sender, EventArgs e) dr.HolyDays = vDay;
{ dr.HolyTimes = vTime;//
if (radTime.Checked)
{
tbCate.Enabled = false;
tbDays.Enabled = false;
tbTimes.Enabled = true;
tbDays.BackColor = Color.DimGray;
tbTimes.BackColor = Color.Gold;
groupBox1.Text = "사용시간";
}
else
{
tbCate.Enabled = true;
tbDays.Enabled = true;
tbTimes.Enabled = false;
tbTimes.BackColor = Color.DimGray;
tbDays.BackColor = Color.Gold;
groupBox1.Text = "사용일";
}
if (binit)
UpdateStatus();
}
private void label11_Click(object sender, EventArgs e) if (rad0.Checked) dr.conf = 0;
{ else if (rad1.Checked) dr.conf = 1;
else if (rad2.Checked) dr.conf = 2;
else dr.conf = 0;
dr.EndEdit();
} DialogResult = DialogResult.OK;
}
private void tbDays_TextChanged(object sender, EventArgs e) private void cmbPreset_SelectedIndexChanged(object sender, EventArgs e)
{ {
if (cmbPreset.SelectedIndex > 0)
tbResponse.Text = cmbPreset.Text;
}
} private void tbED_ValueChanged(object sender, EventArgs e)
{
UpdateStatus();
private void grpUser_Enter(object sender, EventArgs e) }
{
} void UpdateStatus()
{
//해당 값이 오늘보다 이전이라면 메일전송을 자동 해제하낟.
var v = tbED.Value.ToShortDateString();
var s = tbSD.Value.ToShortDateString();
private void tbLocation_SelectedIndexChanged(object sender, EventArgs e) var c = DateTime.Now.ToShortDateString();
{ if (v.CompareTo(c) < 0)
chkSendMail.Checked = false;
else
chkSendMail.Checked = true;
} //일수계산
//var term = tbED.Value - tbSD.Value;
//var days = term.Days + 1;
//if (radTime.Checked == false)
//{
// //if(tbDays.Text.isEmpty() || tbDays.Text=="0")
// {
// tbDays.Text = (days).ToString();
// }
private void tbReason_SelectedIndexChanged(object sender, EventArgs e) //}
{ //else
//{
// //여기는 시간
// //if (tbTimes.Text.isEmpty() || tbTimes.Text == "0")
// {
// tbTimes.Text = (days * 8).ToString();
// }
//}
}
} private void radioButton1_CheckedChanged(object sender, EventArgs e)
{
if (radTime.Checked)
{
tbCate.Enabled = false;
tbDays.Enabled = false;
tbTimes.Enabled = true;
tbDays.BackColor = Color.DimGray;
tbTimes.BackColor = Color.Gold;
groupBox1.Text = "사용시간";
}
else
{
tbCate.Enabled = true;
tbDays.Enabled = true;
tbTimes.Enabled = false;
tbTimes.BackColor = Color.DimGray;
tbDays.BackColor = Color.Gold;
groupBox1.Text = "사용일";
}
if (binit)
UpdateStatus();
}
private void label9_Click(object sender, EventArgs e) private void label11_Click(object sender, EventArgs e)
{ {
} }
private void cmbUser_SelectedIndexChanged(object sender, EventArgs e) private void tbDays_TextChanged(object sender, EventArgs e)
{ {
var uiddt = this.cmbUser.SelectedValue;
if (uiddt == null) return;
var uid = uiddt.ToString();
var lst = FCOMMON.DBM.GetUserHolidayJan(FCOMMON.info.Login.gcode, uid, DateTime.Now.AddDays(-1).ToShortDateString());
this.richTextBox1.Clear(); }
foreach (var item in lst)
{
var val = item.Value.Split('|');
if (val[2] != "0")
{
var perc = 0f;
if (val[0] != "0") perc = float.Parse(val[1]) / float.Parse(val[0]);
if (richTextBox1.TextLength > 0) richTextBox1.AppendText(",");
richTextBox1.AppendText($"[{item.Key}] {val[2]}일 남음({perc * 100:N1}%사용)");
}
else if (val[5] != "0")
{
var perc = 0f;
if (val[3] != "0") perc = float.Parse(val[4]) / float.Parse(val[3]);
if (richTextBox1.TextLength > 0) richTextBox1.AppendText(",");
richTextBox1.AppendText($"[{item.Key}] {val[5]}시간 남음({perc * 100:N1}%사용)");
}
} private void grpUser_Enter(object sender, EventArgs e)
} {
}
}
private void tbLocation_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void tbReason_SelectedIndexChanged(object sender, EventArgs e)
{
}
private void label9_Click(object sender, EventArgs e)
{
}
Dictionary<string, string> holydata = new Dictionary<string, string>();
private void cmbUser_SelectedIndexChanged(object sender, EventArgs e)
{
var uiddt = this.cmbUser.SelectedValue;
if (uiddt == null) return;
var uid = uiddt.ToString();
holydata = FCOMMON.DBM.GetUserHolidayJan(FCOMMON.info.Login.gcode, uid, DateTime.Now.AddDays(-1).ToShortDateString());
this.richTextBox1.Clear();
foreach (var item in holydata)
{
var val = item.Value.Split('|');
if (val[2] != "0")
{
var perc = 0f;
if (val[0] != "0") perc = float.Parse(val[1]) / float.Parse(val[0]);
if (richTextBox1.TextLength > 0) richTextBox1.AppendText(",");
richTextBox1.AppendText($"[{item.Key}] {val[2]}일 남음({perc * 100:N1}%사용)");
}
else if (val[5] != "0")
{
var perc = 0f;
if (val[3] != "0") perc = float.Parse(val[4]) / float.Parse(val[3]);
if (richTextBox1.TextLength > 0) richTextBox1.AppendText(",");
richTextBox1.AppendText($"[{item.Key}] {val[5]}시간 남음({perc * 100:N1}%사용)");
}
}
}
}
} }