diff --git a/src/controllers/PositionController.ts b/src/controllers/PositionController.ts index c17ccb0c..56415296 100644 --- a/src/controllers/PositionController.ts +++ b/src/controllers/PositionController.ts @@ -701,23 +701,33 @@ export class PositionController extends Controller { ); } - // let fullPosRootName = `CONCAT(posMaster.orgRootShortName).trim() + (requestBody.posMasterNo))`; - // let filterRootName = `CONCAT(posMaster.orgRootShortName,posMaster.posMasterNo)`; + let fullPosRootName = `CONCAT(posMaster.orgRootShortName).trim() + (requestBody.posMasterNo))`; + let filterRootName = `CONCAT(posMaster.orgRootShortName,posMaster.posMasterNo)`; + let fullPosChild1Name = `CONCAT(posMaster.orgChild1ShortName).trim() + (requestBody.posMasterNo))`; + let filterChild1Name = `CONCAT(posMaster.orgChild1ShortName,posMaster.posMasterNo)`; + let fullPosChild2Name = `CONCAT(posMaster.orgChild2ShortName).trim() + (requestBody.posMasterNo))`; + let filterChild2Name = `CONCAT(posMaster.orgChild2ShortName,posMaster.posMasterNo)`; + let fullPosChild3Name = `CONCAT(posMaster.orgChild3ShortName).trim() + (requestBody.posMasterNo))`; + let filterChild3Name = `CONCAT(posMaster.orgChild3ShortName,posMaster.posMasterNo)`; + let fullPosChild4Name = `CONCAT(posMaster.orgChild4ShortName).trim() + (requestBody.posMasterNo))`; + let filterChild4Name = `CONCAT(posMaster.orgChild4ShortName,posMaster.posMasterNo)`; - // const chk_FullName0 = await AppDataSource.getRepository(PosMaster) - // .createQueryBuilder("posMaster") - // .from("posMaster", "posMaster") - // .where("posMaster.orgRevisionId = :orgRevisionId", { orgRevisionId: posMaster.orgRevisionId }) - // .andWhere("posMaster.orgRootShortName = :orgRootShortName", { orgRootShortName: SName }) - // .andWhere("posMaster.orgChild1Id IS NULL") - // .andWhere(`${filterRootName} = :fullPosRootName`, { fullPosRootName }); - - // if (chk_FullName0 != null) { - // throw new HttpError( - // HttpStatusCode.INTERNAL_SERVER_ERROR, - // "ไม่สามารถเพิ่มชื่อตำแหน่งซ้ำกันได้", - // ); - // } + const chk_FullName0 = await AppDataSource.getRepository(PosMaster) + .createQueryBuilder("posMaster") + .where("posMaster.orgRevisionId = :orgRevisionId", { orgRevisionId: posMaster.orgRevisionId }) + .andWhere(`CONCAT(posMaster.orgRootShortName.trim(), :posMasterNo) = :fullPosRootName`, { posMasterNo: requestBody.posMasterNo, fullPosRootName }) + .andWhere(`CONCAT(posMaster.orgChild1ShortName.trim(), :posMasterNo) = :fullPosChild1Name`, { posMasterNo: requestBody.posMasterNo, fullPosChild1Name }) + .andWhere(`CONCAT(posMaster.orgChild2ShortName.trim(), :posMasterNo) = :fullPosChild2Name`, { posMasterNo: requestBody.posMasterNo, fullPosChild2Name }) + .andWhere(`CONCAT(posMaster.orgChild3ShortName.trim(), :posMasterNo) = :fullPosChild3Name`, { posMasterNo: requestBody.posMasterNo, fullPosChild3Name }) + .andWhere(`CONCAT(posMaster.orgChild4ShortName.trim(), :posMasterNo) = :fullPosChild4Name`, { posMasterNo: requestBody.posMasterNo, fullPosChild4Name }) + .getOne(); + + if (chk_FullName0 != null) { + throw new HttpError( + HttpStatusCode.INTERNAL_SERVER_ERROR, + "ไม่สามารถเพิ่มชื่อตำแหน่งซ้ำกันได้", + ); + } // const chk_FullName1 = await AppDataSource.getRepository(PosMaster) // .createQueryBuilder("posMaster")