-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Fix some issues with nav drawer, filter box, report pages etc
- Loading branch information
Showing
8 changed files
with
120 additions
and
129 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -138,17 +138,7 @@ class _PasswordPageState extends State<PasswordPage> { | |
to: ['[email protected]'], | ||
cc: [user.email!], | ||
subject: 'Password for Sales Tracker', | ||
body: [ | ||
'Hi,', | ||
'<br><br>', | ||
'Please send me the password for your Sales Tracker app!', | ||
'<br><br>', | ||
'My email is: <b>${user.email!}</b>', | ||
'<br><br>', | ||
'Thanks,', | ||
'<br>', | ||
'${user.displayName}', | ||
].join('\n'), | ||
body: 'Please send me the password for Sales Tracker app. My email is "${user.email!}"', | ||
); | ||
await launch('$mailtoLink'); | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,52 @@ | ||
import 'dart:typed_data'; | ||
|
||
import 'package:flutter/material.dart'; | ||
import 'package:intl/intl.dart'; | ||
import 'package:sales_tracker/src/blocs/repository.dart'; | ||
import 'package:sales_tracker/src/models/product_report.dart'; | ||
import 'package:sales_tracker/src/pages/widgets/abstract_report_page.dart'; | ||
import 'package:sales_tracker/src/pages/widgets/product_report_view.dart'; | ||
import 'package:sales_tracker/src/pages/widgets/report_page_widget.dart'; | ||
import 'package:sales_tracker/src/utils/generate_product_report.dart'; | ||
|
||
class ProductReportPage extends AbstractReportPage<ProductReport> { | ||
static Future<void> display(BuildContext context) { | ||
return showReportPage( | ||
context: context, | ||
saveButtonText: 'Generate Product Report', | ||
builder: (start, end) => ProductReportPage(start, end), | ||
); | ||
} | ||
class ProductReportPage extends StatelessWidget { | ||
static Future<void> display(BuildContext context) async { | ||
final navigator = Navigator.of(context, rootNavigator: true); | ||
|
||
ProductReportPage(DateTime start, DateTime end) | ||
: super( | ||
startDate: start, | ||
endDate: end, | ||
titleText: 'Product Report', | ||
fetchFailureText: 'Could not fetch products', | ||
); | ||
DateTimeRange? range = await selectDateRange( | ||
context, | ||
'Generate Product Report', | ||
); | ||
if (range == null) return; | ||
|
||
@override | ||
Stream<ProductReport> getReportStream(BuildContext context) { | ||
return Repository.of(context).getProductReport(startDate, endDate); | ||
await navigator.push( | ||
MaterialPageRoute( | ||
maintainState: true, | ||
fullscreenDialog: false, | ||
builder: (context) => ProductReportPage(range.start, range.end), | ||
), | ||
); | ||
} | ||
|
||
@override | ||
Widget buildReportView(ProductReport report) { | ||
return ProductReportView(report); | ||
} | ||
final DateTime start; | ||
final DateTime end; | ||
|
||
@override | ||
Future<Uint8List> generateReport(ProductReport report) { | ||
return generateProductReport(report); | ||
} | ||
ProductReportPage(this.start, this.end); | ||
|
||
@override | ||
String getReportFileName(ProductReport report) { | ||
final formatter = DateFormat('yyyy-MM-dd'); | ||
final startStr = formatter.format(startDate); | ||
final endStr = formatter.format(endDate); | ||
return 'Products_${startStr}_$endStr.pdf'; | ||
Widget build(BuildContext context) { | ||
return ReportPageWidget<ProductReport>( | ||
startDate: start, | ||
endDate: end, | ||
titleText: 'Product Report', | ||
fetchFailureText: 'Could not fetch products', | ||
onGenerateReport: generateProductReport, | ||
onGetReportStream: () => | ||
Repository.of(context).getProductReport(start, end), | ||
reportViewBuilder: (report) => ProductReportView(report), | ||
onGetReportFileName: (report) { | ||
final formatter = DateFormat('yyyy-MM-dd'); | ||
final startStr = formatter.format(start); | ||
final endStr = formatter.format(end); | ||
return 'Products_${startStr}_$endStr.pdf'; | ||
}, | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,50 +1,52 @@ | ||
import 'dart:typed_data'; | ||
|
||
import 'package:flutter/material.dart'; | ||
import 'package:intl/intl.dart'; | ||
import 'package:sales_tracker/src/blocs/repository.dart'; | ||
import 'package:sales_tracker/src/models/sales_report.dart'; | ||
import 'package:sales_tracker/src/pages/widgets/abstract_report_page.dart'; | ||
import 'package:sales_tracker/src/pages/widgets/report_page_widget.dart'; | ||
import 'package:sales_tracker/src/pages/widgets/sales_report_view.dart'; | ||
import 'package:sales_tracker/src/utils/generate_sales_report.dart'; | ||
|
||
class SalesReportPage extends AbstractReportPage<SalesReport> { | ||
static Future<void> display(BuildContext context) { | ||
return showReportPage( | ||
context: context, | ||
saveButtonText: 'Generate Sales Report', | ||
builder: (start, end) => SalesReportPage(start, end), | ||
); | ||
} | ||
class SalesReportPage extends StatelessWidget { | ||
static Future<void> display(BuildContext context) async { | ||
final navigator = Navigator.of(context, rootNavigator: true); | ||
|
||
SalesReportPage(DateTime start, DateTime end) | ||
: super( | ||
startDate: start, | ||
endDate: end, | ||
titleText: 'Sales Report', | ||
fetchFailureText: 'Could not fetch sales records', | ||
); | ||
DateTimeRange? range = await selectDateRange( | ||
context, | ||
'Generate Sales Report', | ||
); | ||
if (range == null) return; | ||
|
||
@override | ||
Stream<SalesReport> getReportStream(BuildContext context) { | ||
return Repository.of(context).getSalesReport(startDate, endDate); | ||
await navigator.push( | ||
MaterialPageRoute( | ||
maintainState: true, | ||
fullscreenDialog: false, | ||
builder: (context) => SalesReportPage(range.start, range.end), | ||
), | ||
); | ||
} | ||
|
||
@override | ||
Widget buildReportView(SalesReport report) { | ||
return SalesReportView(report); | ||
} | ||
final DateTime start; | ||
final DateTime end; | ||
|
||
@override | ||
Future<Uint8List> generateReport(SalesReport report) { | ||
return generateSalesReport(report); | ||
} | ||
SalesReportPage(this.start, this.end); | ||
|
||
@override | ||
String getReportFileName(SalesReport report) { | ||
final formatter = DateFormat('yyyy-MM-dd'); | ||
final startStr = formatter.format(startDate); | ||
final endStr = formatter.format(endDate); | ||
return 'Sales_${startStr}_$endStr.pdf'; | ||
Widget build(BuildContext context) { | ||
return ReportPageWidget<SalesReport>( | ||
startDate: start, | ||
endDate: end, | ||
titleText: 'Sales Report', | ||
fetchFailureText: 'Could not fetch sales records', | ||
onGenerateReport: generateSalesReport, | ||
onGetReportStream: () => | ||
Repository.of(context).getSalesReport(start, end), | ||
reportViewBuilder: (report) => SalesReportView(report), | ||
onGetReportFileName: (report) { | ||
final formatter = DateFormat('yyyy-MM-dd'); | ||
final startStr = formatter.format(start); | ||
final endStr = formatter.format(end); | ||
return 'Sales_${startStr}_$endStr.pdf'; | ||
}, | ||
); | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.