LeaveDuration daily and hourly on create modal completed

This commit is contained in:
SamSys
2025-12-27 16:51:08 +03:30
parent a98300cacd
commit 337cd40a4e
3 changed files with 59 additions and 0 deletions

View File

@@ -114,6 +114,14 @@ public interface ILeaveApplication
/// <returns></returns>
Task<string> GetHourlyLeaveDuration(string startHours, string endHours);
/// <summary>
/// محاسبه مدت مرخصی روزانه
/// </summary>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <returns></returns>
Task<string> GetDailyLeaveDuration(string startDate, string endDate);
}
public class LeavePrintResponseViewModel

View File

@@ -975,6 +975,9 @@ public class LeaveApplication : ILeaveApplication
public async Task<string> GetHourlyLeaveDuration(string startHours, string endHours)
{
if (string.IsNullOrWhiteSpace(startHours) || string.IsNullOrWhiteSpace(endHours))
return "";
var start = new DateTime();
var end = new DateTime();
try
@@ -1015,4 +1018,25 @@ public class LeaveApplication : ILeaveApplication
return ($"{hours}");
}
public async Task<string> GetDailyLeaveDuration(string startDate, string endDate)
{
if (string.IsNullOrWhiteSpace(startDate) || string.IsNullOrWhiteSpace(endDate))
return "";
if (startDate.TryToGeorgianDateTime(out var start) == false || endDate.TryToGeorgianDateTime(out var end) == false)
return "";
if (end >= start)
{
var daysSpan = (end - start).TotalDays + 1;
return $"{(int)daysSpan} روز";
}
else
{
return "تاریخ پایان از تاریخ شروع کوچکتر است.";
}
}
}

View File

@@ -86,6 +86,33 @@ public class LeaveController : ClientBaseController
return await _leaveApplication.HasRotatingShift(_workshopId, employeeId, startLeaveDate);
}
/// <summary>
/// محاسبه مدت مرخصی ساعتی
/// </summary>
/// <param name="startHours"></param>
/// <param name="endHours"></param>
/// <returns></returns>
[HttpGet("GetHourlyLeaveDuration")]
public async Task<ActionResult<string>> GetHourlyLeaveDuration(string startHours, string endHours)
{
var result =await _leaveApplication.GetHourlyLeaveDuration(startHours, endHours);
return Ok(new { LeaveDuration = result });
}
/// <summary>
/// محاسبه مدت مرخصی روزانه
/// </summary>
/// <param name="startDate"></param>
/// <param name="endDate"></param>
/// <returns></returns>
[HttpGet("GetDailyLeaveDuration")]
public async Task<ActionResult<string>> GetDailyLeaveDuration(string startDate, string endDate)
{
var result = await _leaveApplication.GetDailyLeaveDuration(startDate, endDate);
return Ok(new { LeaveDuration = result });
}
/// <summary>
/// پرینت تکی
/// </summary>