feat: category report

This commit is contained in:
efrilm
2025-08-15 17:07:29 +07:00
parent 79585b253d
commit 7007f39766
7 changed files with 1261 additions and 1 deletions
+58 -1
View File
@@ -5,9 +5,11 @@ import 'package:enaklo_pos/core/extensions/build_context_ext.dart';
import 'package:enaklo_pos/core/utils/helper_pdf_service.dart';
import 'package:enaklo_pos/core/utils/permession_handler.dart';
import 'package:enaklo_pos/core/utils/transaction_report.dart';
import 'package:enaklo_pos/presentation/report/blocs/category_report/category_report_bloc.dart';
import 'package:enaklo_pos/presentation/report/blocs/inventory_report/inventory_report_bloc.dart';
import 'package:enaklo_pos/presentation/report/blocs/profit_loss/profit_loss_bloc.dart';
import 'package:enaklo_pos/presentation/report/blocs/report/report_bloc.dart';
import 'package:enaklo_pos/presentation/report/widgets/category_report_widget.dart';
import 'package:enaklo_pos/presentation/report/widgets/dashboard_analytic_widget.dart';
import 'package:enaklo_pos/presentation/report/widgets/inventory_report_widget.dart';
import 'package:enaklo_pos/presentation/report/widgets/profit_loss_widget.dart';
@@ -111,6 +113,15 @@ class _ReportPageState extends State<ReportPage> {
),
);
}
if (selectedMenu == 7) {
context.read<CategoryReportBloc>().add(
CategoryReportEvent.get(
startDate: fromDate,
endDate: toDate,
),
);
}
}
@override
@@ -346,6 +357,23 @@ class _ReportPageState extends State<ReportPage> {
},
isActive: selectedMenu == 6,
),
ReportMenu(
label: 'Laporan Kategori',
subtitle: 'Laporan kategori produk',
icon: Icons.archive_outlined,
onPressed: () {
selectedMenu = 7;
title = 'Laporan Kategori';
setState(() {});
context.read<CategoryReportBloc>().add(
CategoryReportEvent.get(
startDate: fromDate,
endDate: toDate,
),
);
},
isActive: selectedMenu == 7,
),
],
),
),
@@ -521,7 +549,36 @@ class _ReportPageState extends State<ReportPage> {
);
},
)
: const SizedBox.shrink()),
: selectedMenu == 7
? BlocBuilder<
CategoryReportBloc,
CategoryReportState>(
builder:
(context, state) {
return state
.maybeWhen(
orElse: () =>
const Center(
child:
CircularProgressIndicator(),
),
error: (message) {
return Text(
message);
},
loaded: (data) {
return CategoryReportWidget(
title: title,
searchDateFormatted:
searchDateFormatted,
categoryAnalyticData:
data,
);
},
);
},
)
: const SizedBox.shrink()),
],
),
),