Transactions
This commit is contained in:
parent
b167b99437
commit
c4e69b3577
|
|
@ -60,6 +60,7 @@ class TransactionFields {
|
||||||
static const String expenseId = 'expense_id';
|
static const String expenseId = 'expense_id';
|
||||||
static const String expense = 'expense';
|
static const String expense = 'expense';
|
||||||
static const String status = 'status';
|
static const String status = 'status';
|
||||||
|
static const String accountType = 'account_type';
|
||||||
}
|
}
|
||||||
|
|
||||||
abstract class TransactionEntity extends Object
|
abstract class TransactionEntity extends Object
|
||||||
|
|
@ -86,6 +87,8 @@ abstract class TransactionEntity extends Object
|
||||||
statusId: '',
|
statusId: '',
|
||||||
baseType: TYPE_DEPOSIT,
|
baseType: TYPE_DEPOSIT,
|
||||||
transactionId: 0,
|
transactionId: 0,
|
||||||
|
accountType: '',
|
||||||
|
categoryId: '',
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -109,6 +112,9 @@ abstract class TransactionEntity extends Object
|
||||||
@BuiltValueField(wireName: 'base_type')
|
@BuiltValueField(wireName: 'base_type')
|
||||||
String get baseType;
|
String get baseType;
|
||||||
|
|
||||||
|
@BuiltValueField(wireName: 'account_type')
|
||||||
|
String get accountType;
|
||||||
|
|
||||||
String get date;
|
String get date;
|
||||||
|
|
||||||
@BuiltValueField(wireName: 'bank_integration_id')
|
@BuiltValueField(wireName: 'bank_integration_id')
|
||||||
|
|
@ -119,8 +125,8 @@ abstract class TransactionEntity extends Object
|
||||||
@BuiltValueField(wireName: 'status_id')
|
@BuiltValueField(wireName: 'status_id')
|
||||||
String get statusId;
|
String get statusId;
|
||||||
|
|
||||||
//@BuiltValueField(wireName: 'ninja_category_id')
|
@BuiltValueField(wireName: 'ninja_category_id')
|
||||||
//String get categoryId;
|
String get categoryId;
|
||||||
|
|
||||||
@BuiltValueField(wireName: 'invoice_ids')
|
@BuiltValueField(wireName: 'invoice_ids')
|
||||||
String get invoiceIds;
|
String get invoiceIds;
|
||||||
|
|
@ -131,9 +137,6 @@ abstract class TransactionEntity extends Object
|
||||||
@BuiltValueField(wireName: 'transaction_id')
|
@BuiltValueField(wireName: 'transaction_id')
|
||||||
int get transactionId;
|
int get transactionId;
|
||||||
|
|
||||||
//@BuiltValueField(wireName: 'is_matched')
|
|
||||||
//bool get isMached;
|
|
||||||
|
|
||||||
@override
|
@override
|
||||||
EntityType get entityType => EntityType.transaction;
|
EntityType get entityType => EntityType.transaction;
|
||||||
|
|
||||||
|
|
@ -173,6 +176,7 @@ abstract class TransactionEntity extends Object
|
||||||
bool sortAscending,
|
bool sortAscending,
|
||||||
BuiltMap<String, InvoiceEntity> invoiceMap,
|
BuiltMap<String, InvoiceEntity> invoiceMap,
|
||||||
BuiltMap<String, ExpenseEntity> expenseMap,
|
BuiltMap<String, ExpenseEntity> expenseMap,
|
||||||
|
BuiltMap<String, ExpenseCategoryEntity> expenseCategoryMap,
|
||||||
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
||||||
) {
|
) {
|
||||||
int response = 0;
|
int response = 0;
|
||||||
|
|
@ -193,14 +197,12 @@ abstract class TransactionEntity extends Object
|
||||||
case TransactionFields.status:
|
case TransactionFields.status:
|
||||||
response = transactionA.statusId.compareTo(transactionB.statusId);
|
response = transactionA.statusId.compareTo(transactionB.statusId);
|
||||||
break;
|
break;
|
||||||
case TransactionFields.category:
|
|
||||||
response = transactionA.category
|
|
||||||
.toLowerCase()
|
|
||||||
.compareTo(transactionB.category.toLowerCase());
|
|
||||||
break;
|
|
||||||
case TransactionFields.date:
|
case TransactionFields.date:
|
||||||
response = transactionA.date.compareTo(transactionB.date);
|
response = transactionA.date.compareTo(transactionB.date);
|
||||||
break;
|
break;
|
||||||
|
case TransactionFields.accountType:
|
||||||
|
response = transactionA.accountType.compareTo(transactionB.accountType);
|
||||||
|
break;
|
||||||
case TransactionFields.invoices:
|
case TransactionFields.invoices:
|
||||||
final invoiceA =
|
final invoiceA =
|
||||||
invoiceMap[transactionA.firstInvoiceId] ?? InvoiceEntity();
|
invoiceMap[transactionA.firstInvoiceId] ?? InvoiceEntity();
|
||||||
|
|
@ -217,6 +219,15 @@ abstract class TransactionEntity extends Object
|
||||||
.toLowerCase()
|
.toLowerCase()
|
||||||
.compareTo(expenseB.listDisplayName.toLowerCase());
|
.compareTo(expenseB.listDisplayName.toLowerCase());
|
||||||
break;
|
break;
|
||||||
|
case TransactionFields.category:
|
||||||
|
final categoryA = expenseCategoryMap[transactionA.categoryId] ??
|
||||||
|
ExpenseCategoryEntity();
|
||||||
|
final categoryB = expenseCategoryMap[transactionB.categoryId] ??
|
||||||
|
ExpenseCategoryEntity();
|
||||||
|
response = categoryA.listDisplayName
|
||||||
|
.toLowerCase()
|
||||||
|
.compareTo(categoryB.listDisplayName.toLowerCase());
|
||||||
|
break;
|
||||||
case TransactionFields.bankAccount:
|
case TransactionFields.bankAccount:
|
||||||
final bankAccountA =
|
final bankAccountA =
|
||||||
bankAccountMap[transactionA.bankAccountId] ?? BankAccountEntity();
|
bankAccountMap[transactionA.bankAccountId] ?? BankAccountEntity();
|
||||||
|
|
|
||||||
|
|
@ -134,6 +134,9 @@ class _$TransactionEntitySerializer
|
||||||
'base_type',
|
'base_type',
|
||||||
serializers.serialize(object.baseType,
|
serializers.serialize(object.baseType,
|
||||||
specifiedType: const FullType(String)),
|
specifiedType: const FullType(String)),
|
||||||
|
'account_type',
|
||||||
|
serializers.serialize(object.accountType,
|
||||||
|
specifiedType: const FullType(String)),
|
||||||
'date',
|
'date',
|
||||||
serializers.serialize(object.date, specifiedType: const FullType(String)),
|
serializers.serialize(object.date, specifiedType: const FullType(String)),
|
||||||
'bank_integration_id',
|
'bank_integration_id',
|
||||||
|
|
@ -145,6 +148,9 @@ class _$TransactionEntitySerializer
|
||||||
'status_id',
|
'status_id',
|
||||||
serializers.serialize(object.statusId,
|
serializers.serialize(object.statusId,
|
||||||
specifiedType: const FullType(String)),
|
specifiedType: const FullType(String)),
|
||||||
|
'ninja_category_id',
|
||||||
|
serializers.serialize(object.categoryId,
|
||||||
|
specifiedType: const FullType(String)),
|
||||||
'invoice_ids',
|
'invoice_ids',
|
||||||
serializers.serialize(object.invoiceIds,
|
serializers.serialize(object.invoiceIds,
|
||||||
specifiedType: const FullType(String)),
|
specifiedType: const FullType(String)),
|
||||||
|
|
@ -226,6 +232,10 @@ class _$TransactionEntitySerializer
|
||||||
result.baseType = serializers.deserialize(value,
|
result.baseType = serializers.deserialize(value,
|
||||||
specifiedType: const FullType(String)) as String;
|
specifiedType: const FullType(String)) as String;
|
||||||
break;
|
break;
|
||||||
|
case 'account_type':
|
||||||
|
result.accountType = serializers.deserialize(value,
|
||||||
|
specifiedType: const FullType(String)) as String;
|
||||||
|
break;
|
||||||
case 'date':
|
case 'date':
|
||||||
result.date = serializers.deserialize(value,
|
result.date = serializers.deserialize(value,
|
||||||
specifiedType: const FullType(String)) as String;
|
specifiedType: const FullType(String)) as String;
|
||||||
|
|
@ -242,6 +252,10 @@ class _$TransactionEntitySerializer
|
||||||
result.statusId = serializers.deserialize(value,
|
result.statusId = serializers.deserialize(value,
|
||||||
specifiedType: const FullType(String)) as String;
|
specifiedType: const FullType(String)) as String;
|
||||||
break;
|
break;
|
||||||
|
case 'ninja_category_id':
|
||||||
|
result.categoryId = serializers.deserialize(value,
|
||||||
|
specifiedType: const FullType(String)) as String;
|
||||||
|
break;
|
||||||
case 'invoice_ids':
|
case 'invoice_ids':
|
||||||
result.invoiceIds = serializers.deserialize(value,
|
result.invoiceIds = serializers.deserialize(value,
|
||||||
specifiedType: const FullType(String)) as String;
|
specifiedType: const FullType(String)) as String;
|
||||||
|
|
@ -544,6 +558,8 @@ class _$TransactionEntity extends TransactionEntity {
|
||||||
@override
|
@override
|
||||||
final String baseType;
|
final String baseType;
|
||||||
@override
|
@override
|
||||||
|
final String accountType;
|
||||||
|
@override
|
||||||
final String date;
|
final String date;
|
||||||
@override
|
@override
|
||||||
final String bankAccountId;
|
final String bankAccountId;
|
||||||
|
|
@ -552,6 +568,8 @@ class _$TransactionEntity extends TransactionEntity {
|
||||||
@override
|
@override
|
||||||
final String statusId;
|
final String statusId;
|
||||||
@override
|
@override
|
||||||
|
final String categoryId;
|
||||||
|
@override
|
||||||
final String invoiceIds;
|
final String invoiceIds;
|
||||||
@override
|
@override
|
||||||
final String expenseId;
|
final String expenseId;
|
||||||
|
|
@ -583,10 +601,12 @@ class _$TransactionEntity extends TransactionEntity {
|
||||||
this.currencyId,
|
this.currencyId,
|
||||||
this.category,
|
this.category,
|
||||||
this.baseType,
|
this.baseType,
|
||||||
|
this.accountType,
|
||||||
this.date,
|
this.date,
|
||||||
this.bankAccountId,
|
this.bankAccountId,
|
||||||
this.description,
|
this.description,
|
||||||
this.statusId,
|
this.statusId,
|
||||||
|
this.categoryId,
|
||||||
this.invoiceIds,
|
this.invoiceIds,
|
||||||
this.expenseId,
|
this.expenseId,
|
||||||
this.transactionId,
|
this.transactionId,
|
||||||
|
|
@ -607,6 +627,8 @@ class _$TransactionEntity extends TransactionEntity {
|
||||||
category, 'TransactionEntity', 'category');
|
category, 'TransactionEntity', 'category');
|
||||||
BuiltValueNullFieldError.checkNotNull(
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
baseType, 'TransactionEntity', 'baseType');
|
baseType, 'TransactionEntity', 'baseType');
|
||||||
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
|
accountType, 'TransactionEntity', 'accountType');
|
||||||
BuiltValueNullFieldError.checkNotNull(date, 'TransactionEntity', 'date');
|
BuiltValueNullFieldError.checkNotNull(date, 'TransactionEntity', 'date');
|
||||||
BuiltValueNullFieldError.checkNotNull(
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
bankAccountId, 'TransactionEntity', 'bankAccountId');
|
bankAccountId, 'TransactionEntity', 'bankAccountId');
|
||||||
|
|
@ -614,6 +636,8 @@ class _$TransactionEntity extends TransactionEntity {
|
||||||
description, 'TransactionEntity', 'description');
|
description, 'TransactionEntity', 'description');
|
||||||
BuiltValueNullFieldError.checkNotNull(
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
statusId, 'TransactionEntity', 'statusId');
|
statusId, 'TransactionEntity', 'statusId');
|
||||||
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
|
categoryId, 'TransactionEntity', 'categoryId');
|
||||||
BuiltValueNullFieldError.checkNotNull(
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
invoiceIds, 'TransactionEntity', 'invoiceIds');
|
invoiceIds, 'TransactionEntity', 'invoiceIds');
|
||||||
BuiltValueNullFieldError.checkNotNull(
|
BuiltValueNullFieldError.checkNotNull(
|
||||||
|
|
@ -645,10 +669,12 @@ class _$TransactionEntity extends TransactionEntity {
|
||||||
currencyId == other.currencyId &&
|
currencyId == other.currencyId &&
|
||||||
category == other.category &&
|
category == other.category &&
|
||||||
baseType == other.baseType &&
|
baseType == other.baseType &&
|
||||||
|
accountType == other.accountType &&
|
||||||
date == other.date &&
|
date == other.date &&
|
||||||
bankAccountId == other.bankAccountId &&
|
bankAccountId == other.bankAccountId &&
|
||||||
description == other.description &&
|
description == other.description &&
|
||||||
statusId == other.statusId &&
|
statusId == other.statusId &&
|
||||||
|
categoryId == other.categoryId &&
|
||||||
invoiceIds == other.invoiceIds &&
|
invoiceIds == other.invoiceIds &&
|
||||||
expenseId == other.expenseId &&
|
expenseId == other.expenseId &&
|
||||||
transactionId == other.transactionId &&
|
transactionId == other.transactionId &&
|
||||||
|
|
@ -683,21 +709,15 @@ class _$TransactionEntity extends TransactionEntity {
|
||||||
$jc(
|
$jc(
|
||||||
$jc(
|
$jc(
|
||||||
$jc(
|
$jc(
|
||||||
$jc(
|
$jc($jc($jc(0, amount.hashCode), currencyId.hashCode),
|
||||||
0,
|
category.hashCode),
|
||||||
amount
|
baseType.hashCode),
|
||||||
.hashCode),
|
accountType.hashCode),
|
||||||
currencyId
|
date.hashCode),
|
||||||
.hashCode),
|
bankAccountId.hashCode),
|
||||||
category
|
description.hashCode),
|
||||||
.hashCode),
|
statusId.hashCode),
|
||||||
baseType
|
categoryId.hashCode),
|
||||||
.hashCode),
|
|
||||||
date.hashCode),
|
|
||||||
bankAccountId
|
|
||||||
.hashCode),
|
|
||||||
description.hashCode),
|
|
||||||
statusId.hashCode),
|
|
||||||
invoiceIds.hashCode),
|
invoiceIds.hashCode),
|
||||||
expenseId.hashCode),
|
expenseId.hashCode),
|
||||||
transactionId.hashCode),
|
transactionId.hashCode),
|
||||||
|
|
@ -718,10 +738,12 @@ class _$TransactionEntity extends TransactionEntity {
|
||||||
..add('currencyId', currencyId)
|
..add('currencyId', currencyId)
|
||||||
..add('category', category)
|
..add('category', category)
|
||||||
..add('baseType', baseType)
|
..add('baseType', baseType)
|
||||||
|
..add('accountType', accountType)
|
||||||
..add('date', date)
|
..add('date', date)
|
||||||
..add('bankAccountId', bankAccountId)
|
..add('bankAccountId', bankAccountId)
|
||||||
..add('description', description)
|
..add('description', description)
|
||||||
..add('statusId', statusId)
|
..add('statusId', statusId)
|
||||||
|
..add('categoryId', categoryId)
|
||||||
..add('invoiceIds', invoiceIds)
|
..add('invoiceIds', invoiceIds)
|
||||||
..add('expenseId', expenseId)
|
..add('expenseId', expenseId)
|
||||||
..add('transactionId', transactionId)
|
..add('transactionId', transactionId)
|
||||||
|
|
@ -757,6 +779,10 @@ class TransactionEntityBuilder
|
||||||
String get baseType => _$this._baseType;
|
String get baseType => _$this._baseType;
|
||||||
set baseType(String baseType) => _$this._baseType = baseType;
|
set baseType(String baseType) => _$this._baseType = baseType;
|
||||||
|
|
||||||
|
String _accountType;
|
||||||
|
String get accountType => _$this._accountType;
|
||||||
|
set accountType(String accountType) => _$this._accountType = accountType;
|
||||||
|
|
||||||
String _date;
|
String _date;
|
||||||
String get date => _$this._date;
|
String get date => _$this._date;
|
||||||
set date(String date) => _$this._date = date;
|
set date(String date) => _$this._date = date;
|
||||||
|
|
@ -774,6 +800,10 @@ class TransactionEntityBuilder
|
||||||
String get statusId => _$this._statusId;
|
String get statusId => _$this._statusId;
|
||||||
set statusId(String statusId) => _$this._statusId = statusId;
|
set statusId(String statusId) => _$this._statusId = statusId;
|
||||||
|
|
||||||
|
String _categoryId;
|
||||||
|
String get categoryId => _$this._categoryId;
|
||||||
|
set categoryId(String categoryId) => _$this._categoryId = categoryId;
|
||||||
|
|
||||||
String _invoiceIds;
|
String _invoiceIds;
|
||||||
String get invoiceIds => _$this._invoiceIds;
|
String get invoiceIds => _$this._invoiceIds;
|
||||||
set invoiceIds(String invoiceIds) => _$this._invoiceIds = invoiceIds;
|
set invoiceIds(String invoiceIds) => _$this._invoiceIds = invoiceIds;
|
||||||
|
|
@ -831,10 +861,12 @@ class TransactionEntityBuilder
|
||||||
_currencyId = $v.currencyId;
|
_currencyId = $v.currencyId;
|
||||||
_category = $v.category;
|
_category = $v.category;
|
||||||
_baseType = $v.baseType;
|
_baseType = $v.baseType;
|
||||||
|
_accountType = $v.accountType;
|
||||||
_date = $v.date;
|
_date = $v.date;
|
||||||
_bankAccountId = $v.bankAccountId;
|
_bankAccountId = $v.bankAccountId;
|
||||||
_description = $v.description;
|
_description = $v.description;
|
||||||
_statusId = $v.statusId;
|
_statusId = $v.statusId;
|
||||||
|
_categoryId = $v.categoryId;
|
||||||
_invoiceIds = $v.invoiceIds;
|
_invoiceIds = $v.invoiceIds;
|
||||||
_expenseId = $v.expenseId;
|
_expenseId = $v.expenseId;
|
||||||
_transactionId = $v.transactionId;
|
_transactionId = $v.transactionId;
|
||||||
|
|
@ -874,16 +906,18 @@ class TransactionEntityBuilder
|
||||||
category, 'TransactionEntity', 'category'),
|
category, 'TransactionEntity', 'category'),
|
||||||
baseType: BuiltValueNullFieldError.checkNotNull(
|
baseType: BuiltValueNullFieldError.checkNotNull(
|
||||||
baseType, 'TransactionEntity', 'baseType'),
|
baseType, 'TransactionEntity', 'baseType'),
|
||||||
|
accountType: BuiltValueNullFieldError.checkNotNull(
|
||||||
|
accountType, 'TransactionEntity', 'accountType'),
|
||||||
date: BuiltValueNullFieldError.checkNotNull(
|
date: BuiltValueNullFieldError.checkNotNull(
|
||||||
date, 'TransactionEntity', 'date'),
|
date, 'TransactionEntity', 'date'),
|
||||||
bankAccountId: BuiltValueNullFieldError.checkNotNull(
|
bankAccountId: BuiltValueNullFieldError.checkNotNull(
|
||||||
bankAccountId, 'TransactionEntity', 'bankAccountId'),
|
bankAccountId, 'TransactionEntity', 'bankAccountId'),
|
||||||
description: BuiltValueNullFieldError.checkNotNull(
|
description: BuiltValueNullFieldError.checkNotNull(
|
||||||
description, 'TransactionEntity', 'description'),
|
description, 'TransactionEntity', 'description'),
|
||||||
statusId: BuiltValueNullFieldError.checkNotNull(
|
statusId:
|
||||||
statusId, 'TransactionEntity', 'statusId'),
|
BuiltValueNullFieldError.checkNotNull(statusId, 'TransactionEntity', 'statusId'),
|
||||||
invoiceIds: BuiltValueNullFieldError.checkNotNull(
|
categoryId: BuiltValueNullFieldError.checkNotNull(categoryId, 'TransactionEntity', 'categoryId'),
|
||||||
invoiceIds, 'TransactionEntity', 'invoiceIds'),
|
invoiceIds: BuiltValueNullFieldError.checkNotNull(invoiceIds, 'TransactionEntity', 'invoiceIds'),
|
||||||
expenseId: BuiltValueNullFieldError.checkNotNull(expenseId, 'TransactionEntity', 'expenseId'),
|
expenseId: BuiltValueNullFieldError.checkNotNull(expenseId, 'TransactionEntity', 'expenseId'),
|
||||||
transactionId: BuiltValueNullFieldError.checkNotNull(transactionId, 'TransactionEntity', 'transactionId'),
|
transactionId: BuiltValueNullFieldError.checkNotNull(transactionId, 'TransactionEntity', 'transactionId'),
|
||||||
isChanged: isChanged,
|
isChanged: isChanged,
|
||||||
|
|
|
||||||
|
|
@ -5,13 +5,14 @@ import 'package:built_collection/built_collection.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
|
import 'package:invoiceninja_flutter/redux/ui/list_ui_state.dart';
|
||||||
|
|
||||||
var memoizedDropdownTransactionList = memo8(
|
var memoizedDropdownTransactionList = memo9(
|
||||||
(BuiltMap<String, TransactionEntity> transactionMap,
|
(BuiltMap<String, TransactionEntity> transactionMap,
|
||||||
BuiltList<String> transactionList,
|
BuiltList<String> transactionList,
|
||||||
StaticState staticState,
|
StaticState staticState,
|
||||||
BuiltMap<String, UserEntity> userMap,
|
BuiltMap<String, UserEntity> userMap,
|
||||||
BuiltMap<String, InvoiceEntity> invoiceMap,
|
BuiltMap<String, InvoiceEntity> invoiceMap,
|
||||||
BuiltMap<String, ExpenseEntity> expenseMap,
|
BuiltMap<String, ExpenseEntity> expenseMap,
|
||||||
|
BuiltMap<String, ExpenseCategoryEntity> expenseCategoryMap,
|
||||||
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
||||||
String clientId) =>
|
String clientId) =>
|
||||||
dropdownTransactionsSelector(
|
dropdownTransactionsSelector(
|
||||||
|
|
@ -21,6 +22,7 @@ var memoizedDropdownTransactionList = memo8(
|
||||||
userMap,
|
userMap,
|
||||||
invoiceMap,
|
invoiceMap,
|
||||||
expenseMap,
|
expenseMap,
|
||||||
|
expenseCategoryMap,
|
||||||
bankAccountMap,
|
bankAccountMap,
|
||||||
clientId));
|
clientId));
|
||||||
|
|
||||||
|
|
@ -31,6 +33,7 @@ List<String> dropdownTransactionsSelector(
|
||||||
BuiltMap<String, UserEntity> userMap,
|
BuiltMap<String, UserEntity> userMap,
|
||||||
BuiltMap<String, InvoiceEntity> invoiceMap,
|
BuiltMap<String, InvoiceEntity> invoiceMap,
|
||||||
BuiltMap<String, ExpenseEntity> expenseMap,
|
BuiltMap<String, ExpenseEntity> expenseMap,
|
||||||
|
BuiltMap<String, ExpenseCategoryEntity> expenseCategoryMap,
|
||||||
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
||||||
String clientId) {
|
String clientId) {
|
||||||
final list = transactionList.where((transactionId) {
|
final list = transactionList.where((transactionId) {
|
||||||
|
|
@ -47,17 +50,18 @@ List<String> dropdownTransactionsSelector(
|
||||||
final transactionA = transactionMap[transactionAId];
|
final transactionA = transactionMap[transactionAId];
|
||||||
final transactionB = transactionMap[transactionBId];
|
final transactionB = transactionMap[transactionBId];
|
||||||
return transactionA.compareTo(transactionB, TransactionFields.date, true,
|
return transactionA.compareTo(transactionB, TransactionFields.date, true,
|
||||||
invoiceMap, expenseMap, bankAccountMap);
|
invoiceMap, expenseMap, expenseCategoryMap, bankAccountMap);
|
||||||
});
|
});
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
var memoizedFilteredTransactionList = memo7((SelectionState selectionState,
|
var memoizedFilteredTransactionList = memo8((SelectionState selectionState,
|
||||||
BuiltMap<String, TransactionEntity> transactionMap,
|
BuiltMap<String, TransactionEntity> transactionMap,
|
||||||
BuiltList<String> transactionList,
|
BuiltList<String> transactionList,
|
||||||
BuiltMap<String, InvoiceEntity> invoiceMap,
|
BuiltMap<String, InvoiceEntity> invoiceMap,
|
||||||
BuiltMap<String, ExpenseEntity> expenseMap,
|
BuiltMap<String, ExpenseEntity> expenseMap,
|
||||||
|
BuiltMap<String, ExpenseCategoryEntity> expenseCategoryMap,
|
||||||
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
||||||
ListUIState transactionListState) =>
|
ListUIState transactionListState) =>
|
||||||
filteredTransactionsSelector(
|
filteredTransactionsSelector(
|
||||||
|
|
@ -66,6 +70,7 @@ var memoizedFilteredTransactionList = memo7((SelectionState selectionState,
|
||||||
transactionList,
|
transactionList,
|
||||||
invoiceMap,
|
invoiceMap,
|
||||||
expenseMap,
|
expenseMap,
|
||||||
|
expenseCategoryMap,
|
||||||
bankAccountMap,
|
bankAccountMap,
|
||||||
transactionListState));
|
transactionListState));
|
||||||
|
|
||||||
|
|
@ -75,6 +80,7 @@ List<String> filteredTransactionsSelector(
|
||||||
BuiltList<String> transactionList,
|
BuiltList<String> transactionList,
|
||||||
BuiltMap<String, InvoiceEntity> invoiceMap,
|
BuiltMap<String, InvoiceEntity> invoiceMap,
|
||||||
BuiltMap<String, ExpenseEntity> expenseMap,
|
BuiltMap<String, ExpenseEntity> expenseMap,
|
||||||
|
BuiltMap<String, ExpenseCategoryEntity> expenseCategoryMap,
|
||||||
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
BuiltMap<String, BankAccountEntity> bankAccountMap,
|
||||||
ListUIState transactionListState) {
|
ListUIState transactionListState) {
|
||||||
final filterEntityId = selectionState.filterEntityId;
|
final filterEntityId = selectionState.filterEntityId;
|
||||||
|
|
@ -108,6 +114,7 @@ List<String> filteredTransactionsSelector(
|
||||||
transactionListState.sortAscending,
|
transactionListState.sortAscending,
|
||||||
invoiceMap,
|
invoiceMap,
|
||||||
expenseMap,
|
expenseMap,
|
||||||
|
expenseCategoryMap,
|
||||||
bankAccountMap);
|
bankAccountMap);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@ class TransactionListVM {
|
||||||
state.transactionState.list,
|
state.transactionState.list,
|
||||||
state.invoiceState.map,
|
state.invoiceState.map,
|
||||||
state.expenseState.map,
|
state.expenseState.map,
|
||||||
|
state.expenseCategoryState.map,
|
||||||
state.bankAccountState.map,
|
state.bankAccountState.map,
|
||||||
state.transactionListState),
|
state.transactionListState),
|
||||||
transactionMap: state.transactionState.map,
|
transactionMap: state.transactionState.map,
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,6 @@
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_redux/flutter_redux.dart';
|
import 'package:flutter_redux/flutter_redux.dart';
|
||||||
|
import 'package:invoiceninja_flutter/constants.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/entities/entity_status_chip.dart';
|
import 'package:invoiceninja_flutter/ui/app/entities/entity_status_chip.dart';
|
||||||
|
|
@ -26,6 +27,7 @@ class TransactionPresenter extends EntityPresenter {
|
||||||
return [
|
return [
|
||||||
...getDefaultTableFields(userCompany),
|
...getDefaultTableFields(userCompany),
|
||||||
...EntityPresenter.getBaseFields(),
|
...EntityPresenter.getBaseFields(),
|
||||||
|
TransactionFields.accountType,
|
||||||
TransactionFields.bankAccount,
|
TransactionFields.bankAccount,
|
||||||
TransactionFields.currency,
|
TransactionFields.currency,
|
||||||
TransactionFields.amount,
|
TransactionFields.amount,
|
||||||
|
|
@ -66,25 +68,38 @@ class TransactionPresenter extends EntityPresenter {
|
||||||
child: Text(formatNumber(transaction.amount, context,
|
child: Text(formatNumber(transaction.amount, context,
|
||||||
currencyId: transaction.currencyId)),
|
currencyId: transaction.currencyId)),
|
||||||
);
|
);
|
||||||
case TransactionFields.category:
|
|
||||||
return Text(toTitleCase(transaction.category.toLowerCase()));
|
|
||||||
case TransactionFields.description:
|
case TransactionFields.description:
|
||||||
return Text(transaction.description);
|
return Text(transaction.description);
|
||||||
|
case TransactionFields.accountType:
|
||||||
|
return Text(toTitleCase(transaction.accountType));
|
||||||
case TransactionFields.bankAccount:
|
case TransactionFields.bankAccount:
|
||||||
final bankAccount =
|
final bankAccount =
|
||||||
state.bankAccountState.get(transaction.bankAccountId);
|
state.bankAccountState.get(transaction.bankAccountId);
|
||||||
return LinkTextRelatedEntity(
|
return LinkTextRelatedEntity(
|
||||||
entity: bankAccount, relation: transaction);
|
entity: bankAccount, relation: transaction);
|
||||||
case TransactionFields.invoices:
|
case TransactionFields.invoices:
|
||||||
return Text(transaction.invoiceIds);
|
return ConstrainedBox(
|
||||||
//final invoice = state.invoiceState.get(transaction.invoiceIds);
|
constraints: BoxConstraints(maxWidth: kTableColumnWidthMax),
|
||||||
//return LinkTextRelatedEntity(entity: invoice, relation: transaction);
|
child: Wrap(
|
||||||
|
clipBehavior: Clip.antiAlias,
|
||||||
|
children: transaction.invoiceIds
|
||||||
|
.split(',')
|
||||||
|
.map((invoiceId) => state.invoiceState.map[invoiceId])
|
||||||
|
.where((invoice) => invoice != null)
|
||||||
|
.map((invoice) => Padding(
|
||||||
|
padding: const EdgeInsets.only(right: 8),
|
||||||
|
child: LinkTextRelatedEntity(
|
||||||
|
entity: invoice, relation: transaction),
|
||||||
|
))
|
||||||
|
.toList(),
|
||||||
|
),
|
||||||
|
);
|
||||||
case TransactionFields.expense:
|
case TransactionFields.expense:
|
||||||
return Text(transaction.expenseId);
|
final expense = state.expenseState.get(transaction.expenseId);
|
||||||
//final expense = state.expenseState.get(transaction.expenseId);
|
return LinkTextRelatedEntity(entity: expense, relation: transaction);
|
||||||
//return LinkTextRelatedEntity(entity: expense, relation: transaction);
|
case TransactionFields.category:
|
||||||
case TransactionFields.currency:
|
final category = state.expenseCategoryState.get(transaction.categoryId);
|
||||||
return Text(state.bankAccountState.get(transaction.bankAccountId).name);
|
return LinkTextRelatedEntity(entity: category, relation: transaction);
|
||||||
}
|
}
|
||||||
|
|
||||||
return super.getField(field: field, context: context);
|
return super.getField(field: field, context: context);
|
||||||
|
|
|
||||||
|
|
@ -52,6 +52,7 @@ class TransactionScreenVM {
|
||||||
state.transactionState.list,
|
state.transactionState.list,
|
||||||
state.invoiceState.map,
|
state.invoiceState.map,
|
||||||
state.expenseState.map,
|
state.expenseState.map,
|
||||||
|
state.expenseCategoryState.map,
|
||||||
state.bankAccountState.map,
|
state.bankAccountState.map,
|
||||||
state.transactionListState,
|
state.transactionListState,
|
||||||
),
|
),
|
||||||
|
|
|
||||||
|
|
@ -16,6 +16,7 @@ mixin LocalizationsProvider on LocaleCodeAware {
|
||||||
static final Map<String, Map<String, String>> _localizedValues = {
|
static final Map<String, Map<String, String>> _localizedValues = {
|
||||||
'en': {
|
'en': {
|
||||||
// STARTER: lang key - do not remove comment
|
// STARTER: lang key - do not remove comment
|
||||||
|
'account_type': 'Account Type',
|
||||||
'new_bank_account': 'New Bank Account',
|
'new_bank_account': 'New Bank Account',
|
||||||
'connect_accounts': 'Connect Accounts',
|
'connect_accounts': 'Connect Accounts',
|
||||||
'manage_rules': 'Manage Rules',
|
'manage_rules': 'Manage Rules',
|
||||||
|
|
@ -87382,6 +87383,10 @@ mixin LocalizationsProvider on LocaleCodeAware {
|
||||||
_localizedValues[localeCode]['new_bank_account'] ??
|
_localizedValues[localeCode]['new_bank_account'] ??
|
||||||
_localizedValues['en']['new_bank_account'];
|
_localizedValues['en']['new_bank_account'];
|
||||||
|
|
||||||
|
String get accountType =>
|
||||||
|
_localizedValues[localeCode]['account_type'] ??
|
||||||
|
_localizedValues['en']['account_type'];
|
||||||
|
|
||||||
// STARTER: lang field - do not remove comment
|
// STARTER: lang field - do not remove comment
|
||||||
|
|
||||||
String lookup(String key) {
|
String lookup(String key) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue