This commit is contained in:
chi
2021-06-17 09:36:17 +09:00
parent 71b362c05b
commit 139c48721f
25 changed files with 5556 additions and 904 deletions

View File

@@ -137,6 +137,23 @@ namespace Project.Dialog
return;
}
if (userdr.outdate.isEmpty() == false)
{
if (DateTime.TryParse(userdr.outdate, out DateTime dtout))
{
if (DateTime.Now > dtout)
{
Util.MsgE("퇴사정보로 인해 이 계정은 로그인할 수 없습니다");
return;
}
}
else
{
Util.MsgE("퇴사일자가 입력되었지만 정상 문자열이 아니라서 진행할 수 없습니다");
return;
}
}
FCOMMON.info.Login.no = userdr.id;
FCOMMON.info.Login.nameK = userdr.name;
FCOMMON.info.Login.dept = cmbDept.Text;// userdr.dept;// cmbDept.Text;
@@ -153,13 +170,13 @@ namespace Project.Dialog
FCOMMON.info.Login.permission = 0;
FCOMMON.info.Login.gpermission = int.Parse(gperm);
FCOMMON.info.datapath = Pub.setting.SharedDataPath;
if(FCOMMON.info.datapath.isEmpty() && gCode == "EET1P") //210524
if (FCOMMON.info.datapath.isEmpty() && gCode == "EET1P") //210524
FCOMMON.info.datapath = @"\\k4fs3201n\k4bpartcenter$";
using (var dbEnity = new EEEntitiesMain())
{
var drGrpUser = dbEnity.EETGW_GroupUser.Where(t => t.uid == userdr.id & t.gcode == gCode).FirstOrDefault();
if (drGrpUser == null) FCOMMON.info.Login.process = (userdr.id == "dev" ? "개발자":"");
if (drGrpUser == null) FCOMMON.info.Login.process = (userdr.id == "dev" ? "개발자" : "");
else FCOMMON.info.Login.process = drGrpUser.Process;
}
@@ -167,7 +184,10 @@ namespace Project.Dialog
AddLoginInfo();
//210221
MakeAutoJobReport();
MakeAutoJobReportbyLogin();
//210613
MakeAutoJobReportByAuto();
DialogResult = DialogResult.OK;
}
@@ -178,7 +198,73 @@ namespace Project.Dialog
}
}
void MakeAutoJobReport()
/// <summary>
/// 무조건 업무일지를 자동으로 작성하는 경우
/// </summary>
void MakeAutoJobReportByAuto()
{
//누군가가 로그인하면 당일 자동 생성되어야할 유저의 데이터를 기록한다.
var dbi = new EEEntitiesMain();
var db = new EEEntitiesMain();
var nd = DateTime.Now.ToShortDateString();
//이 날짜가 휴일인지 체크한다.
var Holyinfo = db.HolidayLIst.Where(t => t.pdate == nd).FirstOrDefault();
if (Holyinfo != null && Holyinfo.free != null && (bool)(Holyinfo.free)) return;
//토,일은 처리하지 않음
if (DateTime.Now.DayOfWeek == DayOfWeek.Saturday || DateTime.Now.DayOfWeek == DayOfWeek.Sunday) return;
var rows = db.EETGW_JobReport_AutoInput.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.enable==true && t.autoinput == "A" && t.pdate.CompareTo(nd) <= 0 && (string.IsNullOrEmpty(t.edate) == true || t.edate.CompareTo(nd) > 0));
foreach (var dr in rows)
{
//퇴사자 확인
var userdata = db.vGroupUser.Where(t => t.id == dr.uid).FirstOrDefault();
if (userdata != null && string.IsNullOrEmpty(userdata.outdate) == false) continue;
//오늘자 자동생성된 데이터가 있다면 처리하지 않는다
if (db.JobReport.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.pdate == nd && t.uid == dr.uid && t.autoinput == true).Any()) continue;
//이데이터를 그대로 생성해준다.
var newdr = new JobReport();
newdr.gcode = FCOMMON.info.Login.gcode;
newdr.wuid = dr.uid;// FCOMMON.info.Login.no;
newdr.wdate = DateTime.Now;
newdr.pdate = nd;
newdr.import = false;
newdr.hrs = dr.hrs;
newdr.type = dr.type;//210305 누락분 추가
newdr.ot = dr.ot;
newdr.process = dr.process;
newdr.projectName = dr.projectName;
newdr.pidx = dr.pidx;
newdr.package = dr.package;
newdr.autoinput = true;
newdr.description = dr.description;
newdr.description2 = dr.description2;
newdr.remark = dr.remark;
newdr.requestpart = dr.requestpart;
newdr.status = dr.status;
newdr.tag = dr.tag;
newdr.uid = dr.uid;
dbi.JobReport.Add(newdr);
dbi.SaveChanges();
}
dbi.Dispose();
db.Dispose();
}
/// <summary>
/// 로그인으로 업무일지를 작성하는 경우
/// </summary>
void MakeAutoJobReportbyLogin()
{
//자동로그인 업무일지 기록 기능 추가 = 210220
//select* from EETGW_JobReport_AutoInput where gcode = 'EET1P' and pdate <= '2021-02-20' and(edate is null or edate > '2021-02-20') and autoinput = 'L'
@@ -189,7 +275,7 @@ namespace Project.Dialog
t.uid == FCOMMON.info.Login.no &&
t.pdate == nd).Any() == false)
{
var rows = db.EETGW_JobReport_AutoInput.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.autoinput == "L" && t.uid == FCOMMON.info.Login.no && t.pdate.CompareTo(nd) <= 0 && (string.IsNullOrEmpty(t.edate) == true || t.edate.CompareTo(nd) > 0));
var rows = db.EETGW_JobReport_AutoInput.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.enable == true && t.autoinput == "L" && t.uid == FCOMMON.info.Login.no && t.pdate.CompareTo(nd) <= 0 && (string.IsNullOrEmpty(t.edate) == true || t.edate.CompareTo(nd) > 0));
foreach (var dr in rows)
{
//이데이터를 그대로 생성해준다.