fix : Leave and Insignia (Not Complete)

This commit is contained in:
Suphonchai Phoonsawat 2024-06-24 12:24:57 +07:00
parent 89b4c71dbd
commit c85bece782
14 changed files with 18266 additions and 88 deletions

View file

@ -147,6 +147,8 @@ namespace BMA.EHR.Application.Repositories.Reports
public async Task<dynamic> GetProfileInsignia(Guid id)
{
var profile = (from r in await _dbContext.Set<Profile>()
.Include(x => x.Prefix)
.Include(x => x.Position)

View file

@ -1,4 +1,5 @@
using BMA.EHR.Application.Common.Interfaces;
using BMA.EHR.Application.Responses.Organizations;
using BMA.EHR.Application.Responses.Profiles;
using BMA.EHR.Domain.Models.HR;
using BMA.EHR.Domain.Models.MetaData;
@ -266,7 +267,7 @@ namespace BMA.EHR.Application.Repositories
{
try
{
var apiPath = $"{_configuration["API"]}/org/dotnet/keycloak";
var apiPath = $"{_configuration["API"]}/org/dotnet/user-fullname/{keycloakId}";
var apiResult = GetExternalAPIAsync(apiPath, accessToken ?? "");
if (apiResult.Result != null)
@ -349,6 +350,36 @@ namespace BMA.EHR.Application.Repositories
}
}
public GetOrganizationResponseDTO? GetOc(Guid ocId, int level, string? accessToken)
{
try
{
var apiPath = $"{_configuration["API"]}/org/find/all";
var body = new
{
nodeId = ocId,
node = level
};
var apiResult = PostExternalAPIAsync(apiPath, accessToken ?? "", body).Result;
if (apiResult != null)
{
var raw = JsonConvert.DeserializeObject<GetOrganizationResponseResultDTO>(apiResult);
if (raw != null && raw.Result != null)
{
return raw.Result;
}
}
return null;
}
catch
{
throw;
}
}
#endregion
}
}

View file

@ -0,0 +1,41 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BMA.EHR.Application.Responses.Organizations
{
public class GetOrganizationResponseDTO
{
public Guid? RootId { get; set; }
public string? Root { get; set; }
public string? RootShortName { get; set; }
public Guid? Child1Id { get; set; }
public string? Child1 { get; set; }
public string? Child1ShortName { get; set; }
public Guid? Child2Id { get; set; }
public string? Child2 { get; set; }
public string? Child2ShortName { get; set; }
public Guid? Child3Id { get; set; }
public string? Child3 { get; set; }
public string? Child3ShortName { get; set; }
public Guid? Child4Id { get; set; }
public string? Child4 { get; set; }
public string? Child4ShortName { get; set; }
}
}

View file

@ -0,0 +1,11 @@
namespace BMA.EHR.Application.Responses.Organizations
{
public class GetOrganizationResponseResultDTO
{
public string Message { get; set; } = string.Empty;
public int Status { get; set; } = -1;
public GetOrganizationResponseDTO? Result { get; set; }
}
}

View file

@ -27,7 +27,7 @@ namespace BMA.EHR.Application.Responses.Profiles
public string? Oc { get; set; }
public List<ProfileSalary> Salaries { get; set; } = new();
public ProfileSalaryResult? ProfileSalary { get; set; } = new();
public Guid? Keycloak { get; set; }
@ -61,4 +61,22 @@ namespace BMA.EHR.Application.Responses.Profiles
public string LastUpdateFullName { get; set; }
public string PosTypeName { get; set; }
}
public class ProfileSalaryResult
{
public Guid? Id { get; set; }
public DateTime? CreatedAt { get; set; }
public Guid? CreatedUserId { get; set; }
public DateTime? LastUpdatedAt { get; set; }
public Guid? LastUpdateUserId { get; set; }
public string? CreatedFullName { get; set; }
public string? LastUpdateFullName { get; set; }
public string PosNo { get; set; } = string.Empty;
public double? Amount { get; set; }
public double? PositionSalaryAmount { get; set; }
public double? MouthSalaryAmount { get; set; }
}
}

View file

@ -1,9 +1,5 @@
using Microsoft.EntityFrameworkCore;
using System.ComponentModel.DataAnnotations;
using BMA.EHR.Domain.Models.Base;
using System.ComponentModel.DataAnnotations.Schema;
using BMA.EHR.Domain.Models.Documents;
using BMA.EHR.Domain.Models.MetaData;
using BMA.EHR.Domain.Models.Base;
using Microsoft.EntityFrameworkCore;
namespace BMA.EHR.Domain.Models.Insignias
{
@ -11,8 +7,9 @@ namespace BMA.EHR.Domain.Models.Insignias
{
[Comment("จำนวนทั้งหมด")]
public int Total { get; set; }
[Comment("Fk Table OrganizationOrganization")]
public OrganizationOrganization OrganizationOrganization { get; set; }
[Comment("รหัสหน่วยงาน")]
public Guid OrganizationId { get; set; }
//public OrganizationOrganization OrganizationOrganization { get; set; }
[Comment("Fk Table InsigniaManage")]
public InsigniaManage InsigniaManage { get; set; }
public virtual List<InsigniaManageProfile> InsigniaManageProfiles { get; set; } = new List<InsigniaManageProfile>();

View file

@ -11,18 +11,27 @@ namespace BMA.EHR.Domain.Models.Insignias
{
[Comment("สถานะการคืน")]
public bool Status { get; set; }
[Comment("ยืมวันที่")]
public DateTime? BorrowDate { get; set; }
[Comment("Fk Table OrganizationOrganization Borrow")]
public OrganizationOrganization? BorrowOrganization { get; set; }
//public OrganizationOrganization? BorrowOrganization { get; set; }
public Guid? BorrowOrganizationId { get; set; }
[Comment("คืนวันที่")]
public DateTime? ReturnDate { get; set; }
[Comment("Fk Table OrganizationOrganization Return")]
public OrganizationOrganization? ReturnOrganization { get; set; }
//public OrganizationOrganization? ReturnOrganization { get; set; }
public Guid? ReturnOrganizationId { get; set; }
[Comment("เหตุผลคืน")]
public string? ReturnReason { get; set; }
[Comment("Fk Table InsigniaNoteProfile")]
public InsigniaNoteProfile InsigniaNoteProfile { get; set; }
[Comment("Fk Table InsigniaManageOrganiation")]
public InsigniaManageOrganiation InsigniaManageOrganiation { get; set; }
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,153 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class ChangeOrgLinktoGUID : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropForeignKey(
name: "FK_InsigniaManageOrganiations_OrganizationOrganizations_Organiz~",
table: "InsigniaManageOrganiations");
migrationBuilder.DropForeignKey(
name: "FK_InsigniaManageProfiles_OrganizationOrganizations_BorrowOrgan~",
table: "InsigniaManageProfiles");
migrationBuilder.DropForeignKey(
name: "FK_InsigniaManageProfiles_OrganizationOrganizations_ReturnOrgan~",
table: "InsigniaManageProfiles");
migrationBuilder.DropIndex(
name: "IX_InsigniaManageProfiles_BorrowOrganizationId",
table: "InsigniaManageProfiles");
migrationBuilder.DropIndex(
name: "IX_InsigniaManageProfiles_ReturnOrganizationId",
table: "InsigniaManageProfiles");
migrationBuilder.DropIndex(
name: "IX_InsigniaManageOrganiations_OrganizationOrganizationId",
table: "InsigniaManageOrganiations");
migrationBuilder.DropColumn(
name: "OrganizationOrganizationId",
table: "InsigniaManageOrganiations");
migrationBuilder.AlterColumn<Guid>(
name: "ReturnOrganizationId",
table: "InsigniaManageProfiles",
type: "char(36)",
nullable: true,
comment: "Fk Table OrganizationOrganization Return",
collation: "ascii_general_ci",
oldClrType: typeof(Guid),
oldType: "char(36)",
oldNullable: true)
.OldAnnotation("Relational:Collation", "ascii_general_ci");
migrationBuilder.AlterColumn<Guid>(
name: "BorrowOrganizationId",
table: "InsigniaManageProfiles",
type: "char(36)",
nullable: true,
comment: "Fk Table OrganizationOrganization Borrow",
collation: "ascii_general_ci",
oldClrType: typeof(Guid),
oldType: "char(36)",
oldNullable: true)
.OldAnnotation("Relational:Collation", "ascii_general_ci");
migrationBuilder.AddColumn<Guid>(
name: "OrganizationId",
table: "InsigniaManageOrganiations",
type: "char(36)",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
comment: "รหัสหน่วยงาน",
collation: "ascii_general_ci");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "OrganizationId",
table: "InsigniaManageOrganiations");
migrationBuilder.AlterColumn<Guid>(
name: "ReturnOrganizationId",
table: "InsigniaManageProfiles",
type: "char(36)",
nullable: true,
collation: "ascii_general_ci",
oldClrType: typeof(Guid),
oldType: "char(36)",
oldNullable: true,
oldComment: "Fk Table OrganizationOrganization Return")
.OldAnnotation("Relational:Collation", "ascii_general_ci");
migrationBuilder.AlterColumn<Guid>(
name: "BorrowOrganizationId",
table: "InsigniaManageProfiles",
type: "char(36)",
nullable: true,
collation: "ascii_general_ci",
oldClrType: typeof(Guid),
oldType: "char(36)",
oldNullable: true,
oldComment: "Fk Table OrganizationOrganization Borrow")
.OldAnnotation("Relational:Collation", "ascii_general_ci");
migrationBuilder.AddColumn<Guid>(
name: "OrganizationOrganizationId",
table: "InsigniaManageOrganiations",
type: "char(36)",
nullable: false,
defaultValue: new Guid("00000000-0000-0000-0000-000000000000"),
collation: "ascii_general_ci");
migrationBuilder.CreateIndex(
name: "IX_InsigniaManageProfiles_BorrowOrganizationId",
table: "InsigniaManageProfiles",
column: "BorrowOrganizationId");
migrationBuilder.CreateIndex(
name: "IX_InsigniaManageProfiles_ReturnOrganizationId",
table: "InsigniaManageProfiles",
column: "ReturnOrganizationId");
migrationBuilder.CreateIndex(
name: "IX_InsigniaManageOrganiations_OrganizationOrganizationId",
table: "InsigniaManageOrganiations",
column: "OrganizationOrganizationId");
migrationBuilder.AddForeignKey(
name: "FK_InsigniaManageOrganiations_OrganizationOrganizations_Organiz~",
table: "InsigniaManageOrganiations",
column: "OrganizationOrganizationId",
principalTable: "OrganizationOrganizations",
principalColumn: "Id",
onDelete: ReferentialAction.Cascade);
migrationBuilder.AddForeignKey(
name: "FK_InsigniaManageProfiles_OrganizationOrganizations_BorrowOrgan~",
table: "InsigniaManageProfiles",
column: "BorrowOrganizationId",
principalTable: "OrganizationOrganizations",
principalColumn: "Id");
migrationBuilder.AddForeignKey(
name: "FK_InsigniaManageProfiles_OrganizationOrganizations_ReturnOrgan~",
table: "InsigniaManageProfiles",
column: "ReturnOrganizationId",
principalTable: "OrganizationOrganizations",
principalColumn: "Id");
}
}
}

View file

@ -5755,8 +5755,9 @@ namespace BMA.EHR.Infrastructure.Migrations
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<Guid>("OrganizationOrganizationId")
.HasColumnType("char(36)");
b.Property<Guid>("OrganizationId")
.HasColumnType("char(36)")
.HasComment("รหัสหน่วยงาน");
b.Property<int>("Total")
.HasColumnType("int")
@ -5766,8 +5767,6 @@ namespace BMA.EHR.Infrastructure.Migrations
b.HasIndex("InsigniaManageId");
b.HasIndex("OrganizationOrganizationId");
b.ToTable("InsigniaManageOrganiations");
});
@ -5785,7 +5784,8 @@ namespace BMA.EHR.Infrastructure.Migrations
.HasComment("ยืมวันที่");
b.Property<Guid?>("BorrowOrganizationId")
.HasColumnType("char(36)");
.HasColumnType("char(36)")
.HasComment("Fk Table OrganizationOrganization Borrow");
b.Property<DateTime>("CreatedAt")
.HasColumnType("datetime(6)")
@ -5836,7 +5836,8 @@ namespace BMA.EHR.Infrastructure.Migrations
.HasComment("คืนวันที่");
b.Property<Guid?>("ReturnOrganizationId")
.HasColumnType("char(36)");
.HasColumnType("char(36)")
.HasComment("Fk Table OrganizationOrganization Return");
b.Property<string>("ReturnReason")
.HasColumnType("longtext")
@ -5848,14 +5849,10 @@ namespace BMA.EHR.Infrastructure.Migrations
b.HasKey("Id");
b.HasIndex("BorrowOrganizationId");
b.HasIndex("InsigniaManageOrganiationId");
b.HasIndex("InsigniaNoteProfileId");
b.HasIndex("ReturnOrganizationId");
b.ToTable("InsigniaManageProfiles");
});
@ -16647,23 +16644,11 @@ namespace BMA.EHR.Infrastructure.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", "OrganizationOrganization")
.WithMany()
.HasForeignKey("OrganizationOrganizationId")
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.Navigation("InsigniaManage");
b.Navigation("OrganizationOrganization");
});
modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaManageProfile", b =>
{
b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", "BorrowOrganization")
.WithMany()
.HasForeignKey("BorrowOrganizationId");
b.HasOne("BMA.EHR.Domain.Models.Insignias.InsigniaManageOrganiation", "InsigniaManageOrganiation")
.WithMany("InsigniaManageProfiles")
.HasForeignKey("InsigniaManageOrganiationId")
@ -16676,17 +16661,9 @@ namespace BMA.EHR.Infrastructure.Migrations
.OnDelete(DeleteBehavior.Cascade)
.IsRequired();
b.HasOne("BMA.EHR.Domain.Models.MetaData.OrganizationOrganization", "ReturnOrganization")
.WithMany()
.HasForeignKey("ReturnOrganizationId");
b.Navigation("BorrowOrganization");
b.Navigation("InsigniaManageOrganiation");
b.Navigation("InsigniaNoteProfile");
b.Navigation("ReturnOrganization");
});
modelBuilder.Entity("BMA.EHR.Domain.Models.Insignias.InsigniaNoteDoc", b =>

View file

@ -28,18 +28,21 @@ namespace BMA.EHR.Insignia.Service.Controllers
private readonly IHttpContextAccessor _httpContextAccessor;
private readonly InsigniaPeriodsRepository _repository;
private readonly NotificationRepository _repositoryNoti;
private readonly UserProfileRepository _userProfileRepository;
public InsigniaManageController(ApplicationDBContext context,
MinIOService documentService,
InsigniaPeriodsRepository repository,
NotificationRepository repositoryNoti,
IHttpContextAccessor httpContextAccessor)
IHttpContextAccessor httpContextAccessor,
UserProfileRepository userProfileRepository)
{
_context = context;
_documentService = documentService;
_repository = repository;
_repositoryNoti = repositoryNoti;
_httpContextAccessor = httpContextAccessor;
_userProfileRepository = userProfileRepository;
}
#region " Properties "
@ -48,6 +51,8 @@ namespace BMA.EHR.Insignia.Service.Controllers
private string? FullName => _httpContextAccessor?.HttpContext?.User?.FindFirst("name")?.Value;
private string? AccessToken => _httpContextAccessor?.HttpContext?.Request.Headers["Authorization"];
#endregion
/// <summary>
@ -246,7 +251,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
.Select(p => new
{
Id = p.Id,
OrganizationOrganization = p.OrganizationOrganization.Name,
OrganizationOrganization = _userProfileRepository.GetOc(p.OrganizationId, 0, AccessToken) == null ? "" : _userProfileRepository.GetOc(p.OrganizationId, 0, AccessToken)!.Root,
Total = p.Total,
Allocate = p.InsigniaManageProfiles.Where(x => x.Status == false).Count(),
Remain = p.Total - p.InsigniaManageProfiles.Where(x => x.Status == false).Count(),
@ -254,8 +259,6 @@ namespace BMA.EHR.Insignia.Service.Controllers
CreatedAt = p.CreatedAt,
})
.ToListAsync();
// if (insigniaManageOrg == null)
// return Error(GlobalMessages.InsigniaManageOrgNotFound);
return Success(insigniaManageOrg);
}
@ -270,33 +273,37 @@ namespace BMA.EHR.Insignia.Service.Controllers
[HttpPost("org")]
public async Task<ActionResult<ResponseObject>> PostOrganization([FromBody] InsigniaManageOrganizationRequest req)
{
var organization = await _context.Organizations.AsQueryable()
.Include(x => x.OrganizationOrganization)
.FirstOrDefaultAsync(x => x.Id == req.OrganizationOrganizationId);
var organization = _userProfileRepository.GetOc(req.OrganizationOrganizationId, 0, AccessToken);
//var organization = await _context.Organizations.AsQueryable()
// .Include(x => x.OrganizationOrganization)
// .FirstOrDefaultAsync(x => x.Id == req.OrganizationOrganizationId);
if (organization == null)
return Error(GlobalMessages.OrganizationNotFound);
if (organization.OrganizationOrganization == null)
return Error(GlobalMessages.OrganizationNotFound);
//if (organization.OrganizationOrganization == null)
// return Error(GlobalMessages.OrganizationNotFound);
var insigniaManage = await _context.InsigniaManages.AsQueryable()
.Include(x => x.InsigniaManageOrganiations)
.ThenInclude(x => x.OrganizationOrganization)
//.ThenInclude(x => x.OrganizationOrganization)
.FirstOrDefaultAsync(x => x.Id == req.insigniaManageId);
if (insigniaManage == null)
return Error(GlobalMessages.InsigniaManageNotFound);
var insigniaManageOrganiation = await _context.InsigniaManageOrganiations.AsQueryable()
.FirstOrDefaultAsync(x => x.OrganizationOrganization == organization.OrganizationOrganization && x.InsigniaManage == insigniaManage);
.FirstOrDefaultAsync(x => x.OrganizationId == organization.RootId && x.InsigniaManage == insigniaManage);
if (insigniaManageOrganiation != null)
return Error(GlobalMessages.InsigniaManageOrgDupicate);
var total = insigniaManage.InsigniaManageOrganiations.Where(x => x.OrganizationOrganization != organization.OrganizationOrganization).Sum(x => x.Total);
var total = insigniaManage.InsigniaManageOrganiations.Where(x => x.OrganizationId != organization.RootId).Sum(x => x.Total);
if (req.Total + total > insigniaManage.Total)
return Error(GlobalMessages.InsigniaManageOrgLimit);
await _context.InsigniaManageOrganiations.AddAsync(
new InsigniaManageOrganiation
{
OrganizationOrganization = organization.OrganizationOrganization,
//OrganizationOrganization = organization.OrganizationOrganization,
OrganizationId = organization.RootId ?? Guid.Empty,
Total = req.Total,
InsigniaManage = insigniaManage,
CreatedFullName = FullName ?? "System Administrator",
@ -346,7 +353,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
public async Task<ActionResult<ResponseObject>> PutOrganization([FromBody] InsigniaManageOrganizationUpdateRequest req, Guid insigniaManageOrgId)
{
var uppdated = await _context.InsigniaManageOrganiations.AsQueryable()
.Include(x => x.OrganizationOrganization)
//.Include(x => x.OrganizationOrganization)
.Include(x => x.InsigniaManage)
.FirstOrDefaultAsync(x => x.Id == insigniaManageOrgId);
if (uppdated == null)
@ -354,7 +361,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
var insigniaManage = await _context.InsigniaManages.AsQueryable()
.Include(x => x.InsigniaManageOrganiations)
.ThenInclude(x => x.OrganizationOrganization)
//.ThenInclude(x => x.OrganizationOrganization)
.FirstOrDefaultAsync(x => x.Id == uppdated.InsigniaManage.Id);
if (insigniaManage == null)
return Error(GlobalMessages.InsigniaManageNotFound);
@ -427,17 +434,19 @@ namespace BMA.EHR.Insignia.Service.Controllers
if (insigniaNoteProfile.Status != "DONE")
return Error(GlobalMessages.InsigniaNoBorrow);
var _organization = await _context.Organizations.AsQueryable()
.FirstOrDefaultAsync(x => x.Id == insigniaNoteProfile.Profile.OcId);
if (_organization == null)
return Error(GlobalMessages.OrganizationNotFound);
//var _organization = await _context.Organizations.AsQueryable()
// .FirstOrDefaultAsync(x => x.Id == insigniaNoteProfile.Profile.OcId);
var organization = await _context.Organizations.AsQueryable()
.Include(x => x.OrganizationOrganization)
.FirstOrDefaultAsync(x => x.Id == _organization.OrganizationAgencyId);
var organization = _userProfileRepository.GetOc(insigniaNoteProfile!.Profile!.OcId.Value, 0, AccessToken);
if (organization == null)
return Error(GlobalMessages.OrganizationNotFound);
//var organization = await _context.Organizations.AsQueryable()
// .Include(x => x.OrganizationOrganization)
// .FirstOrDefaultAsync(x => x.Id == _organization.OrganizationAgencyId);
//if (organization == null)
// return Error(GlobalMessages.OrganizationNotFound);
var insigniaManage = await _context.InsigniaManages.AsQueryable()
.FirstOrDefaultAsync(x => x.Year == insigniaNoteProfile.InsigniaNote.Year && x.Insignia == insigniaNoteProfile.RequestInsignia);
if (insigniaManage == null)
@ -445,7 +454,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
var insigniaManageOrganiation = await _context.InsigniaManageOrganiations.AsQueryable()
.Include(x => x.InsigniaManageProfiles)
.FirstOrDefaultAsync(x => x.OrganizationOrganization == organization.OrganizationOrganization && x.InsigniaManage == insigniaManage);
.FirstOrDefaultAsync(x => x.OrganizationId == organization.RootId && x.InsigniaManage == insigniaManage);
if (insigniaManageOrganiation == null)
return Error(GlobalMessages.InsigniaManageOrgNotFound);
@ -462,7 +471,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
{
Status = false,
InsigniaManageOrganiation = insigniaManageOrganiation,
BorrowOrganization = organization.OrganizationOrganization,
BorrowOrganizationId = organization.RootId,
BorrowDate = req.BorrowDate,
InsigniaNoteProfile = insigniaNoteProfile,
CreatedFullName = FullName ?? "System Administrator",
@ -492,7 +501,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
{
var uppdated = await _context.InsigniaManageProfiles.AsQueryable()
.Include(x => x.BorrowOrganization)
//.Include(x => x.BorrowOrganization)
.FirstOrDefaultAsync(x => x.Id == insigniaManageProfileId);
if (uppdated == null)
return Error(GlobalMessages.InsigniaManageNotFound);
@ -501,7 +510,7 @@ namespace BMA.EHR.Insignia.Service.Controllers
uppdated.ReturnDate = req.ReturnDate;
// if (req.ReturnOrganizationId == Guid.Parse("00000000-0000-0000-0000-000000000000"))
// {
uppdated.ReturnOrganization = uppdated.BorrowOrganization;
uppdated.ReturnOrganizationId = uppdated.BorrowOrganizationId;
// }
// else
// {
@ -547,12 +556,12 @@ namespace BMA.EHR.Insignia.Service.Controllers
{
Id = p.Id,
Status = p.Status,
BorrowOrganization = p.BorrowOrganization == null ? null : p.BorrowOrganization.Name,
BorrowOrganizationId = p.BorrowOrganization == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.BorrowOrganization.Id,
BorrowOrganization = _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken) == null ? null : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken).Root,
BorrowOrganizationId = _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken) == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken).RootId,
BorrowDate = p.BorrowDate,
ReturnDate = p.ReturnDate,
ReturnOrganization = p.ReturnOrganization == null ? null : p.ReturnOrganization.Name,
ReturnOrganizationId = p.ReturnOrganization == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ReturnOrganization.Id,
ReturnOrganization = _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken) == null ? null : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken).Root,
ReturnOrganizationId = _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken) == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken).RootId,
ReturnReason = p.ReturnReason,
LastUpdatedAt = p.LastUpdatedAt,
CreatedAt = p.CreatedAt,
@ -604,12 +613,12 @@ namespace BMA.EHR.Insignia.Service.Controllers
{
Id = p.Id,
Status = p.Status,
BorrowOrganization = p.BorrowOrganization == null ? null : p.BorrowOrganization.Name,
BorrowOrganizationId = p.BorrowOrganization == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.BorrowOrganization.Id,
BorrowOrganization = _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken) == null ? null : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken).Root,
BorrowOrganizationId = _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken) == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : _userProfileRepository.GetOc(p.BorrowOrganizationId!.Value, 0, AccessToken).RootId,
BorrowDate = p.BorrowDate,
ReturnDate = p.ReturnDate,
ReturnOrganization = p.ReturnOrganization == null ? null : p.ReturnOrganization.Name,
ReturnOrganizationId = p.ReturnOrganization == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : p.ReturnOrganization.Id,
ReturnOrganization = _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken) == null ? null : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken).Root,
ReturnOrganizationId = _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken) == null ? Guid.Parse("00000000-0000-0000-0000-000000000000") : _userProfileRepository.GetOc(p.ReturnOrganizationId!.Value, 0, AccessToken).RootId,
ReturnReason = p.ReturnReason,
LastUpdatedAt = p.LastUpdatedAt,
CreatedAt = p.CreatedAt,

View file

@ -15,10 +15,10 @@
"ConnectionStrings": {
//"DefaultConnection": "User Id=sys;Password=P@ssw0rd;DBA Privilege=SYSDBA;Data Source=localhost:1521/ORCLCDB",
//"DefaultConnection": "server=192.168.1.9;user=root;password=adminVM123;port=3306;database=bma_ehr_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;"
"DefaultConnection": "server=192.168.1.9;user=root;password=adminVM123;port=3306;database=bma_ehr_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
"ExamConnection": "server=192.168.1.9;user=root;password=adminVM123;port=3306;database=bma_ehr_exam_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
"LeaveConnection": "server=192.168.1.9;user=root;password=adminVM123;port=3306;database=bma_ehr_leave_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
"DisciplineConnection": "server=192.168.1.9;user=root;password=adminVM123;port=3306;database=bma_ehr_discipline_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;"
"DefaultConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=bma_ehr_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
"ExamConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=bma_ehr_exam_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
"LeaveConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=bma_ehr_leave_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;",
"DisciplineConnection": "server=192.168.1.80;user=root;password=adminVM123;port=3306;database=bma_ehr_discipline_demo;Convert Zero Datetime=True;Allow User Variables=true;Pooling=True;"
},
"Jwt": {
"Key": "HP-FnQMUj9msHMSD3T9HtdEnphAKoCJLEl85CIqROFI",
@ -39,5 +39,9 @@
"Hour": "08",
"Minute": "00"
},
"Protocol": "HTTPS"
"Protocol": "HTTPS",
"Node": {
"API": "https://bma-ehr.frappet.synology.me/api/v1/probation"
},
"API": "https://bma-ehr.frappet.synology.me/api/v1"
}

View file

@ -893,7 +893,7 @@ namespace BMA.EHR.Leave.Service.Controllers
fullName = _userProfileRepository.GetUserFullName(p.Keycloak ?? Guid.Empty, AccessToken),
position = p.Position == null ? "" : p.Position,
positionLevel = p.PosLevel == null ? "" : p.PosLevel.PosLevelName,
posNo = p.PosNo ?? "",
posNo = p.ProfileSalary == null ? "" : p.ProfileSalary.PosNo,
reason = "",
sickDayCount = sickDayCount,

View file

@ -253,7 +253,7 @@ namespace BMA.EHR.Leave.Service.Controllers
break;
case "LV-008":
{
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var lastSalary = profile.ProfileSalary;
leaveRequest.LeaveSalary = lastSalary == null ? 0 : (int)lastSalary.Amount.Value;
leaveRequest.LeaveSalaryText =
@ -273,7 +273,7 @@ namespace BMA.EHR.Leave.Service.Controllers
break;
case "LV-010":
{
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var lastSalary = profile.ProfileSalary;
leaveRequest.LeaveSalary = lastSalary == null ? 0 : (int)lastSalary.Amount.Value;
leaveRequest.LeaveSalaryText =
@ -479,7 +479,7 @@ namespace BMA.EHR.Leave.Service.Controllers
break;
case "LV-008":
{
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var lastSalary = profile.ProfileSalary;
leaveRequest.LeaveSalary = lastSalary == null ? 0 : (int)lastSalary.Amount.Value;
leaveRequest.LeaveSalaryText =
@ -499,7 +499,7 @@ namespace BMA.EHR.Leave.Service.Controllers
break;
case "LV-010":
{
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var lastSalary = profile.ProfileSalary;
leaveRequest.LeaveSalary = lastSalary == null ? 0 : (int)lastSalary.Amount.Value;
leaveRequest.LeaveSalaryText =
@ -611,7 +611,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var sumLeave = await _leaveRequestRepository.GetSumLeaveByTypeForUserAsync(userId, req.Type, thisYear);
var restOldDay = await _leaveRequestRepository.GetRestDayTotalByYearForUserAsync(userId, thisYear - 1);
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var lastSalary = profile.ProfileSalary;
var rootOc = _userProfileRepository.GetRootOcId(profile.OcId ?? Guid.Empty, AccessToken);
var approver = string.Empty;
@ -922,7 +922,7 @@ namespace BMA.EHR.Leave.Service.Controllers
var userCalendar = await _userCalendarRepository.GetExist(profile.Id);
var category = userCalendar == null ? "NORMAL" : userCalendar.Calendar;
var lastSalary = profile.Salaries.OrderByDescending(x => x.Order).FirstOrDefault();
var lastSalary = profile.ProfileSalary;
var lastSalaryAmount = lastSalary == null ? 0 : lastSalary.Amount ?? 0;
var lastLeaveRequest =