Commit e0f3ec8a by Nattana Chaiyamat

ไฟล์template

parent 1a8d5cfa
......@@ -107,7 +107,7 @@ export class EditGroupIndicators implements OnInit {
};
});
this.dataList.sort((a, b) => +a.code - +b.code)
let maxCode = Math.max(-1, ...this.dataList.map(x => +x.code))
let maxCode = Math.max(0, ...this.dataList.map(x => +x.code))
while (this.dataList.length < +this.indicatorsCourses.competencyTopic.expectationLevel) {
this.dataList.push({
code: (++maxCode) + "",
......
......@@ -83,14 +83,24 @@
</ng-container>
</tr>
</thead>
<tbody *ngIf="!appraisalCompentencyFilter().length">
<tbody *ngIf="appraisalCompentency.loading">
<tr>
<td class="text-center" colspan="100%">
<div *ngFor="let item of [1,2,3]" class="ti-spinner w-8 h-8 text-secondary mx-1"
role="status" aria-label="loading">
<span class="sr-only">Loading...</span>
</div>
</td>
</tr>
</tbody>
<tbody *ngIf="!appraisalCompentency.loading&&!appraisalCompentencyFilter().length">
<tr>
<td class="text-center" colspan="100%">
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody *ngIf="appraisalCompentencyFilter().length">
<tbody *ngIf="!appraisalCompentency.loading&&appraisalCompentencyFilter().length">
<tr *ngFor="let item of appraisalCompentencyFilter();let i = index">
<td class="flex justify-center items-center">
{{item.data.masfromEvaluationRoundModel.evaluationRoundId}}
......@@ -109,7 +119,7 @@
</td>
<td class="flex justify-center items-center">
<span class="rounded-md bg-success text-white px-3 py-1 cursor-pointer"
(click)="currentTemplate = selfEvaluation1_2Edit ; pathTitle = ['การประเมินผล', 'ประเมินผล']">
(click)="selectAppraisalCompentency(item.data);getAppraisalCompentencyForm();currentTemplate = selfEvaluation1_2Edit ; pathTitle = ['การประเมินผล', 'ประเมินผล']">
ประเมิน
</span>
</td>
......@@ -140,14 +150,24 @@
</ng-container>
</tr>
</thead>
<tbody *ngIf="!appraisalPmsFilter().length">
<tbody *ngIf="appraisalPms.loading">
<tr>
<td class="text-center" colspan="100%">
<div *ngFor="let item of [1,2,3]" class="ti-spinner w-8 h-8 text-secondary mx-1"
role="status" aria-label="loading">
<span class="sr-only">Loading...</span>
</div>
</td>
</tr>
</tbody>
<tbody *ngIf="!appraisalPms.loading&&!appraisalPmsFilter().length">
<tr>
<td class="text-center" colspan="100%">
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody *ngIf="appraisalPmsFilter().length">
<tbody *ngIf="!appraisalPms.loading&&appraisalPmsFilter().length">
<tr *ngFor="let item of appraisalPmsFilter();let i = index">
<td class="flex justify-center items-center">
{{item.data.masfromEvaluationRoundModel.evaluationRoundId}}
......@@ -268,24 +288,37 @@
</tr>
<tr class="font-size-12px">
<ng-container *ngFor="let item of [5,4,3,2,1]">
<th scope="col" class="relative px-10px py-10px bg-soft-secondary text-primary text-center">
<th scope="col"
class="relative px-10px py-10px bg-soft-secondary text-primary !text-center">
{{item}}
</th>
</ng-container>
</tr>
</thead>
<tbody *ngIf="!dataList3Filter().length">
<tr class="hover:table-hover2-hover">
<tbody *ngIf="appraisalCompentencyForm.loading">
<tr>
<td class="text-center" colspan="100%">
<div *ngFor="let item of [1,2,3]" class="ti-spinner w-8 h-8 text-secondary mx-1"
role="status" aria-label="loading">
<span class="sr-only">Loading...</span>
</div>
</td>
</tr>
</tbody>
<tbody *ngIf="!appraisalCompentencyForm.loading&&!appraisalCompentencyFormFilter().length">
<tr>
<td class="text-center" colspan="100%">
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody *ngIf="dataList3Filter().length">
<ng-container *ngFor=" let data of dataList3Filter();let i = index">
<tr *ngFor="let item of data.bi;let i2 = index;let f = first"
(mouseenter)="hoveredCode = data.code" (mouseleave)="hoveredCode = null"
[ngClass]="{ 'table-hover2': data.code === hoveredCode ,'border-none':!f }">
<tbody *ngIf="!appraisalCompentencyForm.loading&&appraisalCompentencyFormFilter().length">
<ng-container
*ngFor="let appraisalCompentencyForm of appraisalCompentencyFormFilter();let i = index">
<tr *ngFor="let bi of appraisalCompentencyForm.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList;let i2 = index;let f = first"
(mouseenter)="hoveredCode = appraisalCompentencyForm.groupAssessment1.competencyIndicatorsCourses1Mini.competencyCourseId"
(mouseleave)="hoveredCode = null"
[ngClass]="{ 'table-hover2': appraisalCompentencyForm.groupAssessment1.competencyIndicatorsCourses1Mini.competencyCourseId === hoveredCode ,'border-none':!f }">
<td class="align-start text-center">
<ng-container *ngIf="f">
{{i+1}}
......@@ -293,24 +326,25 @@
</td>
<td class="align-start text-center">
<ng-container *ngIf="f">
{{data.code}}
{{appraisalCompentencyForm.groupAssessment1.competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.competencyTopic.competencyTopicId}}
</ng-container>
</td>
<td class="align-start !white-space-normal">
<ng-container *ngIf="f">
{{data.name}}
{{appraisalCompentencyForm.groupAssessment1.competencyIndicatorsCourses1Mini.competencyIndicatorsCourses0.tdesc}}
</ng-container>
</td>
<td class="align-start !white-space-normal">
{{item.name}}
{{bi.behavioralIndicators}}
</td>
<td class="align-center text-center">
{{showTools(item.tools)}}
{{bi.assessmentId}}
</td>
<td class="align-center text-center"
*ngFor="let value of ['5','4','3','2','1']; let i3=index">
<td class="align-center text-center" *ngFor="let value of [5,4,3,2,1]; let i3=index">
<input type="radio" [name]="'radio'+i+''+i2" class="ti-form-radio cursor-pointer"
[id]="'radio'+i+''+i2+''+i3" [value]="value" [(ngModel)]="item.degree">
[id]="'radio'+i+''+i2+''+i3" [value]="value"
[(ngModel)]="bi.competencyBehavioral.scoreTopicExpectation"
(ngModelChange)="caltargetScore(value)">
</td>
</tr>
</ng-container>
......@@ -321,33 +355,41 @@
<div class="pb-1rem px-2rem">
<div class="py-2 grid grid-cols-11">
<div class="col-span-8"></div>
<div class="col-span-3 grid grid-cols-5">
<div class="col-span-5 text-center">ระดับความสามารถ (Target Degree)</div>
</div>
</div>
<div class="py-2 grid grid-cols-11">
<div class="col-span-8"></div>
<div class="col-span-3 grid grid-cols-5">
<div class="col-span-1 text-center" *ngFor="let item of [5,4,3,2,1]">{{item}}</div>
</div>
</div>
<div class="py-2 grid grid-cols-11">
<div class="col-span-8">รวมจำนวนเครื่องหมายแต่ละช่อง (1)</div>
<div class="col-span-3 grid grid-cols-5">
<div class="col-span-1 text-center">14</div>
<div class="col-span-1 text-center">6</div>
<div class="col-span-1 text-center">0</div>
<div class="col-span-1 text-center">0</div>
<div class="col-span-1 text-center">0</div>
<div class="col-span-1 text-center">{{appraisalCompentencyForm.data.targetScore5}}</div>
<div class="col-span-1 text-center">{{appraisalCompentencyForm.data.targetScore4}}</div>
<div class="col-span-1 text-center">{{appraisalCompentencyForm.data.targetScore3}}</div>
<div class="col-span-1 text-center">{{appraisalCompentencyForm.data.targetScore2}}</div>
<div class="col-span-1 text-center">{{appraisalCompentencyForm.data.targetScore1}}</div>
</div>
</div>
<div class="py-2 grid grid-cols-11">
<div class="col-span-8">ตัวคูณคะแนนในแต่ละช่อง (2)</div>
<div class="col-span-3 grid grid-cols-5">
<div class="col-span-1 text-center">1</div>
<div class="col-span-1 text-center">0.8</div>
<div class="col-span-1 text-center">0.6</div>
<div class="col-span-1 text-center">0.4</div>
<div class="col-span-1 text-center">0.2</div>
<div class="col-span-1 text-center">{{setting.data.settingScore5}}</div>
<div class="col-span-1 text-center">{{setting.data.settingScore4}}</div>
<div class="col-span-1 text-center">{{setting.data.settingScore3}}</div>
<div class="col-span-1 text-center">{{setting.data.settingScore2}}</div>
<div class="col-span-1 text-center">{{setting.data.settingScore1}}</div>
</div>
</div>
<div class="py-2 grid grid-cols-11">
<div class="col-span-8">ถ่วงน้ำหนักผลรวม 1X2</div>
<div class="col-span-3 grid grid-cols-5">
<div class="col-span-1 text-center">14</div>
<div class="col-span-1 text-center">4.80</div>
<div class="col-span-1 text-center">0.00</div>
<div class="col-span-1 text-center">0.00</div>
<div class="col-span-1 text-center">0.00</div>
<div class="col-span-1 text-center" *ngFor="let item of [5,4,3,2,1]">{{calWeightScore(item)}}</div>
</div>
</div>
<div class="py-2 grid grid-cols-11">
......@@ -395,8 +437,8 @@
</ng-container>
</tr>
</thead>
<tbody *ngIf="dataList4.length">
<tr *ngFor="let item of dataList4;let i = index">
<tbody *ngIf="checkSheet.length">
<tr *ngFor="let item of checkSheet;let i = index">
<td class="align-start" rowspan="2">
<div *ngFor="let item2 of item.score">
<span>{{item2}} </span><br>
......@@ -409,13 +451,13 @@
</td>
<td class="!p-0"></td>
<td class="align-start text-center">
{{item.e}}
???
</td>
<td class="align-start text-center">
{{item.a}}
???
</td>
<td class="align-start text-center">
{{item.gap}}
{{idp.data.score}}
</td>
</tr>
<tr>
......@@ -431,46 +473,52 @@
<div class="py-1rem px-2rem">
<div class="py-2 grid grid-cols-7 gap-3">
<div class="col-span-1">ผู้ประเมิน1</div>
<div class="col-span-1">น.ส. พิมพร อูรณการ</div>
<div class="col-span-1">{{appraisalCompentencyForm.data.apsassessy.thFullName}}</div>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage1" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div>
<div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2"></textarea>
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"></textarea>
<span class="pt-2">
วันที่ :
วันที่ : {{convertDate(currentDate)}}
</span>
</div>
</div>
<div class="py-2 grid grid-cols-7 gap-3">
<div class="col-span-1">ผู้ประเมิน2</div>
<div class="col-span-1">น.ส. นดี แป้นศรี</div>
<div class="col-span-1">{{appraisalCompentencyForm.data.apsapprove2.thFullName}}</div>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage2" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200">
checked:before:bg-green-200 dark:checked:before:bg-green-200"
(click)="appraisalCompentencyForm.data.apsapprove2Status=='0'?appraisalCompentencyForm.data.apsapprove2Status='1':appraisalCompentencyForm.data.apsapprove2Status='0'"
[checked]="appraisalCompentencyForm.data.apsapprove2Status=='1'">
<label for="hs-basic-usage2" class="sr-only">ตรวจสอบ</label>
</div>
<div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" value="ใส่ Comment ที่นี่"></textarea>
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[(ngModel)]="appraisalCompentencyForm.data.apsapprove2Comment"></textarea>
<span>
วันที่ :
วันที่ : {{convertDate(currentDate)}}
</span>
</div>
</div>
<div class="py-2 grid grid-cols-7 gap-3">
<div class="col-span-1">ผู้อนุมัติ</div>
<div class="col-span-1">น.ส.ศรีไพ คชา</div>
<div class="col-span-1">{{appraisalCompentencyForm.data.apsapprove3.thFullName}}</div>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage3" class="ti-switch checked:bg-none checked:bg-green-600 checked:hover:bg-green-600 checked:focus:bg-green-600 focus:border-green-600 focus:ring-green-600 dark:checked:bg-green-600
checked:before:bg-green-200 dark:checked:before:bg-green-200">
checked:before:bg-green-200 dark:checked:before:bg-green-200"
(click)="appraisalCompentencyForm.data.apsapprove3Status=='0'?appraisalCompentencyForm.data.apsapprove3Status='1':appraisalCompentencyForm.data.apsapprove3Status='0'"
[checked]="appraisalCompentencyForm.data.apsapprove3Status=='1'">
<label for="hs-basic-usage3" class="sr-only">อนุมัติ</label>
</div>
<div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" value="ใส่ Comment ที่นี่"></textarea>
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[(ngModel)]="appraisalCompentencyForm.data.apsapprove3Comment"></textarea>
<span>
วันที่ :
วันที่ : {{convertDate(currentDate)}}
</span>
</div>
</div>
......
import { ChangeDetectorRef, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
import { AppraisalFormModel, MyAppraisalFormModel } from 'src/app/shared/model/appraisal-form.model';
import { AppraisalModel, MyAppraisalModel } from 'src/app/shared/model/appraisal.model';
import { EmployeeModel, MyEmployeeModel } from 'src/app/shared/model/employee.model';
import { IdpDevelopmentModel, MyIdpDevelopmentModel } from 'src/app/shared/model/idp-development.model';
import { MySettingAssessmentModel, SettingAssessmentModel } from 'src/app/shared/model/setting-assessment.model';
import { AppraisalService } from 'src/app/shared/services/appraisal.service';
import { EmployeeService } from 'src/app/shared/services/employee.service';
import { IdpDevelopmentService } from 'src/app/shared/services/idp-development.service';
import { SettingAssessmentService } from 'src/app/shared/services/setting-assessment.service';
import Swal from 'sweetalert2';
export interface Data2Model {
code: string,
name: string,
bi: BiModel[],
}
export interface BiModel {
name: string,
tools: string[],
......@@ -22,89 +22,67 @@ export interface BiModel {
styleUrls: ['./self-evaluation.component.scss']
})
export class SelfEvaluationComponent implements OnInit {
pathTitle = ['การประเมินผล', 'ประเมินตนเอง']
hoveredCode: string | null = null;
dataList3: Data2Model[] = [
{
code: "CC-01",
name: "จิตสำนึกด้านความปลอดภัยและคุณภาพ (Safety & Quality)",
bi: [{
name: "สอนงานด้านความปลอดภัย และคุณภาพของบริษัทให้กับพนักงานในหน่วยงาน",
tools: ["O"],
degree: "4"
}, {
name: "ติดตามและปรับปรุงการทำงานด้านความปลอดภัยและคุณภาพของทีมงาน",
tools: ["O", "D"],
degree: "5"
}],
},
{
code: "CC-02",
name: "การทำงานเป็นทีมแบบ TAT (TAT Teamwork)",
bi: [{
name: "คิดวิเคราะห์เพื่อแก้ปัญหาด้านความปลอดภัยและคุณภาพในหน่วยงานที่รับผิดชอบ",
tools: ["O", "D"],
degree: "5"
}, {
name: "นำเสนอและจัดทำรายงานด้านความปลอดภัยและคุณภาพทั้งภาษาไทยและภาษาอังกฤษ",
tools: ["O"],
degree: "2"
},
{
name: "สอนงาน และพัฒนาทีมงานให้เกิดการทำงานเป็นทีม โดยยึดเป้าหมายเดียวกัน (TAT Goal) และคำนึงถึง ความต้องการของลูกค้าเป็นหลัก (Next Customer)",
tools: ["O"],
degree: "2"
},
{
name: "สนับสนุนทีมงานให้ดำเนินการตามเป้าหมายของทีม และสิ่งที่ตนเองได้รับมอบหมาย",
tools: ["O", "D"],
degree: "4"
},
{
name: "วิเคราะห์และแก้ไขปัญหาที่เกิดจากการทำงานเป็นทีม รวมถึงการควบคุมดูแลให้เป็นไปตามเป้าหมาย",
tools: ["O"],
degree: "5"
},
{
name: "สื่อสารเพื่อสร้างความเข้าใจ และรับฟังความคิดเห็น ของสมาชิกในทีม ชื่นชมทีมงานแต่ละคนที่เป็น ส่วนหนึ่งในความสำเร็จของทีมร่วมกัน",
tools: ["O", "D"],
degree: "5"
}],
}
]
dataList4: {
checkSheet: {
score: string[],
condition: string[],
e: string,
a: string,
gap: string
condition: string[]
}[] = [{
score: ["หากได้คะแนน 90 - 100% ถือว่า Gap +1", "หากได้คะแนน 80 - 89% ถือว่า ไม่มี Gap", "หากได้คะแนน 60 - 79% ถือว่า Gap - 1", "หากได้คะแนน 40 - 59% ถือว่า Gap -", "หากได้คะแนน 0 - 39% ถือว่า Gap - 3"],
condition: ["1.หากได้คะแนนสูงกว่า 80% แต่มี 3 2 หรือ 1 ด้วย ถือว่า Gap -1", "2.หากได้คะแนนต่ำกว่า 80% แต่มี 4 และ 5 ให้คิด Gap ตาม %", "3.คะแนนต่ำกว่า 80% แต่มี 2 และ 1 ให้คิด Gap ตาม %"],
e: "4",
a: "3",
gap: "-1"
}]
@ViewChild('selfEvaluation1_2', { static: true }) selfEvaluation1_2!: TemplateRef<any>;
@ViewChild('selfEvaluation1_2Edit', { static: true }) selfEvaluation1_2Edit!: TemplateRef<any>;
currentTemplate: TemplateRef<any> = this.selfEvaluation1_2
appraisalCompentency: { loading: boolean, select: AppraisalModel, dataList: { check: boolean, data: AppraisalModel }[] } = { loading: false, select: new MyAppraisalModel(), dataList: [] }
appraisalCompentencyForm: { loading: boolean, data: AppraisalFormModel } = { loading: false, data: new MyAppraisalFormModel() }
appraisalPms: { loading: boolean, select: AppraisalModel, dataList: { check: boolean, data: AppraisalModel }[] } = { loading: false, select: new MyAppraisalModel(), dataList: [] }
employee: { loading: boolean, data: EmployeeModel } = { loading: false, data: new MyEmployeeModel() }
appraisalCompentencyForm: { loading: boolean, select: AppraisalModel, dataList: { check: boolean, data: AppraisalModel }[] } = { loading: false, select: new MyAppraisalModel(), dataList: [] }
setting: { loading: boolean, data: SettingAssessmentModel } = { loading: false, data: new MySettingAssessmentModel() }
idp: { loading: boolean, data: IdpDevelopmentModel } = { loading: false, data: new MyIdpDevelopmentModel() }
currentDate = new Date()
constructor(private appraisalService: AppraisalService,
private employeeService: EmployeeService,
private cdr: ChangeDetectorRef
private cdr: ChangeDetectorRef,
private settingAssessmentService: SettingAssessmentService,
private idpDevelopmentService: IdpDevelopmentService
) {
}
ngOnInit(): void {
this.currentTemplate = this.selfEvaluation1_2
this.getProfile()
this.getAppraisalCompentencyList()
this.getSettingList()
this.getIdpData()
}
getIdpData() {
this.idp.loading = true
this.idpDevelopmentService.getList().subscribe({
next: response => {
this.idp.data = new MyIdpDevelopmentModel(response)
this.idp.data.developmentPlan.sort((a, b) => +a.planId - +b.planId)
this.idp.loading = false
this.cdr.detectChanges()
}, error: error => {
this.idp.loading = false
this.cdr.detectChanges()
}
})
}
getSettingList() {
this.setting.loading = true
this.settingAssessmentService.get().subscribe({
next: response => {
this.setting.data = new MySettingAssessmentModel(response)
this.setting.loading = false
this.cdr.detectChanges()
}, error: error => {
this.setting.loading = false
this.cdr.detectChanges()
}
})
}
getProfile() {
this.employee.loading = true
......@@ -135,25 +113,36 @@ export class SelfEvaluationComponent implements OnInit {
appraisalCompentencyFilter() {
return this.appraisalCompentency.dataList
}
getAppraisalCompentencyFrom() {
this.appraisalCompentency.loading = true
this.appraisalService.getList().subscribe({
selectAppraisalCompentency(data: AppraisalModel) {
this.appraisalCompentency.select = new MyAppraisalModel(data)
}
getAppraisalCompentencyForm() {
this.appraisalCompentencyForm.loading = true
this.appraisalService.getFormCompentencyById(this.appraisalCompentency.select.masfromEvaluationRoundModel.evaluationRoundId, this.employee.data.employeeId).subscribe({
next: response => {
this.appraisalCompentency.dataList = response.map(x => ({ check: false, data: new MyAppraisalModel(x) }))
this.appraisalCompentency.loading = false
this.appraisalCompentencyForm.data = new MyAppraisalFormModel(response)
console.log(" 🐒 this.appraisalCompentencyForm.data:", this.appraisalCompentencyForm.data.masfromEvaluationAssessment1lList)
for (let i = 1; i <= 5; i++) {
this.caltargetScore(i)
}
this.appraisalCompentencyForm.loading = false
this.cdr.detectChanges()
}, error: error => {
this.appraisalCompentency.loading = false
this.appraisalCompentencyForm.loading = false
this.cdr.detectChanges()
}
})
}
appraisalCompentencyFormFilter() {
return this.appraisalCompentencyForm.data.masfromEvaluationAssessment1lList
}
appraisalPmsFilter() {
return this.appraisalPms.dataList
}
dataList3Filter() {
return this.dataList3
}
showTools(data: string[]) {
return data.join("/")
}
......@@ -211,9 +200,65 @@ export class SelfEvaluationComponent implements OnInit {
});
}
convertDate(dateString: string): string {
const date = new Date(dateString);
convertDate(dateInput: string | Date): string {
const date = typeof dateInput === 'string' ? new Date(dateInput) : dateInput;
return date.toLocaleDateString('th-TH', { day: 'numeric', month: 'long', year: 'numeric' });
}
caltargetScore(targetScore: number) {
console.log(" 🐒 targetScore:", targetScore)
switch (targetScore) {
case (1): {
this.appraisalCompentencyForm.data.targetScore1 = this.appraisalCompentencyForm.data.masfromEvaluationAssessment1lList.filter(x => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter(y => y.competencyBehavioral.scoreTopicExpectation == 1)).length
console.log(" 🐒 1:", this.appraisalCompentencyForm.data.targetScore1)
this.cdr.detectChanges()
break;
}
case (2): {
this.appraisalCompentencyForm.data.targetScore2 = this.appraisalCompentencyForm.data.masfromEvaluationAssessment1lList.filter(x => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter(y => y.competencyBehavioral.scoreTopicExpectation == 2)).length * 2
console.log(" 🐒 2:", this.appraisalCompentencyForm.data.targetScore2)
this.cdr.detectChanges()
break;
}
case (3): {
this.appraisalCompentencyForm.data.targetScore3 = this.appraisalCompentencyForm.data.masfromEvaluationAssessment1lList.filter(x => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter(y => y.competencyBehavioral.scoreTopicExpectation == 3)).length * 3
console.log(" 🐒 3:", this.appraisalCompentencyForm.data.targetScore3)
this.cdr.detectChanges()
break;
}
case (4): {
this.appraisalCompentencyForm.data.targetScore4 = this.appraisalCompentencyForm.data.masfromEvaluationAssessment1lList.filter(x => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter(y => y.competencyBehavioral.scoreTopicExpectation == 4)).length * 4
console.log(" 🐒 4:", this.appraisalCompentencyForm.data.targetScore4)
this.cdr.detectChanges()
break;
}
case (5): {
this.appraisalCompentencyForm.data.targetScore5 = this.appraisalCompentencyForm.data.masfromEvaluationAssessment1lList.filter(x => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter(y => y.competencyBehavioral.scoreTopicExpectation == 5)).length * 5
console.log(" 🐒 5:", this.appraisalCompentencyForm.data.targetScore5)
this.cdr.detectChanges()
break;
}
default: { return }
}
}
calWeightScore(targetScore: number) {
switch (targetScore) {
case (1): {
return +(this.setting.data.settingScore1) * this.appraisalCompentencyForm.data.targetScore1
}
case (2): {
return +(this.setting.data.settingScore2) * this.appraisalCompentencyForm.data.targetScore2
}
case (3): {
return +(this.setting.data.settingScore3) * this.appraisalCompentencyForm.data.targetScore3
}
case (4): {
return +(this.setting.data.settingScore4) * this.appraisalCompentencyForm.data.targetScore4
}
case (5): {
return +(this.setting.data.settingScore5) * this.appraisalCompentencyForm.data.targetScore5
}
default: { return }
}
}
}
......@@ -3,7 +3,7 @@ import { EvaluationCycleModel, MyEvaluationCycleModel } from "./evaluation-cycle
import { MasfromEvaluationAssessment1Model, MyMasfromEvaluationAssessment1Model } from "./masfrom-evaluation-assessment1.model"
import { MyPLModel, PLModel } from "./pl.model"
export interface AppraisalFromModel {
export interface AppraisalFormModel {
personalLevel: PLModel
masfromEvaluationRoundModel: EvaluationCycleModel
companyId: string
......@@ -36,7 +36,7 @@ export interface AppraisalFromModel {
sumEvaluationResults: string
masfromEvaluationAssessment1lList: MasfromEvaluationAssessment1Model[]
}
export class MyAppraisalFromModel implements AppraisalFromModel {
export class MyAppraisalFormModel implements AppraisalFormModel {
personalLevel: PLModel
masfromEvaluationRoundModel: EvaluationCycleModel
companyId: string
......@@ -68,7 +68,7 @@ export class MyAppraisalFromModel implements AppraisalFromModel {
evaluationResults: string
sumEvaluationResults: string
masfromEvaluationAssessment1lList: MasfromEvaluationAssessment1Model[]
constructor(data?: Partial<AppraisalFromModel>) {
constructor(data?: Partial<AppraisalFormModel>) {
this.personalLevel = new MyPLModel(data?.personalLevel)
this.masfromEvaluationRoundModel = new MyEvaluationCycleModel(data?.masfromEvaluationRoundModel)
this.companyId = data?.companyId || ""
......
export interface DevelopmentPlanModel {
planId: string;
companyId: string;
ojtJobAssignment: boolean;
coachMentor: boolean;
training: boolean;
}
export class MyDevelopmentPlanModel implements DevelopmentPlanModel {
planId: string;
companyId: string;
ojtJobAssignment: boolean;
coachMentor: boolean;
training: boolean;
constructor(data?: Partial<DevelopmentPlanModel>) {
this.planId = data?.planId || '';
this.companyId = data?.companyId || '';
this.ojtJobAssignment = data?.ojtJobAssignment ?? false
this.coachMentor = data?.coachMentor ?? false
this.training = data?.training ?? false
}
}
......@@ -4,7 +4,7 @@ import { MyPLModel, PLModel } from "./pl.model"
export interface GroupAssessment1Model {
personalLevelModel: PLModel
competencyIndicatorsCourses1Mini: CompetencyIndicatorsCourses1MiniModel[]
competencyIndicatorsCourses1Mini: CompetencyIndicatorsCourses1MiniModel
companyId: string
groupAssessmentMini: GroupAssessmentMiniModel
}
......@@ -12,12 +12,12 @@ export interface GroupAssessment1Model {
export class MyGroupAssessment1Model implements GroupAssessment1Model {
personalLevelModel: PLModel
competencyIndicatorsCourses1Mini: CompetencyIndicatorsCourses1MiniModel[]
competencyIndicatorsCourses1Mini: CompetencyIndicatorsCourses1MiniModel
companyId: string
groupAssessmentMini: GroupAssessmentMiniModel
constructor(data?: Partial<GroupAssessment1Model>) {
this.personalLevelModel = new MyPLModel(data?.personalLevelModel)
this.competencyIndicatorsCourses1Mini = data?.competencyIndicatorsCourses1Mini?.map(x => new MyCompetencyIndicatorsCourses1MiniModel(x)) || []
this.competencyIndicatorsCourses1Mini = new MyCompetencyIndicatorsCourses1MiniModel(data?.competencyIndicatorsCourses1Mini)
this.companyId = data?.companyId || ""
this.groupAssessmentMini = new MyGroupAssessmentMiniModel(data?.groupAssessmentMini)
}
......
export interface DevelopmentPlan {
planId: string;
companyId: string;
ojtJobAssignment: boolean;
coachMentor: boolean;
training: boolean;
import { DevelopmentPlanModel, MyDevelopmentPlanModel } from "./development-plan.model";
export interface IdpDevelopmentModel {
evaluationId: string;
companyId: string;
score: number;
developmentPlan: DevelopmentPlanModel[];
}
export class MyIdpDevelopmentModel implements IdpDevelopmentModel {
evaluationId: string;
companyId: string;
score: number;
developmentPlan: DevelopmentPlanModel[];
constructor(data?: Partial<IdpDevelopmentModel>) {
this.evaluationId = data?.evaluationId || '';
this.companyId = data?.companyId || '';
this.score = data?.score ?? 0;
this.developmentPlan = data?.developmentPlan?.map(x => new MyDevelopmentPlanModel(x)) || [];
}
export interface IdpDevelopmentModel {
evaluationId: string;
companyId: string;
score: number;
developmentPlan: DevelopmentPlan[];
}
export class MyIdpDevelopmentModel implements IdpDevelopmentModel {
evaluationId: string;
companyId: string;
score: number;
developmentPlan: DevelopmentPlan[];
constructor(data: Partial<IdpDevelopmentModel>) {
this.evaluationId = data.evaluationId || '';
this.companyId = data.companyId || '';
this.score = data.score ?? 0;
this.developmentPlan = data.developmentPlan || [];
}
}
\ No newline at end of file
}
......@@ -5,7 +5,7 @@ import { environment } from 'src/environments/environment';
import { PLModel } from '../model/pl.model';
import { AlertModel } from '../model/alert.model';
import { AppraisalModel } from '../model/appraisal.model';
import { AppraisalFromModel } from '../model/appraisal-form.model';
import { AppraisalFormModel } from '../model/appraisal-form.model';
@Injectable({
providedIn: 'root'
})
......@@ -14,8 +14,8 @@ export class AppraisalService {
urlApi = environment.baseUrl + this.api
constructor(private http: HttpClient) {
}
getFormById(evaluationRoundId: string, apsassessy: string): Observable<AppraisalFromModel> {
return this.http.get<AppraisalFromModel>(this.urlApi + "/" + evaluationRoundId + "/" + apsassessy)
getFormCompentencyById(evaluationRoundId: string, apsassessy: string): Observable<AppraisalFormModel> {
return this.http.get<AppraisalFormModel>(this.urlApi + "/competency/" + evaluationRoundId + "/" + apsassessy)
}
getList(): Observable<AppraisalModel[]> {
return this.http.get<AppraisalModel[]>(this.urlApi + "/competency/emp")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment