...
This commit is contained in:
@@ -14,12 +14,16 @@ namespace FBS0000
|
||||
{
|
||||
public partial class WorkTable : FCOMMON.fBase
|
||||
{
|
||||
public WorkTable(string sd, string ed, string grp)
|
||||
public WorkTable()
|
||||
{
|
||||
InitializeComponent();
|
||||
|
||||
var sd = DateTime.Now.ToString("yyyy-MM-01");
|
||||
var ed = DateTime.Parse(DateTime.Now.AddMonths(1).ToString("yyyy-MM-01")).AddDays(-1).ToShortDateString();
|
||||
|
||||
tbSD.Text = sd;
|
||||
tbED.Text = ed;
|
||||
tbGrp.Text = grp;
|
||||
tbGrp.Text = string.Empty;
|
||||
//this.dv1.CellFormatting += dv1_CellFormatting;
|
||||
}
|
||||
|
||||
@@ -40,16 +44,14 @@ namespace FBS0000
|
||||
RefreshData();
|
||||
}
|
||||
|
||||
|
||||
|
||||
void RefreshData()
|
||||
{
|
||||
fpSpread1_Sheet1.Rows.Count = 0;
|
||||
|
||||
|
||||
|
||||
//열제목
|
||||
var cols = new List<string>();
|
||||
cols.AddRange(new string[] { "번호", "사번", "직급", "성명" });
|
||||
cols.AddRange(new string[] { "분류", "사번", "직급", "성명" });
|
||||
|
||||
var sd = DateTime.Parse(tbSD.Text);
|
||||
var ed = DateTime.Parse(tbED.Text);
|
||||
@@ -57,7 +59,7 @@ namespace FBS0000
|
||||
while (true)
|
||||
{
|
||||
var curDate = sd.AddDays(idx++);
|
||||
cols.Add(curDate.Day.ToString("00"));
|
||||
cols.Add(curDate.Day.ToString("00") + "\r\n" + curDate.DayOfWeek.ToString().Substring(0, 3));
|
||||
if (curDate.ToShortDateString() == ed.ToShortDateString()) break;
|
||||
}
|
||||
cols.AddRange(new string[] { "발생", "사용", "잔여" });
|
||||
@@ -71,24 +73,34 @@ namespace FBS0000
|
||||
else if (c > cols.Count - 4) fpSpread1_Sheet1.Columns[c].BackColor = Color.WhiteSmoke;
|
||||
else fpSpread1_Sheet1.Columns[c].BackColor = Color.White;
|
||||
}
|
||||
//fpSpread1_Sheet1.Cells[0, c].Value = cols[c];
|
||||
|
||||
//업무일지 데이터
|
||||
var taJR = new dsMSSQLTableAdapters.vJobReportForUserTableAdapter();
|
||||
var JobReport = taJR.GetData(FCOMMON.info.Login.gcode, tbSD.Text, tbED.Text);
|
||||
var taHolyList = new dsMSSQLTableAdapters.HolidayLIstTableAdapter();
|
||||
var HolyList = taHolyList.GetData(tbSD.Text, tbED.Text);
|
||||
|
||||
//해당 기간내의 사용
|
||||
var taUser = new dsMSSQLTableAdapters.EETGW_WorkTableUserTableAdapter();
|
||||
var dtUser = taUser.GetData(FCOMMON.info.Login.gcode, tbGrp.Text);
|
||||
//var taUser = new dsMSSQLTableAdapters.EETGW_WorkTableUserTableAdapter();
|
||||
var dtUser = JobReport.OrderBy(t => t.userProcess+ t.name).GroupBy(t => t.id);// taUser.GetData(FCOMMON.info.Login.gcode, tbGrp.Text);
|
||||
|
||||
var users = new List<userinfo>();
|
||||
var seq = 0;
|
||||
foreach (var item in dtUser)
|
||||
{
|
||||
if (string.IsNullOrEmpty(item.indate))
|
||||
var dr = item.First();
|
||||
if (string.IsNullOrEmpty(dr.indate) == false)
|
||||
{
|
||||
//입사일자를 체크해서. 이 날짜가 입사일 이전이면 넘어간다
|
||||
}
|
||||
users.Add(new userinfo { grade = item.grade, name = item.name, empno = item.empno, seq = item.seq.ToString() });
|
||||
|
||||
users.Add(new userinfo { grade = dr.grade, name = dr.name, empno = dr.id, seq = dr.userProcess, indate = dr.indate, outdate = dr.outdate });
|
||||
seq += 1;
|
||||
}
|
||||
|
||||
//휴가테이블에서 데이터를 가져온다
|
||||
var taHoly = new dsMSSQLTableAdapters.HolydayTableAdapter();
|
||||
var dtHoly = taHoly.GetByGrp(tbSD.Text, tbED.Text, FCOMMON.info.Login.gcode, this.tbGrp.Text);
|
||||
var dtHoly = taHoly.GetByDate(FCOMMON.info.Login.gcode, tbSD.Text, tbED.Text);
|
||||
|
||||
var qta = new dsMSSQLTableAdapters.QueriesTableAdapter();
|
||||
|
||||
@@ -104,21 +116,53 @@ namespace FBS0000
|
||||
fpSpread1_Sheet1.Cells[rowindex, 2].Value = item.grade;
|
||||
fpSpread1_Sheet1.Cells[rowindex, 3].Value = item.name;
|
||||
|
||||
|
||||
//이월잔액
|
||||
var jand = qta.WorkUserJan_Yesterday_Day(FCOMMON.info.Login.gcode, item.empno,sd.ToString("yyyy-01-01"), sd.ToShortDateString(),"999999");
|
||||
var jand = qta.WorkUserJan_Yesterday_Day(FCOMMON.info.Login.gcode, item.empno, sd.ToString("yyyy-01-01"), sd.ToShortDateString(), "999999");
|
||||
var used = 0.0;
|
||||
|
||||
fpSpread1_Sheet1.Rows[rowindex].ResetBorder();
|
||||
fpSpread1_Sheet1.Rows[rowindex].Border = new FarPoint.Win.LineBorder(Color.Gainsboro, 1,false, false,true, true);
|
||||
fpSpread1_Sheet1.Rows[rowindex].Border = new FarPoint.Win.LineBorder(Color.Gainsboro, 1, false, false, true, true);
|
||||
|
||||
//각 일자별로 특이사항을 찾는다
|
||||
int c = 0;
|
||||
for (c = 4; c < cols.Count - 3; c++)
|
||||
{
|
||||
var curDate = sd.AddDays(c - 4);
|
||||
var bholy = false;
|
||||
//이날짜가 휴일인지 체크한다.
|
||||
var drHoly = HolyList.Where(t => t.pdate == curDate.ToShortDateString()).FirstOrDefault();
|
||||
if (drHoly != null && drHoly.free)
|
||||
{
|
||||
bholy = true;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.LightPink;
|
||||
if (drHoly.memo == "토요일" || drHoly.memo == "일요일")
|
||||
{
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note = drHoly.memo;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note = string.Empty;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.FromArgb(240, 240, 240); ;
|
||||
}
|
||||
|
||||
//입사일이면 메세지 추가
|
||||
if (item.indate == curDate.ToShortDateString())
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note += "입사";
|
||||
if (item.outdate == curDate.ToShortDateString())
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note += "퇴사";
|
||||
|
||||
|
||||
|
||||
var dr = dtHoly.Where(t => t.uid == item.empno && t.sdate.ToShortDateString() == curDate.ToShortDateString()).FirstOrDefault();
|
||||
if (dr != null)
|
||||
{
|
||||
//휴가내역이 있다.
|
||||
if (dr.term > 0)
|
||||
used += dr.term;
|
||||
|
||||
@@ -137,14 +181,54 @@ namespace FBS0000
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.DeepSkyBlue;
|
||||
}
|
||||
|
||||
if (string.IsNullOrEmpty(dr.contents) == false) fpSpread1_Sheet1.Cells[rowindex, c].Note = dr.contents;
|
||||
else fpSpread1_Sheet1.Cells[rowindex, c].Note = string.Empty;
|
||||
if (string.IsNullOrEmpty(dr.contents) == false) fpSpread1_Sheet1.Cells[rowindex, c].Note += $"({dr.cate}){dr.contents}";
|
||||
//else fpSpread1_Sheet1.Cells[rowindex, c].Note = string.Empty;
|
||||
}
|
||||
else
|
||||
{
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Value = string.Empty;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.White;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note = string.Empty;
|
||||
var JRUser = JobReport.Where(t => t.id == item.empno && t.pdate == curDate.ToShortDateString());
|
||||
var sum_hrs = JRUser.Sum(t => t.hrs);
|
||||
var sum_ot = JRUser.Sum(t => t.ot);
|
||||
var sum_ot2 = JRUser.Sum(t => t.ot2);
|
||||
|
||||
if (bholy) //주말이다
|
||||
{
|
||||
//주말이다.
|
||||
if (sum_ot > 0 || sum_ot2 > 0)
|
||||
{
|
||||
if (sum_ot2 == 0)
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note += $"휴일근무(미승인:{sum_ot}h)";
|
||||
else
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note += $"휴일근무({sum_ot2}h)";
|
||||
}
|
||||
else
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.White;
|
||||
}
|
||||
else
|
||||
{
|
||||
//평일인데 근무시간이 있다
|
||||
if (sum_hrs > 0)
|
||||
{
|
||||
if (sum_ot > 0 || sum_ot2 > 0)
|
||||
{
|
||||
//연장근무를 했다
|
||||
if (sum_ot2 == 0) fpSpread1_Sheet1.Cells[rowindex, c].Note += $"연장근무(미승인:{sum_ot}h)";
|
||||
else fpSpread1_Sheet1.Cells[rowindex, c].Note += $"연장근무({sum_ot2}h)";
|
||||
}
|
||||
else
|
||||
{
|
||||
//평일근무
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
//근무를 안했다
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Value = string.Empty;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.White;
|
||||
//fpSpread1_Sheet1.Cells[rowindex, c].Note = string.Empty;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -184,6 +268,9 @@ namespace FBS0000
|
||||
public string empno { get; set; }
|
||||
public string name { get; set; }
|
||||
public string grade { get; set; }
|
||||
|
||||
public string indate { get; set; }
|
||||
public string outdate { get; set; }
|
||||
public userinfo()
|
||||
{
|
||||
|
||||
@@ -248,7 +335,7 @@ namespace FBS0000
|
||||
|
||||
Outlook.Application outlookApplication = new Outlook.Application();
|
||||
Outlook.MailItem newTask = outlookApplication.CreateItem(OlItemType.olMailItem) as Outlook.MailItem;
|
||||
newTask.Subject = tbSD.Text.Substring(0,7) +"월 출근부";
|
||||
newTask.Subject = tbSD.Text.Substring(0, 7) + "월 출근부";
|
||||
//newTask.To = "Chikyun.Kim@amkor.co.kr";
|
||||
//newTask.HTMLBody = "<i><b>this is test mail</b></i>";
|
||||
newTask.BodyFormat = OlBodyFormat.olFormatHTML;
|
||||
|
||||
Reference in New Issue
Block a user