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