Transactions
This commit is contained in:
parent
fbac475eba
commit
b68e8dd7fe
|
|
@ -118,6 +118,7 @@ class EntityAction extends EnumClass {
|
|||
static const EntityAction save = _$save;
|
||||
static const EntityAction accept = _$accept;
|
||||
static const EntityAction addToInventory = _$addToInventory;
|
||||
static const EntityAction convert = _$convert;
|
||||
static const EntityAction convertToExpense = _$convertToExpense;
|
||||
static const EntityAction convertToPayment = _$convertToPayment;
|
||||
static const EntityAction merge = _$merge;
|
||||
|
|
|
|||
|
|
@ -83,6 +83,7 @@ const EntityAction _$cancel = const EntityAction._('cancel');
|
|||
const EntityAction _$save = const EntityAction._('save');
|
||||
const EntityAction _$accept = const EntityAction._('accept');
|
||||
const EntityAction _$addToInventory = const EntityAction._('addToInventory');
|
||||
const EntityAction _$convert = const EntityAction._('convert');
|
||||
const EntityAction _$convertToExpense =
|
||||
const EntityAction._('convertToExpense');
|
||||
const EntityAction _$convertToPayment =
|
||||
|
|
@ -227,6 +228,8 @@ EntityAction _$valueOf(String name) {
|
|||
return _$accept;
|
||||
case 'addToInventory':
|
||||
return _$addToInventory;
|
||||
case 'convert':
|
||||
return _$convert;
|
||||
case 'convertToExpense':
|
||||
return _$convertToExpense;
|
||||
case 'convertToPayment':
|
||||
|
|
@ -308,6 +311,7 @@ final BuiltSet<EntityAction> _$values =
|
|||
_$save,
|
||||
_$accept,
|
||||
_$addToInventory,
|
||||
_$convert,
|
||||
_$convertToExpense,
|
||||
_$convertToPayment,
|
||||
_$merge,
|
||||
|
|
|
|||
|
|
@ -52,6 +52,46 @@ class TransactionRepository {
|
|||
return transactionResponse.data.toList();
|
||||
}
|
||||
|
||||
Future<TransactionEntity> convertToPayment(Credentials credentials,
|
||||
String transactionId, List<String> invoiceIds) async {
|
||||
final url = credentials.url + '/bank_transactions/match';
|
||||
final dynamic response = await webClient.post(
|
||||
url,
|
||||
credentials.token,
|
||||
data: json.encode(
|
||||
{
|
||||
'id': transactionId,
|
||||
'invoice_ids': invoiceIds.join(','),
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
final TransactionItemResponse transactionResponse = serializers
|
||||
.deserializeWith(TransactionItemResponse.serializer, response);
|
||||
|
||||
return transactionResponse.data;
|
||||
}
|
||||
|
||||
Future<TransactionEntity> convertToExpense(
|
||||
Credentials credentials, String transactionId, String vendorId) async {
|
||||
final url = credentials.url + '/bank_transactions/match';
|
||||
final dynamic response = await webClient.post(
|
||||
url,
|
||||
credentials.token,
|
||||
data: json.encode(
|
||||
{
|
||||
'id': transactionId,
|
||||
'vendor_id': vendorId,
|
||||
},
|
||||
),
|
||||
);
|
||||
|
||||
final TransactionItemResponse transactionResponse = serializers
|
||||
.deserializeWith(TransactionItemResponse.serializer, response);
|
||||
|
||||
return transactionResponse.data;
|
||||
}
|
||||
|
||||
Future<TransactionEntity> saveData(
|
||||
Credentials credentials, TransactionEntity transaction) async {
|
||||
final data =
|
||||
|
|
|
|||
|
|
@ -213,9 +213,9 @@ class ConvertTransactionToPaymentSuccess implements StopSaving, PersistData {
|
|||
}
|
||||
|
||||
class ConvertTransactionToPaymentFailure implements StopSaving {
|
||||
ConvertTransactionToPaymentFailure(this.transaction);
|
||||
ConvertTransactionToPaymentFailure(this.error);
|
||||
|
||||
final TransactionEntity transaction;
|
||||
final dynamic error;
|
||||
}
|
||||
|
||||
class ConvertTransactionToExpenseRequest implements StartSaving {
|
||||
|
|
@ -237,9 +237,9 @@ class ConvertTransactionToExpenseSuccess implements StopSaving, PersistData {
|
|||
}
|
||||
|
||||
class ConvertTransactionToExpenseFailure implements StopSaving {
|
||||
ConvertTransactionToExpenseFailure(this.transaction);
|
||||
ConvertTransactionToExpenseFailure(this.error);
|
||||
|
||||
final TransactionEntity transaction;
|
||||
final dynamic error;
|
||||
}
|
||||
|
||||
class ConvertTransactionsRequest implements StartSaving {
|
||||
|
|
@ -256,9 +256,9 @@ class ConvertTransactionsSuccess implements StopSaving, PersistData {
|
|||
}
|
||||
|
||||
class ConvertTransactionsFailure implements StopSaving {
|
||||
ConvertTransactionsFailure(this.transactions);
|
||||
ConvertTransactionsFailure(this.error);
|
||||
|
||||
final List<TransactionEntity> transactions;
|
||||
final dynamic error;
|
||||
}
|
||||
|
||||
class FilterTransactions implements PersistUI {
|
||||
|
|
|
|||
|
|
@ -24,6 +24,9 @@ List<Middleware<AppState>> createStoreTransactionsMiddleware([
|
|||
final archiveTransaction = _archiveTransaction(repository);
|
||||
final deleteTransaction = _deleteTransaction(repository);
|
||||
final restoreTransaction = _restoreTransaction(repository);
|
||||
final convertTransactions = _convertTransactions(repository);
|
||||
final convertToPayment = _convertToPayment(repository);
|
||||
final convertToExpense = _convertToExpense(repository);
|
||||
|
||||
return [
|
||||
TypedMiddleware<AppState, ViewTransactionList>(viewTransactionList),
|
||||
|
|
@ -35,6 +38,11 @@ List<Middleware<AppState>> createStoreTransactionsMiddleware([
|
|||
TypedMiddleware<AppState, ArchiveTransactionsRequest>(archiveTransaction),
|
||||
TypedMiddleware<AppState, DeleteTransactionsRequest>(deleteTransaction),
|
||||
TypedMiddleware<AppState, RestoreTransactionsRequest>(restoreTransaction),
|
||||
TypedMiddleware<AppState, ConvertTransactionsRequest>(convertTransactions),
|
||||
TypedMiddleware<AppState, ConvertTransactionToPaymentRequest>(
|
||||
convertToPayment),
|
||||
TypedMiddleware<AppState, ConvertTransactionToExpenseRequest>(
|
||||
convertToExpense),
|
||||
];
|
||||
}
|
||||
|
||||
|
|
@ -164,6 +172,81 @@ Middleware<AppState> _restoreTransaction(TransactionRepository repository) {
|
|||
};
|
||||
}
|
||||
|
||||
Middleware<AppState> _convertTransactions(TransactionRepository repository) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as ConvertTransactionsRequest;
|
||||
repository
|
||||
.bulkAction(store.state.credentials, action.transactionIds,
|
||||
EntityAction.convert)
|
||||
.then((List<TransactionEntity> transactions) {
|
||||
store.dispatch(ConvertTransactionsSuccess(transactions));
|
||||
if (action.completer != null) {
|
||||
action.completer.complete(null);
|
||||
}
|
||||
}).catchError((Object error) {
|
||||
print(error);
|
||||
store.dispatch(ConvertTransactionsFailure(error));
|
||||
if (action.completer != null) {
|
||||
action.completer.completeError(error);
|
||||
}
|
||||
});
|
||||
|
||||
next(action);
|
||||
};
|
||||
}
|
||||
|
||||
Middleware<AppState> _convertToPayment(TransactionRepository repository) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as ConvertTransactionToPaymentRequest;
|
||||
repository
|
||||
.convertToPayment(
|
||||
store.state.credentials,
|
||||
action.transactionId,
|
||||
action.invoiceIds,
|
||||
)
|
||||
.then((TransactionEntity transactions) {
|
||||
store.dispatch(ConvertTransactionToPaymentSuccess(transactions));
|
||||
if (action.completer != null) {
|
||||
action.completer.complete(null);
|
||||
}
|
||||
}).catchError((Object error) {
|
||||
print(error);
|
||||
store.dispatch(ConvertTransactionToPaymentFailure(error));
|
||||
if (action.completer != null) {
|
||||
action.completer.completeError(error);
|
||||
}
|
||||
});
|
||||
|
||||
next(action);
|
||||
};
|
||||
}
|
||||
|
||||
Middleware<AppState> _convertToExpense(TransactionRepository repository) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as ConvertTransactionToExpenseRequest;
|
||||
repository
|
||||
.convertToExpense(
|
||||
store.state.credentials,
|
||||
action.transactionId,
|
||||
action.vendorId,
|
||||
)
|
||||
.then((TransactionEntity transactions) {
|
||||
store.dispatch(ConvertTransactionToExpenseSuccess(transactions));
|
||||
if (action.completer != null) {
|
||||
action.completer.complete(null);
|
||||
}
|
||||
}).catchError((Object error) {
|
||||
print(error);
|
||||
store.dispatch(ConvertTransactionToExpenseFailure(error));
|
||||
if (action.completer != null) {
|
||||
action.completer.completeError(error);
|
||||
}
|
||||
});
|
||||
|
||||
next(action);
|
||||
};
|
||||
}
|
||||
|
||||
Middleware<AppState> _saveTransaction(TransactionRepository repository) {
|
||||
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
|
||||
final action = dynamicAction as SaveTransactionRequest;
|
||||
|
|
|
|||
Loading…
Reference in New Issue