CSV export
This commit is contained in:
parent
22f8856732
commit
21755fa14c
|
|
@ -170,3 +170,28 @@ class ImportType extends EnumClass {
|
|||
|
||||
static ImportType valueOf(String name) => _$typeValueOf(name);
|
||||
}
|
||||
|
||||
class ExportType extends EnumClass {
|
||||
const ExportType._(String name) : super(name);
|
||||
|
||||
static Serializer<ExportType> get serializer => _$exportTypeSerializer;
|
||||
|
||||
static const ExportType clients = _$clients;
|
||||
static const ExportType contacts = _$contacts;
|
||||
static const ExportType credits = _$credits;
|
||||
static const ExportType documents = _$documents;
|
||||
static const ExportType expenses = _$expenses;
|
||||
static const ExportType invoices = _$invoices;
|
||||
static const ExportType invoice_items = _$invoice_items;
|
||||
static const ExportType quotes = _$quotes;
|
||||
static const ExportType quote_items = _$quote_items;
|
||||
static const ExportType recurring_invoices = _$recurring_invoices;
|
||||
static const ExportType payments = _$payments;
|
||||
static const ExportType products = _$products;
|
||||
static const ExportType tasks = _$tasks;
|
||||
static const ExportType profitloss = _$profitloss;
|
||||
|
||||
static BuiltSet<ExportType> get values => _$exportValues;
|
||||
|
||||
static ExportType valueOf(String name) => _$exportValueOf(name);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -46,6 +46,75 @@ final BuiltSet<ImportType> _$typeValues =
|
|||
_$zoho,
|
||||
]);
|
||||
|
||||
const ExportType _$clients = const ExportType._('clients');
|
||||
const ExportType _$contacts = const ExportType._('contacts');
|
||||
const ExportType _$credits = const ExportType._('credits');
|
||||
const ExportType _$documents = const ExportType._('documents');
|
||||
const ExportType _$expenses = const ExportType._('expenses');
|
||||
const ExportType _$invoices = const ExportType._('invoices');
|
||||
const ExportType _$invoice_items = const ExportType._('invoice_items');
|
||||
const ExportType _$quotes = const ExportType._('quotes');
|
||||
const ExportType _$quote_items = const ExportType._('quote_items');
|
||||
const ExportType _$recurring_invoices =
|
||||
const ExportType._('recurring_invoices');
|
||||
const ExportType _$payments = const ExportType._('payments');
|
||||
const ExportType _$products = const ExportType._('products');
|
||||
const ExportType _$tasks = const ExportType._('tasks');
|
||||
const ExportType _$profitloss = const ExportType._('profitloss');
|
||||
|
||||
ExportType _$exportValueOf(String name) {
|
||||
switch (name) {
|
||||
case 'clients':
|
||||
return _$clients;
|
||||
case 'contacts':
|
||||
return _$contacts;
|
||||
case 'credits':
|
||||
return _$credits;
|
||||
case 'documents':
|
||||
return _$documents;
|
||||
case 'expenses':
|
||||
return _$expenses;
|
||||
case 'invoices':
|
||||
return _$invoices;
|
||||
case 'invoice_items':
|
||||
return _$invoice_items;
|
||||
case 'quotes':
|
||||
return _$quotes;
|
||||
case 'quote_items':
|
||||
return _$quote_items;
|
||||
case 'recurring_invoices':
|
||||
return _$recurring_invoices;
|
||||
case 'payments':
|
||||
return _$payments;
|
||||
case 'products':
|
||||
return _$products;
|
||||
case 'tasks':
|
||||
return _$tasks;
|
||||
case 'profitloss':
|
||||
return _$profitloss;
|
||||
default:
|
||||
throw new ArgumentError(name);
|
||||
}
|
||||
}
|
||||
|
||||
final BuiltSet<ExportType> _$exportValues =
|
||||
new BuiltSet<ExportType>(const <ExportType>[
|
||||
_$clients,
|
||||
_$contacts,
|
||||
_$credits,
|
||||
_$documents,
|
||||
_$expenses,
|
||||
_$invoices,
|
||||
_$invoice_items,
|
||||
_$quotes,
|
||||
_$quote_items,
|
||||
_$recurring_invoices,
|
||||
_$payments,
|
||||
_$products,
|
||||
_$tasks,
|
||||
_$profitloss,
|
||||
]);
|
||||
|
||||
Serializer<PreImportResponse> _$preImportResponseSerializer =
|
||||
new _$PreImportResponseSerializer();
|
||||
Serializer<PreImportResponseEntityDetails>
|
||||
|
|
@ -56,6 +125,7 @@ Serializer<ImportRequest> _$importRequestSerializer =
|
|||
Serializer<ImportRequestMapping> _$importRequestMappingSerializer =
|
||||
new _$ImportRequestMappingSerializer();
|
||||
Serializer<ImportType> _$importTypeSerializer = new _$ImportTypeSerializer();
|
||||
Serializer<ExportType> _$exportTypeSerializer = new _$ExportTypeSerializer();
|
||||
|
||||
class _$PreImportResponseSerializer
|
||||
implements StructuredSerializer<PreImportResponse> {
|
||||
|
|
@ -303,6 +373,23 @@ class _$ImportTypeSerializer implements PrimitiveSerializer<ImportType> {
|
|||
ImportType.valueOf(serialized as String);
|
||||
}
|
||||
|
||||
class _$ExportTypeSerializer implements PrimitiveSerializer<ExportType> {
|
||||
@override
|
||||
final Iterable<Type> types = const <Type>[ExportType];
|
||||
@override
|
||||
final String wireName = 'ExportType';
|
||||
|
||||
@override
|
||||
Object serialize(Serializers serializers, ExportType object,
|
||||
{FullType specifiedType = FullType.unspecified}) =>
|
||||
object.name;
|
||||
|
||||
@override
|
||||
ExportType deserialize(Serializers serializers, Object serialized,
|
||||
{FullType specifiedType = FullType.unspecified}) =>
|
||||
ExportType.valueOf(serialized as String);
|
||||
}
|
||||
|
||||
class _$PreImportResponse extends PreImportResponse {
|
||||
@override
|
||||
final String hash;
|
||||
|
|
|
|||
|
|
@ -48,8 +48,9 @@ class _ImportExportState extends State<ImportExport> {
|
|||
FocusScopeNode _focusNode;
|
||||
bool autoValidate = false;
|
||||
PreImportResponse _response;
|
||||
var _importType = ImportType.csv;
|
||||
var _exportType = ImportType.csv;
|
||||
var _importFormat = ImportType.csv;
|
||||
var _exportFormat = ImportType.csv;
|
||||
var _exportType = ExportType.clients;
|
||||
bool _isExporting = false;
|
||||
|
||||
@override
|
||||
|
|
@ -82,9 +83,9 @@ class _ImportExportState extends State<ImportExport> {
|
|||
children: [
|
||||
if (_response == null)
|
||||
_FileImport(
|
||||
importType: _importType,
|
||||
importType: _importFormat,
|
||||
onUploaded: (response) => {
|
||||
if (_importType == ImportType.csv)
|
||||
if (_importFormat == ImportType.csv)
|
||||
{
|
||||
setState(() => _response = response),
|
||||
}
|
||||
|
|
@ -94,12 +95,12 @@ class _ImportExportState extends State<ImportExport> {
|
|||
}
|
||||
},
|
||||
onImportTypeChanged: (importType) =>
|
||||
setState(() => _importType = importType),
|
||||
setState(() => _importFormat = importType),
|
||||
)
|
||||
else
|
||||
_FileMapper(
|
||||
key: ValueKey(_response.hash),
|
||||
importType: _importType,
|
||||
importType: _importFormat,
|
||||
formKey: _formKey,
|
||||
response: _response,
|
||||
onCancelPressed: () => setState(() => _response = null),
|
||||
|
|
@ -117,10 +118,10 @@ class _ImportExportState extends State<ImportExport> {
|
|||
child: DropdownButtonHideUnderline(
|
||||
child: DropdownButton<ImportType>(
|
||||
isDense: true,
|
||||
value: _exportType,
|
||||
value: _exportFormat,
|
||||
onChanged: (dynamic value) {
|
||||
setState(() {
|
||||
_exportType = value;
|
||||
_exportFormat = value;
|
||||
});
|
||||
},
|
||||
items: [
|
||||
|
|
@ -134,6 +135,26 @@ class _ImportExportState extends State<ImportExport> {
|
|||
.toList()),
|
||||
),
|
||||
),
|
||||
InputDecorator(
|
||||
decoration:
|
||||
InputDecoration(labelText: localization.exportType),
|
||||
child: DropdownButtonHideUnderline(
|
||||
child: DropdownButton<ExportType>(
|
||||
isDense: true,
|
||||
value: _exportType,
|
||||
onChanged: (dynamic value) {
|
||||
setState(() {
|
||||
_exportType = value;
|
||||
});
|
||||
},
|
||||
items: ExportType.values
|
||||
.map((importType) => DropdownMenuItem<ExportType>(
|
||||
value: importType,
|
||||
child:
|
||||
Text(localization.lookup('$importType'))))
|
||||
.toList()),
|
||||
),
|
||||
),
|
||||
AppButton(
|
||||
iconData: MdiIcons.export,
|
||||
label: localization.export.toUpperCase(),
|
||||
|
|
|
|||
|
|
@ -16,6 +16,9 @@ mixin LocalizationsProvider on LocaleCodeAware {
|
|||
static final Map<String, Map<String, String>> _localizedValues = {
|
||||
'en': {
|
||||
// STARTER: lang key - do not remove comment
|
||||
'invoice_items': 'Invoice Items',
|
||||
'quote_items': 'Quote Items',
|
||||
'profitloss': 'Profit and Loss',
|
||||
'import_format': 'Import Format',
|
||||
'export_format': 'Export Format',
|
||||
'export_type': 'Export Type',
|
||||
|
|
@ -69693,6 +69696,18 @@ mixin LocalizationsProvider on LocaleCodeAware {
|
|||
_localizedValues[localeCode]['export_format'] ??
|
||||
_localizedValues[localeCode]['export_format'];
|
||||
|
||||
String get invoiceItems =>
|
||||
_localizedValues[localeCode]['invoice_items'] ??
|
||||
_localizedValues[localeCode]['invoice_items'];
|
||||
|
||||
String get quoteItems =>
|
||||
_localizedValues[localeCode]['quote_items'] ??
|
||||
_localizedValues[localeCode]['quote_items'];
|
||||
|
||||
String get profitloss =>
|
||||
_localizedValues[localeCode]['profitloss'] ??
|
||||
_localizedValues[localeCode]['profitloss'];
|
||||
|
||||
// STARTER: lang field - do not remove comment
|
||||
|
||||
String lookup(String key) {
|
||||
|
|
|
|||
Loading…
Reference in New Issue