Commit 5beee0d8 by Nattana Chaiyamat

idp pms

parent 5800b432
...@@ -320,8 +320,8 @@ ...@@ -320,8 +320,8 @@
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='1'||!canEdit" [class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='1'||!canSave"
[readonly]="!formIdp.data||formIdp.data.currentStep!='1'||!canEdit" [readonly]="!formIdp.data||formIdp.data.currentStep!='1'||!canSave"
[(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove1Comment"></textarea> [(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove1Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
...@@ -343,8 +343,8 @@ ...@@ -343,8 +343,8 @@
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='2'||!canEdit" [class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='2'||!canSave"
[readonly]="!formIdp.data||formIdp.data.currentStep!='2'||!canEdit" [readonly]="!formIdp.data||formIdp.data.currentStep!='2'||!canSave"
[(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove2Comment"></textarea> [(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove2Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
...@@ -366,8 +366,8 @@ ...@@ -366,8 +366,8 @@
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='3'||!canEdit" [class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='3'||!canSave"
[readonly]="!formIdp.data||formIdp.data.currentStep!='3'||!canEdit" [readonly]="!formIdp.data||formIdp.data.currentStep!='3'||!canSave"
[(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove3Comment"></textarea> [(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove3Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
...@@ -389,8 +389,8 @@ ...@@ -389,8 +389,8 @@
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='4'||!canEdit" [class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='4'||!canSave"
[readonly]="!formIdp.data||formIdp.data.currentStep!='4'||!canEdit" [readonly]="!formIdp.data||formIdp.data.currentStep!='4'||!canSave"
[(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove4Comment"></textarea> [(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove4Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
...@@ -412,8 +412,8 @@ ...@@ -412,8 +412,8 @@
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='5'||!canEdit" [class.!bg-input-readonly]="!formIdp.data||formIdp.data.currentStep!='5'||!canSave"
[readonly]="!formIdp.data||formIdp.data.currentStep!='5'||!canEdit" [readonly]="!formIdp.data||formIdp.data.currentStep!='5'||!canSave"
[(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove5Comment"></textarea> [(ngModel)]="formIdp.data.masfromEvaluationIdp.apsapprove5Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
...@@ -423,7 +423,7 @@ ...@@ -423,7 +423,7 @@
</div> </div>
</div> </div>
<div class="flex justify-center mb-1rem pb-2rem" *ngIf="canEdit"> <div class="flex justify-center mb-1rem pb-2rem" *ngIf="canSave">
<button type="submit" class="ti-btn ti-btn-success mx-2rem" (click)="save('draft')"> <button type="submit" class="ti-btn ti-btn-success mx-2rem" (click)="save('draft')">
บันทึกร่าง บันทึกร่าง
</button> </button>
......
...@@ -13,11 +13,13 @@ export class IdpEvalutionComponent { ...@@ -13,11 +13,13 @@ export class IdpEvalutionComponent {
@Input() evaluationRoundId = "" @Input() evaluationRoundId = ""
@Input() evaluateeId = "" @Input() evaluateeId = ""
@Input() evaluaterId = "" @Input() evaluaterId = ""
@Input() masfromStatusType = ""
@Output() sendReturnPath: EventEmitter<any> = new EventEmitter<any>(); @Output() sendReturnPath: EventEmitter<any> = new EventEmitter<any>();
currentDate = new Date() currentDate = new Date()
hoveredCode: string | null = null; hoveredCode: string | null = null;
formIdp: { loading: boolean, data?: IdpFormModel } = { loading: false, data: undefined } formIdp: { loading: boolean, data?: IdpFormModel } = { loading: false, data: undefined }
canEdit = false canEdit = false
canSave = false
constructor(private evaluationIdpService: EvaluationIdpService, constructor(private evaluationIdpService: EvaluationIdpService,
private employeeService: EmployeeService, private employeeService: EmployeeService,
private cdr: ChangeDetectorRef private cdr: ChangeDetectorRef
...@@ -32,7 +34,8 @@ export class IdpEvalutionComponent { ...@@ -32,7 +34,8 @@ export class IdpEvalutionComponent {
next: response => { next: response => {
this.formIdp.data = JSON.parse(JSON.stringify(response)) this.formIdp.data = JSON.parse(JSON.stringify(response))
if (this.formIdp.data) { if (this.formIdp.data) {
this.canEdit = this.formIdp.data.currentStep == this.formIdp.data.checkStep this.canSave = (this.formIdp.data.currentStep == this.formIdp.data.checkStep) && (this.masfromStatusType != 'Boss_finish' && this.masfromStatusType != 'Not_evaluating_yet')
this.canEdit = (this.formIdp.data.currentStep == this.formIdp.data.checkStep && (+(this.formIdp.data.checkStep) <= 1))
} }
switch (this.formIdp.data?.currentStep) { switch (this.formIdp.data?.currentStep) {
case ("0"): { case ("0"): {
......
...@@ -128,162 +128,163 @@ ...@@ -128,162 +128,163 @@
<!-- <div class="py-1rem px-2rem"> <div class="py-1rem px-2rem">
<div class="py-2 grid grid-cols-7 gap-3"> <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"> <div class="col-span-1">
{{appraisalCompentency.data.apsassessy.thFullName}}</div> {{appraisalPms.data.apsassessy.thFullName}}</div>
<div class="col-span-1"> <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 <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:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none "
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyStatus=='2'"> [checked]="appraisalPms.data.apsassessyStatus=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label> <label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='0'||!canSave" [class.!bg-input-readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='0'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='0'||!canSave" [readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='0'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyComment"></textarea> [(ngModel)]="appraisalPms.data.apsassessyComment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsassessyDate)}} {{convertDate(appraisalPms.data.apsassessyDate)}}
</span> </span>
</div> </div>
</div> </div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove1.employeeId"> <div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalPms.data.apsapprove1.employeeId">
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove2.employeeId?'ผู้ประเมิน1':'ผู้อนุมัติ'}} {{appraisalPms.data.apsapprove2.employeeId?'ผู้ประเมิน1':'ผู้อนุมัติ'}}
</div> </div>
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove1.thFullName}}</div> {{appraisalPms.data.apsapprove1.thFullName}}</div>
<div class="col-span-1"> <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 <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:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Status=='2'"> [checked]="appraisalPms.data.apsapprove1Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label> <label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='1'||!canSave" [class.!bg-input-readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='1'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='1'||!canSave" [readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='1'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Comment"></textarea> [(ngModel)]="appraisalPms.data.apsapprove1Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove1Date)}} {{convertDate(appraisalPms.data.apsapprove1Date)}}
</span> </span>
</div> </div>
</div> </div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove2.employeeId"> <div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalPms.data.apsapprove2.employeeId">
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove3.employeeId?'ผู้ประเมิน2':'ผู้อนุมัติ'}} {{appraisalPms.data.apsapprove3.employeeId?'ผู้ประเมิน2':'ผู้อนุมัติ'}}
</div> </div>
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove2.thFullName}}</div> {{appraisalPms.data.apsapprove2.thFullName}}</div>
<div class="col-span-1"> <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 <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:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Status=='2'"> [checked]="appraisalPms.data.apsapprove2Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label> <label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='2'||!canSave" [class.!bg-input-readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='2'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='2'||!canSave" [readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='2'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Comment"></textarea> [(ngModel)]="appraisalPms.data.apsapprove2Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove2Date)}} {{convertDate(appraisalPms.data.apsapprove2Date)}}
</span> </span>
</div> </div>
</div> </div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove3.employeeId"> <div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalPms.data.apsapprove3.employeeId">
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove4.employeeId?'ผู้ประเมิน3':'ผู้อนุมัติ'}} {{appraisalPms.data.apsapprove4.employeeId?'ผู้ประเมิน3':'ผู้อนุมัติ'}}
</div> </div>
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove3.thFullName}}</div> {{appraisalPms.data.apsapprove3.thFullName}}</div>
<div class="col-span-1"> <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 <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:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Status=='2'"> [checked]="appraisalPms.data.apsapprove3Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label> <label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='3'||!canSave" [class.!bg-input-readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='3'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='3'||!canSave" [readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='3'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Comment"></textarea> [(ngModel)]="appraisalPms.data.apsapprove3Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove3Date)}} {{convertDate(appraisalPms.data.apsapprove3Date)}}
</span> </span>
</div> </div>
</div> </div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove4.employeeId"> <div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalPms.data.apsapprove4.employeeId">
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove5.employeeId?'ผู้ประเมิน4':'ผู้อนุมัติ'}} {{appraisalPms.data.apsapprove5.employeeId?'ผู้ประเมิน4':'ผู้อนุมัติ'}}
</div> </div>
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove4.thFullName}}</div> {{appraisalPms.data.apsapprove4.thFullName}}</div>
<div class="col-span-1"> <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 <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:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Status=='2'"> [checked]="appraisalPms.data.apsapprove4Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label> <label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='4'||!canSave" [class.!bg-input-readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='4'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='4'||!canSave" [readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='4'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Comment"></textarea> [(ngModel)]="appraisalPms.data.apsapprove4Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove4Date)}} {{convertDate(appraisalPms.data.apsapprove4Date)}}
</span> </span>
</div> </div>
</div> </div>
<div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalCompentency.data.apsapprove5.employeeId"> <div class="py-2 grid grid-cols-7 gap-3" *ngIf="appraisalPms.data.apsapprove5.employeeId">
<div class="col-span-1"> <div class="col-span-1">
ผู้อนุมัติ ผู้อนุมัติ
</div> </div>
<div class="col-span-1"> <div class="col-span-1">
{{appraisalCompentency.data.apsapprove5.thFullName}}</div> {{appraisalPms.data.apsapprove5.thFullName}}</div>
<div class="col-span-1"> <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 <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:before:bg-green-200 dark:checked:before:bg-green-200 pointer-events-none"
[checked]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Status=='2'"> [checked]="appraisalPms.data.apsapprove5Status=='2'">
<label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label> <label for="hs-basic-usage1" class="sr-only">ยืนยันผล</label>
</div> </div>
<div class="col-span-2"> <div class="col-span-2">
<textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่" <textarea type="text" rows="2" class="ti-form-input mb-2" placeholder="ใส่ Comment ที่นี่"
[class.!bg-input-readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='5'||!canSave" [class.!bg-input-readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='5'||!canSave"
[readonly]="!appraisalCompentency.data||appraisalCompentency.data.currentStep!='5'||!canSave" [readonly]="!appraisalPms.data||appraisalPms.data.currentStep!='5'||!canSave"
[(ngModel)]="appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Comment"></textarea> [(ngModel)]="appraisalPms.data.apsapprove5Comment"></textarea>
<span class="pt-2"> <span class="pt-2">
วันที่ : วันที่ :
{{convertDate(appraisalCompentency.data.masfromEvaluationAssessment1lList[0].apsapprove5Date)}} {{convertDate(appraisalPms.data.apsapprove5Date)}}
</span> </span>
</div> </div>
</div> </div>
</div> </div>
<div class="flex justify-center mb-1rem pb-2rem" *ngIf="canSave"> <div class="flex justify-center mb-1rem pb-2rem" *ngIf="canSave">
<button *ngIf="appraisalCompentency.data.checkStep!='0'&&appraisalCompentency.data.checkStep!='1'" <button *ngIf="appraisalPms.data.checkStep!='0'&&appraisalPms.data.checkStep!='1'" type="submit"
type="submit" class="ti-btn ti-btn-danger mx-2rem" (click)="save('noApprove')"> class="ti-btn ti-btn-danger mx-2rem" (click)="save('noApprove')">
ไม่อนุมัติ ไม่อนุมัติ
</button> </button>
<button type="submit" class="ti-btn ti-btn-success mx-2rem" (click)="save('draft')"> <button type="submit" class="ti-btn ti-btn-success mx-2rem" (click)="save('draft')">
บันทึกร่าง บันทึกร่าง
</button> </button>
<button type="submit" class="ti-btn ti-btn-secondary mx-2rem" (click)="save('approve')"> <button type="submit" class="ti-btn ti-btn-secondary mx-2rem" (click)="save('approve')">
<ng-container *ngIf="appraisalCompentency.data.checkStep=='0'"> <ng-container *ngIf="appraisalPms.data.checkStep=='0'">
ยืนยันข้อมูล ยืนยันข้อมูล
</ng-container> </ng-container>
<ng-container *ngIf="appraisalCompentency.data.checkStep!='0'"> <ng-container *ngIf="appraisalPms.data.checkStep!='0'">
อนุมัติ อนุมัติ
</ng-container> </ng-container>
</button> </button>
</div> --> </div>
</ng-container> </ng-container>
</ng-template> </ng-template>
...@@ -371,32 +372,37 @@ ...@@ -371,32 +372,37 @@
{{item.weight}} {{item.weight}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part1radioA'+i" (click)="setScore(item,5)" [name]="'part1radio'+i" class="ti-form-radio" [id]="'part1radioA'+i"
(click)="setScore(item,5)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}} {{item.groupAssessment1.pmsTopic.targetAdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part1radioB'+i" (click)="setScore(item,4)" [name]="'part1radio'+i" class="ti-form-radio" [id]="'part1radioB'+i"
(click)="setScore(item,4)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}} {{item.groupAssessment1.pmsTopic.targetBdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part1radioC'+i" (click)="setScore(item,3)" [name]="'part1radio'+i" class="ti-form-radio" [id]="'part1radioC'+i"
(click)="setScore(item,3)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}} {{item.groupAssessment1.pmsTopic.targetCdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part1radioD'+i" (click)="setScore(item,2)" [name]="'part1radio'+i" class="ti-form-radio" [id]="'part1radioD'+i"
(click)="setScore(item,2)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}} {{item.groupAssessment1.pmsTopic.targetDdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part1radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part1radioE'+i" (click)="setScore(item,1)" [name]="'part1radio'+i" class="ti-form-radio" [id]="'part1radioE'+i"
(click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}} {{item.groupAssessment1.pmsTopic.targetEdetail}}
</td> </td>
...@@ -551,32 +557,37 @@ ...@@ -551,32 +557,37 @@
{{item.weight}} {{item.weight}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part2radioA'+i" (click)="setScore(item,5)" [name]="'part2radio'+i" class="ti-form-radio" [id]="'part2radioA'+i"
(click)="setScore(item,5)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}} {{item.groupAssessment1.pmsTopic.targetAdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part2radioB'+i" (click)="setScore(item,4)" [name]="'part2radio'+i" class="ti-form-radio" [id]="'part2radioB'+i"
(click)="setScore(item,4)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}} {{item.groupAssessment1.pmsTopic.targetBdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part2radioC'+i" (click)="setScore(item,3)" [name]="'part2radio'+i" class="ti-form-radio" [id]="'part2radioC'+i"
(click)="setScore(item,3)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}} {{item.groupAssessment1.pmsTopic.targetCdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part2radioD'+i" (click)="setScore(item,2)" [name]="'part2radio'+i" class="ti-form-radio" [id]="'part2radioD'+i"
(click)="setScore(item,2)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}} {{item.groupAssessment1.pmsTopic.targetDdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part2radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part2radioE'+i" (click)="setScore(item,1)" [name]="'part2radio'+i" class="ti-form-radio" [id]="'part2radioE'+i"
(click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}} {{item.groupAssessment1.pmsTopic.targetEdetail}}
</td> </td>
...@@ -724,32 +735,37 @@ ...@@ -724,32 +735,37 @@
{{item.weight}} {{item.weight}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part3radioA'+i" (click)="setScore(item,5)" [name]="'part3radio'+i" class="ti-form-radio" [id]="'part3radioA'+i"
(click)="setScore(item,5)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}} {{item.groupAssessment1.pmsTopic.targetAdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part3radioB'+i" (click)="setScore(item,4)" [name]="'part3radio'+i" class="ti-form-radio" [id]="'part3radioB'+i"
(click)="setScore(item,4)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}} {{item.groupAssessment1.pmsTopic.targetBdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part3radioC'+i" (click)="setScore(item,3)" [name]="'part3radio'+i" class="ti-form-radio" [id]="'part3radioC'+i"
(click)="setScore(item,3)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}} {{item.groupAssessment1.pmsTopic.targetCdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part3radioD'+i" (click)="setScore(item,2)" [name]="'part3radio'+i" class="ti-form-radio" [id]="'part3radioD'+i"
(click)="setScore(item,2)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}} {{item.groupAssessment1.pmsTopic.targetDdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part3radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part3radioE'+i" (click)="setScore(item,1)" [name]="'part3radio'+i" class="ti-form-radio" [id]="'part3radioE'+i"
(click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}} {{item.groupAssessment1.pmsTopic.targetEdetail}}
</td> </td>
...@@ -1038,36 +1054,36 @@ ...@@ -1038,36 +1054,36 @@
{{item.weight}} {{item.weight}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part5radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part5radioA'+i" [name]="'part5radio'+i" class="ti-form-radio" [id]="'part5radioA'+i"
(click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=5:item.pmsWorkingTimScoreBoss=5" (click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=5:item.pmsWorkingTimScoreBoss=5"
[checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==5:item.pmsWorkingTimScoreBoss==5"><br> [checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==5:item.pmsWorkingTimScoreBoss==5"><br>
{{item.targetADetail}} {{item.targetADetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part5radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part5radioB'+i" [name]="'part5radio'+i" class="ti-form-radio" [id]="'part5radioB'+i"
(click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=4:item.pmsWorkingTimScoreBoss=4" (click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=4:item.pmsWorkingTimScoreBoss=4"
[checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==4:item.pmsWorkingTimScoreBoss==4"><br> [checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==4:item.pmsWorkingTimScoreBoss==4"><br>
{{item.targetBDetail}} {{item.targetBDetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part5radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part5radioC'+i" [name]="'part5radio'+i" class="ti-form-radio" [id]="'part5radioC'+i"
(click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=3:item.pmsWorkingTimScoreBoss=3" (click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=3:item.pmsWorkingTimScoreBoss=3"
[checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==3:item.pmsWorkingTimScoreBoss==3"><br> [checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==3:item.pmsWorkingTimScoreBoss==3"><br>
{{item.targetCDetail}} {{item.targetCDetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part5radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part5radioD'+i" [name]="'part5radio'+i" class="ti-form-radio" [id]="'part5radioD'+i"
(click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=2:item.pmsWorkingTimScoreBoss=2" (click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=2:item.pmsWorkingTimScoreBoss=2"
[checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==2:item.pmsWorkingTimScoreBoss==2"><br> [checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==2:item.pmsWorkingTimScoreBoss==2"><br>
{{item.targetDDetail}} {{item.targetDDetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part5radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part5radioE'+i" [name]="'part5radio'+i" class="ti-form-radio" [id]="'part5radioE'+i"
(click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=1:item.pmsWorkingTimScoreBoss=1" (click)="evaluaterId==evaluateeId?item.pmsWorkingTimScore=1:item.pmsWorkingTimScoreBoss=1"
[checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==1:item.pmsWorkingTimScoreBoss==1"><br> [checked]="evaluaterId==evaluateeId?item.pmsWorkingTimScore==1:item.pmsWorkingTimScoreBoss==1"><br>
{{item.targetEDetail}} {{item.targetEDetail}}
...@@ -1215,32 +1231,37 @@ ...@@ -1215,32 +1231,37 @@
{{item.weight}} {{item.weight}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part6radioA'+i" (click)="setScore(item,5)" [name]="'part6radio'+i" class="ti-form-radio" [id]="'part6radioA'+i"
(click)="setScore(item,5)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}} {{item.groupAssessment1.pmsTopic.targetAdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part6radioB'+i" (click)="setScore(item,4)" [name]="'part6radio'+i" class="ti-form-radio" [id]="'part6radioB'+i"
(click)="setScore(item,4)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}} {{item.groupAssessment1.pmsTopic.targetBdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part6radioC'+i" (click)="setScore(item,3)" [name]="'part6radio'+i" class="ti-form-radio" [id]="'part6radioC'+i"
(click)="setScore(item,3)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}} {{item.groupAssessment1.pmsTopic.targetCdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part6radioD'+i" (click)="setScore(item,2)" [name]="'part6radio'+i" class="ti-form-radio" [id]="'part6radioD'+i"
(click)="setScore(item,2)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}} {{item.groupAssessment1.pmsTopic.targetDdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part6radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part6radioE'+i" (click)="setScore(item,1)" [name]="'part6radio'+i" class="ti-form-radio" [id]="'part6radioE'+i"
(click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}} {{item.groupAssessment1.pmsTopic.targetEdetail}}
</td> </td>
...@@ -1395,32 +1416,37 @@ ...@@ -1395,32 +1416,37 @@
{{item.weight}} {{item.weight}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part7radioA'+i" (click)="setScore(item,5)" [name]="'part7radio'+i" class="ti-form-radio" [id]="'part7radioA'+i"
(click)="setScore(item,5)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==5:item.scoreTopicExpectationBoss==5"><br>
{{item.groupAssessment1.pmsTopic.targetAdetail}} {{item.groupAssessment1.pmsTopic.targetAdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part7radioB'+i" (click)="setScore(item,4)" [name]="'part7radio'+i" class="ti-form-radio" [id]="'part7radioB'+i"
(click)="setScore(item,4)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==4:item.scoreTopicExpectationBoss==4"><br>
{{item.groupAssessment1.pmsTopic.targetBdetail}} {{item.groupAssessment1.pmsTopic.targetBdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part7radioC'+i" (click)="setScore(item,3)" [name]="'part7radio'+i" class="ti-form-radio" [id]="'part7radioC'+i"
(click)="setScore(item,3)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==3:item.scoreTopicExpectationBoss==3"><br>
{{item.groupAssessment1.pmsTopic.targetCdetail}} {{item.groupAssessment1.pmsTopic.targetCdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part7radioD'+i" (click)="setScore(item,2)" [name]="'part7radio'+i" class="ti-form-radio" [id]="'part7radioD'+i"
(click)="setScore(item,2)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==2:item.scoreTopicExpectationBoss==2"><br>
{{item.groupAssessment1.pmsTopic.targetDdetail}} {{item.groupAssessment1.pmsTopic.targetDdetail}}
</td> </td>
<td class="align-start text-center !white-space-normal "> <td class="align-start text-center !white-space-normal ">
<input type="radio" [name]="'part7radio'+i" class="ti-form-radio cursor-pointer" <input [class.cursor-pointer]="canEdit" [class.cursor-not-allowed]="!canEdit" [disabled]="!canEdit" type="radio"
[id]="'part7radioE'+i" (click)="setScore(item,1)" [name]="'part7radio'+i" class="ti-form-radio" [id]="'part7radioE'+i"
(click)="setScore(item,1)"
[checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br> [checked]="evaluaterId==evaluateeId?item.scoreTopicExpectation==1:item.scoreTopicExpectationBoss==1"><br>
{{item.groupAssessment1.pmsTopic.targetEdetail}} {{item.groupAssessment1.pmsTopic.targetEdetail}}
</td> </td>
......
...@@ -3,6 +3,7 @@ import { AppraisalPmsFormModel } from 'src/app/shared/model/appraisal-pms-form.m ...@@ -3,6 +3,7 @@ import { AppraisalPmsFormModel } from 'src/app/shared/model/appraisal-pms-form.m
import { AppraisalService } from 'src/app/shared/services/appraisal.service'; import { AppraisalService } from 'src/app/shared/services/appraisal.service';
import { EmployeeService } from 'src/app/shared/services/employee.service'; import { EmployeeService } from 'src/app/shared/services/employee.service';
import { SettingAssessmentService } from 'src/app/shared/services/setting-assessment.service'; import { SettingAssessmentService } from 'src/app/shared/services/setting-assessment.service';
import Swal from 'sweetalert2';
export interface DataModel7 { export interface DataModel7 {
evaluationFactor: string, evaluationFactor: string,
...@@ -25,7 +26,6 @@ export class PmsEvalutionComponent { ...@@ -25,7 +26,6 @@ export class PmsEvalutionComponent {
part5show = true part5show = true
part6show = true part6show = true
part7show = true part7show = true
part8show = true part8show = true
data8List: DataModel7[] = [{ data8List: DataModel7[] = [{
evaluationFactor: "Part 1 : ประเมินผลการปฏิบัติงานตามนโยบายบริษัท (Hoshin)", evaluationFactor: "Part 1 : ประเมินผลการปฏิบัติงานตามนโยบายบริษัท (Hoshin)",
...@@ -77,12 +77,15 @@ export class PmsEvalutionComponent { ...@@ -77,12 +77,15 @@ export class PmsEvalutionComponent {
} }
canEdit = false
canSave = false
currentDate = new Date()
@Input() pathTitle: string[] = [] @Input() pathTitle: string[] = []
@Input() evaluationRoundId = "" @Input() evaluationRoundId = ""
@Input() evaluateeId = "" @Input() evaluateeId = ""
@Input() evaluaterId = "" @Input() evaluaterId = ""
@Input() competencyTypeId = "" @Input() competencyTypeId = ""
@Input() masfromStatusType = ""
@Output() sendReturnPath: EventEmitter<any> = new EventEmitter<any>(); @Output() sendReturnPath: EventEmitter<any> = new EventEmitter<any>();
appraisalPms: { loading: boolean, data?: AppraisalPmsFormModel } = { loading: false, data: undefined } appraisalPms: { loading: boolean, data?: AppraisalPmsFormModel } = { loading: false, data: undefined }
constructor(private appraisalService: AppraisalService, constructor(private appraisalService: AppraisalService,
...@@ -100,6 +103,49 @@ export class PmsEvalutionComponent { ...@@ -100,6 +103,49 @@ export class PmsEvalutionComponent {
next: response => { next: response => {
console.log(" 🐒 response:", response) console.log(" 🐒 response:", response)
this.appraisalPms.data = JSON.parse(JSON.stringify(response)) this.appraisalPms.data = JSON.parse(JSON.stringify(response))
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)
switch (this.appraisalPms.data?.currentStep) {
case ("0"): {
if (this.canSave) {
this.appraisalPms.data.apsassessyDate = this.currentDate.toISOString().split('T')[0];
}
break
}
case ("1"): {
if (this.canSave) {
this.appraisalPms.data.apsapprove1Date = this.currentDate.toISOString().split('T')[0];
}
break
}
case ("2"): {
if (this.canSave) {
this.appraisalPms.data.apsapprove2Date = this.currentDate.toISOString().split('T')[0];
}
break
}
case ("3"): {
if (this.canSave) {
this.appraisalPms.data.apsapprove3Date = this.currentDate.toISOString().split('T')[0];
}
break
}
case ("4"): {
if (this.canSave) {
this.appraisalPms.data.apsapprove4Date = this.currentDate.toISOString().split('T')[0];
}
break
}
case ("5"): {
if (this.canSave) {
this.appraisalPms.data.apsapprove5Date = this.currentDate.toISOString().split('T')[0];
}
break
}
default: { return }
}
}
this.appraisalPms.loading = false this.appraisalPms.loading = false
this.cdr.detectChanges() this.cdr.detectChanges()
}, error: error => { }, error: error => {
...@@ -218,11 +264,188 @@ export class PmsEvalutionComponent { ...@@ -218,11 +264,188 @@ export class PmsEvalutionComponent {
} }
setScore(item: any, score: number) { setScore(item: any, score: number) {
if (this.evaluaterId == this.evaluateeId) { console.log(" 🐒 this.canEdit:", this.canEdit)
item.scoreTopicExpectation = score if(this.canEdit){
item.scoreTopicExpectationBoss = score console.log(" 🐒 this.canEdit:", this.canEdit)
if (this.evaluaterId == this.evaluateeId) {
item.scoreTopicExpectation = score
item.scoreTopicExpectationBoss = score
} else {
item.scoreTopicExpectationBoss = score
}
}
}
convertDate(dateInput?: string | Date): string {
let date = new Date()
if (dateInput) {
if (typeof dateInput === 'string') {
const [year, month, day] = dateInput.split('-').map(Number);
date = new Date(year, month - 1, day);
} else {
date = dateInput
}
} else { } else {
item.scoreTopicExpectationBoss = score return ''
}
return date?.toLocaleDateString('th-TH', { day: 'numeric', month: 'long', year: 'numeric' }) || ''
}
save(status: 'approve' | 'noApprove' | 'draft') {
let title = ''
let text = ''
let confirmButtonText = ''
let approveStatus = '0'
if (status == 'draft') {
title = 'บันทึกแบบร่าง'
text = 'คุณต้องการบันทึกแบบร่างของการประเมินนี้ใช่หรือไม่'
confirmButtonText = 'ยืนยันการบันทึก'
approveStatus = '1'
} else if (status == 'approve') {
approveStatus = '2'
if (this.appraisalPms?.data?.checkStep == '0') {
title = 'ยืนยันข้อมูล'
text = 'คุณต้องการยืนยันข้อมูลการประเมินนี้ใช่หรือไม่'
confirmButtonText = 'ยืนยันการบันทึก'
} else {
title == 'อนุมัติ'
text = 'คุณต้องการอนุมัติข้อมูลการประเมินนี้ใช่หรือไม่'
confirmButtonText = 'ยืนยันการอนุมัติ'
}
} else if (status == 'noApprove') {
approveStatus = '0'
title == 'ไม่อนุมัติ'
text = 'คุณต้องการไม่อนุมัติข้อมูลการประเมินนี้ใช่หรือไม่'
confirmButtonText = 'ยืนยันการไม่อนุมัติ'
}
Swal.fire({
iconHtml: `
<div class="flex items-center justify-center rounded-full !h-80px !w-80px" style="background-color: #E8F8EE;">
<svg width="39" height="39" viewBox="0 0 39 39" fill="none" xmlns="http://www.w3.org/2000/svg">
<rect width="39" height="39" fill="#D2D2D2"/>
<g id="Component">
<g id="alert cart">
<g id="mdi:file-export">
<circle cx="22.5" cy="19.5" r="33.5" fill="#E8F8EE"/>
<path d="M9.75 3.25C8.88805 3.25 8.0614 3.59241 7.4519 4.2019C6.84241 4.8114 6.5 5.63805 6.5 6.5V32.5C6.5 33.362 6.84241 34.1886 7.4519 34.7981C8.0614 35.4076 8.88805 35.75 9.75 35.75H29.25C30.112 35.75 30.9386 35.4076 31.5481 34.7981C32.1576 34.1886 32.5 33.362 32.5 32.5V13L22.75 3.25M21.125 5.6875L30.0625 14.625H21.125M14.5113 19.8575H26V31.3463L22.555 27.9013L17.9563 32.5L13.3575 27.9013L17.9563 23.3188"
fill="#1DBE5A"/>
</g>
</g>
</g>
</svg>
</div>
`,
title: title,
text: text,
showCancelButton: true,
confirmButtonText: confirmButtonText,
cancelButtonText: 'ย้อนกลับ',
customClass: {
title: '!swal2-title-mt-20px',
actions: '!swal2-actions-mt-20px',
icon: '!swal2-icon-no-border',
confirmButton: '!swal2-button-bg-green',
cancelButton: '!swal2-button-bg-gray',
},
}).then((result) => {
if (result.isConfirmed && this.appraisalPms) {
this.saveApi(approveStatus)
} else if (result.dismiss === Swal.DismissReason.cancel) {
Swal.fire({
title: 'ยกเลิก!',
text: 'การบันทึกถูกยกเลิก',
icon: 'error',
customClass: {
confirmButton: '!swal2-button-bg-danger',
}
})
}
})
}
saveApi(approveStatus: string) {
let body = this.appraisalPms.data
switch (this.appraisalPms.data?.currentStep) {
case ("0"): {
body = {
...this.appraisalPms.data,
apsassessyStatus: approveStatus
}
break
}
case ("1"): {
body = {
...this.appraisalPms.data,
apsapprove1Status: approveStatus
}
break
}
case ("2"): {
body = {
...this.appraisalPms.data,
apsapprove1Status: approveStatus == '0' ? approveStatus : this.appraisalPms.data.apsapprove1Status,
apsapprove2Status: approveStatus
}
break
}
case ("3"): {
body = {
...this.appraisalPms.data,
apsapprove2Status: approveStatus == '0' ? approveStatus : this.appraisalPms.data.apsapprove2Status,
apsapprove3Status: approveStatus
}
break
}
case ("4"): {
body = {
...this.appraisalPms.data,
apsapprove3Status: approveStatus == '0' ? approveStatus : this.appraisalPms.data.apsapprove3Status,
apsapprove4Status: approveStatus
}
break
}
case ("5"): {
body = {
...this.appraisalPms.data,
apsapprove4Status: approveStatus == '0' ? approveStatus : this.appraisalPms.data.apsapprove4Status,
apsapprove5Status: approveStatus
}
break
}
default: { return }
} }
this.appraisalService.postPms(body).subscribe({
next: response => {
if (response.success) {
Swal.fire({
title: 'บันทึกสำเร็จ!',
text: 'การประเมินของคุณถูกบันทึกแล้ว',
icon: 'success',
customClass: {
confirmButton: '!swal2-button-bg-green',
}
});
this.getAppraisalPmsForm()
} else {
Swal.fire({
title: 'ยกเลิก!',
text: 'การบันทึกถูกยกเลิก',
icon: 'error',
customClass: {
confirmButton: '!swal2-button-bg-danger',
}
});
}
}, error: error => {
Swal.fire({
title: 'ยกเลิก!',
text: 'การบันทึกถูกยกเลิก',
icon: 'error',
customClass: {
confirmButton: '!swal2-button-bg-danger',
}
});
}
})
} }
} }
\ No newline at end of file
...@@ -16,10 +16,9 @@ ...@@ -16,10 +16,9 @@
<nav class=" flex space-x-2 rtl:space-x-reverse"> <nav class=" flex space-x-2 rtl:space-x-reverse">
<a *ngFor="let item of appraisalCompentency.dataList; let i=index ; let f= first" <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="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" [class.ti-btn-soft-mute]="!item.statusCheckDate" [attr.data-hs-tab]="'#underline-'+(i+1)"
[attr.data-hs-tab]="'#underline-'+(i+1)" [attr.aria-controls]="'underline-'+(i+1)" [attr.aria-controls]="'underline-'+(i+1)" (click)="selectAppraisalCompentency(item)">
(click)="selectAppraisalCompentency(item)">
{{item.masfromEvaluationRound.tdesc}} {{item.masfromEvaluationRound.tdesc}}
</a> </a>
</nav> </nav>
...@@ -259,6 +258,7 @@ ...@@ -259,6 +258,7 @@
<ng-container *ngIf="onEdit=='pms'"> <ng-container *ngIf="onEdit=='pms'">
<app-pms-evalution [pathTitle]="['การประเมินผล', 'ประเมินตนเอง','ประเมิน']" <app-pms-evalution [pathTitle]="['การประเมินผล', 'ประเมินตนเอง','ประเมิน']"
(sendReturnPath)="getAppraisalCompentencyList();getAppraisalPmsList();onEdit='' ; pathTitle = ['การประเมินผล', 'ประเมินตนเอง']" (sendReturnPath)="getAppraisalCompentencyList();getAppraisalPmsList();onEdit='' ; pathTitle = ['การประเมินผล', 'ประเมินตนเอง']"
[masfromStatusType]="appraisalPms.select?.masfromStatusType?.code||''"
[evaluationRoundId]="appraisalPms.select?.pmsMasfromEvaluationRound?.pmsEvaluationRoundId || ''" [evaluationRoundId]="appraisalPms.select?.pmsMasfromEvaluationRound?.pmsEvaluationRoundId || ''"
[evaluaterId]="evaluatee.data.employeeId" [evaluateeId]="evaluatee.data.employeeId"></app-pms-evalution> [evaluaterId]="evaluatee.data.employeeId" [evaluateeId]="evaluatee.data.employeeId"></app-pms-evalution>
</ng-container> </ng-container>
\ No newline at end of file
...@@ -125,7 +125,7 @@ ...@@ -125,7 +125,7 @@
[class.ti-btn-soft-warning]="item.statusIdp.statusType == 'BossEvaluating'" [class.ti-btn-soft-warning]="item.statusIdp.statusType == 'BossEvaluating'"
[class.ti-btn-soft-success]="item.statusIdp.statusType == 'Boss_finish'" [class.ti-btn-soft-success]="item.statusIdp.statusType == 'Boss_finish'"
style="height: 15px; width: 45px; font-size: 12px; display: flex; align-items: center; justify-content: center;margin-left:4px;" 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='idp'"> (click)="selectSubordinate(item,'',subordinate.select?.evaluationRoundId,item.statusIdp.statusType);pageEvalution='idp'">
IDP IDP
</button> </button>
</div> </div>
...@@ -134,7 +134,7 @@ ...@@ -134,7 +134,7 @@
<div class="flex justify-center"> <div class="flex justify-center">
<button type="button" class="ti-btn rounded-sm ti-btn-soft-mute" <button type="button" class="ti-btn rounded-sm ti-btn-soft-mute"
style="height: 15px; width: 45px; font-size: 12px; display: flex; align-items: center; justify-content: center;margin-left:4px;" 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,'');pageEvalution='pms'">
PMS PMS
</button> </button>
</div> </div>
...@@ -241,14 +241,14 @@ ...@@ -241,14 +241,14 @@
<ng-container *ngIf="pageEvalution=='idp'"> <ng-container *ngIf="pageEvalution=='idp'">
<app-idp-evalution [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']" <app-idp-evalution [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']"
(sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']" (sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']"
[evaluationRoundId]="formEvaluation.evaluationRoundId" [evaluaterId]="formEvaluation.evaluaterId" [masfromStatusType]="formEvaluation.masfromStatusType" [evaluationRoundId]="formEvaluation.evaluationRoundId"
[evaluateeId]="formEvaluation.evaluateeId"></app-idp-evalution> [evaluaterId]="formEvaluation.evaluaterId" [evaluateeId]="formEvaluation.evaluateeId"></app-idp-evalution>
</ng-container> </ng-container>
<ng-container *ngIf="pageEvalution=='pms'"> <ng-container *ngIf="pageEvalution=='pms'">
<app-pms-evalution [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']" <app-pms-evalution [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']"
(sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']" (sendReturnPath)="getBossList();pageEvalution='' ; pathTitle = ['การประเมินผล', 'ประเมินโดยหัวหน้า']"
[evaluationRoundId]="formEvaluation.evaluationRoundId" [evaluaterId]="formEvaluation.evaluaterId" [masfromStatusType]="formEvaluation.masfromStatusType" [evaluationRoundId]="formEvaluation.evaluationRoundId"
[evaluateeId]="formEvaluation.evaluateeId"></app-pms-evalution> [evaluaterId]="formEvaluation.evaluaterId" [evaluateeId]="formEvaluation.evaluateeId"></app-pms-evalution>
</ng-container> </ng-container>
<ng-container *ngIf="pageEvalution=='evaluation'"> <ng-container *ngIf="pageEvalution=='evaluation'">
<app-evaluation [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']" <app-evaluation [pathTitle]="['การประเมินผล', 'ประเมินโดยหัวหน้า','ประเมิน']"
......
...@@ -19,7 +19,8 @@ export class SupervisorEvaluationComponent { ...@@ -19,7 +19,8 @@ export class SupervisorEvaluationComponent {
evaluateeId: "", evaluateeId: "",
evaluaterId: "", evaluaterId: "",
competencyTypeId: "", competencyTypeId: "",
evaluationRoundId: "" evaluationRoundId: "",
masfromStatusType: ""
} }
constructor(private appraisalService: AppraisalService, constructor(private appraisalService: AppraisalService,
private cdr: ChangeDetectorRef) { private cdr: ChangeDetectorRef) {
...@@ -66,11 +67,12 @@ export class SupervisorEvaluationComponent { ...@@ -66,11 +67,12 @@ export class SupervisorEvaluationComponent {
this.currentPage = 1 this.currentPage = 1
this.page = Array.from({ length: Math.ceil(this.subordinateFilter().length / 10) }, (_, i) => i + 1); this.page = Array.from({ length: Math.ceil(this.subordinateFilter().length / 10) }, (_, i) => i + 1);
} }
selectSubordinate(data: Masfromevaluationassessment, competencyTypeId: string, evaluationRoundId?: string) { selectSubordinate(data: Masfromevaluationassessment, competencyTypeId: string, evaluationRoundId?: string, masfromStatusType?: string) {
if (data && evaluationRoundId) { if (data && evaluationRoundId) {
this.formEvaluation.evaluateeId = data.apsassessy.employeeId this.formEvaluation.evaluateeId = data.apsassessy.employeeId
this.formEvaluation.competencyTypeId = competencyTypeId this.formEvaluation.competencyTypeId = competencyTypeId
this.formEvaluation.evaluationRoundId = evaluationRoundId this.formEvaluation.evaluationRoundId = evaluationRoundId
this.formEvaluation.masfromStatusType = masfromStatusType || ''
this.cdr.detectChanges() this.cdr.detectChanges()
} }
} }
......
...@@ -2,1246 +2,1275 @@ import { CompetencytypeModel, MyCompetencytypeModel } from "./competencytype.mod ...@@ -2,1246 +2,1275 @@ import { CompetencytypeModel, MyCompetencytypeModel } from "./competencytype.mod
import { MyStatusCodeModel, StatusCodeModel } from "./status-code.model" import { MyStatusCodeModel, StatusCodeModel } from "./status-code.model"
export interface AppraisalPmsFormModel { export interface AppraisalPmsFormModel {
personalLevel: PersonalLevel personalLevel: PersonalLevel
pmsMasfromEvaluationRoundModel: PmsMasfromEvaluationRoundModel pmsMasfromEvaluationRoundModel: PmsMasfromEvaluationRoundModel
companyId: string companyId: string
apsassessy: Apsassessy active: boolean
apsapprove1: Apsapprove1 masfromStatusType: MasfromStatusType
apsapprove2: Apsapprove2 currentStep: string
apsapprove3: Apsapprove3 lastStep: string
apsapprove4: Apsapprove4 checkStep: string
apsapprove5: Apsapprove5 apsassessy: Apsassessy
apsassessyStatus: string apsapprove1: Apsapprove1
apsapprove1Status: string apsapprove2: Apsapprove2
apsapprove2Status: string apsapprove3: Apsapprove3
apsapprove3Status: string apsapprove4: Apsapprove4
apsapprove4Status: string apsapprove5: Apsapprove5
apsapprove5Status: string apsassessyStatus: string
apsassessyScore: number apsapprove1Status: string
apsapprove1Score: number apsapprove2Status: string
apsapprove2Score: number apsapprove3Status: string
apsapprove3Score: number apsapprove4Status: string
apsapprove4Score: number apsapprove5Status: string
apsapprove5Score: number employeeStrengths: string
part1Detail: Part1Detail[] learningTopicsForStrengths: string
part2Detail: Part2Detail[] performanceWeaknesses: string
part3Detail: Part3Detail[] learningTopicsForWeaknesses: string
part4Detail: Part4Detail[] improvementPlan: string
part5Detail: Part5Detail[] learningTopicsForImprovement: string
part6Detail: Part6Detail[] apsassessyComment: string
part7Detail: Part7Detail[] apsapprove1Comment: string
} apsapprove2Comment: string
apsapprove3Comment: string
export interface PersonalLevel { apsapprove4Comment: string
plId: string apsapprove5Comment: string
tdesc: string apsassessyDate: string
edesc: string apsapprove1Date: string
companyId: string apsapprove2Date: string
} apsapprove3Date: string
apsapprove4Date: string
export interface PmsMasfromEvaluationRoundModel { apsapprove5Date: string
pmsEvaluationRoundId: string part1Percentage: number
companyId: string part2Percentage: number
tdesc: string part3Percentage: number
edesc: string part4Percentage: number
apsyear: string part5Percentage: number
apsPeriodStart: string part6Percentage: number
apsPeriodEnd: string part7Percentage: number
jlId: string part1Detail: Part1Detail[]
personalLevel: PersonalLevel2[] part2Detail: Part2Detail[]
active: number part3Detail: Part3Detail[]
statusFrom: StatusFrom part4Detail: Part4Detail[]
statusCode: StatusCode part5Detail: Part5Detail[]
} part6Detail: Part6Detail[]
part7Detail: Part7Detail[]
export interface PersonalLevel2 { }
plId: string
tdesc: string export interface PersonalLevel {
edesc: string plId: string
companyId: string tdesc: string
} edesc: string
companyId: string
export interface StatusFrom { }
code: string
tdesc: string export interface PmsMasfromEvaluationRoundModel {
edesc: string pmsEvaluationRoundId: string
} companyId: string
tdesc: string
export interface StatusCode { edesc: string
code: string apsyear: string
tdesc: string apsPeriodStart: string
edesc: string apsPeriodEnd: string
} jlId: string
personalLevel: PersonalLevel2[]
export interface Apsassessy { active: number
employeeId: string statusFrom: StatusFrom
bossId: string statusCode: StatusCode
prefix: Prefix }
fname: string
lname: string export interface PersonalLevel2 {
efname: string plId: string
elname: string tdesc: string
bu1: Bu1 edesc: string
bu2: Bu2 companyId: string
bu3: Bu3 }
bu4: Bu4
bu5: Bu5 export interface StatusFrom {
position: Position code: string
job: Job tdesc: string
pl: Pl edesc: string
status: Status }
time0: Time0
resignDate: string export interface StatusCode {
endWorkDate: string code: string
startDate: string tdesc: string
thFullName: string edesc: string
engFullName: string }
}
export interface MasfromStatusType {
export interface Prefix { code: string
prefixId: string tdesc: string
tdesc: string edesc: string
edesc: string }
}
export interface Apsassessy {
export interface Bu1 { employeeId: string
bu1id: string bossId: string
tdesc: string prefix: Prefix
edesc: string fname: string
companyId: string lname: string
} efname: string
elname: string
export interface Bu2 { bu1: Bu1
bu2id: string bu2: Bu2
tdesc: string bu3: Bu3
edesc: string bu4: Bu4
parent: string bu5: Bu5
companyId: string position: Position
} job: Job
pl: Pl
export interface Bu3 { status: Status
bu3id: string time0: Time0
tdesc: string resignDate: string
edesc: string endWorkDate: string
parent: string startDate: string
companyId: string thFullName: string
} engFullName: string
}
export interface Bu4 {
bu4id: string export interface Prefix {
tdesc: string prefixId: string
edesc: string tdesc: string
parent: string edesc: string
companyId: string }
}
export interface Bu1 {
export interface Bu5 { bu1id: string
bu5id: string tdesc: string
tdesc: string edesc: string
edesc: string companyId: string
parent: string }
companyId: string
} export interface Bu2 {
bu2id: string
export interface Position { tdesc: string
positionId: string edesc: string
tdesc: string parent: string
edesc: string companyId: string
consolidate: string }
shortName: string
companyId: string export interface Bu3 {
} bu3id: string
tdesc: string
export interface Job { edesc: string
jobCodeId: string parent: string
tdesc: string companyId: string
edesc: string }
}
export interface Bu4 {
export interface Pl { bu4id: string
plId: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
companyId: string companyId: string
} }
export interface Status { export interface Bu5 {
statusCode: string bu5id: string
statusType: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
} companyId: string
}
export interface Time0 {
time0id: string export interface Position {
tdesc: string positionId: string
edesc: string tdesc: string
stickTm: string edesc: string
hourD: number consolidate: string
} shortName: string
companyId: string
export interface Apsapprove1 { }
employeeId: string
bossId: string export interface Job {
prefix: Prefix2 jobCodeId: string
fname: string tdesc: string
lname: string edesc: string
efname: string }
elname: string
bu1: Bu12 export interface Pl {
bu2: Bu22 plId: string
bu3: Bu32 tdesc: string
bu4: Bu42 edesc: string
bu5: Bu52 companyId: string
position: Position2 }
job: Job2
pl: Pl2 export interface Status {
status: Status2 statusCode: string
time0: Time02 statusType: string
resignDate: string tdesc: string
endWorkDate: string edesc: string
startDate: string }
thFullName: string
engFullName: string export interface Time0 {
} time0id: string
tdesc: string
export interface Prefix2 { edesc: string
prefixId: string stickTm: string
tdesc: string hourD: number
edesc: string }
}
export interface Apsapprove1 {
export interface Bu12 { employeeId: string
bu1id: string bossId: string
tdesc: string prefix: Prefix2
edesc: string fname: string
companyId: string lname: string
} efname: string
elname: string
export interface Bu22 { bu1: Bu12
bu2id: string bu2: Bu22
tdesc: string bu3: Bu32
edesc: string bu4: Bu42
parent: string bu5: Bu52
companyId: string position: Position2
} job: Job2
pl: Pl2
export interface Bu32 { status: Status2
bu3id: string time0: Time02
tdesc: string resignDate: string
edesc: string endWorkDate: string
parent: string startDate: string
companyId: string thFullName: string
} engFullName: string
}
export interface Bu42 {
bu4id: string export interface Prefix2 {
tdesc: string prefixId: string
edesc: string tdesc: string
parent: string edesc: string
companyId: string }
}
export interface Bu12 {
export interface Bu52 { bu1id: string
bu5id: string tdesc: string
tdesc: string edesc: string
edesc: string companyId: string
parent: string }
companyId: string
} export interface Bu22 {
bu2id: string
export interface Position2 { tdesc: string
positionId: string edesc: string
tdesc: string parent: string
edesc: string companyId: string
consolidate: string }
shortName: string
companyId: string export interface Bu32 {
} bu3id: string
tdesc: string
export interface Job2 { edesc: string
jobCodeId: string parent: string
tdesc: string companyId: string
edesc: string }
}
export interface Bu42 {
export interface Pl2 { bu4id: string
plId: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
companyId: string companyId: string
} }
export interface Status2 { export interface Bu52 {
statusCode: string bu5id: string
statusType: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
} companyId: string
}
export interface Time02 {
time0id: string export interface Position2 {
tdesc: string positionId: string
edesc: string tdesc: string
stickTm: string edesc: string
hourD: number consolidate: string
} shortName: string
companyId: string
export interface Apsapprove2 { }
employeeId: string
bossId: string export interface Job2 {
prefix: Prefix3 jobCodeId: string
fname: string tdesc: string
lname: string edesc: string
efname: string }
elname: string
bu1: Bu13 export interface Pl2 {
bu2: Bu23 plId: string
bu3: Bu33 tdesc: string
bu4: Bu43 edesc: string
bu5: Bu53 companyId: string
position: Position3 }
job: Job3
pl: Pl3 export interface Status2 {
status: Status3 statusCode: string
time0: Time03 statusType: string
resignDate: string tdesc: string
endWorkDate: string edesc: string
startDate: string }
thFullName: string
engFullName: string export interface Time02 {
} time0id: string
tdesc: string
export interface Prefix3 { edesc: string
prefixId: string stickTm: string
tdesc: string hourD: number
edesc: string }
}
export interface Apsapprove2 {
export interface Bu13 { employeeId: string
bu1id: string bossId: string
tdesc: string prefix: Prefix3
edesc: string fname: string
companyId: string lname: string
} efname: string
elname: string
export interface Bu23 { bu1: Bu13
bu2id: string bu2: Bu23
tdesc: string bu3: Bu33
edesc: string bu4: Bu43
parent: string bu5: Bu53
companyId: string position: Position3
} job: Job3
pl: Pl3
export interface Bu33 { status: Status3
bu3id: string time0: Time03
tdesc: string resignDate: string
edesc: string endWorkDate: string
parent: string startDate: string
companyId: string thFullName: string
} engFullName: string
}
export interface Bu43 {
bu4id: string export interface Prefix3 {
tdesc: string prefixId: string
edesc: string tdesc: string
parent: string edesc: string
companyId: string }
}
export interface Bu13 {
export interface Bu53 { bu1id: string
bu5id: string tdesc: string
tdesc: string edesc: string
edesc: string companyId: string
parent: string }
companyId: string
} export interface Bu23 {
bu2id: string
export interface Position3 { tdesc: string
positionId: string edesc: string
tdesc: string parent: string
edesc: string companyId: string
consolidate: string }
shortName: string
companyId: string export interface Bu33 {
} bu3id: string
tdesc: string
export interface Job3 { edesc: string
jobCodeId: string parent: string
tdesc: string companyId: string
edesc: string }
}
export interface Bu43 {
export interface Pl3 { bu4id: string
plId: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
companyId: string companyId: string
} }
export interface Status3 { export interface Bu53 {
statusCode: string bu5id: string
statusType: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
} companyId: string
}
export interface Time03 {
time0id: string export interface Position3 {
tdesc: string positionId: string
edesc: string tdesc: string
stickTm: string edesc: string
hourD: number consolidate: string
} shortName: string
companyId: string
export interface Apsapprove3 { }
employeeId: string
bossId: string export interface Job3 {
prefix: Prefix4 jobCodeId: string
fname: string tdesc: string
lname: string edesc: string
efname: string }
elname: string
bu1: Bu14 export interface Pl3 {
bu2: Bu24 plId: string
bu3: Bu34 tdesc: string
bu4: Bu44 edesc: string
bu5: Bu54 companyId: string
position: Position4 }
job: Job4
pl: Pl4 export interface Status3 {
status: Status4 statusCode: string
time0: Time04 statusType: string
resignDate: string tdesc: string
endWorkDate: string edesc: string
startDate: string }
thFullName: string
engFullName: string export interface Time03 {
} time0id: string
tdesc: string
export interface Prefix4 { edesc: string
prefixId: string stickTm: string
tdesc: string hourD: number
edesc: string }
}
export interface Apsapprove3 {
export interface Bu14 { employeeId: string
bu1id: string bossId: string
tdesc: string prefix: Prefix4
edesc: string fname: string
companyId: string lname: string
} efname: string
elname: string
export interface Bu24 { bu1: Bu14
bu2id: string bu2: Bu24
tdesc: string bu3: Bu34
edesc: string bu4: Bu44
parent: string bu5: Bu54
companyId: string position: Position4
} job: Job4
pl: Pl4
export interface Bu34 { status: Status4
bu3id: string time0: Time04
tdesc: string resignDate: string
edesc: string endWorkDate: string
parent: string startDate: string
companyId: string thFullName: string
} engFullName: string
}
export interface Bu44 {
bu4id: string export interface Prefix4 {
tdesc: string prefixId: string
edesc: string tdesc: string
parent: string edesc: string
companyId: string }
}
export interface Bu14 {
export interface Bu54 { bu1id: string
bu5id: string tdesc: string
tdesc: string edesc: string
edesc: string companyId: string
parent: string }
companyId: string
} export interface Bu24 {
bu2id: string
export interface Position4 { tdesc: string
positionId: string edesc: string
tdesc: string parent: string
edesc: string companyId: string
consolidate: string }
shortName: string
companyId: string export interface Bu34 {
} bu3id: string
tdesc: string
export interface Job4 { edesc: string
jobCodeId: string parent: string
tdesc: string companyId: string
edesc: string }
}
export interface Bu44 {
export interface Pl4 { bu4id: string
plId: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
companyId: string companyId: string
} }
export interface Status4 { export interface Bu54 {
statusCode: string bu5id: string
statusType: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
} companyId: string
}
export interface Time04 {
time0id: string export interface Position4 {
tdesc: string positionId: string
edesc: string tdesc: string
stickTm: string edesc: string
hourD: number consolidate: string
} shortName: string
companyId: string
export interface Apsapprove4 { }
employeeId: string
bossId: string export interface Job4 {
prefix: Prefix5 jobCodeId: string
fname: string tdesc: string
lname: string edesc: string
efname: string }
elname: string
bu1: Bu15 export interface Pl4 {
bu2: Bu25 plId: string
bu3: Bu35 tdesc: string
bu4: Bu45 edesc: string
bu5: Bu55 companyId: string
position: Position5 }
job: Job5
pl: Pl5 export interface Status4 {
status: Status5 statusCode: string
time0: Time05 statusType: string
resignDate: string tdesc: string
endWorkDate: string edesc: string
startDate: string }
thFullName: string
engFullName: string export interface Time04 {
} time0id: string
tdesc: string
export interface Prefix5 { edesc: string
prefixId: string stickTm: string
tdesc: string hourD: number
edesc: string }
}
export interface Apsapprove4 {
export interface Bu15 { employeeId: string
bu1id: string bossId: string
tdesc: string prefix: Prefix5
edesc: string fname: string
companyId: string lname: string
} efname: string
elname: string
export interface Bu25 { bu1: Bu15
bu2id: string bu2: Bu25
tdesc: string bu3: Bu35
edesc: string bu4: Bu45
parent: string bu5: Bu55
companyId: string position: Position5
} job: Job5
pl: Pl5
export interface Bu35 { status: Status5
bu3id: string time0: Time05
tdesc: string resignDate: string
edesc: string endWorkDate: string
parent: string startDate: string
companyId: string thFullName: string
} engFullName: string
}
export interface Bu45 {
bu4id: string export interface Prefix5 {
tdesc: string prefixId: string
edesc: string tdesc: string
parent: string edesc: string
companyId: string }
}
export interface Bu15 {
export interface Bu55 { bu1id: string
bu5id: string tdesc: string
tdesc: string edesc: string
edesc: string companyId: string
parent: string }
companyId: string
} export interface Bu25 {
bu2id: string
export interface Position5 { tdesc: string
positionId: string edesc: string
tdesc: string parent: string
edesc: string companyId: string
consolidate: string }
shortName: string
companyId: string export interface Bu35 {
} bu3id: string
tdesc: string
export interface Job5 { edesc: string
jobCodeId: string parent: string
tdesc: string companyId: string
edesc: string }
}
export interface Bu45 {
export interface Pl5 { bu4id: string
plId: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
companyId: string companyId: string
} }
export interface Status5 { export interface Bu55 {
statusCode: string bu5id: string
statusType: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
} companyId: string
}
export interface Time05 {
time0id: string export interface Position5 {
tdesc: string positionId: string
edesc: string tdesc: string
stickTm: string edesc: string
hourD: number consolidate: string
} shortName: string
companyId: string
export interface Apsapprove5 { }
employeeId: string
bossId: string export interface Job5 {
prefix: Prefix6 jobCodeId: string
fname: string tdesc: string
lname: string edesc: string
efname: string }
elname: string
bu1: Bu16 export interface Pl5 {
bu2: Bu26 plId: string
bu3: Bu36 tdesc: string
bu4: Bu46 edesc: string
bu5: Bu56 companyId: string
position: Position6 }
job: Job6
pl: Pl6 export interface Status5 {
status: Status6 statusCode: string
time0: Time06 statusType: string
resignDate: string tdesc: string
endWorkDate: string edesc: string
startDate: string }
thFullName: string
engFullName: string export interface Time05 {
} time0id: string
tdesc: string
export interface Prefix6 { edesc: string
prefixId: string stickTm: string
tdesc: string hourD: number
edesc: string }
}
export interface Apsapprove5 {
export interface Bu16 { employeeId: string
bu1id: string bossId: string
tdesc: string prefix: Prefix6
edesc: string fname: string
companyId: string lname: string
} efname: string
elname: string
export interface Bu26 { bu1: Bu16
bu2id: string bu2: Bu26
tdesc: string bu3: Bu36
edesc: string bu4: Bu46
parent: string bu5: Bu56
companyId: string position: Position6
} job: Job6
pl: Pl6
export interface Bu36 { status: Status6
bu3id: string time0: Time06
tdesc: string resignDate: string
edesc: string endWorkDate: string
parent: string startDate: string
companyId: string thFullName: string
} engFullName: string
}
export interface Bu46 {
bu4id: string export interface Prefix6 {
tdesc: string prefixId: string
edesc: string tdesc: string
parent: string edesc: string
companyId: string }
}
export interface Bu16 {
export interface Bu56 { bu1id: string
bu5id: string tdesc: string
tdesc: string edesc: string
edesc: string companyId: string
parent: string }
companyId: string
} export interface Bu26 {
bu2id: string
export interface Position6 { tdesc: string
positionId: string edesc: string
tdesc: string parent: string
edesc: string companyId: string
consolidate: string }
shortName: string
companyId: string export interface Bu36 {
} bu3id: string
tdesc: string
export interface Job6 { edesc: string
jobCodeId: string parent: string
tdesc: string companyId: string
edesc: string }
}
export interface Bu46 {
export interface Pl6 { bu4id: string
plId: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
companyId: string companyId: string
} }
export interface Status6 { export interface Bu56 {
statusCode: string bu5id: string
statusType: string tdesc: string
tdesc: string edesc: string
edesc: string parent: string
} companyId: string
}
export interface Time06 {
time0id: string export interface Position6 {
tdesc: string positionId: string
edesc: string tdesc: string
stickTm: string edesc: string
hourD: number consolidate: string
} shortName: string
companyId: string
export interface Part1Detail { }
companyId: string
weight: number export interface Job6 {
lineNo: number jobCodeId: string
scoreTopicExpectation: number tdesc: string
scoreTopicExpectationBoss: number edesc: string
groupAssessment1: GroupAssessment1 }
}
export interface Pl6 {
export interface GroupAssessment1 { plId: string
personalLevelModel: PersonalLevelModel tdesc: string
companyId: string edesc: string
pmsGroupAssessment0: PmsGroupAssessment0 companyId: string
pmsTopic: PmsTopic2 }
}
export interface Status6 {
export interface PersonalLevelModel { statusCode: string
plId: string statusType: string
tdesc: string tdesc: string
edesc: string edesc: string
companyId: string }
}
export interface Time06 {
export interface PmsGroupAssessment0 { time0id: string
personalLevel: PersonalLevel3 tdesc: string
companyId: string edesc: string
pmsTopic: PmsTopic stickTm: string
} hourD: number
}
export interface PersonalLevel3 {
plId: string export interface Part1Detail {
tdesc: string companyId: string
edesc: string weight: number
companyId: string lineNo: number
} scoreTopicExpectation: number
scoreTopicExpectationBoss: number
export interface PmsTopic { groupAssessment1: GroupAssessment1
pmsTopicId: string }
pmsType: PmsType
companyId: string export interface GroupAssessment1 {
lineNo: number personalLevelModel: PersonalLevelModel
edesc: string companyId: string
tdesc: string pmsGroupAssessment0: PmsGroupAssessment0
indicatorsDetail: string pmsTopic: PmsTopic2
performanceGoalsDetail: string }
weight: number
detailUnit: string export interface PersonalLevelModel {
completionDate: string plId: string
targetAdetail: string tdesc: string
targetBdetail: string edesc: string
targetCdetail: string companyId: string
targetDdetail: string }
targetEdetail: string
} export interface PmsGroupAssessment0 {
personalLevel: PersonalLevel3
export interface PmsType { companyId: string
pmsTypeId: string pmsTopic: PmsTopic
companyId: string }
edesc: string
tdesc: string export interface PersonalLevel3 {
shortName: string plId: string
weight: number tdesc: string
} edesc: string
companyId: string
export interface PmsTopic2 { }
pmsTopicId: string
pmsType: PmsType2 export interface PmsTopic {
companyId: string pmsTopicId: string
lineNo: number pmsType: PmsType
edesc: string companyId: string
tdesc: string lineNo: number
indicatorsDetail: string edesc: string
performanceGoalsDetail: string tdesc: string
weight: number indicatorsDetail: string
detailUnit: string performanceGoalsDetail: string
completionDate: string weight: number
targetAdetail: string detailUnit: string
targetBdetail: string completionDate: string
targetCdetail: string targetAdetail: string
targetDdetail: string targetBdetail: string
targetEdetail: string targetCdetail: string
} targetDdetail: string
targetEdetail: string
export interface PmsType2 { }
pmsTypeId: string
companyId: string export interface PmsType {
edesc: string pmsTypeId: string
tdesc: string companyId: string
shortName: string edesc: string
weight: number tdesc: string
} shortName: string
weight: number
export interface Part2Detail { }
companyId: string
weight: number export interface PmsTopic2 {
lineNo: number pmsTopicId: string
scoreTopicExpectation: number pmsType: PmsType2
scoreTopicExpectationBoss: number companyId: string
groupAssessment1: GroupAssessment12 lineNo: number
} edesc: string
tdesc: string
export interface GroupAssessment12 { indicatorsDetail: string
personalLevelModel: PersonalLevelModel2 performanceGoalsDetail: string
companyId: string weight: number
pmsGroupAssessment0: PmsGroupAssessment02 detailUnit: string
pmsTopic: PmsTopic4 completionDate: string
} targetAdetail: string
targetBdetail: string
export interface PersonalLevelModel2 { targetCdetail: string
plId: string targetDdetail: string
tdesc: string targetEdetail: string
edesc: string }
companyId: string
} export interface PmsType2 {
pmsTypeId: string
export interface PmsGroupAssessment02 { companyId: string
personalLevel: PersonalLevel4 edesc: string
companyId: string tdesc: string
pmsTopic: PmsTopic3 shortName: string
} weight: number
}
export interface PersonalLevel4 {
plId: string export interface Part2Detail {
tdesc: string companyId: string
edesc: string weight: number
companyId: string lineNo: number
} scoreTopicExpectation: number
scoreTopicExpectationBoss: number
export interface PmsTopic3 { groupAssessment1: GroupAssessment12
pmsTopicId: string }
pmsType: PmsType3
companyId: string export interface GroupAssessment12 {
lineNo: number personalLevelModel: PersonalLevelModel2
edesc: string companyId: string
tdesc: string pmsGroupAssessment0: PmsGroupAssessment02
indicatorsDetail: string pmsTopic: PmsTopic4
performanceGoalsDetail: string }
weight: number
detailUnit: string export interface PersonalLevelModel2 {
completionDate: string plId: string
targetAdetail: string tdesc: string
targetBdetail: string edesc: string
targetCdetail: string companyId: string
targetDdetail: string }
targetEdetail: string
} export interface PmsGroupAssessment02 {
personalLevel: PersonalLevel4
export interface PmsType3 { companyId: string
pmsTypeId: string pmsTopic: PmsTopic3
companyId: string }
edesc: string
tdesc: string export interface PersonalLevel4 {
shortName: string plId: string
weight: number tdesc: string
} edesc: string
companyId: string
export interface PmsTopic4 { }
pmsTopicId: string
pmsType: PmsType4 export interface PmsTopic3 {
companyId: string pmsTopicId: string
lineNo: number pmsType: PmsType3
edesc: string companyId: string
tdesc: string lineNo: number
indicatorsDetail: string edesc: string
performanceGoalsDetail: string tdesc: string
weight: number indicatorsDetail: string
detailUnit: string performanceGoalsDetail: string
completionDate: string weight: number
targetAdetail: string detailUnit: string
targetBdetail: string completionDate: string
targetCdetail: string targetAdetail: string
targetDdetail: string targetBdetail: string
targetEdetail: string targetCdetail: string
} targetDdetail: string
targetEdetail: string
export interface PmsType4 { }
pmsTypeId: string
companyId: string export interface PmsType3 {
edesc: string pmsTypeId: string
tdesc: string companyId: string
shortName: string edesc: string
weight: number tdesc: string
} shortName: string
weight: number
export interface Part3Detail { }
companyId: string
weight: number export interface PmsTopic4 {
lineNo: number pmsTopicId: string
scoreTopicExpectation: number pmsType: PmsType4
scoreTopicExpectationBoss: number companyId: string
groupAssessment1: GroupAssessment13 lineNo: number
} edesc: string
tdesc: string
export interface GroupAssessment13 { indicatorsDetail: string
personalLevelModel: PersonalLevelModel3 performanceGoalsDetail: string
companyId: string weight: number
pmsGroupAssessment0: PmsGroupAssessment03 detailUnit: string
pmsTopic: PmsTopic6 completionDate: string
} targetAdetail: string
targetBdetail: string
export interface PersonalLevelModel3 { targetCdetail: string
plId: string targetDdetail: string
tdesc: string targetEdetail: string
edesc: string }
companyId: string
} export interface PmsType4 {
pmsTypeId: string
export interface PmsGroupAssessment03 { companyId: string
personalLevel: PersonalLevel5 edesc: string
companyId: string tdesc: string
pmsTopic: PmsTopic5 shortName: string
} weight: number
}
export interface PersonalLevel5 {
plId: string export interface Part3Detail {
tdesc: string companyId: string
edesc: string weight: number
companyId: string lineNo: number
} scoreTopicExpectation: number
scoreTopicExpectationBoss: number
export interface PmsTopic5 { groupAssessment1: GroupAssessment13
pmsTopicId: string }
pmsType: PmsType5
companyId: string export interface GroupAssessment13 {
lineNo: number personalLevelModel: PersonalLevelModel3
edesc: string companyId: string
tdesc: string pmsGroupAssessment0: PmsGroupAssessment03
indicatorsDetail: string pmsTopic: PmsTopic6
performanceGoalsDetail: string }
weight: number
detailUnit: string export interface PersonalLevelModel3 {
completionDate: string plId: string
targetAdetail: string tdesc: string
targetBdetail: string edesc: string
targetCdetail: string companyId: string
targetDdetail: string }
targetEdetail: string
} export interface PmsGroupAssessment03 {
personalLevel: PersonalLevel5
export interface PmsType5 { companyId: string
pmsTypeId: string pmsTopic: PmsTopic5
companyId: string }
edesc: string
tdesc: string export interface PersonalLevel5 {
shortName: string plId: string
weight: number tdesc: string
} edesc: string
companyId: string
export interface PmsTopic6 { }
pmsTopicId: string
pmsType: PmsType6 export interface PmsTopic5 {
companyId: string pmsTopicId: string
lineNo: number pmsType: PmsType5
edesc: string companyId: string
tdesc: string lineNo: number
indicatorsDetail: string edesc: string
performanceGoalsDetail: string tdesc: string
weight: number indicatorsDetail: string
detailUnit: string performanceGoalsDetail: string
completionDate: string weight: number
targetAdetail: string detailUnit: string
targetBdetail: string completionDate: string
targetCdetail: string targetAdetail: string
targetDdetail: string targetBdetail: string
targetEdetail: string targetCdetail: string
} targetDdetail: string
targetEdetail: string
export interface PmsType6 { }
pmsTypeId: string
companyId: string export interface PmsType5 {
edesc: string pmsTypeId: string
tdesc: string companyId: string
shortName: string edesc: string
weight: number tdesc: string
} shortName: string
weight: number
export interface Part4Detail { }
plId: string
companyId: string export interface PmsTopic6 {
lineNo: number pmsTopicId: string
competencyType: CompetencyType pmsType: PmsType6
masfromStatusType: MasfromStatusType companyId: string
currentStep: string lineNo: number
lastStep: string edesc: string
checkStep: string tdesc: string
apsassessyStatus: string indicatorsDetail: string
apsapprove1Status: string performanceGoalsDetail: string
apsapprove2Status: string weight: number
apsapprove3Status: string detailUnit: string
apsapprove4Status: string completionDate: string
apsapprove5Status: string targetAdetail: string
numberCheck1: number targetBdetail: string
numberCheck2: number targetCdetail: string
numberCheck3: number targetDdetail: string
numberCheck4: number targetEdetail: string
numberCheck5: number }
weightedTotal: number
averageScore: number export interface PmsType6 {
apsassessyComment: string pmsTypeId: string
apsapprove1Comment: string companyId: string
apsapprove2Comment: string edesc: string
apsapprove3Comment: string tdesc: string
apsapprove4Comment: string shortName: string
apsapprove5Comment: string weight: number
apsassessyDate: string }
apsapprove1Date: string
apsapprove2Date: string export interface Part4Detail {
apsapprove3Date: string plId: string
apsapprove4Date: string companyId: string
apsapprove5Date: string lineNo: number
evaluationResults: string competencyType: CompetencyType
sumEvaluationResults: string masfromStatusType: MasfromStatusType2
} currentStep: string
lastStep: string
export interface CompetencyType { checkStep: string
competencyTypeId: string apsassessyStatus: string
companyId: string apsapprove1Status: string
edesc: string apsapprove2Status: string
tdesc: string apsapprove3Status: string
shortName: string apsapprove4Status: string
expectationLevel: string apsapprove5Status: string
weight: number numberCheck1: number
} numberCheck2: number
numberCheck3: number
export interface MasfromStatusType { numberCheck4: number
code: string numberCheck5: number
tdesc: string weightedTotal: number
edesc: string averageScore: number
} apsassessyComment: string
apsapprove1Comment: string
export interface Part5Detail { apsapprove2Comment: string
pmsWorkingTimeId: string apsapprove3Comment: string
tdesc: string apsapprove4Comment: string
edesc: string apsapprove5Comment: string
weight: number apsassessyDate: string
detailUnit: string apsapprove1Date: string
performanceTargets: string apsapprove2Date: string
targetADetail: string apsapprove3Date: string
targetBDetail: string apsapprove4Date: string
targetCDetail: string apsapprove5Date: string
targetDDetail: string evaluationResults: string
targetEDetail: string sumEvaluationResults: string
pmsWorkingTimScore: number }
pmsWorkingTimScoreBoss: number
} export interface CompetencyType {
competencyTypeId: string
export interface Part6Detail { companyId: string
companyId: string edesc: string
weight: number tdesc: string
lineNo: number shortName: string
scoreTopicExpectation: number expectationLevel: string
scoreTopicExpectationBoss: number weight: number
groupAssessment1: GroupAssessment14 }
}
export interface MasfromStatusType2 {
export interface GroupAssessment14 { code: string
personalLevelModel: PersonalLevelModel4 tdesc: string
companyId: string edesc: string
pmsGroupAssessment0: PmsGroupAssessment04 }
pmsTopic: PmsTopic8
} export interface Part5Detail {
pmsWorkingTimeId: string
export interface PersonalLevelModel4 { tdesc: string
plId: string edesc: string
tdesc: string weight: number
edesc: string detailUnit: string
companyId: string performanceTargets: string
} targetADetail: string
targetBDetail: string
export interface PmsGroupAssessment04 { targetCDetail: string
personalLevel: PersonalLevel6 targetDDetail: string
companyId: string targetEDetail: string
pmsTopic: PmsTopic7 pmsWorkingTimScore: number
} pmsWorkingTimScoreBoss: number
}
export interface PersonalLevel6 {
plId: string export interface Part6Detail {
tdesc: string companyId: string
edesc: string weight: number
companyId: string lineNo: number
} scoreTopicExpectation: number
scoreTopicExpectationBoss: number
export interface PmsTopic7 { groupAssessment1: GroupAssessment14
pmsTopicId: string }
pmsType: PmsType7
companyId: string export interface GroupAssessment14 {
lineNo: number personalLevelModel: PersonalLevelModel4
edesc: string companyId: string
tdesc: string pmsGroupAssessment0: PmsGroupAssessment04
indicatorsDetail: string pmsTopic: PmsTopic8
performanceGoalsDetail: string }
weight: number
detailUnit: string export interface PersonalLevelModel4 {
completionDate: string plId: string
targetAdetail: string tdesc: string
targetBdetail: string edesc: string
targetCdetail: string companyId: string
targetDdetail: string }
targetEdetail: string
} export interface PmsGroupAssessment04 {
personalLevel: PersonalLevel6
export interface PmsType7 { companyId: string
pmsTypeId: string pmsTopic: PmsTopic7
companyId: string }
edesc: string
tdesc: string export interface PersonalLevel6 {
shortName: string plId: string
weight: number tdesc: string
} edesc: string
companyId: string
export interface PmsTopic8 { }
pmsTopicId: string
pmsType: PmsType8 export interface PmsTopic7 {
companyId: string pmsTopicId: string
lineNo: number pmsType: PmsType7
edesc: string companyId: string
tdesc: string lineNo: number
indicatorsDetail: string edesc: string
performanceGoalsDetail: string tdesc: string
weight: number indicatorsDetail: string
detailUnit: string performanceGoalsDetail: string
completionDate: string weight: number
targetAdetail: string detailUnit: string
targetBdetail: string completionDate: string
targetCdetail: string targetAdetail: string
targetDdetail: string targetBdetail: string
targetEdetail: string targetCdetail: string
} targetDdetail: string
targetEdetail: string
export interface PmsType8 { }
pmsTypeId: string
companyId: string export interface PmsType7 {
edesc: string pmsTypeId: string
tdesc: string companyId: string
shortName: string edesc: string
weight: number tdesc: string
} shortName: string
weight: number
export interface Part7Detail { }
companyId: string
weight: number export interface PmsTopic8 {
lineNo: number pmsTopicId: string
scoreTopicExpectation: number pmsType: PmsType8
scoreTopicExpectationBoss: number companyId: string
groupAssessment1: GroupAssessment15 lineNo: number
} edesc: string
tdesc: string
export interface GroupAssessment15 { indicatorsDetail: string
personalLevelModel: PersonalLevelModel5 performanceGoalsDetail: string
companyId: string weight: number
pmsGroupAssessment0: PmsGroupAssessment05 detailUnit: string
pmsTopic: PmsTopic10 completionDate: string
} targetAdetail: string
targetBdetail: string
export interface PersonalLevelModel5 { targetCdetail: string
plId: string targetDdetail: string
tdesc: string targetEdetail: string
edesc: string }
companyId: string
} export interface PmsType8 {
pmsTypeId: string
export interface PmsGroupAssessment05 { companyId: string
personalLevel: PersonalLevel7 edesc: string
companyId: string tdesc: string
pmsTopic: PmsTopic9 shortName: string
} weight: number
}
export interface PersonalLevel7 {
plId: string export interface Part7Detail {
tdesc: string companyId: string
edesc: string weight: number
companyId: string lineNo: number
} scoreTopicExpectation: number
scoreTopicExpectationBoss: number
export interface PmsTopic9 { groupAssessment1: GroupAssessment15
pmsTopicId: string }
pmsType: PmsType9
companyId: string export interface GroupAssessment15 {
lineNo: number personalLevelModel: PersonalLevelModel5
edesc: string companyId: string
tdesc: string pmsGroupAssessment0: PmsGroupAssessment05
indicatorsDetail: string pmsTopic: PmsTopic10
performanceGoalsDetail: string }
weight: number
detailUnit: string export interface PersonalLevelModel5 {
completionDate: string plId: string
targetAdetail: string tdesc: string
targetBdetail: string edesc: string
targetCdetail: string companyId: string
targetDdetail: string }
targetEdetail: string
} export interface PmsGroupAssessment05 {
personalLevel: PersonalLevel7
export interface PmsType9 { companyId: string
pmsTypeId: string pmsTopic: PmsTopic9
companyId: string }
edesc: string
tdesc: string export interface PersonalLevel7 {
shortName: string plId: string
weight: number tdesc: string
} edesc: string
companyId: string
export interface PmsTopic10 { }
pmsTopicId: string
pmsType: PmsType10 export interface PmsTopic9 {
companyId: string pmsTopicId: string
lineNo: number pmsType: PmsType9
edesc: string companyId: string
tdesc: string lineNo: number
indicatorsDetail: string edesc: string
performanceGoalsDetail: string tdesc: string
weight: number indicatorsDetail: string
detailUnit: string performanceGoalsDetail: string
completionDate: string weight: number
targetAdetail: string detailUnit: string
targetBdetail: string completionDate: string
targetCdetail: string targetAdetail: string
targetDdetail: string targetBdetail: string
targetEdetail: string targetCdetail: string
} targetDdetail: string
targetEdetail: string
export interface PmsType10 { }
pmsTypeId: string
companyId: string export interface PmsType9 {
edesc: string pmsTypeId: string
tdesc: string companyId: string
shortName: string edesc: string
weight: number tdesc: string
} shortName: string
weight: number
\ No newline at end of file }
export interface PmsTopic10 {
pmsTopicId: string
pmsType: PmsType10
companyId: string
lineNo: number
edesc: string
tdesc: string
indicatorsDetail: string
performanceGoalsDetail: string
weight: number
detailUnit: string
completionDate: string
targetAdetail: string
targetBdetail: string
targetCdetail: string
targetDdetail: string
targetEdetail: string
}
export interface PmsType10 {
pmsTypeId: string
companyId: string
edesc: string
tdesc: string
shortName: string
weight: number
}
\ No newline at end of file
...@@ -34,4 +34,7 @@ export class AppraisalService { ...@@ -34,4 +34,7 @@ export class AppraisalService {
getFormPmsById(evaluationRoundId: string, apsassessy: string): Observable<AppraisalPmsFormModel> { getFormPmsById(evaluationRoundId: string, apsassessy: string): Observable<AppraisalPmsFormModel> {
return this.http.get<AppraisalPmsFormModel>(this.urlApi + "/pms/" + evaluationRoundId + "/" + apsassessy) return this.http.get<AppraisalPmsFormModel>(this.urlApi + "/pms/" + evaluationRoundId + "/" + apsassessy)
} }
postPms(body: AppraisalPmsFormModel): Observable<AlertModel> {
return this.http.post<AlertModel>(this.urlApi + "/pms", body)
}
} }
\ No newline at end of file
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