mirror of
https://github.com/invoiceninja/invoiceninja.git
synced 2025-07-09 03:14:30 -04:00
Merge pull request #3986 from beganovich/v2-1408-pdf-maker-improvements
PdfMaker improvements
This commit is contained in:
commit
e800c216be
@ -496,4 +496,14 @@ class Invoice extends BaseModel
|
|||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
public function getBalanceDueAttribute()
|
||||||
|
{
|
||||||
|
return $this->balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTotalAttribute()
|
||||||
|
{
|
||||||
|
return $this->calc()->getTotal();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -250,4 +250,19 @@ class Quote extends BaseModel
|
|||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function getValidUntilAttribute()
|
||||||
|
{
|
||||||
|
return $this->due_date;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getBalanceDueAttribute()
|
||||||
|
{
|
||||||
|
return $this->balance;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTotalAttribute()
|
||||||
|
{
|
||||||
|
return $this->calc()->getTotal();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -130,7 +130,7 @@ class Bold extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'tr', 'content' => '', 'elements' => [
|
$elements[] = ['element' => 'tr', 'properties' => ['hidden' => $this->entityVariableCheck($variable)], 'content' => '', 'elements' => [
|
||||||
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
]];
|
]];
|
||||||
|
@ -130,7 +130,7 @@ class Business extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'tr', 'content' => '', 'elements' => [
|
$elements[] = ['element' => 'tr', 'properties' => ['hidden' => $this->entityVariableCheck($variable)], 'content' => '', 'elements' => [
|
||||||
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
]];
|
]];
|
||||||
|
@ -117,7 +117,7 @@ class Clean extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'tr', 'content' => '', 'elements' => [
|
$elements[] = ['element' => 'tr', 'properties' => ['hidden' => $this->entityVariableCheck($variable)], 'content' => '', 'elements' => [
|
||||||
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
]];
|
]];
|
||||||
|
@ -130,7 +130,7 @@ class Creative extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'tr', 'content' => '', 'elements' => [
|
$elements[] = ['element' => 'tr', 'properties' => ['hidden' => $this->entityVariableCheck($variable)], 'content' => '', 'elements' => [
|
||||||
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
]];
|
]];
|
||||||
|
@ -91,7 +91,7 @@ class Elegant extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'tr', 'content' => '', 'elements' => [
|
$elements[] = ['element' => 'tr', 'properties' => ['hidden' => $this->entityVariableCheck($variable)], 'content' => '', 'elements' => [
|
||||||
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
]];
|
]];
|
||||||
|
@ -130,7 +130,7 @@ class Hipster extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'div', 'properties' => ['class' => 'space-x-4'], 'content' => '', 'elements' => [
|
$elements[] = ['element' => 'div', 'properties' => ['hidden' => $this->entityVariableCheck($variable), 'class' => 'space-x-4'], 'content' => '', 'elements' => [
|
||||||
['element' => 'span', 'content' => $variable . '_label', 'properties' => ['class' => 'font-semibold uppercase text-yellow-600']],
|
['element' => 'span', 'content' => $variable . '_label', 'properties' => ['class' => 'font-semibold uppercase text-yellow-600']],
|
||||||
['element' => 'span', 'content' => $variable, 'properties' => ['class' => 'uppercase']],
|
['element' => 'span', 'content' => $variable, 'properties' => ['class' => 'uppercase']],
|
||||||
]];
|
]];
|
||||||
|
@ -91,7 +91,7 @@ class Modern extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'tr', 'content' => '', 'elements' => [
|
$elements[] = ['element' => 'tr', 'properties' => ['hidden' => $this->entityVariableCheck($variable)], 'content' => '', 'elements' => [
|
||||||
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-16 lg:pr-24 font-normal']],
|
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-16 lg:pr-24 font-normal']],
|
||||||
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-16 lg:pr-24 font-normal']],
|
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-16 lg:pr-24 font-normal']],
|
||||||
]];
|
]];
|
||||||
|
@ -1,45 +0,0 @@
|
|||||||
<?php
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Invoice Ninja (https://invoiceninja.com)
|
|
||||||
*
|
|
||||||
* @link https://github.com/invoiceninja/invoiceninja source repository
|
|
||||||
*
|
|
||||||
* @copyright Copyright (c) 2020. Invoice Ninja LLC (https://invoiceninja.com)
|
|
||||||
*
|
|
||||||
* @license https://opensource.org/licenses/AAL
|
|
||||||
*/
|
|
||||||
|
|
||||||
namespace App\Services\PdfMaker\Designs;
|
|
||||||
|
|
||||||
use App\Services\PdfMaker\Designs\Utilities\BaseDesign;
|
|
||||||
use App\Services\PdfMaker\Designs\Utilities\DesignHelpers;
|
|
||||||
use App\Utils\Traits\MakesInvoiceValues;
|
|
||||||
|
|
||||||
/** @deprecated */
|
|
||||||
class Photo extends BaseDesign
|
|
||||||
{
|
|
||||||
use MakesInvoiceValues, DesignHelpers;
|
|
||||||
|
|
||||||
/** Global list of table elements, @var array */
|
|
||||||
public $elements;
|
|
||||||
|
|
||||||
/** @var App\Models\Client */
|
|
||||||
public $client;
|
|
||||||
|
|
||||||
/** @var App\Models\Invoice || @var App\Models\Quote */
|
|
||||||
public $entity;
|
|
||||||
|
|
||||||
/** Global state of the design, @var array */
|
|
||||||
public $context;
|
|
||||||
|
|
||||||
/** Type of entity => product||task */
|
|
||||||
public $type;
|
|
||||||
|
|
||||||
public function html()
|
|
||||||
{
|
|
||||||
return file_get_contents(
|
|
||||||
base_path('resources/views/pdf-designs/bold.html')
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -100,10 +100,12 @@ class Plain extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'tr', 'content' => '', 'elements' => [
|
$element = ['element' => 'tr', 'properties' => ['hidden' => $this->entityVariableCheck($variable)], 'content' => '', 'elements' => [
|
||||||
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-medium']],
|
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-medium']],
|
||||||
]];
|
]];
|
||||||
|
|
||||||
|
$elements[] = $element;
|
||||||
}
|
}
|
||||||
|
|
||||||
return $elements;
|
return $elements;
|
||||||
|
@ -91,7 +91,7 @@ class Playful extends BaseDesign
|
|||||||
$elements = [];
|
$elements = [];
|
||||||
|
|
||||||
foreach ($variables as $variable) {
|
foreach ($variables as $variable) {
|
||||||
$elements[] = ['element' => 'tr', 'content' => '', 'elements' => [
|
$elements[] = ['element' => 'tr', 'properties' => ['hidden' => $this->entityVariableCheck($variable)], 'content' => '', 'elements' => [
|
||||||
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
['element' => 'th', 'content' => $variable . '_label', 'properties' => ['class' => 'text-left pr-4 font-normal']],
|
||||||
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-medium']],
|
['element' => 'th', 'content' => $variable, 'properties' => ['class' => 'text-left pr-4 font-medium']],
|
||||||
]];
|
]];
|
||||||
|
@ -164,4 +164,29 @@ trait DesignHelpers
|
|||||||
['element' => 'img', 'content' => '', 'properties' => ['src' => '$app_url/images/created-by-invoiceninja-new.png', 'class' => 'h-24', 'hidden' => $this->entity->user->account->isPaid() ? 'true' : 'false']],
|
['element' => 'img', 'content' => '', 'properties' => ['src' => '$app_url/images/created-by-invoiceninja-new.png', 'class' => 'h-24', 'hidden' => $this->entity->user->account->isPaid() ? 'true' : 'false']],
|
||||||
]];
|
]];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function entityVariableCheck(string $variable): bool
|
||||||
|
{
|
||||||
|
// Extract $invoice.date => date
|
||||||
|
// so we can append date as $entity->date and not $entity->$invoice.date;
|
||||||
|
|
||||||
|
try {
|
||||||
|
$_variable = explode('.', $variable)[1];
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
throw new \Exception('Company settings seems to be broken. Missing $entity.variable type.');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_null($this->entity->{$_variable})) {
|
||||||
|
info("{$this->entity->id} $_variable is null!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($this->entity->{$_variable})) {
|
||||||
|
info("{$this->entity->id} $_variable is empty!");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
info("{$this->entity->id} $_variable ALL GOOD!!");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user