diff --git a/lib/ui/client/view/client_view.dart b/lib/ui/client/view/client_view.dart index 985192a0e..a50d2176d 100644 --- a/lib/ui/client/view/client_view.dart +++ b/lib/ui/client/view/client_view.dart @@ -4,6 +4,7 @@ import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart'; +import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart'; import 'package:invoiceninja_flutter/ui/app/actions_menu_button.dart'; import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart'; import 'package:invoiceninja_flutter/ui/client/view/client_view_activity.dart'; @@ -69,44 +70,34 @@ class _ClientViewState extends State context: context, builder: (BuildContext context) => SimpleDialog(children: [ - user.canCreate(EntityType.client) ? ListTile( - dense: true, - leading: Icon(Icons.add_circle_outline), - title: Text(localization.invoice), - onTap: () { - Navigator.of(context).pop(); - store.dispatch(EditInvoice( - invoice: InvoiceEntity() - .rebuild((b) => b.clientId = client.id), - context: context)); - }, - ) : Container(), - /* - ListTile( - dense: true, - leading: Icon(Icons.add_circle_outline), - title: Text(localization.quote), - onTap: () {}, - ), - ListTile( - dense: true, - leading: Icon(Icons.add_circle_outline), - title: Text(localization.payment), - onTap: () {}, - ), - ListTile( - dense: true, - leading: Icon(Icons.add_circle_outline), - title: Text(localization.expense), - onTap: () {}, - ), - ListTile( - dense: true, - leading: Icon(Icons.add_circle_outline), - title: Text(localization.task), - onTap: () {}, - ), - */ + user.canCreate(EntityType.client) + ? ListTile( + dense: true, + leading: Icon(Icons.add_circle_outline), + title: Text(localization.invoice), + onTap: () { + Navigator.of(context).pop(); + store.dispatch(EditInvoice( + invoice: InvoiceEntity() + .rebuild((b) => b.clientId = client.id), + context: context)); + }, + ) + : Container(), + user.canCreate(EntityType.quote) + ? ListTile( + dense: true, + leading: Icon(Icons.add_circle_outline), + title: Text(localization.quote), + onTap: () { + Navigator.of(context).pop(); + store.dispatch(EditQuote( + quote: InvoiceEntity(isQuote: true) + .rebuild((b) => b.clientId = client.id), + context: context)); + }, + ) + : Container(), ]), ); }, @@ -220,10 +211,12 @@ class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget { actions: client.isNew ? [] : [ - user.canEditEntity(client) ? EditIconButton( - isVisible: !client.isDeleted, - onPressed: () => viewModel.onEditPressed(context), - ) : Container(), + user.canEditEntity(client) + ? EditIconButton( + isVisible: !client.isDeleted, + onPressed: () => viewModel.onEditPressed(context), + ) + : Container(), ActionMenuButton( user: viewModel.company.user, isSaving: viewModel.isSaving, diff --git a/lib/ui/quote/edit/quote_edit_details.dart b/lib/ui/quote/edit/quote_edit_details.dart index a6c984037..9f95cb230 100644 --- a/lib/ui/quote/edit/quote_edit_details.dart +++ b/lib/ui/quote/edit/quote_edit_details.dart @@ -153,7 +153,7 @@ class QuoteEditDetailsState extends State { }, ), DatePicker( - labelText: localization.dueDate, + labelText: localization.validUntil, selectedDate: quote.dueDate, onSelected: (date) { viewModel.onChanged(quote.rebuild((b) => b..dueDate = date)); diff --git a/lib/ui/quote/edit/quote_edit_vm.dart b/lib/ui/quote/edit/quote_edit_vm.dart index 6c07ca5fd..a42048063 100644 --- a/lib/ui/quote/edit/quote_edit_vm.dart +++ b/lib/ui/quote/edit/quote_edit_vm.dart @@ -5,9 +5,9 @@ import 'package:flutter_redux/flutter_redux.dart'; import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart'; import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart'; import 'package:invoiceninja_flutter/ui/app/dialogs/error_dialog.dart'; -import 'package:invoiceninja_flutter/ui/invoice/invoice_screen.dart'; -import 'package:invoiceninja_flutter/ui/invoice/view/invoice_view_vm.dart'; import 'package:invoiceninja_flutter/ui/quote/edit/quote_edit.dart'; +import 'package:invoiceninja_flutter/ui/quote/quote_screen.dart'; +import 'package:invoiceninja_flutter/ui/quote/view/quote_view_vm.dart'; import 'package:redux/redux.dart'; import 'package:invoiceninja_flutter/data/models/models.dart'; import 'package:invoiceninja_flutter/redux/app/app_state.dart'; @@ -61,19 +61,19 @@ class QuoteEditVM { company: state.selectedCompany, isSaving: state.isSaving, quote: quote, - quoteItem: state.invoiceUIState.editingItem, - origQuote: store.state.invoiceState.map[quote.id], + quoteItem: state.quoteUIState.editingItem, + origQuote: store.state.quoteState.map[quote.id], onBackPressed: () => - store.dispatch(UpdateCurrentRoute(InvoiceScreen.route)), + store.dispatch(UpdateCurrentRoute(QuoteScreen.route)), onSavePressed: (BuildContext context) { final Completer completer = Completer(); store.dispatch( SaveQuoteRequest(completer: completer, quote: quote)); - return completer.future.then((savedInvoice) { + return completer.future.then((savedQuote) { if (quote.isNew) { - Navigator.of(context).pushReplacementNamed(InvoiceViewScreen.route); + Navigator.of(context).pushReplacementNamed(QuoteViewScreen.route); } else { - Navigator.of(context).pop(savedInvoice); + Navigator.of(context).pop(savedQuote); } }).catchError((Object error) { showDialog(