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';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-budget-aproval',
  standalone: false,
  templateUrl: './budget-aproval.html',
  styleUrl: './budget-aproval.css',
})
export class BudgetAproval {
  projectCode: any;
  project: any;
  addItemForm!: FormGroup;
  isFormExpanded: boolean = false;

  budgetItems = [
    { code: 'ITEM001', name: 'เอกซ์เรย์', qty: 1, price: 1000 },
    { code: 'ITEM002', name: 'กรอกคำสั่งซื้อ', qty: 1, price: 1500 },
    { code: 'ITEM003', name: 'ตรวจพื้นฐาน', qty: 1, price: 1000 },
  ];

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

  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' }
  ]
};


ngOnInit(): void {
  this.setupForm();
}

setupForm() {
  this.addItemForm = new FormGroup({
    category: new FormControl('', [Validators.required]),
    name: new FormControl('', [Validators.required]),
    qty: new FormControl(1, [Validators.required, Validators.min(1)]),
    price: new FormControl(0, [Validators.required, Validators.min(1)])
  });
}

toggleFormCollapse(): void {
    this.isFormExpanded = !this.isFormExpanded;
}

addBudgetItem() {
  if (this.addItemForm.invalid) {
    this.addItemForm.markAllAsTouched();
    return;
  }

  const formValue = this.addItemForm.value;

  this.budgetItems.push({
    code: 'NEW' + (this.budgetItems.length + 1).toString().padStart(3, '0'),
    name: formValue.name,
    qty: formValue.qty,
    price: formValue.price,
    // category: formValue.category
  });

  // reset form
  this.addItemForm.reset({
    category: '',
    name: '',
    qty: 1,
    price: 0
  });
}

getTotalAmount() {
  return this.budgetItems.reduce((sum, item) => sum + item.qty * item.price, 0);
}

}
