Transaction rules
This commit is contained in:
parent
f38b2583e1
commit
6e11c069cd
|
|
@ -220,9 +220,9 @@ abstract class TransactionRuleCriteriaEntity
|
||||||
@BuiltValueField(wireName: 'search_key')
|
@BuiltValueField(wireName: 'search_key')
|
||||||
String get searchKey;
|
String get searchKey;
|
||||||
|
|
||||||
@nullable
|
|
||||||
String get operator;
|
String get operator;
|
||||||
|
|
||||||
|
@nullable
|
||||||
String get value;
|
String get value;
|
||||||
|
|
||||||
// ignore: unused_element
|
// ignore: unused_element
|
||||||
|
|
|
||||||
|
|
@ -293,15 +293,15 @@ class _$TransactionRuleCriteriaEntitySerializer
|
||||||
'search_key',
|
'search_key',
|
||||||
serializers.serialize(object.searchKey,
|
serializers.serialize(object.searchKey,
|
||||||
specifiedType: const FullType(String)),
|
specifiedType: const FullType(String)),
|
||||||
'value',
|
'operator',
|
||||||
serializers.serialize(object.value,
|
serializers.serialize(object.operator,
|
||||||
specifiedType: const FullType(String)),
|
specifiedType: const FullType(String)),
|
||||||
];
|
];
|
||||||
Object value;
|
Object value;
|
||||||
value = object.operator;
|
value = object.value;
|
||||||
if (value != null) {
|
if (value != null) {
|
||||||
result
|
result
|
||||||
..add('operator')
|
..add('value')
|
||||||
..add(serializers.serialize(value,
|
..add(serializers.serialize(value,
|
||||||
specifiedType: const FullType(String)));
|
specifiedType: const FullType(String)));
|
||||||
}
|
}
|
||||||
|
|
@ -861,7 +861,7 @@ class _$TransactionRuleCriteriaEntity extends TransactionRuleCriteriaEntity {
|
||||||
BuiltValueNullFieldError.checkNotNull(
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
searchKey, 'TransactionRuleCriteriaEntity', 'searchKey');
|
searchKey, 'TransactionRuleCriteriaEntity', 'searchKey');
|
||||||
BuiltValueNullFieldError.checkNotNull(
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
value, 'TransactionRuleCriteriaEntity', 'value');
|
operator, 'TransactionRuleCriteriaEntity', 'operator');
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|
@ -947,9 +947,9 @@ class TransactionRuleCriteriaEntityBuilder
|
||||||
new _$TransactionRuleCriteriaEntity._(
|
new _$TransactionRuleCriteriaEntity._(
|
||||||
searchKey: BuiltValueNullFieldError.checkNotNull(
|
searchKey: BuiltValueNullFieldError.checkNotNull(
|
||||||
searchKey, 'TransactionRuleCriteriaEntity', 'searchKey'),
|
searchKey, 'TransactionRuleCriteriaEntity', 'searchKey'),
|
||||||
operator: operator,
|
operator: BuiltValueNullFieldError.checkNotNull(
|
||||||
value: BuiltValueNullFieldError.checkNotNull(
|
operator, 'TransactionRuleCriteriaEntity', 'operator'),
|
||||||
value, 'TransactionRuleCriteriaEntity', 'value'));
|
value: value);
|
||||||
replace(_$result);
|
replace(_$result);
|
||||||
return _$result;
|
return _$result;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -182,7 +182,7 @@ class _TransactionRuleEditState extends State<TransactionRuleEdit> {
|
||||||
child: Text(localization.lookup(rule.operator)),
|
child: Text(localization.lookup(rule.operator)),
|
||||||
),
|
),
|
||||||
Expanded(
|
Expanded(
|
||||||
child: Text(rule.value),
|
child: Text(rule.value ?? ''),
|
||||||
),
|
),
|
||||||
SizedBox(
|
SizedBox(
|
||||||
width: 100,
|
width: 100,
|
||||||
|
|
@ -322,7 +322,9 @@ class __RuleCriteriaState extends State<_RuleCriteria> {
|
||||||
void onDonePressed() {
|
void onDonePressed() {
|
||||||
if (_criteria.searchKey.isEmpty ||
|
if (_criteria.searchKey.isEmpty ||
|
||||||
_criteria.operator.isEmpty ||
|
_criteria.operator.isEmpty ||
|
||||||
_criteria.value.isEmpty) {
|
(_criteria.value.isEmpty &&
|
||||||
|
_criteria.operator !=
|
||||||
|
TransactionRuleCriteriaEntity.STRING_OPERATOR_IS_EMPTY)) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -422,6 +424,8 @@ class __RuleCriteriaState extends State<_RuleCriteria> {
|
||||||
),
|
),
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
|
if (_criteria.operator !=
|
||||||
|
TransactionRuleCriteriaEntity.STRING_OPERATOR_IS_EMPTY)
|
||||||
DecoratedFormField(
|
DecoratedFormField(
|
||||||
label: localization.value,
|
label: localization.value,
|
||||||
initialValue: _criteria.value,
|
initialValue: _criteria.value,
|
||||||
|
|
|
||||||
|
|
@ -26,6 +26,7 @@ class _TransactionRuleViewState extends State<TransactionRuleView> {
|
||||||
return ViewScaffold(
|
return ViewScaffold(
|
||||||
isFilter: widget.isFilter,
|
isFilter: widget.isFilter,
|
||||||
entity: transactionRule,
|
entity: transactionRule,
|
||||||
|
onBackPressed: () => viewModel.onBackPressed(),
|
||||||
body: ScrollableListView(
|
body: ScrollableListView(
|
||||||
children: <Widget>[],
|
children: <Widget>[],
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,8 @@ import 'dart:async';
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||||
|
import 'package:invoiceninja_flutter/ui/transaction_rule/transaction_rule_screen.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
|
|
@ -47,6 +49,7 @@ class TransactionRuleViewVM {
|
||||||
@required this.isSaving,
|
@required this.isSaving,
|
||||||
@required this.isLoading,
|
@required this.isLoading,
|
||||||
@required this.isDirty,
|
@required this.isDirty,
|
||||||
|
@required this.onBackPressed,
|
||||||
});
|
});
|
||||||
|
|
||||||
factory TransactionRuleViewVM.fromStore(Store<AppState> store) {
|
factory TransactionRuleViewVM.fromStore(Store<AppState> store) {
|
||||||
|
|
@ -71,6 +74,9 @@ class TransactionRuleViewVM {
|
||||||
isDirty: transactionRule.isNew,
|
isDirty: transactionRule.isNew,
|
||||||
transactionRule: transactionRule,
|
transactionRule: transactionRule,
|
||||||
onRefreshed: (context) => _handleRefresh(context),
|
onRefreshed: (context) => _handleRefresh(context),
|
||||||
|
onBackPressed: () {
|
||||||
|
store.dispatch(UpdateCurrentRoute(TransactionRuleScreen.route));
|
||||||
|
},
|
||||||
onEntityAction: (BuildContext context, EntityAction action) =>
|
onEntityAction: (BuildContext context, EntityAction action) =>
|
||||||
handleEntitiesActions([transactionRule], action, autoPop: true),
|
handleEntitiesActions([transactionRule], action, autoPop: true),
|
||||||
);
|
);
|
||||||
|
|
@ -80,6 +86,7 @@ class TransactionRuleViewVM {
|
||||||
final TransactionRuleEntity transactionRule;
|
final TransactionRuleEntity transactionRule;
|
||||||
final CompanyEntity company;
|
final CompanyEntity company;
|
||||||
final Function(BuildContext, EntityAction) onEntityAction;
|
final Function(BuildContext, EntityAction) onEntityAction;
|
||||||
|
final Function onBackPressed;
|
||||||
final Function(BuildContext) onRefreshed;
|
final Function(BuildContext) onRefreshed;
|
||||||
final bool isSaving;
|
final bool isSaving;
|
||||||
final bool isLoading;
|
final bool isLoading;
|
||||||
|
|
|
||||||
|
|
@ -27,6 +27,7 @@ class _StubViewState extends State<StubView> {
|
||||||
return ViewScaffold(
|
return ViewScaffold(
|
||||||
isFilter: widget.isFilter,
|
isFilter: widget.isFilter,
|
||||||
entity: stub,
|
entity: stub,
|
||||||
|
onBackPressed: () => viewModel.onBackPressed(),
|
||||||
body: ScrollableListView(
|
body: ScrollableListView(
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
],
|
],
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,8 @@ import 'package:flutter/material.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/completers.dart';
|
import 'package:invoiceninja_flutter/utils/completers.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/localization.dart';
|
import 'package:invoiceninja_flutter/utils/localization.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
|
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||||
|
import 'package:invoiceninja_flutter/ui/stub/stub_screen.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/stub/stub_actions.dart';
|
import 'package:invoiceninja_flutter/redux/stub/stub_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
|
|
@ -42,6 +44,7 @@ class StubViewVM {
|
||||||
@required this.isSaving,
|
@required this.isSaving,
|
||||||
@required this.isLoading,
|
@required this.isLoading,
|
||||||
@required this.isDirty,
|
@required this.isDirty,
|
||||||
|
@required this.onBackPressed,
|
||||||
});
|
});
|
||||||
|
|
||||||
factory StubViewVM.fromStore(Store<AppState> store) {
|
factory StubViewVM.fromStore(Store<AppState> store) {
|
||||||
|
|
@ -64,6 +67,9 @@ class StubViewVM {
|
||||||
isDirty: stub.isNew,
|
isDirty: stub.isNew,
|
||||||
stub: stub,
|
stub: stub,
|
||||||
onRefreshed: (context) => _handleRefresh(context),
|
onRefreshed: (context) => _handleRefresh(context),
|
||||||
|
onBackPressed: () {
|
||||||
|
store.dispatch(UpdateCurrentRoute(StubScreen.route));
|
||||||
|
},
|
||||||
onEntityAction: (BuildContext context, EntityAction action) =>
|
onEntityAction: (BuildContext context, EntityAction action) =>
|
||||||
handleEntitiesActions([stub], action, autoPop: true),
|
handleEntitiesActions([stub], action, autoPop: true),
|
||||||
);
|
);
|
||||||
|
|
@ -74,6 +80,7 @@ class StubViewVM {
|
||||||
final CompanyEntity company;
|
final CompanyEntity company;
|
||||||
final Function(BuildContext, EntityAction) onEntityAction;
|
final Function(BuildContext, EntityAction) onEntityAction;
|
||||||
final Function(BuildContext) onRefreshed;
|
final Function(BuildContext) onRefreshed;
|
||||||
|
final Function onBackPressed;
|
||||||
final bool isSaving;
|
final bool isSaving;
|
||||||
final bool isLoading;
|
final bool isLoading;
|
||||||
final bool isDirty;
|
final bool isDirty;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue