Merge branch 'develop' into adiDev
This commit is contained in:
commit
6936846a41
10 changed files with 628 additions and 16 deletions
|
|
@ -59,7 +59,6 @@ import {
|
||||||
createUser,
|
createUser,
|
||||||
getRoles,
|
getRoles,
|
||||||
deleteUser,
|
deleteUser,
|
||||||
enableStatus,
|
|
||||||
getUserByUsername,
|
getUserByUsername,
|
||||||
getRoleMappings,
|
getRoleMappings,
|
||||||
removeUserRoles,
|
removeUserRoles,
|
||||||
|
|
@ -92,6 +91,10 @@ import { ProfileInsignia, CreateProfileInsignia } from "../entities/ProfileInsig
|
||||||
import { ProfileInsigniaHistory } from "../entities/ProfileInsigniaHistory";
|
import { ProfileInsigniaHistory } from "../entities/ProfileInsigniaHistory";
|
||||||
import { Gender } from "../entities/Gender";
|
import { Gender } from "../entities/Gender";
|
||||||
import { ProfileAvatar } from "../entities/ProfileAvatar";
|
import { ProfileAvatar } from "../entities/ProfileAvatar";
|
||||||
|
import {
|
||||||
|
CreatePosMasterHistoryEmployee,
|
||||||
|
CreatePosMasterHistoryOfficer,
|
||||||
|
} from "../services/PositionService";
|
||||||
@Route("api/v1/org/command")
|
@Route("api/v1/org/command")
|
||||||
@Tags("Command")
|
@Tags("Command")
|
||||||
@Security("bearerAuth")
|
@Security("bearerAuth")
|
||||||
|
|
@ -3154,8 +3157,12 @@ export class CommandController extends Controller {
|
||||||
posMaster.lastUpdatedAt = new Date();
|
posMaster.lastUpdatedAt = new Date();
|
||||||
posMaster.conditionReason = _null;
|
posMaster.conditionReason = _null;
|
||||||
posMaster.isCondition = false;
|
posMaster.isCondition = false;
|
||||||
if (posMasterOld != null) await this.posMasterRepository.save(posMasterOld);
|
if (posMasterOld != null) {
|
||||||
|
await this.posMasterRepository.save(posMasterOld);
|
||||||
|
await CreatePosMasterHistoryOfficer(posMasterOld.id, req);
|
||||||
|
}
|
||||||
await this.posMasterRepository.save(posMaster);
|
await this.posMasterRepository.save(posMaster);
|
||||||
|
await CreatePosMasterHistoryOfficer(posMaster.id, req);
|
||||||
|
|
||||||
const positionNew = await this.positionRepository.findOne({
|
const positionNew = await this.positionRepository.findOne({
|
||||||
where: {
|
where: {
|
||||||
|
|
@ -3342,8 +3349,12 @@ export class CommandController extends Controller {
|
||||||
posMaster.current_holderId = item.profileId;
|
posMaster.current_holderId = item.profileId;
|
||||||
posMaster.lastUpdatedAt = new Date();
|
posMaster.lastUpdatedAt = new Date();
|
||||||
posMaster.next_holderId = null;
|
posMaster.next_holderId = null;
|
||||||
if (posMasterOld != null) await this.employeePosMasterRepository.save(posMasterOld);
|
if (posMasterOld != null) {
|
||||||
|
await this.employeePosMasterRepository.save(posMasterOld);
|
||||||
|
await CreatePosMasterHistoryEmployee(posMasterOld.id, req);
|
||||||
|
}
|
||||||
await this.employeePosMasterRepository.save(posMaster);
|
await this.employeePosMasterRepository.save(posMaster);
|
||||||
|
await CreatePosMasterHistoryEmployee(posMaster.id, req);
|
||||||
|
|
||||||
const positionNew = await this.employeePositionRepository.findOne({
|
const positionNew = await this.employeePositionRepository.findOne({
|
||||||
where: {
|
where: {
|
||||||
|
|
@ -3573,6 +3584,7 @@ export class CommandController extends Controller {
|
||||||
posMaster.conditionReason = _null;
|
posMaster.conditionReason = _null;
|
||||||
posMaster.isCondition = false;
|
posMaster.isCondition = false;
|
||||||
await this.posMasterRepository.save(posMaster);
|
await this.posMasterRepository.save(posMaster);
|
||||||
|
await CreatePosMasterHistoryOfficer(posMaster.id, req);
|
||||||
const positionNew = await this.positionRepository.findOne({
|
const positionNew = await this.positionRepository.findOne({
|
||||||
where: {
|
where: {
|
||||||
posMasterId: posMaster.id,
|
posMasterId: posMaster.id,
|
||||||
|
|
@ -6030,8 +6042,12 @@ export class CommandController extends Controller {
|
||||||
posMaster.lastUpdatedAt = new Date();
|
posMaster.lastUpdatedAt = new Date();
|
||||||
posMaster.conditionReason = _null;
|
posMaster.conditionReason = _null;
|
||||||
posMaster.isCondition = false;
|
posMaster.isCondition = false;
|
||||||
if (posMasterOld != null) await this.posMasterRepository.save(posMasterOld);
|
if (posMasterOld != null) {
|
||||||
|
await this.posMasterRepository.save(posMasterOld);
|
||||||
|
await CreatePosMasterHistoryOfficer(posMasterOld.id, req);
|
||||||
|
}
|
||||||
await this.posMasterRepository.save(posMaster);
|
await this.posMasterRepository.save(posMaster);
|
||||||
|
await CreatePosMasterHistoryOfficer(posMaster.id, req);
|
||||||
|
|
||||||
const positionNew = await this.positionRepository.findOne({
|
const positionNew = await this.positionRepository.findOne({
|
||||||
where: {
|
where: {
|
||||||
|
|
@ -6411,8 +6427,12 @@ export class CommandController extends Controller {
|
||||||
posMaster.current_holderId = profile.id;
|
posMaster.current_holderId = profile.id;
|
||||||
posMaster.lastUpdatedAt = new Date();
|
posMaster.lastUpdatedAt = new Date();
|
||||||
posMaster.next_holderId = null;
|
posMaster.next_holderId = null;
|
||||||
if (posMasterOld != null) await this.employeePosMasterRepository.save(posMasterOld);
|
if (posMasterOld != null) {
|
||||||
|
await this.employeePosMasterRepository.save(posMasterOld);
|
||||||
|
await CreatePosMasterHistoryEmployee(posMasterOld.id, req);
|
||||||
|
}
|
||||||
await this.employeePosMasterRepository.save(posMaster);
|
await this.employeePosMasterRepository.save(posMaster);
|
||||||
|
await CreatePosMasterHistoryEmployee(posMaster.id, req);
|
||||||
|
|
||||||
const clsTempPosmaster = await this.employeeTempPosMasterRepository.find({
|
const clsTempPosmaster = await this.employeeTempPosMasterRepository.find({
|
||||||
where: {
|
where: {
|
||||||
|
|
|
||||||
|
|
@ -38,6 +38,11 @@ import { AuthRole } from "../entities/AuthRole";
|
||||||
import { RequestWithUser } from "../middlewares/user";
|
import { RequestWithUser } from "../middlewares/user";
|
||||||
import permission from "../interfaces/permission";
|
import permission from "../interfaces/permission";
|
||||||
import { setLogDataDiff } from "../interfaces/utils";
|
import { setLogDataDiff } from "../interfaces/utils";
|
||||||
|
import {
|
||||||
|
CreatePosMasterHistoryOfficer,
|
||||||
|
CreatePosMasterHistoryEmployee,
|
||||||
|
} from "../services/PositionService";
|
||||||
|
import { PosMasterEmployeeHistory } from "../entities/PosMasterEmployeeHistory";
|
||||||
@Route("api/v1/org/employee/pos")
|
@Route("api/v1/org/employee/pos")
|
||||||
@Tags("Employee")
|
@Tags("Employee")
|
||||||
@Security("bearerAuth")
|
@Security("bearerAuth")
|
||||||
|
|
@ -50,6 +55,7 @@ export class EmployeePositionController extends Controller {
|
||||||
private employeePosTypeRepository = AppDataSource.getRepository(EmployeePosType);
|
private employeePosTypeRepository = AppDataSource.getRepository(EmployeePosType);
|
||||||
private employeePosLevelRepository = AppDataSource.getRepository(EmployeePosLevel);
|
private employeePosLevelRepository = AppDataSource.getRepository(EmployeePosLevel);
|
||||||
private employeePosMasterRepository = AppDataSource.getRepository(EmployeePosMaster);
|
private employeePosMasterRepository = AppDataSource.getRepository(EmployeePosMaster);
|
||||||
|
private posMasterHistoryRepository = AppDataSource.getRepository(PosMasterEmployeeHistory);
|
||||||
private employeePositionRepository = AppDataSource.getRepository(EmployeePosition);
|
private employeePositionRepository = AppDataSource.getRepository(EmployeePosition);
|
||||||
private profileRepository = AppDataSource.getRepository(ProfileEmployee);
|
private profileRepository = AppDataSource.getRepository(ProfileEmployee);
|
||||||
private orgRevisionRepository = AppDataSource.getRepository(OrgRevision);
|
private orgRevisionRepository = AppDataSource.getRepository(OrgRevision);
|
||||||
|
|
@ -2265,6 +2271,7 @@ export class EmployeePositionController extends Controller {
|
||||||
dataMaster.lastUpdatedAt = new Date();
|
dataMaster.lastUpdatedAt = new Date();
|
||||||
// dataMaster.next_holderId = requestBody.profileId;
|
// dataMaster.next_holderId = requestBody.profileId;
|
||||||
await this.employeePosMasterRepository.save(dataMaster);
|
await this.employeePosMasterRepository.save(dataMaster);
|
||||||
|
await CreatePosMasterHistoryEmployee(dataMaster.id, request);
|
||||||
|
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
@ -2439,8 +2446,12 @@ export class EmployeePositionController extends Controller {
|
||||||
posMaster.current_holderId = body.profileId;
|
posMaster.current_holderId = body.profileId;
|
||||||
posMaster.lastUpdatedAt = new Date();
|
posMaster.lastUpdatedAt = new Date();
|
||||||
// posMaster.next_holderId = body.profileId;
|
// posMaster.next_holderId = body.profileId;
|
||||||
if (posMasterOld != null) await this.employeePosMasterRepository.save(posMasterOld);
|
if (posMasterOld != null) {
|
||||||
|
await this.employeePosMasterRepository.save(posMasterOld);
|
||||||
|
await CreatePosMasterHistoryEmployee(posMasterOld.id, request);
|
||||||
|
}
|
||||||
await this.employeePosMasterRepository.save(posMaster);
|
await this.employeePosMasterRepository.save(posMaster);
|
||||||
|
await CreatePosMasterHistoryEmployee(posMaster.id, request);
|
||||||
|
|
||||||
const positionNew = await this.employeePositionRepository.findOne({
|
const positionNew = await this.employeePositionRepository.findOne({
|
||||||
where: {
|
where: {
|
||||||
|
|
@ -2463,4 +2474,20 @@ export class EmployeePositionController extends Controller {
|
||||||
}
|
}
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API ประวัติแก้ไขตำแหน่ง
|
||||||
|
*
|
||||||
|
* @summary ประวัติแก้ไขตำแหน่ง (ADMIN)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Get("history-update/{id}")
|
||||||
|
async listPosMasterHistory(@Path() id: string, @Request() request: RequestWithUser) {
|
||||||
|
const posMasterHistory = await this.posMasterHistoryRepository.find({
|
||||||
|
where: { ancestorDNA: id },
|
||||||
|
order: { createdAt: "DESC" },
|
||||||
|
});
|
||||||
|
|
||||||
|
return new HttpSuccess(posMasterHistory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,6 +41,8 @@ import { AuthRole } from "../entities/AuthRole";
|
||||||
import { RequestWithUser } from "../middlewares/user";
|
import { RequestWithUser } from "../middlewares/user";
|
||||||
import permission from "../interfaces/permission";
|
import permission from "../interfaces/permission";
|
||||||
import { setLogDataDiff } from "../interfaces/utils";
|
import { setLogDataDiff } from "../interfaces/utils";
|
||||||
|
import { CreatePosMasterHistoryEmployeeTemp } from "../services/PositionService";
|
||||||
|
import { PosMasterEmployeeTempHistory } from "../entities/PosMasterEmployeeTempHistory";
|
||||||
@Route("api/v1/org/employee-temp/pos")
|
@Route("api/v1/org/employee-temp/pos")
|
||||||
@Tags("Employee")
|
@Tags("Employee")
|
||||||
@Security("bearerAuth")
|
@Security("bearerAuth")
|
||||||
|
|
@ -53,6 +55,7 @@ export class EmployeeTempPositionController extends Controller {
|
||||||
private employeePosTypeRepository = AppDataSource.getRepository(EmployeePosType);
|
private employeePosTypeRepository = AppDataSource.getRepository(EmployeePosType);
|
||||||
private employeePosLevelRepository = AppDataSource.getRepository(EmployeePosLevel);
|
private employeePosLevelRepository = AppDataSource.getRepository(EmployeePosLevel);
|
||||||
private employeeTempPosMasterRepository = AppDataSource.getRepository(EmployeeTempPosMaster);
|
private employeeTempPosMasterRepository = AppDataSource.getRepository(EmployeeTempPosMaster);
|
||||||
|
private posMasterHistoryRepository = AppDataSource.getRepository(PosMasterEmployeeTempHistory);
|
||||||
private employeePositionRepository = AppDataSource.getRepository(EmployeePosition);
|
private employeePositionRepository = AppDataSource.getRepository(EmployeePosition);
|
||||||
private profileRepository = AppDataSource.getRepository(ProfileEmployee);
|
private profileRepository = AppDataSource.getRepository(ProfileEmployee);
|
||||||
private orgRevisionRepository = AppDataSource.getRepository(OrgRevision);
|
private orgRevisionRepository = AppDataSource.getRepository(OrgRevision);
|
||||||
|
|
@ -2004,6 +2007,7 @@ export class EmployeeTempPositionController extends Controller {
|
||||||
dataMaster.lastUpdatedAt = new Date();
|
dataMaster.lastUpdatedAt = new Date();
|
||||||
// dataMaster.next_holderId = requestBody.profileId;
|
// dataMaster.next_holderId = requestBody.profileId;
|
||||||
await this.employeeTempPosMasterRepository.save(dataMaster);
|
await this.employeeTempPosMasterRepository.save(dataMaster);
|
||||||
|
await CreatePosMasterHistoryEmployeeTemp(dataMaster.id, request);
|
||||||
|
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
@ -2178,8 +2182,12 @@ export class EmployeeTempPositionController extends Controller {
|
||||||
posMaster.current_holderId = body.profileId;
|
posMaster.current_holderId = body.profileId;
|
||||||
posMaster.lastUpdatedAt = new Date();
|
posMaster.lastUpdatedAt = new Date();
|
||||||
// posMaster.next_holderId = body.profileId;
|
// posMaster.next_holderId = body.profileId;
|
||||||
if (posMasterOld != null) await this.employeeTempPosMasterRepository.save(posMasterOld);
|
if (posMasterOld != null) {
|
||||||
|
await this.employeeTempPosMasterRepository.save(posMasterOld);
|
||||||
|
await CreatePosMasterHistoryEmployeeTemp(posMasterOld.id, request);
|
||||||
|
}
|
||||||
await this.employeeTempPosMasterRepository.save(posMaster);
|
await this.employeeTempPosMasterRepository.save(posMaster);
|
||||||
|
await CreatePosMasterHistoryEmployeeTemp(posMaster.id, request);
|
||||||
|
|
||||||
const positionNew = await this.employeePositionRepository.findOne({
|
const positionNew = await this.employeePositionRepository.findOne({
|
||||||
where: {
|
where: {
|
||||||
|
|
@ -2202,4 +2210,20 @@ export class EmployeeTempPositionController extends Controller {
|
||||||
}
|
}
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API ประวัติแก้ไขตำแหน่ง
|
||||||
|
*
|
||||||
|
* @summary ประวัติแก้ไขตำแหน่ง (ADMIN)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Get("history-update/{id}")
|
||||||
|
async listPosMasterHistory(@Path() id: string, @Request() request: RequestWithUser) {
|
||||||
|
const posMasterHistory = await this.posMasterHistoryRepository.find({
|
||||||
|
where: { ancestorDNA: id },
|
||||||
|
order: { createdAt: "DESC" },
|
||||||
|
});
|
||||||
|
|
||||||
|
return new HttpSuccess(posMasterHistory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -42,6 +42,8 @@ import { setLogDataDiff } from "../interfaces/utils";
|
||||||
import { PosMasterAssign } from "../entities/PosMasterAssign";
|
import { PosMasterAssign } from "../entities/PosMasterAssign";
|
||||||
import { Assign } from "../entities/Assign";
|
import { Assign } from "../entities/Assign";
|
||||||
import { ProfileEmployee } from "../entities/ProfileEmployee";
|
import { ProfileEmployee } from "../entities/ProfileEmployee";
|
||||||
|
import { PosMasterHistory } from "../entities/PosMasterHistory";
|
||||||
|
import { CreatePosMasterHistoryOfficer } from "../services/PositionService";
|
||||||
@Route("api/v1/org/pos")
|
@Route("api/v1/org/pos")
|
||||||
@Tags("Position")
|
@Tags("Position")
|
||||||
@Security("bearerAuth")
|
@Security("bearerAuth")
|
||||||
|
|
@ -57,6 +59,7 @@ export class PositionController extends Controller {
|
||||||
private posLevelEmployeeRepository = AppDataSource.getRepository(EmployeePosLevel);
|
private posLevelEmployeeRepository = AppDataSource.getRepository(EmployeePosLevel);
|
||||||
private posDictRepository = AppDataSource.getRepository(PosDict);
|
private posDictRepository = AppDataSource.getRepository(PosDict);
|
||||||
private posMasterRepository = AppDataSource.getRepository(PosMaster);
|
private posMasterRepository = AppDataSource.getRepository(PosMaster);
|
||||||
|
private posMasterHistoryRepository = AppDataSource.getRepository(PosMasterHistory);
|
||||||
private employeePosMasterRepository = AppDataSource.getRepository(EmployeePosMaster);
|
private employeePosMasterRepository = AppDataSource.getRepository(EmployeePosMaster);
|
||||||
private positionRepository = AppDataSource.getRepository(Position);
|
private positionRepository = AppDataSource.getRepository(Position);
|
||||||
private profileRepository = AppDataSource.getRepository(Profile);
|
private profileRepository = AppDataSource.getRepository(Profile);
|
||||||
|
|
@ -1541,7 +1544,7 @@ export class PositionController extends Controller {
|
||||||
// posLevelRank: "ASC",
|
// posLevelRank: "ASC",
|
||||||
// },
|
// },
|
||||||
orderNo: "ASC",
|
orderNo: "ASC",
|
||||||
createdAt: "ASC"
|
createdAt: "ASC",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
const formattedData = {
|
const formattedData = {
|
||||||
|
|
@ -2381,7 +2384,7 @@ export class PositionController extends Controller {
|
||||||
// posType: { posTypeRank: "ASC" },
|
// posType: { posTypeRank: "ASC" },
|
||||||
// posLevel: { posLevelRank: "ASC" },
|
// posLevel: { posLevelRank: "ASC" },
|
||||||
orderNo: "ASC",
|
orderNo: "ASC",
|
||||||
createdAt: "ASC"
|
createdAt: "ASC",
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -3654,6 +3657,7 @@ export class PositionController extends Controller {
|
||||||
dataMaster.current_holderId = _null;
|
dataMaster.current_holderId = _null;
|
||||||
}
|
}
|
||||||
await this.posMasterRepository.save(dataMaster, { data: request });
|
await this.posMasterRepository.save(dataMaster, { data: request });
|
||||||
|
await CreatePosMasterHistoryOfficer(dataMaster.id, request);
|
||||||
setLogDataDiff(request, { before, after: dataMaster });
|
setLogDataDiff(request, { before, after: dataMaster });
|
||||||
|
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
|
|
@ -4826,6 +4830,7 @@ export class PositionController extends Controller {
|
||||||
positionId: string;
|
positionId: string;
|
||||||
profileId: string;
|
profileId: string;
|
||||||
},
|
},
|
||||||
|
@Request() request: RequestWithUser,
|
||||||
) {
|
) {
|
||||||
const posMaster = await this.posMasterRepository.findOne({
|
const posMaster = await this.posMasterRepository.findOne({
|
||||||
where: { id: body.posmasterId },
|
where: { id: body.posmasterId },
|
||||||
|
|
@ -4879,8 +4884,12 @@ export class PositionController extends Controller {
|
||||||
const _null: any = null;
|
const _null: any = null;
|
||||||
posMaster.conditionReason = _null;
|
posMaster.conditionReason = _null;
|
||||||
posMaster.isCondition = false;
|
posMaster.isCondition = false;
|
||||||
if (posMasterOld != null) await this.posMasterRepository.save(posMasterOld);
|
if (posMasterOld != null) {
|
||||||
|
await this.posMasterRepository.save(posMasterOld);
|
||||||
|
await CreatePosMasterHistoryOfficer(posMasterOld.id, request);
|
||||||
|
}
|
||||||
await this.posMasterRepository.save(posMaster);
|
await this.posMasterRepository.save(posMaster);
|
||||||
|
await CreatePosMasterHistoryOfficer(posMaster.id, request);
|
||||||
|
|
||||||
const positionNew = await this.positionRepository.findOne({
|
const positionNew = await this.positionRepository.findOne({
|
||||||
where: {
|
where: {
|
||||||
|
|
@ -5432,7 +5441,6 @@ export class PositionController extends Controller {
|
||||||
posMaster.lastUpdatedAt = new Date();
|
posMaster.lastUpdatedAt = new Date();
|
||||||
posMaster.lastUpdateUserId = request.user.sub;
|
posMaster.lastUpdateUserId = request.user.sub;
|
||||||
posMaster.lastUpdateFullName = request.user.name;
|
posMaster.lastUpdateFullName = request.user.name;
|
||||||
posMaster.lastUpdatedAt = new Date();
|
|
||||||
await this.posMasterRepository.save(posMaster);
|
await this.posMasterRepository.save(posMaster);
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
@ -5617,4 +5625,20 @@ export class PositionController extends Controller {
|
||||||
}
|
}
|
||||||
return new HttpSuccess();
|
return new HttpSuccess();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* API ประวัติแก้ไขตำแหน่ง
|
||||||
|
*
|
||||||
|
* @summary ประวัติแก้ไขตำแหน่ง (ADMIN)
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@Get("history-update/{id}")
|
||||||
|
async listPosMasterHistory(@Path() id: string, @Request() request: RequestWithUser) {
|
||||||
|
const posMasterHistory = await this.posMasterHistoryRepository.find({
|
||||||
|
where: { ancestorDNA: id },
|
||||||
|
order: { createdAt: "DESC" },
|
||||||
|
});
|
||||||
|
|
||||||
|
return new HttpSuccess(posMasterHistory);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -47,9 +47,7 @@ export const AppDataSource = new DataSource({
|
||||||
logging: true,
|
logging: true,
|
||||||
// timezone: "Z",
|
// timezone: "Z",
|
||||||
entities:
|
entities:
|
||||||
process.env.NODE_ENV !== "production"
|
process.env.NODE_ENV !== "production" ? ["src/entities/*.ts"] : ["dist/entities/*{.ts,.js}"],
|
||||||
? ["src/entities/**/*.ts"]
|
|
||||||
: ["dist/entities/**/*{.ts,.js}"],
|
|
||||||
migrations:
|
migrations:
|
||||||
process.env.NODE_ENV !== "production"
|
process.env.NODE_ENV !== "production"
|
||||||
? ["src/migration/**/*.ts"]
|
? ["src/migration/**/*.ts"]
|
||||||
|
|
|
||||||
101
src/entities/PosMasterEmployeeHistory.ts
Normal file
101
src/entities/PosMasterEmployeeHistory.ts
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
import { Entity, Column } from "typeorm";
|
||||||
|
import { EntityBase } from "./base/Base";
|
||||||
|
|
||||||
|
@Entity("posMasterEmployeeHistory")
|
||||||
|
export class PosMasterEmployeeHistory extends EntityBase {
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "คำนำหน้า",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
prefix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อ",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
firstName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "สกุล",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
lastName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "อักษรย่อ",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
shortName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "Prefix นำหน้าเลขที่ตำแหน่ง เป็น Optional (ไม่ใช่อักษรย่อของหน่วยงาน/ส่วนราชการ)",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNoPrefix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "เลขที่ตำแหน่ง เป็นตัวเลข",
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNo: number;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "Suffix หลังเลขที่ตำแหน่ง เช่น ช.",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNoSuffix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
position: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อประเภทตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posType: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อระดับตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posLevel: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อตำแหน่งทางการบริหาร",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posExecutive: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment:
|
||||||
|
"รหัส DNA ใช้ในกรณีที่มีการทำสำเนาโครงสร้างและตำแหน่ง ตำแหน่งที่ทำสำเนามากับตำแหน่งเก่าจะต้องมี DNA เดียวกัน เพื่อให้ track ประวัติการแก้ไขตำแหน่งย้อนหลังได้",
|
||||||
|
length: 40,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
ancestorDNA: string;
|
||||||
|
}
|
||||||
101
src/entities/PosMasterEmployeeTempHistory.ts
Normal file
101
src/entities/PosMasterEmployeeTempHistory.ts
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
import { Entity, Column } from "typeorm";
|
||||||
|
import { EntityBase } from "./base/Base";
|
||||||
|
|
||||||
|
@Entity("posMasterEmployeeTempHistory")
|
||||||
|
export class PosMasterEmployeeTempHistory extends EntityBase {
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "คำนำหน้า",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
prefix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อ",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
firstName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "สกุล",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
lastName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "อักษรย่อ",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
shortName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "Prefix นำหน้าเลขที่ตำแหน่ง เป็น Optional (ไม่ใช่อักษรย่อของหน่วยงาน/ส่วนราชการ)",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNoPrefix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "เลขที่ตำแหน่ง เป็นตัวเลข",
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNo: number;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "Suffix หลังเลขที่ตำแหน่ง เช่น ช.",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNoSuffix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
position: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อประเภทตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posType: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อระดับตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posLevel: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อตำแหน่งทางการบริหาร",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posExecutive: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment:
|
||||||
|
"รหัส DNA ใช้ในกรณีที่มีการทำสำเนาโครงสร้างและตำแหน่ง ตำแหน่งที่ทำสำเนามากับตำแหน่งเก่าจะต้องมี DNA เดียวกัน เพื่อให้ track ประวัติการแก้ไขตำแหน่งย้อนหลังได้",
|
||||||
|
length: 40,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
ancestorDNA: string;
|
||||||
|
}
|
||||||
101
src/entities/PosMasterHistory.ts
Normal file
101
src/entities/PosMasterHistory.ts
Normal file
|
|
@ -0,0 +1,101 @@
|
||||||
|
import { Entity, Column } from "typeorm";
|
||||||
|
import { EntityBase } from "./base/Base";
|
||||||
|
|
||||||
|
@Entity("posMasterHistory")
|
||||||
|
export class PosMasterHistory extends EntityBase {
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "คำนำหน้า",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
prefix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อ",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
firstName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "สกุล",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
lastName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "อักษรย่อ",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
shortName: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "Prefix นำหน้าเลขที่ตำแหน่ง เป็น Optional (ไม่ใช่อักษรย่อของหน่วยงาน/ส่วนราชการ)",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNoPrefix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "เลขที่ตำแหน่ง เป็นตัวเลข",
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNo: number;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "Suffix หลังเลขที่ตำแหน่ง เช่น ช.",
|
||||||
|
length: 16,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posMasterNoSuffix: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
position: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อประเภทตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posType: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อระดับตำแหน่ง",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posLevel: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment: "ชื่อตำแหน่งทางการบริหาร",
|
||||||
|
length: 255,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
posExecutive: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
nullable: true,
|
||||||
|
comment:
|
||||||
|
"รหัส DNA ใช้ในกรณีที่มีการทำสำเนาโครงสร้างและตำแหน่ง ตำแหน่งที่ทำสำเนามากับตำแหน่งเก่าจะต้องมี DNA เดียวกัน เพื่อให้ track ประวัติการแก้ไขตำแหน่งย้อนหลังได้",
|
||||||
|
length: 40,
|
||||||
|
default: null,
|
||||||
|
})
|
||||||
|
ancestorDNA: string;
|
||||||
|
}
|
||||||
216
src/services/PositionService.ts
Normal file
216
src/services/PositionService.ts
Normal file
|
|
@ -0,0 +1,216 @@
|
||||||
|
import { AppDataSource } from "../database/data-source";
|
||||||
|
import { EmployeePosMaster } from "../entities/EmployeePosMaster";
|
||||||
|
import { EmployeeTempPosMaster } from "../entities/EmployeeTempPosMaster";
|
||||||
|
import { PosMaster } from "../entities/PosMaster";
|
||||||
|
import { PosMasterEmployeeHistory } from "../entities/PosMasterEmployeeHistory";
|
||||||
|
import { PosMasterEmployeeTempHistory } from "../entities/PosMasterEmployeeTempHistory";
|
||||||
|
import { PosMasterHistory } from "../entities/PosMasterHistory";
|
||||||
|
import { RequestWithUser } from "../middlewares/user";
|
||||||
|
|
||||||
|
export async function CreatePosMasterHistoryOfficer(
|
||||||
|
posMasterId: string,
|
||||||
|
request: RequestWithUser | null,
|
||||||
|
): Promise<boolean> {
|
||||||
|
try {
|
||||||
|
await AppDataSource.transaction(async (manager) => {
|
||||||
|
const repoPosmaster = manager.getRepository(PosMaster);
|
||||||
|
const repoHistory = manager.getRepository(PosMasterHistory);
|
||||||
|
|
||||||
|
const pm = await repoPosmaster.findOne({
|
||||||
|
where: { id: posMasterId },
|
||||||
|
relations: [
|
||||||
|
"positions",
|
||||||
|
"positions.posLevel",
|
||||||
|
"positions.posType",
|
||||||
|
"positions.posExecutive",
|
||||||
|
"orgRoot",
|
||||||
|
"orgChild1",
|
||||||
|
"orgChild2",
|
||||||
|
"orgChild3",
|
||||||
|
"orgChild4",
|
||||||
|
"current_holder",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!pm) return false;
|
||||||
|
if (!pm.ancestorDNA) return false;
|
||||||
|
const _null: any = null;
|
||||||
|
const h = new PosMasterHistory();
|
||||||
|
const selectedPosition =
|
||||||
|
pm.positions.length > 0
|
||||||
|
? pm.positions.find((p) => p.positionIsSelected === true) ?? null
|
||||||
|
: null;
|
||||||
|
h.ancestorDNA = pm.ancestorDNA;
|
||||||
|
h.prefix = pm.current_holder?.prefix || _null;
|
||||||
|
h.firstName = pm.current_holder?.firstName || _null;
|
||||||
|
h.lastName = pm.current_holder?.lastName || _null;
|
||||||
|
h.posMasterNoPrefix = pm.posMasterNoPrefix ?? _null;
|
||||||
|
h.posMasterNo = pm.posMasterNo ?? _null;
|
||||||
|
h.posMasterNoSuffix = pm.posMasterNoSuffix ?? _null;
|
||||||
|
h.position = selectedPosition?.positionName ?? _null;
|
||||||
|
h.posType = selectedPosition?.posType?.posTypeName ?? _null;
|
||||||
|
h.posLevel = selectedPosition?.posLevel?.posLevelName ?? _null;
|
||||||
|
h.posExecutive = selectedPosition?.posExecutive?.posExecutiveName ?? _null;
|
||||||
|
h.shortName =
|
||||||
|
[
|
||||||
|
pm.orgChild4?.orgChild4ShortName,
|
||||||
|
pm.orgChild3?.orgChild3ShortName,
|
||||||
|
pm.orgChild2?.orgChild2ShortName,
|
||||||
|
pm.orgChild1?.orgChild1ShortName,
|
||||||
|
pm.orgRoot?.orgRootShortName,
|
||||||
|
].find((s) => typeof s === "string" && s.trim().length > 0) ?? _null;
|
||||||
|
const userId = request?.user?.sub ?? "";
|
||||||
|
const userName = request?.user?.name ?? "system";
|
||||||
|
h.createdUserId = userId;
|
||||||
|
h.createdFullName = userName;
|
||||||
|
h.lastUpdateUserId = userId;
|
||||||
|
h.lastUpdateFullName = userName;
|
||||||
|
h.createdAt = new Date();
|
||||||
|
h.lastUpdatedAt = new Date();
|
||||||
|
await repoHistory.save(h);
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch (err) {
|
||||||
|
console.error("CreatePosMasterHistoryOfficer transaction error:", err);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function CreatePosMasterHistoryEmployee(
|
||||||
|
posMasterId: string,
|
||||||
|
request: RequestWithUser | null,
|
||||||
|
): Promise<boolean> {
|
||||||
|
try {
|
||||||
|
await AppDataSource.transaction(async (manager) => {
|
||||||
|
const repoPosmaster = manager.getRepository(EmployeePosMaster);
|
||||||
|
const repoHistory = manager.getRepository(PosMasterEmployeeHistory);
|
||||||
|
|
||||||
|
const pm = await repoPosmaster.findOne({
|
||||||
|
where: { id: posMasterId },
|
||||||
|
relations: [
|
||||||
|
"positions",
|
||||||
|
"positions.posLevel",
|
||||||
|
"positions.posType",
|
||||||
|
"positions.posExecutive",
|
||||||
|
"orgRoot",
|
||||||
|
"orgChild1",
|
||||||
|
"orgChild2",
|
||||||
|
"orgChild3",
|
||||||
|
"orgChild4",
|
||||||
|
"current_holder",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!pm) return false;
|
||||||
|
if (!pm.ancestorDNA) return false;
|
||||||
|
const _null: any = null;
|
||||||
|
const h = new PosMasterEmployeeHistory();
|
||||||
|
const selectedPosition =
|
||||||
|
pm.positions.length > 0
|
||||||
|
? pm.positions.find((p) => p.positionIsSelected === true) ?? null
|
||||||
|
: null;
|
||||||
|
h.ancestorDNA = pm.ancestorDNA;
|
||||||
|
h.prefix = pm.current_holder?.prefix || _null;
|
||||||
|
h.firstName = pm.current_holder?.firstName || _null;
|
||||||
|
h.lastName = pm.current_holder?.lastName || _null;
|
||||||
|
h.posMasterNoPrefix = pm.posMasterNoPrefix ?? _null;
|
||||||
|
h.posMasterNo = pm.posMasterNo ?? _null;
|
||||||
|
h.posMasterNoSuffix = pm.posMasterNoSuffix ?? _null;
|
||||||
|
h.position = selectedPosition?.positionName ?? _null;
|
||||||
|
h.posType = selectedPosition?.posType?.posTypeName ?? _null;
|
||||||
|
h.posLevel = selectedPosition?.posLevel?.posLevelName ?? _null;
|
||||||
|
h.shortName =
|
||||||
|
[
|
||||||
|
pm.orgChild4?.orgChild4ShortName,
|
||||||
|
pm.orgChild3?.orgChild3ShortName,
|
||||||
|
pm.orgChild2?.orgChild2ShortName,
|
||||||
|
pm.orgChild1?.orgChild1ShortName,
|
||||||
|
pm.orgRoot?.orgRootShortName,
|
||||||
|
].find((s) => typeof s === "string" && s.trim().length > 0) ?? _null;
|
||||||
|
const userId = request?.user?.sub ?? "";
|
||||||
|
const userName = request?.user?.name ?? "system";
|
||||||
|
h.createdUserId = userId;
|
||||||
|
h.createdFullName = userName;
|
||||||
|
h.lastUpdateUserId = userId;
|
||||||
|
h.lastUpdateFullName = userName;
|
||||||
|
h.createdAt = new Date();
|
||||||
|
h.lastUpdatedAt = new Date();
|
||||||
|
await repoHistory.save(h);
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch (err) {
|
||||||
|
console.error("CreatePosMasterHistoryEmployee transaction error:", err);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export async function CreatePosMasterHistoryEmployeeTemp(
|
||||||
|
posMasterId: string,
|
||||||
|
request: RequestWithUser | null,
|
||||||
|
): Promise<boolean> {
|
||||||
|
try {
|
||||||
|
await AppDataSource.transaction(async (manager) => {
|
||||||
|
const repoPosmaster = manager.getRepository(EmployeeTempPosMaster);
|
||||||
|
const repoHistory = manager.getRepository(PosMasterEmployeeTempHistory);
|
||||||
|
|
||||||
|
const pm = await repoPosmaster.findOne({
|
||||||
|
where: { id: posMasterId },
|
||||||
|
relations: [
|
||||||
|
"positions",
|
||||||
|
"positions.posLevel",
|
||||||
|
"positions.posType",
|
||||||
|
"positions.posExecutive",
|
||||||
|
"orgRoot",
|
||||||
|
"orgChild1",
|
||||||
|
"orgChild2",
|
||||||
|
"orgChild3",
|
||||||
|
"orgChild4",
|
||||||
|
"current_holder",
|
||||||
|
],
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!pm) return false;
|
||||||
|
if (!pm.ancestorDNA) return false;
|
||||||
|
const _null: any = null;
|
||||||
|
const h = new PosMasterEmployeeTempHistory();
|
||||||
|
const selectedPosition =
|
||||||
|
pm.positions.length > 0
|
||||||
|
? pm.positions.find((p) => p.positionIsSelected === true) ?? null
|
||||||
|
: null;
|
||||||
|
h.ancestorDNA = pm.ancestorDNA;
|
||||||
|
h.prefix = pm.current_holder?.prefix || _null;
|
||||||
|
h.firstName = pm.current_holder?.firstName || _null;
|
||||||
|
h.lastName = pm.current_holder?.lastName || _null;
|
||||||
|
h.posMasterNoPrefix = pm.posMasterNoPrefix ?? _null;
|
||||||
|
h.posMasterNo = pm.posMasterNo ?? _null;
|
||||||
|
h.posMasterNoSuffix = pm.posMasterNoSuffix ?? _null;
|
||||||
|
h.position = selectedPosition?.positionName ?? _null;
|
||||||
|
h.posType = selectedPosition?.posType?.posTypeName ?? _null;
|
||||||
|
h.posLevel = selectedPosition?.posLevel?.posLevelName ?? _null;
|
||||||
|
h.shortName =
|
||||||
|
[
|
||||||
|
pm.orgChild4?.orgChild4ShortName,
|
||||||
|
pm.orgChild3?.orgChild3ShortName,
|
||||||
|
pm.orgChild2?.orgChild2ShortName,
|
||||||
|
pm.orgChild1?.orgChild1ShortName,
|
||||||
|
pm.orgRoot?.orgRootShortName,
|
||||||
|
].find((s) => typeof s === "string" && s.trim().length > 0) ?? _null;
|
||||||
|
const userId = request?.user?.sub ?? "";
|
||||||
|
const userName = request?.user?.name ?? "system";
|
||||||
|
h.createdUserId = userId;
|
||||||
|
h.createdFullName = userName;
|
||||||
|
h.lastUpdateUserId = userId;
|
||||||
|
h.lastUpdateFullName = userName;
|
||||||
|
h.createdAt = new Date();
|
||||||
|
h.lastUpdatedAt = new Date();
|
||||||
|
await repoHistory.save(h);
|
||||||
|
});
|
||||||
|
|
||||||
|
return true;
|
||||||
|
} catch (err) {
|
||||||
|
console.error("CreatePosMasterHistoryEmployeeTemp transaction error:", err);
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -5,14 +5,12 @@ import { chunkArray, commandTypePath } from "../interfaces/utils";
|
||||||
import CallAPI from "../interfaces/call-api";
|
import CallAPI from "../interfaces/call-api";
|
||||||
import HttpError from "../interfaces/http-error";
|
import HttpError from "../interfaces/http-error";
|
||||||
import HttpStatusCode from "../interfaces/http-status";
|
import HttpStatusCode from "../interfaces/http-status";
|
||||||
import { RequestWithUser } from "../middlewares/user";
|
|
||||||
import { PosMaster } from "../entities/PosMaster";
|
import { PosMaster } from "../entities/PosMaster";
|
||||||
import { Profile } from "../entities/Profile";
|
import { Profile } from "../entities/Profile";
|
||||||
import { EmployeePosMaster } from "../entities/EmployeePosMaster";
|
import { EmployeePosMaster } from "../entities/EmployeePosMaster";
|
||||||
import { EmployeeTempPosMaster } from "../entities/EmployeeTempPosMaster";
|
import { EmployeeTempPosMaster } from "../entities/EmployeeTempPosMaster";
|
||||||
import { ProfileEmployee } from "../entities/ProfileEmployee";
|
import { ProfileEmployee } from "../entities/ProfileEmployee";
|
||||||
import { OrgRevision } from "../entities/OrgRevision";
|
import { OrgRevision } from "../entities/OrgRevision";
|
||||||
import { request } from "http";
|
|
||||||
import { EmployeePosition } from "../entities/EmployeePosition";
|
import { EmployeePosition } from "../entities/EmployeePosition";
|
||||||
import { OrgChild1 } from "../entities/OrgChild1";
|
import { OrgChild1 } from "../entities/OrgChild1";
|
||||||
import { OrgChild2 } from "../entities/OrgChild2";
|
import { OrgChild2 } from "../entities/OrgChild2";
|
||||||
|
|
@ -25,6 +23,7 @@ import { In, Not } from "typeorm";
|
||||||
import { PosMasterAct } from "../entities/PosMasterAct";
|
import { PosMasterAct } from "../entities/PosMasterAct";
|
||||||
import { PermissionOrg } from "../entities/PermissionOrg";
|
import { PermissionOrg } from "../entities/PermissionOrg";
|
||||||
import { sendWebSocket } from "./webSocket";
|
import { sendWebSocket } from "./webSocket";
|
||||||
|
import { CreatePosMasterHistoryOfficer } from "./PositionService";
|
||||||
|
|
||||||
export let sendToQueue: (payload: any) => void;
|
export let sendToQueue: (payload: any) => void;
|
||||||
export let sendToQueueOrg: (payload: any) => void;
|
export let sendToQueueOrg: (payload: any) => void;
|
||||||
|
|
@ -580,6 +579,7 @@ async function handler_org(msg: amqp.ConsumeMessage): Promise<boolean> {
|
||||||
item.lastUpdateFullName = lastUpdateFullName;
|
item.lastUpdateFullName = lastUpdateFullName;
|
||||||
item.lastUpdatedAt = lastUpdatedAt;
|
item.lastUpdatedAt = lastUpdatedAt;
|
||||||
await repoPosmaster.save(item).catch((e) => console.log(e));
|
await repoPosmaster.save(item).catch((e) => console.log(e));
|
||||||
|
await CreatePosMasterHistoryOfficer(item.id, null);
|
||||||
}
|
}
|
||||||
if (orgRevisionPublish != null && orgRevisionDraft != null) {
|
if (orgRevisionPublish != null && orgRevisionDraft != null) {
|
||||||
//new main revision
|
//new main revision
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue