diff --git a/src/controllers/OrganizationController.ts b/src/controllers/OrganizationController.ts index f9683365..b52b2768 100644 --- a/src/controllers/OrganizationController.ts +++ b/src/controllers/OrganizationController.ts @@ -1576,6 +1576,16 @@ export class OrganizationController extends Controller { orgRevisionDraft.orgRevisionIsCurrent = true; orgRevisionDraft.orgRevisionIsDraft = false; await this.orgRevisionRepository.save(orgRevisionDraft); + + const posMaster = await this.posMasterRepository.find({ + where: { orgRevisionId: orgRevisionDraft.id }, + }); + posMaster.forEach(async (item) => { + item.current_holderId = item.next_holderId; + item.next_holderId = null; + await this.posMasterRepository.save(item); + }); + return new HttpSuccess(); } } diff --git a/src/controllers/ProfileController.ts b/src/controllers/ProfileController.ts index d296a653..f91b3d7d 100644 --- a/src/controllers/ProfileController.ts +++ b/src/controllers/ProfileController.ts @@ -51,6 +51,9 @@ export class ProfileController extends Controller { requestBody: CreateProfile, @Request() request: { user: Record }, ) { + if (requestBody.posLevelId == "") { + requestBody.posLevelId = null; + } if (requestBody.posLevelId) { const checkPosLevel = await this.posLevelRepository.findOne({ where: { id: requestBody.posLevelId }, @@ -63,6 +66,9 @@ export class ProfileController extends Controller { } } + if (requestBody.posTypeId == "") { + requestBody.posTypeId = null; + } if (requestBody.posTypeId) { const checkPosType = await this.posTypeRepository.findOne({ where: { id: requestBody.posTypeId }, @@ -75,6 +81,17 @@ export class ProfileController extends Controller { } } + const checkCitizenId = await this.profileRepository.findOne({ + where: { citizenId: requestBody.citizenId }, + }); + + if (checkCitizenId) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "มีรหัสประจำตัวประชาชนนี้แล้วในระบบ (citizenId)", + ); + } + try { const profile = Object.assign(new Profile(), requestBody); profile.createdUserId = request.user.sub; @@ -107,6 +124,9 @@ export class ProfileController extends Controller { throw new HttpError(HttpStatusCode.NOT_FOUND, "ไม่พบข้อมูลไอดีนี้ : " + id); } + if (requestBody.posLevelId == "") { + requestBody.posLevelId = null; + } if (requestBody.posLevelId) { const checkPosLevel = await this.posLevelRepository.findOne({ where: { id: requestBody.posLevelId }, @@ -119,6 +139,9 @@ export class ProfileController extends Controller { } } + if (requestBody.posTypeId == "") { + requestBody.posTypeId = null; + } if (requestBody.posTypeId) { const checkPosType = await this.posTypeRepository.findOne({ where: { id: requestBody.posTypeId }, @@ -131,6 +154,17 @@ export class ProfileController extends Controller { } } + const checkCitizenId = await this.profileRepository.findOne({ + where: { citizenId: requestBody.citizenId }, + }); + + if (checkCitizenId) { + throw new HttpError( + HttpStatusCode.NOT_FOUND, + "มีรหัสประจำตัวประชาชนนี้แล้วในระบบ (citizenId)", + ); + } + try { profile.lastUpdateUserId = request.user.sub; profile.lastUpdateFullName = request.user.name;