fixes for ProfileLeave queries. Changed leaveTypeId to return leaveTypeName from LeaveType master data and added isDeleted filtering for ProfileLeave and 37 other Profile entities.
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m3s
All checks were successful
Build & Deploy on Dev / build (push) Successful in 1m3s
This commit is contained in:
parent
81e8dadd9b
commit
f06be7ce77
2 changed files with 124 additions and 1 deletions
|
|
@ -375,6 +375,11 @@ export class ApiManageController extends Controller {
|
|||
"isUpload",
|
||||
"isDeleted",
|
||||
"isEntry",
|
||||
"prefixId",
|
||||
"leaveId",
|
||||
"leaveTypeId",
|
||||
"isDeputy",
|
||||
"isCommission",
|
||||
]; // ฟิลด์ที่ไม่ต้องการแสดงในผลลัพธ์
|
||||
|
||||
// การแทนที่ฟิลด์ ID ด้วยฟิลด์ Name สำหรับ Profile entity
|
||||
|
|
@ -489,6 +494,20 @@ export class ApiManageController extends Controller {
|
|||
},
|
||||
};
|
||||
|
||||
// การแทนที่ฟิลด์ ID ด้วยฟิลด์ Name สำหรับ ProfileLeave entity
|
||||
private readonly PROFILELEAVE_FIELD_REPLACEMENTS: Record<
|
||||
string,
|
||||
{ propertyName: string; type: string; comment: string; joinTable: string; joinField: string }
|
||||
> = {
|
||||
leaveTypeId: {
|
||||
propertyName: "leaveTypeName",
|
||||
type: "string",
|
||||
comment: "ประเภทการลา",
|
||||
joinTable: "LeaveType",
|
||||
joinField: "name",
|
||||
},
|
||||
};
|
||||
|
||||
private validateSuperAdminRole(user: any): void {
|
||||
if (!user.role.includes("SUPER_ADMIN")) {
|
||||
throw new HttpError(HttpStatusCode.FORBIDDEN, "คุณไม่มีสิทธิ์ในการเข้าถึงข้อมูลนี้");
|
||||
|
|
@ -599,6 +618,26 @@ export class ApiManageController extends Controller {
|
|||
columns = [...columns, ...nameFields];
|
||||
}
|
||||
|
||||
// Special handling for ProfileLeave entity - replace ID fields with name fields
|
||||
if (name === "ProfileLeave") {
|
||||
const replacementKeys = Object.keys(this.PROFILELEAVE_FIELD_REPLACEMENTS);
|
||||
|
||||
// Remove ID fields that should be replaced
|
||||
columns = columns.filter(
|
||||
(col: { propertyName: string }) => !replacementKeys.includes(col.propertyName),
|
||||
);
|
||||
|
||||
// Add the corresponding name fields
|
||||
const nameFields = replacementKeys.map((key) => ({
|
||||
propertyName: this.PROFILELEAVE_FIELD_REPLACEMENTS[key].propertyName,
|
||||
type: "string",
|
||||
comment: this.PROFILELEAVE_FIELD_REPLACEMENTS[key].comment,
|
||||
key: this.PROFILELEAVE_FIELD_REPLACEMENTS[key].propertyName,
|
||||
}));
|
||||
|
||||
columns = [...columns, ...nameFields];
|
||||
}
|
||||
|
||||
// Special handling for PosMaster entity - add Profile fields for holder information
|
||||
if (name === "PosMaster") {
|
||||
// Add Profile fields that are accessible via current_holder relation
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue