Add export settings

This commit is contained in:
Hillel Coren 2023-01-23 17:04:58 +02:00
parent 1eb5a5519d
commit 6929f691f1
1 changed files with 33 additions and 3 deletions

View File

@ -60,16 +60,28 @@ class _ImportExportState extends State<ImportExport> {
var _exportFormat = ImportType.csv; var _exportFormat = ImportType.csv;
var _exportType = ExportType.clients; var _exportType = ExportType.clients;
var _exportDate = ''; var _exportDate = '';
var _exportDateRange = '';
bool _isExporting = false; bool _isExporting = false;
static const DATE_RANGES = [
'all',
'last7',
'last30',
'this_month',
'last_month',
'this_quarter',
'last_quarter',
'this_year',
];
static const DATE_FIELD_DATE = 'date'; static const DATE_FIELD_DATE = 'date';
static const DATE_FIELD_DUE_DATE = 'due_date'; static const DATE_FIELD_DUE_DATE = 'due_date';
static const DATE_FIELD_PARTIAL_DUE_DATE = 'partial_due_date'; static const DATE_FIELD_PARTIAL_DUE_DATE = 'partial_due_date';
static const DATE_FIELD_CREATED_AT = 'created_at'; static const DATE_FIELD_CREATED_AT = 'created_at';
static const DATE_FIELD_PAYMENT_DATE = 'payment_date'; static const DATE_FIELD_PAYMENT_DATE = 'payment_date';
final _dateFields = <ExportType, List<String>>{ static const DATE_FIELDS = <ExportType, List<String>>{
ExportType.invoices: [ ExportType.invoices: [
DATE_FIELD_DATE, DATE_FIELD_DATE,
DATE_FIELD_DUE_DATE, DATE_FIELD_DUE_DATE,
@ -222,7 +234,7 @@ class _ImportExportState extends State<ImportExport> {
child: Text(localization.lookup('$importType')))) child: Text(localization.lookup('$importType'))))
.toList(), .toList(),
), ),
if (_dateFields.containsKey(_exportType)) if (DATE_FIELDS.containsKey(_exportType)) ...[
AppDropdownButton<String>( AppDropdownButton<String>(
value: _exportDate, value: _exportDate,
labelText: localization.date, labelText: localization.date,
@ -232,12 +244,30 @@ class _ImportExportState extends State<ImportExport> {
_exportDate = value; _exportDate = value;
}); });
}, },
items: _dateFields[_exportType] items: DATE_FIELDS[_exportType]
.map((dateField) => DropdownMenuItem<String>( .map((dateField) => DropdownMenuItem<String>(
value: dateField, value: dateField,
child: Text(localization.lookup('$dateField')))) child: Text(localization.lookup('$dateField'))))
.toList(), .toList(),
), ),
AppDropdownButton<String>(
labelText: localization.dateRange,
value: _exportDateRange,
onChanged: (dynamic value) {
setState(() {
_exportDateRange = value;
});
},
items: DATE_RANGES.map(
(dateRange) => DropdownMenuItem<String>(
value: dateRange,
child: Text(
localization.lookup('$dateRange'),
),
),
),
),
],
], ],
AppButton( AppButton(
iconData: MdiIcons.export, iconData: MdiIcons.export,