fixed api web service case select ROOT, NORMAL, CHILD
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m0s
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m0s
This commit is contained in:
parent
33bd92af11
commit
0c7c8e9fd3
1 changed files with 19 additions and 9 deletions
|
|
@ -607,18 +607,28 @@ export class ApiWebServiceController extends Controller {
|
|||
}
|
||||
|
||||
// join กับ posMaster/employeePosMaster/employeeTempPosMaster เพื่อกรองตามสิทธิ์การเข้าถึง
|
||||
// Skip duplicate join - posMaster already joined for registry systems at lines 569-571
|
||||
// Permission condition will use the existing alias
|
||||
const posMasterAlreadyJoined = (system === "registry" || system === "registry_emp" || system === "registry_temp") && tbMain === "Profile";
|
||||
|
||||
if ((tbMain === "Profile" || tbMain === "ProfileEmployee") && posMasterCondition !== "1=1") {
|
||||
if (tbMain === "Profile") {
|
||||
queryBuilder.innerJoin("Profile.current_holders", "posMaster", "posMaster.orgRevisionId = :currentRevisionIdPerm");
|
||||
queryBuilder.setParameter("currentRevisionIdPerm", this.currentRevisionId);
|
||||
} else if (tbMain === "ProfileEmployee") {
|
||||
// Use the correct relation based on posMasterAlias
|
||||
if (posMasterAlias === "employeeTempPosMaster") {
|
||||
queryBuilder.innerJoin("ProfileEmployee.current_holderTemps", "employeeTempPosMaster", "employeeTempPosMaster.orgRevisionId = :currentRevisionIdPerm");
|
||||
} else {
|
||||
queryBuilder.innerJoin("ProfileEmployee.current_holders", "employeePosMaster", "employeePosMaster.orgRevisionId = :currentRevisionIdPerm");
|
||||
// Only join if not already joined for registry systems
|
||||
if (!posMasterAlreadyJoined) {
|
||||
queryBuilder.innerJoin("Profile.current_holders", "posMaster", "posMaster.orgRevisionId = :currentRevisionIdPerm");
|
||||
queryBuilder.setParameter("currentRevisionIdPerm", this.currentRevisionId);
|
||||
}
|
||||
} else if (tbMain === "ProfileEmployee") {
|
||||
// Check if already joined for registry_emp systems
|
||||
const alreadyJoined = (system === "registry_emp" || system === "registry_temp");
|
||||
// Use the correct relation based on posMasterAlias
|
||||
if (posMasterAlias === "employeeTempPosMaster" && !alreadyJoined) {
|
||||
queryBuilder.innerJoin("ProfileEmployee.current_holderTemps", "employeeTempPosMaster", "employeeTempPosMaster.orgRevisionId = :currentRevisionIdPerm");
|
||||
queryBuilder.setParameter("currentRevisionIdPerm", this.currentRevisionId);
|
||||
} else if (posMasterAlias === "employeePosMaster" && !alreadyJoined) {
|
||||
queryBuilder.innerJoin("ProfileEmployee.current_holders", "employeePosMaster", "employeePosMaster.orgRevisionId = :currentRevisionIdPerm");
|
||||
queryBuilder.setParameter("currentRevisionIdPerm", this.currentRevisionId);
|
||||
}
|
||||
queryBuilder.setParameter("currentRevisionIdPerm", this.currentRevisionId);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue