import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
import { FormBuilder, FormGroup, Validators, FormControl } from '@angular/forms';
import { GeneralService } from '../../services/generalservice';
import { IDropAct, IStateDrop, IStateResultResponse, IActData, IActSumData } from '../../interfaces/dashboard.interface'
import { DashboardStateService } from '../../services/state/dashboard-state.service';
import { Router } from '@angular/router';

@Component({
  selector: 'app-main-manager',
  standalone: false,
  templateUrl: './main-manager.component.html',
  styleUrl: './main-manager.component.css'
})
export class MainManagerComponent implements OnInit {

  mode: string = 'i';

  totalBudget = 200000;     // งบทั้งหมด
  approvedBudget = 65000;   // งบที่อนุมัติแล้ว



  get remainingBudget() {
    return this.totalBudget - this.approvedBudget;
  }



  projects = [
    { code: 'PRJ001', name: 'ระบบจัดการน้ำดื่ม', owner: 'นาย A', budget: 20000, status: 'WAIT', acp: 0, bdgnam: 'ยังไมจัดสรร' },
    { code: 'PRJ002', name: 'ปรับปรุงอาคาร B',    owner: 'นางสาว B', budget: 45000, status: 'WAIT', acp: 0, bdgnam: 'ยังไมจัดสรร'},
    { code: 'PRJ003', name: 'ซื้อคอมพิวเตอร์',    owner: 'นาย C', budget: 30000, status: 'APPROVED', acp: 20000, bdgnam: 'งบดำเนินงาน' }
  ];

  approveProject(p: any) {
    p.status = 'APPROVED';
    this.approvedBudget += p.budget;
  }

  rejectProject(p: any) {
    p.status = 'REJECTED';
  }

  openBudgetDetail(project: any) {
    this.router.navigate(['/main/manager/budget', project.code]);
  }



  budgetCategoriesDrop = {
  expense: [
    { dtlcod: 'BDG001', dtlnam: 'เงินรายได้' },
    { dtlcod: 'BDG002', dtlnam: 'งบดำเนินงาน ปวส.' },
    { dtlcod: 'BDG003', dtlnam: 'โครงการส่งเสริมพัฒนาทักษะวิชาชีพทักษะพื้นฐาน' },
    { dtlcod: 'BDG004', dtlnam: 'ค่ากิจกรรมพัฒนาคุณภาพผู้เรียน' },
    { dtlcod: 'BDG005', dtlnam: 'อุดหนุนส่งเสริมและพัฒนาผู้เรียนองค์การวิชาชีพแห่งประเทศไทย (อวท.)' },
    { dtlcod: 'BDG006', dtlnam: 'งบดำเนินงาน ระยะสั้น' },
    { dtlcod: 'BDG007', dtlnam: 'โครงการบูรณาการการพัฒนาทักษะทางวิชาชีพกับการเสริมสร้างคุณลักษณะอันพึงประสงค์ (FIX IT)' },
    { dtlcod: 'BDG008', dtlnam: 'โครงการพัฒนาทักษะและสมรรถนะวิชาชีพกำลังคน (Up-skill, Re-skill)' },
    { dtlcod: 'BDG009', dtlnam: 'งบดำเนินงาน ปวช.' },
    { dtlcod: 'BDG010', dtlnam: 'โครงการขยายและยกระดับการจัดอาชีวศึกษาระบบทวิภาคีคุณภาพสูง' },
    { dtlcod: 'BDG011', dtlnam: 'ปวช.(สอจ)' },
    { dtlcod: 'BDG012', dtlnam: 'ค่าจัดการเรียนการสอน' },
    { dtlcod: 'BDG013', dtlnam: 'งบดำเนินงาน 170000' },
    { dtlcod: 'BDG014', dtlnam: 'โครงการพัฒนาทักษะและศักยภาพภาพการจัดการเรียนการสอนอาชีวศึกษา' },
    { dtlcod: 'BDG015', dtlnam: 'ศึกษาธิการ' },
    { dtlcod: 'BDG016', dtlnam: 'Up-skill' },
    { dtlcod: 'BDG017', dtlnam: 'ติดตามผู้สำเร็จ' },
    { dtlcod: 'BDG018', dtlnam: 'ทวิภาคี' },
    { dtlcod: 'BDG019', dtlnam: 'พันธุกรรม' },
    { dtlcod: 'BDG020', dtlnam: 'ปวส(สาธารณูประโภค)' },
    { dtlcod: 'BDG021', dtlnam: 'ปวส(ค่าสาธารณูปโภค)' },
    { dtlcod: 'BDG022', dtlnam: 'งบดำเนินงาน (ค่าสาธารณูปโภค)' },
    { dtlcod: 'BDG023', dtlnam: 'ค่าหนังสือเรียน' },
    { dtlcod: 'BDG024', dtlnam: 'โครงการอาชีวะต้านยาเสพติด' },
    { dtlcod: 'BDG025', dtlnam: 'ค่าตอบแทนพนักงานราชการ' },
    { dtlcod: 'BDG026', dtlnam: 'ค่าอุปกรณ์การเรียน' },
    { dtlcod: 'BDG027', dtlnam: 'โครงการยกระดับและพัฒนาขีดความสามารถด้านภาษาและทักษะดิจิทัลเพื่อพัฒนากำลังคนให้มีสมรรถนะสูง' },
    { dtlcod: 'BDG028', dtlnam: 'โครงการอนุรักษ์พันธุกรรมพืชอันเนื่องมาจากพระราชดำริ' },
    { dtlcod: 'BDG029', dtlnam: 'ปวช.(สอจ.)' },
    { dtlcod: 'BDG030', dtlnam: 'โครงการพัฒนาศักยภาพผู้เรียนอาชีวศึกษาในการเป็นผู้ประกอบการ (บ่มเพาะ)' },
    { dtlcod: 'BDG031', dtlnam: 'โครงการพัฒนาและยกระดับการติดตามผู้สำเร็จการศึกษาอาชีวศึกษา' },
    { dtlcod: 'BDG032', dtlnam: 'โครงการเสริมสร้างคุณธรรม จริยธรรมและธรรมาภิบาลในสถานศึกษา' },
    { dtlcod: 'BDG033', dtlnam: 'โครงการจัดการอาชีวศึกษาเพื่อสนองพระราชดำริ' },
    { dtlcod: 'BDG034', dtlnam: 'เงินรายได้ ป.ตรี' },
    { dtlcod: 'BDG035', dtlnam: 'งบดำเนินงาน 235200' }
  ]
};

