Merge branch 'develop' into working
Some checks failed
release-dev / release-dev (push) Failing after 11s
Some checks failed
release-dev / release-dev (push) Failing after 11s
This commit is contained in:
commit
86e711d616
2 changed files with 79 additions and 15 deletions
|
|
@ -408,6 +408,22 @@ namespace BMA.EHR.Domain.Extensions
|
|||
public int days { get; set; }
|
||||
}
|
||||
|
||||
// แปลงจาก DayOfWeek เป็นภาษาไทย
|
||||
public static string GetThaiDayOfWeek(this DateTime date)
|
||||
{
|
||||
return date.DayOfWeek switch
|
||||
{
|
||||
DayOfWeek.Sunday => "อาทิตย์",
|
||||
DayOfWeek.Monday => "จันทร์",
|
||||
DayOfWeek.Tuesday => "อังคาร",
|
||||
DayOfWeek.Wednesday => "พุธ",
|
||||
DayOfWeek.Thursday => "พฤหัสบดี",
|
||||
DayOfWeek.Friday => "ศุกร์",
|
||||
DayOfWeek.Saturday => "เสาร์",
|
||||
_ => "ไม่ทราบ"
|
||||
};
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
|
|
|
|||
|
|
@ -71,6 +71,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
_httpContextAccessor = httpContextAccessor;
|
||||
_permission = permission;
|
||||
}
|
||||
private class LoopDate
|
||||
{
|
||||
public DateTime date { get; set; }
|
||||
|
||||
public bool isHoliday { get; set; }
|
||||
}
|
||||
private class DateResultReport
|
||||
{
|
||||
public int no { get; set; }
|
||||
|
||||
public string fullName { get; set; }
|
||||
public string dutyTimeName { get; set; }
|
||||
public string checkInLocation { get; set; }
|
||||
public string checkInTime { get; set; }
|
||||
public string checkOutLocation { get; set; }
|
||||
public string checkOutTime { get; set; }
|
||||
public string remark { get; set; }
|
||||
public string checkInDate { get; set; }
|
||||
public string checkedOutDate { get; set; }
|
||||
public DateTime? checkInTimeRaw { get; set; }
|
||||
public DateTime? checkOutTimeRaw { get; set; }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
|
|
@ -1150,15 +1172,28 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var weekend = _holidayRepository.GetWeekEnd(req.StartDate.Date, req.EndDate.Date);
|
||||
var excludeDates = holidays.Union(weekend).ToList();
|
||||
|
||||
var dateList = new List<DateTime>();
|
||||
|
||||
var dateList = new List<LoopDate>();
|
||||
for (DateTime i = req.StartDate.Date; i <= req.EndDate.Date; i = i.AddDays(1))
|
||||
{
|
||||
// if (!excludeDates.Contains(i))
|
||||
dateList.Add(i);
|
||||
if (excludeDates.Contains(i))
|
||||
{
|
||||
dateList.Add(new LoopDate
|
||||
{
|
||||
date = i,
|
||||
isHoliday = true,
|
||||
});
|
||||
}
|
||||
else
|
||||
{
|
||||
dateList.Add(new LoopDate
|
||||
{
|
||||
date = i,
|
||||
isHoliday = false,
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var employees = new List<dynamic>();
|
||||
var employees = new List<DateResultReport>();
|
||||
var count = 1;
|
||||
|
||||
var restTotal = 0;
|
||||
|
|
@ -1174,7 +1209,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
{
|
||||
var keycloakUserId = p.Keycloak ?? Guid.Empty;
|
||||
|
||||
var timeStamps = await _processUserTimeStampRepository.GetTimestampByDateAsync(keycloakUserId, dd);
|
||||
var timeStamps = await _processUserTimeStampRepository.GetTimestampByDateAsync(keycloakUserId, dd.date);
|
||||
|
||||
var fullName = $"{p.Prefix}{p.FirstName} {p.LastName}"; // _userProfileRepository.GetUserFullName(keycloakUserId, AccessToken);
|
||||
|
||||
|
|
@ -1191,7 +1226,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
var duty = userRound ?? defaultRound;
|
||||
|
||||
// check วันลาของแต่ละคน
|
||||
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(keycloakUserId, dd);
|
||||
var leaveReq = await _leaveRequestRepository.GetLeavePeriodAsync(keycloakUserId, dd.date);
|
||||
var remarkStr = string.Empty;
|
||||
|
||||
if (leaveReq != null)
|
||||
|
|
@ -1217,8 +1252,14 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
{
|
||||
if (timeStamps == null)
|
||||
{
|
||||
if (dd <= DateTime.Now.Date)
|
||||
if (dd.date <= DateTime.Now.Date)
|
||||
{
|
||||
remarkStr = "ขาดราชการ";
|
||||
if (dd.isHoliday == true)
|
||||
{
|
||||
remarkStr = "วันหยุด";
|
||||
}
|
||||
}
|
||||
else remarkStr = "";
|
||||
}
|
||||
else
|
||||
|
|
@ -1253,7 +1294,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
}
|
||||
}
|
||||
|
||||
var emp = new
|
||||
var emp = new DateResultReport
|
||||
{
|
||||
no = count,
|
||||
fullName = fullName,
|
||||
|
|
@ -1266,11 +1307,13 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
$"{timeStamps.CheckOut.Value.ToString("HH:mm")} น." :
|
||||
"",
|
||||
remark = remarkStr,
|
||||
checkInDate = timeStamps == null ? dd.Date.ToThaiFullDate2().ToThaiNumber() : timeStamps.CheckIn.Date.ToThaiFullDate2().ToThaiNumber(),
|
||||
checkedOutDate = timeStamps == null ? dd.Date.ToThaiFullDate2().ToThaiNumber() :
|
||||
checkInDate = timeStamps == null ? dd.date.Date.ToThaiFullDate2() : timeStamps.CheckIn.Date.ToThaiFullDate2(),
|
||||
checkedOutDate = timeStamps == null ? dd.date.Date.ToThaiFullDate2() :
|
||||
timeStamps.CheckOut != null ?
|
||||
timeStamps.CheckOut.Value.ToThaiFullDate2().ToThaiNumber() :
|
||||
timeStamps.CheckOut.Value.ToThaiFullDate2() :
|
||||
"",
|
||||
checkInTimeRaw = timeStamps?.CheckIn,
|
||||
checkOutTimeRaw = timeStamps?.CheckOut,
|
||||
};
|
||||
|
||||
if (timeStamps != null)
|
||||
|
|
@ -1306,11 +1349,16 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
count++;
|
||||
}
|
||||
}
|
||||
employees = employees.OrderBy(x => x.checkInTimeRaw ?? DateTime.MaxValue).ThenBy(x => x.checkOutTimeRaw ?? DateTime.MaxValue).ToList();
|
||||
for (int i = 0; i < employees.Count; i++)
|
||||
{
|
||||
employees[i].no = i + 1;
|
||||
}
|
||||
|
||||
var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate().ToThaiNumber()}";
|
||||
var enddate = req.EndDate.Date == req.StartDate.Date ? "" : $" - {req.EndDate.Date.ToThaiShortDate()}";
|
||||
var item = new
|
||||
{
|
||||
dateTimeStamp = $"ณ วันที่ {req.StartDate.Date.ToThaiShortDate().ToThaiNumber()}{enddate}",
|
||||
dateTimeStamp = $"ณ วัน{req.StartDate.Date.GetThaiDayOfWeek()} ที่ {req.StartDate.Date.ToThaiShortDate()}{enddate}",
|
||||
organizationName = profile?.FirstOrDefault()?.Oc ?? "",
|
||||
officerTotal = profile.Count,
|
||||
workTotal = workTotal,
|
||||
|
|
@ -1322,7 +1370,7 @@ namespace BMA.EHR.Leave.Service.Controllers
|
|||
studyTotal = studyTotal,
|
||||
employees = employees
|
||||
};
|
||||
|
||||
//วันที่ออก
|
||||
var result = new
|
||||
{
|
||||
template = "TimeStamp",
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue