diff --git a/app/Http/Controllers/PreviewController.php b/app/Http/Controllers/PreviewController.php index f228e300e742..61f7a45b5581 100644 --- a/app/Http/Controllers/PreviewController.php +++ b/app/Http/Controllers/PreviewController.php @@ -173,7 +173,11 @@ class PreviewController extends BaseController $html = new HtmlEngine(null, $invoice->invitations()->first(), 'invoice'); - $design = new Design(strtolower(request()->design['name'])); + if (isset(request()->design['name'])) { + $design = new Design(strtolower(request()->design['name'])); + } else { + $design = new Design(Design::CUSTOM, ['custom_partials' => request()->design['design']]); + } // $designer = new Designer($entity_obj, $design_object, $entity_obj->client->getSetting('pdf_variables'), lcfirst($entity)); // $html = $this->generateEntityHtml($designer, $entity_obj); @@ -193,7 +197,7 @@ class PreviewController extends BaseController ->design($design) ->build(); - info($maker->getCompiledHTML(true)); + // info($maker->getCompiledHTML(true)); $file_path = PreviewPdf::dispatchNow($maker->getCompiledHTML(true), auth()->user()->company()); diff --git a/app/Services/PdfMaker/Design.php b/app/Services/PdfMaker/Design.php index 46ff72d76141..56a9b1128621 100644 --- a/app/Services/PdfMaker/Design.php +++ b/app/Services/PdfMaker/Design.php @@ -45,6 +45,7 @@ class Design extends BaseDesign const MODERN = 'modern'; const PLAIN = 'plain'; const PLAYFUL = 'playful'; + const CUSTOM = 'custom'; public function __construct(string $design = null, array $options = []) { @@ -55,6 +56,12 @@ class Design extends BaseDesign public function html(): ?string { + if ($this->design == 'custom.html') { + return $this->composeFromPartials( + $this->options['custom_partials'] + ); + } + $path = isset($this->options['custom_path']) ? $this->options['custom_path'] : config('ninja.designs.base_path'); diff --git a/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php b/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php index 0e6fbb1385aa..84122f47d5af 100644 --- a/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php +++ b/app/Services/PdfMaker/Designs/Utilities/DesignHelpers.php @@ -186,4 +186,15 @@ trait DesignHelpers return false; } + + public function composeFromPartials(array $partials) + { + $html = ''; + + $html .= $partials['header']; + $html .= $partials['body']; + $html .= $partials['footer']; + + return $html; + } }