import { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output, TemplateRef, ViewChild } from '@angular/core';
import { AppraisalCompentencyModel, AppraisalCompentencyModel2 } from 'src/app/shared/model/appraisal-competency.model';
import { EmployeeModel, MyEmployeeModel } from 'src/app/shared/model/employee.model';
import { MySettingAssessmentModel, SettingAssessmentModel } from 'src/app/shared/model/setting-assessment.model';
import { AppraisalService } from 'src/app/shared/services/appraisal.service';
import { EmployeeService } from 'src/app/shared/services/employee.service';
import { SettingAssessmentService } from 'src/app/shared/services/setting-assessment.service';
import Swal from 'sweetalert2';

export interface BiModel {
  name: string,
  tools: string[],
  degree: string
}

@Component({
  selector: 'app-self-evaluation',
  templateUrl: './self-evaluation.component.html',
  styleUrls: ['./self-evaluation.component.scss']
})
export class SelfEvaluationComponent implements OnInit {
  @Input() pathTitle = ['การประเมินผล', 'ประเมินตนเอง']
  @Input() employeeId?: string
  @Output() sendPathTitle: EventEmitter<string[]> = new EventEmitter<string[]>();
  @Output() sendPageEvalution: EventEmitter<string> = new EventEmitter<string>();
  hoveredCode: string | null = null;
  checkSheet: {
    score: string[],
    condition: string[]
  }[] = [{
    score: ["หากได้คะแนน 90 - 100% ถือว่า Gap +1", "หากได้คะแนน 80 - 89% ถือว่า ไม่มี Gap", "หากได้คะแนน 60 - 79% ถือว่า Gap - 1", "หากได้คะแนน 40 - 59% ถือว่า Gap -2", "หากได้คะแนน 0 - 39% ถือว่า Gap - 3"],
    condition: ["1.หากได้คะแนนสูงกว่า 80% แต่มี 3 2 หรือ 1 ด้วย ถือว่า Gap -1", "2.หากได้คะแนนต่ำกว่า 80% แต่มี 4 และ 5 ให้คิด Gap ตาม %", "3.คะแนนต่ำกว่า 80% แต่มี 2 และ 1 ให้คิด Gap ตาม %"],
  }]
  @ViewChild('selfEvaluation', { static: true }) selfEvaluation!: TemplateRef<any>;
  @ViewChild('selfEvaluationEdit', { static: true }) selfEvaluationEdit!: TemplateRef<any>;
  currentTemplate: TemplateRef<any> = this.selfEvaluation

  appraisalCompentency: { loading: boolean, select?: AppraisalCompentencyModel, dataList: AppraisalCompentencyModel[] } = { loading: false, select: undefined, dataList: [] }
  appraisalCompentency2: { loading: boolean, data?: AppraisalCompentencyModel2 } = { loading: false, data: undefined }
  appraisalPms: { loading: boolean, select: undefined, dataList: { check: boolean, data: undefined }[] } = { loading: false, select: undefined, dataList: [] }
  employee: { loading: boolean, data: EmployeeModel, evaluate: boolean } = { loading: false, data: new MyEmployeeModel(), evaluate: false }
  setting: { loading: boolean, data: SettingAssessmentModel } = { loading: false, data: new MySettingAssessmentModel() }
  currentDate = new Date()
  constructor(private appraisalService: AppraisalService,
    private employeeService: EmployeeService,
    private cdr: ChangeDetectorRef,
    private settingAssessmentService: SettingAssessmentService
  ) {
  }
  ngOnInit(): void {
    this.currentTemplate = this.selfEvaluation
    this.getWorking()
    this.getAppraisalCompentencyList()
    this.getSettingList()
    if (this.pathTitle.find(x => ['การประเมินผล', 'ประเมินโดยหัวหน้า'].includes(x))) {
      this.returnPageTitle()
    }
  }

