Purchase orders

This commit is contained in:
Hillel Coren 2022-06-26 12:42:49 +03:00
parent 6ef67cecb1
commit 554d619b7a
3 changed files with 61 additions and 8 deletions

View File

@ -274,15 +274,15 @@ class DownloadPurchaseOrdersFailure implements StopSaving {
final Object error;
}
class AcceptPurchaseOrders implements StartSaving {
AcceptPurchaseOrders(this.completer, this.purchaseOrderIds);
class AcceptPurchaseOrdersRequest implements StartSaving {
AcceptPurchaseOrdersRequest(this.completer, this.purchaseOrderIds);
final List<String> purchaseOrderIds;
final Completer completer;
}
class AcceptPurchaseOrderSuccess implements StopSaving {
AcceptPurchaseOrderSuccess({this.purchaseOrders});
AcceptPurchaseOrderSuccess(this.purchaseOrders);
final List<InvoiceEntity> purchaseOrders;
}
@ -293,15 +293,15 @@ class AcceptPurchaseOrderFailure implements StopSaving {
final dynamic error;
}
class CancelPurchaseOrders implements StartSaving {
CancelPurchaseOrders(this.completer, this.purchaseOrderIds);
class CancelPurchaseOrdersRequest implements StartSaving {
CancelPurchaseOrdersRequest(this.completer, this.purchaseOrderIds);
final List<String> purchaseOrderIds;
final Completer completer;
}
class CancelPurchaseOrderSuccess implements StopSaving {
CancelPurchaseOrderSuccess({this.purchaseOrders});
CancelPurchaseOrderSuccess(this.purchaseOrders);
final List<InvoiceEntity> purchaseOrders;
}
@ -566,7 +566,7 @@ void handlePurchaseOrderAction(BuildContext context,
purchaseOrderIds));
break;
case EntityAction.cancelInvoice:
store.dispatch(CancelPurchaseOrders(
store.dispatch(CancelPurchaseOrdersRequest(
snackBarCompleter<Null>(
context,
purchaseOrders.length == 1
@ -575,7 +575,7 @@ void handlePurchaseOrderAction(BuildContext context,
purchaseOrderIds));
break;
case EntityAction.accept:
store.dispatch(AcceptPurchaseOrders(
store.dispatch(AcceptPurchaseOrdersRequest(
snackBarCompleter<Null>(
context,
purchaseOrders.length == 1

View File

@ -37,6 +37,8 @@ List<Middleware<AppState>> createStorePurchaseOrdersMiddleware([
final emailPurchaseOrder = _emailPurchaseOrder(repository);
final bulkEmailPurchaseOrders = _bulkEmailPurchaseOrders(repository);
final markSentPurchaseOrder = _markSentPurchaseOrder(repository);
final acceptPurchaseOrders = _acceptPurchaseOrders(repository);
final cancelPurchaseOrders = _cancelPurchaseOrders(repository);
final downloadPurchaseOrders = _downloadPurchaseOrders(repository);
final saveDocument = _saveDocument(repository);
@ -60,6 +62,10 @@ List<Middleware<AppState>> createStorePurchaseOrdersMiddleware([
bulkEmailPurchaseOrders),
TypedMiddleware<AppState, MarkPurchaseOrdersSentRequest>(
markSentPurchaseOrder),
TypedMiddleware<AppState, AcceptPurchaseOrdersRequest>(
acceptPurchaseOrders),
TypedMiddleware<AppState, CancelPurchaseOrdersRequest>(
cancelPurchaseOrders),
TypedMiddleware<AppState, DownloadPurchaseOrdersRequest>(
downloadPurchaseOrders),
TypedMiddleware<AppState, SavePurchaseOrderDocumentRequest>(saveDocument),
@ -274,6 +280,52 @@ Middleware<AppState> _markSentPurchaseOrder(
};
}
Middleware<AppState> _acceptPurchaseOrders(PurchaseOrderRepository repository) {
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
final action = dynamicAction as AcceptPurchaseOrdersRequest;
repository
.bulkAction(store.state.credentials, action.purchaseOrderIds,
EntityAction.accept)
.then((purchaseOrders) {
store.dispatch(AcceptPurchaseOrderSuccess(purchaseOrders));
if (action.completer != null) {
action.completer.complete(null);
}
}).catchError((Object error) {
print(error);
store.dispatch(AcceptPurchaseOrderFailure(error));
if (action.completer != null) {
action.completer.completeError(error);
}
});
next(action);
};
}
Middleware<AppState> _cancelPurchaseOrders(PurchaseOrderRepository repository) {
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
final action = dynamicAction as CancelPurchaseOrdersRequest;
repository
.bulkAction(store.state.credentials, action.purchaseOrderIds,
EntityAction.cancel)
.then((purchaseOrders) {
store.dispatch(CancelPurchaseOrderSuccess(purchaseOrders));
if (action.completer != null) {
action.completer.complete(null);
}
}).catchError((Object error) {
print(error);
store.dispatch(CancelPurchaseOrderFailure(error));
if (action.completer != null) {
action.completer.completeError(error);
}
});
next(action);
};
}
Middleware<AppState> _emailPurchaseOrder(PurchaseOrderRepository repository) {
return (Store<AppState> store, dynamic dynamicAction, NextDispatcher next) {
final action = dynamicAction as EmailPurchaseOrderRequest;

View File

@ -27,6 +27,7 @@ class PurchaseOrderViewScreen extends StatelessWidget {
Key key,
this.isFilter = false,
}) : super(key: key);
final bool isFilter;
static const String route = '/purchase_order/view';