dev #1

Merged
aefril merged 128 commits from dev into main 2025-08-13 17:19:48 +00:00
2 changed files with 48 additions and 48 deletions
Showing only changes of commit db06f0dd13 - Show all commits

View File

@ -31,17 +31,16 @@ class ReportPage extends StatefulWidget {
} }
class _ReportPageState extends State<ReportPage> { class _ReportPageState extends State<ReportPage> {
int selectedMenu = 1; int selectedMenu = 0;
String title = 'Laporan Penjualan Item'; String title = 'Ringkasan Laporan Penjualan';
DateTime fromDate = DateTime.now().subtract(const Duration(days: 30)); DateTime fromDate = DateTime.now().subtract(const Duration(days: 30));
DateTime toDate = DateTime.now(); DateTime toDate = DateTime.now();
@override @override
void initState() { void initState() {
super.initState(); super.initState();
context.read<ItemSalesReportBloc>().add( context.read<SummaryBloc>().add(
ItemSalesReportEvent.getItemSales( SummaryEvent.getSummary(fromDate, toDate),
startDate: fromDate, endDate: toDate),
); );
} }
@ -112,6 +111,23 @@ class _ReportPageState extends State<ReportPage> {
child: Column( child: Column(
crossAxisAlignment: CrossAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start,
children: [ children: [
ReportMenu(
label: 'Ringkasan Laporan Penjualan',
subtitle:
'Ringkasan total penjualan dalam periode tertentu.',
icon: Icons.insert_drive_file_outlined,
onPressed: () {
selectedMenu = 0;
title = 'Ringkasan Laporan Penjualan';
setState(() {});
context.read<SummaryBloc>().add(
SummaryEvent.getSummary(fromDate, toDate),
);
log("Date ${DateFormatter.formatDateTime(fromDate)}");
},
isActive: selectedMenu == 0,
),
ReportMenu( ReportMenu(
label: 'Laporan Transaksi', label: 'Laporan Transaksi',
subtitle: subtitle:
@ -120,7 +136,7 @@ class _ReportPageState extends State<ReportPage> {
onPressed: () { onPressed: () {
context.push(SalesPage(status: 'completed')); context.push(SalesPage(status: 'completed'));
}, },
isActive: selectedMenu == 0, isActive: selectedMenu == 1,
), ),
ReportMenu( ReportMenu(
label: 'Laporan Penjualan Item', label: 'Laporan Penjualan Item',
@ -128,7 +144,7 @@ class _ReportPageState extends State<ReportPage> {
'Laporan penjualan berdasarkan masing-masing item atau produk.', 'Laporan penjualan berdasarkan masing-masing item atau produk.',
icon: Icons.inventory_2_outlined, icon: Icons.inventory_2_outlined,
onPressed: () { onPressed: () {
selectedMenu = 1; selectedMenu = 2;
title = 'Laporan Penjualan Item'; title = 'Laporan Penjualan Item';
setState(() {}); setState(() {});
context.read<ItemSalesReportBloc>().add( context.read<ItemSalesReportBloc>().add(
@ -136,7 +152,7 @@ class _ReportPageState extends State<ReportPage> {
startDate: fromDate, endDate: toDate), startDate: fromDate, endDate: toDate),
); );
}, },
isActive: selectedMenu == 1, isActive: selectedMenu == 2,
), ),
ReportMenu( ReportMenu(
label: 'Laporan Penjualan Produk', label: 'Laporan Penjualan Produk',
@ -144,7 +160,7 @@ class _ReportPageState extends State<ReportPage> {
'Laporan penjualan berdasarkan masing-masing produk.', 'Laporan penjualan berdasarkan masing-masing produk.',
icon: Icons.bar_chart_outlined, icon: Icons.bar_chart_outlined,
onPressed: () { onPressed: () {
selectedMenu = 2; selectedMenu = 3;
title = 'Laporan Penjualan Produk'; title = 'Laporan Penjualan Produk';
setState(() {}); setState(() {});
context.read<ProductSalesBloc>().add( context.read<ProductSalesBloc>().add(
@ -154,23 +170,6 @@ class _ReportPageState extends State<ReportPage> {
), ),
); );
}, },
isActive: selectedMenu == 2,
),
ReportMenu(
label: 'Ringkasan Laporan Penjualan',
subtitle:
'Ringkasan total penjualan dalam periode tertentu.',
icon: Icons.insert_drive_file_outlined,
onPressed: () {
selectedMenu = 3;
title = 'Ringkasan Laporan Penjualan';
setState(() {});
context.read<SummaryBloc>().add(
SummaryEvent.getSummary(fromDate, toDate),
);
log("Date ${DateFormatter.formatDateTime(fromDate)}");
},
isActive: selectedMenu == 3, isActive: selectedMenu == 3,
), ),
ReportMenu( ReportMenu(
@ -203,8 +202,7 @@ class _ReportPageState extends State<ReportPage> {
Expanded( Expanded(
flex: 4, flex: 4,
child: selectedMenu == 0 child: selectedMenu == 0
? BlocBuilder<TransactionReportBloc, ? BlocBuilder<SummaryBloc, SummaryState>(
TransactionReportState>(
builder: (context, state) { builder: (context, state) {
return state.maybeWhen( return state.maybeWhen(
orElse: () => const Center( orElse: () => const Center(
@ -213,20 +211,19 @@ class _ReportPageState extends State<ReportPage> {
error: (message) { error: (message) {
return Text(message); return Text(message);
}, },
loaded: (transactionReport) { success: (data) {
return TransactionReportWidget( return DashboardAnalyticWidget(
transactionReport: transactionReport, data: data,
title: title, title: title,
searchDateFormatted: searchDateFormatted, searchDateFormatted: searchDateFormatted,
headerWidgets: _getTitleReportPageWidget(),
); );
}, },
); );
}, },
) )
: selectedMenu == 1 : selectedMenu == 1
? BlocBuilder<ItemSalesReportBloc, ? BlocBuilder<TransactionReportBloc,
ItemSalesReportState>( TransactionReportState>(
builder: (context, state) { builder: (context, state) {
return state.maybeWhen( return state.maybeWhen(
orElse: () => const Center( orElse: () => const Center(
@ -235,22 +232,22 @@ class _ReportPageState extends State<ReportPage> {
error: (message) { error: (message) {
return Text(message); return Text(message);
}, },
loaded: (itemSales) { loaded: (transactionReport) {
return ItemSalesReportWidget( return TransactionReportWidget(
sales: itemSales, transactionReport: transactionReport,
title: title, title: title,
searchDateFormatted: searchDateFormatted:
searchDateFormatted, searchDateFormatted,
headerWidgets: headerWidgets:
_getItemSalesPageWidget(), _getTitleReportPageWidget(),
); );
}, },
); );
}, },
) )
: selectedMenu == 2 : selectedMenu == 2
? BlocBuilder<ProductSalesBloc, ? BlocBuilder<ItemSalesReportBloc,
ProductSalesState>( ItemSalesReportState>(
builder: (context, state) { builder: (context, state) {
return state.maybeWhen( return state.maybeWhen(
orElse: () => const Center( orElse: () => const Center(
@ -259,19 +256,22 @@ class _ReportPageState extends State<ReportPage> {
error: (message) { error: (message) {
return Text(message); return Text(message);
}, },
success: (products) { loaded: (itemSales) {
return ProductAnalyticsWidget( return ItemSalesReportWidget(
sales: itemSales,
title: title, title: title,
searchDateFormatted: searchDateFormatted:
searchDateFormatted, searchDateFormatted,
productData: products, headerWidgets:
_getItemSalesPageWidget(),
); );
}, },
); );
}, },
) )
: selectedMenu == 3 : selectedMenu == 3
? BlocBuilder<SummaryBloc, SummaryState>( ? BlocBuilder<ProductSalesBloc,
ProductSalesState>(
builder: (context, state) { builder: (context, state) {
return state.maybeWhen( return state.maybeWhen(
orElse: () => const Center( orElse: () => const Center(
@ -281,12 +281,12 @@ class _ReportPageState extends State<ReportPage> {
error: (message) { error: (message) {
return Text(message); return Text(message);
}, },
success: (data) { success: (products) {
return DashboardAnalyticWidget( return ProductAnalyticsWidget(
data: data,
title: title, title: title,
searchDateFormatted: searchDateFormatted:
searchDateFormatted, searchDateFormatted,
productData: products,
); );
}, },
); );

View File

@ -71,7 +71,7 @@ class DashboardAnalyticWidget extends StatelessWidget {
Text( Text(
title, title,
style: TextStyle( style: TextStyle(
fontSize: 28, fontSize: 18,
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Color(0xFF1F2937), color: Color(0xFF1F2937),
), ),