Support setting edit payment form send email at client/group level
This commit is contained in:
parent
95c9b17fa5
commit
1870dce5ec
|
|
@ -7,6 +7,7 @@ import 'package:built_value/serializer.dart';
|
||||||
import 'package:invoiceninja_flutter/constants.dart';
|
import 'package:invoiceninja_flutter/constants.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/client/client_selectors.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
import 'package:invoiceninja_flutter/utils/formatting.dart';
|
||||||
import 'package:invoiceninja_flutter/utils/strings.dart';
|
import 'package:invoiceninja_flutter/utils/strings.dart';
|
||||||
|
|
||||||
|
|
@ -75,6 +76,8 @@ abstract class PaymentEntity extends Object
|
||||||
with BaseEntity, SelectableEntity, BelongsToClient
|
with BaseEntity, SelectableEntity, BelongsToClient
|
||||||
implements Built<PaymentEntity, PaymentEntityBuilder> {
|
implements Built<PaymentEntity, PaymentEntityBuilder> {
|
||||||
factory PaymentEntity({String id, AppState state, ClientEntity client}) {
|
factory PaymentEntity({String id, AppState state, ClientEntity client}) {
|
||||||
|
final settings = getClientSettings(state, client);
|
||||||
|
|
||||||
return _$PaymentEntity._(
|
return _$PaymentEntity._(
|
||||||
id: id ?? BaseEntity.nextId,
|
id: id ?? BaseEntity.nextId,
|
||||||
isChanged: false,
|
isChanged: false,
|
||||||
|
|
@ -109,7 +112,7 @@ abstract class PaymentEntity extends Object
|
||||||
vendorId: '',
|
vendorId: '',
|
||||||
projectId: '',
|
projectId: '',
|
||||||
number: '',
|
number: '',
|
||||||
sendEmail: state?.company?.settings?.clientManualPaymentNotification,
|
sendEmail: settings.clientManualPaymentNotification ?? false,
|
||||||
companyGatewayId: '',
|
companyGatewayId: '',
|
||||||
clientContactId: '',
|
clientContactId: '',
|
||||||
currencyId: '',
|
currencyId: '',
|
||||||
|
|
|
||||||
|
|
@ -84,6 +84,10 @@ abstract class SettingsEntity
|
||||||
defaultTaxName3: clientSettings?.defaultTaxName3 ??
|
defaultTaxName3: clientSettings?.defaultTaxName3 ??
|
||||||
groupSettings?.defaultTaxName3 ??
|
groupSettings?.defaultTaxName3 ??
|
||||||
companySettings?.defaultTaxName3,
|
companySettings?.defaultTaxName3,
|
||||||
|
clientManualPaymentNotification:
|
||||||
|
clientSettings?.clientManualPaymentNotification ??
|
||||||
|
groupSettings?.clientManualPaymentNotification ??
|
||||||
|
companySettings?.clientManualPaymentNotification,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -428,8 +428,8 @@ void handleClientAction(
|
||||||
case EntityAction.newPayment:
|
case EntityAction.newPayment:
|
||||||
createEntity(
|
createEntity(
|
||||||
context: context,
|
context: context,
|
||||||
entity:
|
entity: PaymentEntity(state: state, client: client)
|
||||||
PaymentEntity(state: state).rebuild((b) => b.clientId = client.id),
|
.rebuild((b) => b.clientId = client.id),
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case EntityAction.newProject:
|
case EntityAction.newProject:
|
||||||
|
|
|
||||||
|
|
@ -586,12 +586,13 @@ Future handleCreditAction(
|
||||||
case EntityAction.applyCredit:
|
case EntityAction.applyCredit:
|
||||||
createEntity(
|
createEntity(
|
||||||
context: context,
|
context: context,
|
||||||
entity: PaymentEntity(state: state).rebuild((b) => b
|
entity: PaymentEntity(
|
||||||
..typeId = kPaymentTypeCredit
|
state: state, client: state.clientState.get(credit.clientId))
|
||||||
..clientId = credit.clientId
|
.rebuild((b) => b
|
||||||
..credits.addAll(credits
|
..typeId = kPaymentTypeCredit
|
||||||
.map((credit) => PaymentableEntity.fromCredit(credit))
|
..credits.addAll(credits
|
||||||
.toList())),
|
.map((credit) => PaymentableEntity.fromCredit(credit))
|
||||||
|
.toList())),
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case EntityAction.download:
|
case EntityAction.download:
|
||||||
|
|
|
||||||
|
|
@ -660,12 +660,13 @@ void handleInvoiceAction(BuildContext context, List<BaseEntity> invoices,
|
||||||
case EntityAction.newPayment:
|
case EntityAction.newPayment:
|
||||||
createEntity(
|
createEntity(
|
||||||
context: context,
|
context: context,
|
||||||
entity: PaymentEntity(state: state).rebuild((b) => b
|
entity: PaymentEntity(
|
||||||
..clientId = invoice.clientId
|
state: state, client: state.clientState.get(invoice.clientId))
|
||||||
..invoices.addAll(invoices
|
.rebuild((b) => b
|
||||||
.where((invoice) => !(invoice as InvoiceEntity).isPaid)
|
..invoices.addAll(invoices
|
||||||
.map((invoice) => PaymentableEntity.fromInvoice(invoice))
|
.where((invoice) => !(invoice as InvoiceEntity).isPaid)
|
||||||
.toList())),
|
.map((invoice) => PaymentableEntity.fromInvoice(invoice))
|
||||||
|
.toList())),
|
||||||
);
|
);
|
||||||
break;
|
break;
|
||||||
case EntityAction.download:
|
case EntityAction.download:
|
||||||
|
|
|
||||||
|
|
@ -626,16 +626,15 @@ class _CompanyDetailsState extends State<CompanyDetails>
|
||||||
FormCard(
|
FormCard(
|
||||||
crossAxisAlignment: CrossAxisAlignment.stretch,
|
crossAxisAlignment: CrossAxisAlignment.stretch,
|
||||||
children: <Widget>[
|
children: <Widget>[
|
||||||
if (!state.settingsUIState.isFiltered)
|
BoolDropdownButton(
|
||||||
BoolDropdownButton(
|
value: settings.clientManualPaymentNotification,
|
||||||
value: settings.clientManualPaymentNotification,
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
settings.rebuild((b) =>
|
||||||
settings.rebuild((b) =>
|
b..clientManualPaymentNotification = value)),
|
||||||
b..clientManualPaymentNotification = value)),
|
label: localization.manualPaymentEmail,
|
||||||
label: localization.manualPaymentEmail,
|
helpLabel: localization.emailReceipt,
|
||||||
helpLabel: localization.emailReceipt,
|
iconData: Icons.email,
|
||||||
iconData: Icons.email,
|
),
|
||||||
),
|
|
||||||
BoolDropdownButton(
|
BoolDropdownButton(
|
||||||
value: settings.clientOnlinePaymentNotification,
|
value: settings.clientOnlinePaymentNotification,
|
||||||
onChanged: (value) => viewModel.onSettingsChanged(
|
onChanged: (value) => viewModel.onSettingsChanged(
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue