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