ot 시간 범위 입렭 가능 하게

This commit is contained in:
chi
2021-07-23 23:10:03 +09:00
parent a0dfdf7cbe
commit 978e1e489e
11 changed files with 1076 additions and 309 deletions

View File

@@ -63,6 +63,8 @@ namespace FPJ0000.JobReport_
{
//사용자목록
this.bs.DataSource = dr;
this.dateTimePicker1.CustomFormat = "yyyy-MM-dd HH:mm";
this.dateTimePicker2.CustomFormat = "yyyy-MM-dd HH:mm";
//해당 사용자에 걸린 프로젝트 목록 가져오기
var userProject = FCOMMON.DBM.getUserProjectList(FCOMMON.info.Login.nameK);
@@ -119,9 +121,25 @@ namespace FPJ0000.JobReport_
cmbProcess.SelectedValue = dr.process;
tbTag.Text = dr.tag;
if (dr.IsotStartNull()) dateTimePicker1.Value = DateTime.Now;
else dateTimePicker1.Value = dr.otStart;
if (dr.IsotEndNull()) dateTimePicker2.Value = DateTime.Now;
else dateTimePicker2.Value = dr.otEnd;
//if (cmbRequest.Text == "") cmbRequest.Text = "EE1";
if (cmbPackage.Text == "") cmbPackage.Text = "Common";
if (dr.ot != 0)
{
dateTimePicker1.Enabled = true;
dateTimePicker2.Enabled = true;
}
else
{
dateTimePicker1.Enabled = false;
dateTimePicker2.Enabled = false;
}
//프로젝트 번호 확인(프로젝트번호가 바뀌면 데이터를 업데이트 해준다)
if (dr.IspidxNull())
{
@@ -372,6 +390,38 @@ namespace FPJ0000.JobReport_
return;
}
if (double.TryParse(tbOt.Text, out double ot))
{
var timeterm = dateTimePicker2.Value - dateTimePicker1.Value;
if ((timeterm.TotalMinutes + 1) * 60 <= ot)
{
FCOMMON.Util.MsgE($"OT시간이 지정된 시간대보다 부족합니다.\nOT시간정보를 확인하세요\n" +
$"\n입력시간범위 : {dateTimePicker1.Value.ToString("HH:mm:ss")}~{dateTimePicker2.Value.ToString("HH:mm:ss")}" +
$"\n입력시간(시) : {timeterm.TotalMinutes * 60}");
dateTimePicker1.Focus();
return;
}
dr.ot = ot;
if(ot == 0)
{
dr.SetotStartNull();
dr.SetotEndNull();
}
else
{
dr.otStart = dateTimePicker1.Value;
dr.otEnd = dateTimePicker2.Value;
}
}
else
{
dr.ot = 0;
dr.SetotStartNull();
dr.SetotEndNull();
}
//if(hrs2 > 8)
//{
// FCOMMON.Util.MsgE("1일 최대근무시간은 8시간을 초과할 수 없습니다\n초과시간을 사용하세요");
@@ -393,8 +443,7 @@ namespace FPJ0000.JobReport_
this.dr.tag = tbTag.Text.Trim();
if (tbHrs.Text != "") this.dr.hrs = double.Parse(tbHrs.Text);
else this.dr.hrs = 0;
if (tbOt.Text != "") this.dr.ot = double.Parse(tbOt.Text);
else this.dr.ot = 0;
//this.dr.description = richTextBox1.Text.Trim();
//MessageBox.Show(richTextBox1.Text);
@@ -453,22 +502,22 @@ namespace FPJ0000.JobReport_
{
//뭔가 자료가 있는가?
var header = string.Empty;
var rt = new RichTextBoxEx.RichTextBoxEx();
rt.Rtf = dr.body;
rt.Rtf = dr.body;
if (rt.Text.Length > 10) header = rt.Text.Substring(0, 10).Trim();
else header = rt.Text.Trim();
rt.Dispose();
if (this.richTextBoxEx1.Text.StartsWith(header) ==false)
if (this.richTextBoxEx1.Text.StartsWith(header) == false)
{
//if (FCOMMON.Util.MsgQ("등록된 작성 양식이 있습니다. 적용할까요?") == DialogResult.Yes)
{
var oldtext = this.richTextBoxEx1.Text;
this.richTextBoxEx1.Rtf = dr.body;
if (this.richTextBoxEx1.Text.isEmpty() == false)
this.richTextBoxEx1.Text += "\r\n\r\n"+oldtext;
this.richTextBoxEx1.Text += "\r\n\r\n" + oldtext;
//this.richTextBoxEx1.Text += oldtext;
@@ -517,7 +566,7 @@ namespace FPJ0000.JobReport_
float work, ot;
int total;
FCOMMON.DBM.getWorkTime(cmbUser.SelectedValue.ToString(), dtPdate.Value.ToString("yyyy-MM"), out work, out total, out ot);
string msg = "금월 근무시간 : {0:N1}h / {1:N0}h\n금월 초과시간 : {2:N1}h";
string msg = "금월 근무시간 : {0:N1}h / {1:N0}h, 금월 초과시간 : {2:N1}h";
lbSummary.Text = string.Format(msg, work, total, ot);
}
else
@@ -531,5 +580,39 @@ namespace FPJ0000.JobReport_
UpdateWOrkTime(); ;
}
private void tbOt_Validated(object sender, EventArgs e)
{
if (double.TryParse(tbOt.Text, out double ot))
{
if (ot != 0)
{
dateTimePicker1.Enabled = true;
dateTimePicker2.Enabled = true;
//신규데이터라면 자동으로 시간을 설정해준다
if (dr.RowState == DataRowState.Added || dr.RowState == DataRowState.Detached)
{
if (dateTimePicker1.Value == dateTimePicker2.Value)
{
dateTimePicker1.Value = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd" + " 18:00:00"));
dateTimePicker2.Value = dateTimePicker1.Value.AddHours(ot);
}
}
}
else
{
dateTimePicker1.Enabled = false;
dateTimePicker2.Enabled = false;
}
}
else
{
dateTimePicker1.Enabled = false;
dateTimePicker2.Enabled = false;
}
}
}
}