업무일지 검색기능 강화

This commit is contained in:
chikyun.kim
2019-05-08 11:49:55 +09:00
parent 0dd2f55820
commit 7adfebe609
20 changed files with 4047 additions and 85 deletions

View File

@@ -12,10 +12,10 @@ namespace FPJ0000.JobReport
public partial class fJobReport_Add : Form
{
dsPRJ.JobReportRow dr;
public fJobReport_Add( dsPRJ.JobReportRow dr_ )
public fJobReport_Add(dsPRJ.JobReportRow dr_)
{
InitializeComponent();
dr =dr_;
dr = dr_;
this.KeyPreview = true;
this.StartPosition = FormStartPosition.CenterScreen;
this.KeyDown += (s1, e1) =>
@@ -76,7 +76,7 @@ namespace FPJ0000.JobReport
this.cmbUser.DataSource = dt_users;
if (FCOMMON.info.Login.level < 5) cmbUser.Enabled = false;
// tbWW.Text = dr.ww;
// tbWW.Text = dr.ww;
dtPdate.Value = DateTime.Parse(dr.pdate); //일자선택
cmbUser.SelectedValue = dr.uid;
tbProject.Text = dr.projectName;
@@ -127,7 +127,7 @@ namespace FPJ0000.JobReport
// tbSID.Focus();
// break;
case "tbdescription":
if(e.Control)
if (e.Control)
{
btSave.Focus();
}
@@ -135,7 +135,7 @@ namespace FPJ0000.JobReport
case "tbproject":
if (search != "")
{
FCM0000.fLovProject f = new FCM0000.fLovProject("%" + search + "%");
var f = new fLovProject("%" + search + "%");
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
this.tbProject.Text = f.Title;
@@ -143,12 +143,16 @@ namespace FPJ0000.JobReport
tbHrs.Focus();
tbHrs.SelectAll();
if(tbProjectIndex.Tag.ToString() != f.Index.ToString())
if (tbProjectIndex.Tag.ToString() != f.Index.ToString() || f.Index == -1)
{
//마지막 데이터를 찾아서 공정등의 정보를 업데이트한다.
var uid = cmbUser.SelectedValue.ToString();
var lastDt = FCOMMON.DBM.getLastJobReportData(uid,f.Index);
if(lastDt != null && lastDt.Rows.Count > 0)
DataTable lastDt = null;
if (f.Index != -1) lastDt = FCOMMON.DBM.getLastJobReportData(uid, f.Index);
else lastDt = FCOMMON.DBM.getLastJobReportDatabyProjectName(uid, f.Title);
if (lastDt != null && lastDt.Rows.Count > 0)
{
var predr = lastDt.Rows[0];
@@ -171,7 +175,7 @@ namespace FPJ0000.JobReport
//이름만 사용한다.
tbProjectIndex.Text = "-1";
cmbRequest.Focus();
}
}
}
else
{
@@ -179,7 +183,7 @@ namespace FPJ0000.JobReport
var tb = sender as TextBox;
tb.SelectAll();
tb.Focus();
}
}
break;
default:
@@ -204,14 +208,14 @@ namespace FPJ0000.JobReport
// tbProject.Focus();
// return;
//}
if(cmbType.Text != "휴가" && tbDescription.Text.Trim()=="")
if (cmbType.Text != "휴가" && tbDescription.Text.Trim() == "")
{
FCOMMON.Util.MsgE("진행 내용이 없습니다.");
tbDescription.Focus();
return;
}
float hour = Single.Parse(tbHrs.Text) + Single.Parse(tbOt.Text);
if(hour == 0)
if (hour == 0)
{
FCOMMON.Util.MsgE("근무시간/초과시간이 입력되지 않았습니다.");
if (tbHrs.Enabled) tbHrs.Focus();
@@ -231,7 +235,7 @@ namespace FPJ0000.JobReport
cmbProcess.Focus();
return;
}
if(cmbUser.SelectedIndex <0)
if (cmbUser.SelectedIndex < 0)
{
FCOMMON.Util.MsgE("담당자가 선택되지 않았습니다.");
cmbUser.Focus();
@@ -241,10 +245,10 @@ namespace FPJ0000.JobReport
///휴일체크
var taQ = new dsQueryTableAdapters.QueriesTableAdapter();
var freeday = taQ.CheckHoliday(dtPdate.Value.ToShortDateString());
if(freeday != null && freeday ==true)
if (freeday != null && freeday == true)
{
var hrs = float.Parse(tbHrs.Text);
if(hrs > 0)
if (hrs > 0)
{
FCOMMON.Util.MsgI("입력일자는 휴일로 등록되어 있습니다.\n\n근무시간은 OT에 입력하시기 바랍니다.");
//tbOt.Text = tbHrs.Text;
@@ -275,21 +279,21 @@ namespace FPJ0000.JobReport
private void cmbType_SelectedIndexChanged(object sender, EventArgs e)
{
if(cmbType.Text.Trim() != "" &&
cmbType.SelectedIndex >= 0 &&
cmbProcess.SelectedIndex < 0 &&
if (cmbType.Text.Trim() != "" &&
cmbType.SelectedIndex >= 0 &&
cmbProcess.SelectedIndex < 0 &&
cmbUser.SelectedValue != null)
{
//공정을 자동선택해준다.
//마지막 데이터를 찾아서 공정등의 정보를 업데이트한다.
var uid = cmbUser.SelectedValue.ToString();
var lastDt = FCOMMON.DBM.getLastJobReportData(uid,cmbType.Text.Trim());
var uid = cmbUser.SelectedValue.ToString();
var lastDt = FCOMMON.DBM.getLastJobReportData(uid, cmbType.Text.Trim());
if (lastDt != null && lastDt.Rows.Count > 0)
{
var predr = lastDt.Rows[0];// as dsPRJ.JobReportRow;
if(predr["process"] != DBNull.Value)
if (predr["process"] != DBNull.Value)
cmbProcess.Text = predr["process"].ToString(); //190506
}
}
}
@@ -297,36 +301,37 @@ namespace FPJ0000.JobReport
private void dtPdate_ValueChanged(object sender, EventArgs e)
{
var myCI = new System.Globalization.CultureInfo("ko-KR");
var myCal = myCI.Calendar;
var myCWR = myCI.DateTimeFormat.CalendarWeekRule;
DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;
var dat = myCal.GetWeekOfYear(dtPdate.Value, myCWR, myFirstDOW);
tbWW.Text = "ww"+dat.ToString();
UpdateWOrkTime();
var myCal = myCI.Calendar;
var myCWR = myCI.DateTimeFormat.CalendarWeekRule;
DayOfWeek myFirstDOW = myCI.DateTimeFormat.FirstDayOfWeek;
var dat = myCal.GetWeekOfYear(dtPdate.Value, myCWR, myFirstDOW);
tbWW.Text = "ww" + dat.ToString();
UpdateWOrkTime();
//공휴일이면 시간을 초기화한다.
if (tbHrs.Text == "") tbHrs.Text = "0";
if (tbOt.Text == "") tbOt.Text = "0";
float hrs = float.Parse(tbHrs.Text);
if (dtPdate.Value.DayOfWeek == DayOfWeek.Saturday || dtPdate.Value.DayOfWeek == DayOfWeek.Sunday)
{
tbHrs.Enabled = false;
if (hrs != 0)
{
FCOMMON.Util.MsgI("공휴일에는 근무시간을 입력할 수 없습니다.\n초과시간에 입력하세요.\n\n해당 값은 삭제 됩니다.");
tbHrs.Text = "0";
if (hrs != 8) tbOt.Text = hrs.ToString();
tbOt.Focus();
}
}
else tbHrs.Enabled = true;
if (tbHrs.Text == "") tbHrs.Text = "0";
if (tbOt.Text == "") tbOt.Text = "0";
float hrs = float.Parse(tbHrs.Text);
if (dtPdate.Value.DayOfWeek == DayOfWeek.Saturday || dtPdate.Value.DayOfWeek == DayOfWeek.Sunday)
{
tbHrs.Enabled = false;
if (hrs != 0)
{
FCOMMON.Util.MsgI("공휴일에는 근무시간을 입력할 수 없습니다.\n초과시간에 입력하세요.\n\n해당 값은 삭제 됩니다.");
tbHrs.Text = "0";
if (hrs != 8) tbOt.Text = hrs.ToString();
tbOt.Focus();
}
}
else tbHrs.Enabled = true;
}
void UpdateWOrkTime()
{
//이번달 근무시간 및 초과시간 구하기
if (cmbUser.SelectedValue != null)
{
int work, ot, total;
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";
lbSummary.Text = string.Format(msg, work, total, ot);
@@ -338,8 +343,8 @@ namespace FPJ0000.JobReport
}
private void cmbUser_SelectedIndexChanged(object sender, EventArgs e)
{
if(cmbUser.SelectedIndex >=0)
UpdateWOrkTime();;
if (cmbUser.SelectedIndex >= 0)
UpdateWOrkTime(); ;
}
}