Show quote as sent after emailing

This commit is contained in:
Hillel Coren 2022-02-11 15:14:20 +02:00
parent 24ef988e99
commit 0690362961
4 changed files with 16 additions and 8 deletions

View File

@ -10,7 +10,6 @@ import 'package:invoiceninja_flutter/data/repositories/invoice_repository.dart';
import 'package:invoiceninja_flutter/main_app.dart';
import 'package:invoiceninja_flutter/redux/app/app_actions.dart';
import 'package:invoiceninja_flutter/redux/app/app_state.dart';
import 'package:invoiceninja_flutter/redux/client/client_actions.dart';
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
import 'package:invoiceninja_flutter/redux/payment/payment_actions.dart';
import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
@ -208,7 +207,7 @@ Middleware<AppState> _deleteInvoice(InvoiceRepository repository) {
store.state.credentials, action.invoiceIds, EntityAction.delete)
.then((List<InvoiceEntity> invoices) {
store.dispatch(DeleteInvoicesSuccess(invoices));
store.dispatch(LoadClient(clientId: invoices.first.clientId));
store.dispatch(RefreshData());
if (action.completer != null) {
action.completer.complete(null);
}
@ -235,7 +234,7 @@ Middleware<AppState> _restoreInvoice(InvoiceRepository repository) {
store.state.credentials, action.invoiceIds, EntityAction.restore)
.then((List<InvoiceEntity> invoices) {
store.dispatch(RestoreInvoicesSuccess(invoices));
store.dispatch(LoadClient(clientId: invoices.first.clientId));
store.dispatch(RefreshData());
if (action.completer != null) {
action.completer.complete(null);
}
@ -259,7 +258,7 @@ Middleware<AppState> _markInvoiceSent(InvoiceRepository repository) {
store.state.credentials, action.invoiceIds, EntityAction.markSent)
.then((invoices) {
store.dispatch(MarkInvoicesSentSuccess(invoices));
store.dispatch(LoadClient(clientId: invoices.first.clientId));
store.dispatch(RefreshData());
if (action.completer != null) {
action.completer.complete(null);
}
@ -331,7 +330,7 @@ Middleware<AppState> _emailInvoice(InvoiceRepository repository) {
action.subject, action.body)
.then((InvoiceEntity invoice) {
store.dispatch(EmailInvoiceSuccess(invoice: invoice));
store.dispatch(LoadClient(clientId: origInvoice.clientId));
store.dispatch(RefreshData());
if (action.completer != null) {
action.completer.complete(null);
}

View File

@ -230,7 +230,11 @@ class EmailQuoteRequest implements StartSaving {
final String body;
}
class EmailQuoteSuccess implements StopSaving, PersistData {}
class EmailQuoteSuccess implements StopSaving, PersistData {
EmailQuoteSuccess(this.quote);
final InvoiceEntity quote;
}
class EmailQuoteFailure implements StopSaving {
EmailQuoteFailure(this.error);

View File

@ -271,8 +271,8 @@ Middleware<AppState> _emailQuote(QuoteRepository repository) {
repository
.emailQuote(store.state.credentials, origQuote, action.template,
action.subject, action.body)
.then((void _) {
store.dispatch(EmailQuoteSuccess());
.then((quote) {
store.dispatch(EmailQuoteSuccess(quote));
if (action.completer != null) {
action.completer.complete(null);
}

View File

@ -301,6 +301,7 @@ final quotesReducer = combineReducers<QuoteState>([
TypedReducer<QuoteState, LoadQuoteSuccess>(_updateQuote),
TypedReducer<QuoteState, LoadCompanySuccess>(_setLoadedCompany),
TypedReducer<QuoteState, MarkSentQuoteSuccess>(_markSentQuoteSuccess),
TypedReducer<QuoteState, EmailQuoteSuccess>(_emailQuoteSuccess),
TypedReducer<QuoteState, ArchiveQuotesSuccess>(_archiveQuoteSuccess),
TypedReducer<QuoteState, DeleteQuotesSuccess>(_deleteQuoteSuccess),
TypedReducer<QuoteState, RestoreQuotesSuccess>(_restoreQuoteSuccess),
@ -344,6 +345,10 @@ QuoteState _restoreQuoteSuccess(
});
}
QuoteState _emailQuoteSuccess(QuoteState quoteState, EmailQuoteSuccess action) {
return quoteState.rebuild((b) => b..map[action.quote.id] = action.quote);
}
QuoteState _convertQuoteSuccess(
QuoteState quoteState, ConvertQuoteSuccess action) {
final quoteMap = Map<String, InvoiceEntity>.fromIterable(