This commit is contained in:
x2Skyz
2025-11-25 21:11:57 +07:00
parent 291485f7b7
commit 368f2ef5e6
19 changed files with 1014 additions and 811 deletions

View File

@@ -1,32 +1,32 @@
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { IBudgetExpenseResponse, IBudgetAddResponse } from '../../interfaces/dashboard.interface';
// import { Injectable } from '@angular/core';
// import { BehaviorSubject, Observable } from 'rxjs';
// import { IBudgetExpenseResponse, IBudgetAddResponse } from '../../interfaces/dashboard.interface';
@Injectable({
providedIn: 'root'
})
export class BudgetStateService {
private budgetExpenseState = new BehaviorSubject<IBudgetExpenseResponse | null>(null);
private budgetAddState = new BehaviorSubject<IBudgetAddResponse | null>(null);
// @Injectable({
// providedIn: 'root'
// })
// export class BudgetStateService {
// private budgetExpenseState = new BehaviorSubject<IBudgetExpenseResponse | null>(null);
// private budgetAddState = new BehaviorSubject<IBudgetAddResponse | null>(null);
getBudgetExpenseState(): Observable<IBudgetExpenseResponse | null> {
return this.budgetExpenseState.asObservable();
}
// getBudgetExpenseState(): Observable<IBudgetExpenseResponse | null> {
// return this.budgetExpenseState.asObservable();
// }
setBudgetExpenseState(budgetExpense: IBudgetExpenseResponse): void {
this.budgetExpenseState.next(budgetExpense);
}
// setBudgetExpenseState(budgetExpense: IBudgetExpenseResponse): void {
// this.budgetExpenseState.next(budgetExpense);
// }
getBudgetAddState(): Observable<IBudgetAddResponse | null> {
return this.budgetAddState.asObservable();
}
// getBudgetAddState(): Observable<IBudgetAddResponse | null> {
// return this.budgetAddState.asObservable();
// }
setBudgetAddState(budgetAdd: IBudgetAddResponse): void {
this.budgetAddState.next(budgetAdd);
}
// setBudgetAddState(budgetAdd: IBudgetAddResponse): void {
// this.budgetAddState.next(budgetAdd);
// }
clearState(): void {
this.budgetExpenseState.next(null);
this.budgetAddState.next(null);
}
}
// clearState(): void {
// this.budgetExpenseState.next(null);
// this.budgetAddState.next(null);
// }
// }

View File

@@ -1,32 +1,26 @@
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { IProjectSearchResponse, ITransactionSearchResponse } from '../../interfaces/dashboard.interface';
import { IPrjMst } from '../../interfaces/main.interface';
@Injectable({
providedIn: 'root'
})
export class ProjectStateService {
private projectState = new BehaviorSubject<IProjectSearchResponse | null>(null);
private transactionState = new BehaviorSubject<ITransactionSearchResponse | null>(null);
// ประกาศ BehaviorSubject ด้วย Interface
private projectState = new BehaviorSubject<IPrjMst[] | null>(null);
getProjectState(): Observable<IProjectSearchResponse | null> {
// ส่ง Observable ไปให้ components subscribe
getStateResult(): Observable<IPrjMst[] | null> {
return this.projectState.asObservable();
}
setProjectState(project: IProjectSearchResponse): void {
this.projectState.next(project);
}
getTransactionState(): Observable<ITransactionSearchResponse | null> {
return this.transactionState.asObservable();
}
setTransactionState(transaction: ITransactionSearchResponse): void {
this.transactionState.next(transaction);
// เซ็ท state
setProjectState(projects: IPrjMst[]): void {
this.projectState.next(projects);
}
// เคลียร์ state
clearState(): void {
this.projectState.next(null);
this.transactionState.next(null);
}
}

View File

@@ -1,22 +1,22 @@
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { IReportResponse } from '../../interfaces/dashboard.interface';
// import { Injectable } from '@angular/core';
// import { BehaviorSubject, Observable } from 'rxjs';
// import { IReportResponse } from '../../interfaces/dashboard.interface';
@Injectable({
providedIn: 'root'
})
export class ReportStateService {
private reportState = new BehaviorSubject<IReportResponse | null>(null);
// @Injectable({
// providedIn: 'root'
// })
// export class ReportStateService {
// private reportState = new BehaviorSubject<IReportResponse | null>(null);
getReportState(): Observable<IReportResponse | null> {
return this.reportState.asObservable();
}
// getReportState(): Observable<IReportResponse | null> {
// return this.reportState.asObservable();
// }
setReportState(report: IReportResponse): void {
this.reportState.next(report);
}
// setReportState(report: IReportResponse): void {
// this.reportState.next(report);
// }
clearState(): void {
this.reportState.next(null);
}
}
// clearState(): void {
// this.reportState.next(null);
// }
// }

View File

@@ -0,0 +1,36 @@
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
import { ITrnmst, IDropBdg } from '../../interfaces/main.interface';
@Injectable({
providedIn: 'root'
})
export class TransactionStateService {
// ประกาศ BehaviorSubject ด้วย Interface
private transactionState = new BehaviorSubject<ITrnmst[] | null>(null);
private budgetState = new BehaviorSubject<IDropBdg[] | null>(null);
// ส่ง Observable ไปให้ components subscribe
getTransactionState(): Observable<ITrnmst[] | null> {
return this.transactionState.asObservable();
}
// เซ็ท state
setTransactionState(transactions: ITrnmst[]): void {
this.transactionState.next(transactions);
}
// เคลียร์ state
clearState(): void {
this.transactionState.next(null);
}
setBudgetDrop(budget: IDropBdg[]): void {
this.budgetState.next(budget);
}
getBudgetDrop(): Observable<IDropBdg[] | null> {
return this.budgetState.asObservable();
}
}