Merge branch 'develop' into adiDev
This commit is contained in:
commit
219a9ff104
7 changed files with 316 additions and 57 deletions
|
|
@ -698,6 +698,23 @@ export class CommandController extends Controller {
|
||||||
commandSend.lastUpdateFullName = request.user.name;
|
commandSend.lastUpdateFullName = request.user.name;
|
||||||
commandSend.lastUpdatedAt = new Date();
|
commandSend.lastUpdatedAt = new Date();
|
||||||
await this.commandSendRepository.save(commandSend);
|
await this.commandSendRepository.save(commandSend);
|
||||||
|
if(commandSend && commandSend.id) {
|
||||||
|
let _ccName = new Array("INBOX", "EMAIL");
|
||||||
|
let _dataSendCC = new Array();
|
||||||
|
for(let i=0; i<_ccName.length; i++) {
|
||||||
|
_dataSendCC.push({
|
||||||
|
commandSendId: commandSend.id,
|
||||||
|
name: _ccName[i],
|
||||||
|
createdUserId: request.user.sub,
|
||||||
|
createdFullName: request.user.name,
|
||||||
|
createdAt: new Date(),
|
||||||
|
lastUpdateUserId: request.user.sub,
|
||||||
|
lastUpdateFullName: request.user.name,
|
||||||
|
lastUpdatedAt: new Date(),
|
||||||
|
});
|
||||||
|
}
|
||||||
|
await this.commandSendCCRepository.save(_dataSendCC);
|
||||||
|
}
|
||||||
}),
|
}),
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
@ -2172,26 +2189,30 @@ export class CommandController extends Controller {
|
||||||
if (clearProfile) {
|
if (clearProfile) {
|
||||||
if (profile.keycloak != null) {
|
if (profile.keycloak != null) {
|
||||||
const delUserKeycloak = await deleteUser(profile.keycloak);
|
const delUserKeycloak = await deleteUser(profile.keycloak);
|
||||||
if (delUserKeycloak) profile.keycloak = _null;
|
if (delUserKeycloak) {
|
||||||
profile.roleKeycloaks = [];
|
profile.keycloak = _null;
|
||||||
|
profile.roleKeycloaks = [];
|
||||||
|
profile.isActive = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
profile.position = _null;
|
profile.position = _null;
|
||||||
profile.posTypeId = _null;
|
profile.posTypeId = _null;
|
||||||
profile.posLevelId = _null;
|
profile.posLevelId = _null;
|
||||||
}
|
}
|
||||||
const returnWork = await checkReturnCommandType(String(item.commandId));
|
const returnWork = await checkReturnCommandType(String(item.commandId));
|
||||||
|
//คำสั่งบรรจุกลับเข้ารับราชการ หรือ ผู้ออกไปรับราชการทหารกลับเข้ารับราชการ solutionเดิม ให้ enable user เปลี่ยนเป็นสร้าง user ใหม่เลยเพราะยังไงตอนถูกพักก็ถูกลบ user
|
||||||
if (returnWork && item.isGovernment) {
|
if (returnWork && item.isGovernment) {
|
||||||
if (profile.keycloak != null) {
|
/*if (profile.keycloak != null) {
|
||||||
const enableActive = await enableStatus(profile.keycloak, true);
|
const enableActive = await enableStatus(profile.keycloak, true);
|
||||||
if (!enableActive) throw new Error("Failed. Cannot change enable status.");
|
if (!enableActive) throw new Error("Failed. Cannot change enable status.");
|
||||||
} else {
|
} else {*/
|
||||||
const userKeycloakId = await createUser(profile.citizenId, profile.citizenId, {
|
const userKeycloakId = await createUser(profile.citizenId, profile.citizenId, {
|
||||||
firstName: profile.firstName,
|
firstName: profile.firstName,
|
||||||
lastName: profile.lastName,
|
lastName: profile.lastName,
|
||||||
});
|
});
|
||||||
if (typeof userKeycloakId !== "string") {
|
// if (typeof userKeycloakId !== "string") {
|
||||||
throw new Error(userKeycloakId.errorMessage);
|
// throw new Error(userKeycloakId.errorMessage);
|
||||||
}
|
// }
|
||||||
const list = await getRoles();
|
const list = await getRoles();
|
||||||
if (!Array.isArray(list))
|
if (!Array.isArray(list))
|
||||||
throw new Error("Failed. Cannot get role(s) data from the server.");
|
throw new Error("Failed. Cannot get role(s) data from the server.");
|
||||||
|
|
@ -2204,11 +2225,11 @@ export class CommandController extends Controller {
|
||||||
name: x.name,
|
name: x.name,
|
||||||
})),
|
})),
|
||||||
);
|
);
|
||||||
if (!result) throw new Error("Failed. Cannot set user's role.");
|
// if (!result) throw new Error("Failed. Cannot set user's role.");
|
||||||
profile.keycloak = userKeycloakId;
|
profile.keycloak = typeof userKeycloakId === "string" ? userKeycloakId : "";
|
||||||
}
|
/*}*/
|
||||||
profile.isActive = true;
|
profile.isActive = true;
|
||||||
profile.roleKeycloaks = profile.roleKeycloaks ?? [roleKeycloak];
|
profile.roleKeycloaks = result && roleKeycloak ? [roleKeycloak] : [];
|
||||||
}
|
}
|
||||||
await this.profileRepository.save(profile);
|
await this.profileRepository.save(profile);
|
||||||
}),
|
}),
|
||||||
|
|
@ -2297,9 +2318,11 @@ export class CommandController extends Controller {
|
||||||
if (clearProfile) {
|
if (clearProfile) {
|
||||||
if (profile.keycloak != null) {
|
if (profile.keycloak != null) {
|
||||||
const delUserKeycloak = await deleteUser(profile.keycloak);
|
const delUserKeycloak = await deleteUser(profile.keycloak);
|
||||||
if (delUserKeycloak) profile.keycloak = _null;
|
if (delUserKeycloak) {
|
||||||
profile.roleKeycloaks = [];
|
profile.keycloak = _null;
|
||||||
profile.isActive = false;
|
profile.roleKeycloaks = [];
|
||||||
|
profile.isActive = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
profile.position = _null;
|
profile.position = _null;
|
||||||
profile.posTypeId = _null;
|
profile.posTypeId = _null;
|
||||||
|
|
@ -2373,8 +2396,11 @@ export class CommandController extends Controller {
|
||||||
if (clearProfile) {
|
if (clearProfile) {
|
||||||
if (profile.keycloak != null) {
|
if (profile.keycloak != null) {
|
||||||
const delUserKeycloak = await deleteUser(profile.keycloak);
|
const delUserKeycloak = await deleteUser(profile.keycloak);
|
||||||
if (delUserKeycloak) profile.keycloak = _null;
|
if (delUserKeycloak) {
|
||||||
profile.roleKeycloaks = [];
|
profile.keycloak = _null;
|
||||||
|
profile.roleKeycloaks = [];
|
||||||
|
profile.isActive = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
profile.position = _null;
|
profile.position = _null;
|
||||||
profile.posTypeId = _null;
|
profile.posTypeId = _null;
|
||||||
|
|
@ -2615,17 +2641,27 @@ export class CommandController extends Controller {
|
||||||
const exceptClear = await checkExceptCommandType(String(item.commandId));
|
const exceptClear = await checkExceptCommandType(String(item.commandId));
|
||||||
if (item.isLeave == true && !exceptClear) {
|
if (item.isLeave == true && !exceptClear) {
|
||||||
await removeProfileInOrganize(_profile.id, "OFFICER");
|
await removeProfileInOrganize(_profile.id, "OFFICER");
|
||||||
} else if (item.isLeave == true && exceptClear && _profile.keycloak != null) {
|
}
|
||||||
const enableActive = await enableStatus(_profile.keycloak, false);
|
//คำสั่งพักราชการ หรือ ให้ออกจากราชการไว้ก่อน solutionเดิม ให้ disable user ไว้แต่ยังไม่ลบ เปลี่ยนเป็นลบ user ออกเลย
|
||||||
if (!enableActive) throw new Error("Failed. Cannot change enable status.");
|
else if (item.isLeave == true && exceptClear && _profile.keycloak != null) {
|
||||||
_profile.isActive = false;
|
// const enableActive = await enableStatus(_profile.keycloak, false);
|
||||||
|
// if (!enableActive) throw new Error("Failed. Cannot change enable status.");
|
||||||
|
const delUserKeycloak = await deleteUser(_profile.keycloak);
|
||||||
|
if (delUserKeycloak) {
|
||||||
|
_profile.keycloak = _null;
|
||||||
|
_profile.roleKeycloaks = [];
|
||||||
|
_profile.isActive = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const clearProfile = await checkCommandType(String(item.commandId));
|
const clearProfile = await checkCommandType(String(item.commandId));
|
||||||
if (clearProfile) {
|
if (clearProfile) {
|
||||||
if (_profile.keycloak != null) {
|
if (_profile.keycloak != null) {
|
||||||
const delUserKeycloak = await deleteUser(_profile.keycloak);
|
const delUserKeycloak = await deleteUser(_profile.keycloak);
|
||||||
if (delUserKeycloak) _profile.keycloak = _null;
|
if (delUserKeycloak) {
|
||||||
_profile.roleKeycloaks = [];
|
_profile.keycloak = _null;
|
||||||
|
_profile.roleKeycloaks = [];
|
||||||
|
_profile.isActive = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_profile.position = _null;
|
_profile.position = _null;
|
||||||
_profile.posTypeId = _null;
|
_profile.posTypeId = _null;
|
||||||
|
|
@ -2903,8 +2939,11 @@ export class CommandController extends Controller {
|
||||||
if (clearProfile) {
|
if (clearProfile) {
|
||||||
if (_profile.keycloak != null) {
|
if (_profile.keycloak != null) {
|
||||||
const delUserKeycloak = await deleteUser(_profile.keycloak);
|
const delUserKeycloak = await deleteUser(_profile.keycloak);
|
||||||
if (delUserKeycloak) _profile.keycloak = _null;
|
if (delUserKeycloak) {
|
||||||
_profile.roleKeycloaks = [];
|
_profile.keycloak = _null;
|
||||||
|
_profile.roleKeycloaks = [];
|
||||||
|
_profile.isActive = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
_profile.position = _null;
|
_profile.position = _null;
|
||||||
_profile.posTypeId = _null;
|
_profile.posTypeId = _null;
|
||||||
|
|
@ -2989,9 +3028,9 @@ export class CommandController extends Controller {
|
||||||
firstName: profile.firstName,
|
firstName: profile.firstName,
|
||||||
lastName: profile.lastName,
|
lastName: profile.lastName,
|
||||||
});
|
});
|
||||||
if (typeof userKeycloakId !== "string") {
|
// if (typeof userKeycloakId !== "string") {
|
||||||
throw new Error(userKeycloakId.errorMessage);
|
// throw new Error(userKeycloakId.errorMessage);
|
||||||
}
|
// }
|
||||||
const list = await getRoles();
|
const list = await getRoles();
|
||||||
if (!Array.isArray(list))
|
if (!Array.isArray(list))
|
||||||
throw new Error("Failed. Cannot get role(s) data from the server.");
|
throw new Error("Failed. Cannot get role(s) data from the server.");
|
||||||
|
|
@ -3004,9 +3043,9 @@ export class CommandController extends Controller {
|
||||||
name: x.name,
|
name: x.name,
|
||||||
})),
|
})),
|
||||||
);
|
);
|
||||||
if (!result) throw new Error("Failed. Cannot set user's role.");
|
// if (!result) throw new Error("Failed. Cannot set user's role.");
|
||||||
profile.keycloak = userKeycloakId;
|
profile.keycloak = typeof userKeycloakId === "string" ? userKeycloakId : "";
|
||||||
profile.roleKeycloaks = roleKeycloak ? [roleKeycloak] : [];
|
profile.roleKeycloaks = result && roleKeycloak ? [roleKeycloak] : [];
|
||||||
profile.email = item.bodyProfile.email;
|
profile.email = item.bodyProfile.email;
|
||||||
profile.dateStart = item.bodyProfile.dateStart;
|
profile.dateStart = item.bodyProfile.dateStart;
|
||||||
await this.profileRepository.save(profile);
|
await this.profileRepository.save(profile);
|
||||||
|
|
@ -3322,9 +3361,9 @@ export class CommandController extends Controller {
|
||||||
lastName: profile.lastName,
|
lastName: profile.lastName,
|
||||||
// email: profile.email,
|
// email: profile.email,
|
||||||
});
|
});
|
||||||
if (typeof userKeycloakId !== "string") {
|
// if (typeof userKeycloakId !== "string") {
|
||||||
throw new Error(userKeycloakId.errorMessage);
|
// throw new Error(userKeycloakId.errorMessage);
|
||||||
}
|
// }
|
||||||
const list = await getRoles();
|
const list = await getRoles();
|
||||||
if (!Array.isArray(list))
|
if (!Array.isArray(list))
|
||||||
throw new Error("Failed. Cannot get role(s) data from the server.");
|
throw new Error("Failed. Cannot get role(s) data from the server.");
|
||||||
|
|
@ -3337,9 +3376,9 @@ export class CommandController extends Controller {
|
||||||
name: x.name,
|
name: x.name,
|
||||||
})),
|
})),
|
||||||
);
|
);
|
||||||
if (!result) throw new Error("Failed. Cannot set user's role.");
|
// if (!result) throw new Error("Failed. Cannot set user's role.");
|
||||||
profile.keycloak = userKeycloakId;
|
profile.keycloak = typeof userKeycloakId == "string" ? userKeycloakId : "";
|
||||||
profile.roleKeycloaks = roleKeycloak ? [roleKeycloak] : [];
|
profile.roleKeycloaks = result && roleKeycloak ? [roleKeycloak] : [];
|
||||||
// End Create Keycloak
|
// End Create Keycloak
|
||||||
|
|
||||||
positionNew.positionIsSelected = true;
|
positionNew.positionIsSelected = true;
|
||||||
|
|
|
||||||
|
|
@ -127,8 +127,19 @@ export class ImportDataController extends Controller {
|
||||||
|
|
||||||
let dateRetire = new Date(item["BORN"]);
|
let dateRetire = new Date(item["BORN"]);
|
||||||
profile.citizenId = item["ID"] == "" ? "" : item["ID"];
|
profile.citizenId = item["ID"] == "" ? "" : item["ID"];
|
||||||
profile.rank = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
profile.rank =
|
||||||
|
item["RANK_NAME"] == "" ||
|
||||||
|
item["RANK_NAME"] == "นาย" ||
|
||||||
|
item["RANK_NAME"] == "นาง" ||
|
||||||
|
item["RANK_NAME"] == "นางสาว"
|
||||||
|
? null
|
||||||
|
: item["RANK_NAME"];
|
||||||
profile.prefix = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
profile.prefix = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
||||||
|
profile.prefixMain =
|
||||||
|
item["RANK_NAME"] == "" ||
|
||||||
|
(item["RANK_NAME"] != "นาย" && item["RANK_NAME"] != "นาง" && item["RANK_NAME"] != "นางสาว")
|
||||||
|
? null
|
||||||
|
: item["RANK_NAME"];
|
||||||
profile.firstName = item["FNAME"] == "" ? null : item["FNAME"];
|
profile.firstName = item["FNAME"] == "" ? null : item["FNAME"];
|
||||||
profile.lastName = item["LNAME"] == "" ? null : item["LNAME"];
|
profile.lastName = item["LNAME"] == "" ? null : item["LNAME"];
|
||||||
profile.gender = item["SEX"] == "1" ? "ชาย" : item["SEX"] == "2" ? "หญิง" : null_;
|
profile.gender = item["SEX"] == "1" ? "ชาย" : item["SEX"] == "2" ? "หญิง" : null_;
|
||||||
|
|
@ -209,8 +220,19 @@ export class ImportDataController extends Controller {
|
||||||
profileEmp.citizenId = item["ID"] == "" ? "" : item["ID"];
|
profileEmp.citizenId = item["ID"] == "" ? "" : item["ID"];
|
||||||
profileEmp.employeeClass =
|
profileEmp.employeeClass =
|
||||||
item["FLAG_PERSON_TYPE"] == "6" ? "PERM" : item["FLAG_PERSON_TYPE"] == "7" ? "TEMP" : "";
|
item["FLAG_PERSON_TYPE"] == "6" ? "PERM" : item["FLAG_PERSON_TYPE"] == "7" ? "TEMP" : "";
|
||||||
profileEmp.rank = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
profileEmp.rank =
|
||||||
|
item["RANK_NAME"] == "" ||
|
||||||
|
item["RANK_NAME"] == "นาย" ||
|
||||||
|
item["RANK_NAME"] == "นาง" ||
|
||||||
|
item["RANK_NAME"] == "นางสาว"
|
||||||
|
? null
|
||||||
|
: item["RANK_NAME"];
|
||||||
profileEmp.prefix = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
profileEmp.prefix = item["RANK_NAME"] == "" ? null : item["RANK_NAME"];
|
||||||
|
profileEmp.prefixMain =
|
||||||
|
item["RANK_NAME"] == "" ||
|
||||||
|
(item["RANK_NAME"] != "นาย" && item["RANK_NAME"] != "นาง" && item["RANK_NAME"] != "นางสาว")
|
||||||
|
? null
|
||||||
|
: item["RANK_NAME"];
|
||||||
profileEmp.firstName = item["FNAME"] == "" ? null : item["FNAME"];
|
profileEmp.firstName = item["FNAME"] == "" ? null : item["FNAME"];
|
||||||
profileEmp.lastName = item["LNAME"] == "" ? null : item["LNAME"];
|
profileEmp.lastName = item["LNAME"] == "" ? null : item["LNAME"];
|
||||||
profileEmp.gender = item["SEX"] == "1" ? "ชาย" : item["SEX"] == "2" ? "หญิง" : null_;
|
profileEmp.gender = item["SEX"] == "1" ? "ชาย" : item["SEX"] == "2" ? "หญิง" : null_;
|
||||||
|
|
|
||||||
|
|
@ -70,8 +70,6 @@ import { ProfileFamilyCoupleHistory } from "../entities/ProfileFamilyCoupleHisto
|
||||||
import { viewDirector } from "../entities/view/viewDirector";
|
import { viewDirector } from "../entities/view/viewDirector";
|
||||||
import { viewDirectorActing } from "../entities/view/viewDirectorActing";
|
import { viewDirectorActing } from "../entities/view/viewDirectorActing";
|
||||||
import CallAPI from "../interfaces/call-api";
|
import CallAPI from "../interfaces/call-api";
|
||||||
import { log } from "console";
|
|
||||||
import { Subject } from "typeorm/persistence/Subject.js";
|
|
||||||
@Route("api/v1/org/profile")
|
@Route("api/v1/org/profile")
|
||||||
@Tags("Profile")
|
@Tags("Profile")
|
||||||
@Security("bearerAuth")
|
@Security("bearerAuth")
|
||||||
|
|
@ -1734,6 +1732,33 @@ export class ProfileController extends Controller {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลระดับตำแหน่งนี้");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลระดับตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (body.citizenId) {
|
||||||
|
const citizenIdDigits = body.citizenId.toString().split("").map(Number);
|
||||||
|
const cal =
|
||||||
|
citizenIdDigits[0] * 13 +
|
||||||
|
citizenIdDigits[1] * 12 +
|
||||||
|
citizenIdDigits[2] * 11 +
|
||||||
|
citizenIdDigits[3] * 10 +
|
||||||
|
citizenIdDigits[4] * 9 +
|
||||||
|
citizenIdDigits[5] * 8 +
|
||||||
|
citizenIdDigits[6] * 7 +
|
||||||
|
citizenIdDigits[7] * 6 +
|
||||||
|
citizenIdDigits[8] * 5 +
|
||||||
|
citizenIdDigits[9] * 4 +
|
||||||
|
citizenIdDigits[10] * 3 +
|
||||||
|
citizenIdDigits[11] * 2;
|
||||||
|
const calStp2 = cal % 11;
|
||||||
|
let chkDigit = 11 - calStp2;
|
||||||
|
if (chkDigit === 10) {
|
||||||
|
chkDigit = 1;
|
||||||
|
} else if (chkDigit === 11) {
|
||||||
|
chkDigit = chkDigit % 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
|
}
|
||||||
|
}
|
||||||
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, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
|
|
@ -1781,6 +1806,8 @@ export class ProfileController extends Controller {
|
||||||
// }
|
// }
|
||||||
|
|
||||||
const profile = Object.assign(new Profile(), body);
|
const profile = Object.assign(new Profile(), body);
|
||||||
|
profile.prefixMain = profile.prefix;
|
||||||
|
profile.prefix = profile.rank ?? profile.prefixMain;
|
||||||
profile.isProbation = false;
|
profile.isProbation = false;
|
||||||
profile.isLeave = false;
|
profile.isLeave = false;
|
||||||
profile.createdUserId = request.user.sub;
|
profile.createdUserId = request.user.sub;
|
||||||
|
|
@ -1823,8 +1850,37 @@ export class ProfileController extends Controller {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (body.citizenId) {
|
||||||
|
const citizenIdDigits = body.citizenId.toString().split("").map(Number);
|
||||||
|
const cal =
|
||||||
|
citizenIdDigits[0] * 13 +
|
||||||
|
citizenIdDigits[1] * 12 +
|
||||||
|
citizenIdDigits[2] * 11 +
|
||||||
|
citizenIdDigits[3] * 10 +
|
||||||
|
citizenIdDigits[4] * 9 +
|
||||||
|
citizenIdDigits[5] * 8 +
|
||||||
|
citizenIdDigits[6] * 7 +
|
||||||
|
citizenIdDigits[7] * 6 +
|
||||||
|
citizenIdDigits[8] * 5 +
|
||||||
|
citizenIdDigits[9] * 4 +
|
||||||
|
citizenIdDigits[10] * 3 +
|
||||||
|
citizenIdDigits[11] * 2;
|
||||||
|
const calStp2 = cal % 11;
|
||||||
|
let chkDigit = 11 - calStp2;
|
||||||
|
if (chkDigit === 10) {
|
||||||
|
chkDigit = 1;
|
||||||
|
} else if (chkDigit === 11) {
|
||||||
|
chkDigit = chkDigit % 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
|
}
|
||||||
|
}
|
||||||
const profile: Profile = Object.assign(new Profile(), body);
|
const profile: Profile = Object.assign(new Profile(), body);
|
||||||
const _null: any = null;
|
const _null: any = null;
|
||||||
|
profile.prefixMain = profile.prefix;
|
||||||
|
profile.prefix = profile.rank ?? profile.prefixMain;
|
||||||
profile.dateRetire = body.birthDate == null ? _null : calculateRetireDate(body.birthDate);
|
profile.dateRetire = body.birthDate == null ? _null : calculateRetireDate(body.birthDate);
|
||||||
profile.dateRetireLaw = body.birthDate == null ? _null : calculateRetireLaw(body.birthDate);
|
profile.dateRetireLaw = body.birthDate == null ? _null : calculateRetireLaw(body.birthDate);
|
||||||
profile.createdUserId = request.user.sub;
|
profile.createdUserId = request.user.sub;
|
||||||
|
|
@ -1864,7 +1920,36 @@ export class ProfileController extends Controller {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (body.citizenId) {
|
||||||
|
const citizenIdDigits = body.citizenId.toString().split("").map(Number);
|
||||||
|
const cal =
|
||||||
|
citizenIdDigits[0] * 13 +
|
||||||
|
citizenIdDigits[1] * 12 +
|
||||||
|
citizenIdDigits[2] * 11 +
|
||||||
|
citizenIdDigits[3] * 10 +
|
||||||
|
citizenIdDigits[4] * 9 +
|
||||||
|
citizenIdDigits[5] * 8 +
|
||||||
|
citizenIdDigits[6] * 7 +
|
||||||
|
citizenIdDigits[7] * 6 +
|
||||||
|
citizenIdDigits[8] * 5 +
|
||||||
|
citizenIdDigits[9] * 4 +
|
||||||
|
citizenIdDigits[10] * 3 +
|
||||||
|
citizenIdDigits[11] * 2;
|
||||||
|
const calStp2 = cal % 11;
|
||||||
|
let chkDigit = 11 - calStp2;
|
||||||
|
if (chkDigit === 10) {
|
||||||
|
chkDigit = 1;
|
||||||
|
} else if (chkDigit === 11) {
|
||||||
|
chkDigit = chkDigit % 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
|
}
|
||||||
|
}
|
||||||
const profile: Profile = Object.assign(new Profile(), body);
|
const profile: Profile = Object.assign(new Profile(), body);
|
||||||
|
profile.prefixMain = profile.prefix;
|
||||||
|
profile.prefix = profile.rank ?? profile.prefixMain;
|
||||||
profile.createdUserId = request.user.sub;
|
profile.createdUserId = request.user.sub;
|
||||||
profile.createdFullName = request.user.name;
|
profile.createdFullName = request.user.name;
|
||||||
profile.lastUpdateUserId = request.user.sub;
|
profile.lastUpdateUserId = request.user.sub;
|
||||||
|
|
@ -1880,15 +1965,19 @@ export class ProfileController extends Controller {
|
||||||
@Body()
|
@Body()
|
||||||
body: {
|
body: {
|
||||||
profileId: string;
|
profileId: string;
|
||||||
email: string;
|
email: string;
|
||||||
subject: string;
|
subject: string;
|
||||||
}
|
},
|
||||||
) {
|
) {
|
||||||
const jwt = require('jsonwebtoken');
|
const jwt = require("jsonwebtoken");
|
||||||
const token = jwt.sign({email_id: body.email, profileId: body.profileId}, process.env.AUTH_ACCOUNT_SECRET, {expiresIn: '15m'});
|
const token = jwt.sign(
|
||||||
// console.log("[token]",token);
|
{ email_id: body.email, profileId: body.profileId },
|
||||||
const link = process.env.URL + "/verifyemail?upn=" + token;
|
process.env.AUTH_ACCOUNT_SECRET,
|
||||||
// console.log("[link]",link);
|
{ expiresIn: "15m" },
|
||||||
|
);
|
||||||
|
// console.log("[token]",token);
|
||||||
|
const link = process.env.URL + "/verifyemail?upn=" + token;
|
||||||
|
// console.log("[link]",link);
|
||||||
|
|
||||||
await new CallAPI()
|
await new CallAPI()
|
||||||
.PostData(req, "/placement/noti/send-mail", {
|
.PostData(req, "/placement/noti/send-mail", {
|
||||||
|
|
@ -3172,6 +3261,8 @@ export class ProfileController extends Controller {
|
||||||
});
|
});
|
||||||
|
|
||||||
Object.assign(record, body);
|
Object.assign(record, body);
|
||||||
|
record.prefixMain = record.prefix;
|
||||||
|
record.prefix = record.rank ?? record.prefixMain;
|
||||||
record.createdUserId = request.user.sub;
|
record.createdUserId = request.user.sub;
|
||||||
record.createdFullName = request.user.name;
|
record.createdFullName = request.user.name;
|
||||||
record.createdAt = new Date();
|
record.createdAt = new Date();
|
||||||
|
|
@ -3418,13 +3509,10 @@ export class ProfileController extends Controller {
|
||||||
} else if (chkDigit === 11) {
|
} else if (chkDigit === 11) {
|
||||||
chkDigit = chkDigit % 10;
|
chkDigit = chkDigit % 10;
|
||||||
}
|
}
|
||||||
// else if(chkDigit === 11){
|
|
||||||
// chkDigit = cal % 10;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// if (citizenIdDigits[12] !== chkDigit) {
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
// throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
// }
|
}
|
||||||
}
|
}
|
||||||
const record = await this.profileRepo.findOneBy({ id });
|
const record = await this.profileRepo.findOneBy({ id });
|
||||||
const before = structuredClone(record);
|
const before = structuredClone(record);
|
||||||
|
|
@ -3432,6 +3520,8 @@ export class ProfileController extends Controller {
|
||||||
if (!record) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลโปรไฟล์นี้");
|
if (!record) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลโปรไฟล์นี้");
|
||||||
|
|
||||||
Object.assign(record, body);
|
Object.assign(record, body);
|
||||||
|
record.prefixMain = record.prefix;
|
||||||
|
record.prefix = record.rank ?? record.prefixMain;
|
||||||
record.createdUserId = request.user.sub;
|
record.createdUserId = request.user.sub;
|
||||||
record.createdFullName = request.user.name;
|
record.createdFullName = request.user.name;
|
||||||
record.createdAt = new Date();
|
record.createdAt = new Date();
|
||||||
|
|
@ -7779,6 +7869,8 @@ export class ProfileController extends Controller {
|
||||||
profile.registrationSubDistrictId = _null;
|
profile.registrationSubDistrictId = _null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
profile.prefixMain = profile.prefix;
|
||||||
|
profile.prefix = profile.rank ?? profile.prefixMain;
|
||||||
profile.createdUserId = request.user.sub;
|
profile.createdUserId = request.user.sub;
|
||||||
profile.createdFullName = request.user.name;
|
profile.createdFullName = request.user.name;
|
||||||
profile.lastUpdateUserId = request.user.sub;
|
profile.lastUpdateUserId = request.user.sub;
|
||||||
|
|
|
||||||
|
|
@ -794,6 +794,33 @@ export class ProfileEmployeeController extends Controller {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (body.citizenId) {
|
||||||
|
const citizenIdDigits = body.citizenId.toString().split("").map(Number);
|
||||||
|
const cal =
|
||||||
|
citizenIdDigits[0] * 13 +
|
||||||
|
citizenIdDigits[1] * 12 +
|
||||||
|
citizenIdDigits[2] * 11 +
|
||||||
|
citizenIdDigits[3] * 10 +
|
||||||
|
citizenIdDigits[4] * 9 +
|
||||||
|
citizenIdDigits[5] * 8 +
|
||||||
|
citizenIdDigits[6] * 7 +
|
||||||
|
citizenIdDigits[7] * 6 +
|
||||||
|
citizenIdDigits[8] * 5 +
|
||||||
|
citizenIdDigits[9] * 4 +
|
||||||
|
citizenIdDigits[10] * 3 +
|
||||||
|
citizenIdDigits[11] * 2;
|
||||||
|
const calStp2 = cal % 11;
|
||||||
|
let chkDigit = 11 - calStp2;
|
||||||
|
if (chkDigit === 10) {
|
||||||
|
chkDigit = 1;
|
||||||
|
} else if (chkDigit === 11) {
|
||||||
|
chkDigit = chkDigit % 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
|
}
|
||||||
|
}
|
||||||
if (body.employeeClass == null || body.employeeClass == undefined || body.employeeClass == "") {
|
if (body.employeeClass == null || body.employeeClass == undefined || body.employeeClass == "") {
|
||||||
body.employeeClass = "PERM";
|
body.employeeClass = "PERM";
|
||||||
}
|
}
|
||||||
|
|
@ -802,6 +829,8 @@ export class ProfileEmployeeController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
const profile = Object.assign(new ProfileEmployee(), body);
|
const profile = Object.assign(new ProfileEmployee(), body);
|
||||||
|
profile.prefixMain = profile.prefix;
|
||||||
|
profile.prefix = profile.rank ?? profile.prefixMain;
|
||||||
profile.createdUserId = request.user.sub;
|
profile.createdUserId = request.user.sub;
|
||||||
profile.createdFullName = request.user.name;
|
profile.createdFullName = request.user.name;
|
||||||
profile.lastUpdateUserId = request.user.sub;
|
profile.lastUpdateUserId = request.user.sub;
|
||||||
|
|
@ -830,7 +859,10 @@ export class ProfileEmployeeController extends Controller {
|
||||||
@Path() id: string,
|
@Path() id: string,
|
||||||
@Body() body: UpdateProfileEmployee,
|
@Body() body: UpdateProfileEmployee,
|
||||||
) {
|
) {
|
||||||
await new permission().PermissionOrgUserUpdate(request, "SYS_REGISTRY_EMP", id);
|
const _record = await this.profileRepo.findOneBy({ id: id });
|
||||||
|
if (_record) {
|
||||||
|
await new permission().PermissionOrgUserUpdate(request, "SYS_REGISTRY_EMP", _record.id);
|
||||||
|
}
|
||||||
const exists =
|
const exists =
|
||||||
!!body.citizenId &&
|
!!body.citizenId &&
|
||||||
(await this.profileRepo.findOne({
|
(await this.profileRepo.findOne({
|
||||||
|
|
@ -856,6 +888,33 @@ export class ProfileEmployeeController extends Controller {
|
||||||
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลประเภทตำแหน่งนี้");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (body.citizenId) {
|
||||||
|
const citizenIdDigits = body.citizenId.toString().split("").map(Number);
|
||||||
|
const cal =
|
||||||
|
citizenIdDigits[0] * 13 +
|
||||||
|
citizenIdDigits[1] * 12 +
|
||||||
|
citizenIdDigits[2] * 11 +
|
||||||
|
citizenIdDigits[3] * 10 +
|
||||||
|
citizenIdDigits[4] * 9 +
|
||||||
|
citizenIdDigits[5] * 8 +
|
||||||
|
citizenIdDigits[6] * 7 +
|
||||||
|
citizenIdDigits[7] * 6 +
|
||||||
|
citizenIdDigits[8] * 5 +
|
||||||
|
citizenIdDigits[9] * 4 +
|
||||||
|
citizenIdDigits[10] * 3 +
|
||||||
|
citizenIdDigits[11] * 2;
|
||||||
|
const calStp2 = cal % 11;
|
||||||
|
let chkDigit = 11 - calStp2;
|
||||||
|
if (chkDigit === 10) {
|
||||||
|
chkDigit = 1;
|
||||||
|
} else if (chkDigit === 11) {
|
||||||
|
chkDigit = chkDigit % 10;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (citizenIdDigits[12] !== chkDigit) {
|
||||||
|
throw new HttpError(HttpStatus.NOT_FOUND, "ข้อมูลรหัสบัตรประจำตัวประชาชนไม่ถูกต้อง");
|
||||||
|
}
|
||||||
|
}
|
||||||
const record = await this.profileRepo.findOneBy({ id });
|
const record = await this.profileRepo.findOneBy({ id });
|
||||||
if (!record) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลโปรไฟล์นี้");
|
if (!record) throw new HttpError(HttpStatus.NOT_FOUND, "ไม่พบข้อมูลโปรไฟล์นี้");
|
||||||
|
|
||||||
|
|
@ -867,6 +926,8 @@ export class ProfileEmployeeController extends Controller {
|
||||||
}
|
}
|
||||||
|
|
||||||
Object.assign(record, body);
|
Object.assign(record, body);
|
||||||
|
record.prefixMain = record.prefix;
|
||||||
|
record.prefix = record.rank ?? record.prefixMain;
|
||||||
record.createdUserId = request.user.sub;
|
record.createdUserId = request.user.sub;
|
||||||
record.createdFullName = request.user.name;
|
record.createdFullName = request.user.name;
|
||||||
record.createdAt = new Date();
|
record.createdAt = new Date();
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,13 @@
|
||||||
import { Entity, Column, OneToMany, JoinColumn, ManyToOne, Double, ManyToMany, JoinTable } from "typeorm";
|
import {
|
||||||
|
Entity,
|
||||||
|
Column,
|
||||||
|
OneToMany,
|
||||||
|
JoinColumn,
|
||||||
|
ManyToOne,
|
||||||
|
Double,
|
||||||
|
ManyToMany,
|
||||||
|
JoinTable,
|
||||||
|
} from "typeorm";
|
||||||
import { EntityBase } from "./base/Base";
|
import { EntityBase } from "./base/Base";
|
||||||
import { PosMaster } from "./PosMaster";
|
import { PosMaster } from "./PosMaster";
|
||||||
import { PosLevel } from "./PosLevel";
|
import { PosLevel } from "./PosLevel";
|
||||||
|
|
@ -69,6 +78,14 @@ export class Profile extends EntityBase {
|
||||||
})
|
})
|
||||||
prefix: string;
|
prefix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "คำนำหน้าชื่อตัวหลัก",
|
||||||
|
length: 40,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
prefixMain: string;
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
nullable: true,
|
nullable: true,
|
||||||
comment: "ชื่อ",
|
comment: "ชื่อ",
|
||||||
|
|
|
||||||
|
|
@ -114,6 +114,14 @@ export class ProfileEmployee extends EntityBase {
|
||||||
})
|
})
|
||||||
prefix: string;
|
prefix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "คำนำหน้าชื่อตัวหลัก",
|
||||||
|
length: 40,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
prefixMain: string;
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
nullable: true,
|
nullable: true,
|
||||||
comment: "ชื่อ",
|
comment: "ชื่อ",
|
||||||
|
|
|
||||||
20
src/migration/1732252198299-updata_profile_add_prefixmain.ts
Normal file
20
src/migration/1732252198299-updata_profile_add_prefixmain.ts
Normal file
|
|
@ -0,0 +1,20 @@
|
||||||
|
import { MigrationInterface, QueryRunner } from "typeorm";
|
||||||
|
|
||||||
|
export class UpdataProfileAddPrefixmain1732252198299 implements MigrationInterface {
|
||||||
|
name = 'UpdataProfileAddPrefixmain1732252198299'
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileEmployee\` ADD \`prefixMain\` varchar(40) NULL COMMENT 'คำนำหน้าชื่อตัวหลัก'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileEmployeeHistory\` ADD \`prefixMain\` varchar(40) NULL COMMENT 'คำนำหน้าชื่อตัวหลัก'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profile\` ADD \`prefixMain\` varchar(40) NULL COMMENT 'คำนำหน้าชื่อตัวหลัก'`);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileHistory\` ADD \`prefixMain\` varchar(40) NULL COMMENT 'คำนำหน้าชื่อตัวหลัก'`);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileHistory\` DROP COLUMN \`prefixMain\``);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profile\` DROP COLUMN \`prefixMain\``);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileEmployeeHistory\` DROP COLUMN \`prefixMain\``);
|
||||||
|
await queryRunner.query(`ALTER TABLE \`profileEmployee\` DROP COLUMN \`prefixMain\``);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue