Merge branch 'develop' into adiDev
This commit is contained in:
commit
a39c33ae0d
21 changed files with 218 additions and 986 deletions
|
|
@ -277,7 +277,7 @@ export class OrganizationUnauthorizeController extends Controller {
|
||||||
.leftJoinAndSelect("employeePosMaster.orgChild3", "orgChild3")
|
.leftJoinAndSelect("employeePosMaster.orgChild3", "orgChild3")
|
||||||
.leftJoinAndSelect("employeePosMaster.orgChild4", "orgChild4")
|
.leftJoinAndSelect("employeePosMaster.orgChild4", "orgChild4")
|
||||||
.leftJoinAndSelect("employeePosMaster.positions", "positions")
|
.leftJoinAndSelect("employeePosMaster.positions", "positions")
|
||||||
.leftJoinAndSelect("current_holder.profileSalary", "profileSalary")
|
.leftJoinAndSelect("current_holder.profileSalarys", "profileSalarys")
|
||||||
.leftJoinAndSelect("current_holder.profileDisciplines", "profileDisciplines")
|
.leftJoinAndSelect("current_holder.profileDisciplines", "profileDisciplines")
|
||||||
.leftJoinAndSelect("current_holder.posLevel", "posLevel")
|
.leftJoinAndSelect("current_holder.posLevel", "posLevel")
|
||||||
.leftJoinAndSelect("current_holder.posType", "posType")
|
.leftJoinAndSelect("current_holder.posType", "posType")
|
||||||
|
|
@ -370,9 +370,9 @@ export class OrganizationUnauthorizeController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
const amount =
|
const amount =
|
||||||
item.current_holder == null || item.current_holder.profileSalary.length == 0
|
item.current_holder == null || item.current_holder.profileSalarys.length == 0
|
||||||
? null
|
? null
|
||||||
: item.current_holder.profileSalary.sort((a: any, b: any) => b.date - a.date)[0].amount;
|
: item.current_holder.profileSalarys.sort((a: any, b: any) => b.date - a.date)[0].amount;
|
||||||
let datePeriodStart = new Date(
|
let datePeriodStart = new Date(
|
||||||
`${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, "0")}-${String(new Date().getDate() + 1).padStart(2, "0")}T00:00:00.000Z`,
|
`${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, "0")}-${String(new Date().getDate() + 1).padStart(2, "0")}T00:00:00.000Z`,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -44,6 +44,8 @@ export class ProfileAvatarController extends Controller {
|
||||||
result.isActive = true;
|
result.isActive = true;
|
||||||
profile.avatar = result.avatar;
|
profile.avatar = result.avatar;
|
||||||
profile.avatarName = result.avatarName;
|
profile.avatarName = result.avatarName;
|
||||||
|
await this.avatarRepository.save(result);
|
||||||
|
await this.profileRepository.save(profile);
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -51,7 +53,6 @@ export class ProfileAvatarController extends Controller {
|
||||||
public async newAvatar(@Request() req: RequestWithUser, @Body() body: CreateProfileAvatar) {
|
public async newAvatar(@Request() req: RequestWithUser, @Body() body: CreateProfileAvatar) {
|
||||||
const profile = await this.profileRepository.findOne({
|
const profile = await this.profileRepository.findOne({
|
||||||
where: { id: body.profileId },
|
where: { id: body.profileId },
|
||||||
relations: ["profileAvatars"],
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!profile) {
|
if (!profile) {
|
||||||
|
|
@ -69,16 +70,25 @@ export class ProfileAvatarController extends Controller {
|
||||||
|
|
||||||
Object.assign(data, { ...body, ...meta });
|
Object.assign(data, { ...body, ...meta });
|
||||||
|
|
||||||
await this.avatarRepository.save(data);
|
const _profile = await this.profileRepository.findOne({
|
||||||
let avatar = `ทะเบียนประวัติ/โปรไฟล์/${profile.id}`;
|
where: { id: body.profileId },
|
||||||
let fileName = `profile-${data.id}`;
|
relations: ["profileAvatars"],
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!_profile) {
|
||||||
|
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
||||||
|
}
|
||||||
await Promise.all(
|
await Promise.all(
|
||||||
profile.profileAvatars.map(async (item: any) => {
|
_profile.profileAvatars.map(async (item: any) => {
|
||||||
item.isActive = false;
|
item.isActive = false;
|
||||||
await this.avatarRepository.save(item);
|
await this.avatarRepository.save(item);
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
await this.avatarRepository.save(data);
|
||||||
|
let avatar = `ทะเบียนประวัติ/โปรไฟล์/${profile.id}`;
|
||||||
|
let fileName = `profile-${data.id}`;
|
||||||
|
|
||||||
data.isActive = true;
|
data.isActive = true;
|
||||||
data.avatar = avatar;
|
data.avatar = avatar;
|
||||||
data.avatarName = fileName;
|
data.avatarName = fileName;
|
||||||
|
|
|
||||||
|
|
@ -14,20 +14,49 @@ export class ProfileAvatarEmployeeController extends Controller {
|
||||||
private profileRepository = AppDataSource.getRepository(ProfileEmployee);
|
private profileRepository = AppDataSource.getRepository(ProfileEmployee);
|
||||||
private avatarRepository = AppDataSource.getRepository(ProfileAvatar);
|
private avatarRepository = AppDataSource.getRepository(ProfileAvatar);
|
||||||
|
|
||||||
@Get("{profileId}")
|
@Get("{profileEmployeeId}")
|
||||||
public async getAvatar(@Path() profileId: string) {
|
public async getAvatarEmployee(@Path() profileEmployeeId: string) {
|
||||||
const lists = await this.avatarRepository.find({
|
const lists = await this.avatarRepository.find({
|
||||||
where: { profileEmployeeId: profileId },
|
where: { profileEmployeeId },
|
||||||
});
|
});
|
||||||
return new HttpSuccess(lists);
|
return new HttpSuccess(lists);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Get("select/{profileEmployeeId}/{id}")
|
||||||
|
public async selectAvatarEmployee(@Path() profileEmployeeId: string, @Path() id: string) {
|
||||||
|
const result = await this.avatarRepository.findOneBy({ id: id });
|
||||||
|
if (!result) {
|
||||||
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
||||||
|
}
|
||||||
|
const profile = await this.profileRepository.findOne({
|
||||||
|
where: { id: profileEmployeeId },
|
||||||
|
relations: ["profileAvatars"],
|
||||||
|
});
|
||||||
|
if (!profile) {
|
||||||
|
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
||||||
|
}
|
||||||
|
await Promise.all(
|
||||||
|
profile.profileAvatars.map(async (item: any) => {
|
||||||
|
item.isActive = false;
|
||||||
|
await this.avatarRepository.save(item);
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
result.isActive = true;
|
||||||
|
profile.avatar = result.avatar;
|
||||||
|
profile.avatarName = result.avatarName;
|
||||||
|
await this.avatarRepository.save(result);
|
||||||
|
await this.profileRepository.save(profile);
|
||||||
|
return new HttpSuccess();
|
||||||
|
}
|
||||||
|
|
||||||
@Post()
|
@Post()
|
||||||
public async newAvatar(
|
public async newAvatarEmployee(
|
||||||
@Request() req: RequestWithUser,
|
@Request() req: RequestWithUser,
|
||||||
@Body() body: CreateProfileEmployeeAvatar,
|
@Body() body: CreateProfileEmployeeAvatar,
|
||||||
) {
|
) {
|
||||||
const profile = await this.profileRepository.findOneBy({ id: body.profileEmployeeId });
|
const profile = await this.profileRepository.findOne({
|
||||||
|
where: { id: body.profileEmployeeId },
|
||||||
|
});
|
||||||
|
|
||||||
if (!profile) {
|
if (!profile) {
|
||||||
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
||||||
|
|
@ -44,18 +73,38 @@ export class ProfileAvatarEmployeeController extends Controller {
|
||||||
|
|
||||||
Object.assign(data, { ...body, ...meta });
|
Object.assign(data, { ...body, ...meta });
|
||||||
|
|
||||||
|
const _profile = await this.profileRepository.findOne({
|
||||||
|
where: { id: body.profileEmployeeId },
|
||||||
|
relations: ["profileAvatars"],
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!_profile) {
|
||||||
|
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
||||||
|
}
|
||||||
|
await Promise.all(
|
||||||
|
_profile.profileAvatars.map(async (item: any) => {
|
||||||
|
item.isActive = false;
|
||||||
|
await this.avatarRepository.save(item);
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
await this.avatarRepository.save(data);
|
await this.avatarRepository.save(data);
|
||||||
let avatar = `ทะเบียนประวัติ/โปรไฟล์/${profile.id}/profile-employee-${data.id}`;
|
let avatar = `ทะเบียนประวัติ/โปรไฟล์/${profile.id}`;
|
||||||
|
let fileName = `profile-${data.id}`;
|
||||||
|
|
||||||
|
data.isActive = true;
|
||||||
data.avatar = avatar;
|
data.avatar = avatar;
|
||||||
|
data.avatarName = fileName;
|
||||||
await this.avatarRepository.save(data);
|
await this.avatarRepository.save(data);
|
||||||
profile.avatar = avatar;
|
profile.avatar = avatar;
|
||||||
|
profile.avatarName = fileName;
|
||||||
await this.profileRepository.save(profile);
|
await this.profileRepository.save(profile);
|
||||||
|
|
||||||
return new HttpSuccess(avatar);
|
return new HttpSuccess({ avatar: avatar, avatarName: fileName });
|
||||||
}
|
}
|
||||||
|
|
||||||
@Delete("{avatarId}")
|
@Delete("{avatarId}")
|
||||||
public async deleteAvatar(@Path() avatarId: string) {
|
public async deleteAvatarEmployee(@Path() avatarId: string) {
|
||||||
const result = await this.avatarRepository.delete({ id: avatarId });
|
const result = await this.avatarRepository.delete({ id: avatarId });
|
||||||
|
|
||||||
if (result.affected == undefined || result.affected <= 0) {
|
if (result.affected == undefined || result.affected <= 0) {
|
||||||
|
|
|
||||||
|
|
@ -196,7 +196,10 @@ export class ProfileController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.citizenId.length !== 13) {
|
if (body.citizenId.length !== 13) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "กรุณากรอกข้อมูลรหัสบัตรประจำตัวประชาชนให้ครบ 13 หลัก");
|
throw new HttpError(
|
||||||
|
HttpStatus.NOT_FOUND,
|
||||||
|
"กรุณากรอกข้อมูลรหัสบัตรประจำตัวประชาชนให้ครบ 13 หลัก",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.citizenId) {
|
if (body.citizenId) {
|
||||||
|
|
@ -216,16 +219,16 @@ export class ProfileController extends Controller {
|
||||||
citizenIdDigits[11] * 2;
|
citizenIdDigits[11] * 2;
|
||||||
const calStp2 = cal % 11;
|
const calStp2 = cal % 11;
|
||||||
let chkDigit = 11 - calStp2;
|
let chkDigit = 11 - calStp2;
|
||||||
if(chkDigit === 10){
|
if (chkDigit === 10) {
|
||||||
chkDigit = 1;
|
chkDigit = 1;
|
||||||
}else if(chkDigit === 11){
|
} else if (chkDigit === 11) {
|
||||||
chkDigit = chkDigit % 10;
|
chkDigit = chkDigit % 10;
|
||||||
}
|
}
|
||||||
// else if(chkDigit === 11){
|
// else if(chkDigit === 11){
|
||||||
// chkDigit = cal % 10;
|
// chkDigit = cal % 10;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if(citizenIdDigits[12] !== chkDigit){
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -245,7 +248,6 @@ export class ProfileController extends Controller {
|
||||||
profile.dateRetireLaw = calculateRetireLaw(profile.birthDate);
|
profile.dateRetireLaw = calculateRetireLaw(profile.birthDate);
|
||||||
await this.profileRepo.save(profile);
|
await this.profileRepo.save(profile);
|
||||||
|
|
||||||
|
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -331,9 +333,12 @@ export class ProfileController extends Controller {
|
||||||
if (body.posTypeId && !(await this.posTypeRepo.findOneBy({ id: body.posTypeId }))) {
|
if (body.posTypeId && !(await this.posTypeRepo.findOneBy({ id: body.posTypeId }))) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.citizenId && body.citizenId.length !== 13) {
|
if (body.citizenId && body.citizenId.length !== 13) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "กรุณากรอกข้อมูลรหัสบัตรประจำตัวประชาชนให้ครบ 13 หลัก");
|
throw new HttpError(
|
||||||
|
HttpStatus.NOT_FOUND,
|
||||||
|
"กรุณากรอกข้อมูลรหัสบัตรประจำตัวประชาชนให้ครบ 13 หลัก",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.citizenId) {
|
if (body.citizenId) {
|
||||||
|
|
@ -353,16 +358,16 @@ export class ProfileController extends Controller {
|
||||||
citizenIdDigits[11] * 2;
|
citizenIdDigits[11] * 2;
|
||||||
const calStp2 = cal % 11;
|
const calStp2 = cal % 11;
|
||||||
let chkDigit = 11 - calStp2;
|
let chkDigit = 11 - calStp2;
|
||||||
if(chkDigit === 10){
|
if (chkDigit === 10) {
|
||||||
chkDigit = 1;
|
chkDigit = 1;
|
||||||
}else if(chkDigit === 11){
|
} else if (chkDigit === 11) {
|
||||||
chkDigit = chkDigit % 10;
|
chkDigit = chkDigit % 10;
|
||||||
}
|
}
|
||||||
// else if(chkDigit === 11){
|
// else if(chkDigit === 11){
|
||||||
// chkDigit = cal % 10;
|
// chkDigit = cal % 10;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if(citizenIdDigits[12] !== chkDigit){
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -652,6 +657,8 @@ export class ProfileController extends Controller {
|
||||||
|
|
||||||
return {
|
return {
|
||||||
id: _data.id,
|
id: _data.id,
|
||||||
|
avatar: _data.avatar,
|
||||||
|
avatarName: _data.avatarName,
|
||||||
prefix: _data.prefix,
|
prefix: _data.prefix,
|
||||||
rank: _data.rank,
|
rank: _data.rank,
|
||||||
firstName: _data.firstName,
|
firstName: _data.firstName,
|
||||||
|
|
|
||||||
|
|
@ -34,21 +34,6 @@ export class ProfileDisciplineController extends Controller {
|
||||||
private disciplineHistoryRepository = AppDataSource.getRepository(ProfileDisciplineHistory);
|
private disciplineHistoryRepository = AppDataSource.getRepository(ProfileDisciplineHistory);
|
||||||
|
|
||||||
@Get("{profileId}")
|
@Get("{profileId}")
|
||||||
@Example({
|
|
||||||
status: 200,
|
|
||||||
message: "สำเร็จ",
|
|
||||||
result: [
|
|
||||||
{
|
|
||||||
id: "debfa8a7-83fb-4801-a940-8ae74e7638d3",
|
|
||||||
date: "2024-03-12T10:09:47.000Z",
|
|
||||||
level: "string",
|
|
||||||
detail: "string",
|
|
||||||
unStigma: "string",
|
|
||||||
refCommandNo: "string",
|
|
||||||
refCommandDate: "2024-03-12T10:09:47.000Z",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
})
|
|
||||||
public async getDiscipline(@Path() profileId: string) {
|
public async getDiscipline(@Path() profileId: string) {
|
||||||
const lists = await this.disciplineRepository.find({
|
const lists = await this.disciplineRepository.find({
|
||||||
where: { profileId: profileId },
|
where: { profileId: profileId },
|
||||||
|
|
|
||||||
|
|
@ -73,9 +73,12 @@ export class ProfileEmployeeController extends Controller {
|
||||||
if (body.posTypeId && !(await this.posTypeRepo.findOneBy({ id: body.posTypeId }))) {
|
if (body.posTypeId && !(await this.posTypeRepo.findOneBy({ id: body.posTypeId }))) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.citizenId.length !== 13) {
|
if (body.citizenId.length !== 13) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "กรุณากรอกข้อมูลรหัสบัตรประจำตัวประชาชนให้ครบ 13 หลัก");
|
throw new HttpError(
|
||||||
|
HttpStatus.NOT_FOUND,
|
||||||
|
"กรุณากรอกข้อมูลรหัสบัตรประจำตัวประชาชนให้ครบ 13 หลัก",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.citizenId) {
|
if (body.citizenId) {
|
||||||
|
|
@ -95,16 +98,16 @@ export class ProfileEmployeeController extends Controller {
|
||||||
citizenIdDigits[11] * 2;
|
citizenIdDigits[11] * 2;
|
||||||
const calStp2 = cal % 11;
|
const calStp2 = cal % 11;
|
||||||
let chkDigit = 11 - calStp2;
|
let chkDigit = 11 - calStp2;
|
||||||
if(chkDigit === 10){
|
if (chkDigit === 10) {
|
||||||
chkDigit = 1;
|
chkDigit = 1;
|
||||||
}else if(chkDigit === 11){
|
} else if (chkDigit === 11) {
|
||||||
chkDigit = chkDigit % 10;
|
chkDigit = chkDigit % 10;
|
||||||
}
|
}
|
||||||
// else if(chkDigit === 11){
|
// else if(chkDigit === 11){
|
||||||
// chkDigit = cal % 10;
|
// chkDigit = cal % 10;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if(citizenIdDigits[12] !== chkDigit){
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -155,7 +158,10 @@ export class ProfileEmployeeController extends Controller {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
if (body.citizenId && body.citizenId.length !== 13) {
|
if (body.citizenId && body.citizenId.length !== 13) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "กรุณากรอกข้อมูลรหัสบัตรประจำตัวประชาชนให้ครบ 13 หลัก");
|
throw new HttpError(
|
||||||
|
HttpStatus.NOT_FOUND,
|
||||||
|
"กรุณากรอกข้อมูลรหัสบัตรประจำตัวประชาชนให้ครบ 13 หลัก",
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (body.citizenId) {
|
if (body.citizenId) {
|
||||||
|
|
@ -175,16 +181,16 @@ export class ProfileEmployeeController extends Controller {
|
||||||
citizenIdDigits[11] * 2;
|
citizenIdDigits[11] * 2;
|
||||||
const calStp2 = cal % 11;
|
const calStp2 = cal % 11;
|
||||||
let chkDigit = 11 - calStp2;
|
let chkDigit = 11 - calStp2;
|
||||||
if(chkDigit === 10){
|
if (chkDigit === 10) {
|
||||||
chkDigit = 1;
|
chkDigit = 1;
|
||||||
}else if(chkDigit === 11){
|
} else if (chkDigit === 11) {
|
||||||
chkDigit = chkDigit % 10;
|
chkDigit = chkDigit % 10;
|
||||||
}
|
}
|
||||||
// else if(chkDigit === 11){
|
// else if(chkDigit === 11){
|
||||||
// chkDigit = cal % 10;
|
// chkDigit = cal % 10;
|
||||||
// }
|
// }
|
||||||
|
|
||||||
if(citizenIdDigits[12] !== chkDigit){
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -1047,7 +1053,7 @@ export class ProfileEmployeeController extends Controller {
|
||||||
.leftJoinAndSelect("employeePosMaster.orgChild3", "orgChild3")
|
.leftJoinAndSelect("employeePosMaster.orgChild3", "orgChild3")
|
||||||
.leftJoinAndSelect("employeePosMaster.orgChild4", "orgChild4")
|
.leftJoinAndSelect("employeePosMaster.orgChild4", "orgChild4")
|
||||||
.leftJoinAndSelect("employeePosMaster.positions", "positions")
|
.leftJoinAndSelect("employeePosMaster.positions", "positions")
|
||||||
.leftJoinAndSelect("current_holder.profileSalary", "profileSalary")
|
.leftJoinAndSelect("current_holder.profileSalarys", "profileSalarys")
|
||||||
.leftJoinAndSelect("current_holder.profileDisciplines", "profileDisciplines")
|
.leftJoinAndSelect("current_holder.profileDisciplines", "profileDisciplines")
|
||||||
.leftJoinAndSelect("current_holder.posLevel", "posLevel")
|
.leftJoinAndSelect("current_holder.posLevel", "posLevel")
|
||||||
.leftJoinAndSelect("current_holder.posType", "posType")
|
.leftJoinAndSelect("current_holder.posType", "posType")
|
||||||
|
|
@ -1145,9 +1151,9 @@ export class ProfileEmployeeController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
const amount =
|
const amount =
|
||||||
item.current_holder == null || item.current_holder.profileSalary.length == 0
|
item.current_holder == null || item.current_holder.profileSalarys.length == 0
|
||||||
? null
|
? null
|
||||||
: item.current_holder.profileSalary.sort((a: any, b: any) => b.date - a.date)[0].amount;
|
: item.current_holder.profileSalarys.sort((a: any, b: any) => b.date - a.date)[0].amount;
|
||||||
let datePeriodStart = new Date(
|
let datePeriodStart = new Date(
|
||||||
`${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, "0")}-${String(new Date().getDate() + 1).padStart(2, "0")}T00:00:00.000Z`,
|
`${new Date().getFullYear()}-${String(new Date().getMonth() + 1).padStart(2, "0")}-${String(new Date().getDate() + 1).padStart(2, "0")}T00:00:00.000Z`,
|
||||||
);
|
);
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ export class ProfileFamilyCoupleController extends Controller {
|
||||||
@Example({
|
@Example({
|
||||||
status: 200,
|
status: 200,
|
||||||
message: "สำเร็จ",
|
message: "สำเร็จ",
|
||||||
result: [{
|
result: {
|
||||||
id: "6207ae29-05ef-4abb-9a37-a887265d671e",
|
id: "6207ae29-05ef-4abb-9a37-a887265d671e",
|
||||||
couple: true,
|
couple: true,
|
||||||
couplePrefix: "string",
|
couplePrefix: "string",
|
||||||
|
|
@ -45,7 +45,7 @@ export class ProfileFamilyCoupleController extends Controller {
|
||||||
coupleLive: true,
|
coupleLive: true,
|
||||||
relationship: "string",
|
relationship: "string",
|
||||||
profileId: "1526d9d3-d8b1-43ab-81b5-a84dfbe99201",
|
profileId: "1526d9d3-d8b1-43ab-81b5-a84dfbe99201",
|
||||||
}],
|
},
|
||||||
})
|
})
|
||||||
public async getFamilyCouple(@Path() profileId: string) {
|
public async getFamilyCouple(@Path() profileId: string) {
|
||||||
const profile = await this.profileRepo.findOne({
|
const profile = await this.profileRepo.findOne({
|
||||||
|
|
@ -55,12 +55,13 @@ export class ProfileFamilyCoupleController extends Controller {
|
||||||
if (!profile) {
|
if (!profile) {
|
||||||
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
||||||
}
|
}
|
||||||
const familyCouple = await this.ProfileFamilyCouple.find({
|
const familyCouple = await this.ProfileFamilyCouple.findOne({
|
||||||
select: [
|
select: [
|
||||||
"id", "couple", "couplePrefix", "coupleFirstName", "coupleLastName", "coupleLastNameOld",
|
"id", "couple", "couplePrefix", "coupleFirstName", "coupleLastName", "coupleLastNameOld",
|
||||||
"coupleCareer", "coupleCitizenId", "coupleLive", "relationship", "profileId",
|
"coupleCareer", "coupleCitizenId", "coupleLive", "relationship", "profileId",
|
||||||
],
|
],
|
||||||
where: { profileId },
|
where: { profileId },
|
||||||
|
order: { lastUpdatedAt: "DESC" },
|
||||||
});
|
});
|
||||||
|
|
||||||
return new HttpSuccess(familyCouple);
|
return new HttpSuccess(familyCouple);
|
||||||
|
|
@ -150,6 +151,7 @@ export class ProfileFamilyCoupleController extends Controller {
|
||||||
await this.ProfileFamilyCouple.save(familyCouple);
|
await this.ProfileFamilyCouple.save(familyCouple);
|
||||||
|
|
||||||
if (familyCouple) {
|
if (familyCouple) {
|
||||||
|
profile.relationship = familyCouple.relationship //update profile.relationship
|
||||||
const history: ProfileFamilyCoupleHistory = Object.assign(new ProfileFamilyCoupleHistory(), {
|
const history: ProfileFamilyCoupleHistory = Object.assign(new ProfileFamilyCoupleHistory(), {
|
||||||
profileFamilyCoupleId: familyCouple.id,
|
profileFamilyCoupleId: familyCouple.id,
|
||||||
couple: familyCouple.couple,
|
couple: familyCouple.couple,
|
||||||
|
|
@ -165,7 +167,10 @@ export class ProfileFamilyCoupleController extends Controller {
|
||||||
lastUpdateUserId: req.user.sub,
|
lastUpdateUserId: req.user.sub,
|
||||||
lastUpdateFullName: req.user.name,
|
lastUpdateFullName: req.user.name,
|
||||||
});
|
});
|
||||||
await this.ProfileFamilyCoupleHistory.save(history);
|
await Promise.all([
|
||||||
|
this.profileRepo.save(profile),
|
||||||
|
this.ProfileFamilyCoupleHistory.save(history)
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
return new HttpSuccess(familyCouple.id);
|
return new HttpSuccess(familyCouple.id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -61,6 +61,7 @@ export class ProfileFamilyCoupleEmployeeController extends Controller {
|
||||||
"coupleCareer", "coupleCitizenId", "coupleLive", "relationship", "profileEmployeeId",
|
"coupleCareer", "coupleCitizenId", "coupleLive", "relationship", "profileEmployeeId",
|
||||||
],
|
],
|
||||||
where: { profileEmployeeId },
|
where: { profileEmployeeId },
|
||||||
|
order: { lastUpdatedAt: "DESC" },
|
||||||
});
|
});
|
||||||
|
|
||||||
return new HttpSuccess(familyCouple);
|
return new HttpSuccess(familyCouple);
|
||||||
|
|
@ -150,6 +151,7 @@ export class ProfileFamilyCoupleEmployeeController extends Controller {
|
||||||
await this.ProfileFamilyCouple.save(familyCouple);
|
await this.ProfileFamilyCouple.save(familyCouple);
|
||||||
|
|
||||||
if (familyCouple) {
|
if (familyCouple) {
|
||||||
|
profile.relationship = familyCouple.relationship //update profileEmployee.relationship
|
||||||
const history: ProfileFamilyCoupleHistory = Object.assign(new ProfileFamilyCoupleHistory(), {
|
const history: ProfileFamilyCoupleHistory = Object.assign(new ProfileFamilyCoupleHistory(), {
|
||||||
profileFamilyCoupleId: familyCouple.id,
|
profileFamilyCoupleId: familyCouple.id,
|
||||||
couple: familyCouple.couple,
|
couple: familyCouple.couple,
|
||||||
|
|
@ -165,7 +167,10 @@ export class ProfileFamilyCoupleEmployeeController extends Controller {
|
||||||
lastUpdateUserId: req.user.sub,
|
lastUpdateUserId: req.user.sub,
|
||||||
lastUpdateFullName: req.user.name,
|
lastUpdateFullName: req.user.name,
|
||||||
});
|
});
|
||||||
await this.ProfileFamilyCoupleHistory.save(history);
|
await Promise.all([
|
||||||
|
this.profileRepo.save(profile),
|
||||||
|
this.ProfileFamilyCoupleHistory.save(history)
|
||||||
|
]);
|
||||||
}
|
}
|
||||||
return new HttpSuccess(familyCouple.id);
|
return new HttpSuccess(familyCouple.id);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ export class ProfileFamilyFatherController extends Controller {
|
||||||
"fatherCareer", "fatherCitizenId", "fatherLive", "profileId",
|
"fatherCareer", "fatherCitizenId", "fatherLive", "profileId",
|
||||||
],
|
],
|
||||||
where: { profileId },
|
where: { profileId },
|
||||||
|
order: { lastUpdatedAt: "DESC" },
|
||||||
});
|
});
|
||||||
|
|
||||||
return new HttpSuccess(familyFather);
|
return new HttpSuccess(familyFather);
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ export class ProfileFamilyFatherEmployeeController extends Controller {
|
||||||
"fatherCareer", "fatherCitizenId", "fatherLive", "profileEmployeeId",
|
"fatherCareer", "fatherCitizenId", "fatherLive", "profileEmployeeId",
|
||||||
],
|
],
|
||||||
where: { profileEmployeeId },
|
where: { profileEmployeeId },
|
||||||
|
order: { lastUpdatedAt: "DESC" },
|
||||||
});
|
});
|
||||||
|
|
||||||
return new HttpSuccess(familyFather);
|
return new HttpSuccess(familyFather);
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ export class ProfileFamilyMotherController extends Controller {
|
||||||
"motherCareer", "motherCitizenId", "motherLive", "profileId",
|
"motherCareer", "motherCitizenId", "motherLive", "profileId",
|
||||||
],
|
],
|
||||||
where: { profileId },
|
where: { profileId },
|
||||||
|
order: { lastUpdatedAt: "DESC" },
|
||||||
});
|
});
|
||||||
|
|
||||||
return new HttpSuccess(familyMother);
|
return new HttpSuccess(familyMother);
|
||||||
|
|
|
||||||
|
|
@ -58,6 +58,7 @@ export class ProfileFamilyMotherEmployeeController extends Controller {
|
||||||
"motherCareer", "motherCitizenId", "motherLive", "profileEmployeeId",
|
"motherCareer", "motherCitizenId", "motherLive", "profileEmployeeId",
|
||||||
],
|
],
|
||||||
where: { profileEmployeeId },
|
where: { profileEmployeeId },
|
||||||
|
order: { lastUpdatedAt: "DESC" },
|
||||||
});
|
});
|
||||||
|
|
||||||
return new HttpSuccess(familyMother);
|
return new HttpSuccess(familyMother);
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,7 @@ export class ProfileLeaveEmployeeController extends Controller {
|
||||||
public async getLeave(@Path() profileId: string) {
|
public async getLeave(@Path() profileId: string) {
|
||||||
const record = await this.leaveRepo.find({
|
const record = await this.leaveRepo.find({
|
||||||
relations: { leaveType: true },
|
relations: { leaveType: true },
|
||||||
where: { profileId },
|
where: { profileEmployeeId: profileId },
|
||||||
});
|
});
|
||||||
return new HttpSuccess(record);
|
return new HttpSuccess(record);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -34,23 +34,9 @@ export class ProfileNopaidEmployeeController extends Controller {
|
||||||
private nopaidHistoryRepository = AppDataSource.getRepository(ProfileNopaidHistory);
|
private nopaidHistoryRepository = AppDataSource.getRepository(ProfileNopaidHistory);
|
||||||
|
|
||||||
@Get("{profileId}")
|
@Get("{profileId}")
|
||||||
@Example({
|
|
||||||
status: 200,
|
|
||||||
message: "สำเร็จ",
|
|
||||||
result: [
|
|
||||||
{
|
|
||||||
id: "debfa8a7-83fb-4801-a940-8ae74e7638d3",
|
|
||||||
date: "2024-03-12T10:09:47.000Z",
|
|
||||||
reference: "string",
|
|
||||||
detail: "string",
|
|
||||||
refCommandNo: "string",
|
|
||||||
refCommandDate: "2024-03-12T10:09:47.000Z",
|
|
||||||
},
|
|
||||||
],
|
|
||||||
})
|
|
||||||
public async getNopaid(@Path() profileId: string) {
|
public async getNopaid(@Path() profileId: string) {
|
||||||
const lists = await this.nopaidRepository.find({
|
const lists = await this.nopaidRepository.find({
|
||||||
where: { profileId },
|
where: { profileEmployeeId: profileId },
|
||||||
});
|
});
|
||||||
return new HttpSuccess(lists);
|
return new HttpSuccess(lists);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -15,9 +15,9 @@ import {
|
||||||
import { AppDataSource } from "../database/data-source";
|
import { AppDataSource } from "../database/data-source";
|
||||||
import {
|
import {
|
||||||
CreateProfileSalaryEmployee,
|
CreateProfileSalaryEmployee,
|
||||||
ProfileSalaryEmployee,
|
ProfileSalary,
|
||||||
UpdateProfileSalaryEmployee,
|
UpdateProfileSalaryEmployee,
|
||||||
} from "../entities/ProfileSalaryEmployee";
|
} from "../entities/ProfileSalary";
|
||||||
import HttpSuccess from "../interfaces/http-success";
|
import HttpSuccess from "../interfaces/http-success";
|
||||||
import HttpStatus from "../interfaces/http-status";
|
import HttpStatus from "../interfaces/http-status";
|
||||||
import HttpError from "../interfaces/http-error";
|
import HttpError from "../interfaces/http-error";
|
||||||
|
|
@ -31,13 +31,13 @@ import { LessThan, MoreThan } from "typeorm";
|
||||||
@Security("bearerAuth")
|
@Security("bearerAuth")
|
||||||
export class ProfileSalaryEmployeeController extends Controller {
|
export class ProfileSalaryEmployeeController extends Controller {
|
||||||
private profileRepo = AppDataSource.getRepository(ProfileEmployee);
|
private profileRepo = AppDataSource.getRepository(ProfileEmployee);
|
||||||
private salaryRepo = AppDataSource.getRepository(ProfileSalaryEmployee);
|
private salaryRepo = AppDataSource.getRepository(ProfileSalary);
|
||||||
private salaryHistoryRepo = AppDataSource.getRepository(ProfileSalaryHistory);
|
private salaryHistoryRepo = AppDataSource.getRepository(ProfileSalaryHistory);
|
||||||
|
|
||||||
@Get("{profileId}")
|
@Get("{profileId}")
|
||||||
public async getSalary(@Path() profileId: string) {
|
public async getSalaryEmployee(@Path() profileId: string) {
|
||||||
const record = await this.salaryRepo.find({
|
const record = await this.salaryRepo.find({
|
||||||
where: { profileId: profileId },
|
where: { profileEmployeeId: profileId },
|
||||||
order: { order: "ASC" },
|
order: { order: "ASC" },
|
||||||
});
|
});
|
||||||
return new HttpSuccess(record);
|
return new HttpSuccess(record);
|
||||||
|
|
@ -52,26 +52,26 @@ export class ProfileSalaryEmployeeController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Post()
|
@Post()
|
||||||
public async newSalary(
|
public async newSalaryEmployee(
|
||||||
@Request() req: RequestWithUser,
|
@Request() req: RequestWithUser,
|
||||||
@Body() body: CreateProfileSalaryEmployee,
|
@Body() body: CreateProfileSalaryEmployee,
|
||||||
) {
|
) {
|
||||||
if (!body.profileId) {
|
if (!body.profileEmployeeId) {
|
||||||
throw new HttpError(HttpStatus.BAD_REQUEST, "กรุณากรอก profileId");
|
throw new HttpError(HttpStatus.BAD_REQUEST, "กรุณากรอก profileEmployeeId");
|
||||||
}
|
}
|
||||||
|
|
||||||
const profile = await this.profileRepo.findOneBy({ id: body.profileId });
|
const profile = await this.profileRepo.findOneBy({ id: body.profileEmployeeId });
|
||||||
|
|
||||||
if (!profile) {
|
if (!profile) {
|
||||||
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
throw new HttpError(HttpStatus.BAD_REQUEST, "ไม่พบ profile ดังกล่าว");
|
||||||
}
|
}
|
||||||
|
|
||||||
const dest_item = await this.salaryRepo.findOne({
|
const dest_item = await this.salaryRepo.findOne({
|
||||||
where: { profileId: body.profileId },
|
where: { profileId: body.profileEmployeeId },
|
||||||
order: { order: "DESC" },
|
order: { order: "DESC" },
|
||||||
});
|
});
|
||||||
|
|
||||||
const data = new ProfileSalaryEmployee();
|
const data = new ProfileSalary();
|
||||||
|
|
||||||
const meta = {
|
const meta = {
|
||||||
order: dest_item == null ? 1 : dest_item.order + 1,
|
order: dest_item == null ? 1 : dest_item.order + 1,
|
||||||
|
|
@ -89,7 +89,7 @@ export class ProfileSalaryEmployeeController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Patch("{salaryId}")
|
@Patch("{salaryId}")
|
||||||
public async editSalary(
|
public async editSalaryEmployee(
|
||||||
@Request() req: RequestWithUser,
|
@Request() req: RequestWithUser,
|
||||||
@Body() body: UpdateProfileSalaryEmployee,
|
@Body() body: UpdateProfileSalaryEmployee,
|
||||||
@Path() salaryId: string,
|
@Path() salaryId: string,
|
||||||
|
|
@ -112,7 +112,7 @@ export class ProfileSalaryEmployeeController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Delete("{salaryId}")
|
@Delete("{salaryId}")
|
||||||
public async deleteSalary(@Path() salaryId: string) {
|
public async deleteSalaryEmployee(@Path() salaryId: string) {
|
||||||
await this.salaryHistoryRepo.delete({
|
await this.salaryHistoryRepo.delete({
|
||||||
profileSalaryId: salaryId,
|
profileSalaryId: salaryId,
|
||||||
});
|
});
|
||||||
|
|
@ -127,7 +127,7 @@ export class ProfileSalaryEmployeeController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Get("swap/{direction}/{salaryId}")
|
@Get("swap/{direction}/{salaryId}")
|
||||||
public async swapSalary(@Path() direction: string, salaryId: string) {
|
public async swapSalaryEmployee(@Path() direction: string, salaryId: string) {
|
||||||
const source_item = await this.salaryRepo.findOne({ where: { id: salaryId } });
|
const source_item = await this.salaryRepo.findOne({ where: { id: salaryId } });
|
||||||
if (source_item == null) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
if (source_item == null) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูล");
|
||||||
const sourceOrder = source_item.order;
|
const sourceOrder = source_item.order;
|
||||||
|
|
|
||||||
|
|
@ -3,7 +3,7 @@ import { EntityBase } from "./base/Base";
|
||||||
import { EmployeePosLevel } from "./EmployeePosLevel";
|
import { EmployeePosLevel } from "./EmployeePosLevel";
|
||||||
import { EmployeePosType } from "./EmployeePosType";
|
import { EmployeePosType } from "./EmployeePosType";
|
||||||
import { EmployeePosMaster } from "./EmployeePosMaster";
|
import { EmployeePosMaster } from "./EmployeePosMaster";
|
||||||
import { ProfileSalaryEmployee } from "./ProfileSalaryEmployee";
|
import { ProfileSalary } from "./ProfileSalary";
|
||||||
import { ProfileCertificate } from "./ProfileCertificate";
|
import { ProfileCertificate } from "./ProfileCertificate";
|
||||||
import { ProfileTraining } from "./ProfileTraining";
|
import { ProfileTraining } from "./ProfileTraining";
|
||||||
import { ProfileInsignia } from "./ProfileInsignia";
|
import { ProfileInsignia } from "./ProfileInsignia";
|
||||||
|
|
@ -38,6 +38,13 @@ export class ProfileEmployee extends EntityBase {
|
||||||
})
|
})
|
||||||
avatar: string;
|
avatar: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "รูปถ่าย",
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
avatarName: string;
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
nullable: true,
|
nullable: true,
|
||||||
comment: "ประเภทลูกจ้าง (perm->ลูกจ้างประจำ temp->ลูกจ้างชั่วคราว)",
|
comment: "ประเภทลูกจ้าง (perm->ลูกจ้างประจำ temp->ลูกจ้างชั่วคราว)",
|
||||||
|
|
@ -229,8 +236,8 @@ export class ProfileEmployee extends EntityBase {
|
||||||
@OneToMany(() => EmployeePosMaster, (v) => v.next_holder)
|
@OneToMany(() => EmployeePosMaster, (v) => v.next_holder)
|
||||||
next_holders: EmployeePosMaster[];
|
next_holders: EmployeePosMaster[];
|
||||||
|
|
||||||
@OneToMany(() => ProfileSalaryEmployee, (v) => v.profile)
|
@OneToMany(() => ProfileSalary, (v) => v.profile)
|
||||||
profileSalary: ProfileSalaryEmployee[];
|
profileSalarys: ProfileSalary[];
|
||||||
|
|
||||||
@OneToMany(() => ProfileCertificate, (v) => v.profileEmployee)
|
@OneToMany(() => ProfileCertificate, (v) => v.profileEmployee)
|
||||||
profileCertificates: ProfileCertificate[];
|
profileCertificates: ProfileCertificate[];
|
||||||
|
|
@ -475,4 +482,4 @@ export type UpdateProfileAddressEmployee = {
|
||||||
currentDistrictId?: string | null;
|
currentDistrictId?: string | null;
|
||||||
currentSubDistrictId?: string | null;
|
currentSubDistrictId?: string | null;
|
||||||
currentZipCode?: string | null;
|
currentZipCode?: string | null;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -16,9 +16,11 @@ import { ProfileSalaryHistory } from "./ProfileSalaryHistory";
|
||||||
@Entity("profileSalary")
|
@Entity("profileSalary")
|
||||||
export class ProfileSalary extends EntityBase {
|
export class ProfileSalary extends EntityBase {
|
||||||
@Column({
|
@Column({
|
||||||
|
nullable: true,
|
||||||
length: 40,
|
length: 40,
|
||||||
comment: "คีย์นอก(FK)ของตาราง profile",
|
comment: "คีย์นอก(FK)ของตาราง profile",
|
||||||
type: "uuid",
|
type: "uuid",
|
||||||
|
default: null,
|
||||||
})
|
})
|
||||||
profileId: string;
|
profileId: string;
|
||||||
|
|
||||||
|
|
@ -173,9 +175,26 @@ export class CreateProfileSalaryEmployee {
|
||||||
mouthSalaryAmount?: Double | null;
|
mouthSalaryAmount?: Double | null;
|
||||||
posNo: string | null;
|
posNo: string | null;
|
||||||
position: string | null;
|
position: string | null;
|
||||||
positionLine: string | null;
|
// positionLine: string | null;
|
||||||
positionPathSide: string | null;
|
// positionPathSide: string | null;
|
||||||
positionExecutive: string | null;
|
// positionExecutive: string | null;
|
||||||
|
positionType: string | null;
|
||||||
|
positionLevel: string | null;
|
||||||
|
refCommandNo: string | null;
|
||||||
|
templateDoc: string | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export class UpdateProfileSalaryEmployee {
|
||||||
|
profileEmployeeId: string | null;
|
||||||
|
date?: Date | null;
|
||||||
|
amount?: Double | null;
|
||||||
|
positionSalaryAmount?: Double | null;
|
||||||
|
mouthSalaryAmount?: Double | null;
|
||||||
|
posNo: string | null;
|
||||||
|
position: string | null;
|
||||||
|
// positionLine: string | null;
|
||||||
|
// positionPathSide: string | null;
|
||||||
|
// positionExecutive: string | null;
|
||||||
positionType: string | null;
|
positionType: string | null;
|
||||||
positionLevel: string | null;
|
positionLevel: string | null;
|
||||||
refCommandNo: string | null;
|
refCommandNo: string | null;
|
||||||
|
|
|
||||||
|
|
@ -1,447 +0,0 @@
|
||||||
import { Entity, Column, OneToMany, JoinColumn, ManyToOne, Double } from "typeorm";
|
|
||||||
import { EntityBase } from "./base/Base";
|
|
||||||
import { ProfileSalaryEmployeeHistory } from "./ProfileSalaryEmployeeHistory";
|
|
||||||
import { ProfileEmployee } from "./ProfileEmployee";
|
|
||||||
|
|
||||||
@Entity("profileSalaryEmployee")
|
|
||||||
export class ProfileSalaryEmployee extends EntityBase {
|
|
||||||
@Column({
|
|
||||||
comment: "วันที่",
|
|
||||||
type: "datetime",
|
|
||||||
nullable: true,
|
|
||||||
})
|
|
||||||
date: Date;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "เงินเดือนฐาน",
|
|
||||||
default: 0,
|
|
||||||
nullable: true,
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
amount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "เงินประจำตำแหน่ง",
|
|
||||||
default: 0,
|
|
||||||
nullable: true,
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
positionSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "เงินค่าตอบแทนรายเดือน",
|
|
||||||
default: 0,
|
|
||||||
nullable: true,
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
mouthSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
length: 40,
|
|
||||||
comment: "คีย์นอก(FK)ของตาราง profile",
|
|
||||||
type: "uuid",
|
|
||||||
})
|
|
||||||
profileId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "สถานะการใช้งาน",
|
|
||||||
default: false,
|
|
||||||
})
|
|
||||||
isActive: boolean;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "ตำแหน่ง (รายละเอียด)",
|
|
||||||
type: "text",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
salaryClass: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "เอกสารอ้างอิง",
|
|
||||||
type: "text",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
salaryRef: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id เลขที่ตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
posNoId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id เลขที่ตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id สังกัด",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
ocId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ตำแหน่งทางการบริหาร",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionExecutiveId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ด้านทางการบริหาร",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionExecutiveSideId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionLevelId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id สายงาน",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionLineId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ด้าน/สาขา",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionPathSideId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ประเภทตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionTypeId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ชื่อย่อหน่วยงาน",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
organizationShortNameId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id กลุ่มงาน",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionEmployeeGroupId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ระดับชั้นงาน",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionEmployeeLevelId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionEmployeePositionId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ด้านของตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionEmployeePositionSideId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id เลขที่ตำแหน่งลูกจ้าง",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
posNoEmployee: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
type: "datetime",
|
|
||||||
comment: "เอกสารอ้างอิง (ลงวันที่)",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
refCommandDate: Date;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)",
|
|
||||||
type: "text",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
refCommandNo: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "ลำดับ",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
order: number;
|
|
||||||
|
|
||||||
// @Column({
|
|
||||||
// comment: "เลขที่คำสั่ง",
|
|
||||||
// type: "text",
|
|
||||||
// })
|
|
||||||
// commandNo: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "ประเภทคำสั่ง",
|
|
||||||
type: "text",
|
|
||||||
})
|
|
||||||
commandTypeName: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "ประเภทตำแหน่งกรณีพิเศษ",
|
|
||||||
type: "text",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
salaryStatus: string;
|
|
||||||
|
|
||||||
@OneToMany(
|
|
||||||
() => ProfileSalaryEmployeeHistory,
|
|
||||||
(profileSalaryHistory) => profileSalaryHistory.histories,
|
|
||||||
)
|
|
||||||
profileSalaryHistories: ProfileSalaryEmployeeHistory[];
|
|
||||||
|
|
||||||
@ManyToOne(() => ProfileEmployee, (profile) => profile.profileSalary)
|
|
||||||
@JoinColumn({ name: "profileId" })
|
|
||||||
profile: ProfileEmployee;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class CreateProfileSalaryEmployee {
|
|
||||||
@Column({
|
|
||||||
type: "datetime",
|
|
||||||
})
|
|
||||||
date: Date;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
amount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
positionSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
mouthSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "uuid",
|
|
||||||
})
|
|
||||||
profileId: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// isActive: boolean;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryClass: string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryRef: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// posNoId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// ocId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionExecutiveId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionExecutiveSideId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionLevelId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionLineId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionPathSideId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionTypeId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// organizationShortNameId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeeGroupId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeeLevelId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeePositionId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeePositionSideId : string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// posNoEmployee : string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// refCommandDate: Date | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// refCommandNo: string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// order: number | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// commandNo: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// commandTypeName: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryStatus: string | null;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class UpdateProfileSalaryEmployee {
|
|
||||||
@Column({
|
|
||||||
type: "datetime",
|
|
||||||
})
|
|
||||||
date: Date;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
amount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
positionSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
mouthSalaryAmount: Double;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// isActive: boolean;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryClass: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryRef: string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// posNoId: string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionId: string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// ocId: string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionExecutiveId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionExecutiveSideId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionLevelId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionLineId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionPathSideId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionTypeId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// organizationShortNameId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeeGroupId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeeLevelId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeePositionId : string;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeePositionSideId : string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// posNoEmployee : string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// refCommandDate: Date;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// refCommandNo: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// order: number;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// commandNo: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// commandTypeName: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryStatus: string;
|
|
||||||
}
|
|
||||||
|
|
@ -1,440 +0,0 @@
|
||||||
import { Entity, Column, JoinColumn, ManyToOne, Double } from "typeorm";
|
|
||||||
import { EntityBase } from "./base/Base";
|
|
||||||
import { ProfileSalaryEmployee } from "./ProfileSalaryEmployee";
|
|
||||||
|
|
||||||
@Entity("profileSalaryEmployeeHistory")
|
|
||||||
export class ProfileSalaryEmployeeHistory extends EntityBase {
|
|
||||||
@Column({
|
|
||||||
comment: "วันที่",
|
|
||||||
type: "datetime",
|
|
||||||
nullable: true,
|
|
||||||
})
|
|
||||||
date: Date;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "เงินเดือนฐาน",
|
|
||||||
default: 0,
|
|
||||||
nullable: true,
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
amount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "เงินประจำตำแหน่ง",
|
|
||||||
default: 0,
|
|
||||||
nullable: true,
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
positionSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "เงินค่าตอบแทนรายเดือน",
|
|
||||||
default: 0,
|
|
||||||
nullable: true,
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
mouthSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
length: 40,
|
|
||||||
comment: "คีย์นอก(FK)ของตาราง profile",
|
|
||||||
type: "uuid",
|
|
||||||
})
|
|
||||||
profileId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "สถานะการใช้งาน",
|
|
||||||
default: false,
|
|
||||||
})
|
|
||||||
isActive: boolean;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "ตำแหน่ง (รายละเอียด)",
|
|
||||||
type: "text",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
salaryClass: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "เอกสารอ้างอิง",
|
|
||||||
type: "text",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
salaryRef: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id เลขที่ตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
posNoId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id เลขที่ตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id สังกัด",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
ocId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ตำแหน่งทางการบริหาร",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionExecutiveId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ด้านทางการบริหาร",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionExecutiveSideId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionLevelId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id สายงาน",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionLineId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ด้าน/สาขา",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionPathSideId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ประเภทตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionTypeId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ชื่อย่อหน่วยงาน",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
organizationShortNameId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id กลุ่มงาน",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionEmployeeGroupId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ระดับชั้นงาน",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionEmployeeLevelId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionEmployeePositionId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id ด้านของตำแหน่ง",
|
|
||||||
type: "uuid",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
positionEmployeePositionSideId: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
length: 40,
|
|
||||||
comment: "Id เลขที่ตำแหน่งลูกจ้าง",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
posNoEmployee: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
type: "datetime",
|
|
||||||
comment: "เอกสารอ้างอิง (ลงวันที่)",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
refCommandDate: Date;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "เอกสารอ้างอิง (เลขที่คำสั่ง)",
|
|
||||||
type: "text",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
refCommandNo: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "ลำดับ",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
order: number;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "เลขที่คำสั่ง",
|
|
||||||
type: "text",
|
|
||||||
})
|
|
||||||
commandNo: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
comment: "ประเภทคำสั่ง",
|
|
||||||
type: "text",
|
|
||||||
})
|
|
||||||
commandTypeName: string;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
nullable: true,
|
|
||||||
comment: "ประเภทตำแหน่งกรณีพิเศษ",
|
|
||||||
type: "text",
|
|
||||||
default: null,
|
|
||||||
})
|
|
||||||
salaryStatus: string;
|
|
||||||
|
|
||||||
@ManyToOne(() => ProfileSalaryEmployee, (profileSalary) => profileSalary.profileSalaryHistories)
|
|
||||||
@JoinColumn({ name: "profileSalaryId" })
|
|
||||||
histories: ProfileSalaryEmployee;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class CreateProfileSalaryEmployeeHistory {
|
|
||||||
@Column({
|
|
||||||
type: "datetime",
|
|
||||||
})
|
|
||||||
date: Date;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
amount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
positionSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
mouthSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "uuid",
|
|
||||||
})
|
|
||||||
profileId: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// isActive: boolean;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryClass: string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryRef: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// posNoId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// ocId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionExecutiveId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionExecutiveSideId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionLevelId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionLineId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionPathSideId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionTypeId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// organizationShortNameId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeeGroupId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeeLevelId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeePositionId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeePositionSideId : string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// posNoEmployee : string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// refCommandDate: Date | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// refCommandNo: string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// order: number | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// commandNo: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// commandTypeName: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryStatus: string | null;
|
|
||||||
}
|
|
||||||
|
|
||||||
export class UpdateProfileSalaryEmployeeHistory {
|
|
||||||
@Column({
|
|
||||||
type: "datetime",
|
|
||||||
})
|
|
||||||
date: Date;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
amount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
positionSalaryAmount: Double;
|
|
||||||
|
|
||||||
@Column({
|
|
||||||
type: "double",
|
|
||||||
})
|
|
||||||
mouthSalaryAmount: Double;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// isActive: boolean;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryClass: string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryRef: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// posNoId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// ocId: string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionExecutiveId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionExecutiveSideId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionLevelId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionLineId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionPathSideId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionTypeId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// organizationShortNameId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeeGroupId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeeLevelId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeePositionId : string | null;
|
|
||||||
|
|
||||||
// @Column("uuid")
|
|
||||||
// positionEmployeePositionSideId : string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// posNoEmployee : string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// refCommandDate: Date | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// refCommandNo: string | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// order: number | null;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// commandNo: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// commandTypeName: string;
|
|
||||||
|
|
||||||
// @Column()
|
|
||||||
// salaryStatus: string | null;
|
|
||||||
}
|
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
export class UpdateTableProfileAvatarAddIsactive21715836928018 implements MigrationInterface {
|
||||||
|
name = 'UpdateTableProfileAvatarAddIsactive21715836928018'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileEmployee\` ADD \`avatarName\` varchar(255) NULL COMMENT 'รูปถ่าย'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileEmployeeHistory\` ADD \`avatarName\` varchar(255) NULL COMMENT 'รูปถ่าย'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileSalaryEmployee\` CHANGE \`commandTypeName\` \`commandTypeName\` text NULL COMMENT 'ประเภทคำสั่ง'`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileSalaryEmployee\` CHANGE \`commandTypeName\` \`commandTypeName\` text NOT NULL COMMENT 'ประเภทคำสั่ง'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileEmployeeHistory\` DROP COLUMN \`avatarName\``);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileEmployee\` DROP COLUMN \`avatarName\``);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
export class UpdateTableProfileAvatarAddIsactive31715843317765 implements MigrationInterface {
|
||||||
|
name = 'UpdateTableProfileAvatarAddIsactive31715843317765'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileSalary\` DROP FOREIGN KEY \`FK_7534d36579c78107ba08a96be6f\``);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileSalary\` CHANGE \`profileId\` \`profileId\` varchar(40) NULL COMMENT 'คีย์นอก(FK)ของตาราง profile'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileSalary\` ADD CONSTRAINT \`FK_7534d36579c78107ba08a96be6f\` FOREIGN KEY (\`profileId\`) REFERENCES \`profile\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileSalary\` DROP FOREIGN KEY \`FK_7534d36579c78107ba08a96be6f\``);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileSalary\` CHANGE \`profileId\` \`profileId\` varchar(40) NOT NULL COMMENT 'คีย์นอก(FK)ของตาราง profile'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileSalary\` ADD CONSTRAINT \`FK_7534d36579c78107ba08a96be6f\` FOREIGN KEY (\`profileId\`) REFERENCES \`profile\`(\`id\`) ON DELETE NO ACTION ON UPDATE NO ACTION`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue