PSTW_CentralizeSystem/Areas/OTcalculate/Controllers/HrDashboardController.cs
2025-03-19 16:41:40 +08:00

112 lines
3.0 KiB
C#

using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using PSTW_CentralSystem.Areas.OTcalculate.Models;
using PSTW_CentralSystem.DBContext;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace PSTW_CentralSystem.Areas.OTcalculate.Controllers
{
[Area("OTcalculate")]
public class HrDashboardController : Controller
{
private readonly CentralSystemContext _context;
public HrDashboardController(CentralSystemContext context)
{
_context = context;
}
public IActionResult Rate()
{
return View();
}
public IActionResult OtApproval()
{
return View();
}
public IActionResult Settings()
{
return View();
}
public IActionResult Calendar()
{
return View();
}
#region Rates
[HttpPost("UpdateRates")]
public async Task<IActionResult> UpdateRate([FromBody] List<RateModel> rates)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
try
{
foreach (var Rate in rates)
{
var existingRate = await _context.Rates.FindAsync(Rate.RateId);
if (existingRate != null)
{
existingRate.RateValue = Rate.RateValue;
_context.Rates.Update(existingRate);
}
}
await _context.SaveChangesAsync();
var updateRates = await _context.Rates
.Include(rates => rates.Users)
.Select(rates => new
{
rates.RateId,
rates.RateValue,
rates.UserId,
FullName = rates.Users.FullName,
DepartmentName = rates.Users.DepartmentName
})
.ToListAsync();
return Json(updateRates);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
[HttpPost("GetUserRates")]
public async Task<IActionResult> GetUserRates()
{
try
{
var userRates = await _context.Rates
.Include(rates => rates.Users)
.Select(rates => new
{
rates.RateId,
rates.RateValue,
rates.UserId,
FullName = rates.Users.FullName,
DepartmentName = rates.Users.DepartmentName
})
.ToListAsync();
return Json(userRates);
}
catch (Exception ex)
{
return BadRequest(ex.Message);
}
}
#endregion
}
}