Null safety
This commit is contained in:
parent
a923482618
commit
09b90605c9
|
|
@ -890,6 +890,10 @@ Serializers _$serializers = (new Serializers().toBuilder()
|
||||||
const FullType(
|
const FullType(
|
||||||
BuiltMap, const [const FullType(String), const FullType(String)]),
|
BuiltMap, const [const FullType(String), const FullType(String)]),
|
||||||
() => new MapBuilder<String, String>())
|
() => new MapBuilder<String, String>())
|
||||||
|
..addBuilderFactory(
|
||||||
|
const FullType(
|
||||||
|
BuiltMap, const [const FullType(String), const FullType(String)]),
|
||||||
|
() => new MapBuilder<String, String>())
|
||||||
..addBuilderFactory(
|
..addBuilderFactory(
|
||||||
const FullType(BuiltMap, const [
|
const FullType(BuiltMap, const [
|
||||||
const FullType(String),
|
const FullType(String),
|
||||||
|
|
@ -1006,13 +1010,7 @@ Serializers _$serializers = (new Serializers().toBuilder()
|
||||||
const FullType(String),
|
const FullType(String),
|
||||||
const FullType(BuiltList, const [const FullType(String)])
|
const FullType(BuiltList, const [const FullType(String)])
|
||||||
]),
|
]),
|
||||||
() => new MapBuilder<String, BuiltList<String>>())
|
() => new MapBuilder<String, BuiltList<String>>()))
|
||||||
..addBuilderFactory(
|
|
||||||
const FullType(BuiltMap, const [
|
|
||||||
const FullType.nullable(String),
|
|
||||||
const FullType.nullable(String)
|
|
||||||
]),
|
|
||||||
() => new MapBuilder<String?, String?>()))
|
|
||||||
.build();
|
.build();
|
||||||
|
|
||||||
// ignore_for_file: deprecated_member_use_from_same_package,type=lint
|
// ignore_for_file: deprecated_member_use_from_same_package,type=lint
|
||||||
|
|
|
||||||
|
|
@ -43,7 +43,7 @@ abstract class ReportsUIState
|
||||||
|
|
||||||
String get customEndDate;
|
String get customEndDate;
|
||||||
|
|
||||||
BuiltMap<String?, String?> get filters;
|
BuiltMap<String, String> get filters;
|
||||||
|
|
||||||
bool get isGroupByFiltered =>
|
bool get isGroupByFiltered =>
|
||||||
filters.containsKey(group) && filters[group]!.isNotEmpty;
|
filters.containsKey(group) && filters[group]!.isNotEmpty;
|
||||||
|
|
|
||||||
|
|
@ -43,10 +43,8 @@ class _$ReportsUIStateSerializer
|
||||||
specifiedType: const FullType(String)),
|
specifiedType: const FullType(String)),
|
||||||
'filters',
|
'filters',
|
||||||
serializers.serialize(object.filters,
|
serializers.serialize(object.filters,
|
||||||
specifiedType: const FullType(BuiltMap, const [
|
specifiedType: const FullType(BuiltMap,
|
||||||
const FullType.nullable(String),
|
const [const FullType(String), const FullType(String)])),
|
||||||
const FullType.nullable(String)
|
|
||||||
])),
|
|
||||||
];
|
];
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
|
|
@ -94,10 +92,8 @@ class _$ReportsUIStateSerializer
|
||||||
break;
|
break;
|
||||||
case 'filters':
|
case 'filters':
|
||||||
result.filters.replace(serializers.deserialize(value,
|
result.filters.replace(serializers.deserialize(value,
|
||||||
specifiedType: const FullType(BuiltMap, const [
|
specifiedType: const FullType(BuiltMap,
|
||||||
const FullType.nullable(String),
|
const [const FullType(String), const FullType(String)]))!);
|
||||||
const FullType.nullable(String)
|
|
||||||
]))!);
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -122,7 +118,7 @@ class _$ReportsUIState extends ReportsUIState {
|
||||||
@override
|
@override
|
||||||
final String customEndDate;
|
final String customEndDate;
|
||||||
@override
|
@override
|
||||||
final BuiltMap<String?, String?> filters;
|
final BuiltMap<String, String> filters;
|
||||||
|
|
||||||
factory _$ReportsUIState([void Function(ReportsUIStateBuilder)? updates]) =>
|
factory _$ReportsUIState([void Function(ReportsUIStateBuilder)? updates]) =>
|
||||||
(new ReportsUIStateBuilder()..update(updates))._build();
|
(new ReportsUIStateBuilder()..update(updates))._build();
|
||||||
|
|
@ -241,11 +237,10 @@ class ReportsUIStateBuilder
|
||||||
set customEndDate(String? customEndDate) =>
|
set customEndDate(String? customEndDate) =>
|
||||||
_$this._customEndDate = customEndDate;
|
_$this._customEndDate = customEndDate;
|
||||||
|
|
||||||
MapBuilder<String?, String?>? _filters;
|
MapBuilder<String, String>? _filters;
|
||||||
MapBuilder<String?, String?> get filters =>
|
MapBuilder<String, String> get filters =>
|
||||||
_$this._filters ??= new MapBuilder<String?, String?>();
|
_$this._filters ??= new MapBuilder<String, String>();
|
||||||
set filters(MapBuilder<String?, String?>? filters) =>
|
set filters(MapBuilder<String, String>? filters) => _$this._filters = filters;
|
||||||
_$this._filters = filters;
|
|
||||||
|
|
||||||
ReportsUIStateBuilder();
|
ReportsUIStateBuilder();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -230,8 +230,10 @@ class ReportsScreen extends StatelessWidget {
|
||||||
filterColumns.first: ''
|
filterColumns.first: ''
|
||||||
}
|
}
|
||||||
: {
|
: {
|
||||||
value: (reportState.filters[value] ?? '').isNotEmpty
|
value: reportState.filters.containsKey(value) &&
|
||||||
? reportState.filters[value]
|
(reportState.filters[value] ?? '')
|
||||||
|
.isNotEmpty
|
||||||
|
? reportState.filters[value]!
|
||||||
: DateRange.thisQuarter.toString(),
|
: DateRange.thisQuarter.toString(),
|
||||||
if (filterColumns.isNotEmpty &&
|
if (filterColumns.isNotEmpty &&
|
||||||
filterColumns.first != value)
|
filterColumns.first != value)
|
||||||
|
|
@ -552,9 +554,9 @@ class ReportDataTable extends StatefulWidget {
|
||||||
}
|
}
|
||||||
|
|
||||||
class _ReportDataTableState extends State<ReportDataTable> {
|
class _ReportDataTableState extends State<ReportDataTable> {
|
||||||
final Map<String, Map<String?, TextEditingController>>
|
final Map<String, Map<String, TextEditingController>>
|
||||||
_textEditingControllers = {};
|
_textEditingControllers = {};
|
||||||
final Map<String, Map<String?, FocusNode>> _textEditingFocusNodes = {};
|
final Map<String, Map<String, FocusNode>> _textEditingFocusNodes = {};
|
||||||
late ReportDataTableSource dataTableSource;
|
late ReportDataTableSource dataTableSource;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -621,7 +623,7 @@ class _ReportDataTableState extends State<ReportDataTable> {
|
||||||
super.didChangeDependencies();
|
super.didChangeDependencies();
|
||||||
}
|
}
|
||||||
|
|
||||||
void _onChanged(String? column, String value) {
|
void _onChanged(String column, String value) {
|
||||||
widget.viewModel.onReportFiltersChanged(
|
widget.viewModel.onReportFiltersChanged(
|
||||||
context,
|
context,
|
||||||
widget.viewModel.reportState.filters
|
widget.viewModel.reportState.filters
|
||||||
|
|
@ -804,9 +806,9 @@ class ReportDataTableSource extends AppDataTableSource {
|
||||||
|
|
||||||
ReportsScreenVM viewModel;
|
ReportsScreenVM viewModel;
|
||||||
final BuildContext context;
|
final BuildContext context;
|
||||||
final Map<String, Map<String?, TextEditingController>> textEditingControllers;
|
final Map<String, Map<String, TextEditingController>> textEditingControllers;
|
||||||
final Map<String, Map<String?, FocusNode>> textEditingFocusNodes;
|
final Map<String, Map<String, FocusNode>> textEditingFocusNodes;
|
||||||
final Function(String?, String) onFilterChanged;
|
final Function(String, String) onFilterChanged;
|
||||||
|
|
||||||
@override
|
@override
|
||||||
int get selectedRowCount => 0;
|
int get selectedRowCount => 0;
|
||||||
|
|
@ -1023,7 +1025,7 @@ class ReportResult {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
List<String?> sortedColumns(ReportsUIState reportState) {
|
List<String> sortedColumns(ReportsUIState reportState) {
|
||||||
final data = columns.toList();
|
final data = columns.toList();
|
||||||
final group = reportState.group;
|
final group = reportState.group;
|
||||||
|
|
||||||
|
|
@ -1078,16 +1080,16 @@ class ReportResult {
|
||||||
|
|
||||||
DataRow tableFilters(
|
DataRow tableFilters(
|
||||||
BuildContext context,
|
BuildContext context,
|
||||||
Map<String?, TextEditingController>? textEditingControllers,
|
Map<String, TextEditingController>? textEditingControllers,
|
||||||
Map<String?, FocusNode>? textEditingFocusNodes,
|
Map<String, FocusNode>? textEditingFocusNodes,
|
||||||
Function(String?, String) onFilterChanged) {
|
Function(String, String) onFilterChanged) {
|
||||||
final localization = AppLocalization.of(context);
|
final localization = AppLocalization.of(context);
|
||||||
final theme = Theme.of(context);
|
final theme = Theme.of(context);
|
||||||
final store = StoreProvider.of<AppState>(context);
|
final store = StoreProvider.of<AppState>(context);
|
||||||
final reportState = store.state.uiState.reportsUIState;
|
final reportState = store.state.uiState.reportsUIState;
|
||||||
|
|
||||||
return DataRow(cells: [
|
return DataRow(cells: [
|
||||||
for (String? column in sortedColumns(reportState))
|
for (String column in sortedColumns(reportState))
|
||||||
if (textEditingControllers == null ||
|
if (textEditingControllers == null ||
|
||||||
!textEditingControllers.containsKey(column))
|
!textEditingControllers.containsKey(column))
|
||||||
DataCell(Text(''))
|
DataCell(Text(''))
|
||||||
|
|
@ -1214,7 +1216,7 @@ class ReportResult {
|
||||||
focusNode: textEditingFocusNodes![column],
|
focusNode: textEditingFocusNodes![column],
|
||||||
optionsBuilder: (TextEditingValue textEditingValue) {
|
optionsBuilder: (TextEditingValue textEditingValue) {
|
||||||
final filter = textEditingValue.text.toLowerCase();
|
final filter = textEditingValue.text.toLowerCase();
|
||||||
final index = columns.indexOf(column!);
|
final index = columns.indexOf(column);
|
||||||
final options = data
|
final options = data
|
||||||
.where((row) =>
|
.where((row) =>
|
||||||
row[index]
|
row[index]
|
||||||
|
|
@ -1329,7 +1331,7 @@ class ReportResult {
|
||||||
final row = data[index - 1];
|
final row = data[index - 1];
|
||||||
final cells = <DataCell>[];
|
final cells = <DataCell>[];
|
||||||
for (var j = 0; j < row.length; j++) {
|
for (var j = 0; j < row.length; j++) {
|
||||||
final index = columns.indexOf(sorted[j]!);
|
final index = columns.indexOf(sorted[j]);
|
||||||
final cell = row[index];
|
final cell = row[index];
|
||||||
final column = sorted[j];
|
final column = sorted[j];
|
||||||
cells.add(
|
cells.add(
|
||||||
|
|
@ -1372,7 +1374,7 @@ class ReportResult {
|
||||||
} else if (columnType == ReportColumnType.number) {
|
} else if (columnType == ReportColumnType.number) {
|
||||||
final currencyId = values!['${column}_currency_id'];
|
final currencyId = values!['${column}_currency_id'];
|
||||||
value = formatNumber(values[column], context,
|
value = formatNumber(values[column], context,
|
||||||
formatNumberType: column!.toLowerCase().contains('quantity')
|
formatNumberType: column.toLowerCase().contains('quantity')
|
||||||
? FormatNumberType.double
|
? FormatNumberType.double
|
||||||
: FormatNumberType.money,
|
: FormatNumberType.money,
|
||||||
currencyId:
|
currencyId:
|
||||||
|
|
@ -1386,8 +1388,8 @@ class ReportResult {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (column == groupBy) {
|
if (column == groupBy) {
|
||||||
String? filter = group;
|
String filter = group;
|
||||||
String? customStartDate = '';
|
String customStartDate = '';
|
||||||
String customEndDate = '';
|
String customEndDate = '';
|
||||||
if (getReportColumnType(column, context) ==
|
if (getReportColumnType(column, context) ==
|
||||||
ReportColumnType.dateTime ||
|
ReportColumnType.dateTime ||
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue