Quotes
This commit is contained in:
parent
a950c6f0b8
commit
78c13d51aa
|
|
@ -4,6 +4,7 @@ import 'package:flutter_redux/flutter_redux.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/redux/invoice/invoice_actions.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/actions_menu_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart';
|
import 'package:invoiceninja_flutter/ui/app/buttons/edit_icon_button.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/client/view/client_view_activity.dart';
|
import 'package:invoiceninja_flutter/ui/client/view/client_view_activity.dart';
|
||||||
|
|
@ -69,44 +70,34 @@ class _ClientViewState extends State<ClientView>
|
||||||
context: context,
|
context: context,
|
||||||
builder: (BuildContext context) =>
|
builder: (BuildContext context) =>
|
||||||
SimpleDialog(children: <Widget>[
|
SimpleDialog(children: <Widget>[
|
||||||
user.canCreate(EntityType.client) ? ListTile(
|
user.canCreate(EntityType.client)
|
||||||
dense: true,
|
? ListTile(
|
||||||
leading: Icon(Icons.add_circle_outline),
|
dense: true,
|
||||||
title: Text(localization.invoice),
|
leading: Icon(Icons.add_circle_outline),
|
||||||
onTap: () {
|
title: Text(localization.invoice),
|
||||||
Navigator.of(context).pop();
|
onTap: () {
|
||||||
store.dispatch(EditInvoice(
|
Navigator.of(context).pop();
|
||||||
invoice: InvoiceEntity()
|
store.dispatch(EditInvoice(
|
||||||
.rebuild((b) => b.clientId = client.id),
|
invoice: InvoiceEntity()
|
||||||
context: context));
|
.rebuild((b) => b.clientId = client.id),
|
||||||
},
|
context: context));
|
||||||
) : Container(),
|
},
|
||||||
/*
|
)
|
||||||
ListTile(
|
: Container(),
|
||||||
dense: true,
|
user.canCreate(EntityType.quote)
|
||||||
leading: Icon(Icons.add_circle_outline),
|
? ListTile(
|
||||||
title: Text(localization.quote),
|
dense: true,
|
||||||
onTap: () {},
|
leading: Icon(Icons.add_circle_outline),
|
||||||
),
|
title: Text(localization.quote),
|
||||||
ListTile(
|
onTap: () {
|
||||||
dense: true,
|
Navigator.of(context).pop();
|
||||||
leading: Icon(Icons.add_circle_outline),
|
store.dispatch(EditQuote(
|
||||||
title: Text(localization.payment),
|
quote: InvoiceEntity(isQuote: true)
|
||||||
onTap: () {},
|
.rebuild((b) => b.clientId = client.id),
|
||||||
),
|
context: context));
|
||||||
ListTile(
|
},
|
||||||
dense: true,
|
)
|
||||||
leading: Icon(Icons.add_circle_outline),
|
: Container(),
|
||||||
title: Text(localization.expense),
|
|
||||||
onTap: () {},
|
|
||||||
),
|
|
||||||
ListTile(
|
|
||||||
dense: true,
|
|
||||||
leading: Icon(Icons.add_circle_outline),
|
|
||||||
title: Text(localization.task),
|
|
||||||
onTap: () {},
|
|
||||||
),
|
|
||||||
*/
|
|
||||||
]),
|
]),
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
@ -220,10 +211,12 @@ class _CustomAppBar extends StatelessWidget implements PreferredSizeWidget {
|
||||||
actions: client.isNew
|
actions: client.isNew
|
||||||
? []
|
? []
|
||||||
: [
|
: [
|
||||||
user.canEditEntity(client) ? EditIconButton(
|
user.canEditEntity(client)
|
||||||
isVisible: !client.isDeleted,
|
? EditIconButton(
|
||||||
onPressed: () => viewModel.onEditPressed(context),
|
isVisible: !client.isDeleted,
|
||||||
) : Container(),
|
onPressed: () => viewModel.onEditPressed(context),
|
||||||
|
)
|
||||||
|
: Container(),
|
||||||
ActionMenuButton(
|
ActionMenuButton(
|
||||||
user: viewModel.company.user,
|
user: viewModel.company.user,
|
||||||
isSaving: viewModel.isSaving,
|
isSaving: viewModel.isSaving,
|
||||||
|
|
|
||||||
|
|
@ -153,7 +153,7 @@ class QuoteEditDetailsState extends State<QuoteEditDetails> {
|
||||||
},
|
},
|
||||||
),
|
),
|
||||||
DatePicker(
|
DatePicker(
|
||||||
labelText: localization.dueDate,
|
labelText: localization.validUntil,
|
||||||
selectedDate: quote.dueDate,
|
selectedDate: quote.dueDate,
|
||||||
onSelected: (date) {
|
onSelected: (date) {
|
||||||
viewModel.onChanged(quote.rebuild((b) => b..dueDate = date));
|
viewModel.onChanged(quote.rebuild((b) => b..dueDate = date));
|
||||||
|
|
|
||||||
|
|
@ -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/quote/quote_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/ui/ui_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/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/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:redux/redux.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';
|
||||||
|
|
@ -61,19 +61,19 @@ class QuoteEditVM {
|
||||||
company: state.selectedCompany,
|
company: state.selectedCompany,
|
||||||
isSaving: state.isSaving,
|
isSaving: state.isSaving,
|
||||||
quote: quote,
|
quote: quote,
|
||||||
quoteItem: state.invoiceUIState.editingItem,
|
quoteItem: state.quoteUIState.editingItem,
|
||||||
origQuote: store.state.invoiceState.map[quote.id],
|
origQuote: store.state.quoteState.map[quote.id],
|
||||||
onBackPressed: () =>
|
onBackPressed: () =>
|
||||||
store.dispatch(UpdateCurrentRoute(InvoiceScreen.route)),
|
store.dispatch(UpdateCurrentRoute(QuoteScreen.route)),
|
||||||
onSavePressed: (BuildContext context) {
|
onSavePressed: (BuildContext context) {
|
||||||
final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>();
|
final Completer<InvoiceEntity> completer = Completer<InvoiceEntity>();
|
||||||
store.dispatch(
|
store.dispatch(
|
||||||
SaveQuoteRequest(completer: completer, quote: quote));
|
SaveQuoteRequest(completer: completer, quote: quote));
|
||||||
return completer.future.then((savedInvoice) {
|
return completer.future.then((savedQuote) {
|
||||||
if (quote.isNew) {
|
if (quote.isNew) {
|
||||||
Navigator.of(context).pushReplacementNamed(InvoiceViewScreen.route);
|
Navigator.of(context).pushReplacementNamed(QuoteViewScreen.route);
|
||||||
} else {
|
} else {
|
||||||
Navigator.of(context).pop(savedInvoice);
|
Navigator.of(context).pop(savedQuote);
|
||||||
}
|
}
|
||||||
}).catchError((Object error) {
|
}).catchError((Object error) {
|
||||||
showDialog<ErrorDialog>(
|
showDialog<ErrorDialog>(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue