@platform-modules/foreign-ministry 1.3.277 → 1.3.290
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.env +10 -5
- package/dist/data-source.js +8 -4
- package/dist/helpers/employee-evaluation-request.utils.d.ts +30 -0
- package/dist/helpers/employee-evaluation-request.utils.js +139 -0
- package/dist/helpers/evaluation-eligibility.utils.d.ts +10 -0
- package/dist/helpers/evaluation-eligibility.utils.js +39 -0
- package/dist/index.d.ts +7 -2
- package/dist/index.js +20 -5
- package/dist/models/EmployeeEvaluationAnswerModel.d.ts +5 -6
- package/dist/models/EmployeeEvaluationAnswerModel.js +18 -16
- package/dist/models/EmployeeEvaluationApprovalModel.d.ts +1 -1
- package/dist/models/EmployeeEvaluationApprovalModel.js +2 -2
- package/dist/models/EmployeeEvaluationPersonScoreModel.d.ts +9 -0
- package/dist/models/EmployeeEvaluationPersonScoreModel.js +45 -0
- package/dist/models/EmployeeEvaluationRequestModel.d.ts +6 -1
- package/dist/models/EmployeeEvaluationRequestModel.js +18 -2
- package/dist/models/EvaluationEligibilitySettingModel.d.ts +8 -3
- package/dist/models/EvaluationEligibilitySettingModel.js +11 -3
- package/dist/models/EvaluationFormModel.d.ts +17 -0
- package/dist/models/EvaluationFormModel.js +64 -0
- package/dist/models/EvaluationFormQuestionModel.d.ts +22 -0
- package/dist/models/EvaluationFormQuestionModel.js +78 -0
- package/dist/models/EvaluationFormSectionModel.d.ts +12 -0
- package/dist/models/EvaluationFormSectionModel.js +54 -0
- package/dist/models/EvaluationMastersModel.d.ts +16 -0
- package/dist/models/EvaluationMastersModel.js +67 -0
- package/dist/models/EvaluationWorkflowModel.d.ts +60 -0
- package/dist/models/EvaluationWorkflowModel.js +215 -0
- package/dist/models/IneligibleForEvaluationModel.d.ts +8 -0
- package/dist/models/IneligibleForEvaluationModel.js +44 -0
- package/dist/models/MissionTravelClassConfigModel.d.ts +10 -0
- package/dist/models/MissionTravelClassConfigModel.js +50 -0
- package/dist/models/MissionTravelPerdiemModel.d.ts +10 -0
- package/dist/models/MissionTravelPerdiemModel.js +54 -0
- package/dist/models/UuidAuditModel.d.ts +9 -0
- package/dist/models/UuidAuditModel.js +41 -0
- package/package.json +24 -24
- package/scripts/migration-employee-evaluation-approval-role-null.sql +11 -0
- package/scripts/migration-employee-evaluation-request-v2.sql +63 -0
- package/scripts/migration-evaluation-max-employees-per-request.sql +2 -0
- package/src/data-source.ts +614 -610
- package/src/helpers/employee-evaluation-request.utils.ts +181 -0
- package/src/helpers/evaluation-eligibility.utils.ts +36 -0
- package/src/index.ts +480 -456
- package/src/models/AnnualTravelTicketPriceConfigurationItemModel.ts +36 -36
- package/src/models/AnnualTravelTicketPriceConfigurationModel.ts +35 -35
- package/src/models/AnnualTravelTicketRequestModel.ts +42 -42
- package/src/models/DiplomaticAcademyRequestModel.ts +80 -80
- package/src/models/DocumentationFileModel.ts +40 -40
- package/src/models/EmployeeEvaluationAnswerModel.ts +26 -26
- package/src/models/EmployeeEvaluationApprovalModel.ts +2 -2
- package/src/models/EmployeeEvaluationPersonScoreModel.ts +25 -0
- package/src/models/EmployeeEvaluationRequestModel.ts +90 -77
- package/src/models/EvaluationEligibilitySettingModel.ts +51 -42
- package/src/models/EvaluationFormModel.ts +40 -0
- package/src/models/EvaluationFormQuestionModel.ts +52 -0
- package/src/models/EvaluationFormSectionModel.ts +33 -0
- package/src/models/FinancialWorkFlowModel.ts +15 -15
- package/src/models/GatePassVisitorsModel.ts +7 -7
- package/src/models/LMSExternalEntityTrainedPersonModel.ts +45 -45
- package/src/models/LanguageCourseRequestModel.ts +67 -67
- package/src/models/LeaveConfigModel.ts +71 -71
- package/src/models/MissionTravelApprovalModel.ts +101 -101
- package/src/models/MissionTravelAttachmentModel.ts +56 -56
- package/src/models/MissionTravelChatModel.ts +52 -52
- package/src/models/MissionTravelPersonModel.ts +105 -105
- package/src/models/MissionTravelWorkflowModel.ts +54 -54
- package/src/models/PollOptionsModel.ts +26 -26
- package/src/models/PollVotesModel.ts +37 -37
- package/src/models/PollsModel.ts +49 -49
- package/src/models/ProjectContactsModel.ts +51 -51
- package/src/models/ProjectFaqModel.ts +36 -36
- package/src/models/ProjectInvoicesModel.ts +41 -41
- package/src/models/ProjectModel.ts +75 -75
- package/src/models/ProjectTasksModel.ts +75 -75
- package/src/models/ResignationTerminationApprovalModel.ts +9 -9
- package/src/models/ResignationTerminationRequestModel.ts +17 -17
- package/src/models/SectionModel.ts +35 -35
- package/src/models/ServicesNotificationConfigsModel.ts +55 -55
- package/src/models/TelephoneDirectoryModel.ts +20 -20
- package/dist/models/EmbassyMasterModel.d.ts +0 -16
- package/dist/models/EmbassyMasterModel.js +0 -75
- package/dist/models/UserDependentsModel.d.ts +0 -18
- package/dist/models/UserDependentsModel.js +0 -94
- package/src/models/EvaluationQuestionMasterModel.ts +0 -23
- package/src/models/EvaluationSectionMasterModel.ts +0 -17
package/.env
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
|
-
DB_HOST=localhost
|
|
2
|
-
DB_PORT=5432
|
|
3
|
-
DB_USER=postgres
|
|
4
|
-
DB_PASS=
|
|
5
|
-
DB_NAME=FM
|
|
1
|
+
# DB_HOST=localhost
|
|
2
|
+
# DB_PORT=5432
|
|
3
|
+
# DB_USER=postgres
|
|
4
|
+
# DB_PASS=stevejobs
|
|
5
|
+
# DB_NAME=FM
|
|
6
|
+
|
|
7
|
+
DB_HOST = 164.52.222.169
|
|
8
|
+
DB_USER = postgres_admin_user
|
|
9
|
+
DB_PASS = pg_admin_user_pwd_caa_fa_$%^&OIukhjgcvbn
|
|
10
|
+
DB_NAME= FM
|
package/dist/data-source.js
CHANGED
|
@@ -285,11 +285,13 @@ const DocumentationFileModel_1 = require("./models/DocumentationFileModel");
|
|
|
285
285
|
const UniversalLanguageMasterModel_1 = require("./models/UniversalLanguageMasterModel");
|
|
286
286
|
const MeetingAppointmentReminderLogModel_1 = require("./models/MeetingAppointmentReminderLogModel");
|
|
287
287
|
const EvaluationEligibilitySettingModel_1 = require("./models/EvaluationEligibilitySettingModel");
|
|
288
|
-
const
|
|
289
|
-
const
|
|
288
|
+
const EvaluationFormModel_1 = require("./models/EvaluationFormModel");
|
|
289
|
+
const EvaluationFormSectionModel_1 = require("./models/EvaluationFormSectionModel");
|
|
290
|
+
const EvaluationFormQuestionModel_1 = require("./models/EvaluationFormQuestionModel");
|
|
290
291
|
const EmployeeEvaluationRequestModel_1 = require("./models/EmployeeEvaluationRequestModel");
|
|
291
292
|
const EmployeeEvaluationModel_1 = require("./models/EmployeeEvaluationModel");
|
|
292
293
|
const EmployeeEvaluationAnswerModel_1 = require("./models/EmployeeEvaluationAnswerModel");
|
|
294
|
+
const EmployeeEvaluationPersonScoreModel_1 = require("./models/EmployeeEvaluationPersonScoreModel");
|
|
293
295
|
const EmployeeEvaluationApprovalModel_1 = require("./models/EmployeeEvaluationApprovalModel");
|
|
294
296
|
const EmployeeEvaluationWorkflowModel_1 = require("./models/EmployeeEvaluationWorkflowModel");
|
|
295
297
|
const EmployeeEvaluationChatModel_1 = require("./models/EmployeeEvaluationChatModel");
|
|
@@ -585,11 +587,13 @@ exports.AppDataSource = new typeorm_1.DataSource({
|
|
|
585
587
|
MeetingAppointmentReminderLogModel_1.MeetingAppointmentReminderLog,
|
|
586
588
|
EvaluationEligibilitySettingModel_1.EvaluationEligibilitySetting,
|
|
587
589
|
EvaluationEligibilitySettingModel_1.EvaluationEligibilitySettingEmployee,
|
|
588
|
-
|
|
589
|
-
|
|
590
|
+
EvaluationFormModel_1.EvaluationForm,
|
|
591
|
+
EvaluationFormSectionModel_1.EvaluationFormSection,
|
|
592
|
+
EvaluationFormQuestionModel_1.EvaluationFormQuestion,
|
|
590
593
|
EmployeeEvaluationRequestModel_1.EmployeeEvaluationRequests,
|
|
591
594
|
EmployeeEvaluationModel_1.EmployeeEvaluation,
|
|
592
595
|
EmployeeEvaluationAnswerModel_1.EmployeeEvaluationAnswers,
|
|
596
|
+
EmployeeEvaluationPersonScoreModel_1.EmployeeEvaluationPersonScore,
|
|
593
597
|
EmployeeEvaluationApprovalModel_1.EmployeeEvaluationApprovalDetails,
|
|
594
598
|
EmployeeEvaluationWorkflowModel_1.EmployeeEvaluationWorkFlow,
|
|
595
599
|
EmployeeEvaluationChatModel_1.EmployeeEvaluationRequestChat,
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { EntityManager } from 'typeorm';
|
|
2
|
+
export declare const DEFAULT_MAX_EMPLOYEES_PER_REQUEST = 50;
|
|
3
|
+
export type EmployeeEvaluationSubmitAnswer = {
|
|
4
|
+
section_id: number;
|
|
5
|
+
question_id: number;
|
|
6
|
+
score: number;
|
|
7
|
+
remarks?: string | null;
|
|
8
|
+
};
|
|
9
|
+
export type EmployeeEvaluationSubmitEmployee = {
|
|
10
|
+
user_id: number;
|
|
11
|
+
is_rca?: boolean;
|
|
12
|
+
answers: EmployeeEvaluationSubmitAnswer[];
|
|
13
|
+
};
|
|
14
|
+
export type NormalizedEmployeeSubmission = EmployeeEvaluationSubmitEmployee;
|
|
15
|
+
export declare function normalizeEmployeeSubmissions(raw: unknown): {
|
|
16
|
+
employees: NormalizedEmployeeSubmission[];
|
|
17
|
+
error?: string;
|
|
18
|
+
};
|
|
19
|
+
/** Resolve max employees from active eligibility setting for dept/section/month. */
|
|
20
|
+
export declare function resolveMaxEmployeesPerRequest(manager: EntityManager, department_id: number, section_id: number, month: number): Promise<number>;
|
|
21
|
+
export declare function persistEmployeeEvaluationScores(manager: EntityManager, opts: {
|
|
22
|
+
requestId: number;
|
|
23
|
+
formId: number;
|
|
24
|
+
createdBy: string;
|
|
25
|
+
employees: NormalizedEmployeeSubmission[];
|
|
26
|
+
}): Promise<{
|
|
27
|
+
totalScore: number;
|
|
28
|
+
averageScore: number;
|
|
29
|
+
employeeCount: number;
|
|
30
|
+
}>;
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DEFAULT_MAX_EMPLOYEES_PER_REQUEST = void 0;
|
|
4
|
+
exports.normalizeEmployeeSubmissions = normalizeEmployeeSubmissions;
|
|
5
|
+
exports.resolveMaxEmployeesPerRequest = resolveMaxEmployeesPerRequest;
|
|
6
|
+
exports.persistEmployeeEvaluationScores = persistEmployeeEvaluationScores;
|
|
7
|
+
const EmployeeEvaluationAnswerModel_1 = require("../models/EmployeeEvaluationAnswerModel");
|
|
8
|
+
const EmployeeEvaluationPersonScoreModel_1 = require("../models/EmployeeEvaluationPersonScoreModel");
|
|
9
|
+
const EmployeeEvaluationRequestModel_1 = require("../models/EmployeeEvaluationRequestModel");
|
|
10
|
+
const EvaluationEligibilitySettingModel_1 = require("../models/EvaluationEligibilitySettingModel");
|
|
11
|
+
const EvaluationFormQuestionModel_1 = require("../models/EvaluationFormQuestionModel");
|
|
12
|
+
exports.DEFAULT_MAX_EMPLOYEES_PER_REQUEST = 50;
|
|
13
|
+
function normalizeEmployeeSubmissions(raw) {
|
|
14
|
+
if (!Array.isArray(raw) || raw.length === 0) {
|
|
15
|
+
return { employees: [], error: 'employees must be a non-empty array' };
|
|
16
|
+
}
|
|
17
|
+
const seen = new Set();
|
|
18
|
+
const employees = [];
|
|
19
|
+
for (const item of raw) {
|
|
20
|
+
if (item == null || typeof item !== 'object') {
|
|
21
|
+
return { employees: [], error: 'Each employee entry must be an object' };
|
|
22
|
+
}
|
|
23
|
+
const o = item;
|
|
24
|
+
const user_id = Number(o.user_id ?? o.employee_id);
|
|
25
|
+
if (!Number.isFinite(user_id) || user_id <= 0) {
|
|
26
|
+
return { employees: [], error: 'Each employee must have a valid user_id' };
|
|
27
|
+
}
|
|
28
|
+
if (seen.has(user_id)) {
|
|
29
|
+
return { employees: [], error: `Duplicate user_id ${user_id} in employees list` };
|
|
30
|
+
}
|
|
31
|
+
seen.add(user_id);
|
|
32
|
+
const answersRaw = o.answers;
|
|
33
|
+
if (!Array.isArray(answersRaw) || answersRaw.length === 0) {
|
|
34
|
+
return { employees: [], error: `Employee ${user_id} must include a non-empty answers array` };
|
|
35
|
+
}
|
|
36
|
+
const answers = [];
|
|
37
|
+
const qSeen = new Set();
|
|
38
|
+
for (const a of answersRaw) {
|
|
39
|
+
if (a == null || typeof a !== 'object') {
|
|
40
|
+
return { employees: [], error: `Invalid answer for employee ${user_id}` };
|
|
41
|
+
}
|
|
42
|
+
const ar = a;
|
|
43
|
+
const section_id = Number(ar.section_id);
|
|
44
|
+
const question_id = Number(ar.question_id);
|
|
45
|
+
const score = Number(ar.score);
|
|
46
|
+
if (!Number.isFinite(section_id) || !Number.isFinite(question_id)) {
|
|
47
|
+
return { employees: [], error: `section_id and question_id required for employee ${user_id}` };
|
|
48
|
+
}
|
|
49
|
+
if (!Number.isFinite(score) || score < 0) {
|
|
50
|
+
return { employees: [], error: `score must be a non-negative number for employee ${user_id}, question ${question_id}` };
|
|
51
|
+
}
|
|
52
|
+
if (qSeen.has(question_id)) {
|
|
53
|
+
return { employees: [], error: `Duplicate question_id ${question_id} for employee ${user_id}` };
|
|
54
|
+
}
|
|
55
|
+
qSeen.add(question_id);
|
|
56
|
+
answers.push({
|
|
57
|
+
section_id,
|
|
58
|
+
question_id,
|
|
59
|
+
score,
|
|
60
|
+
remarks: ar.remarks != null ? String(ar.remarks) : null,
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
employees.push({
|
|
64
|
+
user_id,
|
|
65
|
+
is_rca: o.is_rca !== undefined ? Boolean(o.is_rca) : false,
|
|
66
|
+
answers,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return { employees };
|
|
70
|
+
}
|
|
71
|
+
/** Resolve max employees from active eligibility setting for dept/section/month. */
|
|
72
|
+
async function resolveMaxEmployeesPerRequest(manager, department_id, section_id, month) {
|
|
73
|
+
const setting = await manager
|
|
74
|
+
.getRepository(EvaluationEligibilitySettingModel_1.EvaluationEligibilitySetting)
|
|
75
|
+
.createQueryBuilder('s')
|
|
76
|
+
.where('s.is_deleted = false')
|
|
77
|
+
.andWhere('s.is_active = true')
|
|
78
|
+
.andWhere('s.department_id = :department_id', { department_id })
|
|
79
|
+
.andWhere('s.section_id = :section_id', { section_id })
|
|
80
|
+
.andWhere('s.from_month <= :month', { month })
|
|
81
|
+
.andWhere('s.to_month >= :month', { month })
|
|
82
|
+
.orderBy('s.id', 'DESC')
|
|
83
|
+
.getOne();
|
|
84
|
+
const max = setting?.max_employees_per_request;
|
|
85
|
+
if (max != null && Number.isFinite(Number(max)) && Number(max) > 0) {
|
|
86
|
+
return Math.floor(Number(max));
|
|
87
|
+
}
|
|
88
|
+
return exports.DEFAULT_MAX_EMPLOYEES_PER_REQUEST;
|
|
89
|
+
}
|
|
90
|
+
async function persistEmployeeEvaluationScores(manager, opts) {
|
|
91
|
+
const { requestId, formId, createdBy, employees } = opts;
|
|
92
|
+
let requestTotal = 0;
|
|
93
|
+
for (const emp of employees) {
|
|
94
|
+
let personTotal = 0;
|
|
95
|
+
for (const ans of emp.answers) {
|
|
96
|
+
const qMeta = await manager.findOne(EvaluationFormQuestionModel_1.EvaluationFormQuestion, {
|
|
97
|
+
where: { id: ans.question_id, is_deleted: false },
|
|
98
|
+
});
|
|
99
|
+
const questionSectionId = qMeta?.form_section_id;
|
|
100
|
+
if (!qMeta || questionSectionId == null || questionSectionId !== ans.section_id) {
|
|
101
|
+
throw new Error(`Invalid question ${ans.question_id} for section ${ans.section_id}`);
|
|
102
|
+
}
|
|
103
|
+
if (qMeta.max_score != null && ans.score > qMeta.max_score) {
|
|
104
|
+
throw new Error(`score ${ans.score} exceeds max_score ${qMeta.max_score} for question ${ans.question_id}`);
|
|
105
|
+
}
|
|
106
|
+
personTotal += ans.score;
|
|
107
|
+
await manager.save(EmployeeEvaluationAnswerModel_1.EmployeeEvaluationAnswers, manager.create(EmployeeEvaluationAnswerModel_1.EmployeeEvaluationAnswers, {
|
|
108
|
+
request_id: requestId,
|
|
109
|
+
user_id: emp.user_id,
|
|
110
|
+
form_id: formId,
|
|
111
|
+
section_id: ans.section_id,
|
|
112
|
+
question_id: ans.question_id,
|
|
113
|
+
score: ans.score,
|
|
114
|
+
remarks: ans.remarks ?? null,
|
|
115
|
+
created_by: createdBy,
|
|
116
|
+
is_deleted: false,
|
|
117
|
+
}));
|
|
118
|
+
}
|
|
119
|
+
await manager.save(EmployeeEvaluationPersonScoreModel_1.EmployeeEvaluationPersonScore, manager.create(EmployeeEvaluationPersonScoreModel_1.EmployeeEvaluationPersonScore, {
|
|
120
|
+
request_id: requestId,
|
|
121
|
+
user_id: emp.user_id,
|
|
122
|
+
is_rca: Boolean(emp.is_rca),
|
|
123
|
+
us_feedback: null,
|
|
124
|
+
total_score: personTotal,
|
|
125
|
+
created_by: createdBy,
|
|
126
|
+
is_deleted: false,
|
|
127
|
+
}));
|
|
128
|
+
requestTotal += personTotal;
|
|
129
|
+
}
|
|
130
|
+
const employeeCount = employees.length;
|
|
131
|
+
const averageScore = employeeCount ? requestTotal / employeeCount : 0;
|
|
132
|
+
await manager.update(EmployeeEvaluationRequestModel_1.EmployeeEvaluationRequests, { id: requestId }, {
|
|
133
|
+
total_score: requestTotal,
|
|
134
|
+
average_score: averageScore,
|
|
135
|
+
employee_count: employeeCount,
|
|
136
|
+
updated_by: createdBy,
|
|
137
|
+
});
|
|
138
|
+
return { totalScore: requestTotal, averageScore, employeeCount };
|
|
139
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether evaluations are still open for a setting's month range.
|
|
3
|
+
* `evaluation_end_date` is the last calendar day (1–31) of each month in the range.
|
|
4
|
+
*/
|
|
5
|
+
export declare function isEvaluationEligibilityWindowOpen(fromMonth: number, toMonth: number, evaluationEndDay: number, referenceDate?: Date): boolean;
|
|
6
|
+
export declare function parseEvaluationEndDay(input: unknown): number | null;
|
|
7
|
+
export declare function parseMonthRange(fromInput: unknown, toInput: unknown): {
|
|
8
|
+
from_month: number;
|
|
9
|
+
to_month: number;
|
|
10
|
+
} | null;
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isEvaluationEligibilityWindowOpen = isEvaluationEligibilityWindowOpen;
|
|
4
|
+
exports.parseEvaluationEndDay = parseEvaluationEndDay;
|
|
5
|
+
exports.parseMonthRange = parseMonthRange;
|
|
6
|
+
/**
|
|
7
|
+
* Whether evaluations are still open for a setting's month range.
|
|
8
|
+
* `evaluation_end_date` is the last calendar day (1–31) of each month in the range.
|
|
9
|
+
*/
|
|
10
|
+
function isEvaluationEligibilityWindowOpen(fromMonth, toMonth, evaluationEndDay, referenceDate = new Date()) {
|
|
11
|
+
const month = referenceDate.getUTCMonth() + 1;
|
|
12
|
+
const day = referenceDate.getUTCDate();
|
|
13
|
+
if (month < fromMonth || month > toMonth)
|
|
14
|
+
return false;
|
|
15
|
+
if (!Number.isFinite(evaluationEndDay) || evaluationEndDay < 1 || evaluationEndDay > 31)
|
|
16
|
+
return false;
|
|
17
|
+
return day <= evaluationEndDay;
|
|
18
|
+
}
|
|
19
|
+
function parseEvaluationEndDay(input) {
|
|
20
|
+
if (input == null || input === '')
|
|
21
|
+
return null;
|
|
22
|
+
const n = typeof input === 'number' ? input : parseInt(String(input).trim(), 10);
|
|
23
|
+
if (!Number.isFinite(n) || n < 1 || n > 31)
|
|
24
|
+
return null;
|
|
25
|
+
return Math.floor(n);
|
|
26
|
+
}
|
|
27
|
+
function parseMonthRange(fromInput, toInput) {
|
|
28
|
+
const from_month = typeof fromInput === 'number' ? fromInput : parseInt(String(fromInput).trim(), 10);
|
|
29
|
+
const to_month = typeof toInput === 'number' ? toInput : parseInt(String(toInput).trim(), 10);
|
|
30
|
+
if (!Number.isFinite(from_month) || !Number.isFinite(to_month))
|
|
31
|
+
return null;
|
|
32
|
+
if (!Number.isInteger(from_month) || !Number.isInteger(to_month))
|
|
33
|
+
return null;
|
|
34
|
+
if (from_month < 1 || from_month > 12 || to_month < 1 || to_month > 12)
|
|
35
|
+
return null;
|
|
36
|
+
if (from_month > to_month)
|
|
37
|
+
return null;
|
|
38
|
+
return { from_month, to_month };
|
|
39
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -406,12 +406,17 @@ export * from './models/ServicesNotificationConfigsModel';
|
|
|
406
406
|
export { ServicesNotificationTriggerType } from './models/ServicesNotificationConfigsModel';
|
|
407
407
|
export * from './models/MoodleUsersModel';
|
|
408
408
|
export { EvaluationEligibilitySetting, EvaluationEligibilitySettingEmployee, } from './models/EvaluationEligibilitySettingModel';
|
|
409
|
-
export {
|
|
410
|
-
export {
|
|
409
|
+
export { isEvaluationEligibilityWindowOpen, parseEvaluationEndDay, parseMonthRange, } from './helpers/evaluation-eligibility.utils';
|
|
410
|
+
export { DEFAULT_MAX_EMPLOYEES_PER_REQUEST, normalizeEmployeeSubmissions, resolveMaxEmployeesPerRequest, persistEmployeeEvaluationScores, } from './helpers/employee-evaluation-request.utils';
|
|
411
|
+
export type { EmployeeEvaluationSubmitAnswer, EmployeeEvaluationSubmitEmployee, NormalizedEmployeeSubmission, } from './helpers/employee-evaluation-request.utils';
|
|
411
412
|
export { EmployeeEvaluationRequests, EmployeeEvaluationRequestStatus, EmployeeEvaluationRoutingBucket, } from './models/EmployeeEvaluationRequestModel';
|
|
412
413
|
export { EmployeeEvaluation, EmployeeEvaluationUsFeedback } from './models/EmployeeEvaluationModel';
|
|
413
414
|
export { EmployeeEvaluationAnswers } from './models/EmployeeEvaluationAnswerModel';
|
|
415
|
+
export { EmployeeEvaluationPersonScore } from './models/EmployeeEvaluationPersonScoreModel';
|
|
414
416
|
export { EmployeeEvaluationApprovalDetails, EmployeeEvaluationApprovalStatus, } from './models/EmployeeEvaluationApprovalModel';
|
|
415
417
|
export { EmployeeEvaluationWorkFlow, EmployeeEvaluationWorkFlowStatus, } from './models/EmployeeEvaluationWorkflowModel';
|
|
416
418
|
export { EmployeeEvaluationRequestChat, EmployeeEvaluationMessageType, } from './models/EmployeeEvaluationChatModel';
|
|
417
419
|
export { EmployeeEvaluationRequestAttachment } from './models/EmployeeEvaluationAttachmentModel';
|
|
420
|
+
export { EvaluationForm, EvaluationFormType, } from './models/EvaluationFormModel';
|
|
421
|
+
export { EvaluationFormSection } from './models/EvaluationFormSectionModel';
|
|
422
|
+
export { EvaluationFormQuestion, EvaluationFormQuestionType, } from './models/EvaluationFormQuestionModel';
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
15
15
|
};
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
exports.EvaluationEligibilitySetting = exports.ServicesNotificationTriggerType = exports.AppointmentWorkFlowStatus = exports.AppointmentMessageType = exports.AppointmentAttendeeStatus = exports.AppointmentApprovalStatus = exports.AppointmentAttendees = exports.AppointmentWorkFlow = exports.AppointmentRequestChat = exports.AppointmentRequestAttachment = exports.AppointmentApprovalDetails = exports.AppointmentRequestStatus = exports.AppointmentRequests = exports.TravelClass = exports.MissionTravelWorkFlowStatus = exports.MissionTravelApprovalStatus = exports.AllowanceRatio = exports.DecisionType = exports.MissionType = exports.MissionTravelStatus = exports.GatePassMessageType = exports.GatePassWorkFlowStatus = exports.GatePassApprovalStatus = exports.GatePassType = exports.GatePassRequestStatus = exports.SecurityDeptMessageType = exports.SecurityDeptAccessType = exports.SecurityDeptRequestStatus = exports.RetiredCardMessageType = exports.RetiredCardWorkFlowStatus = exports.RetiredCardApprovalStatus = exports.RetiredCardAccessType = exports.RetiredCardRequestStatus = exports.TitleCategory = exports.ProfileUpdateRequestStatus = exports.StayAfterHoursTransactionStatus = exports.StayAfterHoursTransaction = exports.StayAfterHoursBalance = exports.EarlyCheckoutTransactionStatus = exports.EarlyCheckoutTransaction = exports.EarlyCheckoutFrequency = exports.EarlyCheckoutConfiguration = exports.EarlyCheckoutBalance = exports.LeaveTransactionStatus = exports.LeaveTransaction = exports.LeaveConfigurationGrades = exports.enumFrequency = exports.LeaveConfiguration = exports.ParcelDepartmentCategory = exports.RegisterCandidateExperienceActivity = void 0;
|
|
18
|
-
exports.EmployeeEvaluationRequestAttachment = exports.EmployeeEvaluationMessageType = exports.EmployeeEvaluationRequestChat = exports.EmployeeEvaluationWorkFlowStatus = exports.EmployeeEvaluationWorkFlow = exports.EmployeeEvaluationApprovalStatus = exports.EmployeeEvaluationApprovalDetails = exports.EmployeeEvaluationAnswers = exports.EmployeeEvaluationUsFeedback = exports.EmployeeEvaluation = exports.EmployeeEvaluationRoutingBucket = exports.EmployeeEvaluationRequestStatus = exports.EmployeeEvaluationRequests = exports.
|
|
18
|
+
exports.EvaluationFormQuestionType = exports.EvaluationFormQuestion = exports.EvaluationFormSection = exports.EvaluationFormType = exports.EvaluationForm = exports.EmployeeEvaluationRequestAttachment = exports.EmployeeEvaluationMessageType = exports.EmployeeEvaluationRequestChat = exports.EmployeeEvaluationWorkFlowStatus = exports.EmployeeEvaluationWorkFlow = exports.EmployeeEvaluationApprovalStatus = exports.EmployeeEvaluationApprovalDetails = exports.EmployeeEvaluationPersonScore = exports.EmployeeEvaluationAnswers = exports.EmployeeEvaluationUsFeedback = exports.EmployeeEvaluation = exports.EmployeeEvaluationRoutingBucket = exports.EmployeeEvaluationRequestStatus = exports.EmployeeEvaluationRequests = exports.persistEmployeeEvaluationScores = exports.resolveMaxEmployeesPerRequest = exports.normalizeEmployeeSubmissions = exports.DEFAULT_MAX_EMPLOYEES_PER_REQUEST = exports.parseMonthRange = exports.parseEvaluationEndDay = exports.isEvaluationEligibilityWindowOpen = exports.EvaluationEligibilitySettingEmployee = void 0;
|
|
19
19
|
__exportStar(require("./models/user"), exports);
|
|
20
20
|
__exportStar(require("./models/role"), exports);
|
|
21
21
|
__exportStar(require("./models/user-sessions"), exports);
|
|
@@ -495,10 +495,15 @@ __exportStar(require("./models/MoodleUsersModel"), exports);
|
|
|
495
495
|
var EvaluationEligibilitySettingModel_1 = require("./models/EvaluationEligibilitySettingModel");
|
|
496
496
|
Object.defineProperty(exports, "EvaluationEligibilitySetting", { enumerable: true, get: function () { return EvaluationEligibilitySettingModel_1.EvaluationEligibilitySetting; } });
|
|
497
497
|
Object.defineProperty(exports, "EvaluationEligibilitySettingEmployee", { enumerable: true, get: function () { return EvaluationEligibilitySettingModel_1.EvaluationEligibilitySettingEmployee; } });
|
|
498
|
-
var
|
|
499
|
-
Object.defineProperty(exports, "
|
|
500
|
-
|
|
501
|
-
Object.defineProperty(exports, "
|
|
498
|
+
var evaluation_eligibility_utils_1 = require("./helpers/evaluation-eligibility.utils");
|
|
499
|
+
Object.defineProperty(exports, "isEvaluationEligibilityWindowOpen", { enumerable: true, get: function () { return evaluation_eligibility_utils_1.isEvaluationEligibilityWindowOpen; } });
|
|
500
|
+
Object.defineProperty(exports, "parseEvaluationEndDay", { enumerable: true, get: function () { return evaluation_eligibility_utils_1.parseEvaluationEndDay; } });
|
|
501
|
+
Object.defineProperty(exports, "parseMonthRange", { enumerable: true, get: function () { return evaluation_eligibility_utils_1.parseMonthRange; } });
|
|
502
|
+
var employee_evaluation_request_utils_1 = require("./helpers/employee-evaluation-request.utils");
|
|
503
|
+
Object.defineProperty(exports, "DEFAULT_MAX_EMPLOYEES_PER_REQUEST", { enumerable: true, get: function () { return employee_evaluation_request_utils_1.DEFAULT_MAX_EMPLOYEES_PER_REQUEST; } });
|
|
504
|
+
Object.defineProperty(exports, "normalizeEmployeeSubmissions", { enumerable: true, get: function () { return employee_evaluation_request_utils_1.normalizeEmployeeSubmissions; } });
|
|
505
|
+
Object.defineProperty(exports, "resolveMaxEmployeesPerRequest", { enumerable: true, get: function () { return employee_evaluation_request_utils_1.resolveMaxEmployeesPerRequest; } });
|
|
506
|
+
Object.defineProperty(exports, "persistEmployeeEvaluationScores", { enumerable: true, get: function () { return employee_evaluation_request_utils_1.persistEmployeeEvaluationScores; } });
|
|
502
507
|
var EmployeeEvaluationRequestModel_1 = require("./models/EmployeeEvaluationRequestModel");
|
|
503
508
|
Object.defineProperty(exports, "EmployeeEvaluationRequests", { enumerable: true, get: function () { return EmployeeEvaluationRequestModel_1.EmployeeEvaluationRequests; } });
|
|
504
509
|
Object.defineProperty(exports, "EmployeeEvaluationRequestStatus", { enumerable: true, get: function () { return EmployeeEvaluationRequestModel_1.EmployeeEvaluationRequestStatus; } });
|
|
@@ -508,6 +513,8 @@ Object.defineProperty(exports, "EmployeeEvaluation", { enumerable: true, get: fu
|
|
|
508
513
|
Object.defineProperty(exports, "EmployeeEvaluationUsFeedback", { enumerable: true, get: function () { return EmployeeEvaluationModel_1.EmployeeEvaluationUsFeedback; } });
|
|
509
514
|
var EmployeeEvaluationAnswerModel_1 = require("./models/EmployeeEvaluationAnswerModel");
|
|
510
515
|
Object.defineProperty(exports, "EmployeeEvaluationAnswers", { enumerable: true, get: function () { return EmployeeEvaluationAnswerModel_1.EmployeeEvaluationAnswers; } });
|
|
516
|
+
var EmployeeEvaluationPersonScoreModel_1 = require("./models/EmployeeEvaluationPersonScoreModel");
|
|
517
|
+
Object.defineProperty(exports, "EmployeeEvaluationPersonScore", { enumerable: true, get: function () { return EmployeeEvaluationPersonScoreModel_1.EmployeeEvaluationPersonScore; } });
|
|
511
518
|
var EmployeeEvaluationApprovalModel_1 = require("./models/EmployeeEvaluationApprovalModel");
|
|
512
519
|
Object.defineProperty(exports, "EmployeeEvaluationApprovalDetails", { enumerable: true, get: function () { return EmployeeEvaluationApprovalModel_1.EmployeeEvaluationApprovalDetails; } });
|
|
513
520
|
Object.defineProperty(exports, "EmployeeEvaluationApprovalStatus", { enumerable: true, get: function () { return EmployeeEvaluationApprovalModel_1.EmployeeEvaluationApprovalStatus; } });
|
|
@@ -519,3 +526,11 @@ Object.defineProperty(exports, "EmployeeEvaluationRequestChat", { enumerable: tr
|
|
|
519
526
|
Object.defineProperty(exports, "EmployeeEvaluationMessageType", { enumerable: true, get: function () { return EmployeeEvaluationChatModel_1.EmployeeEvaluationMessageType; } });
|
|
520
527
|
var EmployeeEvaluationAttachmentModel_1 = require("./models/EmployeeEvaluationAttachmentModel");
|
|
521
528
|
Object.defineProperty(exports, "EmployeeEvaluationRequestAttachment", { enumerable: true, get: function () { return EmployeeEvaluationAttachmentModel_1.EmployeeEvaluationRequestAttachment; } });
|
|
529
|
+
var EvaluationFormModel_1 = require("./models/EvaluationFormModel");
|
|
530
|
+
Object.defineProperty(exports, "EvaluationForm", { enumerable: true, get: function () { return EvaluationFormModel_1.EvaluationForm; } });
|
|
531
|
+
Object.defineProperty(exports, "EvaluationFormType", { enumerable: true, get: function () { return EvaluationFormModel_1.EvaluationFormType; } });
|
|
532
|
+
var EvaluationFormSectionModel_1 = require("./models/EvaluationFormSectionModel");
|
|
533
|
+
Object.defineProperty(exports, "EvaluationFormSection", { enumerable: true, get: function () { return EvaluationFormSectionModel_1.EvaluationFormSection; } });
|
|
534
|
+
var EvaluationFormQuestionModel_1 = require("./models/EvaluationFormQuestionModel");
|
|
535
|
+
Object.defineProperty(exports, "EvaluationFormQuestion", { enumerable: true, get: function () { return EvaluationFormQuestionModel_1.EvaluationFormQuestion; } });
|
|
536
|
+
Object.defineProperty(exports, "EvaluationFormQuestionType", { enumerable: true, get: function () { return EvaluationFormQuestionModel_1.EvaluationFormQuestionType; } });
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { BaseModel } from './BaseModel';
|
|
2
|
-
import { EvaluationSectionMaster } from './EvaluationSectionMasterModel';
|
|
3
|
-
import { EvaluationQuestionMaster } from './EvaluationQuestionMasterModel';
|
|
4
|
-
import { EmployeeEvaluation } from './EmployeeEvaluationModel';
|
|
5
2
|
export declare class EmployeeEvaluationAnswers extends BaseModel {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
3
|
+
request_id: number;
|
|
4
|
+
user_id: number;
|
|
5
|
+
form_id: number;
|
|
6
|
+
section_id: number;
|
|
7
|
+
question_id: number;
|
|
9
8
|
score: number;
|
|
10
9
|
remarks: string | null;
|
|
11
10
|
}
|
|
@@ -12,29 +12,31 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.EmployeeEvaluationAnswers = void 0;
|
|
13
13
|
const typeorm_1 = require("typeorm");
|
|
14
14
|
const BaseModel_1 = require("./BaseModel");
|
|
15
|
-
const EvaluationSectionMasterModel_1 = require("./EvaluationSectionMasterModel");
|
|
16
|
-
const EvaluationQuestionMasterModel_1 = require("./EvaluationQuestionMasterModel");
|
|
17
|
-
const EmployeeEvaluationModel_1 = require("./EmployeeEvaluationModel");
|
|
18
15
|
let EmployeeEvaluationAnswers = class EmployeeEvaluationAnswers extends BaseModel_1.BaseModel {
|
|
19
16
|
};
|
|
20
17
|
exports.EmployeeEvaluationAnswers = EmployeeEvaluationAnswers;
|
|
21
18
|
__decorate([
|
|
22
|
-
(0, typeorm_1.
|
|
23
|
-
(
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: false }),
|
|
20
|
+
__metadata("design:type", Number)
|
|
21
|
+
], EmployeeEvaluationAnswers.prototype, "request_id", void 0);
|
|
22
|
+
__decorate([
|
|
23
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: false }),
|
|
24
|
+
__metadata("design:type", Number)
|
|
25
|
+
], EmployeeEvaluationAnswers.prototype, "user_id", void 0);
|
|
26
26
|
__decorate([
|
|
27
|
-
(0, typeorm_1.
|
|
28
|
-
(
|
|
29
|
-
|
|
30
|
-
], EmployeeEvaluationAnswers.prototype, "evaluation_section", void 0);
|
|
27
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: false }),
|
|
28
|
+
__metadata("design:type", Number)
|
|
29
|
+
], EmployeeEvaluationAnswers.prototype, "form_id", void 0);
|
|
31
30
|
__decorate([
|
|
32
|
-
(0, typeorm_1.
|
|
33
|
-
(
|
|
34
|
-
|
|
35
|
-
|
|
31
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: false }),
|
|
32
|
+
__metadata("design:type", Number)
|
|
33
|
+
], EmployeeEvaluationAnswers.prototype, "section_id", void 0);
|
|
34
|
+
__decorate([
|
|
35
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: false }),
|
|
36
|
+
__metadata("design:type", Number)
|
|
37
|
+
], EmployeeEvaluationAnswers.prototype, "question_id", void 0);
|
|
36
38
|
__decorate([
|
|
37
|
-
(0, typeorm_1.Column)({ type: '
|
|
39
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: false }),
|
|
38
40
|
__metadata("design:type", Number)
|
|
39
41
|
], EmployeeEvaluationAnswers.prototype, "score", void 0);
|
|
40
42
|
__decorate([
|
|
@@ -10,7 +10,7 @@ export declare class EmployeeEvaluationApprovalDetails extends BaseModel {
|
|
|
10
10
|
service_id: number | null;
|
|
11
11
|
sub_service_id: number | null;
|
|
12
12
|
level: number;
|
|
13
|
-
approver_role_id: number;
|
|
13
|
+
approver_role_id: number | null;
|
|
14
14
|
department_id: number | null;
|
|
15
15
|
section_id: number | null;
|
|
16
16
|
approver_user_id: number | null;
|
|
@@ -39,8 +39,8 @@ __decorate([
|
|
|
39
39
|
__metadata("design:type", Number)
|
|
40
40
|
], EmployeeEvaluationApprovalDetails.prototype, "level", void 0);
|
|
41
41
|
__decorate([
|
|
42
|
-
(0, typeorm_1.Column)({ type: 'integer', nullable:
|
|
43
|
-
__metadata("design:type",
|
|
42
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
43
|
+
__metadata("design:type", Object)
|
|
44
44
|
], EmployeeEvaluationApprovalDetails.prototype, "approver_role_id", void 0);
|
|
45
45
|
__decorate([
|
|
46
46
|
(0, typeorm_1.Column)({ type: 'integer', nullable: true }),
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel';
|
|
2
|
+
import { EmployeeEvaluationUsFeedback } from './EmployeeEvaluationModel';
|
|
3
|
+
export declare class EmployeeEvaluationPersonScore extends BaseModel {
|
|
4
|
+
request_id: number;
|
|
5
|
+
user_id: number;
|
|
6
|
+
us_feedback: EmployeeEvaluationUsFeedback | null;
|
|
7
|
+
is_rca: boolean;
|
|
8
|
+
total_score: number | null;
|
|
9
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.EmployeeEvaluationPersonScore = void 0;
|
|
13
|
+
const typeorm_1 = require("typeorm");
|
|
14
|
+
const BaseModel_1 = require("./BaseModel");
|
|
15
|
+
const EmployeeEvaluationModel_1 = require("./EmployeeEvaluationModel");
|
|
16
|
+
let EmployeeEvaluationPersonScore = class EmployeeEvaluationPersonScore extends BaseModel_1.BaseModel {
|
|
17
|
+
};
|
|
18
|
+
exports.EmployeeEvaluationPersonScore = EmployeeEvaluationPersonScore;
|
|
19
|
+
__decorate([
|
|
20
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: false }),
|
|
21
|
+
__metadata("design:type", Number)
|
|
22
|
+
], EmployeeEvaluationPersonScore.prototype, "request_id", void 0);
|
|
23
|
+
__decorate([
|
|
24
|
+
(0, typeorm_1.Column)({ type: 'integer', nullable: false }),
|
|
25
|
+
__metadata("design:type", Number)
|
|
26
|
+
], EmployeeEvaluationPersonScore.prototype, "user_id", void 0);
|
|
27
|
+
__decorate([
|
|
28
|
+
(0, typeorm_1.Column)({
|
|
29
|
+
type: 'enum',
|
|
30
|
+
enum: EmployeeEvaluationModel_1.EmployeeEvaluationUsFeedback,
|
|
31
|
+
nullable: true,
|
|
32
|
+
}),
|
|
33
|
+
__metadata("design:type", Object)
|
|
34
|
+
], EmployeeEvaluationPersonScore.prototype, "us_feedback", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, typeorm_1.Column)({ type: 'boolean', default: false, nullable: false }),
|
|
37
|
+
__metadata("design:type", Boolean)
|
|
38
|
+
], EmployeeEvaluationPersonScore.prototype, "is_rca", void 0);
|
|
39
|
+
__decorate([
|
|
40
|
+
(0, typeorm_1.Column)({ type: 'float', nullable: true }),
|
|
41
|
+
__metadata("design:type", Object)
|
|
42
|
+
], EmployeeEvaluationPersonScore.prototype, "total_score", void 0);
|
|
43
|
+
exports.EmployeeEvaluationPersonScore = EmployeeEvaluationPersonScore = __decorate([
|
|
44
|
+
(0, typeorm_1.Entity)({ name: 'employee_evaluation_person_scores' })
|
|
45
|
+
], EmployeeEvaluationPersonScore);
|
|
@@ -19,7 +19,7 @@ export declare class EmployeeEvaluationRequests extends BaseModel {
|
|
|
19
19
|
sub_service_id: number | null;
|
|
20
20
|
/** User who raised the request (e.g. HOD). */
|
|
21
21
|
user_id: number;
|
|
22
|
-
evaluation_year:
|
|
22
|
+
evaluation_year: string;
|
|
23
23
|
evaluation_period: string;
|
|
24
24
|
evaluation_month: number;
|
|
25
25
|
/** Scope: employees must belong to this department. */
|
|
@@ -31,4 +31,9 @@ export declare class EmployeeEvaluationRequests extends BaseModel {
|
|
|
31
31
|
status: EmployeeEvaluationRequestStatus;
|
|
32
32
|
workflow_execution_id: string | null;
|
|
33
33
|
comments: string | null;
|
|
34
|
+
total_score: number | null;
|
|
35
|
+
average_score: number | null;
|
|
36
|
+
employee_count: number;
|
|
37
|
+
/** Form structure snapshot at request creation (sections/questions). */
|
|
38
|
+
dynamic_evaluation_form: Record<string, unknown> | null;
|
|
34
39
|
}
|
|
@@ -51,8 +51,8 @@ __decorate([
|
|
|
51
51
|
__metadata("design:type", Number)
|
|
52
52
|
], EmployeeEvaluationRequests.prototype, "user_id", void 0);
|
|
53
53
|
__decorate([
|
|
54
|
-
(0, typeorm_1.Column)({ type: '
|
|
55
|
-
__metadata("design:type",
|
|
54
|
+
(0, typeorm_1.Column)({ type: 'varchar', length: 10, nullable: false }),
|
|
55
|
+
__metadata("design:type", String)
|
|
56
56
|
], EmployeeEvaluationRequests.prototype, "evaluation_year", void 0);
|
|
57
57
|
__decorate([
|
|
58
58
|
(0, typeorm_1.Column)({ type: 'varchar', length: 120, nullable: false }),
|
|
@@ -99,6 +99,22 @@ __decorate([
|
|
|
99
99
|
(0, typeorm_1.Column)({ type: 'text', nullable: true }),
|
|
100
100
|
__metadata("design:type", Object)
|
|
101
101
|
], EmployeeEvaluationRequests.prototype, "comments", void 0);
|
|
102
|
+
__decorate([
|
|
103
|
+
(0, typeorm_1.Column)({ type: 'float', nullable: true }),
|
|
104
|
+
__metadata("design:type", Object)
|
|
105
|
+
], EmployeeEvaluationRequests.prototype, "total_score", void 0);
|
|
106
|
+
__decorate([
|
|
107
|
+
(0, typeorm_1.Column)({ type: 'float', nullable: true }),
|
|
108
|
+
__metadata("design:type", Object)
|
|
109
|
+
], EmployeeEvaluationRequests.prototype, "average_score", void 0);
|
|
110
|
+
__decorate([
|
|
111
|
+
(0, typeorm_1.Column)({ type: 'int', default: 0, nullable: false }),
|
|
112
|
+
__metadata("design:type", Number)
|
|
113
|
+
], EmployeeEvaluationRequests.prototype, "employee_count", void 0);
|
|
114
|
+
__decorate([
|
|
115
|
+
(0, typeorm_1.Column)({ type: 'jsonb', nullable: true }),
|
|
116
|
+
__metadata("design:type", Object)
|
|
117
|
+
], EmployeeEvaluationRequests.prototype, "dynamic_evaluation_form", void 0);
|
|
102
118
|
exports.EmployeeEvaluationRequests = EmployeeEvaluationRequests = __decorate([
|
|
103
119
|
(0, typeorm_1.Entity)({ name: 'employee_evaluation_requests' })
|
|
104
120
|
], EmployeeEvaluationRequests);
|
|
@@ -6,10 +6,15 @@ import { BaseModel } from './BaseModel';
|
|
|
6
6
|
export declare class EvaluationEligibilitySetting extends BaseModel {
|
|
7
7
|
department_id: number;
|
|
8
8
|
section_id: number;
|
|
9
|
-
/**
|
|
10
|
-
|
|
11
|
-
|
|
9
|
+
/** Evaluation window start month (1–12). */
|
|
10
|
+
from_month: number;
|
|
11
|
+
/** Evaluation window end month (1–12), inclusive. */
|
|
12
|
+
to_month: number;
|
|
13
|
+
/** Last day of the evaluation month (1–31) when submissions close. */
|
|
14
|
+
evaluation_end_date: number;
|
|
12
15
|
is_active: boolean;
|
|
16
|
+
/** Maximum employees allowed in one evaluation request for this dept/section window. */
|
|
17
|
+
max_employees_per_request: number;
|
|
13
18
|
employees?: EvaluationEligibilitySettingEmployee[];
|
|
14
19
|
}
|
|
15
20
|
export declare class EvaluationEligibilitySettingEmployee extends BaseModel {
|
|
@@ -30,15 +30,23 @@ __decorate([
|
|
|
30
30
|
__decorate([
|
|
31
31
|
(0, typeorm_1.Column)({ type: 'int' }),
|
|
32
32
|
__metadata("design:type", Number)
|
|
33
|
-
], EvaluationEligibilitySetting.prototype, "
|
|
33
|
+
], EvaluationEligibilitySetting.prototype, "from_month", void 0);
|
|
34
34
|
__decorate([
|
|
35
|
-
(0, typeorm_1.Column)({ type: '
|
|
36
|
-
__metadata("design:type",
|
|
35
|
+
(0, typeorm_1.Column)({ type: 'int' }),
|
|
36
|
+
__metadata("design:type", Number)
|
|
37
|
+
], EvaluationEligibilitySetting.prototype, "to_month", void 0);
|
|
38
|
+
__decorate([
|
|
39
|
+
(0, typeorm_1.Column)({ type: 'int' }),
|
|
40
|
+
__metadata("design:type", Number)
|
|
37
41
|
], EvaluationEligibilitySetting.prototype, "evaluation_end_date", void 0);
|
|
38
42
|
__decorate([
|
|
39
43
|
(0, typeorm_1.Column)({ type: 'boolean', default: true }),
|
|
40
44
|
__metadata("design:type", Boolean)
|
|
41
45
|
], EvaluationEligibilitySetting.prototype, "is_active", void 0);
|
|
46
|
+
__decorate([
|
|
47
|
+
(0, typeorm_1.Column)({ type: 'int', default: 50 }),
|
|
48
|
+
__metadata("design:type", Number)
|
|
49
|
+
], EvaluationEligibilitySetting.prototype, "max_employees_per_request", void 0);
|
|
42
50
|
__decorate([
|
|
43
51
|
(0, typeorm_1.OneToMany)(() => EvaluationEligibilitySettingEmployee, (e) => e.evaluation_eligibility_setting),
|
|
44
52
|
__metadata("design:type", Array)
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BaseModel } from './BaseModel';
|
|
2
|
+
import { EvaluationFormSection } from './EvaluationFormSectionModel';
|
|
3
|
+
export declare enum EvaluationFormType {
|
|
4
|
+
EMPLOYEE_EVALUATION = "employee_evaluation",
|
|
5
|
+
DEPARTMENT = "department"
|
|
6
|
+
}
|
|
7
|
+
export declare class EvaluationForm extends BaseModel {
|
|
8
|
+
form_name: string;
|
|
9
|
+
form_code: string;
|
|
10
|
+
form_type: EvaluationFormType;
|
|
11
|
+
department_id: number | null;
|
|
12
|
+
section_id: number | null;
|
|
13
|
+
min_score: number;
|
|
14
|
+
max_score: number;
|
|
15
|
+
is_active: boolean;
|
|
16
|
+
sections?: EvaluationFormSection[];
|
|
17
|
+
}
|