dev #1
@ -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,
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
|||||||
@ -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),
|
||||||
),
|
),
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user