Add invoice/quote product columns

This commit is contained in:
Hillel Coren 2023-03-21 11:47:36 +02:00
parent 3a1bd6b76c
commit b86f90b869
1 changed files with 58 additions and 2 deletions

View File

@ -78,7 +78,8 @@ class _InvoiceDesignState extends State<InvoiceDesign>
@override
void initState() {
super.initState();
final state = widget.viewModel.state;
final viewModel = widget.viewModel;
final state = viewModel.state;
final settingsUIState = state.settingsUIState;
_focusNode = FocusScopeNode();
@ -88,6 +89,10 @@ class _InvoiceDesignState extends State<InvoiceDesign>
tabs++;
}
if (viewModel.settings.syncInvoiceQuoteColumns == false) {
tabs++;
}
[
EntityType.invoice,
EntityType.quote,
@ -184,6 +189,10 @@ class _InvoiceDesignState extends State<InvoiceDesign>
localization.vendorDetails,
if (company.isModuleEnabled(EntityType.purchaseOrder))
localization.purchaseOrderDetails,
if (settings.syncInvoiceQuoteColumns == false) ...[
localization.invoiceProductColumns,
localization.quoteProductColumns,
] else
localization.productColumns,
if (company.isModuleEnabled(EntityType.task)) localization.taskColumns,
localization.totalFields,
@ -1076,6 +1085,53 @@ class _InvoiceDesignState extends State<InvoiceDesign>
)
],
),
if (settings.syncInvoiceQuoteColumns == false)
Expanded(
child: FormCard(
child: MultiSelectList(
options: [
ProductItemFields.item,
ProductItemFields.description,
if (company.enableProductQuantity)
ProductItemFields.quantity,
ProductItemFields.unitCost,
if (company.hasItemTaxes) ...[
ProductItemFields.tax,
ProductItemFields.taxAmount,
],
if (company.enableProductDiscount)
ProductItemFields.discount,
ProductItemFields.lineTotal,
ProductItemFields.custom1,
ProductItemFields.custom2,
ProductItemFields.custom3,
ProductItemFields.custom4,
ProductItemFields.grossLineTotal,
].map((field) => '\$product.$field').toList(),
defaultSelected: [
ProductItemFields.item,
ProductItemFields.description,
ProductItemFields.unitCost,
if (company.enableProductQuantity)
ProductItemFields.quantity,
if (company.enableProductDiscount)
ProductItemFields.discount,
if (company.hasItemTaxes) ProductItemFields.tax,
ProductItemFields.lineTotal,
].map((field) => '\$product.$field').toList(),
selected: settings
.getFieldsForSection(kPdfFieldsProductColumns),
onSelected: (values) {
viewModel.onSettingsChanged(
settings.setFieldsForSection(
kPdfFieldsProductColumns, values));
},
addTitle: localization.addField,
liveChanges: true,
prefix: 'product_quote',
),
),
),
if (company.isModuleEnabled(EntityType.task))
FormCard(
isLast: true,