  // isModalOpen: boolean = false;
  // isSubmitting: boolean = false;
  // arrearsForm!: FormGroup;
  // saveFrm!: FormGroup;
  // myActData: IActData[] = [];
  // // myDropAct: IStateDrop[] = [];
  // myDropAct: IStateDrop = { income: [], expense: [] };
  // myActSumData: IActSumData = {
  //   summary: {
  //     totalIncome: '',
  //     totalExpense: '',
  //     netProfit: '',
  //     profitRate: '',
  //     adjustedProfitRate: '',
  //     period: ''
  //   },
  //   pie: {
  //     income: [],
  //     expense: []
  //   }
  // };
  // ActSumDataGradient: any


  // readonly ownerName = 'Nuttakit';

  constructor(
    private router: Router,
    private dashboardStateService: DashboardStateService
  ) {}




  ngOnInit(): void {
    this.setupFormControl();
    // this.dashboardStateService.getStateResult().subscribe(data => {
    //   if (data) {
    //     this.myDropAct = data;
    //   }
    // });
    // // ผลลับท์ ของ รายการ
    // this.dashboardStateService.getStateAccountResult().subscribe(data => {
    //   if (data) {
    //     this.myActData = data;
    //   }
    // });
    // // ผลลัพการ คำนวณ ของ ปัญชี ต่างๆ
    // this.dashboardStateService.getStateSumResult().subscribe(data => {
    //   if (data) {
    //     this.myActSumData = data;
    //     this.ActSumDataGradient = this.buildExpenseGradient()
    //   }
    // });
  }
  setupFormControl(){
    // this.arrearsForm = new FormGroup({
    //   // email: new FormControl('',[Validators.required, Validators.email, Validators.maxLength(100)]),
    //   amount: new FormControl('',[Validators.required, Validators.maxLength(20)]),
    //   expdtm: new FormControl('',[Validators.required, Validators.maxLength(12)]),
    //   note: new FormControl('',[Validators.maxLength(200)]),
    //   reason: new FormControl('',[Validators.required, Validators.maxLength(200)])
    // });

    // this.saveFrm = new FormGroup({
    //   actacpdtm: new FormControl('',[Validators.required, Validators.maxLength(12)]),
    //   actqty: new FormControl('',[Validators.required]),
    //   actcat: new FormControl('',[Validators.required, Validators.maxLength(1)]),
    //   actcmt: new FormControl('',[Validators.maxLength(200)])
    // });
  }

  onSaveSubmit(){

  }

  onArrearsSubmit(){

  }
}
