makeTestData(); } public function testHtmlOutput() { $this->client->fresh(); $html = $this->generateHtml($this->invoice->fresh()); $this->assertNotNull($html); } private function generateHtml($entity) { $entity_design_id = ''; if ($entity instanceof Invoice || $entity instanceof RecurringInvoice) { $entity_design_id = 'invoice_design_id'; } elseif ($entity instanceof Quote) { $entity_design_id = 'quote_design_id'; } elseif ($entity instanceof Credit) { $entity_design_id = 'credit_design_id'; } elseif ($entity instanceof PurchaseOrder) { $entity_design_id = 'purchase_order_design_id'; } $entity_design_id = $entity->design_id ? $entity->design_id : $this->decodePrimaryKey($entity->client->getSetting($entity_design_id)); $design = Design::find($entity_design_id); $html = new HtmlEngine($entity->invitations->first()); if ($design->is_custom) { $options = [ 'custom_partials' => json_decode(json_encode($design->design), true) ]; $template = new PdfMakerDesign(PdfDesignModel::CUSTOM, $options); } else { $template = new PdfMakerDesign(strtolower($design->name)); } $state = [ 'template' => $template->elements([ 'client' => $entity->client, 'entity' => $entity, 'pdf_variables' => (array) $entity->company->settings->pdf_variables, '$product' => $design->design->product, ]), 'variables' => $html->generateLabelsAndValues(), 'options' => [ 'all_pages_header' => $entity->client->getSetting('all_pages_header'), 'all_pages_footer' => $entity->client->getSetting('all_pages_footer'), ], ]; $maker = new PdfMakerService($state); return $maker->design($template) ->build() ->getCompiledHTML(true); } }