Added exchange rate
This commit is contained in:
parent
a10a2f90c4
commit
c0e5836a8a
|
|
@ -11,6 +11,7 @@ import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_desktop.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details_vm.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/money.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/credit/credit_actions.dart';
|
import 'package:invoiceninja_flutter/redux/credit/credit_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
|
|
@ -53,7 +54,7 @@ class CreditEditDetailsVM extends EntityEditDetailsVM {
|
||||||
CompanyEntity company,
|
CompanyEntity company,
|
||||||
InvoiceEntity invoice,
|
InvoiceEntity invoice,
|
||||||
Function(InvoiceEntity) onChanged,
|
Function(InvoiceEntity) onChanged,
|
||||||
Function(InvoiceEntity, ClientEntity) onClientChanged,
|
Function(BuildContext, InvoiceEntity, ClientEntity) onClientChanged,
|
||||||
BuiltMap<String, ClientEntity> clientMap,
|
BuiltMap<String, ClientEntity> clientMap,
|
||||||
BuiltList<String> clientList,
|
BuiltList<String> clientList,
|
||||||
Function(BuildContext context, Completer<SelectableEntity> completer)
|
Function(BuildContext context, Completer<SelectableEntity> completer)
|
||||||
|
|
@ -81,11 +82,13 @@ class CreditEditDetailsVM extends EntityEditDetailsVM {
|
||||||
onChanged: (InvoiceEntity credit) => store.dispatch(UpdateCredit(credit)),
|
onChanged: (InvoiceEntity credit) => store.dispatch(UpdateCredit(credit)),
|
||||||
clientMap: state.clientState.map,
|
clientMap: state.clientState.map,
|
||||||
clientList: state.clientState.list,
|
clientList: state.clientState.list,
|
||||||
onClientChanged: (invoice, client) {
|
onClientChanged: (context, invoice, client) {
|
||||||
if (company.convertProductExchangeRate && client != null) {
|
if (company.convertProductExchangeRate && client != null) {
|
||||||
store.dispatch(UpdateCredit(credit.rebuild((b) => b
|
final exchangeRate = getExchangeRate(context,
|
||||||
..exchangeRate = state
|
fromCurrencyId: company.currencyId,
|
||||||
.staticState.currencyMap[client.currencyId].exchangeRate)));
|
toCurrencyId: client.currencyId);
|
||||||
|
store.dispatch(UpdateCredit(
|
||||||
|
credit.rebuild((b) => b..exchangeRate = exchangeRate)));
|
||||||
}
|
}
|
||||||
store.dispatch(UpdateCreditClient(client: client));
|
store.dispatch(UpdateCreditClient(client: client));
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -198,7 +198,7 @@ class InvoiceEditDesktopState extends State<InvoiceEditDesktop>
|
||||||
clientId: invoice.clientId,
|
clientId: invoice.clientId,
|
||||||
clientState: viewModel.state.clientState,
|
clientState: viewModel.state.clientState,
|
||||||
onSelected: (client) {
|
onSelected: (client) {
|
||||||
viewModel.onClientChanged(invoice, client);
|
viewModel.onClientChanged(context, invoice, client);
|
||||||
/*
|
/*
|
||||||
final currencyId = (client as ClientEntity)?.currencyId;
|
final currencyId = (client as ClientEntity)?.currencyId;
|
||||||
if (company.convertProductExchangeRate &&
|
if (company.convertProductExchangeRate &&
|
||||||
|
|
|
||||||
|
|
@ -129,7 +129,7 @@ class InvoiceEditDetailsState extends State<InvoiceEditDetails> {
|
||||||
clientId: invoice.clientId,
|
clientId: invoice.clientId,
|
||||||
clientState: viewModel.state.clientState,
|
clientState: viewModel.state.clientState,
|
||||||
onSelected: (client) =>
|
onSelected: (client) =>
|
||||||
viewModel.onClientChanged(invoice, client),
|
viewModel.onClientChanged(context,invoice, client),
|
||||||
onAddPressed: (completer) =>
|
onAddPressed: (completer) =>
|
||||||
viewModel.onAddClientPressed(context, completer),
|
viewModel.onAddClientPressed(context, completer),
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,7 @@ import 'package:invoiceninja_flutter/redux/ui/ui_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/app/screen_imports.dart';
|
import 'package:invoiceninja_flutter/ui/app/screen_imports.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_desktop.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_desktop.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/money.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
|
import 'package:invoiceninja_flutter/redux/invoice/invoice_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
|
|
@ -59,7 +60,7 @@ class EntityEditDetailsVM {
|
||||||
final CompanyEntity company;
|
final CompanyEntity company;
|
||||||
final InvoiceEntity invoice;
|
final InvoiceEntity invoice;
|
||||||
final Function(InvoiceEntity) onChanged;
|
final Function(InvoiceEntity) onChanged;
|
||||||
final Function(InvoiceEntity, ClientEntity) onClientChanged;
|
final Function(BuildContext context, InvoiceEntity, ClientEntity) onClientChanged;
|
||||||
final BuiltMap<String, ClientEntity> clientMap;
|
final BuiltMap<String, ClientEntity> clientMap;
|
||||||
final BuiltList<String> clientList;
|
final BuiltList<String> clientList;
|
||||||
final Function(BuildContext context, Completer<SelectableEntity> completer)
|
final Function(BuildContext context, Completer<SelectableEntity> completer)
|
||||||
|
|
@ -72,7 +73,7 @@ class InvoiceEditDetailsVM extends EntityEditDetailsVM {
|
||||||
CompanyEntity company,
|
CompanyEntity company,
|
||||||
InvoiceEntity invoice,
|
InvoiceEntity invoice,
|
||||||
Function(InvoiceEntity) onChanged,
|
Function(InvoiceEntity) onChanged,
|
||||||
Function(InvoiceEntity, ClientEntity) onClientChanged,
|
Function(BuildContext, InvoiceEntity, ClientEntity) onClientChanged,
|
||||||
BuiltMap<String, ClientEntity> clientMap,
|
BuiltMap<String, ClientEntity> clientMap,
|
||||||
BuiltList<String> clientList,
|
BuiltList<String> clientList,
|
||||||
Function(BuildContext context, Completer<SelectableEntity> completer)
|
Function(BuildContext context, Completer<SelectableEntity> completer)
|
||||||
|
|
@ -101,12 +102,13 @@ class InvoiceEditDetailsVM extends EntityEditDetailsVM {
|
||||||
store.dispatch(UpdateInvoice(invoice)),
|
store.dispatch(UpdateInvoice(invoice)),
|
||||||
clientMap: state.clientState.map,
|
clientMap: state.clientState.map,
|
||||||
clientList: state.clientState.list,
|
clientList: state.clientState.list,
|
||||||
onClientChanged: (invoice, client) {
|
onClientChanged: (context, invoice, client) {
|
||||||
print('## onClientChanged: ${client?.id}');
|
|
||||||
if (company.convertProductExchangeRate && client != null) {
|
if (company.convertProductExchangeRate && client != null) {
|
||||||
|
final exchangeRate = getExchangeRate(context,
|
||||||
|
fromCurrencyId: company.currencyId,
|
||||||
|
toCurrencyId: client.currencyId);
|
||||||
store.dispatch(UpdateInvoice(invoice.rebuild((b) => b
|
store.dispatch(UpdateInvoice(invoice.rebuild((b) => b
|
||||||
..exchangeRate = state
|
..exchangeRate = exchangeRate)));
|
||||||
.staticState.currencyMap[client.currencyId].exchangeRate)));
|
|
||||||
}
|
}
|
||||||
store.dispatch(UpdateInvoiceClient(client: client));
|
store.dispatch(UpdateInvoiceClient(client: client));
|
||||||
},
|
},
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import 'package:invoiceninja_flutter/ui/app/screen_imports.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_desktop.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_desktop.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details.dart';
|
||||||
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details_vm.dart';
|
import 'package:invoiceninja_flutter/ui/invoice/edit/invoice_edit_details_vm.dart';
|
||||||
|
import 'package:invoiceninja_flutter/utils/money.dart';
|
||||||
import 'package:redux/redux.dart';
|
import 'package:redux/redux.dart';
|
||||||
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
|
import 'package:invoiceninja_flutter/redux/quote/quote_actions.dart';
|
||||||
import 'package:invoiceninja_flutter/data/models/models.dart';
|
import 'package:invoiceninja_flutter/data/models/models.dart';
|
||||||
|
|
@ -52,7 +53,7 @@ class QuoteEditDetailsVM extends EntityEditDetailsVM {
|
||||||
CompanyEntity company,
|
CompanyEntity company,
|
||||||
InvoiceEntity invoice,
|
InvoiceEntity invoice,
|
||||||
Function(InvoiceEntity) onChanged,
|
Function(InvoiceEntity) onChanged,
|
||||||
Function(InvoiceEntity, ClientEntity) onClientChanged,
|
Function(BuildContext, InvoiceEntity, ClientEntity) onClientChanged,
|
||||||
BuiltMap<String, ClientEntity> clientMap,
|
BuiltMap<String, ClientEntity> clientMap,
|
||||||
BuiltList<String> clientList,
|
BuiltList<String> clientList,
|
||||||
Function(BuildContext context, Completer<SelectableEntity> completer)
|
Function(BuildContext context, Completer<SelectableEntity> completer)
|
||||||
|
|
@ -80,11 +81,13 @@ class QuoteEditDetailsVM extends EntityEditDetailsVM {
|
||||||
onChanged: (InvoiceEntity quote) => store.dispatch(UpdateQuote(quote)),
|
onChanged: (InvoiceEntity quote) => store.dispatch(UpdateQuote(quote)),
|
||||||
clientMap: state.clientState.map,
|
clientMap: state.clientState.map,
|
||||||
clientList: state.clientState.list,
|
clientList: state.clientState.list,
|
||||||
onClientChanged: (quote, client) {
|
onClientChanged: (context, quote, client) {
|
||||||
if (company.convertProductExchangeRate && client != null) {
|
if (company.convertProductExchangeRate && client != null) {
|
||||||
|
final exchangeRate = getExchangeRate(context,
|
||||||
|
fromCurrencyId: company.currencyId,
|
||||||
|
toCurrencyId: client.currencyId);
|
||||||
store.dispatch(UpdateQuote(quote.rebuild((b) => b
|
store.dispatch(UpdateQuote(quote.rebuild((b) => b
|
||||||
..exchangeRate = state
|
..exchangeRate = exchangeRate)));
|
||||||
.staticState.currencyMap[client.currencyId].exchangeRate)));
|
|
||||||
}
|
}
|
||||||
store.dispatch(UpdateQuoteClient(client: client));
|
store.dispatch(UpdateQuoteClient(client: client));
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue