...
This commit is contained in:
@@ -75,7 +75,7 @@ namespace FBS0000
|
||||
fpSpread1_Sheet1.Columns.Count = cols.Count;
|
||||
for (int c = 0; c < cols.Count; c++)
|
||||
{
|
||||
fpSpread1_Sheet1.Columns[c].Tag = coltag[c];
|
||||
fpSpread1_Sheet1.Columns[c].Tag = new int[] { 0, 0, 0, 0 };
|
||||
fpSpread1_Sheet1.Columns[c].Label = cols[c];
|
||||
if (c < 4) fpSpread1_Sheet1.Columns[c].BackColor = Color.WhiteSmoke;
|
||||
else if (c > cols.Count - 5) fpSpread1_Sheet1.Columns[c].BackColor = Color.WhiteSmoke;
|
||||
@@ -103,16 +103,29 @@ namespace FBS0000
|
||||
//{
|
||||
// //입사일자를 체크해서. 이 날짜가 입사일 이전이면 넘어간다
|
||||
//}
|
||||
var newuser = new userinfo();
|
||||
|
||||
users.Add(new userinfo
|
||||
{
|
||||
grade = dr["grade"].ToString(),
|
||||
name = dr["name"].ToString(),
|
||||
empno = dr["id"].ToString(),
|
||||
seq = dr["process"].ToString(),
|
||||
indate = dr["indate"].ToString(),
|
||||
outdate = dr["outdate"].ToString()
|
||||
});
|
||||
|
||||
if (dr["grade"] == null) newuser.grade = string.Empty;
|
||||
newuser.grade = dr["grade"].ToString();
|
||||
|
||||
if (dr["name"] == null) newuser.name = string.Empty;
|
||||
newuser.name = dr["name"].ToString();
|
||||
|
||||
if (dr["id"] == null) newuser.empno = string.Empty;
|
||||
newuser.empno = dr["id"].ToString();
|
||||
|
||||
if (dr["process"] == null) newuser.seq = string.Empty;
|
||||
newuser.seq = dr["process"].ToString();
|
||||
|
||||
if (dr["indate"] == null) newuser.indate = string.Empty;
|
||||
newuser.indate = dr["indate"].ToString();
|
||||
|
||||
if (dr["outdate"] == null) newuser.outdate = string.Empty;
|
||||
newuser.outdate = dr["outdate"].ToString();
|
||||
|
||||
|
||||
users.Add(newuser);
|
||||
seq += 1;
|
||||
}
|
||||
|
||||
@@ -146,6 +159,9 @@ namespace FBS0000
|
||||
int c = 0;
|
||||
for (c = 4; c < cols.Count - 3; c++)
|
||||
{
|
||||
var ps = (int[])fpSpread1_Sheet1.Columns[c].Tag;
|
||||
|
||||
|
||||
var curDate = sd.AddDays(c - 4);
|
||||
var bholy = false;
|
||||
//이날짜가 휴일인지 체크한다.
|
||||
@@ -153,8 +169,9 @@ namespace FBS0000
|
||||
|
||||
if (drHoly != null && drHoly.free)
|
||||
{
|
||||
|
||||
bholy = true;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.LightPink;
|
||||
//fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.LightPink;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Tag = drHoly.memo;
|
||||
if (drHoly.memo == "토요일" || drHoly.memo == "일요일")
|
||||
{
|
||||
@@ -164,6 +181,7 @@ namespace FBS0000
|
||||
{
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note = drHoly.memo;
|
||||
}
|
||||
fpSpread1_Sheet1.Columns[c].BackColor = Color.FromArgb(250, 250, 250);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -171,6 +189,7 @@ namespace FBS0000
|
||||
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Tag = null;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note = string.Empty;
|
||||
fpSpread1_Sheet1.Columns[c].BackColor = Color.White;
|
||||
}
|
||||
|
||||
//기본으로 데이터를 초기화해준다.
|
||||
@@ -183,11 +202,29 @@ namespace FBS0000
|
||||
if (item.outdate == curDate.ToShortDateString())
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note += "퇴사";
|
||||
|
||||
//현재인원값
|
||||
var bIndate = DateTime.TryParse(item.indate, out DateTime dtIn);
|
||||
var bOutdate = DateTime.TryParse(item.outdate, out DateTime dtOut);
|
||||
Boolean usePerson = true;
|
||||
|
||||
//
|
||||
if (bIndate == true && curDate.ToShortDateString().CompareTo(dtIn.ToShortDateString()) < 0)
|
||||
usePerson = false;
|
||||
if (bOutdate == true && curDate.ToShortDateString().CompareTo(dtOut.ToShortDateString()) > 0)
|
||||
usePerson = false;
|
||||
|
||||
ps[3] = bholy ? 1 : 0;
|
||||
ps[2] += 1;
|
||||
|
||||
//근태기록에 자료가 있는지 확인한다.
|
||||
var dr = dtHoly.Where(t => t.uid == item.empno && ( t.sdate.ToShortDateString().CompareTo(curDate.ToShortDateString()) <= 0 && t.edate.ToShortDateString().CompareTo(curDate.ToShortDateString()) >= 0)).FirstOrDefault();
|
||||
var dr = dtHoly.Where(t => t.uid == item.empno && (t.sdate.ToShortDateString().CompareTo(curDate.ToShortDateString()) <= 0 && t.edate.ToShortDateString().CompareTo(curDate.ToShortDateString()) >= 0)).FirstOrDefault();
|
||||
if (dr != null && fpSpread1_Sheet1.Cells[rowindex, c].Tag == null) //휴일이 아니여야 한다
|
||||
{
|
||||
|
||||
|
||||
ps[1] += 1;
|
||||
|
||||
|
||||
//휴가내역이 있다.
|
||||
if (dr.term > 0)
|
||||
used += 1;
|
||||
@@ -205,99 +242,13 @@ namespace FBS0000
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.Gold;
|
||||
else if (dr.cate == "경조")
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.Pink;
|
||||
else if (dr.cate == "대체")
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.Gold;
|
||||
else
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.Lime;
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.LawnGreen;
|
||||
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Tag = "1";
|
||||
}
|
||||
//else if (dr.term > 0)
|
||||
//{
|
||||
|
||||
|
||||
// var timedays = dr.term;// Math.Floor(dr.CrTime / 8f);
|
||||
// var curday = 0;
|
||||
// var accday = 1;
|
||||
// //while (accday <= timedays)
|
||||
// {
|
||||
// //var remaintime = dr.CrTime - accday * 8f;
|
||||
// var columnindex = c + curday;
|
||||
|
||||
// if (columnindex >= fpSpread1_Sheet1.ColumnCount) break;
|
||||
|
||||
// var columnDate = (DateTime)this.fpSpread1_Sheet1.Columns[columnindex].Tag;
|
||||
|
||||
|
||||
// var drHolyChk = HolyList.Where(t => t.pdate == columnDate.ToShortDateString()).FirstOrDefault();
|
||||
// var drholyOK = false;
|
||||
// if (drHolyChk != null && drHolyChk.free) drholyOK = true; //이러면 휴일이었다
|
||||
|
||||
// if (drholyOK == false)
|
||||
// {
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c + curday].Value = dr.cate.Substring(0, 2);
|
||||
|
||||
// if (dr.cate == "이월")
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c + curday].BackColor = Color.Gold;
|
||||
// else if (dr.cate == "경조")
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c + curday].BackColor = Color.Pink;
|
||||
// else
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c + curday].BackColor = Color.Lime;
|
||||
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c + curday].Tag = "1";
|
||||
// accday += 1;
|
||||
// }
|
||||
|
||||
// curday += 1;
|
||||
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
// //for (int ii = 0; ii < dr.term; ii++)
|
||||
// //{
|
||||
|
||||
// // if (dr.cate == "이월")
|
||||
// // fpSpread1_Sheet1.Cells[rowindex, c + ii].BackColor = Color.Gold;
|
||||
// // else
|
||||
// // fpSpread1_Sheet1.Cells[rowindex, c + ii].BackColor = Color.Lime;
|
||||
// // fpSpread1_Sheet1.Cells[rowindex, c + ii].Value = dr.cate.Substring(0, 2);
|
||||
// // fpSpread1_Sheet1.Cells[rowindex, c + ii].Tag = "1";
|
||||
// //}
|
||||
//}
|
||||
//else if (dr.term != 0)
|
||||
//{
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c].Value = dr.term.ToString() + "Y";
|
||||
//}
|
||||
|
||||
//if (dr.CrTime != 0)
|
||||
//{
|
||||
// var timedays = Math.Floor(dr.CrTime / 8f);
|
||||
// var curday = 0;
|
||||
// var accday = 1;
|
||||
// while (accday <= timedays)
|
||||
// {
|
||||
// var remaintime = dr.CrTime - ((accday - 1) * 8f);
|
||||
// var columnindex = c + curday;
|
||||
// var columnDate = (DateTime)this.fpSpread1_Sheet1.Columns[columnindex].Tag;
|
||||
|
||||
|
||||
// var drHolyChk = HolyList.Where(t => t.pdate == columnDate.ToShortDateString()).FirstOrDefault();
|
||||
// var drholyOK = false;
|
||||
// if (drHolyChk != null && drHolyChk.free) drholyOK = true; //이러면 휴일이었다
|
||||
|
||||
// if (drholyOK == false)
|
||||
// {
|
||||
// if (remaintime > 8) remaintime = 8;
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c + curday].Value = remaintime.ToString();
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c + curday].BackColor = Color.DeepSkyBlue;
|
||||
// fpSpread1_Sheet1.Cells[rowindex, c + curday].Tag = "1";
|
||||
// accday += 1;
|
||||
// }
|
||||
|
||||
// curday += 1;
|
||||
|
||||
// }
|
||||
//}
|
||||
|
||||
if (string.IsNullOrEmpty(dr.contents) == false)
|
||||
{
|
||||
@@ -311,6 +262,9 @@ namespace FBS0000
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
ps[0] += 1;
|
||||
|
||||
var pdate = curDate.ToShortDateString();
|
||||
if (pdate == "2022-02-07" && item.empno == "66630")
|
||||
{
|
||||
@@ -337,8 +291,8 @@ namespace FBS0000
|
||||
else
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].Note += $"휴일근무({sum_ot2}h)";
|
||||
}
|
||||
else
|
||||
fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.White;
|
||||
//else
|
||||
//fpSpread1_Sheet1.Cells[rowindex, c].BackColor = Color.White;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -380,6 +334,8 @@ namespace FBS0000
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fpSpread1_Sheet1.Columns[c].Tag = ps;
|
||||
}
|
||||
|
||||
var jan = jand - used;
|
||||
@@ -388,6 +344,51 @@ namespace FBS0000
|
||||
fpSpread1_Sheet1.Cells[rowindex, c++].Value = jan > 0 ? jan.ToString() : string.Empty;
|
||||
|
||||
rowindex += 1;
|
||||
} // --users
|
||||
|
||||
//총요약을 넣는다
|
||||
fpSpread1_Sheet1.RowCount += 1;
|
||||
fpSpread1_Sheet1.RowCount += 1;
|
||||
fpSpread1_Sheet1.RowCount += 1;
|
||||
fpSpread1_Sheet1.Rows[rowindex + 0].Border = new FarPoint.Win.LineBorder(Color.Gainsboro, 1, false, false, true, true);
|
||||
fpSpread1_Sheet1.Rows[rowindex + 1].Border = new FarPoint.Win.LineBorder(Color.Gainsboro, 1, false, false, true, true);
|
||||
fpSpread1_Sheet1.Rows[rowindex + 2].Border = new FarPoint.Win.LineBorder(Color.Gainsboro, 1, false, false, true, true);
|
||||
//fpSpread1_Sheet1.RowCount += 1;
|
||||
|
||||
fpSpread1_Sheet1.Cells[rowindex + 0, 3].Value = "근무";
|
||||
//fpSpread1_Sheet1.Cells[rowindex + 1, 3].Value = "휴가";
|
||||
fpSpread1_Sheet1.Cells[rowindex + 1, 3].Value = "근무율(%)";// ps[0].ToString(); //근무율
|
||||
fpSpread1_Sheet1.Cells[rowindex + 2, 3].Value = "총원";
|
||||
|
||||
|
||||
for (var col = 4; col < cols.Count - 3; col++)
|
||||
{
|
||||
var ps = (int[])fpSpread1_Sheet1.Columns[col].Tag;
|
||||
if (ps[3] == 1)
|
||||
{
|
||||
fpSpread1_Sheet1.Cells[rowindex + 0, col].Value = "--";
|
||||
fpSpread1_Sheet1.Cells[rowindex + 1, col].Value = "--";
|
||||
fpSpread1_Sheet1.Cells[rowindex + 2, col].Value = "--";
|
||||
}
|
||||
else
|
||||
{
|
||||
var krate = (ps[0] * 1f / ps[2]);
|
||||
var trans = (int)(krate * 254);
|
||||
fpSpread1_Sheet1.Cells[rowindex + 0, col].Value = ps[0].ToString(); //근무
|
||||
//fpSpread1_Sheet1.Cells[rowindex + 1, col].Value = ps[1].ToString(); //휴가
|
||||
fpSpread1_Sheet1.Cells[rowindex + 1, col].Value = (krate * 100f).ToString("N0");
|
||||
fpSpread1_Sheet1.Cells[rowindex + 1, col].Note = $"근무:{ps[0]}\n휴가:{ps[1]}\n총원:{ps[2]}";
|
||||
|
||||
|
||||
fpSpread1_Sheet1.Cells[rowindex + 2, col].Value = ps[2].ToString(); //총원
|
||||
|
||||
if (krate >= 0.8) fpSpread1_Sheet1.Cells[rowindex + 1, col].BackColor = Color.FromArgb(trans, Color.LightGreen);
|
||||
else if (krate >= 0.6) fpSpread1_Sheet1.Cells[rowindex + 1, col].BackColor = Color.FromArgb(trans, Color.LightSkyBlue);
|
||||
else if (krate >= 0.4) fpSpread1_Sheet1.Cells[rowindex + 1, col].BackColor = Color.FromArgb(trans, Color.HotPink);
|
||||
else fpSpread1_Sheet1.Cells[rowindex + 1, col].BackColor = Color.FromArgb(trans, Color.Tomato);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user