insert profile leave
This commit is contained in:
parent
eb5f39a561
commit
6d62d357a6
2 changed files with 44 additions and 0 deletions
|
|
@ -1,5 +1,6 @@
|
||||||
using BMA.EHR.Application.Common.Interfaces;
|
using BMA.EHR.Application.Common.Interfaces;
|
||||||
using BMA.EHR.Application.Messaging;
|
using BMA.EHR.Application.Messaging;
|
||||||
|
using BMA.EHR.Domain.Models.HR;
|
||||||
using BMA.EHR.Domain.Models.Leave.Commons;
|
using BMA.EHR.Domain.Models.Leave.Commons;
|
||||||
using BMA.EHR.Domain.Models.Leave.Requests;
|
using BMA.EHR.Domain.Models.Leave.Requests;
|
||||||
using BMA.EHR.Domain.Models.Notifications;
|
using BMA.EHR.Domain.Models.Notifications;
|
||||||
|
|
@ -297,6 +298,24 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
||||||
|
|
||||||
// TODO: remove วันลา
|
// TODO: remove วันลา
|
||||||
|
|
||||||
|
var leaveType = await _appDbContext.Set<TypeLeave>()
|
||||||
|
.FirstOrDefaultAsync(x => x.Name == rawData.Type.Name);
|
||||||
|
|
||||||
|
|
||||||
|
// insert to profile leave
|
||||||
|
var profileLeave = await _appDbContext.Set<ProfileLeave>()
|
||||||
|
.Where(x => x.TypeLeave.Id == leaveType.Id)
|
||||||
|
.Where(x => x.DateStartLeave == rawData.LeaveStartDate && x.DateEndLeave == rawData.LeaveEndDate)
|
||||||
|
.FirstOrDefaultAsync();
|
||||||
|
if (profileLeave != null)
|
||||||
|
{
|
||||||
|
_appDbContext.Set<ProfileLeave>().Remove(profileLeave);
|
||||||
|
await _appDbContext.SaveChangesAsync();
|
||||||
|
}
|
||||||
|
|
||||||
|
// insert into process timestamp
|
||||||
|
|
||||||
|
|
||||||
// Send Noti
|
// Send Noti
|
||||||
var noti = new Notification
|
var noti = new Notification
|
||||||
{
|
{
|
||||||
|
|
@ -382,6 +401,29 @@ namespace BMA.EHR.Application.Repositories.Leaves.LeaveRequests
|
||||||
|
|
||||||
await UpdateAsync(rawData);
|
await UpdateAsync(rawData);
|
||||||
|
|
||||||
|
var leaveType = await _appDbContext.Set<TypeLeave>()
|
||||||
|
.FirstOrDefaultAsync(x => x.Name == rawData.Type.Name);
|
||||||
|
|
||||||
|
|
||||||
|
// insert to profile leave
|
||||||
|
var profileLeave = new ProfileLeave
|
||||||
|
{
|
||||||
|
DateStartLeave = rawData.LeaveStartDate,
|
||||||
|
DateEndLeave = rawData.LeaveEndDate,
|
||||||
|
|
||||||
|
TotalLeave = rawData.LeaveTotal,
|
||||||
|
Status = "approve",
|
||||||
|
Reason = rawData.LeaveDetail,
|
||||||
|
|
||||||
|
Profile = profile,
|
||||||
|
TypeLeave = leaveType
|
||||||
|
};
|
||||||
|
_appDbContext.Set<ProfileLeave>().Add(profileLeave);
|
||||||
|
await _appDbContext.SaveChangesAsync();
|
||||||
|
|
||||||
|
// insert to process timestamp
|
||||||
|
|
||||||
|
|
||||||
// Send Noti
|
// Send Noti
|
||||||
var noti = new Notification
|
var noti = new Notification
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,8 @@ namespace BMA.EHR.Application.Repositories
|
||||||
|
|
||||||
#region " Methods "
|
#region " Methods "
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public async Task<Profile?> GetProfileByKeycloakIdAsync(Guid keycloakId)
|
public async Task<Profile?> GetProfileByKeycloakIdAsync(Guid keycloakId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue