บันทึกเงินเดือนของผู้บรรจุ

This commit is contained in:
Suphonchai Phoonsawat 2023-09-02 13:53:56 +07:00
parent 69bd9c0a68
commit bb9a0bc73e
6 changed files with 16338 additions and 6 deletions

View file

@ -1722,6 +1722,8 @@ namespace BMA.EHR.Application.Repositories.Commands
try
{
var receiver = await _dbContext.Set<CommandReceiver>()
.Include(x => x.Command)
.ThenInclude(x => x.CommandType)
.FirstOrDefaultAsync(x => x.Id == personalId);
if (receiver == null)
@ -2116,6 +2118,30 @@ namespace BMA.EHR.Application.Repositories.Commands
#region " Placement "
public async Task<PlacementSalaryResponse> GetCommandReceiverSalary(Guid recordId)
{
try
{
var cmdReceiver = await _dbContext.Set<CommandReceiver>()
.FirstOrDefaultAsync(x => x.Id == recordId);
if (cmdReceiver == null)
throw new Exception($"Invalid command receiver: {recordId}");
return new PlacementSalaryResponse
{
SalaryAmount = cmdReceiver.Amount ?? 0,
PositionSalaryAmount = cmdReceiver.PositionSalaryAmount ?? 0,
MonthSalaryAmount = cmdReceiver.MouthSalaryAmount ?? 0
};
}
catch
{
throw;
}
}
public async Task<PlacementSalaryResponse> GetPlacementSalaryAsync(Guid placementProfileId)
{
try
@ -2140,6 +2166,28 @@ namespace BMA.EHR.Application.Repositories.Commands
}
}
public async Task UpdateCommandReceiverSalaryAsync(Guid personalId, UpdatePlacementSalaryRequest req)
{
try
{
var current = await _dbContext.Set<CommandReceiver>()
.FirstOrDefaultAsync(x => x.Id == personalId);
if (current == null)
throw new Exception(GlobalMessages.DataNotFound);
current.Amount = req.SalaryAmount;
current.PositionSalaryAmount = req.PositionSalaryAmount;
current.MouthSalaryAmount = req.MonthSalaryAmount;
await _dbContext.SaveChangesAsync();
}
catch
{
throw;
}
}
public async Task UpdatePlacementSalaryAsync(Guid personalId, UpdatePlacementSalaryRequest req)
{
try

View file

@ -1,6 +1,7 @@
using BMA.EHR.Application.Repositories;
using BMA.EHR.Application.Repositories.Commands;
using BMA.EHR.Application.Requests.Commands;
using BMA.EHR.Application.Responses;
using BMA.EHR.Command.Service.Requests;
using BMA.EHR.Command.Service.Responses;
using BMA.EHR.Domain.Common;
@ -12,6 +13,7 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using Swashbuckle.AspNetCore.Annotations;
using System.Security.Claims;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace BMA.EHR.Command.Service.Controllers
{
@ -2525,6 +2527,15 @@ namespace BMA.EHR.Command.Service.Controllers
}
break;
default:
{
foreach (var r in receivers)
{
var salary = await _repository.GetCommandReceiverSalary(r.PersonalId);
r.SalaryAmount = salary.SalaryAmount;
r.PositionSalaryAmount = salary.PositionSalaryAmount;
r.MonthSalaryAmount = salary.MonthSalaryAmount;
}
}
break;
}
@ -2587,9 +2598,18 @@ namespace BMA.EHR.Command.Service.Controllers
}
break;
}
default: break;
default:
{
foreach (var r in receivers)
{
var salary = await _repository.GetCommandReceiverSalary(r.PersonalId);
r.SalaryAmount = salary.SalaryAmount;
r.PositionSalaryAmount = salary.PositionSalaryAmount;
r.MonthSalaryAmount = salary.MonthSalaryAmount;
}
}
break;
}
return Success(receivers);
}
catch
@ -3042,8 +3062,25 @@ namespace BMA.EHR.Command.Service.Controllers
try
{
var record = await _repository.GetCommandReceiverAsync(personalId);
if (record == null)
{
throw new Exception(GlobalMessages.DataNotFound);
}
var data = await _repository.GetPlacementSalaryAsync(record!.RefPlacementProfileId!.Value);
var data = new PlacementSalaryResponse();
switch (record.Command.CommandType.CommandCode.ToUpper())
{
case "C-PM-01":
case "C-PM-02":
case "C-PM-03":
case "C-PM-04":
data = await _repository.GetPlacementSalaryAsync(record!.RefPlacementProfileId!.Value);
break;
default:
data = await _repository.GetCommandReceiverSalary(personalId);
break;
}
return Success(data);
}
@ -3074,9 +3111,18 @@ namespace BMA.EHR.Command.Service.Controllers
if (receiver == null)
throw new Exception(GlobalMessages.DataNotFound);
await _repository.UpdatePlacementSalaryAsync(personalId, req);
return Success();
switch (receiver.Command.CommandType.CommandCode.ToUpper())
{
case "C-PM-01":
case "C-PM-02":
case "C-PM-03":
case "C-PM-04":
await _repository.UpdatePlacementSalaryAsync(personalId, req);
return Success();
default:
await _repository.UpdateCommandReceiverSalaryAsync(personalId, req);
return Success();
}
}
catch
{

View file

@ -32,5 +32,14 @@ namespace BMA.EHR.Domain.Models.Commands.Core
[Comment("รหัสอ้างอิงไปยังข้อมูลผู้บรรจุ")]
public Guid? RefPlacementProfileId { get; set; }
[Comment("เงินเดือน")]
public double? Amount { get; set; }
[Comment("เงินประจำตำแหน่ง")]
public double? PositionSalaryAmount { get; set; }
[Comment("เงินค่าตอบแทนรายเดือน")]
public double? MouthSalaryAmount { get; set; }
}
}

File diff suppressed because it is too large Load diff

View file

@ -0,0 +1,51 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace BMA.EHR.Infrastructure.Migrations
{
/// <inheritdoc />
public partial class AddfieldsalaryforcommandReceiver : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.AddColumn<double>(
name: "Amount",
table: "CommandReceivers",
type: "double",
nullable: true,
comment: "เงินเดือน");
migrationBuilder.AddColumn<double>(
name: "MouthSalaryAmount",
table: "CommandReceivers",
type: "double",
nullable: true,
comment: "เงินค่าตอบแทนรายเดือน");
migrationBuilder.AddColumn<double>(
name: "PositionSalaryAmount",
table: "CommandReceivers",
type: "double",
nullable: true,
comment: "เงินประจำตำแหน่ง");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "Amount",
table: "CommandReceivers");
migrationBuilder.DropColumn(
name: "MouthSalaryAmount",
table: "CommandReceivers");
migrationBuilder.DropColumn(
name: "PositionSalaryAmount",
table: "CommandReceivers");
}
}
}

View file

@ -463,6 +463,10 @@ namespace BMA.EHR.Infrastructure.Migrations
.HasComment("PrimaryKey")
.HasAnnotation("Relational:JsonPropertyName", "id");
b.Property<double?>("Amount")
.HasColumnType("double")
.HasComment("เงินเดือน");
b.Property<string>("CitizenId")
.IsRequired()
.HasMaxLength(13)
@ -528,6 +532,14 @@ namespace BMA.EHR.Infrastructure.Migrations
.HasColumnOrder(102)
.HasComment("แก้ไขข้อมูลล่าสุดเมื่อ");
b.Property<double?>("MouthSalaryAmount")
.HasColumnType("double")
.HasComment("เงินค่าตอบแทนรายเดือน");
b.Property<double?>("PositionSalaryAmount")
.HasColumnType("double")
.HasComment("เงินประจำตำแหน่ง");
b.Property<string>("Prefix")
.IsRequired()
.HasMaxLength(50)