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