Fix share product/quote columns option
This commit is contained in:
parent
15e9287c5f
commit
b347791bbe
|
|
@ -57,6 +57,8 @@ class UpdateSettingsTab implements PersistUI {
|
||||||
|
|
||||||
class UpdatedSetting implements PersistUI {}
|
class UpdatedSetting implements PersistUI {}
|
||||||
|
|
||||||
|
class UpdatedSettingUI implements PersistUI {}
|
||||||
|
|
||||||
class UpdateSettingsTemplate implements PersistUI {
|
class UpdateSettingsTemplate implements PersistUI {
|
||||||
UpdateSettingsTemplate({@required this.selectedTemplate});
|
UpdateSettingsTemplate({@required this.selectedTemplate});
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,7 +119,7 @@ Reducer<SettingsUIState> settingsUIReducer = combineReducers([
|
||||||
TypedReducer<SettingsUIState, UpdateSettingsTemplate>((state, action) {
|
TypedReducer<SettingsUIState, UpdateSettingsTemplate>((state, action) {
|
||||||
return state.rebuild((b) => b..selectedTemplate = action.selectedTemplate);
|
return state.rebuild((b) => b..selectedTemplate = action.selectedTemplate);
|
||||||
}),
|
}),
|
||||||
TypedReducer<SettingsUIState, UpdatedSetting>((state, action) {
|
TypedReducer<SettingsUIState, UpdatedSettingUI>((state, action) {
|
||||||
return state
|
return state
|
||||||
.rebuild((b) => b..updatedAt = DateTime.now().millisecondsSinceEpoch);
|
.rebuild((b) => b..updatedAt = DateTime.now().millisecondsSinceEpoch);
|
||||||
}),
|
}),
|
||||||
|
|
|
||||||
|
|
@ -1086,50 +1086,49 @@ class _InvoiceDesignState extends State<InvoiceDesign>
|
||||||
],
|
],
|
||||||
),
|
),
|
||||||
if (settings.shareInvoiceQuoteColumns == false)
|
if (settings.shareInvoiceQuoteColumns == false)
|
||||||
Expanded(
|
FormCard(
|
||||||
child: FormCard(
|
isLast: true,
|
||||||
child: MultiSelectList(
|
child: MultiSelectList(
|
||||||
options: [
|
options: [
|
||||||
ProductItemFields.item,
|
ProductItemFields.item,
|
||||||
ProductItemFields.description,
|
ProductItemFields.description,
|
||||||
if (company.enableProductQuantity)
|
if (company.enableProductQuantity)
|
||||||
ProductItemFields.quantity,
|
ProductItemFields.quantity,
|
||||||
ProductItemFields.unitCost,
|
ProductItemFields.unitCost,
|
||||||
if (company.hasItemTaxes) ...[
|
if (company.hasItemTaxes) ...[
|
||||||
ProductItemFields.tax,
|
ProductItemFields.tax,
|
||||||
ProductItemFields.taxAmount,
|
ProductItemFields.taxAmount,
|
||||||
],
|
],
|
||||||
if (company.enableProductDiscount)
|
if (company.enableProductDiscount)
|
||||||
ProductItemFields.discount,
|
ProductItemFields.discount,
|
||||||
ProductItemFields.lineTotal,
|
ProductItemFields.lineTotal,
|
||||||
ProductItemFields.custom1,
|
ProductItemFields.custom1,
|
||||||
ProductItemFields.custom2,
|
ProductItemFields.custom2,
|
||||||
ProductItemFields.custom3,
|
ProductItemFields.custom3,
|
||||||
ProductItemFields.custom4,
|
ProductItemFields.custom4,
|
||||||
ProductItemFields.grossLineTotal,
|
ProductItemFields.grossLineTotal,
|
||||||
].map((field) => '\$product.$field').toList(),
|
].map((field) => '\$product.$field').toList(),
|
||||||
defaultSelected: [
|
defaultSelected: [
|
||||||
ProductItemFields.item,
|
ProductItemFields.item,
|
||||||
ProductItemFields.description,
|
ProductItemFields.description,
|
||||||
ProductItemFields.unitCost,
|
ProductItemFields.unitCost,
|
||||||
if (company.enableProductQuantity)
|
if (company.enableProductQuantity)
|
||||||
ProductItemFields.quantity,
|
ProductItemFields.quantity,
|
||||||
if (company.enableProductDiscount)
|
if (company.enableProductDiscount)
|
||||||
ProductItemFields.discount,
|
ProductItemFields.discount,
|
||||||
if (company.hasItemTaxes) ProductItemFields.tax,
|
if (company.hasItemTaxes) ProductItemFields.tax,
|
||||||
ProductItemFields.lineTotal,
|
ProductItemFields.lineTotal,
|
||||||
].map((field) => '\$product.$field').toList(),
|
].map((field) => '\$product.$field').toList(),
|
||||||
selected: settings
|
selected: settings
|
||||||
.getFieldsForSection(kPdfFieldsProductQuoteColumns),
|
.getFieldsForSection(kPdfFieldsProductQuoteColumns),
|
||||||
onSelected: (values) {
|
onSelected: (values) {
|
||||||
viewModel.onSettingsChanged(
|
viewModel.onSettingsChanged(
|
||||||
settings.setFieldsForSection(
|
settings.setFieldsForSection(
|
||||||
kPdfFieldsProductQuoteColumns, values));
|
kPdfFieldsProductQuoteColumns, values));
|
||||||
},
|
},
|
||||||
addTitle: localization.addField,
|
addTitle: localization.addField,
|
||||||
liveChanges: true,
|
liveChanges: true,
|
||||||
prefix: 'product',
|
prefix: 'product',
|
||||||
),
|
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
if (company.isModuleEnabled(EntityType.task))
|
if (company.isModuleEnabled(EntityType.task))
|
||||||
|
|
|
||||||
|
|
@ -62,6 +62,14 @@ class InvoiceDesignVM {
|
||||||
company: state.uiState.settingsUIState.company,
|
company: state.uiState.settingsUIState.company,
|
||||||
onSettingsChanged: (settings) {
|
onSettingsChanged: (settings) {
|
||||||
store.dispatch(UpdateSettings(settings: settings));
|
store.dispatch(UpdateSettings(settings: settings));
|
||||||
|
final newSetting = settings.shareInvoiceQuoteColumns ?? true;
|
||||||
|
final oldSetting =
|
||||||
|
state.uiState.settingsUIState.settings.shareInvoiceQuoteColumns ??
|
||||||
|
true;
|
||||||
|
if (newSetting != oldSetting) {
|
||||||
|
// Need to force update the UI to show the new tabs
|
||||||
|
store.dispatch(UpdatedSettingUI());
|
||||||
|
}
|
||||||
},
|
},
|
||||||
onSavePressed: (context, entityTypes) {
|
onSavePressed: (context, entityTypes) {
|
||||||
if (!state.isProPlan && !state.isTrial) {
|
if (!state.isProPlan && !state.isTrial) {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue