diff --git a/src/controllers/PositionController.ts b/src/controllers/PositionController.ts index 04c29c98..dd76ad0c 100644 --- a/src/controllers/PositionController.ts +++ b/src/controllers/PositionController.ts @@ -1431,11 +1431,77 @@ export class PositionController extends Controller { @Get("position/{id}") async detailPosition(@Path() id: string) { const posMaster = await this.posMasterRepository.findOne({ + relations: [ + "orgRoot", + "orgChild1", + "orgChild2", + "orgChild3", + "orgChild4", + ], where: { id }, }); if (!posMaster) { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูล"); } + let orgLevel: any; + + switch (true) { + case !!posMaster.orgChild4Id: + orgLevel = 4; + break; + case !!posMaster.orgChild3Id: + orgLevel = 3; + break; + case !!posMaster.orgChild2Id: + orgLevel = 2; + break; + case !!posMaster.orgChild1Id: + orgLevel = 1; + break; + case !!posMaster.orgRootId: + orgLevel = 0; + break; + default: + orgLevel = null; // ถ้าไม่มีข้อมูลเลย + break; + } + let shortName = ""; + if ( + posMaster.orgRootId !== null && + posMaster.orgChild1Id == null && + posMaster.orgChild2Id == null && + posMaster.orgChild3Id == null + ) { + shortName = posMaster.orgRoot.orgRootShortName; + } else if ( + posMaster.orgRootId !== null && + posMaster.orgChild1Id !== null && + posMaster.orgChild2Id == null && + posMaster.orgChild3Id == null + ) { + shortName = posMaster.orgChild1.orgChild1ShortName; + } else if ( + posMaster.orgRootId !== null && + posMaster.orgChild1Id !== null && + posMaster.orgChild2Id !== null && + posMaster.orgChild3Id == null + ) { + shortName = posMaster.orgChild2.orgChild2ShortName; + } else if ( + posMaster.orgRootId !== null && + posMaster.orgChild1Id !== null && + posMaster.orgChild2Id !== null && + posMaster.orgChild3Id !== null + ) { + shortName = posMaster.orgChild3.orgChild3ShortName; + } else if ( + posMaster.orgRootId !== null && + posMaster.orgChild1Id !== null && + posMaster.orgChild2Id !== null && + posMaster.orgChild3Id !== null + ) { + shortName = posMaster.orgChild4.orgChild4ShortName; + } const positions = await this.positionRepository.find({ where: { posMasterId: posMaster.id }, relations: ["posType", "posLevel", "posExecutive"], @@ -1457,6 +1523,8 @@ export class PositionController extends Controller { reason: posMaster.reason, // isOfficer: posMaster.isOfficer, isStaff: posMaster.isStaff, + orgLevel: orgLevel, + orgShortname: shortName, isDirector: posMaster.isDirector, positionSign: posMaster.positionSign, positions: positions.map((position) => ({ @@ -2594,6 +2662,7 @@ export class PositionController extends Controller { posMaster.ancestorDNA == null || posMaster.ancestorDNA == "" ? "123" : posMaster.ancestorDNA, + // current_holderId: Not(IsNull()), }, order: { lastUpdatedAt: "DESC" }, relations: [