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 เพื่อกรองตามสิทธิ์การเข้าถึง
|
// 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" || tbMain === "ProfileEmployee") && posMasterCondition !== "1=1") {
|
||||||
if (tbMain === "Profile") {
|
if (tbMain === "Profile") {
|
||||||
queryBuilder.innerJoin("Profile.current_holders", "posMaster", "posMaster.orgRevisionId = :currentRevisionIdPerm");
|
// Only join if not already joined for registry systems
|
||||||
queryBuilder.setParameter("currentRevisionIdPerm", this.currentRevisionId);
|
if (!posMasterAlreadyJoined) {
|
||||||
} else if (tbMain === "ProfileEmployee") {
|
queryBuilder.innerJoin("Profile.current_holders", "posMaster", "posMaster.orgRevisionId = :currentRevisionIdPerm");
|
||||||
// Use the correct relation based on posMasterAlias
|
queryBuilder.setParameter("currentRevisionIdPerm", this.currentRevisionId);
|
||||||
if (posMasterAlias === "employeeTempPosMaster") {
|
}
|
||||||
queryBuilder.innerJoin("ProfileEmployee.current_holderTemps", "employeeTempPosMaster", "employeeTempPosMaster.orgRevisionId = :currentRevisionIdPerm");
|
} else if (tbMain === "ProfileEmployee") {
|
||||||
} else {
|
// Check if already joined for registry_emp systems
|
||||||
queryBuilder.innerJoin("ProfileEmployee.current_holders", "employeePosMaster", "employeePosMaster.orgRevisionId = :currentRevisionIdPerm");
|
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