Commit 5800b432 by Nattana Chaiyamat

รายละเอียดประเมินผลงานการปฏิบัติงาน

parent 2e52c698
......@@ -28,66 +28,90 @@
<div class="pb-1rem px-2rem">
<div class="py-2 grid grid-cols-10">
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
ชื่อผู้รับการประเมิน(Employee)</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
ชื่อผู้การประเมิน(Evaluator)
</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsassessy.prefix.tdesc}}
{{appraisalPms.data.apsassessy.thFullName}}</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsapprove1.prefix.tdesc}}
{{appraisalPms.data.apsapprove1.thFullName}}</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">รหัส (ID)
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">รหัส
(ID)
</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">รหัส (ID)
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">รหัส
(ID)
</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsassessy.employeeId}}</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsapprove1.employeeId}}</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">ตำแหน่ง
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
ตำแหน่ง
(Position)</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">ตำแหน่ง
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
ตำแหน่ง
(Position)</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsassessy.position.tdesc}}</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsapprove1.position.tdesc}}</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">แผนก
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">แผนก
(Section)</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">แผนก
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">แผนก
(Section)</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsassessy.bu2.tdesc}}</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsapprove1.bu2.tdesc}}</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">ฝ่าย
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">ฝ่าย
(Department)</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">ฝ่าย
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">ฝ่าย
(Department)</div>
</div>
<div class="py-2 grid grid-cols-1 col-span-1">
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsassessy.bu1.tdesc}}</div>
<div class="col-span-1 text-gray-400 border" style="padding-top:5px;min-height: 60px;">
<div class="col-span-1 text-gray-400 border !white-space-normal"
style="padding-top:5px;min-height: 100px;word-wrap: break-word; overflow-wrap: break-word;">
{{appraisalPms.data.apsapprove1.bu1.tdesc}}</div>
</div>
</div>
......@@ -101,59 +125,165 @@
<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>
<div class="pb-1rem px-2rem">
<!-- <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">ผู้รับการประเมิน</div>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage" class="ti-switch">
<label for="hs-basic-usage" class="sr-only">ยืนยันผล</label>
{{appraisalCompentency.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 pointer-events-none "
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyStatus=='2'">
<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 ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='0'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='0'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyComment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyDate)}}
</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="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove1.employeeId">
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage" class="ti-switch">
<label for="hs-basic-usage" class="sr-only">ตรวจสอบ</label>
{{appraisalCompentency.data.apsapprove2.employeeId?'ผู้ประเมิน1':'ผู้อนุมัติ'}}
</div>
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove1.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 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Status=='2'">
<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" value="ใส่ Comment ที่นี่"></textarea>
<span>
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='1'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='1'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Comment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Date)}}
</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="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove2.employeeId">
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove3.employeeId?'ผู้ประเมิน2':'ผู้อนุมัติ'}}
</div>
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove2.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 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Status=='2'">
<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" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='2'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='2'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Comment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Date)}}
</span>
</div>
</div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove3.employeeId">
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove4.employeeId?'ผู้ประเมิน3':'ผู้อนุมัติ'}}
</div>
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove3.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 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Status=='2'">
<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" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='3'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='3'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Comment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Date)}}
</span>
</div>
</div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove4.employeeId">
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove5.employeeId?'ผู้ประเมิน4':'ผู้อนุมัติ'}}
</div>
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove4.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 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Status=='2'">
<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" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='4'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='4'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Comment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Date)}}
</span>
</div>
</div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove5.employeeId">
<div class="col-span-1">
ผู้อนุมัติ
</div>
<div class="col-span-1">
{{appraisalCompentency.data.apsapprove5.thFullName}}</div>
<div class="col-span-1">
<input type="checkbox" id="hs-basic-usage" class="ti-switch">
<label for="hs-basic-usage" class="sr-only">อนุมัติ</label>
<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 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Status=='2'">
<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" value="ใส่ Comment ที่นี่"></textarea>
<span>
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='5'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='5'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Comment"></textarea>
<span class="pt-2">
วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Date)}}
</span>
</div>
</div>
</div>
<div class="flex justify-center mb-1rem pb-2rem">
<button type="submit" class="ti-btn ti-btn-success mx-2rem">
<div class="flex justify-center mb-1rem pb-2rem" *ngIf="canSave">
<button *ngIf="appraisalCompentency.data.checkStep!='0'&&appraisalCompentency.data.checkStep!='1'"
type="submit" class="ti-btn ti-btn-danger mx-2rem" (click)="save('noApprove')">
ไม่อนุมัติ
</button>
<button type="submit" class="ti-btn ti-btn-success mx-2rem" (click)="save('draft')">
บันทึกร่าง
</button>
<button type="submit" class="ti-btn ti-btn-success mx-2rem">
บันทึกข้อมูล
<button type="submit" class="ti-btn ti-btn-secondary mx-2rem" (click)="save('approve')">
<ng-container *ngIf="appraisalCompentency.data.checkStep=='0'">
ยืนยันข้อมูล
</ng-container>
<ng-container *ngIf="appraisalCompentency.data.checkStep!='0'">
อนุมัติ
</ng-container>
</button>
</div>
</div> -->
</ng-container>
</ng-template>
......@@ -238,40 +368,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
<td class="align-start text-center !white-space-normal ">
{{item.groupAssessment1.pmsTopic.weight}}
{{item.weight}}
</td>
<td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part1radioA'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[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 type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part1radioB'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[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 type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part1radioC'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[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 type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part1radioD'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[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 type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part1radioE'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[id]="'part1radioE'+i" (click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
......@@ -281,7 +406,7 @@
)}}
</td>
<td class="align-start !white-space-normal text-center">
{{numberFixed2(item.groupAssessment1.pmsTopic.weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</tr>
......@@ -423,40 +548,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
<td class="align-start text-center !white-space-normal ">
{{item.groupAssessment1.pmsTopic.weight}}
{{item.weight}}
</td>
<td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part2radioA'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[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 type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part2radioB'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[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 type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part2radioC'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[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 type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part2radioD'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[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 type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part2radioE'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[id]="'part2radioE'+i" (click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
......@@ -466,7 +586,7 @@
)}}
</td>
<td class="align-start !white-space-normal text-center">
{{numberFixed2(item.groupAssessment1.pmsTopic.weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</tr>
......@@ -601,40 +721,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
<td class="align-start text-center !white-space-normal ">
{{item.groupAssessment1.pmsTopic.weight}}
{{item.weight}}
</td>
<td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part3radioA'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[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 type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part3radioB'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[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 type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part3radioC'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[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 type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part3radioD'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[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 type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part3radioE'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[id]="'part3radioE'+i" (click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
......@@ -644,7 +759,7 @@
)}}
</td>
<td class="align-start !white-space-normal text-center">
{{numberFixed2(item.groupAssessment1.pmsTopic.weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</tr>
......@@ -1097,40 +1212,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
<td class="align-start !white-space-normal text-center">
{{item.groupAssessment1.pmsTopic.weight}}
{{item.weight}}
</td>
<td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part6radioA'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[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 type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part6radioB'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[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 type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part6radioC'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[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 type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part6radioD'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[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 type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part6radioE'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[id]="'part6radioE'+i" (click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
......@@ -1140,7 +1250,7 @@
)}}
</td>
<td class="align-start !white-space-normal text-center">
{{numberFixed2(item.groupAssessment1.pmsTopic.weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</tr>
......@@ -1282,40 +1392,35 @@
{{item.groupAssessment1.pmsTopic.completionDate}}
</td>
<td class="align-start !white-space-normal text-center">
{{item.groupAssessment1.pmsTopic.weight}}
{{item.weight}}
</td>
<td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part7radioA'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=5:item.scoreTopicExpectationBoss=5"
[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 type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part7radioB'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=4:item.scoreTopicExpectationBoss=4"
[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 type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part7radioC'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=3:item.scoreTopicExpectationBoss=3"
[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 type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part7radioD'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=2:item.scoreTopicExpectationBoss=2"
[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 type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer"
[id]="'part7radioE'+i"
(click)="evaluaterId==evaluateeId?item.scoreTopicExpectation=1:item.scoreTopicExpectationBoss=1"
[id]="'part7radioE'+i" (click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}}
</td>
......@@ -1325,7 +1430,7 @@
)}}
</td>
<td class="align-start !white-space-normal text-center">
{{numberFixed2(item.groupAssessment1.pmsTopic.weight *
{{numberFixed2(item.weight *
(evaluaterId==evaluateeId?item.scoreTopicExpectation:item.scoreTopicExpectationBoss))}}
</td>
</tr>
......
......@@ -25,7 +25,7 @@ export class PmsEvalutionComponent {
part5show = true
part6show = true
part7show = true
part8show = true
data8List: DataModel7[] = [{
evaluationFactor: "Part 1 : ประเมินผลการปฏิบัติงานตามนโยบายบริษัท (Hoshin)",
......@@ -114,13 +114,13 @@ export class PmsEvalutionComponent {
calRawScore(data?: any) {
if (data) {
return data.reduce((sum: number, item: any) => sum + item.groupAssessment1.pmsTopic.weight * 5, 0).toFixed(2);
return data.reduce((sum: number, item: any) => sum + item.weight * 5, 0).toFixed(2);
}
return "0.00"
}
calWeigth(data?: any) {
if (data) {
return data.reduce((sum: number, item: any) => sum + item.groupAssessment1.pmsTopic.weight, 0).toFixed(2);
return data.reduce((sum: number, item: any) => sum + item.weight, 0).toFixed(2);
}
return "0.00"
}
......@@ -132,7 +132,7 @@ export class PmsEvalutionComponent {
}
calExpectationTotalScore(data?: any) {
if (data) {
return data.reduce((sum: number, item: any) => sum + ((this.evaluaterId == this.evaluateeId ? item.scoreTopicExpectation : item.scoreTopicExpectationBoss) * item.groupAssessment1.pmsTopic.weight), 0).toFixed(2);
return data.reduce((sum: number, item: any) => sum + ((this.evaluaterId == this.evaluateeId ? item.scoreTopicExpectation : item.scoreTopicExpectationBoss) * item.weight), 0).toFixed(2);
}
return "0.00"
}
......@@ -216,4 +216,13 @@ export class PmsEvalutionComponent {
}
return "0.00"
}
setScore(item: any, score: number) {
if (this.evaluaterId == this.evaluateeId) {
item.scoreTopicExpectation = score
item.scoreTopicExpectationBoss = score
} else {
item.scoreTopicExpectationBoss = score
}
}
}
\ No newline at end of file
......@@ -16,10 +16,11 @@
<nav class=" flex space-x-2 rtl:space-x-reverse">
<a *ngFor="let item of appraisalCompentency.dataList; let i=index ; let f= first"
class="border justify-center rounded-top-4px hs-tab-active:!bg-primary hs-tab-active:text-white -mb-px py-2 px-3 inline-flex items-center gap-2 font-size-16px font-weight-500 text-center hover:text-gray-900"
[class.active]="f" href="javascript:void(0);" [id]="'card-type-item-'+(i+1)"
[class.active]="f" href="javascript:void(0);" [id]="'card-type-item-'+(i+1)"
[class.ti-btn-soft-mute]="!item.statusCheckDate"
[attr.data-hs-tab]="'#underline-'+(i+1)" [attr.aria-controls]="'underline-'+(i+1)"
(click)="selectAppraisalCompentency(item)">
รอบการประเมินที่ {{i+1}}/{{appraisalCompentency.dataList.length}}
{{item.masfromEvaluationRound.tdesc}}
</a>
</nav>
</div>
......@@ -119,7 +120,7 @@
{{masfromEvaluationAssessment1.masfromStatusType.tdesc}}
</td>
<td class="flex justify-center items-center">
<button type="button" class="ti-btn rounded-sm " (click)="selectCompentencyForm(masfromEvaluationAssessment1.competencyType.competencyTypeId);onEdit = true ;
<button type="button" class="ti-btn rounded-sm " (click)="selectCompentencyForm(masfromEvaluationAssessment1.competencyType.competencyTypeId);onEdit = 'competency' ;
pathTitle = ['การประเมินผล', 'ประเมินตนเอง','ประเมินผล']"
[class.ti-btn-soft-secondary]="masfromEvaluationAssessment1.masfromStatusType.code == 'employee'"
[class.ti-btn-soft-warning]="masfromEvaluationAssessment1.masfromStatusType.code == 'evaluating'"
......@@ -163,36 +164,42 @@
</td>
</tr>
</tbody>
<tbody *ngIf="!appraisalPms.loading&&!appraisalPmsFilter().length">
<tbody
*ngIf="!appraisalPms.loading&&!appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId)">
<tr>
<td class="text-center" colspan="100%">
ไม่พบข้อมูล
</td>
</tr>
</tbody>
<tbody *ngIf="!appraisalPms.loading&&appraisalPmsFilter().length">
<!-- <tr *ngFor="let item of appraisalPmsFilter();let i = index">
<tbody
*ngIf="!appraisalPms.loading&&appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId)?.data">
<tr>
<td class="flex justify-center items-center">
{{item.data.masfromEvaluationRound.evaluationRoundId}}
{{appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.pmsMasfromEvaluationRound?.pmsEvaluationRoundId}}
</td>
<td>
{{item.data.masfromEvaluationRound.tdesc}}
{{appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.pmsMasfromEvaluationRound?.tdesc}}
</td>
<td>
{{convertDate(item.data.masfromEvaluationRound.apsPeriodStart)}}
{{convertDate(appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.pmsMasfromEvaluationRound?.apsPeriodStart)}}
</td>
<td>
{{convertDate(item.data.masfromEvaluationRound.apsPeriodEnd)}}
{{convertDate(appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.pmsMasfromEvaluationRound?.apsPeriodEnd)}}
</td>
<td>
{{item.data.masfromStatusType.tdesc}}
{{appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.masfromStatusType?.tdesc}}
</td>
<td class="flex justify-center items-center">
<span class="rounded-md bg-success text-white px-3 py-1 cursor-pointer">
<button type="button" class="ti-btn rounded-sm " (click)="selectAppraisalPms(appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data);onEdit = 'pms' ;
pathTitle = ['การประเมินผล', 'ประเมินตนเอง','ประเมินผล']"
[class.ti-btn-soft-secondary]="appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.masfromStatusType?.code == 'employee'"
[class.ti-btn-soft-warning]="appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.masfromStatusType?.code == 'evaluating'"
[class.ti-btn-soft-success]="appraisalPmsFilter(item.masfromEvaluationRound.evaluationRoundId).data?.masfromStatusType?.code == 'employee_finish'">
ประเมิน
</span>
</button>
</td>
</tr> -->
</tr>
</tbody>
</table>
</div>
......@@ -241,10 +248,17 @@
<ng-container *ngIf="onEdit">
<ng-container *ngIf="onEdit=='competency'">
<app-evaluation [pathTitle]="['การประเมินผล', 'ประเมินตนเอง','ประเมิน']"
(sendReturnPath)="getAppraisalCompentencyList();onEdit = false ; pathTitle = ['การประเมินผล', 'ประเมินตนเอง']"
(sendReturnPath)="getAppraisalCompentencyList();getAppraisalPmsList();onEdit = '' ; pathTitle = ['การประเมินผล', 'ประเมินตนเอง']"
[evaluationRoundId]="appraisalCompentency.select?.masfromEvaluationRound?.evaluationRoundId || ''"
[evaluaterId]="evaluatee.data.employeeId" [evaluateeId]="evaluatee.data.employeeId"
[competencyTypeId]="competencyTypeId"></app-evaluation>
</ng-container>
<ng-container *ngIf="onEdit=='pms'">
<app-pms-evalution [pathTitle]="['การประเมินผล', 'ประเมินตนเอง','ประเมิน']"
(sendReturnPath)="getAppraisalCompentencyList();getAppraisalPmsList();onEdit='' ; pathTitle = ['การประเมินผล', 'ประเมินตนเอง']"
[evaluationRoundId]="appraisalPms.select?.pmsMasfromEvaluationRound?.pmsEvaluationRoundId || ''"
[evaluaterId]="evaluatee.data.employeeId" [evaluateeId]="evaluatee.data.employeeId"></app-pms-evalution>
</ng-container>
\ No newline at end of file
import { ChangeDetectorRef, Component, OnInit, TemplateRef, ViewChild } from '@angular/core';
import { AppraisalCompentencyModel } from 'src/app/shared/model/appraisal-competency.model';
import { AppraisalPmsModel } from 'src/app/shared/model/appraisal-pms.model';
import { EmployeeModel, MyEmployeeModel } from 'src/app/shared/model/employee.model';
import { AppraisalService } from 'src/app/shared/services/appraisal.service';
import { EmployeeService } from 'src/app/shared/services/employee.service';
......@@ -25,12 +26,12 @@ export class SelfEvaluationComponent implements OnInit {
condition: ["1.หากได้คะแนนสูงกว่า 80% แต่มี 3 2 หรือ 1 ด้วย ถือว่า Gap -1", "2.หากได้คะแนนต่ำกว่า 80% แต่มี 4 และ 5 ให้คิด Gap ตาม %", "3.คะแนนต่ำกว่า 80% แต่มี 2 และ 1 ให้คิด Gap ตาม %"],
}]
appraisalCompentency: { loading: boolean, select?: AppraisalCompentencyModel, dataList: AppraisalCompentencyModel[] } = { loading: false, select: undefined, dataList: [] }
appraisalPms: { loading: boolean, select: undefined, dataList: { check: boolean, data: undefined }[] } = { loading: false, select: undefined, dataList: [] }
appraisalPms: { loading: boolean, select?: AppraisalPmsModel, dataList: { check: boolean, data: AppraisalPmsModel }[] } = { loading: false, select: undefined, dataList: [] }
evaluatee: { loading: boolean, data: EmployeeModel } = { loading: false, data: new MyEmployeeModel() }
currentDate = new Date()
competencyTypeId = ""
onEdit = false
onEdit = ''
constructor(private appraisalService: AppraisalService,
private employeeService: EmployeeService,
private cdr: ChangeDetectorRef
......@@ -38,6 +39,7 @@ export class SelfEvaluationComponent implements OnInit {
ngOnInit(): void {
this.getEvaluatee()
this.getAppraisalCompentencyList()
this.getAppraisalPmsList()
}
getEvaluatee() {
this.evaluatee.loading = true
......@@ -52,6 +54,28 @@ export class SelfEvaluationComponent implements OnInit {
}
})
}
getAppraisalPmsList() {
this.appraisalPms.loading = true
this.appraisalService.getPmsList().subscribe({
next: response => {
this.appraisalPms.dataList = response.map(x => ({ check: false, data: x }))
this.appraisalPms.loading = false
this.cdr.detectChanges()
}, error: error => {
this.appraisalPms.loading = false
this.cdr.detectChanges()
}
})
}
appraisalPmsFilter(evaluationRoundId: string) {
return this.appraisalPms.dataList.find(x => x.data.pmsMasfromEvaluationRound.pmsEvaluationRoundId == evaluationRoundId) || { check: false, data: undefined }
}
selectAppraisalPms(data?: AppraisalPmsModel) {
this.appraisalPms.select = JSON.parse(JSON.stringify(data || {}))
}
getAppraisalCompentencyList() {
this.appraisalCompentency.loading = true
this.appraisalService.getCompetencyList().subscribe({
......@@ -78,10 +102,6 @@ export class SelfEvaluationComponent implements OnInit {
this.competencyTypeId = typeId
}
appraisalPmsFilter() {
return this.appraisalPms.dataList
}
showTools(data: string[]) {
return data.join("/")
}
......
......@@ -10,6 +10,7 @@ export interface AppraisalCompentencyModel {
apsapprove4: Apsapprove4
apsapprove5: Apsapprove5
masfromEvaluationAssessment1: MasfromEvaluationAssessment1[]
statusCheckDate: boolean
}
export interface PersonalLevel {
......
export interface AppraisalPmsModel {
personalLevel: PersonalLevel
pmsMasfromEvaluationRound: PmsMasfromEvaluationRound
companyId: string
active: boolean
statusEmp: boolean
fromDetail: string
apsassessy: Apsassessy
apsapprove1: Apsapprove1
apsapprove2: Apsapprove2
apsapprove3: Apsapprove3
apsapprove4: Apsapprove4
apsapprove5: Apsapprove5
apsassessyStatus: string
apsapprove1Status: string
apsapprove2Status: string
apsapprove3Status: string
apsapprove4Status: string
apsapprove5Status: string
apsassessyScore: number
apsapprove1Score: number
apsapprove2Score: number
apsapprove3Score: number
apsapprove4Score: number
apsapprove5Score: number
masfromStatusType: MasfromStatusType
currentStep: string
lastStep: string
checkStep: string
}
export interface PersonalLevel {
plId: string
tdesc: string
edesc: string
companyId: string
}
export interface PmsMasfromEvaluationRound {
pmsEvaluationRoundId: string
companyId: string
tdesc: string
edesc: string
apsyear: string
apsPeriodStart: string
apsPeriodEnd: string
jlId: string
personalLevel: PersonalLevel2[]
active: number
statusFrom: StatusFrom
statusCode: StatusCode
}
export interface PersonalLevel2 {
plId: string
tdesc: string
edesc: string
companyId: string
}
export interface StatusFrom {
code: string
tdesc: string
edesc: string
}
export interface StatusCode {
code: string
tdesc: string
edesc: string
}
export interface Apsassessy {
employeeId: string
bossId: string
prefix: Prefix
fname: string
lname: string
efname: string
elname: string
bu1: Bu1
bu2: Bu2
bu3: Bu3
bu4: Bu4
bu5: Bu5
position: Position
job: Job
pl: Pl
status: Status
time0: Time0
resignDate: string
endWorkDate: string
startDate: string
thFullName: string
engFullName: string
}
export interface Prefix {
prefixId: string
tdesc: string
edesc: string
}
export interface Bu1 {
bu1id: string
tdesc: string
edesc: string
companyId: string
}
export interface Bu2 {
bu2id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu3 {
bu3id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu4 {
bu4id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu5 {
bu5id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Position {
positionId: string
tdesc: string
edesc: string
consolidate: string
shortName: string
companyId: string
}
export interface Job {
jobCodeId: string
tdesc: string
edesc: string
}
export interface Pl {
plId: string
tdesc: string
edesc: string
companyId: string
}
export interface Status {
statusCode: string
statusType: string
tdesc: string
edesc: string
}
export interface Time0 {
time0id: string
tdesc: string
edesc: string
stickTm: string
hourD: number
}
export interface Apsapprove1 {
employeeId: string
bossId: string
prefix: Prefix2
fname: string
lname: string
efname: string
elname: string
bu1: Bu12
bu2: Bu22
bu3: Bu32
bu4: Bu42
bu5: Bu52
position: Position2
job: Job2
pl: Pl2
status: Status2
time0: Time02
resignDate: string
endWorkDate: string
startDate: string
thFullName: string
engFullName: string
}
export interface Prefix2 {
prefixId: string
tdesc: string
edesc: string
}
export interface Bu12 {
bu1id: string
tdesc: string
edesc: string
companyId: string
}
export interface Bu22 {
bu2id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu32 {
bu3id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu42 {
bu4id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu52 {
bu5id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Position2 {
positionId: string
tdesc: string
edesc: string
consolidate: string
shortName: string
companyId: string
}
export interface Job2 {
jobCodeId: string
tdesc: string
edesc: string
}
export interface Pl2 {
plId: string
tdesc: string
edesc: string
companyId: string
}
export interface Status2 {
statusCode: string
statusType: string
tdesc: string
edesc: string
}
export interface Time02 {
time0id: string
tdesc: string
edesc: string
stickTm: string
hourD: number
}
export interface Apsapprove2 {
employeeId: string
bossId: string
prefix: Prefix3
fname: string
lname: string
efname: string
elname: string
bu1: Bu13
bu2: Bu23
bu3: Bu33
bu4: Bu43
bu5: Bu53
position: Position3
job: Job3
pl: Pl3
status: Status3
time0: Time03
resignDate: string
endWorkDate: string
startDate: string
thFullName: string
engFullName: string
}
export interface Prefix3 {
prefixId: string
tdesc: string
edesc: string
}
export interface Bu13 {
bu1id: string
tdesc: string
edesc: string
companyId: string
}
export interface Bu23 {
bu2id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu33 {
bu3id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu43 {
bu4id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu53 {
bu5id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Position3 {
positionId: string
tdesc: string
edesc: string
consolidate: string
shortName: string
companyId: string
}
export interface Job3 {
jobCodeId: string
tdesc: string
edesc: string
}
export interface Pl3 {
plId: string
tdesc: string
edesc: string
companyId: string
}
export interface Status3 {
statusCode: string
statusType: string
tdesc: string
edesc: string
}
export interface Time03 {
time0id: string
tdesc: string
edesc: string
stickTm: string
hourD: number
}
export interface Apsapprove3 {
employeeId: string
bossId: string
prefix: Prefix4
fname: string
lname: string
efname: string
elname: string
bu1: Bu14
bu2: Bu24
bu3: Bu34
bu4: Bu44
bu5: Bu54
position: Position4
job: Job4
pl: Pl4
status: Status4
time0: Time04
resignDate: string
endWorkDate: string
startDate: string
thFullName: string
engFullName: string
}
export interface Prefix4 {
prefixId: string
tdesc: string
edesc: string
}
export interface Bu14 {
bu1id: string
tdesc: string
edesc: string
companyId: string
}
export interface Bu24 {
bu2id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu34 {
bu3id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu44 {
bu4id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu54 {
bu5id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Position4 {
positionId: string
tdesc: string
edesc: string
consolidate: string
shortName: string
companyId: string
}
export interface Job4 {
jobCodeId: string
tdesc: string
edesc: string
}
export interface Pl4 {
plId: string
tdesc: string
edesc: string
companyId: string
}
export interface Status4 {
statusCode: string
statusType: string
tdesc: string
edesc: string
}
export interface Time04 {
time0id: string
tdesc: string
edesc: string
stickTm: string
hourD: number
}
export interface Apsapprove4 {
employeeId: string
bossId: string
prefix: Prefix5
fname: string
lname: string
efname: string
elname: string
bu1: Bu15
bu2: Bu25
bu3: Bu35
bu4: Bu45
bu5: Bu55
position: Position5
job: Job5
pl: Pl5
status: Status5
time0: Time05
resignDate: string
endWorkDate: string
startDate: string
thFullName: string
engFullName: string
}
export interface Prefix5 {
prefixId: string
tdesc: string
edesc: string
}
export interface Bu15 {
bu1id: string
tdesc: string
edesc: string
companyId: string
}
export interface Bu25 {
bu2id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu35 {
bu3id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu45 {
bu4id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu55 {
bu5id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Position5 {
positionId: string
tdesc: string
edesc: string
consolidate: string
shortName: string
companyId: string
}
export interface Job5 {
jobCodeId: string
tdesc: string
edesc: string
}
export interface Pl5 {
plId: string
tdesc: string
edesc: string
companyId: string
}
export interface Status5 {
statusCode: string
statusType: string
tdesc: string
edesc: string
}
export interface Time05 {
time0id: string
tdesc: string
edesc: string
stickTm: string
hourD: number
}
export interface Apsapprove5 {
employeeId: string
bossId: string
prefix: Prefix6
fname: string
lname: string
efname: string
elname: string
bu1: Bu16
bu2: Bu26
bu3: Bu36
bu4: Bu46
bu5: Bu56
position: Position6
job: Job6
pl: Pl6
status: Status6
time0: Time06
resignDate: string
endWorkDate: string
startDate: string
thFullName: string
engFullName: string
}
export interface Prefix6 {
prefixId: string
tdesc: string
edesc: string
}
export interface Bu16 {
bu1id: string
tdesc: string
edesc: string
companyId: string
}
export interface Bu26 {
bu2id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu36 {
bu3id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu46 {
bu4id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Bu56 {
bu5id: string
tdesc: string
edesc: string
parent: string
companyId: string
}
export interface Position6 {
positionId: string
tdesc: string
edesc: string
consolidate: string
shortName: string
companyId: string
}
export interface Job6 {
jobCodeId: string
tdesc: string
edesc: string
}
export interface Pl6 {
plId: string
tdesc: string
edesc: string
companyId: string
}
export interface Status6 {
statusCode: string
statusType: string
tdesc: string
edesc: string
}
export interface Time06 {
time0id: string
tdesc: string
edesc: string
stickTm: string
hourD: number
}
export interface MasfromStatusType {
code: string
tdesc: string
edesc: string
}
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';
import { environment } from 'src/environments/environment';
import { AlertModel } from '../model/alert.model';
import { AppraisalFormModel } from '../model/appraisal-form.model';
import { AppraisalCompentencyModel, AppraisalCompentencyModel2 } from '../model/appraisal-competency.model';
import { AppraisalSubordinateModel } from '../model/appraisal-subordinate.model';
import { AppraisalPmsFormModel } from '../model/appraisal-pms-form.model';
import { AppraisalPmsModel } from '../model/appraisal-pms.model';
@Injectable({
providedIn: 'root'
})
......@@ -28,6 +28,9 @@ export class AppraisalService {
return this.http.get<AppraisalSubordinateModel[]>(this.urlApi + "/boss/emp")
}
getPmsList(): Observable<AppraisalPmsModel[]> {
return this.http.get<AppraisalPmsModel[]>(this.urlApi + "/pms/emp")
}
getFormPmsById(evaluationRoundId: string, apsassessy: string): Observable<AppraisalPmsFormModel> {
return this.http.get<AppraisalPmsFormModel>(this.urlApi + "/pms/" + evaluationRoundId + "/" + apsassessy)
}
......
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