-
- {{ idx.type == 'i' ? 'รับ' : 'จ่าย' }}
-
-
-
{{ idx.title }}
-
{{ idx.date }}
+
+ @for (idx of myActData; track idx.actseq; let i = $index) {
+
+
+
+
+ {{ idx.acttyp === 'i' ? 'รับ' : 'จ่าย' }}
+
+
+
+
{{ idx.acttypnam }}
+
{{ (idx.actacpdtm ?? '') | dtmtodatetime }}
+
+
+
+
{{ idx.actcatnam }}
+
+
+ {{ idx.actqty }}
+
+
+
{{ idx.actcmt }}
+
+ }
diff --git a/accounting-ng-nuttakit/src/app/component/main-dashboard/main-dashboard.component.ts b/accounting-ng-nuttakit/src/app/component/main-dashboard/main-dashboard.component.ts
index 065914a..d981930 100644
--- a/accounting-ng-nuttakit/src/app/component/main-dashboard/main-dashboard.component.ts
+++ b/accounting-ng-nuttakit/src/app/component/main-dashboard/main-dashboard.component.ts
@@ -1,7 +1,7 @@
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 } from '../../interfaces/dashboard.interface'
+import { IDropAct, IStateDrop, IStateResultResponse, IActData } from '../../interfaces/dashboard.interface'
import { DashboardStateService } from '../../services/state/dashboard-state.service';
@Component({
@@ -17,6 +17,7 @@ export class MainDashboardComponent implements OnInit {
isSubmitting: boolean = false;
arrearsForm!: FormGroup;
saveFrm!: FormGroup;
+ myActData: IActData[] = [];
// myDropAct: IStateDrop[] = [];
myDropAct: IStateDrop = { income: [], expense: [] };
@@ -191,6 +192,12 @@ export class MainDashboardComponent implements OnInit {
this.myDropAct = data;
}
});
+
+ this.dashboardStateService.getStateAccountResult().subscribe(data => {
+ if (data) {
+ this.myActData = data;
+ }
+ });
}
setupFormControl(){
diff --git a/accounting-ng-nuttakit/src/app/content/main-dashboard-content/main-dashboard-content.component.ts b/accounting-ng-nuttakit/src/app/content/main-dashboard-content/main-dashboard-content.component.ts
index bfa35a5..34489e0 100644
--- a/accounting-ng-nuttakit/src/app/content/main-dashboard-content/main-dashboard-content.component.ts
+++ b/accounting-ng-nuttakit/src/app/content/main-dashboard-content/main-dashboard-content.component.ts
@@ -3,7 +3,7 @@ import { Component, OnInit, ViewChild } from '@angular/core';
import { ChartConfiguration, ChartOptions } from 'chart.js';
import { BaseChartDirective } from 'ng2-charts';
import { GeneralService } from '../../services/generalservice';
-import { IDropAct, IStateDrop } from '../../interfaces/dashboard.interface';
+import { IDropAct, IStateDrop, IActData } from '../../interfaces/dashboard.interface';
@Component({
@@ -15,6 +15,7 @@ import { IDropAct, IStateDrop } from '../../interfaces/dashboard.interface';
export class MainDashboardContentComponent implements OnInit {
@ViewChild(BaseChartDirective) chart?: BaseChartDirective;
myDropAct!: IStateDrop;
+ myActData: IActData[] = [];
constructor(
private generalService: GeneralService,
@@ -36,7 +37,8 @@ export class MainDashboardContentComponent implements OnInit {
next: (result: any) => {
if (result.code === '200') {
this.generalService.trowApi(result);
- this.myDropAct = result.data
+ this.myActData = result.data;
+ this.dashboardStateService.setStateAccountResult(this.myActData);
}
},
error: (error: any) => {
diff --git a/accounting-ng-nuttakit/src/app/controls/main-control/main-control.module.ts b/accounting-ng-nuttakit/src/app/controls/main-control/main-control.module.ts
index b2cf561..6bf2214 100644
--- a/accounting-ng-nuttakit/src/app/controls/main-control/main-control.module.ts
+++ b/accounting-ng-nuttakit/src/app/controls/main-control/main-control.module.ts
@@ -8,6 +8,7 @@ import { ReactiveFormsModule } from '@angular/forms';
import { MainDashboardComponent } from '../../component/main-dashboard/main-dashboard.component';
import { MainDashboardContentComponent } from '../../content/main-dashboard-content/main-dashboard-content.component';
+import { AccDateFormatPipe } from '../../pipe/dtmtodatetime.pipe';
// import { MainReportComponent } from '../../component/main-report/main-report.component';
@@ -16,7 +17,8 @@ import { MainDashboardContentComponent } from '../../content/main-dashboard-cont
@NgModule({
declarations: [
MainDashboardComponent,
- MainDashboardContentComponent
+ MainDashboardContentComponent,
+ AccDateFormatPipe
// MainReportComponent
],
imports: [
@@ -24,6 +26,9 @@ import { MainDashboardContentComponent } from '../../content/main-dashboard-cont
MainControlRoutingModule,
ReactiveFormsModule
// BrowserAnimationsModule
+ ],
+ exports: [
+ AccDateFormatPipe
]
})
export class MainControlModule { }
diff --git a/accounting-ng-nuttakit/src/app/interfaces/dashboard.interface.ts b/accounting-ng-nuttakit/src/app/interfaces/dashboard.interface.ts
index a95cb80..cb0c16b 100644
--- a/accounting-ng-nuttakit/src/app/interfaces/dashboard.interface.ts
+++ b/accounting-ng-nuttakit/src/app/interfaces/dashboard.interface.ts
@@ -8,6 +8,17 @@ export interface IDropAct {
dtlcod?: string
}
+export interface IActData {
+ actseq?: number,
+ actnum?: number,
+ acttyp?: string,
+ acttypnam?: string,
+ actcatnam?: string,
+ actqty?: number,
+ actcmt?: string,
+ actacpdtm?: string
+}
+
export interface IStateResultResponse {
data: IStateDrop;
}
diff --git a/accounting-ng-nuttakit/src/app/pipe/dtmtodatetime.pipe.ts b/accounting-ng-nuttakit/src/app/pipe/dtmtodatetime.pipe.ts
new file mode 100644
index 0000000..66863ff
--- /dev/null
+++ b/accounting-ng-nuttakit/src/app/pipe/dtmtodatetime.pipe.ts
@@ -0,0 +1,24 @@
+import { Pipe, PipeTransform } from '@angular/core';
+
+@Pipe({
+ name: 'dtmtodatetime',
+ standalone: false
+})
+export class AccDateFormatPipe implements PipeTransform {
+
+ transform(value: string | number): string {
+ if (value === null || value === undefined) return '';
+
+ const str = value.toString();
+ if (str.length !== 12) return str;
+
+ const dd = str.slice(0, 2);
+ const mm = str.slice(2, 4);
+ const yyyy = str.slice(4, 8);
+ const hh = str.slice(8, 10);
+ const min = str.slice(10, 12);
+
+ return `${dd}/${mm}/${yyyy} ${hh}:${min}`;
+ }
+
+}
diff --git a/accounting-ng-nuttakit/src/app/services/state/dashboard-state.service.ts b/accounting-ng-nuttakit/src/app/services/state/dashboard-state.service.ts
index 1a47aa2..15bfdd5 100644
--- a/accounting-ng-nuttakit/src/app/services/state/dashboard-state.service.ts
+++ b/accounting-ng-nuttakit/src/app/services/state/dashboard-state.service.ts
@@ -1,6 +1,6 @@
import { Injectable } from '@angular/core';
import { BehaviorSubject, Observable } from 'rxjs';
-import { IDropAct, IStateDrop } from '../../interfaces/dashboard.interface';
+import { IDropAct, IStateDrop, IActData } from '../../interfaces/dashboard.interface';
@Injectable({
providedIn: 'root'
@@ -8,6 +8,7 @@ import { IDropAct, IStateDrop } from '../../interfaces/dashboard.interface';
export class DashboardStateService {
// ประกาศ BehaviorSubject ด้วย Interface
private dashboardState = new BehaviorSubject
(null);
+ private accountting = new BehaviorSubject(null);
// ส่ง Observable ไปให้ components subscribe
getStateResult(): Observable {
@@ -15,8 +16,13 @@ export class DashboardStateService {
}
// เซ็ท state
- setStateResult(product: IStateDrop): void {
- this.dashboardState.next(product);
+ setStateResult(dashboard: IStateDrop): void {
+ this.dashboardState.next(dashboard);
+ }
+
+
+ setStateAccountResult(dashboard: IActData[]): void {
+ this.accountting.next(dashboard);
}
// เคลียร์ state
@@ -24,8 +30,12 @@ export class DashboardStateService {
this.dashboardState.next(null);
}
+ getStateAccountResult(): Observable {
+ return this.accountting.asObservable();
+ }
+
// ดึงค่า current state (ไม่ใช่ observable)
// getCurrentState(): IDropAct | null {
- // return this.productState.value;
+ // return this.dashboardState.value;
// }
}