  returnPageTitle() {
    this.sendPathTitle.emit(['การประเมินผล', 'ประเมินโดยหัวหน้า', 'ประเมินลูกน้อง'])
  }
  returnPageEvalution() {
    this.sendPageEvalution.emit("")
  }

  getSettingList() {
    this.setting.loading = true
    this.settingAssessmentService.get().subscribe({
      next: response => {
        this.setting.data = new MySettingAssessmentModel(response)
        this.setting.loading = false
        this.cdr.detectChanges()
      }, error: error => {
        this.setting.loading = false
        this.cdr.detectChanges()
      }
    })
  }
  getWorking() {
    this.employee.loading = true
    this.employeeService.getWorkingById(this.employeeId).subscribe({
      next: response => {
        this.employee.data = new MyEmployeeModel(response)
        this.employee.loading = false
        this.cdr.detectChanges()
      }, error: error => {
        this.employee.loading = false
        this.cdr.detectChanges()
      }
    })
  }
  getAppraisalCompentencyList() {
    this.appraisalCompentency.loading = true
    this.appraisalService.getCompetencyList().subscribe({
      next: response => {
        this.appraisalCompentency.dataList = JSON.parse(JSON.stringify(response))
        if (this.appraisalCompentency.dataList.length) {
          this.selectAppraisalCompentency(this.appraisalCompentency.dataList[0])
        }
        this.appraisalCompentency.loading = false
        this.cdr.detectChanges()
      }, error: error => {
        this.appraisalCompentency.loading = false
        this.cdr.detectChanges()
      }
    })
  }
  appraisalCompentencyFilter(index: number) {
    return this.appraisalCompentency.dataList[index].masfromEvaluationAssessment1
  }
  selectAppraisalCompentency(data: AppraisalCompentencyModel) {
    this.appraisalCompentency.select = JSON.parse(JSON.stringify(data))
  }
  getAppraisalCompentencyForm(typeId: string) {
    this.appraisalCompentency2.loading = true
    if (this.appraisalCompentency.select) {
      this.appraisalService.getFormCompentencyById(this.appraisalCompentency.select.masfromEvaluationRound.evaluationRoundId, this.employee.data.employeeId, typeId).subscribe({
        next: response => {
          this.appraisalCompentency2.data = JSON.parse(JSON.stringify(response))
          if (this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0]) {
            switch (this.appraisalCompentency2.data?.currentStep) {
              case ("0"): {
                this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsassessyDate = this.currentDate.toISOString().split('T')[0];
                this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsassessy.employeeId
                break
              }
              case ("1"): {
                this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove1Date = this.currentDate.toISOString().split('T')[0];
                this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove1.employeeId
                break
              }
              case ("2"): {
                this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove2Date = this.currentDate.toISOString().split('T')[0];
                this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove2.employeeId
                break
              }
              case ("3"): {
                this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove3Date = this.currentDate.toISOString().split('T')[0];
                this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove3.employeeId
                break
              }
              case ("4"): {
                this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove4Date = this.currentDate.toISOString().split('T')[0];
                this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove4.employeeId
                break
              }
              case ("5"): {
                this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].apsapprove5Date = this.currentDate.toISOString().split('T')[0];
                this.employee.evaluate = this.employee.data.employeeId == this.appraisalCompentency2.data.apsapprove5.employeeId
                break
              }
              default: { return }
            }
            console.log(" 🐒 this.employee.evaluate:", this.employee.evaluate)
          }
          this.calnumberCheck()
          this.appraisalCompentency2.loading = false
          this.cdr.detectChanges()
        }, error: error => {
          this.appraisalCompentency2.loading = false
          this.cdr.detectChanges()
        }
      })
    }
  }

  appraisalCompentency2Filter() {
    return this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].masfromEvaluationAssessment2List || []
  }


  appraisalPmsFilter() {
    return this.appraisalPms.dataList
  }
  showTools(data: string[]) {
    return data.join("/")
  }

  saveDraft() {
    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: 'บันทึกแบบร่าง',
      text: 'คุณต้องการบันทึกแบบร่างของการประเมินนี้ใช่หรือไม่',
      showCancelButton: true,
      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.appraisalCompentency2) {
        let body = this.appraisalCompentency2.data
        switch (this.appraisalCompentency2.data?.currentStep) {
          case ("0"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsassessyStatus: '1'
              }]
            }
            break
          }
          case ("1"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove1Status: '1'
              }]
            }
            break
          }
          case ("2"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove2Status: '1'
              }]
            }
            break
          }
          case ("3"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove3Status: '1'
              }]
            }
            break
          }
          case ("4"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove4Status: '1'
              }]
            }
            break
          }
          case ("5"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove5Status: '1'
              }]
            }
            break
          }
          default: { return }
        }
        this.appraisalService.postCompetency(body).subscribe({
          next: response => {
            if (response.success) {
              Swal.fire({
                title: 'บันทึกสำเร็จ!',
                text: 'การประเมินของคุณถูกบันทึกแล้ว',
                icon: 'success',
                customClass: {
                  confirmButton: '!swal2-button-bg-green',
                }
              });
            } 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',
              }
            });
          }
        })

      } else if (result.dismiss === Swal.DismissReason.cancel) {
        Swal.fire({
          title: 'ยกเลิก!',
          text: 'การบันทึกถูกยกเลิก',
          icon: 'error',
          customClass: {
            confirmButton: '!swal2-button-bg-danger',
          }
        });
      }
    });
  }
  save() {
    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: 'บันทึกข้อมูล',
      text: 'คุณต้องการบันทึกข้อมูลการประเมินนี้ใช่หรือไม่',
      showCancelButton: true,
      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) {
        let body = this.appraisalCompentency2.data
        switch (this.appraisalCompentency2.data?.currentStep) {
          case ("0"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsassessyStatus: '2'
              }]
            }
            break
          }
          case ("1"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove1Status: '2'
              }]
            }
            break
          }
          case ("2"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove2Status: '2'
              }]
            }
            break
          }
          case ("3"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove3Status: '2'
              }]
            }
            break
          }
          case ("4"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove4Status: '2'
              }]
            }
            break
          }
          case ("5"): {
            body = {
              ...this.appraisalCompentency2.data, masfromEvaluationAssessment1lList: [{
                ...this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0],
                apsapprove5Status: '2'
              }]
            }
            break
          }
          default: { return }
        }
        this.appraisalService.postCompetency(body).subscribe({
          next: response => {
            if (this.appraisalCompentency2.data) {
              if (response.success) {
                this.getAppraisalCompentencyForm(this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].competencyType.competencyTypeId)
                this.getWorking()
                Swal.fire({
                  title: 'บันทึกสำเร็จ!',
                  text: 'การประเมินของคุณถูกบันทึกแล้ว',
                  icon: 'success',
                  customClass: {
                    confirmButton: '!swal2-button-bg-green',
                  }
                });
              } 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',
              }
            });
          }
        })

      } else if (result.dismiss === Swal.DismissReason.cancel) {
        Swal.fire({
          title: 'ยกเลิก!',
          text: 'การบันทึกถูกยกเลิก',
          icon: 'error',
          customClass: {
            confirmButton: '!swal2-button-bg-danger',
          }
        });
      }
    });
  }

  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
      }
    }
    return date?.toLocaleDateString('th-TH', { day: 'numeric', month: 'long', year: 'numeric' }) || ''
  }

  calnumberCheck() {
    if (this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0]) {
      this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck1 = this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].masfromEvaluationAssessment2List.map((x: any) => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter((y: any) => y.competencyBehavioral.scoreTopicExpectation == 1).length).reduce((acc: any, num: any) => acc + num, 0)
      this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck2 = this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].masfromEvaluationAssessment2List.map((x: any) => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter((y: any) => y.competencyBehavioral.scoreTopicExpectation == 2).length).reduce((acc: any, num: any) => acc + num, 0)
      this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck3 = this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].masfromEvaluationAssessment2List.map((x: any) => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter((y: any) => y.competencyBehavioral.scoreTopicExpectation == 3).length).reduce((acc: any, num: any) => acc + num, 0)
      this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck4 = this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].masfromEvaluationAssessment2List.map((x: any) => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter((y: any) => y.competencyBehavioral.scoreTopicExpectation == 4).length).reduce((acc: any, num: any) => acc + num, 0)
      this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck5 = this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].masfromEvaluationAssessment2List.map((x: any) => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.filter((y: any) => y.competencyBehavioral.scoreTopicExpectation == 5).length).reduce((acc: any, num: any) => acc + num, 0)
      this.calWeightTotal()
    }
    this.cdr.detectChanges()
  }
  calWeightScore(numberCheck: number) {
    if (this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0]) {
      switch (numberCheck) {
        case (1): {
          return +(this.setting.data.settingScore1) * this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck1
        }
        case (2): {
          return +(this.setting.data.settingScore2) * this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck2
        }
        case (3): {
          return +(this.setting.data.settingScore3) * this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck3
        }
        case (4): {
          return +(this.setting.data.settingScore4) * this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck4
        }
        case (5): {
          return +(this.setting.data.settingScore5) * this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].numberCheck5
        }
        default: { return }
      }
    }
    return
  }
  calWeightTotal() {
    if (this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0]) {
      this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].weightedTotal = 0
      this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].weightedTotal = (this.calWeightScore(1) ?? 0) + (this.calWeightScore(2) ?? 0) + (this.calWeightScore(3) ?? 0) + (this.calWeightScore(4) ?? 0) + (this.calWeightScore(5) ?? 0)
      this.cdr.detectChanges()
      this.calAverageScore()
    }
  }
  calAverageScore() {
    if (this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0]) {
      const total = this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].masfromEvaluationAssessment2List.map((x: any) => x.groupAssessment1.competencyIndicatorsCourses1Mini.behavioralIndicatorsList.length).reduce((acc: any, num: any) => acc + num, 0) * 5
      if (total) {
        this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].averageScore = 0
        this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].averageScore = (this.appraisalCompentency2.data.masfromEvaluationAssessment1lList[0].weightedTotal / total) * 100
        this.cdr.detectChanges()
      }
    }
  }
  showNumber(text: number | string) {
    const num = Number(text);
    return isNaN(num) ? 0 : +num.toFixed(2);
  }


  calGap(score: number | string) {
    if (this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0]) {
      const roundedScore = this.showNumber(score) % 1 <= 0.5 ? Math.floor(this.showNumber(score)) : Math.round(this.showNumber(score));
      if (roundedScore >= 90 && roundedScore <= 100) {
        if (this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].numberCheck1 || this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].numberCheck2 || this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].numberCheck3) {
          return "-1";
        }
        return "+1";
      } else if (roundedScore >= 80 && roundedScore <= 89) {
        if (this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].numberCheck1 || this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].numberCheck2 || this.appraisalCompentency2.data?.masfromEvaluationAssessment1lList[0].numberCheck3) {
          return "-1";
        }
        return "0";
      } else if (roundedScore >= 60 && roundedScore <= 79) {
        return "-1";
      } else if (roundedScore >= 40 && roundedScore <= 59) {
        return "-2";
      } else {
        return "-3";
      }
    }
    return
  }
  calAverage(score: number | string) {
    const roundedScore = this.showNumber(score) % 1 <= 0.5 ? Math.floor(this.showNumber(score)) : Math.round(this.showNumber(score));
    if (roundedScore >= 90 && roundedScore <= 100) {
      return "5";
    } else if (roundedScore >= 80 && roundedScore <= 89) {
      return "4";
    } else if (roundedScore >= 60 && roundedScore <= 79) {
      return "3";
    } else if (roundedScore >= 40 && roundedScore <= 59) {
      return "2";
    } else {
      return "1";
    }
  }
}