import {Component, OnInit, ChangeDetectionStrategy, Output, EventEmitter} from '@angular/core';
import {AcademicYearService} from '../../../../core/service/settings/academic-year.service';
import {AcademicSemesterService} from '../../../../core/service/settings/academic-semester.service';
import {TestingCenterService} from '../../../../core/service/TestingCenter/testing-center.service';
import {TestingFieldService} from '../../../../core/service/settings/testing-field.service';
import {SubjectsService} from '../../../../core/service/settings/subjects.service';
import {TestingInformationService} from '../../../../core/service/testing-information/testing-information.service';
import {BranchService} from "../../../../core/service/settings/branch.service";

@Component({
  selector: 'app-report-search',
  templateUrl: './report-search.component.html',
  styleUrls: ['./report-search.component.scss'],
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class ReportSearchComponent implements OnInit {
  reportId = 0;
  TestingInformationLists = [];
  AcademicYear = [];
  AcademicsemesterMock = [];
  TestcenterLists: any = [];
  TestFieldLists = [];
  TestRoomLists = [];
  SubjectLists = [];
  PeriodLists = [];
  @Output() search = new EventEmitter();
  @Output() excel = new EventEmitter();
  statusMock = [
    {id: 1, name: 'รายงานใบสมัคร'},
    {id: 2, name: 'รายงานสรุปจำนวนผู้สมัครตามภาคการศึกษา'},
    {id: 3, name: 'รายงานใบลงทะเบียนสอบ'},
    {id: 4, name: 'รายงานสรุปจำนวนผู้ลงทะเบียนสอบ แยกตามกระบวนวิชา'},
    {id: 5, name: 'รายงานสรุปจำนวนผู้ลงทะเบียนสอบ แยกตามศูนย์สอบ'},
    {id: 6, name: 'รายงานสรุปสถานะการชำระเงินและใบสมัคร แยกตามกระบวนวิชา'},
    {id: 7, name: 'รายงานสรุปสถานะการชำระเงินและใบสมัคร แยกตามศูนย์สอบ'},
    {id: 8, name: 'รายงานแสดงรายชื่อผู้ลงทะเบียนสอบแยกตามสถานะการชำระเงินและใบสมัคร'},
    {id: 9, name: 'รายงานข้อมูลศูนย์สอบ สนามสอบ ห้องสอบ'},
    {id: 10, name: 'ใบประกาศเลขที่นั่งสอบและสถานที่สอบ'},
    {id: 12, name: 'ใบลงลายมือชื่อเข้าสอบ'},
    // {id: 13, name: 'รายงานสรุปจำนวนผู้ลงทะเบียนสอบ แยกตามกระบวนวิชา'},
    {id: 14, name: 'การจัดสนามสอบ'},
    {id: 15, name: 'สำหรับการจัดห้องสอบ'},
    {id: 16, name: 'รายงานผลสอบตามกระบวนวิชา'},
    {id: 17, name: 'รายงานสรุปจำนวนผู้เข้าสอบ ผู้ขาดสอบ ผู้สอบผ่าน ผู้สอบไม่ผ่าน'},
    {id: 18, name: 'รายงานสรุปผลสอบตามกระบวนวิชา แยกตามศูนย์สอบ'},
    {id: 19, name: 'สรุปยอดเข้าสอบตามกระบวนวิชา'},
    {id: 20, name: 'ข้อมูลห้องสอบที่เปิดสอบในแต่ละรอบ'},
    {id: 21, name: 'วิชาสอบที่เปิดสอบในแต่ละรอบ'},
  ];

  constructor(
    private academicYearSV: AcademicYearService,
    private branchSV: BranchService,
    private academicSemSV: AcademicSemesterService,
    private testcenterSV: TestingCenterService,
    private testingFieldSV: TestingFieldService,
    private subjectSV: SubjectsService,
    private testinginformationSV: TestingInformationService,
  ) { }

  ngOnInit(): void {
    this.testinginformationSV.getAll().subscribe(
      result => {
        this.TestingInformationLists = result;
        this.TestingInformationLists = this.TestingInformationLists.filter((x) => {
          return x.is_main === true;
        });
      }
    );
    this.academicYearSV.getAll().subscribe(
      result => {
        this.AcademicYear = result;
      }
    );
    this.academicSemSV.getAll().subscribe(
      result => {
        this.AcademicsemesterMock = result;
        console.log(result);
      }
    );
    this.branchSV.getAllStatus1().subscribe(
      result => {
        this.TestcenterLists = result;
      }
    );
    // this.testcenterSV.getAll().subscribe(
    //   result => {
    //     this.TestcenterLists = result;
    //   }
    // );
    this.testingFieldSV.getAll().subscribe(
      result => {
        this.TestFieldLists = result;
      }
    );
    this.subjectSV.getAll().subscribe(
      result => {
        this.SubjectLists = result;
      }
    );
    this.testcenterSV.getAll().subscribe(
      result => {
        this.PeriodLists = result;
      }
    );
    this.testcenterSV.getAll().subscribe(
      result => {
        this.TestRoomLists = result;
      }
    );
  }

  showReport(reportId){
    console.log(reportId);
    this.reportId = reportId;
  }

  onSearch(query, reportId){
    // const query = createQueryStringFromObject(this.query);
    this.search.emit({query, reportId});
  }

  onExcel(query, reportId){
    this.excel.emit({query, reportId});
  }



}
