Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mySkill-x
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Registry
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
angular
mySkill-x
Commits
77d3f41a
Commit
77d3f41a
authored
Mar 25, 2025
by
Nattana Chaiyamat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
PMS
parent
5beee0d8
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
361 additions
and
185 deletions
+361
-185
pms-evalution.component.html
...ce-evaluation/pms-evaluation/pms-evalution.component.html
+139
-125
pms-evalution.component.ts
...ance-evaluation/pms-evaluation/pms-evalution.component.ts
+197
-57
supervisor-evaluation.component.html
...upervisor-evaluation/supervisor-evaluation.component.html
+6
-2
appraisal-pms-form.model.ts
src/app/shared/model/appraisal-pms-form.model.ts
+10
-0
appraisal-subordinate.model.ts
src/app/shared/model/appraisal-subordinate.model.ts
+5
-1
pms-group-grade.service.ts
src/app/shared/services/pms-group-grade.service.ts
+4
-0
No files found.
src/app/components/performance-evaluation/pms-evaluation/pms-evalution.component.html
View file @
77d3f41a
...
...
@@ -125,6 +125,7 @@
<ng-container
*
ngIf=
"appraisalPms?.data?.part7Detail?.length then part7 else noData"
></ng-container>
<ng-container
*
ngTemplateOutlet=
"part8"
></ng-container>
<ng-container
*
ngTemplateOutlet=
"part9"
></ng-container>
<ng-container
*
ngTemplateOutlet=
"part10"
></ng-container>
...
...
@@ -372,37 +373,37 @@
{{item.weight}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part1radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part1radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part1radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part1radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part1radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part1radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part1radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part1radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part1radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part1radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part1radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
...
...
@@ -464,7 +465,7 @@
ร้อยละของปัจจัย
</td>
<td
class=
"align-start !white-space-normal text-center"
>
-
{{appraisalPms.data?.part1Percentage}}
</td>
<td
class=
"align-start !white-space-normal text-end"
colspan=
"7"
>
คะแนนที่ได้คิดเป็นร้อยละ
...
...
@@ -557,37 +558,37 @@
{{item.weight}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part2radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part2radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part2radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part2radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part2radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part2radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part2radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part2radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part2radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part2radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part2radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
...
...
@@ -643,7 +644,7 @@
ร้อยละของปัจจัย
</td>
<td
class=
"align-start !white-space-normal text-center"
>
-
{{appraisalPms.data?.part2Percentage}}
</td>
<td
class=
"align-start !white-space-normal text-end"
colspan=
"7"
>
คะแนนที่ได้คิดเป็นร้อยละ
...
...
@@ -735,37 +736,37 @@
{{item.weight}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part3radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part3radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part3radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part3radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part3radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part3radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part3radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part3radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part3radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part3radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part3radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
...
...
@@ -821,7 +822,7 @@
ร้อยละของปัจจัย
</td>
<td
class=
"align-start !white-space-normal text-center"
>
-
{{appraisalPms.data?.part3Percentage}}
</td>
<td
class=
"align-start !white-space-normal text-end"
colspan=
"7"
>
คะแนนที่ได้คิดเป็นร้อยละ
...
...
@@ -965,7 +966,7 @@
ร้อยละของปัจจัย
</td>
<td
class=
"align-start !white-space-normal text-center"
>
-
{{appraisalPms.data?.part4Percentage}}
</td>
<td
class=
"align-start !white-space-normal text-end"
colspan=
"7"
>
คะแนนที่ได้คิดเป็นร้อยละ
...
...
@@ -1054,37 +1055,37 @@
{{item.weight}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part5radioA
'+
i
"
(
click
)="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore=5:item.pmsWorkingTimScoreBoss=5
"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part5radioA
'+
i
"
(
click
)="
setScorePart5
(
item
,
5
)
"
[
checked
]="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore==5:item.pmsWorkingTimScoreBoss==5"
><br>
{{item.targetADetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part5radioB
'+
i
"
(
click
)="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore=4:item.pmsWorkingTimScoreBoss=4
"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part5radioB
'+
i
"
(
click
)="
setScorePart5
(
item
,
4
)
"
[
checked
]="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore==4:item.pmsWorkingTimScoreBoss==4"
><br>
{{item.targetBDetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part5radioC
'+
i
"
(
click
)="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore=3:item.pmsWorkingTimScoreBoss=3
"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part5radioC
'+
i
"
(
click
)="
setScorePart5
(
item
,
3
)
"
[
checked
]="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore==3:item.pmsWorkingTimScoreBoss==3"
><br>
{{item.targetCDetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part5radioD
'+
i
"
(
click
)="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore=2:item.pmsWorkingTimScoreBoss=2
"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part5radioD
'+
i
"
(
click
)="
setScorePart5
(
item
,
2
)
"
[
checked
]="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore==2:item.pmsWorkingTimScoreBoss==2"
><br>
{{item.targetDDetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part5radioE
'+
i
"
(
click
)="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore=1:item.pmsWorkingTimScoreBoss=1
"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part5radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part5radioE
'+
i
"
(
click
)="
setScorePart5
(
item
,
1
)
"
[
checked
]="
evaluaterId=
=evaluateeId?item.pmsWorkingTimScore==1:item.pmsWorkingTimScoreBoss==1"
><br>
{{item.targetEDetail}}
</td>
...
...
@@ -1137,7 +1138,7 @@
ร้อยละของปัจจัย
</td>
<td
class=
"align-start !white-space-normal text-center"
>
-
{{appraisalPms.data?.part5Percentage}}
</td>
<td
class=
"align-start !white-space-normal text-end"
colspan=
"7"
>
คะแนนที่ได้คิดเป็นร้อยละ
...
...
@@ -1231,37 +1232,37 @@
{{item.weight}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part6radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part6radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part6radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part6radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part6radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part6radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part6radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part6radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part6radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part6radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part6radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
...
...
@@ -1321,7 +1322,7 @@
ร้อยละของปัจจัย
</td>
<td
class=
"align-start !white-space-normal text-center"
>
-
{{appraisalPms.data?.part6Percentage}}
</td>
<td
class=
"align-start !white-space-normal text-end"
colspan=
"7"
>
คะแนนที่ได้คิดเป็นร้อยละ
...
...
@@ -1416,37 +1417,37 @@
{{item.weight}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part7radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part7radioA
'+
i
"
(
click
)="
setScore
(
item
,
5
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"
><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part7radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part7radioB
'+
i
"
(
click
)="
setScore
(
item
,
4
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"
><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part7radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part7radioC
'+
i
"
(
click
)="
setScore
(
item
,
3
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"
><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part7radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part7radioD
'+
i
"
(
click
)="
setScore
(
item
,
2
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"
><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}}
</td>
<td
class=
"align-start text-center !white-space-normal "
>
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio"
[
id
]="'
part7radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
<input
[
class
.
cursor-pointer
]="
canEdit
"
[
class
.
cursor-not-allowed
]="!
canEdit
"
[
disabled
]="!
canEdit
"
type=
"radio"
[
name
]="'
part7radio
'+
i
"
class=
"ti-form-radio
"
[
id
]="'
part7radioE
'+
i
"
(
click
)="
setScore
(
item
,
1
)"
[
checked
]="
evaluaterId=
=evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"
><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
...
...
@@ -1506,7 +1507,7 @@
ร้อยละของปัจจัย
</td>
<td
class=
"align-start !white-space-normal text-center"
>
-
{{appraisalPms.data?.part7Percentage}}
</td>
<td
class=
"align-start !white-space-normal text-end"
colspan=
"7"
>
คะแนนที่ได้คิดเป็นร้อยละ
...
...
@@ -1563,8 +1564,8 @@
</ng-container>
</tr>
</thead>
<tbody
*
ngIf=
"data8List
Filter()
.length"
>
<tr
*
ngFor=
"let item of data8List
Filter()
;let i = index"
>
<tbody
*
ngIf=
"data8List.length"
>
<tr
*
ngFor=
"let item of data8List;let i = index"
>
<td
class=
"align-start !white-space-normal"
>
{{item.evaluationFactor}}
</td>
...
...
@@ -1580,11 +1581,7 @@
<td
class=
"align-start !white-space-normal text-center"
>
{{item.netScore}}
</td>
<td
class=
"align-start !white-space-normal text-center"
>
<span
*
ngIf=
"item.Level"
>
<i
class=
"ti ti-star"
></i>
</span>
{{item.Level}}
</td>
<td></td>
</tr>
<tr
class=
"bg-table-soft-gray"
>
<td
class=
"align-start text-center"
>
...
...
@@ -1593,15 +1590,25 @@
<td
class=
"align-start text-center"
>
</td>
<td
class=
"align-start text-center"
>
100
{{calFactors()}}
</td>
<td
class=
"align-start text-center"
>
74.05
{{calScoreObtained()}}
</td>
<td
class=
"align-start text-center"
>
70.04
</td>
<td
class=
"align-start !white-space-normal text-center"
>
{{calNetScore()}}
</td>
<td
class=
"align-start !white-space-normal"
*
ngIf=
"appraisalPms.data"
>
<ng-container
*
ngFor=
"let item of groupGrade.dataList; let i=index"
>
<span
style=
"display:flex;align-items:center"
class=
"mt-2"
>
<i
*
ngIf=
"appraisalPms.data.gradeScore==item.gradeDetail"
class=
"ri ri-star-fill pr-10px"
></i>
<i
*
ngIf=
"appraisalPms.data.gradeScore!=item.gradeDetail"
class=
"ti ti-star pr-10px"
></i>
{{item.gradeDetail}} = {{item.tdesc}}
<br>
</span>
</ng-container>
</td>
</tr>
</tbody>
...
...
@@ -1637,58 +1644,64 @@
</div>
<div
class=
"pb-2rem"
*
ngIf=
"!part9show"
></div>
<div
class=
"pb-2rem px-2rem"
*
ngIf=
"part9show"
>
<div
class=
"pb-1rem"
>
<div
class=
"pb-1rem"
*
ngIf=
"appraisalPms.data"
>
<div
class=
"pb-2 grid grid-cols-2"
>
<div
class=
"col-span-1 grid-cols-1 text-gray-400"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
style=
"min-height: 55px;"
>
พฤติกรรมที่เป็นจุดแข็ง (EMPLOYEE STRENGTHS AND ACCOMPLISHMENTS)
</div>
<div
class=
"col-span-1 p-2"
>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
></textarea>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
[(
ngModel
)]="
appraisalPms
.
data
.
employeeStrengths
"
></textarea>
</div>
</div>
<div
class=
"col-span-1 grid-cols-1 text-gray-400"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
>
พฤติกรรมที่เป็นจุดแข็ง (EMPLOYEE STRENGTHS AND ACCOMPLISHMENTS
)
<div
class=
"col-span-1 bg-soft-secondary p-2"
style=
"min-height: 55px;"
>
หัวข้อที่ต้องเรียนรู้เพิ่มเติม (สำหรับจุดแข็ง
)
</div>
<div
class=
"col-span-1 p-2"
>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
></textarea>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
[(
ngModel
)]="
appraisalPms
.
data
.
learningTopicsForStrengths
"
></textarea>
</div>
</div>
</div>
<div
class=
"pb-2 grid grid-cols-2"
>
<div
class=
"col-span-1 grid-cols-1 text-gray-400"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
style=
"min-height: 55px;"
>
พฤติกรรมที่เป็นจุดอ่อน (PERFORMANCE AREAS WHICH NEED IMPROVEMENT)
</div>
<div
class=
"col-span-1 p-2"
>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
></textarea>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
[(
ngModel
)]="
appraisalPms
.
data
.
performanceWeaknesses
"
></textarea>
</div>
</div>
<div
class=
"col-span-1 grid-cols-1 text-gray-400"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
style=
"min-height: 55px;"
>
หัวข้อที่ต้องเรียนรู้เพิ่มเติม (สำหรับจุดอ่อน)
</div>
<div
class=
"col-span-1 p-2"
>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
></textarea>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
[(
ngModel
)]="
appraisalPms
.
data
.
learningTopicsForWeaknesses
"
></textarea>
</div>
</div>
</div>
<div
class=
"pb-2 grid grid-cols-2"
>
<div
class=
"col-span-1 grid-cols-1 text-gray-400"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
style=
"min-height: 55px;"
>
พฤติกรรมที่ควรได้รับการพัฒนา (PLAN OF ACTION TOWARD IMPROVED PERFORMANCE)
</div>
<div
class=
"col-span-1 p-2"
>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
></textarea>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
[(
ngModel
)]="
appraisalPms
.
data
.
improvementPlan
"
></textarea>
</div>
</div>
<div
class=
"col-span-1 grid-cols-1 text-gray-400"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
>
<div
class=
"col-span-1 bg-soft-secondary p-2"
style=
"min-height: 55px;"
>
หัวข้อที่ต้องเรียนรู้เพิ่มเติม (สำหรับพฤติกรรมที่ควรได้รับการพัฒนา)
</div>
<div
class=
"col-span-1 p-2"
>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
></textarea>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
[(
ngModel
)]="
appraisalPms
.
data
.
learningTopicsForImprovement
"
></textarea>
</div>
</div>
</div>
...
...
@@ -1722,8 +1735,8 @@
</div>
<div
class=
"pb-2rem"
*
ngIf=
"!part10show"
></div>
<div
class=
"pb-2rem px-2rem"
*
ngIf=
"part10show"
>
<div
class=
"pb-1rem p-2"
>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
></textarea>
<div
class=
"pb-1rem p-2"
*
ngIf=
"appraisalPms.data"
>
<textarea
type=
"text"
rows=
"2"
class=
"ti-form-input"
[(
ngModel
)]="
appraisalPms
.
data
.
cfrDetail
"
></textarea>
</div>
</div>
</ng-template>
\ No newline at end of file
src/app/components/performance-evaluation/pms-evaluation/pms-evalution.component.ts
View file @
77d3f41a
import
{
ChangeDetectorRef
,
Component
,
EventEmitter
,
Input
,
Output
}
from
'@angular/core'
;
import
{
AppraisalPmsFormModel
}
from
'src/app/shared/model/appraisal-pms-form.model'
;
import
{
CompetencyGradeModel
,
MyCompetencyGradeModel
}
from
'src/app/shared/model/competency-grades.model'
;
import
{
AppraisalService
}
from
'src/app/shared/services/appraisal.service'
;
import
{
EmployeeService
}
from
'src/app/shared/services/employee.service'
;
import
{
PmsGroupGradeService
}
from
'src/app/shared/services/pms-group-grade.service'
;
import
{
SettingAssessmentService
}
from
'src/app/shared/services/setting-assessment.service'
;
import
Swal
from
'sweetalert2'
;
export
interface
DataModel7
{
export
interface
Part8Model
{
id
:
number
evaluationFactor
:
string
,
rawScore
:
string
,
factors
:
string
scoreObtained
:
string
netScore
:
string
Level
:
string
rawScore
:
number
,
factors
:
number
scoreObtained
:
number
netScore
:
number
}
export
interface
LevelStarModel
{
evaluationFactor
:
string
,
rawScore
:
number
,
factors
:
number
scoreObtained
:
number
netScore
:
number
}
@
Component
({
selector
:
'app-pms-evalution'
,
templateUrl
:
'./pms-evalution.component.html'
,
...
...
@@ -27,56 +37,58 @@ export class PmsEvalutionComponent {
part6show
=
true
part7show
=
true
part8show
=
true
data8List
:
DataModel7
[]
=
[{
evaluationFactor
:
"Part 1 : ประเมินผลการปฏิบัติงานตามนโยบายบริษัท (Hoshin)"
,
rawScore
:
"100"
,
factors
:
"15.00"
,
scoreObtained
:
"80.00"
,
netScore
:
"12"
,
Level
:
"A = ดีเลิศ (Outstanding) >91"
data8List
:
Part8Model
[]
=
[{
id
:
1
,
evaluationFactor
:
"Part 1 : ประเมินผลการปฏิบัติงานตามนโยบายบริษัท (Corporate KPI)"
,
rawScore
:
100
,
factors
:
0
,
scoreObtained
:
0
,
netScore
:
0
,
},
{
id
:
2
,
evaluationFactor
:
"Part 2 : ประเมินผลการปฏิบัติงานประจำ(Department KPI)"
,
rawScore
:
100
,
factors
:
0
,
scoreObtained
:
0
,
netScore
:
0
,
},
{
evaluationFactor
:
"Part 2 : ประเมินผลการปฏิบัติงานประจำ (Job based KPIs)"
,
rawScore
:
"100
"
,
factors
:
"30.00"
,
scoreObtained
:
"74.29"
,
netScore
:
"22.29"
,
Level
:
"B = ดีมาก (Above Expectations)>81-90"
id
:
3
,
evaluationFactor
:
"Part 3 : ประเมินผลการปฏิบัติงานประจำ(Individual KPI)
"
,
rawScore
:
100
,
factors
:
0
,
scoreObtained
:
0
,
netScore
:
0
,
},
{
evaluationFactor
:
"Part 3 : ประเมินผลสมรรถนะที่สนับสนุนการปฏิบัติงาน (Skill Map)"
,
rawScore
:
"100
"
,
factors
:
"35.00"
,
scoreObtained
:
"60.00"
,
netScore
:
"21"
,
Level
:
"C = ดี (Meet Expectations)>71-80"
id
:
4
,
evaluationFactor
:
"Part 4 : ประเมินผลสมรรถนะที่สนับสนุนการปฏิบัติงาน(Competency)
"
,
rawScore
:
100
,
factors
:
0
,
scoreObtained
:
0
,
netScore
:
0
,
},
{
evaluationFactor
:
"Part 4 : จำนวนการเข้างาน( Time Attendance)"
,
rawScore
:
"100
"
,
factors
:
"10.00"
,
scoreObtained
:
"65.00"
,
netScore
:
"6.5"
,
Level
:
"D = ควรปรับปรุง (Below Expectations)>61-70"
id
:
5
,
evaluationFactor
:
"Part 5 : จำนวนการเข้างาน( Time Attendance)
"
,
rawScore
:
100
,
factors
:
0
,
scoreObtained
:
0
,
netScore
:
0
,
},
{
evaluationFactor
:
"Part 5: งานที่ได้รับมอบหมายเพิ่มเติม (Cross Functional Project Assignment)"
,
rawScore
:
"100
"
,
factors
:
"5.00"
,
scoreObtained
:
"80.00"
,
netScore
:
"4"
,
Level
:
"E = ไม่น่าพอใจ (Unsatisfactory) ≤60"
id
:
6
,
evaluationFactor
:
"Part 6: งานที่ได้รับมอบหมายเพิ่มเติม ( Cross Functional Project Assignment)
"
,
rawScore
:
100
,
factors
:
0
,
scoreObtained
:
0
,
netScore
:
0
,
},
{
evaluationFactor
:
"Part 6: กิจกรรมพิเศษ (Special Activities)"
,
rawScore
:
"100
"
,
factors
:
"5.00"
,
scoreObtained
:
"85.00"
,
netScore
:
"4.25"
,
Level
:
""
id
:
7
,
evaluationFactor
:
"Part 7: กิจกรรมพิเศษ( Special Activities)
"
,
rawScore
:
100
,
factors
:
0
,
scoreObtained
:
0
,
netScore
:
0
,
}]
part9show
=
true
part10show
=
true
data8ListFilter
()
{
return
this
.
data8List
}
canEdit
=
false
canSave
=
false
currentDate
=
new
Date
()
...
...
@@ -88,21 +100,75 @@ export class PmsEvalutionComponent {
@
Input
()
masfromStatusType
=
""
@
Output
()
sendReturnPath
:
EventEmitter
<
any
>
=
new
EventEmitter
<
any
>
();
appraisalPms
:
{
loading
:
boolean
,
data
?:
AppraisalPmsFormModel
}
=
{
loading
:
false
,
data
:
undefined
}
groupGrade
:
{
loading
:
boolean
,
dataList
:
CompetencyGradeModel
[]
}
=
{
loading
:
false
,
dataList
:
[]
}
constructor
(
private
appraisalService
:
AppraisalService
,
private
pmsGroupGradeService
:
PmsGroupGradeService
,
private
employeeService
:
EmployeeService
,
private
cdr
:
ChangeDetectorRef
,
private
settingAssessmentService
:
SettingAssessmentService
)
{
}
ngOnInit
():
void
{
this
.
getPmsGroupGradeList
()
this
.
getAppraisalPmsForm
()
}
getPmsGroupGradeList
()
{
this
.
groupGrade
.
loading
=
true
this
.
pmsGroupGradeService
.
getGradeList
().
subscribe
({
next
:
response
=>
{
this
.
groupGrade
.
dataList
=
response
.
map
(
x
=>
new
MyCompetencyGradeModel
(
x
))
this
.
groupGrade
.
loading
=
false
this
.
cdr
.
detectChanges
()
},
error
:
error
=>
{
this
.
groupGrade
.
loading
=
false
this
.
cdr
.
detectChanges
()
}
})
}
getAppraisalPmsForm
()
{
this
.
appraisalPms
.
loading
=
true
this
.
appraisalService
.
getFormPmsById
(
'testlvl3'
,
'10000003'
).
subscribe
({
this
.
appraisalService
.
getFormPmsById
(
this
.
evaluationRoundId
,
this
.
evaluateeId
).
subscribe
({
next
:
response
=>
{
console
.
log
(
" 🐒 response:"
,
response
)
this
.
appraisalPms
.
data
=
JSON
.
parse
(
JSON
.
stringify
(
response
))
this
.
data8List
.
forEach
((
x
,
i
)
=>
{
if
(
x
.
id
==
1
&&
this
.
appraisalPms
.
data
?.
part1Percentage
)
{
x
.
factors
=
this
.
appraisalPms
.
data
.
part1Percentage
}
else
if
(
x
.
id
==
2
&&
this
.
appraisalPms
.
data
?.
part2Percentage
)
{
x
.
factors
=
this
.
appraisalPms
.
data
.
part2Percentage
}
else
if
(
x
.
id
==
3
&&
this
.
appraisalPms
.
data
?.
part3Percentage
)
{
x
.
factors
=
this
.
appraisalPms
.
data
.
part3Percentage
}
else
if
(
x
.
id
==
4
&&
this
.
appraisalPms
.
data
?.
part4Percentage
)
{
x
.
factors
=
this
.
appraisalPms
.
data
.
part4Percentage
}
else
if
(
x
.
id
==
5
&&
this
.
appraisalPms
.
data
?.
part5Percentage
)
{
x
.
factors
=
this
.
appraisalPms
.
data
.
part5Percentage
}
else
if
(
x
.
id
==
6
&&
this
.
appraisalPms
.
data
?.
part6Percentage
)
{
x
.
factors
=
this
.
appraisalPms
.
data
.
part6Percentage
}
else
if
(
x
.
id
==
7
&&
this
.
appraisalPms
.
data
?.
part7Percentage
)
{
x
.
factors
=
this
.
appraisalPms
.
data
.
part7Percentage
}
})
if
(
!
this
.
appraisalPms
.
data
?.
part1Detail
.
length
)
{
this
.
data8List
=
this
.
data8List
.
filter
(
item
=>
item
.
id
!==
1
)
}
if
(
!
this
.
appraisalPms
.
data
?.
part2Detail
.
length
)
{
this
.
data8List
=
this
.
data8List
.
filter
(
item
=>
item
.
id
!==
2
)
}
if
(
!
this
.
appraisalPms
.
data
?.
part3Detail
.
length
)
{
this
.
data8List
=
this
.
data8List
.
filter
(
item
=>
item
.
id
!==
3
)
}
if
(
!
this
.
appraisalPms
.
data
?.
part4Detail
.
length
)
{
this
.
data8List
=
this
.
data8List
.
filter
(
item
=>
item
.
id
!==
4
)
}
if
(
!
this
.
appraisalPms
.
data
?.
part5Detail
.
length
)
{
this
.
data8List
=
this
.
data8List
.
filter
(
item
=>
item
.
id
!==
5
)
}
if
(
!
this
.
appraisalPms
.
data
?.
part6Detail
.
length
)
{
this
.
data8List
=
this
.
data8List
.
filter
(
item
=>
item
.
id
!==
6
)
}
if
(
!
this
.
appraisalPms
.
data
?.
part7Detail
.
length
)
{
this
.
data8List
=
this
.
data8List
.
filter
(
item
=>
item
.
id
!==
7
)
}
this
.
changePercentage
()
if
(
this
.
appraisalPms
.
data
)
{
this
.
canSave
=
(
this
.
appraisalPms
.
data
.
currentStep
==
this
.
appraisalPms
.
data
.
checkStep
)
&&
(
this
.
masfromStatusType
!=
'Boss_finish'
&&
this
.
masfromStatusType
!=
'Not_evaluating_yet'
)
this
.
canEdit
=
(
this
.
appraisalPms
.
data
.
currentStep
==
this
.
appraisalPms
.
data
.
checkStep
)
...
...
@@ -172,13 +238,13 @@ export class PmsEvalutionComponent {
}
calExpectationScore
(
data
?:
any
)
{
if
(
data
)
{
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
(
this
.
evaluaterId
==
this
.
evaluateeId
?
item
.
scoreTopicExpectation
:
item
.
scoreTopicExpectationBoss
)
,
0
).
toFixed
(
2
);
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
scoreTopicExpectationBoss
,
0
).
toFixed
(
2
);
}
return
"0.00"
}
calExpectationTotalScore
(
data
?:
any
)
{
if
(
data
)
{
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
(
(
this
.
evaluaterId
==
this
.
evaluateeId
?
item
.
scoreTopicExpectation
:
item
.
scoreTopicExpectationBoss
)
*
item
.
weight
),
0
).
toFixed
(
2
);
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
(
item
.
scoreTopicExpectationBoss
*
item
.
weight
),
0
).
toFixed
(
2
);
}
return
"0.00"
}
...
...
@@ -188,6 +254,69 @@ export class PmsEvalutionComponent {
}
return
"0.00"
}
changePercentage
()
{
this
.
data8List
.
forEach
(
x
=>
{
if
(
x
.
id
==
1
&&
this
.
appraisalPms
.
data
?.
part1Detail
)
{
x
.
scoreObtained
=
+
this
.
calPercentage
(
this
.
calExpectationTotalScore
(
this
.
appraisalPms
.
data
?.
part1Detail
),
this
.
calRawScore
(
this
.
appraisalPms
.
data
?.
part1Detail
))
if
(
this
.
appraisalPms
.
data
)
{
this
.
appraisalPms
.
data
.
part1SumScore
=
x
.
scoreObtained
}
}
else
if
(
x
.
id
==
2
&&
this
.
appraisalPms
.
data
?.
part2Detail
)
{
x
.
scoreObtained
=
+
this
.
calPercentage
(
this
.
calExpectationTotalScore
(
this
.
appraisalPms
.
data
?.
part2Detail
),
this
.
calRawScore
(
this
.
appraisalPms
.
data
?.
part2Detail
))
if
(
this
.
appraisalPms
.
data
)
{
this
.
appraisalPms
.
data
.
part2SumScore
=
x
.
scoreObtained
}
}
else
if
(
x
.
id
==
3
&&
this
.
appraisalPms
.
data
?.
part3Detail
)
{
x
.
scoreObtained
=
+
this
.
calPercentage
(
this
.
calExpectationTotalScore
(
this
.
appraisalPms
.
data
?.
part3Detail
),
this
.
calRawScore
(
this
.
appraisalPms
.
data
?.
part3Detail
))
if
(
this
.
appraisalPms
.
data
)
{
this
.
appraisalPms
.
data
.
part3SumScore
=
x
.
scoreObtained
}
}
else
if
(
x
.
id
==
4
&&
this
.
appraisalPms
.
data
?.
part4Detail
)
{
x
.
scoreObtained
=
+
this
.
calPercentage
(
this
.
calExpectationTotalScorePart4
(
this
.
appraisalPms
.
data
?.
part4Detail
),
this
.
calRawScorePart4
(
this
.
appraisalPms
.
data
?.
part4Detail
))
if
(
this
.
appraisalPms
.
data
)
{
this
.
appraisalPms
.
data
.
part4SumScore
=
x
.
scoreObtained
}
}
else
if
(
x
.
id
==
5
&&
this
.
appraisalPms
.
data
?.
part5Detail
)
{
x
.
scoreObtained
=
+
this
.
calPercentage
(
this
.
calExpectationTotalScorePart5
(
this
.
appraisalPms
.
data
?.
part5Detail
),
this
.
calRawScorePart5
(
this
.
appraisalPms
.
data
?.
part5Detail
))
if
(
this
.
appraisalPms
.
data
)
{
this
.
appraisalPms
.
data
.
part5SumScore
=
x
.
scoreObtained
}
}
else
if
(
x
.
id
==
6
&&
this
.
appraisalPms
.
data
?.
part6Detail
)
{
x
.
scoreObtained
=
+
this
.
calPercentage
(
this
.
calExpectationTotalScore
(
this
.
appraisalPms
.
data
?.
part6Detail
),
this
.
calRawScore
(
this
.
appraisalPms
.
data
?.
part6Detail
))
if
(
this
.
appraisalPms
.
data
)
{
this
.
appraisalPms
.
data
.
part6SumScore
=
x
.
scoreObtained
}
}
else
if
(
x
.
id
==
7
&&
this
.
appraisalPms
.
data
?.
part7Detail
)
{
x
.
scoreObtained
=
+
this
.
calPercentage
(
this
.
calExpectationTotalScore
(
this
.
appraisalPms
.
data
?.
part7Detail
),
this
.
calRawScore
(
this
.
appraisalPms
.
data
?.
part7Detail
))
if
(
this
.
appraisalPms
.
data
)
{
this
.
appraisalPms
.
data
.
part7SumScore
=
x
.
scoreObtained
}
}
x
.
netScore
=
x
.
factors
/
100
*
x
.
scoreObtained
})
this
.
setGradeScore
()
}
setGradeScore
()
{
const
gradeScore
=
this
.
groupGrade
.
dataList
.
find
(
item
=>
Math
.
ceil
(
+
this
.
calNetScore
())
>=
item
.
gradeMinScore
&&
Math
.
ceil
(
+
this
.
calNetScore
())
<=
item
.
gradeMaxScore
);
if
(
this
.
appraisalPms
.
data
&&
gradeScore
)
{
this
.
appraisalPms
.
data
.
gradeScore
=
gradeScore
.
gradeDetail
}
}
calFactors
()
{
return
this
.
data8List
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
factors
,
0
).
toFixed
(
2
);
}
calScoreObtained
()
{
return
this
.
data8List
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
scoreObtained
,
0
).
toFixed
(
2
);
}
calNetScore
()
{
if
(
this
.
appraisalPms
.
data
)
{
this
.
appraisalPms
.
data
.
netScore
=
+
(
this
.
data8List
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
netScore
,
0
).
toFixed
(
2
));
return
this
.
appraisalPms
.
data
.
netScore
}
return
"0.00"
}
calAverage
(
score
:
number
)
{
const
roundedScore
=
score
%
1
<=
0.5
?
Math
.
floor
(
score
)
:
Math
.
round
(
score
);
...
...
@@ -245,16 +374,28 @@ export class PmsEvalutionComponent {
}
calExpectationScorePart5
(
data
?:
any
)
{
if
(
data
)
{
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
(
this
.
evaluaterId
==
this
.
evaluateeId
?
item
.
pmsWorkingTimScore
:
item
.
pmsWorkingTimScoreBoss
)
,
0
).
toFixed
(
2
);
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
item
.
pmsWorkingTimScoreBoss
,
0
).
toFixed
(
2
);
}
return
"0.00"
}
calExpectationTotalScorePart5
(
data
?:
any
)
{
if
(
data
)
{
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
(
(
this
.
evaluaterId
==
this
.
evaluateeId
?
item
.
pmsWorkingTimScore
:
item
.
pmsWorkingTimScoreBoss
)
*
item
.
weight
),
0
).
toFixed
(
2
);
return
data
.
reduce
((
sum
:
number
,
item
:
any
)
=>
sum
+
(
item
.
pmsWorkingTimScoreBoss
*
item
.
weight
),
0
).
toFixed
(
2
);
}
return
"0.00"
}
setScorePart5
(
item
:
any
,
score
:
number
)
{
if
(
this
.
canEdit
)
{
if
(
this
.
evaluaterId
==
this
.
evaluateeId
)
{
item
.
pmsWorkingTimScore
=
score
item
.
pmsWorkingTimScoreBoss
=
score
}
else
{
item
.
pmsWorkingTimScoreBoss
=
score
}
this
.
changePercentage
()
}
}
numberFixed2
(
data
?:
number
)
{
if
(
data
)
{
...
...
@@ -264,15 +405,14 @@ export class PmsEvalutionComponent {
}
setScore
(
item
:
any
,
score
:
number
)
{
console
.
log
(
" 🐒 this.canEdit:"
,
this
.
canEdit
)
if
(
this
.
canEdit
){
console
.
log
(
" 🐒 this.canEdit:"
,
this
.
canEdit
)
if
(
this
.
canEdit
)
{
if
(
this
.
evaluaterId
==
this
.
evaluateeId
)
{
item
.
scoreTopicExpectation
=
score
item
.
scoreTopicExpectationBoss
=
score
}
else
{
item
.
scoreTopicExpectationBoss
=
score
}
this
.
changePercentage
()
}
}
...
...
src/app/components/performance-evaluation/supervisor-evaluation/supervisor-evaluation.component.html
View file @
77d3f41a
...
...
@@ -131,10 +131,14 @@
</div>
</td>
<td
class=
"text-center"
>
<div
class=
"flex justify-center"
>
<div
class=
"flex justify-center"
*
ngIf=
"item.statusPms"
>
<button
type=
"button"
class=
"ti-btn rounded-sm ti-btn-soft-mute"
[
class
.
ti-btn-soft-mute
]="
item
.
statusPms
.
statusType =
=
'
Not_evaluating_yet
'"
[
class
.
ti-btn-soft-secondary
]="
item
.
statusPms
.
statusType =
=
'
Boss
'"
[
class
.
ti-btn-soft-warning
]="
item
.
statusPms
.
statusType =
=
'
BossEvaluating
'"
[
class
.
ti-btn-soft-success
]="
item
.
statusPms
.
statusType =
=
'
Boss_finish
'"
style=
"height: 15px; width: 45px; font-size: 12px; display: flex; align-items: center; justify-content: center;margin-left:4px;"
(
click
)="
selectSubordinate
(
item
,'',
subordinate
.
select
?.
evaluationRoundId
,
''
);
pageEvalution=
'pms'
"
>
(
click
)="
selectSubordinate
(
item
,'',
subordinate
.
select
?.
evaluationRoundId
,
item
.
statusPms
.
statusType
);
pageEvalution=
'pms'
"
>
PMS
</button>
</div>
...
...
src/app/shared/model/appraisal-pms-form.model.ts
View file @
77d3f41a
...
...
@@ -54,6 +54,16 @@ export interface AppraisalPmsFormModel {
part5Detail
:
Part5Detail
[]
part6Detail
:
Part6Detail
[]
part7Detail
:
Part7Detail
[]
cfrDetail
:
string
,
gradeScore
:
string
netScore
:
number
part1SumScore
:
number
part2SumScore
:
number
part3SumScore
:
number
part4SumScore
:
number
part5SumScore
:
number
part6SumScore
:
number
part7SumScore
:
number
}
export
interface
PersonalLevel
{
...
...
src/app/shared/model/appraisal-subordinate.model.ts
View file @
77d3f41a
...
...
@@ -18,7 +18,11 @@ export interface Masfromevaluationassessment {
statusIdp
:
{
shortName
:
string
,
statusType
:
string
}
},
statusPms
:
{
shortName
:
string
,
statusType
:
string
},
checkStep
:
string
currentStep
:
string
}
...
...
src/app/shared/services/pms-group-grade.service.ts
View file @
77d3f41a
...
...
@@ -4,6 +4,7 @@ import { Observable } from 'rxjs';
import
{
environment
}
from
'src/environments/environment'
;
import
{
AlertModel
}
from
'../model/alert.model'
;
import
{
PmsGroupGradeModel
}
from
'../model/pms-group-grade.model'
;
import
{
CompetencyGradeModel
}
from
'../model/competency-grades.model'
;
@
Injectable
({
providedIn
:
'root'
})
...
...
@@ -18,6 +19,9 @@ export class PmsGroupGradeService {
getList
():
Observable
<
PmsGroupGradeModel
[]
>
{
return
this
.
http
.
get
<
PmsGroupGradeModel
[]
>
(
this
.
urlApi
+
"/lists"
)
}
getGradeList
():
Observable
<
CompetencyGradeModel
[]
>
{
return
this
.
http
.
get
<
CompetencyGradeModel
[]
>
(
this
.
urlApi
+
"/grade/lists"
)
}
post
(
body
:
PmsGroupGradeModel
):
Observable
<
AlertModel
>
{
return
this
.
http
.
post
<
AlertModel
>
(
this
.
urlApi
,
body
)
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment