diff --git a/lib/ui/design/edit/design_edit.dart b/lib/ui/design/edit/design_edit.dart index 40285696c..1aa2c2ed1 100644 --- a/lib/ui/design/edit/design_edit.dart +++ b/lib/ui/design/edit/design_edit.dart @@ -192,6 +192,7 @@ class _DesignEditState extends State context: context, design: design, isDraftMode: _isDraftMode, + isPurchaseOrder: false, onComplete: (response) async { setState(() { _isLoading = false; diff --git a/lib/ui/invoice/edit/invoice_edit_desktop.dart b/lib/ui/invoice/edit/invoice_edit_desktop.dart index 6f068c8cc..e3c0efc95 100644 --- a/lib/ui/invoice/edit/invoice_edit_desktop.dart +++ b/lib/ui/invoice/edit/invoice_edit_desktop.dart @@ -1024,8 +1024,13 @@ class __PdfPreviewState extends State<_PdfPreview> { final state = store.state; final credentials = state.credentials; final webClient = WebClient(); - String url = - '${credentials.url}/live_preview?entity=${invoice.entityType.snakeCase}'; + String url = '${credentials.url}/live_preview'; + + if (invoice.isPurchaseOrder) { + url += '/purchase_order'; + } + + url += '?entity=${invoice.entityType.snakeCase}'; if (invoice.isOld) { url += '&entity_id=${invoice.id}'; } diff --git a/lib/ui/invoice/edit/invoice_edit_pdf.dart b/lib/ui/invoice/edit/invoice_edit_pdf.dart index af49f721c..a9920cc5b 100644 --- a/lib/ui/invoice/edit/invoice_edit_pdf.dart +++ b/lib/ui/invoice/edit/invoice_edit_pdf.dart @@ -48,19 +48,25 @@ class InvoiceEditPDFState extends State { _isLoading = true; }); + final invoice = viewModel.invoice; final credentials = viewModel.state.credentials; final webClient = WebClient(); - String url = - '${credentials.url}/live_preview?entity=${viewModel.invoice.entityType.snakeCase}'; - if (viewModel.invoice.isOld) { - url += '&entity_id=${viewModel.invoice.id}'; + String url = '${credentials.url}/live_preview'; + + if (invoice.isPurchaseOrder) { + url += '/purchase_order'; + } + + url += '?entity=${invoice.entityType.snakeCase}'; + + if (invoice.isOld) { + url += '&entity_id=${invoice.id}'; } if (viewModel.state.isHosted) { url = url.replaceFirst('//', '//preview.'); } - final data = - serializers.serializeWith(InvoiceEntity.serializer, viewModel.invoice); + final data = serializers.serializeWith(InvoiceEntity.serializer, invoice); webClient .post(url, credentials.token, data: json.encode(data), rawResponse: true) diff --git a/lib/ui/settings/invoice_design.dart b/lib/ui/settings/invoice_design.dart index 5f5c22149..8b999122e 100644 --- a/lib/ui/settings/invoice_design.dart +++ b/lib/ui/settings/invoice_design.dart @@ -143,7 +143,7 @@ class _InvoiceDesignState extends State FormCard( crossAxisAlignment: CrossAxisAlignment.stretch, children: [ - if (state.isProPlan) ...[ + if (state.isProPlan || state.isTrial) ...[ if (company.isModuleEnabled(EntityType.invoice)) ...[ DesignPicker( label: localization.invoiceDesign, diff --git a/lib/utils/designs.dart b/lib/utils/designs.dart index 2bc83fb38..4b9a9d1ce 100644 --- a/lib/utils/designs.dart +++ b/lib/utils/designs.dart @@ -20,6 +20,7 @@ void loadDesign({ @required BuildContext context, @required DesignEntity design, @required bool isDraftMode, + @required bool isPurchaseOrder, @required Function(Response) onComplete, }) { if (Config.DEMO_MODE) { @@ -32,6 +33,10 @@ void loadDesign({ final credentials = state.credentials; String url = '${credentials.url}/preview'; + if (isPurchaseOrder) { + url += '/purchase_order'; + } + if (isDraftMode) { url += '?html=true'; }