Merge branch 'develop' into adiDev
Some checks failed
release / release (push) Failing after 9s

This commit is contained in:
Adisak 2025-11-04 09:52:01 +07:00
commit 999bfa7cd2
3 changed files with 79 additions and 63 deletions

View file

@ -67,8 +67,8 @@ async function main() {
});
// const cronTime_Oct = "0 0 1 10 *";
// Test #1892
const cronTime_Oct = "0 0 31 10 *";
// Test #1912
const cronTime_Oct = "0 0 4 11 *";
cron.schedule(cronTime_Oct, async () => {
try {
const commandController = new CommandController();

View file

@ -1477,24 +1477,6 @@ export class CommandController extends Controller {
}
// @Get("XXX")
async cronjobUpdateRetirementStatus(/*@Request() request: RequestWithUser*/) {
// let body = {
// client_id: "gettoken",
// client_secret: process.env.AUTH_ACCOUNT_SECRET,
// grant_type: "client_credentials",
// };
// const postData = querystring.stringify(body);
// const response = await axios.post(
// `${process.env.KC_URL}/realms/${process.env.KC_REALMS}/protocol/openid-connect/token`,
// postData,
// {
// headers: {
// "Content-Type": "application/x-www-form-urlencoded",
// api_key: process.env.API_KEY,
// },
// },
// );
// const adminToken = response.data.access_token;
// const adminToken = request.headers["authorization"]?.replace("Bearer ", "");
const adminToken = await getToken() ?? "";
const today = new Date();
today.setUTCHours(0, 0, 0, 0);
@ -1668,32 +1650,30 @@ export class CommandController extends Controller {
}
async posMasterRetire(profileId: string, type: string, _Date: Date) {
const orgRevision = await this.orgRevisionRepo.findOne({
const revisionIsCurrent = await this.orgRevisionRepo.findOne({
where: { orgRevisionIsCurrent: true, orgRevisionIsDraft: false },
});
if (orgRevision) {
if (revisionIsCurrent) {
let _posMaster: any = null;
let _position: any = null;
if (type == "OFFICER") {
_posMaster = await this.posMasterRepository.findOne({
where: {
orgRevisionId: orgRevision.id,
orgRevisionId: revisionIsCurrent.id,
current_holderId: profileId,
},
});
if (_posMaster) {
_position = await this.positionRepository.findOne({
where: {
await this.positionRepository.update(
{
posMasterId: _posMaster.id,
positionIsSelected: true,
},
});
if (_position) {
_position.positionIsSelected = false;
_position.lastUpdateFullName = "System Administrator";
_position.lastUpdatedAt = _Date;
await this.positionRepository.save(_position);
}
{
positionIsSelected: false,
lastUpdateFullName: "System Administrator",
lastUpdatedAt: _Date,
}
);
_posMaster.isSit = false;
_posMaster.current_holderId = null;
_posMaster.lastUpdateFullName = "System Administrator";
@ -1701,26 +1681,57 @@ export class CommandController extends Controller {
await this.posMasterRepository.save(_posMaster);
await CreatePosMasterHistoryOfficer(_posMaster.id, null);
}
const revisionIsDraft = await this.orgRevisionRepo.findOne({
where: { orgRevisionIsCurrent: false, orgRevisionIsDraft: true },
});
if (revisionIsDraft) {
_posMaster = null;
_posMaster = await this.posMasterRepository.findOne({
where: {
orgRevisionId: revisionIsDraft.id,
next_holderId: profileId,
},
});
if (_posMaster) {
await this.positionRepository.update(
{
posMasterId: _posMaster.id,
positionIsSelected: true,
},
{
positionIsSelected: false,
lastUpdateFullName: "System Administrator",
lastUpdatedAt: _Date,
}
);
_posMaster.isSit = false;
_posMaster.next_holderId = null;
_posMaster.lastUpdateFullName = "System Administrator";
_posMaster.lastUpdatedAt = _Date;
await this.posMasterRepository.save(_posMaster);
await CreatePosMasterHistoryOfficer(_posMaster.id, null);
}
// console.log("clear posMaster & position 'Draf' success")
}
} else if (type == "EMPLOYEE") {
_posMaster = await this.employeePosMasterRepository.findOne({
where: {
orgRevisionId: orgRevision.id,
orgRevisionId: revisionIsCurrent.id,
current_holderId: profileId,
},
});
if (_posMaster) {
_position = await this.employeePositionRepository.findOne({
where: {
await this.employeePositionRepository.update(
{
posMasterId: _posMaster.id,
positionIsSelected: true,
},
});
if (_position) {
_position.positionIsSelected = false;
_position.lastUpdateFullName = "System Administrator";
_position.lastUpdatedAt = _Date;
await this.employeePositionRepository.save(_position);
}
{
positionIsSelected: false,
lastUpdateFullName: "System Administrator",
lastUpdatedAt: _Date,
}
);
_posMaster.isSit = false;
_posMaster.current_holderId = null;
_posMaster.lastUpdateFullName = "System Administrator";
@ -1729,6 +1740,7 @@ export class CommandController extends Controller {
await CreatePosMasterHistoryEmployee(_posMaster.id, null);
}
}
// console.log("clear posMaster & position 'Current' success")
}
}

View file

@ -6316,45 +6316,49 @@ export class ImportDataController extends Controller {
@Post("updateRetireClearOrg")
async updateRetireClearOrg(@Request() request: { user: Record<string, any> }) {
const profiles = await this.profileRepo.find({
where: {
isLeave: true,
},
where: { isLeave: true },
select: ["id"],
});
for (const item of profiles) {
const posmaster = await this.posMasterRepo.findOne({
const profileIds = profiles.map((p) => p.id);
if (profileIds.length > 0) {
const posmasters = await this.posMasterRepo.find({
where: {
orgRevision: {
orgRevisionIsCurrent: false,
orgRevisionIsDraft: true,
},
next_holderId: item.id,
next_holderId: In(profileIds),
},
});
if (!posmaster) continue;
posmaster.next_holderId = null;
await this.posMasterRepo.save(posmaster);
for (const posmaster of posmasters) {
posmaster.next_holderId = null;
}
if (posmasters.length > 0) {
await this.posMasterRepo.save(posmasters);
}
}
const profileEmps = await this.profileEmpRepo.find({
where: {
isLeave: true,
},
where: { isLeave: true },
select: ["id"],
});
for (const item of profileEmps) {
const posmaster = await this.posMasterEmpRepo.findOne({
const profileEmpIds = profileEmps.map((p) => p.id);
if (profileEmpIds.length > 0) {
const posmasterEmps = await this.posMasterEmpRepo.find({
where: {
orgRevision: {
orgRevisionIsCurrent: false,
orgRevisionIsDraft: true,
},
next_holderId: item.id,
next_holderId: In(profileEmpIds),
},
});
if (!posmaster) continue;
posmaster.next_holderId = null;
await this.posMasterEmpRepo.save(posmaster);
for (const posmasterEmp of posmasterEmps) {
posmasterEmp.next_holderId = null;
}
if (posmasterEmps.length > 0) {
await this.posMasterEmpRepo.save(posmasterEmps);
}
}
return new HttpSuccess();
}